Awesome
Awesome Series @ Write Kit
Markdown (Syntax & Extensions, Documentation & Cheat Sheets, Libraries, ...) • Markdown Editors & (Pre)viewers • Books (Services, Hand-Written, Auto-Built w/ Open Data, ...)
Awesome Markdown
A collection of awesome markdown goodies (libraries, services, editors, tools, cheatsheets, etc.)
Note: :octocat: stands for the GitHub page and :gem: stands for the RubyGems page.
[ANNOUNCEMENT] Looking for the latest news, tools, tips & tricks, and more about markdown and friends? Follow along the Manuscripts News (@manuscriptsnews) channel on twitter for updates.
Contributions welcome. Anything missing? Send in a pull request. Thanks.
Table of Contents
<!-- Generated with [markedpp](#markedpp). Get [nodejs](https://nodejs.org) first 1. $ npm i -g markedpp 2. $ markedpp --github -o README.md README.md --> <!-- !toc (minlevel=2 omit="Table of Contents") -->- Markdown
- Markdown Syntax Extensions
- Manuscripts
- CommonMark
- GitHub Flavored Markdown (GFM)
- Vanilla Flavored Markdown (VFMD)
- Markdown Documentation
- Markdown Building Blocks
- Markdown Libraries & Tools
- Babelmark
- Markdown Style Guides / Best Practices
- Markdown Lint / Style Rule Checker
- Markdown Web Components / Custom Elements
- Markdown to Website / Blog
- Markdown to Email
- Markdown to Presentation / Slideshow
- Markdown to Portable Document Format (PDF)
- Markdown Styles / Documents / Pages
- Markdown to Books
- Markdown to Table of Contents (TOC)
- Markdown to Markdown Pre-Processor
- Convert to Markdown Tools
- Book Services
- Articles
- Meta
Markdown
email-style writing for the web by John Gruber and Aaron Swartz
- Markdown (web: daringfireball.net/projects/markdown) - original Markdown syntax write-up and processor in Perl by John Gruber; no longer maintained (last update in December 2004)
History / Genesis
-
Introducing Markdown by John Gruber - March 15, 2004
I've written a text-to-HTML formatting tool called Markdown, which is now available for download. Markdown allows web writers to compose text using a simple, readable, plain text formatting syntax; Markdown takes care of translating it to valid XHTML (or, if you prefer, HTML).
-
Dive into Markdown by John Gruber - March 19, 2004
You don't need to "preview" an email before you send it -- you write it, you read it, you edit it, right there.
In fact, I love writing email. Email is my favorite writing medium. I've sent over 16,000 emails in the last five years. The conventions of plain text email allow me to express myself clearly and precisely, without ever getting in my way.
Thus, Markdown. Email-style writing for the web.
-
Markdown by Aaron Swartz - March 22, 2004
For months I've been working with John Gruber on a new project. The idea was to make writing simple web pages, and especially weblog entries, as easy as writing an email, by allowing you to use much the same syntax and converting it automatically into HTML.
Together we pored over the syntax details from top to bottom, trying to develop the perfect format, and I think we've got something pretty darn great. We've tested it extensively: on our blogs, in my comments form, in our emails.
Documentation
Markdown Syntax Extensions
- SmartyPants - convert (c) into ?, "" into ?, etc.
- Emojis - :octocat:
- CriticMarkup - :octocat:
- GitHub Flavored Markup (GFM) - @mention, to do lists w/ [ ] and [x], etc.
MultiMarkdown (MMD)
- MultiMarkdown (MMD) - Markdown extensions by Fletcher Penney adding footnotes, tables, definition lists, document metadata (e.g. title, author, date, etc.) and more; first added to MultiMarkdown.pl
- Cheatsheet - syntax quick reference
- Test Suite :octocat:
- MultiMarkdown.pl :octocat: - historic MultiMarkdown.pl code; converter script in Perl (last update in Jan 2011)
Markdown Extra
- Markdown Extra - Markdown extensions by Michel Fortin; first added to PHP Markdown (Extra)
- Dingus - try Markdown Extra in your browser
Markdown Extended (MDE)
- Markdown Extended (MDE) @ aboutmde.org
- Spec
- Cheatsheet - syntax quick reference; examples side-by-side
- Dingus - try Markdown Extended in your browser
- Code :octocat: - converter script in PHP
Manuscripts
Free book format for Markdown
Manuscripts
(web: manuscripts.github.io
,
github: manuscripts
) -
adds book.yml for book (meta) info e.g. title, author, publisher, year etc.
and contents.yml for table of contents and file structure
- Manuscripts Book Starter Kit (github:
manuscripts/book-starter
)
CommonMark
A strongly specified, highly compatible implementation of Markdown
CommonMark
(web: commonmark.org
)
- Spec (web:
spec.commonmark.org
) - Edited by John MacFarlane - Dingus (web:
spec.commonmark.org/dingus
) - try CommonMark in your browser - Talk (web:
talk.commonmark.org
) - Code (github:
jgm/CommonMark
) - spec and reference code in JavaScript and C
GitHub Flavored Markdown (GFM)
CommonMark with GitHub Extensions
GitHub Flavored Markdown (GFM)
- Spec (web:
github.github.com/gfm
) - Code (github:
github/cmark
- reference code in C (fork of cmark w/ extensions)
Extensions include:
Leaf Blocks: Tables ++ Container Blocks: Task list items ++ Inlines: Strikethrough; Autolinks; Disallowed Raw HTML
Vanilla Flavored Markdown (VFMD)
A variant of Markdown with an unambiguous specification of its syntax
Vanilla Flavored Markdown (VFMD)
(web: vfmd.org
, github: vfmd
)
- Spec (web: vfmd.org/vfmd-spec/specification) - Edited by Roopesh Chander
- Code (github:
vfmd/vfmd-src
) - reference code in C++
Differences include:
Intra-word emphasis; Simplified reference link/image syntax; Lists and the 4-space rule; Better automatic link detection; Double blank lines as end of blocks; Starting number in lists; Misnested constructs; Including raw HTML; Character encoding
Markdown Documentation
Markdown Cheatsheets / Quick References
Markdown Getting Started Guides / Tutorials
- Markdown Tutorial - :octocat:
- Mastering Markdown @ GitHub Guides
- Markdown Basics @ GitHub Help
- Markdown Guide
Markdown Building Blocks
Markdown Libraries & Tools
<a name="pandoc"></a>
Pandoc
(web: pandoc.org
,
github: github.com/jgm/pandoc) -
a universal document converter (in Haskell)
kramdown
(web: kramdown.gettalong.org
,
github: gettalong/kramdown
,
gem: kramdown
) -
markdown library & command line tool (in Ruby)
Markdown Extended (MDE)
(github: e-picas/markdown-extended
- transform plain text input (strings or files) in various output formats (in PHP)
<a name="marked"></a>
marked
(web: marked.js.org
, github: marked :octocat:) a markdown parser and compiler. Built for speed. (In Javascript)
<a name="markdown-it"></a>
markdown-it
(web: markdown-it.github.io
, github: markdown-it :octocat:) Javascript markdown parser. 100% CommonMark support, extensions, syntax plugins & high speed.
Is extensible with plugins.
concat-md (npm, github) CLI and API to concatenate markdown files and modify as necessary. Also adds titles from FrontMatter, file names and directory names, decreases level of existing titles to comply with added titles.
mdcode (github: mdcode) Markdown code block authoring tool. It enables testable code blocks, with two-way synchronization between code blocks and source files.
Babelmark
- Babelmark 2 - a tool for comparing the output of various implementations of Markdown syntax
- Babelmark 2 F.A.Q. - frequently asked questions (and answers) e.g. ... ??
Markdown Style Guides / Best Practices
to be done
Markdown Lint / Style Rule Checker
- markdownlint - A Node.js style checker and lint tool for Markdown/CommonMark files offering a good set of defaults. Allows for customization.
- mdformat - CommonMark compliant Markdown formatter
- mdlint to be done
- mdsf - Use your preferred code formatter to format markdown code snippets.
- vscode-markdownlint - Visual Studio Code Plugin enabling in-place linting of markdown files.
Markdown Web Components / Custom Elements
- Markdown-Tag - Render Markdown to HTML on any website using a md tag
<x-markdown>
- to be done
Markdown to Website / Blog
Jekyll
(web: jekyllrb.com
,
github: jekyll/jekyll
:octocat:,
gem: jekyll
:gem:) -
transform your plain text into static websites and blogs (in Ruby)
Middleman
(web: middlemanapp.com
,
github: middleman/middleman
:octocat:,
gem: middleman
:gem:) -
makes developing websites simple (in Ruby)
Slate (github: lord/slate :octocat:) - beautiful API documentation, based on Middleman
Shins (github: Mermade/shins
:octocat:, npm: shins
) – beautiful API documentation, with node.js (port of Slate)
md-fileserver (github: md-fileserver :octocat:, npm: md-fileserver
) – View markdown files locally in browser.
Compiiile (github: @compiiile/compiiile :octocat:, npm: @compiiile/compiiile
) – Preview and serve folders containing Markdown files with full-text search and presentation slides.
Markdown to Email
Markdown Here
(web: markdown-here.com
,
github: adam-p/markdown-here
) -
a browser extension for rendering email written in Markdown;
available for Chrome, Firefox, Safari, Thunderbird, and more;
besides email also works with Evernote, Google Groups, Blogger, and more
Markdown to Presentation / Slideshow
Slide Show (S9)
(web: slideshow-s9.github.io
,
github: slideshow-s9/slideshow
,
gem: slideshow
) -
a free web alternative to PowerPoint and Keynote in Ruby
- Templates (github:
slideshow-templates
)
Slidev (github: slidev
) - Slidev allows you to create slideshows from a markdown file. You can include HTML and Vue components in the markdown.
Markpress (github: markpress
) - A command line tool and node package to convert markdown files into self-contained impressjs html presentations. Example
nodePPT (github: nodePPT
) - A web presentation tool supporting markdown based on GFM.
Deckset (website: Deckset) – A macOS desktop app that renders Markdown presentations in beautifully designed templates.
GitPitch (website: GitPitch, github: gitpitch :octocat:) – Markdown Presentations For Everyone on GitHub, GitLab, Bitbucket, GitBucket, Gitea, and Gogs. Example
zoetic (github zoetic) - Markdown presentations with your webcam as your background while presenting
Markdown to Portable Document Format (PDF)
- markdown-pdf :octocat:, (npm Package) - converts Markdown files to PDFs
Markdown Styles / Documents / Pages
The Zen of Page Designs
(github: pagedesigns
)
Markdown to Books
The Zen of Book Designs
(github: bookdesigns
)
Hyper Book (H9) :octocat:, :gem:
Markdown to Table of Contents (TOC)
- Generate a markdown table of contents (TOC) with remarkable
(github:
markdown-toc
) - markedpp Markdown to Markdown Pre-Processor
- mdtoc :octocat: - Standalone TOC generator designed for CI
Markdown to Markdown Pre-Processor
<a name="markedpp"></a>
- markedpp (github: markedpp :octocat:) adds support for table-of-contents (TOC), numbered headings, includes other markdown files and/or create reference lists for use with different markdown processors like marked, markdown-it, pandoc or for hosting on github.com, gitlab.com, bitbucket.org or ghost.org.
Convert to Markdown Tools
Microsoft Word to Markdown
- word-to-markdowm gem :octocat:, :gem: - "liberate" content from the jail that is Microsoft Word documents; converts to plain-text Markdown
Hypertext Markup Language (HTML) to Markdown
Ruby
- reverse_markdown :octocat:, :gem: - map simple HTML back into markdown
- html2markdown :octocat:, :gem: - simple and flexible HTML to markdown converter
- hypertextmarkdown :octocat:, :gem: - HTML to markdown converter
- html2md :octocat:, :gem: - converts basic HTML to markdown
- unmarkdown :octocat:, :gem: - convert HTML to Markdown
- upmark :octocat:, :gem: - a HTML to Markdown converter
- remark :octocat: - HTML to Markdown converter in Ruby
JavaScript / Node.js
- turndown :octocat:, (npm Package), (Demo site) - a HTML to Markdown converter in JavaScript (formerly known as
to-markdown
) - html2markdown :octocat:, (npm Package) - converting HTML to Markdown
- Markitdown - A client-side web app that lets you paste formatted text from a webpage (e.g with links intact) and recieve markdown output.
- Markitdown.medusis.com :octocat: - A client-side web app for converting rich text to markdown
More
- heckyesmarkdown.com - instantly convert a webpage to markdown; the service presents a simple interface that converts any reasonable web page into markdown (note: the service seems to use the Readability API to remove all the non-content cruft from the source page before proceeding with markdownification)
Source Code to Markdown
Generate API documentation from source code in Markdown, then host it on the web using one of the many Markdown to Website tools to host and serve it.
- widdershins :octocat: - turn OpenAPI/Swagger REST API documentation to Markdown
- Moxygen :octocat: - Doxygen (C++, but also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL , Fortran, VHDL, Tcl, and to some extent D.) documentation to Markdown
- raml2html/markdown-theme :octocat: - turn RAML REST API documentation to Markdown using raml2html
- jsdoc-to-markdown :octocat: - JavaScript API documentation via JSDoc to Markdown
- mmarkdown :octocat: - Interpret mmd fenced code blocks in a markdown file and generate a cooler version of it.
- markpush - Firefox/Chrome Extension to push Articles on git repositories in a readable markdown format.
Technical Documentation to Markdown
- dita-ot-markdown – converts DITA into Markdown, integrates with standard DITA OT toolchain
Screencast to Markdown
- Paircast - Combines desktop video, git diffs, and voice transcriptions into markdown documentation.
JSON to Markdown
JavaScript / Node.js
- json2md - A JSON to Markdown converter.
- ts-markdown - An extensible TypeScript markdown generator that takes JSON and creates a markdown document.
Book Services
- Softcover.io - publish from the comfort of your command-line by Michael Hartl et al
- Softcover :octocat:, :gem: - a command line tool for book generation, building, and publishing
- GitBook.com - write and publish books with Markdown and Git by Samy Pessé et al
- GitBook :octocat: - a command line tool (and Node.js library) for building beautiful books using GitHub/Git and Markdown (or AsciiDoc)
- Bitbooks.cc (discontinued; archived) - Bitbooks turns a repo full of markdown files into a handsome, hosted, online book - by Bryan Braun
- Franklin :octocat: - a static-site framework, optimized for online books
Articles
- Why You Shouldn't Use Markdown for Documentation by Eric Holscher, March 2016
- Stop Using Markdown For Documentation by Anton Zolotukhin, April 2018
- Why isn't there a formal grammar for Markdown? by Roopesh Chander, September 2014
- The Ultimate Markdown Cheat Sheet
Meta
License
The awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.
Questions? Comments?
Send them along to the markdown-discuss mailing list. Thanks!