- In the above example, all of the links are kept separate in Markdown (so it's easy to read even in its raw format), and then inserted directly as normal links when converted to HTML. The quick brown fox, jumped over the lazy dog.
- Links can be either inline with the text, or placed at the bottom of the text as references. Link text is enclosed by square brackets , and for inline links, the link URL is enclosed by parens.
- In contrast to these examples, however, Markdown aims to be as easy as possible for people to read. Each markup element is closely related to the actual meaning, rather than being abstract. This can be shown most easily with an example: If you want to highlight a word in bold in HTML, you can either use the ' or the ' tags.
The example is rendered at template/0000-use-markdown-architectural-decision-records.md. For the MADR project itself, all ADRs exist at docs/adr/. Apply it to your project Initialization. Create folder docs/adr in your project. Copy all files in template from the MADR project to the folder docs/adr in your project. Dec 17, 2004 Markdown. Main; Basics; Syntax; License; Dingus; Download. Markdown 1.0.1 (18 KB) — 17 Dec 2004. Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
Download
Markdown 1.0.1 (18 KB) — 17 Dec 2004
Introduction
Markdown is a text-to-HTML conversion tool for web writers. Markdownallows you to write using an easy-to-read, easy-to-write plain textformat, then convert it to structurally valid XHTML (or HTML).
Thus, “Markdown” is two things: (1) a plain text formatting syntax;and (2) a software tool, written in Perl, that converts the plain textformatting to HTML. See the Syntax page for details pertaining toMarkdown’s formatting syntax. You can try it out, right now, using theonline Dingus.
The overriding design goal for Markdown’s formatting syntax is to makeit as readable as possible. The idea is that a Markdown-formatteddocument should be publishable as-is, as plain text, without lookinglike it’s been marked up with tags or formatting instructions. WhileMarkdown’s syntax has been influenced by several existing text-to-HTMLfilters, the single biggest source of inspiration for Markdown’ssyntax is the format of plain text email.
The best way to get a feel for Markdown’s formatting syntax is simplyto look at a Markdown-formatted document. For example, you can viewthe Markdown source for the article text on this page here:http://daringfireball.net/projects/markdown/index.text
(You can use this ‘.text’ suffix trick to view the Markdown source forthe content of each of the pages in this section, e.g. theSyntax and License pages.)
Markdown is free software, available under a BSD-style open sourcelicense. See the License page for more information.
Discussion List
I’ve set up a public mailing list for discussion about Markdown.Any topic related to Markdown — both its formatting syntax andits software — is fair game for discussion. Anyone who is interestedis welcome to join.
It’s my hope that the mailing list will lead to good ideas for futureimprovements to Markdown.
Installation and Requirements
Markdown requires Perl 5.6.0 or later. Welcome to the 21st Century.Markdown also requires the standard Perl library module Digest::MD5, which is probably already installed on your server.
Movable Type
Markdown works with Movable Type version 2.6 or later (includingMovable Type 3.0).
Copy the “Markdown.pl” file into your Movable Type “plugins”directory. The “plugins” directory should be in the same directoryas “mt.cgi”; if the “plugins” directory doesn’t already exist, useyour FTP program to create it. Your installation should look likethis:
Once installed, Markdown will appear as an option in Movable Type’sText Formatting pop-up menu. This is selectable on a per-post basis:
Markdown translates your posts to HTML when you publish; the poststhemselves are stored in your MT database in Markdown format.
If you also install SmartyPants 1.5 (or later), Markdown willoffer a second text formatting option: “Markdown WithSmartyPants”. This option is the same as the regular “Markdown”formatter, except that it automatically uses SmartyPants to createtypographically correct curly quotes, em-dashes, and ellipses. Seethe SmartyPants web page for more information.
To make Markdown (or “Markdown With SmartyPants”) your defaulttext formatting option for new posts, go to Weblog Config:Preferences.
Note that by default, Markdown produces XHTML output. To configureMarkdown to produce HTML 4 output, see “Configuration”, below.
Blosxom
Markdown works with Blosxom version 2.0 or later.
Rename the “Markdown.pl” plug-in to “Markdown” (case isimportant). Movable Type requires plug-ins to have a “.pl”extension; Blosxom forbids it.
Copy the “Markdown” plug-in file to your Blosxom plug-ins folder.If you’re not sure where your Blosxom plug-ins folder is, see theBlosxom documentation for information.
That’s it. The entries in your weblog will now automatically beprocessed by Markdown.
If you’d like to apply Markdown formatting only to certainposts, rather than all of them, Markdown can optionally be used inconjunction with Blosxom’s Meta plug-in. First, install theMeta plug-in. Next, open the Markdown plug-in file in a texteditor, and set the configuration variable
$g_blosxom_use_meta
to 1. Then, simply include a “meta-markup: Markdown
” header lineat the top of each post you compose using Markdown.
BBEdit
Markdown works with BBEdit 6.1 or later on Mac OS X. It also workswith BBEdit 5.1 or later and MacPerl 5.6.1 on Mac OS 8.6 or later. Ifyou’re running Mac OS X 10.2 (Jaguar), you may need to install thePerl module Digest::MD5 from CPAN; Digest::MD5 comespre-installed on Mac OS X 10.3 (Panther).
Copy the “Markdown.pl” file to appropriate filters folder in your“BBEdit Support” folder. On Mac OS X, this should be:
See the BBEdit documentation for more details on the location ofthese folders.
You can rename “Markdown.pl” to whatever you wish.
That’s it. To use Markdown, select some text in a BBEdit document,then choose Markdown from the Filters sub-menu in the “#!” menu, orthe Filters floating palette
Configuration
By default, Markdown produces XHTML output for tags with empty elements.E.g.:
Markdown can be configured to produce HTML-style tags; e.g.:
Movable Type
You need to use a special MTMarkdownOptions
container tag in eachMovable Type template where you want HTML 4-style output:
The easiest way to use MTMarkdownOptions is probably to put theopening tag right after your <body>
tag, and the closing tag rightbefore </body>
.
To suppress Markdown processing in a particular template, i.e. topublish the raw Markdown-formatted text without translation into(X)HTML, set the output
attribute to ‘raw’:
Command-Line
Use the --html4tags
command-line switch to produce HTML output from aUnix-style command line. E.g.:
Type perldoc Markdown.pl
, or read the POD documentation within theMarkdown.pl source code for more information.
Acknowledgements
Aaron Swartz deserves a tremendous amount of credit for his feedback on thedesign of Markdown’s formatting syntax. Markdown is much better thanksto Aaron’s ideas, feedback, and testing. Also, Aaron’s html2textis a very handy (and free) utility for turning HTML intoMarkdown-formatted plain text.
Nathaniel Irons, Dan Benjamin, Daniel Bogan, and Jason Perkinsalso deserve thanks for their feedback.
Michel Fortin has ported Markdown to PHP; it’s a splendid port, and highly recommended for anyone looking for a PHP implementation of Markdown.
Markdown is probably the most commonly-used plain text markup used online, and is easy to get started with. The specific flavor of Markdown that Rippledoc uses is Pandoc-Markdown. Here’s a quick example of some pandoc-markdown -formatted text: first as the source you’d put into your file, then rendered as html.
And here’s that text rendered as html:
Paragraphs are separated by a blank line.
2nd paragraph. Italic, bold, and monospace
. Itemized lists look like:
- this one
- that one
- the other one
Note that — not considering the asterisk — the actual text content starts at 4-columns in.
Block quotes are written like so.
They can span multiple paragraphs, if you like.
Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., “it’s all in chapters 12–14”). Three dots … will be converted to an ellipsis. Unicode is supported. ☺
An h2 header
Here’s a numbered list:
- first item
- second item
- third item
Note again how the actual text starts at 4 columns in (4 characters from the left side). Here’s a code sample:
As you probably guessed, indented 4 spaces. By the way, instead of indenting the block, you can use delimited blocks, if you like:
(which makes copying & pasting easier). You can optionally mark the delimited block for Pandoc to syntax highlight it:
An h3 header
Now a nested list:
First, get these ingredients:
- carrots
- celery
- lentils
Boil some water.
Dump everything in the pot and follow this algorithm:
Do not bump wooden spoon or it will fall.
Notice again how text always lines up on 4-space indents (including that last line which continues item 3 above).
Here’s a link to a website, to a local doc, and to a section heading in the current doc. Here’s a footnote 1.
Tables can look like this:
Name | Size | Material | Color |
---|---|---|---|
All Business | 9 | leather | brown |
Roundabout | 10 | hemp canvas | natural |
Cinderella | 11 | glass | transparent |
(The above is the caption for the table.) Pandoc also supports multi-line tables:
Keyword | Text |
---|---|
red | Sunsets, apples, and other red or reddish things. |
green | Leaves, grass, frogs and other things it’s not easy being. |
A horizontal rule follows.
Here’s a definition list:
- apples
- Good for making applesauce.
- oranges
- Citrus!
- tomatoes
- There’s no “e” in tomatoe.
Again, text is indented 4 spaces. (Put a blank line between each term and its definition to spread things out more.)
Here’s a “line block” (note how whitespace is honored):
Markdown Example File
Line too
Line tree
and images can be specified like so:
Inline math equation: (omega = dphi / dt). Display math should get its own line like so:
Markdown Example Problem
[I = int rho R^{2} dV]
Markdown Example Code
And note that you can backslash-escape any punctuation characters which you wish to be displayed literally, ex.: `foo`, *bar*, etc.
Pandoc also allows you to do a few more things besides. You can read more about that in the Pandoc Manual.
Markdown Example Math
Some footnote text.↩