Markdown kitchen sink

The kramdown GFM parser README includes:

By default, Jekyll uses the GitHub Flavored Markdown (GFM) processor for kramdown. At the moment this parser is based on the kramdown parser, with the following changes:

  • Support for fenced code blocks using three or more backticks has been added.
  • Hard line breaks in paragraphs are enforced by default (see option hard_wrap).
  • ATX headers need a whitespace character after the hash signs.
  • Strikethroughs can be created using two tildes surrounding a piece of text.
  • Blank lines between paragraphs and other block elements are not needed by default.
  • Render emojis used at GitHub.

See also the kramdown documentation.

The following button toggles between the light and dark schemes on this page:

Text can be bold, italic, or strikethrough.

Link to another page.

There should be whitespace between paragraphs.

There should be whitespace between paragraphs. We recommend including a README, or a file with information about your project.

Header 1

This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

Header 2

This is a blockquote following a header.

When something is important enough, you do it even if the odds are not in your favor.

Header 3

// Javascript code with syntax highlighting.
var fun = function lang(l) {
  dateformat.i18n = require('./lang/' + l)
  return true;
}
# Ruby code with syntax highlighting
GitHubPages::Dependencies.gems.each do |gem, version|
  s.add_dependency(gem, "= #{version}")
end

Header 4 with code not transformed

  • This is an unordered list following a header.
  • This is an unordered list following a header.
  • This is an unordered list following a header.
Header 5
  1. This is an ordered list following a header.
  2. This is an ordered list following a header.
  3. This is an ordered list following a header.
Header 6

This is a very long link which wraps and therefore doesn’t overflow even when it comes at the beginning of the line.

head1 head two three
ok good swedish fish nice
out of stock good and plenty nice
ok good oreos hmm
ok good zoute drop yumm

There’s a horizontal rule below this.


Here is an unordered list:

  • Item foo
  • Item bar
  • Item baz
  • Item zip

And an ordered list:

  1. Item one
  2. Item two
  3. Item three
  4. Item four

And an ordered list, continued:

  1. Item one
  2. Item two

Some text

  1. Item three
  2. Item four

And an ordered list starting from 42:

  1. Item 42
  2. Item 43
  3. Item 44

And a nested list:

  • level 1 item
    • level 2 item
    • level 2 item
      • level 3 item
      • level 3 item
  • level 1 item
    • level 2 item
    • level 2 item
    • level 2 item
  • level 1 item
    • level 2 item
    • level 2 item
  • level 1 item

Nesting an ol in ul in an ol

  • level 1 item (ul)
    1. level 2 item (ol)
    2. level 2 item (ol)
      • level 3 item (ul)
      • level 3 item (ul)
  • level 1 item (ul)
    1. level 2 item (ol)
    2. level 2 item (ol)
      • level 3 item (ul)
      • level 3 item (ul)
    3. level 4 item (ol)
    4. level 4 item (ol)
      • level 3 item (ul)
      • level 3 item (ul)
  • level 1 item (ul)

And a task list

  • Hello, this is a TODO item
  • Hello, this is another TODO item
  • Goodbye, this item is done

Nesting task lists

  • level 1 item (task)
    • level 2 item (task)
    • level 2 item (task)
  • level 1 item (task)
  • level 1 item (task)

Nesting a ul in a task list

  • level 1 item (task)
    • level 2 item (ul)
    • level 2 item (ul)
  • level 1 item (task)
  • level 1 item (task)

Nesting a task list in a ul

  • level 1 item (ul)
    • level 2 item (task)
    • level 2 item (task)
  • level 1 item (ul)
  • level 1 item (ul)

Small image

Large image

Wroclaw University Library digitizing rare archival texts” by j_cadmus is marked with CC BY 2.0.

Labels

I’m a label

blue

green

purple

yellow

red

bold

italic

bold + italic

Definition lists can be used with HTML syntax.

Name
Godzilla
Born
1952
Birthplace
Japan
Color
Green

Multiple description terms and values

Term
Brief description of Term
Longer Term
Longer description of Term, possibly more than one line
A longer term that requires a line break
Longer description of Term, possibly more than one line
Term
First description of Term, possibly more than one line

Second description of Term, possibly more than one line

Term1
Term2
Single description of Term1 and Term2, possibly more than one line
Term1
Term2
First description of Term1 and Term2, possibly more than one line

Second description of Term1 and Term2, possibly more than one line

More code

def dump_args(func):
    "This decorator dumps out the arguments passed to a function before calling it"
    argnames = func.func_code.co_varnames[:func.func_code.co_argcount]
    fname = func.func_name
    def echo_func(*args,**kwargs):
        print fname, ":", ', '.join(
            '%s=%r' % entry
            for entry in zip(argnames,args) + kwargs.items())
        return func(*args, **kwargs)
    return echo_func

@dump_args
def f1(a,b,c):
    print a + b + c

f1(1, 2, 3)

def precondition(precondition, use_conditions=DEFAULT_ON):
    return conditions(precondition, None, use_conditions)

def postcondition(postcondition, use_conditions=DEFAULT_ON):
    return conditions(None, postcondition, use_conditions)

class conditions(object):
    __slots__ = ('__precondition', '__postcondition')

    def __init__(self, pre, post, use_conditions=DEFAULT_ON):
        if not use_conditions:
            pre, post = None, None

        self.__precondition  = pre
        self.__postcondition = post
Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.
The final element.