Awesome Series @ Write Kit
A collection of awesome markdown goodies (libraries, services, editors, tools, cheatsheets, etc.)
Note: :octocat: stands for the GitHub page and 💎 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
- Markdown Syntax Extensions
- GitHub Flavored Markdown (GFM)
- Vanilla Flavored Markdown (VFMD)
- Markdown Documentation
- Markdown Building Blocks
- Markdown Libraries & Tools
- 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
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.
Markdown Syntax Extensions
- SmartyPants - convert (c) into ?, "" into ?, etc.
- Emojis - :octocat:
- CriticMarkup - :octocat:
- GitHub Flavored Markup (GFM) - @mention, to do lists w/ and , etc.
- 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
- MultiMarkdown.pl :octocat: - historic MultiMarkdown.pl code; converter script in Perl (last update in Jan 2011)
- 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
- Code :octocat: - converter script in PHP
Free book format for Markdown
- Manuscripts Book Starter Kit (github:
A strongly specified, highly compatible implementation of Markdown
- Spec (web:
spec.commonmark.org) - Edited by John MacFarlane
- Dingus (web:
spec.commonmark.org/dingus) - try CommonMark in your browser
- Talk (web:
- Code (github:
GitHub Flavored Markdown (GFM)
CommonMark with GitHub Extensions
GitHub Flavored Markdown (GFM)
- Spec (web:
- Code (github:
github/cmark- reference code in C (fork of cmark w/ extensions)
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
- Spec (web: vfmd.org/vfmd-spec/specification) - Edited by Roopesh Chander
- Code (github:
vfmd/vfmd-src) - reference code in C++
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 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
Markdown Extended (MDE)
- transform plain text input (strings or files) in various output formats (in PHP)
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.
- 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
- 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
Slate (github: lord/slate :octocat:) - beautiful API documentation, based on Middleman
Markdown to Email
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
- Templates (github:
slidev) - Slidev allows you to create slideshows from a markdown file. You can include HTML and Vue components in the markdown.
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.
zoetic (github zoetic) - Markdown presentations with your webcam as your background while presenting
Markdown to Portable Document Format (PDF)
Markdown Styles / Documents / Pages
The Zen of Page Designs
Markdown to Books
The Zen of Book Designs
Markdown to Table of Contents (TOC)
- Generate a markdown table of contents (TOC) with remarkable
- markedpp Markdown to Markdown Pre-Processor
- mdtoc :octocat: - Standalone TOC generator designed for CI
Markdown to Markdown Pre-Processor
- 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:, 💎 - "liberate" content from the jail that is Microsoft Word documents; converts to plain-text Markdown
Hypertext Markup Language (HTML) to Markdown
- reverse_markdown :octocat:, 💎 - map simple HTML back into markdown
- html2markdown :octocat:, 💎 - simple and flexible HTML to markdown converter
- hypertextmarkdown :octocat:, 💎 - HTML to markdown converter
- html2md :octocat:, 💎 - converts basic HTML to markdown
- unmarkdown :octocat:, 💎 - convert HTML to Markdown
- upmark :octocat:, 💎 - a HTML to Markdown converter
- remark :octocat: - HTML to Markdown converter in Ruby
- 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
- 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
- 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
- json2md - A JSON to Markdown converter.
- ts-markdown - An extensible TypeScript markdown generator that takes JSON and creates a markdown document.
- Softcover.io - publish from the comfort of your command-line by Michael Hartl et al
- 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
- 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 awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.
Send them along to the markdown-discuss mailing list. Thanks!