Help


Markdown Support

Markdown is a very simple, common, and lightweight plaintext markup language for basic text styling that is mainly used in the admin messaging system on this site. When using the message system, you can use some Markdown features, plus some additional features. Not all Markdown syntax is available (see the Limitations section for more information on what is not included), but what is available should be more than enough for the areas of this application that use it.


Line Breaks

The most common people run into when using Markdown for the first time is not being able to put things on a separate line. In Markdown, there are 2 common ways to do this:

  • Typing two line breaks (enter key):
    This will be in
    
    a separate paragraph

    This will be in

    a separate paragraph

  • Or typing 2 spaces and a single line-break:
    This will be in  
    the same paragraph

    This will be in
    the same paragraph


Italics, Bold, and Underlined Text

Applying italics, bold, and underlines to text in Markdown is simple, but the Markdown used on this site might be slightly different than what other sites use.

  • For italics, surround your text with single asterisks:
    Munroe, Randall. *What If?: Serious Scientific Answers to Absurd Hypothetical Questions.* Houghton Mifflin Harcourt, 2014.

    Munroe, Randall. What If?: Serious Scientific Answers to Absurd Hypothetical Questions. Houghton Mifflin Harcourt, 2014.

  • For bold, surround your text with 2 asterisks:
    **GET OFF MY LAWN YOU CRAZY KIDS**

    GET OFF MY LAWN YOU CRAZY KIDS

  • For underlines, surround your text with single underscores (the ++underline++ syntax does not work due to limitations of the RedCarpet gem):
    _Everyone knows you should underline everything if you want it to seem important!_

    Everyone knows you should underline everything if you want it to seem important!

  • You can combine these in many ways, but it can be tricky to get it right:
    Has **Anyone** ***Really*** _Been ***Far***_ Even as Decided to Use *Even _Go_* Want to do ***Look _More Like_?***

    Has Anyone Really Been Far Even as Decided to Use Even Go Want to do Look More Like?


Quoting

Quoting people or thing is elegant and easy in Markdown.

  • Simple quotes can be done by prefacing a line with an > character:
    >Who are you quoting?

    Who are you quoting?

  • You can also use standard Markdown syntax inside a quote:
    > 90% of quotes on the internet are made up.
    
    > *— Albert Einstein*

    90% of quotes on the internet are made up.

    — Albert Einstein

  • You can even nest quotes:
    >>What if we're all in a giant simulation?
    
    >no u

    What if we're all in a giant simulation?

    no u


Links

Embedding links is easy, but there are some things you need to watch out for.

  • If you want to send just a link, anything starting with http://, https://, ftp://, or www. will automatically be converted into a clickable link. However, non-www domains without http(s):// will not be converted into URLs:
    ftp://ftp.idsoftware.com https://google.com http://google.com https://www.google.com http://www.google.com google.com www.google.com internal.google.com

    ftp://ftp.idsoftware.com https://google.com http://google.com https://www.google.com http://www.google.com google.com www.google.com internal.google.com

  • In addition, email addresses are also automatically recognized and give a mailto: link:
    someperson@domain.test

    someperson@domain.test

  • If you want to embed a link inside text, the syntax is fairly easy:
    [The best website ever](https://spacejam.com/)

    The best website ever

  • Unlike some Markdown parsers, you do not need to escape closing parenthesis:
    [Wikipedia links just got a lot more reliable](https://en.wikipedia.org/wiki/James_R._O%27Neill_(correspondent))

    Wikipedia links just got a lot more reliable

  • You can also use reference-style and link-text links:
    [A reference-style link][arbitrary CaSe-Insensitive reference]
    
    [Link-text link - also cAsE iNsensitive]
    
    [arbitrary case-insensitive reference]: https://dl.codes/
    [Link-text link - also case insensitive]: https://gitlab.com/dlucadou/irc-log-explorer

    A reference-style link

    Link-text link - also cAsE iNsensitive


Headings

If you want to create headings, it's easy! Just add one or more pound signs (#) at the start of the line.

  • There are 6 heading levels that correspond with <h1> through <h6>:
    # H1  
    ## H2  
    ### H3 
    #### H4  
    ##### H5  
    ###### H6

    H1

    H2

    H3

    H4

    H5
    H6
  • In addition, you can use the alternate syntax for <h1> and <h2> (3 or more = or -'s on the following line for H1 and H2, respectively):
    H1  
    ===  
    H2  
    ---

    H1

    H2

  • However, you have to include the space between the # and the text or you will end up getting regular text, which could be useful if you want to use a hashtag:
    #Regular text

    #Regular text

  • If you want to put a # without adjusting the text size, you need to start the line using a space (the space should be hidden by your browser so it won't look out of alignment):
     # Regular size text

    # Regular size text

  • Just as with quotes, you can easily insert other Markdown formatting into headers:
    ### *Looks* **_fancy_**, [doesn't it](https://www.youtube.com/watch?v=pWRGpLmJ7ms)?

    Looks fancy, doesn't it?


Lists

Markdown supports both ordered and unordered lists, and making them is very simple (although this implementation of Markdown does not support ordered lists with an offset).

  • For ordered lists, just start your list with 1. (the space is important) and go from there - you do not need to do 2 line breaks or even add 2 spaces at the end of the line:
    1. First item
    2. Second item
    3. Third item
    4. Fourth item
    5.This is why you need a space in between the '.' and the item
    1. First item
    2. Second item
    3. Third item
    4. Fourth item 5.This is why you need a space in between the '.' and the item
  • The order of the numbers does not matter, as long as they are all positive:
    2. First item
    8. Second item
    12. Third item
    0. Fourth item
    -3. Negative numbers do not work
    1. First item
    2. Second item
    3. Third item
    4. Fourth item -3. Negative numbers do not work
  • For nested ordered lists, simply indent your items (the first level can be 1 space, the second level must be at least 4 spaces), and the order does not matter:
    1. First top-level item
    1. Second top-level item
      2. First nested item
     1. Second nested item
         3. First second-level nested item (5 spaces)
    1. Third top-level item
    1. First top-level item
    2. Second top-level item
      1. First nested item
      2. Second nested item
        1. First second-level nested item (5 spaces)
    3. Third top-level item
  • For unordered lists, you can use any combination of +, -, and *, and you can nest lists:
    - First item
    + Second item
    * Third item
      - Nested item
    + Fourth item
    +Don't forget the space!
    • First item
    • Second item
    • Third item
      • Nested item
    • Fourth item +Don't forget the space!
  • You can combine ordered and unordered lists and, like other elements, insert other Markdown as well:
    1. Ordered list at first
    3. *With* _*some*_ Markdown
      - Throw in some _unordered_ items while we're at it  
      And if you put 2 spaces on the line above, you can do a line-break
      * *That's a spicy looking* ***Markdown s_ou_p*** *we've got brewing*
    9. Fourth item
    1. Ordered list at first
    2. With some Markdown
      • Throw in some unordered items while we're at it
        And if you put 2 spaces on the line above, you can do a line-break
      • That's a spicy looking Markdown soup we've got brewing
    3. Fourth item

Horizontal Rules (Lines/Separators)

To create a line or separator that stretches across the page (like the <hr/> tag), there are multiple ways to go about doing it.

  • Use 3 or more asterisks or underscores on a line by themselves (dashes also work, with some limitations):
    You do not need to do 2 line breaks or add 2 spaces for this:
    ___
    All you need are 3, but you can add as many as you want
    *************************************************************
    Makes no difference

    You do not need to do 2 line breaks or add 2 spaces for this:


    All you need are 3, but you can add as many as you want


    Makes no difference

  • You can also use dashes, but you must separate it by 2 line breaks or it will be interpreted as alternate H2 syntax:
    This does work
    
    ---
    Only 1 line break required for the bottom
    
    If you forget the extra line break, however...
    ---
    It's not going to be what you expect.

    This does work


    Only 1 line break required for the bottom

    If you forget the extra line break, however...

    It's not going to be what you expect.

  • However, you cannot include anything else on this line or it will not work:
    *** hmmm

    *** hmmm


Image

Although you cannot upload images to the application, you can embed external images in your messages.

  • Instead, you can upload your images to external sites and embed them using the syntax ![img alt-text (shown when image fails to load)](link/to/image "img title text (shown when you hover over the image)"):
    ![Shopping cart turf war](https://i.redd.it/njgmk8xti1z21.jpg "hmmm")

    Shopping cart turf war

  • You can also create links you can click on on images using the syntax [![image alt-text](link/to/image "img title text")](link/when/clicked/on):
    [![UNC Charlotte, viewed from the 10th floor of the library overlooking Woodward, CHHS, COED, and the Student Union](https://i.imgur.com/gjO7WLo.jpg "Picture of UNCC before the building of the Health and Wellness Center, date & photographer unknown")](https://www.uncc.edu/)

    UNC Charlotte, viewed from the 10th floor of the library overlooking Woodward, CHHS, COED, and the Student Union

  • Reference-style images are also supported using the syntax ![alt-text][Case Insensitive Reference], followed by [case iNseNsitive reference]: link/to/image "title text" on another line:
    ![A cat in a raincoat][cAt PiCture]
    
    Other _Markdown_ *text* that will go **below** the image
    
    [cat picture]: https://i.imgur.com/f2cQCCu.jpg "A cute cat in a raincoat"

    A cat in a raincoat

    Other Markdown text that will go below the image


Inline Code Tags

If you want to make a small bit of text appear like this, it's very simple.

  • Just enclose it in ticks (`, also known as the backtick, grave accent, or diacritic):
    This text looks normal, `but this text does not.`

    This text looks normal, but this text does not.

  • Unlike the other elements, any Markdown tags have no effect here:
    Markdown works _*here*_, `but not _*here*_`

    Markdown works here, but not _*here*_

  • The ticks cannot be escaped with a backslash, either:
    `Esacping this \` does not work`

    Esacping this does not work`


Code Blocks

If you want to post a large amount of preformatted text (e.g. an error message, a chunk of code, or some ASCII art), code blocks are what you need!

  • Just enclose the lines with 3 ticks:
    ```
                   ((`\
                ___ \\ '--._
             .'`   `'    o  )
            /    \   '. __.'
           _|    /_  \ \_\_
    jgs   {_\______\-'\__\_\
    ```
                   ((`\
                ___ \\ '--._
             .'`   `'    o  )
            /    \   '. __.'
           _|    /_  \ \_\_
    jgs   {_______\-'\__\_\
    
  • You can also encose it with 3 tildes:
    ~~~
                   ((`\
                ___ \\ '--._
             .'`   `'    o  )
            /    \   '. __.'
           _|    /_  \ \_\_
    jgs   {_\______\-'\__\_\
    ~~~
                   ((`\
                ___ \\ '--._
             .'`   `'    o  )
            /    \   '. __.'
           _|    /_  \ \_\_
    jgs   {_______\-'\__\_\
    
  • You can even open with tildes and close with ticks (and vice versa). Regardless of which you pick, Markdown is not used in code blocks:
    ~~~
    _*Hello, World!*_
    1. First item
    2. Second item
    3. Third item
    ```
    _*Hello, World!*_
    1. First item
    2. Second item
    3. Third item
    
  • Syntax highlighting is not supported, so specifiying the language has no effect:
    ```ruby
    puts "Hello, World!"
    ```
    puts "Hello, World!"
    

Tables

Markdown tables can look a bit odd at first, but are relatively easy once you learn how they are made.

  • The easiest way to write tables is by formatting them like ASCII art:
    | Column A | Column B   | Column C |
    | -------- | ---------- | -------- |
    | Cell A1  | Cell B1    | Cell C1  |
    | Cell A2  | Cell B2    | Cell C2  |
    | Cell A3  | Cell B3    | Cell C3  |
    | Cell A4  | Cell B4    | Cell C4  |
    Column A Column B Column C
    Cell A1 Cell B1 Cell C1
    Cell A2 Cell B2 Cell C2
    Cell A3 Cell B3 Cell C3
    Cell A4 Cell B4 Cell C4
  • You can align columns to the left, right, and center by putting colons on the left, right, and center of the line of dashes:
    | Column A | Column B   | Column C |
    | --------:|:---------- |:--------:|
    | This     |   This one | This one |
    | column   |    is left | is       |
    | is right |    aligned |   center |
    | aligned  |            |  aligned |
    Column A Column B Column C
    This This one This one
    column is left is
    is right aligned center
    aligned aligned
  • The most important thing to remember is that you only need 3 dashes separating each column, you can leave a cell empty, and the outer pipes are unnecessary. Other Markdown elements can be used, and you can make some weird looking but syntactically-valid tables that render just fine:
    This | isn't very | pretty
    --- | ---:| ---
    but it *still* | | gets the job done
    and it _renders_ | `just fine` | and you can still use
    column alignments | like this middle | column does
    This isn't very pretty
    but it still gets the job done
    and it renders just fine and you can still use
    column alignments like this middle column does

Highlights

Highlighting text (also knows as "marking" or "marked" text) is also easy to accomplish with Markdown.

  • The syntax for highlighting is just ==highlighted text==:
    I want to really ==emphasize this point==

    I want to really emphasize this point

  • You can also mix it in with other Markdown syntax, like this:
    ==*Lots* **of** _**Markdown**_==

    Lots of Markdown


Superscripts

You can easily use superscripts with Markdown, and it's not just for numerical powers.

  • The basic syntax for superscripts is just a^b:
    a^b^c^d^e

    abcde

  • If you want to spread the superscript across multiple words, use parenthesis or raise each word to the appropriate superscript:
    This^(uses parenthesis), but^this ^does ^^not

    Thisuses parenthesis, butthis does not

  • The only limitation of using over 1 level of superscript is that parenthesis stop working properly and you have to manually raise each word to the level you want:
    This^^(does not work), but^^this ^^does ^^work

    This^(does not work), butthis does work


Backslashes and Escaping Characters

Some special characters can be escaped to prevent syntax from being interpreted. Specifically, you can escape the characters \ ` * _ {} [] () # + - . !.

  • A single backslash will usually negate the effect of the special character next to it, for example:
    \* Without the backslash, this would be a bullet in an unordered list.
    
    \* Without the backslash, this would be another bullet in an unordered list.

    * Without the backslash, this would be a bullet in an unordered list.

    * Without the backslash, this would be another bullet in an unordered list.

  • However, sometimes escaping characters does not work as you might expect:
    This^(does (not\) work), but this^syntax ^\(works\) ^well

    Thisdoes (not\ work), but thissyntax (works) well


Limitations

While the Markdown parser this application uses (RedCarpet) does a decent job at covering the basics, it is not as comprehensive as some of the parsers out there. Specifically:

  • Abbreviations are not supported.
  • Anchor tags are not generated for header elements.
  • Code blocks do not have syntax highlighting.
  • Definitions are not supported.
  • Footnotes are disabled because RedCarpet seems to handle them inconsistently.
  • No inlined HTML is allowed (for security reasons).
  • Numbered lists do not start with a given offset, it's always starting at 1.
  • Subscripts are not supported.
  • Tasks are not supported.
  • The ++inserted text++ syntax for underlines is not supported.

External Resources

Some resources you might find helpful for learning more about Markdown:

For an interactive Markdown editor, try these:



© 2019 David Lucadou | Source Code | Terms of Service | Version 0.8.8 Alpha (See what's new!)