github.com/charmbracelet/glamour@v0.7.0/styles/README.md (about)

     1  # Glamour Style Guide
     2  
     3  The JSON files in this directory are generated from the default styles. To
     4  re-generate them, run:
     5  
     6      go generate ..
     7  
     8  ## Block Elements
     9  
    10  Block elements contain other elements and are rendered around them. All block
    11  elements support the following style settings:
    12  
    13  | Attribute        | Value  | Description                                                  |
    14  | ---------------- | ------ | ------------------------------------------------------------ |
    15  | block_prefix     | string | Printed before the block's first element (in parent's style) |
    16  | block_suffix     | string | Printed after the block's last element (in parent's style)   |
    17  | prefix           | string | Printed before the block's first element                     |
    18  | suffix           | string | Printed after the block's last element                       |
    19  | indent           | number | Specifies the indentation of the block                       |
    20  | indent_token     | string | Specifies the indentation format                             |
    21  | margin           | number | Specifies the margin around the block                        |
    22  | color            | color  | Defines the default text color for the block                 |
    23  | background_color | color  | Defines the default background color for the block           |
    24  
    25  Elements inside a block inherit the block's following style settings:
    26  
    27  | Attribute        | Value | Description                                        |
    28  | ---------------- | ----- | -------------------------------------------------- |
    29  | color            | color | Defines the default text color for the block       |
    30  | background_color | color | Defines the default background color for the block |
    31  | bold             | bool  | Increases text intensity                           |
    32  | faint            | bool  | Decreases text intensity                           |
    33  | italic           | bool  | Prints the text in italic                          |
    34  | crossed_out      | bool  | Enables strikethrough as text decoration           |
    35  | underline        | bool  | Enables underline as text decoration               |
    36  | overlined        | bool  | Enables overline as text decoration                |
    37  | blink            | bool  | Enables blinking text                              |
    38  | conceal          | bool  | Conceals / hides the text                          |
    39  | inverse          | bool  | Swaps fore- & background colors                    |
    40  
    41  ### document
    42  
    43  The `document` element represents the markdown's body.
    44  
    45  #### Example
    46  
    47  Style:
    48  
    49  ```json
    50  "document": {
    51      "indent": 2,
    52      "background_color": "234",
    53      "block_prefix": "\n",
    54      "block_suffix": "\n"
    55  }
    56  ```
    57  
    58  ---
    59  
    60  ### paragraph
    61  
    62  The `paragraph` element represents a paragraph in the document.
    63  
    64  #### Example
    65  
    66  Style:
    67  
    68  ```json
    69  "paragraph": {
    70      "margin": 4,
    71      "color": "15",
    72      "background_color": "235"
    73  }
    74  ```
    75  
    76  ---
    77  
    78  ### heading
    79  
    80  The `heading` element represents a heading.
    81  
    82  ### h1 - h6
    83  
    84  The `h1` to `h6` elements represent headings. `h1` defines the most important
    85  heading, `h6` the least important heading. Undefined attributes are inherited
    86  from the `heading` element.
    87  
    88  #### Example
    89  
    90  Markdown:
    91  
    92  ```markdown
    93  # h1
    94  
    95  ## h2
    96  
    97  ### h3
    98  ```
    99  
   100  Style:
   101  
   102  ```json
   103  "heading": {
   104      "color": "15",
   105      "background_color": "57"
   106  },
   107  "h1": {
   108      "prefix": "=> ",
   109      "suffix": " <=",
   110      "margin": 2,
   111      "bold": true,
   112      "background_color": "69"
   113  },
   114  "h2": {
   115      "prefix": "## ",
   116      "margin": 4
   117  },
   118  "h3": {
   119      "prefix": "### ",
   120      "margin": 6
   121  }
   122  ```
   123  
   124  Output:
   125  
   126  ![Heading Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/heading.png)
   127  
   128  ---
   129  
   130  ### block_quote
   131  
   132  The `block_quote` element represents a quote.
   133  
   134  #### Example
   135  
   136  Style:
   137  
   138  ```json
   139  "block_quote": {
   140      "color": "200",
   141      "indent": 1,
   142      "indent_token": "=> "
   143  }
   144  ```
   145  
   146  Output:
   147  
   148  ![Block Quote Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/block_quote.png)
   149  
   150  ---
   151  
   152  ### list
   153  
   154  The `list` element represents a list in the document.
   155  
   156  | Attribute    | Value  | Description                                |
   157  | ------------ | ------ | ------------------------------------------ |
   158  | level_indent | number | Specifies the indentation for nested lists |
   159  
   160  #### Example
   161  
   162  Style:
   163  
   164  ```json
   165  "list": {
   166      "color": "15",
   167      "background_color": "52",
   168      "level_indent": 4
   169  }
   170  ```
   171  
   172  ---
   173  
   174  ### code_block
   175  
   176  The `code_block` element represents a block of code.
   177  
   178  | Attribute | Value  | Description                                                     |
   179  | --------- | ------ | --------------------------------------------------------------- |
   180  | theme     | string | Defines the [Chroma][chroma] theme used for syntax highlighting |
   181  
   182  [chroma]: https://github.com/alecthomas/chroma
   183  
   184  #### Example
   185  
   186  Style:
   187  
   188  ```json
   189  "code_block": {
   190      "color": "200",
   191      "theme": "solarized-dark"
   192  }
   193  ```
   194  
   195  Output:
   196  
   197  ![Code Block Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/code_block.png)
   198  
   199  ---
   200  
   201  ### table
   202  
   203  The `table` element represents a table of data.
   204  
   205  #### Example
   206  
   207  Markdown:
   208  
   209  ```markdown
   210  | Label  | Value |
   211  | ------ | ----- |
   212  | First  | foo   |
   213  | Second | bar   |
   214  ```
   215  
   216  Style:
   217  
   218  ```json
   219  "table": {
   220      "margin": 4
   221  }
   222  ```
   223  
   224  Output:
   225  
   226  ![Table Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/table.png)
   227  
   228  ## Inline Elements
   229  
   230  All inline elements support the following style settings:
   231  
   232  | Attribute        | Value  | Description                                           |
   233  | ---------------- | ------ | ----------------------------------------------------- |
   234  | block_prefix     | string | Printed before the element (in parent's style)        |
   235  | block_suffix     | string | Printed after the element (in parent's style)         |
   236  | prefix           | string | Printed before the element                            |
   237  | suffix           | string | Printed after the element                             |
   238  | color            | color  | Defines the default text color for the document       |
   239  | background_color | color  | Defines the default background color for the document |
   240  | bold             | bool   | Increases text intensity                              |
   241  | faint            | bool   | Decreases text intensity                              |
   242  | italic           | bool   | Prints the text in italic                             |
   243  | crossed_out      | bool   | Enables strikethrough as text decoration              |
   244  | underline        | bool   | Enables underline as text decoration                  |
   245  | overlined        | bool   | Enables overline as text decoration                   |
   246  | blink            | bool   | Enables blinking text                                 |
   247  | conceal          | bool   | Conceals / hides the text                             |
   248  | inverse          | bool   | Swaps fore- & background colors                       |
   249  
   250  ### text
   251  
   252  The `text` element represents a block of text.
   253  
   254  #### Example
   255  
   256  Style:
   257  
   258  ```json
   259  "text": {
   260      "bold": true,
   261      "color": "15",
   262      "background_color": "57"
   263  }
   264  ```
   265  
   266  ---
   267  
   268  ### item
   269  
   270  The `item` element represents an item in a list.
   271  
   272  #### Example
   273  
   274  Markdown:
   275  
   276  ```markdown
   277  - First Item
   278      - Nested List Item
   279  - Second Item
   280  ```
   281  
   282  Style:
   283  
   284  ```json
   285  "item": {
   286      "block_prefix": "• "
   287  }
   288  ```
   289  
   290  Output:
   291  
   292  ![List Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/list.png)
   293  
   294  ---
   295  
   296  ### enumeration
   297  
   298  The `enumeration` element represents an item in an ordered list.
   299  
   300  #### Example
   301  
   302  Markdown:
   303  
   304  ```markdown
   305  1. First Item
   306  2. Second Item
   307  ```
   308  
   309  Style:
   310  
   311  ```json
   312  "enumeration": {
   313      "block_prefix": ". "
   314  }
   315  ```
   316  
   317  Output:
   318  
   319  ![Enumeration Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/enumeration.png)
   320  
   321  ---
   322  
   323  ### task
   324  
   325  The `task` element represents a task item.
   326  
   327  | Attribute | Value  | Description                 |
   328  | --------- | ------ | --------------------------- |
   329  | ticked    | string | Prefix for finished tasks   |
   330  | unticked  | string | Prefix for unfinished tasks |
   331  
   332  #### Example
   333  
   334  Markdown:
   335  
   336  ```markdown
   337  - [x] Finished Task
   338  - [ ] Outstanding Task
   339  ```
   340  
   341  Style:
   342  
   343  ```json
   344  "task": {
   345      "ticked": "✓ ",
   346      "unticked": "✗ "
   347  }
   348  ```
   349  
   350  Output:
   351  
   352  ![Task Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/task.png)
   353  
   354  ---
   355  
   356  ### link
   357  
   358  The `link` element represents a link.
   359  
   360  #### Example
   361  
   362  Markdown:
   363  
   364  ```markdown
   365  This is a [link](https://charm.sh).
   366  ```
   367  
   368  Style:
   369  
   370  ```json
   371  "link": {
   372      "color": "123",
   373      "underline": true,
   374      "block_prefix": "(",
   375      "block_suffix": ")"
   376  }
   377  ```
   378  
   379  Output:
   380  
   381  ![Link Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/link.png)
   382  
   383  ---
   384  
   385  ### link_text
   386  
   387  The `link_text` element represents the text associated with a link.
   388  
   389  #### Example
   390  
   391  Style:
   392  
   393  ```json
   394  "link_text": {
   395      "color": "123",
   396      "bold": true
   397  }
   398  ```
   399  
   400  ---
   401  
   402  ### image
   403  
   404  The `image` element represents an image.
   405  
   406  #### Example
   407  
   408  Markdown:
   409  
   410  ```markdown
   411  ![Image](https://charm.sh/logo.png).
   412  ```
   413  
   414  Style:
   415  
   416  ```json
   417  "image": {
   418      "color": "123",
   419      "block_prefix": "[Image: ",
   420      "block_suffix": "]"
   421  }
   422  ```
   423  
   424  Output:
   425  
   426  ![Image Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/image.png)
   427  
   428  ---
   429  
   430  ### image_text
   431  
   432  The `image_text` element represents the text associated with an image.
   433  
   434  #### Example
   435  
   436  Style:
   437  
   438  ```json
   439  "image_text": {
   440      "color": "8"
   441  }
   442  ```
   443  
   444  ---
   445  
   446  ### code
   447  
   448  The `code` element represents an inline code segment.
   449  
   450  #### Example
   451  
   452  Style:
   453  
   454  ```json
   455  "code": {
   456      "color": "200"
   457  }
   458  ```
   459  
   460  Output:
   461  
   462  ![Code Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/code.png)
   463  
   464  ---
   465  
   466  ### emph
   467  
   468  The `emph` element represents an emphasized text.
   469  
   470  #### Example
   471  
   472  Markdown:
   473  
   474  ```markdown
   475  This text is *emphasized*.
   476  ```
   477  
   478  Style:
   479  
   480  ```json
   481  "emph": {
   482      "italic": true
   483  }
   484  ```
   485  
   486  Output:
   487  
   488  ![Emph Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/emph.png)
   489  
   490  ---
   491  
   492  ### strong
   493  
   494  The `strong` element represents important text.
   495  
   496  #### Example
   497  
   498  Markdown:
   499  
   500  ```markdown
   501  This text is **strong**.
   502  ```
   503  
   504  Style:
   505  
   506  ```json
   507  "strong": {
   508      "bold": true
   509  }
   510  ```
   511  
   512  Output:
   513  
   514  ![Strong Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/strong.png)
   515  
   516  ---
   517  
   518  ### strikethrough
   519  
   520  The `strikethrough` element represents strikethrough text.
   521  
   522  #### Example
   523  
   524  Markdown:
   525  
   526  ```markdown
   527  ~~Scratch this~~.
   528  ```
   529  
   530  Style:
   531  
   532  ```json
   533  "strikethrough": {
   534      "crossed_out": true
   535  }
   536  ```
   537  
   538  Output:
   539  
   540  ![Strikethrough Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/strikethrough.png)
   541  
   542  ---
   543  
   544  ### hr
   545  
   546  The `hr` element represents a horizontal rule.
   547  
   548  #### Example
   549  
   550  Markdown:
   551  
   552  ```markdown
   553  ---
   554  ```
   555  
   556  Style:
   557  
   558  ```json
   559  "hr": {
   560      "block_prefix": "---"
   561  }
   562  ```
   563  
   564  ## html_block
   565  ## html_span