Skip to content

Instantly share code, notes, and snippets.

@xpol
Created August 25, 2013 09:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xpol/6332952 to your computer and use it in GitHub Desktop.
Save xpol/6332952 to your computer and use it in GitHub Desktop.
Markdown files that send to convert via Github API with python 3 urllib. The `gfm.py Sample.md` got fine result. The `gfm.py Cheatseet.md` would get 'BadStatusLine'.

Sample Markdown Cheat Sheet

This is a sample markdown file to help you write Markdown quickly :)

If you use the fabulous Sublime Text 2/3 editor along with the Markdown Preview plugin, open your ST2 Palette with CMD+P then choose Markdown Preview in browser to see the result in your browser.

Text basics

this is italic and this is bold . another italic and another bold

this is important text. and percentage signs : % and %

This is a paragraph with a footnote (builtin parser only). 1

Insert [ toc ] without spaces to generate a table of contents (builtin parsers only).

Indentation

Here is some indented text

even more indented

Titles

Big title (h1)

Middle title (h2)

Smaller title (h3)

and so on (hX)

and so on (hX)
and so on (hX)

Example lists (1)

  • bullets can be -, +, or *

  • bullet list 1

  • bullet list 2

    • sub item 1

    • sub item 2

      with indented text inside

  • bullet list 3

  • bullet list 4
  • bullet list 5

Links

This is an example inline link and another one with a title.

Links can also be reference based : reference 1 or reference 2 with title.

References are usually placed at the bottom of the document

Images

A sample image :

revolunet logo

As links, images can also use references instead of inline links :

revolunet logo

Code

It's quite easy to show code in markdown files.

Backticks can be used to highlight some words.

Also, any indented block is considered a code block. If enable_highlight is true, syntax highlighting will be included (for the builtin parser - the github parser does this automatically).

<script>
    document.location = 'http://lmgtfy.com/?q=markdown+cheat+sheet';
</script>

Math

When enable_mathjax is true, inline math can be included \(\frac{\pi}{2}\) $\pi$

Alternatively, math can be written on its own line:

$$F(\omega) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} f(t) , e^{ - i \omega t}dt$$

\[\int_0^1 f(t) \mathrm{d}t\]

\[\sum_j \gamma_j^2/d_j\]

GitHub Flavored Markdown

If you use the Github parser, you can use some of Github Flavored Markdown syntax :

Some Python code :

import random

class CardGame(object):
    """ a sample python class """
    NB_CARDS = 32
    def __init__(self, cards=5):
        self.cards = random.sample(range(self.NB_CARDS), 5)
        print 'ready to play'

Some Javascript code :

var config = {
    duration: 5,
    comment: 'WTF'
}
// callbacks beauty un action
async_call('/path/to/api', function(json) {
    another_call(json, function(result2) {
        another_another_call(result2, function(result3) {
            another_another_another_call(result3, function(result4) {
                alert('And if all went well, i got my result :)');
            });
        });
    });
})

The Github Markdown also brings some nice Emoji support : 👍 ❤️ 🍺

Parsers and Extensions

Markdown Preview comes with Python-Markdown and Markdown2 preloaded.

Python-Markdown

The Python-Markdown Parser provides support for several extensions.

Extra Extensions

You can enable them all at once using the extra keyword.

extensions: [ 'extra' ]

If you want all the extras plus the toc extension, your settings would look like this:

{
    ...
    parser: 'markdown',
    extensions: ['extra', 'toc'],
    ...
}

Other Extensions

There are also some extensions that are not included in Markdown Extra but come in the standard Python-Markdown library.

3rd Party Extensions

Python-Markdown is designed to be extended. Just fork this repo and add your extensions inside the .../Packages/Markdown Preview/markdown/extensions/ folder.

Check out the list of 3rd Party extensions.

Default Extensions

The default extensions are:

Use the default keyword, to select them all. If you want all the defaults plus the definition_lists extension, your settings would look like this:

{
    ...
    parser: 'markdown',
    extensions: ['default', 'definition_lists'],
    ...
}

Markdown2

The Markdown2 Parser also provides support for extensions, known as Extras.
You can configure the list of extras you want to use inside the package settings.

Default Extras

The default extras are:

You can enable all default extras at once using the default keyword. If you want all the default extras plus the 'wiki-table' extra, your settings would look like this:

{
    ...
    parser: 'markdown2',
    extensions: ['default', 'wiki-table'],
    ...
}

Other Extras

For a complete list of extras please checkout the Extras Wiki Page.

Examples

Tables

The tables extension of the Python-Markdown parser is activated by default, but is currently not available in Markdown2.

The syntax was adopted from the php markdown project, and is also used in github flavoured markdown.

Year Temperature (low) Temperature (high)
1900 -10 25
1910 -15 30
1920 -10 32

Wiki Tables

If you are using Markdown2 with the wiki-tables extra activated you should see a table below:

|| Year || Temperature (low) || Temperature (high) ||
|| 1900 || -10 || 25 ||
|| 1910 || -15 || 30 ||
|| 1920 || -10 || 32 ||

Definition Lists

This example requires Python Markdown's def_list extension.

Apple : Pomaceous fruit of plants of the genus Malus in the family Rosaceae.

Orange : The fruit of an evergreen tree of the genus Citrus.

About

This plugin and this sample file is proudly brought to you by the revolunet team

Footnotes

  1. This is the text of the note.

import traceback
import json
import urllib.request
import http.client
import sys
try:
content = open(sys.argv[1], 'r').read()
data = {"text": content,"mode": 'gfm'}
headers = {'Content-Type': 'application/json'}
bytes = json.dumps(data).encode('utf-8')
url = "https://api.github.com/markdown"
request = urllib.request.Request(url, data=bytes, headers=headers)
result = urllib.request.urlopen(request).read().decode('utf-8')
print(result)
except http.client.BadStatusLine:
traceback.print_exc()
except:
traceback.print_exc()

Sample Markdown Cheat Sheet

This is a sample markdown file to help you write Markdown quickly :)

If you use the fabulous Sublime Text 2/3 editor along with the Markdown Preview plugin, open your ST2 Palette with CMD+P then choose Markdown Preview in browser to see the result in your browser.

Text basics

this is italic and this is bold . another italic and another bold

this is important text. and percentage signs : % and %

This is a paragraph with a footnote (builtin parser only). [^note-id]

Insert [ toc ] without spaces to generate a table of contents (builtin parsers only).

Indentation

Here is some indented text

even more indented

Titles

Big title (h1)

Middle title (h2)

Smaller title (h3)

and so on (hX)

and so on (hX)
and so on (hX)

Example lists (1)

  • bullets can be -, +, or *

  • bullet list 1

  • bullet list 2

    • sub item 1

    • sub item 2

      with indented text inside

  • bullet list 3

  • bullet list 4
  • bullet list 5

Links

This is an example inline link and another one with a title.

Links can also be reference based : reference 1 or reference 2 with title.

References are usually placed at the bottom of the document

Images

A sample image :

revolunet logo

As links, images can also use references instead of inline links :

revolunet logo

Code

It's quite easy to show code in markdown files.

Backticks can be used to highlight some words.

Also, any indented block is considered a code block. If enable_highlight is true, syntax highlighting will be included (for the builtin parser - the github parser does this automatically).

<script>
    document.location = 'http://lmgtfy.com/?q=markdown+cheat+sheet';
</script>

Math

When enable_mathjax is true, inline math can be included \(\frac{\pi}{2}\) $\pi$

Alternatively, math can be written on its own line:

$$F(\omega) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} f(t) , e^{ - i \omega t}dt$$

\[\int_0^1 f(t) \mathrm{d}t\]

\[\sum_j \gamma_j^2/d_j\]

About

This plugin and this sample file is proudly brought to you by the revolunet team

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment