/*
 *  _____ _            _    ____   ____ ___ ___
 * |_   _| |__   ___  / \  / ___| / ___|_ _|_ _|
 *   | | | '_ \ / _ \/ _ \ \___ \| |    | | | |
 *   | | | | | |  __/ ___ \ ___) | |___ | | | |
 *   |_| |_| |_|\___/_/   \_\____/ \____|___|___|
 *
 *   W  A  Y
 *
 *   A minimal guide to ASCII, plain text, and Markdown.
 *   Everything you see here is just characters on a screen.
 *   No images. No frameworks. Just text.
 *
 *   theasciiway.com
 */


========================================================================
  TABLE OF CONTENTS
========================================================================

  --- Guide ---
  01. What is ASCII?
  02. The History
  03. The ASCII Table
  04. ASCII Art
  05. Markdown & .md Files
  06. Markdown Syntax Guide
  07. Designing with Plain Text
  08. Box Drawing Characters
  09. The Philosophy
  10. Resources

  --- Tools ---
  11. ASCII Lookup & Search
  12. ASCII Art Generator
  13. Unicode Symbols (Copy-Paste)
  14. Text / Binary / Hex Converter
  15. Markdown Cheat Sheet
  16. Fancy Text Generator
  17. HTML Entities Reference
  18. Regex Cheat Sheet

  19. About


========================================================================
  01. WHAT IS ASCII?
========================================================================

  ASCII stands for American Standard Code for Information Interchange.

  It is a character encoding standard that assigns a number (0-127)
  to every letter, digit, punctuation mark, and control character
  used in the English language.

  When you type the letter 'A', the computer stores the number 65.
  When you type 'a', it stores 97. The space bar? That's 32.

  ASCII uses 7 bits, giving us 128 possible characters:

      0-31    Control characters  (tab, newline, backspace...)
      32-47   Punctuation & symbols   ! " # $ % & ' ( ) * + , - . /
      48-57   Digits                  0 1 2 3 4 5 6 7 8 9
      58-64   More symbols            : ; < = > ? @
      65-90   Uppercase letters       A B C D E F ... Z
      91-96   Brackets & symbols      [ \ ] ^ _ `
      97-122  Lowercase letters       a b c d e f ... z
      123-127 Braces & misc           { | } ~ DEL

  That's it. 128 characters built the digital world.


========================================================================
  02. THE HISTORY
========================================================================

  1963  ASCII is first published as ASA X3.4-1963.
        Created by a committee of the American Standards
        Association (now ANSI). Bob Bemer is often called
        "the father of ASCII."

  1967  Major revision. The standard we know today is
        essentially this version.

  1968  President Lyndon B. Johnson mandates ASCII for all
        computers purchased by the federal government.

  1969  ARPANET (the precursor to the internet) launches.
        All communication uses ASCII text.

  1971  Ray Tomlinson sends the first email. Pure ASCII.

  1980s The IBM PC adopts Extended ASCII (8 bits, 256 chars)
        adding box-drawing characters and accented letters.

  1991  Unicode 1.0 is published, extending the concept of
        character encoding far beyond ASCII's 128 characters.
        But ASCII remains the foundation -- the first 128
        Unicode characters are identical to ASCII.

  Today Every text file, every line of code, every email,
        every URL still relies on ASCII at its core.
        The standard is over 60 years old and still
        fundamental to all computing.


========================================================================
  03. THE ASCII TABLE
========================================================================

  The printable ASCII characters (32-126):

  Dec  Hex  Char    Dec  Hex  Char    Dec  Hex  Char
  ---  ---  ----    ---  ---  ----    ---  ---  ----
   32  20  (sp)     64  40  @        96  60  `
   33  21  !        65  41  A        97  61  a
   34  22  "        66  42  B        98  62  b
   35  23  #        67  43  C        99  63  c
   36  24  $        68  44  D       100  64  d
   37  25  %        69  45  E       101  65  e
   38  26  &        70  46  F       102  66  f
   39  27  '        71  47  G       103  67  g
   40  28  (        72  48  H       104  68  h
   41  29  )        73  49  I       105  69  i
   42  2A  *        74  4A  J       106  6A  j
   43  2B  +        75  4B  K       107  6B  k
   44  2C  ,        76  4C  L       108  6C  l
   45  2D  -        77  4D  M       109  6D  m
   46  2E  .        78  4E  N       110  6E  n
   47  2F  /        79  4F  O       111  6F  o
   48  30  0        80  50  P       112  70  p
   49  31  1        81  51  Q       113  71  q
   50  32  2        82  52  R       114  72  r
   51  33  3        83  53  S       115  73  s
   52  34  4        84  54  T       116  74  t
   53  35  5        85  55  U       117  75  u
   54  36  6        86  56  V       118  76  v
   55  37  7        87  57  W       119  77  w
   56  38  8        88  58  X       120  78  x
   57  39  9        89  59  Y       121  79  y
   58  3A  :        90  5A  Z       122  7A  z
   59  3B  ;        91  5B  [       123  7B  {
   60  3C  <        92  5C  \       124  7C  |
   61  3D  =        93  5D  ]       125  7D  }
   62  3E  >        94  5E  ^       126  7E  ~
   63  3F  ?        95  5F  _


========================================================================
  04. ASCII ART
========================================================================

  Before GIFs and PNGs, people made art with characters.
  ASCII art is the practice of creating images using only
  the 95 printable ASCII characters.

  Simple:

      ¯\_(ツ)_/¯       The classic shrug

      <3               A heart (tilt your head)

      :)               The original emoji (1982)


  Figurative:

        .---.
       /     \
       \.@-@./
       /`\_/`\
      //  _  \\
     | \     )|_
    /`\_`>  <_/ \
    \__/'---'\__/


  Banners (often generated with tools like figlet):

     _   _      _ _         __        __         _     _ _
    | | | | ___| | | ___    \ \      / /__  _ __| | __| | |
    | |_| |/ _ \ | |/ _ \    \ \ /\ / / _ \| '__| |/ _` | |
    |  _  |  __/ | | (_) |    \ V  V / (_) | |  | | (_| |_|
    |_| |_|\___|_|_|\___( )    \_/\_/ \___/|_|  |_|\__,_(_)
                        |/


  Boxes and frames:

    +-------------------------------+
    |                               |
    |   Simple box using + - |      |
    |                               |
    +-------------------------------+

    ╔═══════════════════════════════╗
    ║                               ║
    ║   Unicode box-drawing chars   ║
    ║                               ║
    ╚═══════════════════════════════╝

  Progress bars:

    [##########..........] 50%
    [################....] 80%
    [####################] 100% Done!


  Diagrams:

    Client          Server          Database
      |               |               |
      |-- request --> |               |
      |               |-- query ----> |
      |               |<-- result --- |
      |<-- response --|               |
      |               |               |


========================================================================
  05. MARKDOWN & .md FILES
========================================================================

  Markdown is a lightweight markup language created by
  John Gruber and Aaron Swartz in 2004.

  The idea is simple: write plain text that is readable as-is
  but can also be converted to HTML.

  A .md file is just a plain text file with the .md extension,
  indicating it contains Markdown-formatted text.


  Why Markdown matters:

    - It's plain text. It will never become obsolete.
    - It's readable without any rendering.
    - It's used everywhere: GitHub, Reddit, Discord,
      Notion, Obsidian, documentation, blogs...
    - It keeps your content separate from presentation.
    - You can version-control it with Git.


  Common .md files you'll see in projects:

    README.md        Project description & setup instructions
    CHANGELOG.md     Version history and changes
    CONTRIBUTING.md  How to contribute to a project
    LICENSE.md       Legal terms for using the code
    TODO.md          Task list for the project


========================================================================
  06. MARKDOWN SYNTAX GUIDE
========================================================================

  --- Headings ---

    # Heading 1           The biggest heading
    ## Heading 2          Second level
    ### Heading 3         Third level
    #### Heading 4        Fourth level


  --- Text Formatting ---

    **bold text**         bold text
    *italic text*         italic text
    ~~strikethrough~~     strikethrough
    `inline code`         inline code
    > blockquote          indented quote


  --- Lists ---

    - item one            Unordered list
    - item two
      - nested item       Indent with 2 spaces

    1. first              Ordered list
    2. second
    3. third

    - [x] done task       Task list (checkbox)
    - [ ] pending task


  --- Links & Images ---

    [text](url)           Hyperlink
    ![alt](image.png)     Image


  --- Code Blocks ---

    ```python             Fenced code block
    def hello():          with syntax highlighting
        print("hi")
    ```


  --- Tables ---

    | Name  | Role       |
    |-------|------------|
    | Alice | Developer  |
    | Bob   | Designer   |


  --- Horizontal Rule ---

    ---                   Three dashes, asterisks,
    ***                   or underscores
    ___


========================================================================
  07. DESIGNING WITH PLAIN TEXT
========================================================================

  You don't need a design tool to create beautiful documents.
  Here are patterns that have been used for decades:


  --- Section Headers ---

  ==========================
    SECTION TITLE
  ==========================

  --- Section Title ---

  // Section Title //

  [ Section Title ]


  --- Emphasis ---

  UPPERCASE FOR EMPHASIS
  *asterisks for highlights*
  _underscores for stress_
  >> arrows for callouts <<


  --- Lists and Bullets ---

  - dash style
  * star style
  + plus style
  o circle style
  > arrow style


  --- Alignment ---

  Keep lines under 72-80 characters wide.
  This is the traditional standard for readability.
  It dates back to punch cards (80 columns) and
  terminal screens.


  --- Whitespace ---

  Use blank lines generously. They are free.
  They make text breathe.

  Indent with 2 or 4 spaces for hierarchy.
  Be consistent. Pick one and stick with it.


  --- A well-formatted plain text document: ---

  ============================================
    PROJECT: My Cool Thing
    Author:  Your Name
    Date:    2025-01-15
    Version: 1.0.0
  ============================================

  OVERVIEW
  --------
  A brief description of what this project
  does and why it exists.

  INSTALLATION
  ------------
  1. Clone the repository
  2. Run `make install`
  3. Configure settings in config.txt

  USAGE
  -----
    $ mycoolapp --input file.txt
    $ mycoolapp --help

  NOTES
  -----
  - Requires Python 3.8+
  - See LICENSE for terms

  ============================================
  EOF


========================================================================
  08. BOX DRAWING CHARACTERS
========================================================================

  Beyond basic ASCII, Unicode provides box-drawing
  characters that create clean borders and diagrams.


  --- Pure ASCII boxes (works everywhere) ---

  +--------+--------+--------+
  | Cell 1 | Cell 2 | Cell 3 |
  +--------+--------+--------+
  | Data   | Data   | Data   |
  +--------+--------+--------+


  --- Unicode single-line ---

  ┌────────┬────────┬────────┐
  │ Cell 1 │ Cell 2 │ Cell 3 │
  ├────────┼────────┼────────┤
  │ Data   │ Data   │ Data   │
  └────────┴────────┴────────┘


  --- Unicode double-line ---

  ╔════════╦════════╦════════╗
  ║ Cell 1 ║ Cell 2 ║ Cell 3 ║
  ╠════════╬════════╬════════╣
  ║ Data   ║ Data   ║ Data   ║
  ╚════════╩════════╩════════╝


  --- Unicode rounded ---

  ╭────────────────────────╮
  │  Rounded corners look  │
  │  softer and modern.    │
  ╰────────────────────────╯


  --- Tree structures ---

  project/
  ├── src/
  │   ├── main.py
  │   ├── utils.py
  │   └── config.py
  ├── tests/
  │   └── test_main.py
  ├── README.md
  └── setup.py


  --- Flow diagrams ---

  ┌─────────┐     ┌─────────┐     ┌─────────┐
  │  Input  │────>│ Process │────>│ Output  │
  └─────────┘     └─────────┘     └─────────┘
                       │
                       v
                  ┌─────────┐
                  │  Store  │
                  └─────────┘


========================================================================
  09. THE PHILOSOPHY
========================================================================

  "The best format is the one that will still work
   in 50 years."

  Plain text is the most durable digital format
  in existence. Consider:

    >  A Word document from 1995 may not open today.
    >  A plain text file from 1970 opens perfectly.

    >  A website from 2005 is likely broken.
    >  An email from 1985 is still readable.

  ASCII and plain text represent a philosophy:

    Simplicity over complexity.
    Portability over features.
    Longevity over trends.
    Content over decoration.

  Every tool can read plain text. Every language
  can process it. Every system can store it.
  It compresses well. It diffs well. It greps well.
  It travels well across networks.

  When you write in plain text, you are writing
  for the future.


========================================================================
  10. RESOURCES
========================================================================

  --- Learn More ---

  ASCII on Wikipedia
  The ASCII Table (asciitable.com)
  Markdown by John Gruber
  CommonMark Spec
  GitHub Flavored Markdown

  --- Tools ---

  TAAG - ASCII Art Generator
  ASCIIFlow - Draw Diagrams
  Monodraw (macOS)
  Markdown Guide


========================================================================
  --- TOOLS ---
========================================================================

  The tools below are interactive. Type, click, copy.
  Everything runs in your browser. No data leaves your machine.


========================================================================
  11. ASCII LOOKUP & SEARCH
========================================================================

  Type a character, code, or keyword to search:

  

    Dec  Hex  Oct  Bin       Char  HTML        Description
  ---  ---  ---  --------  ----  ----------  -----------

  Click any row to copy the character.


========================================================================
  12. ASCII ART GENERATOR
========================================================================

  Type text to generate an ASCII banner:

  

  Font: Standard    


     _   _          _    ____   ____ ___ ___
    | |_| |__   ___/ \  / ___| / ___|_ _|_ _|_      ____ _ _   _
    | __| '_ \ / _ \_| |\___ \| |    | | | \ \ /\ / / _` | | | |
    | |_| | | |  __/ ___ \___) | |___| | | |\ V  V / (_| | |_| |
     \__|_| |_|\___/_/   \_\____/ \____|___|___\_/\_/ \__,_|\__, |
                                                            |___/


========================================================================
  13. UNICODE SYMBOLS (COPY-PASTE)
========================================================================

  Click any symbol to copy it to your clipboard.

  --- Arrows ---

  --- Box Drawing ---

  --- Math & Logic ---

  --- Currency ---

  --- Punctuation & Typography ---

  --- Shapes & Misc ---


========================================================================
  14. TEXT / BINARY / HEX CONVERTER
========================================================================

  Type text or paste a code to convert:

  

  Mode: 

  Binary:  
  Hex:     
  Decimal: 
  Octal:   


========================================================================
  15. MARKDOWN CHEAT SHEET (EXTENDED)
========================================================================

  A comprehensive reference. Click any example to copy.


  --- Basic Syntax ---

  Headings
  # H1                              Largest heading
  ## H2                             Second level
  ### H3                            Third level
  #### H4  ##### H5  ###### H6    Smaller headings

  Emphasis
  **bold**  or  __bold__           bold
  *italic*  or  _italic_           italic
  ***bold italic***                  bold italic
  ~~strikethrough~~                  strikethrough

  Links & Images
  [link text](https://url.com)       Hyperlink
  [text](url "tooltip")              With tooltip
  ![alt text](image.png)             Image
  <https://auto.link.com>            Auto-link

  Code
  `inline code`                      Inline
  ```js                              Fenced block
  console.log("hi");                 with language
  ```
      indented code                  4-space indent

  Blockquotes
  > quote                            Single level
  > > nested                         Nested quote

  Lists
  - item / * item / + item         Unordered
  1. first                           Ordered
     - nested                        Indent 3 spaces
  - [x] done  / - [ ] todo          Task list

  Horizontal Rules
  ---  or  ***  or  ___              Three or more


  --- Extended Syntax (GitHub Flavored) ---

  Tables
  | Left  | Center | Right |
  |:------|:------:|------:|
  | data  | data   | data  |

  Footnotes
  Text with a footnote[^1]
  [^1]: Footnote content.

  Definition Lists
  Term
  : Definition here

  Collapsed Sections
  <details>
  <summary>Click to expand</summary>
  Hidden content here.
  </details>

  Emoji (GitHub)
  :rocket:  :tada:  :warning:  :memo:

  Alerts (GitHub)
  > [!NOTE]
  > Useful information.
  > [!WARNING]
  > Critical content.


========================================================================
  16. FANCY TEXT GENERATOR
========================================================================

  Type text to see it in Unicode font styles:

  

  Click any style to copy it.

  Type something above to see results...


========================================================================
  17. HTML ENTITIES REFERENCE
========================================================================

  

    Char  Entity          Code       Description
  ----  --------------  ---------  -----------

  Click any row to copy the entity.


========================================================================
  18. REGEX CHEAT SHEET
========================================================================

  
  Result: 

  --- Character Classes ---

    .         Any character except newline
    \d        Digit [0-9]
    \D        Not a digit
    \w        Word char [a-zA-Z0-9_]
    \W        Not a word char
    \s        Whitespace [ \t\n\r\f]
    \S        Not whitespace
    [abc]     Any of a, b, or c
    [^abc]    Not a, b, or c
    [a-z]     Range a to z

  --- Quantifiers ---

    *         0 or more
    +         1 or more
    ?         0 or 1 (optional)
    {3}       Exactly 3
    {3,}      3 or more
    {3,5}     Between 3 and 5
    *?        Lazy (minimal match)

  --- Anchors ---

    ^         Start of string/line
    $         End of string/line
    \b        Word boundary
    \B        Not a word boundary

  --- Groups & Lookaround ---

    (abc)     Capturing group
    (?:abc)   Non-capturing group
    (?=abc)   Positive lookahead
    (?!abc)   Negative lookahead
    (?<=abc)  Positive lookbehind
    (?<!abc)  Negative lookbehind
    \1        Back-reference to group 1

  --- Flags ---

    g         Global (all matches)
    i         Case-insensitive
    m         Multiline (^ $ per line)
    s         Dotall (. matches \n)
    u         Unicode support

  --- Common Patterns ---

    ^\S+@\S+\.\S+$              Email (simple)
    ^https?://\S+$               URL
    ^\d{4}-\d{2}-\d{2}$          Date YYYY-MM-DD
    ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$   Hex color
    ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$  IPv4 address
    ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$ Strong password


========================================================================
  19. ABOUT
========================================================================

  +-----------------------------------------------+
  |                                               |
  |   Created by Shahar Ami Kedmi                 |
  |                                               |
  |   Full-stack developer and creator,           |
  |   building tools that embrace simplicity.     |
  |                                               |
  |   I believe the best software is the kind     |
  |   you barely notice -- it just works.         |
  |   This site is a love letter to plain text,   |
  |   the format that outlasts everything.        |
  |                                               |
  |   github.com/Shahar                        |
  |                                               |
  +-----------------------------------------------+


========================================================================

  theasciiway.com

  Made with nothing but plain text.
  Just characters and some HTML/CSS.

  ________________________________________________________

  "Everything should be made as simple as possible,
   but not simpler."


========================================================================
  EOF
Copied!