Markdown
General
- Markdown - 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).
- https://en.wikipedia.org/wiki/Markdown - a lightweight markup language with plain text formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor. Since the initial description of Markdown contained ambiguities and unanswered questions, the implementations that appeared over the years have subtle differences and many come with syntax extensions.
- https://github.com/rhythmus/markdown-resources - A curated collection of Markdown resources: apps, dialects, parsers, people, …
https://lobste.rs/s/klrbfr/why_isn_t_there_formal_grammar_for
Variations
- The Future of Markdown - 25 Oct 2012 [2]
In March 2016 RFC 7763 and RFC 7764 were published. RFC 7763 introduced MIME type text/markdown with the original variant. RFC 7764 discusses and registered the variants MultiMarkdown, GitHub Flavored Markdown (GFM), Pandoc, CommonMark, and Markdown Extra among others.
- https://tools.ietf.org/html/rfc7763 - The text/markdown Media Type [3]
- https://tools.ietf.org/html/rfc7764 - Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations [4]
- http://blogs.plos.org/mfenner/2012/12/13/a-call-for-scholarly-markdown/
- http://indiewebcamp.com/2013/Citations_and_Scholarly_Markdown
- http://arstechnica.com/information-technology/2014/10/markdown-throwdown-what-happens-when-foss-software-gets-corporate-backing/
- Why Markdown Is Not My Favourite Language - 30 July 2012 - recommends Creole [5]
CommonMark
- CommonMark - A strongly defined, highly compatible specification of Markdow [6]
- https://github.com/karlcow/markdown-testsuite - This project was initiated to provide a test suite for Markdown markup, and eventually create a specification from this test results. A part of of the community has started a new endeavor which seems to get traction as CommonMark.
MyST
- Markedly Structured Text - A Sphinx and Docutils extension to parse MyST, a rich and extensible flavour of Markdown for authoring technical and scientific documentation.
- MyST Markdown Tools - an ecosystem of open-source, community-driven tools designed to revolutionize scientific communication. Our powerful authoring framework supports blogs, online books, scientific papers, reports and journals articles.
- https://github.com/executablebooks/MyST-Parser - a rich and extensible flavor of Markdown meant for technical documentation and publishing. MyST is a flavor of markdown that is designed for simplicity, flexibility, and extensibility. This repository serves as the reference implementation of MyST Markdown, as well as a collection of tools to support working with MyST in Python and Sphinx. It contains an extended CommonMark-compliant parser using markdown-it-py, as well as a Sphinx extension that allows you to write MyST Markdown in Sphinx.
- MyST Specification - designed to create publication-quality, computational documents written entirely in Markdown. The main use case driving the development and design of MyST is JupyterBook, which creates educational online textbooks and tutorials with Jupyter Notebooks and narrative content written in MyST.
There are three components that this documentation and repository aims to formalize:
- the MyST markup language, which is a superset of CommonMark (a standard form of Markdown); =
- the MyST abstract syntax tree (AST), which is the datastructure of a document after it has been parsed, and can be used in transforming and rendering content;
- and a set of unit-tests that can be used to test implementations of MyST (e.g. in Python and Javascript).
MyST is a superset of CommonMark (a standard form of Markdown) and allows you to directly create “directives” and “roles” as extension points in the language. These extensions points are influenced by ReStructured Text (RST) and Sphinx -- pulling on the nomenclature and introducing additional standards where appropriate. directives are block-level extension points, like callout panels, tabs, figures or embedded charts; and roles are inline extension points, for components like references, citations, or inline math.
MyST Abstract Syntax Tree - the specification for MyST documents can be broken down into abstract syntax tree (AST) node types and their document-level counterparts. The myst-spec AST builds on Markdown AST, or mdast, an intermediate format that in turn builds upon the existing Universal Syntax Tree, or unist spec. unist is used throughout the unifiedjs Javascript community with hundreds of existing transformations, utilities and serializers. unist has a simple format, with a type defining the node optional properties on the node and optional children (a leaf node has a value). The MyST AST introduces nodes for directives and roles, as well as numerous new features, like admonitions, citiations, and equations, all of which build upon mdast and other existing standards and nomenclature. The MyST AST, like mdast, is serializable to JSON or YAML, and can be effectively shared between projects, languages, and implementations.
MyST Test Cases To validate implementations of MyST spec, a suite of test cases is provided here in myst.tests.json. This file is a JSON list of test cases with MyST markup, MyST AST, and some example HTML (optional). The cases are similar to CommonMark test cases with the addition of the AST representation. The MyST test cases include all the CommonMark examples as well as many MyST specific examples.
- MyST Enhancement Proposals - A formal process for changing the MyST Markdown Specification and an archive of present and past proposals.
GitHub
MultiMarkdown / MMD
- MultiMarkdown - or MMD, is a tool to help turn minimally marked-up plain text into well formatted documents, including HTML, PDF (by way of LaTeX), OPML, or OpenDocument (specifically, Flat OpenDocument or ‘.fodt’, which can in turn be converted into RTF, Microsoft Word, or virtually any other word-processing format). MMD is a superset of the Markdown syntax, originally created by John Gruber. It adds multiple syntax features (tables, footnotes, and citations, to name a few), in addition to the various output formats listed above (Markdown only creates HTML). Additionally, it builds in “smart” typography for various languages (proper left- and right-sided quotes, for example).
- https://en.wikipedia.org/wiki/MultiMarkdown - a lightweight markup language created by Fletcher T. Penney as an extension of the Markdown format. It supports additional features not available in plain Markdown syntax. There is also a text editor with the same name that supports multiple export formats. File format description The MultiMarkdown language adds the following features to the basic Markdown specification: footnotes tables citations and bibliography (works best in LaTeX using BibTeX, math support, automatic cross-referencing ability, smart typography, with support for multiple languages, image attributes, table and image captions, definition lists, glossary entries (LaTeX only), document metadata (e.g. title, author, date, etc.)
R Markdown
- R Markdown - provides an authoring framework for data science. You can use a single R Markdown file to both save and execute code generate high quality reports that can be shared with an audience R Markdown documents are fully reproducible and support dozens of static and dynamic output formats. R Markdown documents are fully reproducible. Use a productive notebook interface to weave together narrative text and code to produce elegantly formatted output. Use multiple languages including R, Python, and SQL. R Markdown supports dozens of static and dynamic output formats including HTML, PDF, MS Word, Beamer, HTML5 slides, Tufte-style handouts, books, dashboards, shiny applications, scientific articles, websites, and more. Need R Markdown in production? Learn how to publish and schedule reports, enable self-service customization, and distribute beautiful emails using RStudio Connect.
Markdown Extra
- Markdown Extra - an extension to PHP Markdown implementing some features currently not available with the plain Markdown syntax. Markdown Extra is available as a separate parser class in PHP Markdown Lib.
Markdown Extended
- Markdown Extended is an extended implementation of John Gruber's original markdown syntax to write reach contents from simple text files such as common .txt
MDX
- MDX - allows you to use JSX in your markdown content. You can import components, such as interactive charts or alerts, and embed them within your content. This makes writing long-form content with components a blast.
- What is MDX? | MDX - This article explains what the MDX format is. It shows how markdown, JSX, JavaScript expressions, and import and export statements in ESM can be used inside MDX.
Fountain
- Fountain - a simple markup syntax for writing, editing and sharing screenplays in plain, human-readable text. Fountain allows you to work on your screenplay anywhere, on any computer or tablet, using any software that edits text files.
Tools
- Lorem Markdownum - Inspired by the many excellent lorem ipsum generators, this simple webapp generates placeholder text. However, instead of generating plain text, this generator gives you structured text in the form of markdown. In order to do so, it uses Markov Chains and many heuristics.
- https://github.com/artempyanykh/marksman - Write Markdown with code assist and intelligence in the comfort of your favourite editor.
Browser
- Markdown Here - a Google Chrome, Firefox, Safari, Opera, and Thunderbird extension that lets you write email in Markdown and render them before sending. It also supports syntax highlighting (just specify the language in a fenced code block).
CSS / JS
- Markdown.css - CSS to make HTML markup look like plain-text markdown.
- PageDown - the JavaScript Markdown previewer used on Stack Overflow and the rest of the Stack Exchange network. It includes a Markdown-to-HTML converter and an in-page Markdown editor with live preview.
- Markdeep - a technology for writing plain text documents that will look good in any web browser. It supports diagrams, common styling conventions, and equations as extensions of Markdown syntax. [9]
- Showdownjs - A Markdown to HTML bidirectional converter written in Javascript!
Terminal
See also TUI
- https://github.com/willmcgugan/textual-markdown - an experimental "Markdown browser" for the terminal, built with Textual.Markdown in the terminal is not unusual. Rich has a decent Markdown renderer, but its output is essentially static. Textual Markdown creates a more dynamic Markdown document you can interact with: there are working links, code fences with scrollbars, and tables. Links must be relative and on the filesystem for now. These could be made to load from the network for a more browser like experience. It is also relatively easy to intercept links and handle them programatically. Opening up custom hypertext like applications. And finally, there is a TOC (Table Of Contents) extracted from the Markdown, which can be used to navigate the document.
Table of Contents
- DocToc - Generates table of content for markdown files inside github repositoriesTweet
cat ~/projects/Dockerfile.vim/README.md | ./gh-md-toc - * [Dockerfile.vim](#dockerfilevim) * [Screenshot](#screenshot) * [Installation](#installation) * [OR using Pathogen:](#or-using-pathogen) * [OR using Vundle:](#or-using-vundle) * [License](#license)
WYSIWYM
- https://github.com/portive/wysimark - The Rich Text Editor for Markdown. Supports 100% of the CommonMark and GFM Markdown specs. Features tables, check lists, images, emojis and attachments.
Configuration
JSON
- Markdown Syntax for Object Notation (MSON) - This document is a proposal of Markdown syntax for JSON & JSON Schema.
Systems
WikiCreole
Alternatives
- phpBB BBCode - a special implementation of HTML. Whether you can actually use BBCode in your posts on the forum is determined by the administrator. In addition you can disable BBCode on a per post basis via the posting form. BBCode itself is similar in style to HTML, tags are enclosed in square brackets [ and ] rather than < and > and it offers greater control over what and how something is displayed. Depending on the template you are using you may find adding BBCode to your posts is made much easier through a clickable interface above the message area on the posting form. Even with this you may find the following guide useful.
- CriticMarkup - a way for authors and editors to track changes to documents in plain text. As with Markdown, small groups of distinctive characters allow you to highlight insertions, deletions, substitutions and comments, all without the overhead of heavy, proprietary office suites.
- Quaint - a markup language similar to Markdown, but more regular and easier to customize.
Services
- https://app.simplenote.com - mobile and desktop apps. no TOC.
- http://socrates.io/#tFoy0r1 - no TOC
- https://somd.ch/ - no TOC
- https://markable.in - preview pane has a weird horizontal scroll going on..
- https://pandao.github.io - preview pane doesn't sync correctly
- https://marxi.co/ - only saves to Evernote
- http://mdp.tylingsoft.com/ - $. Local Storage doesn't work in hosted demo.
- http://fuckyeahmarkdown.com/ [11] - WEB 2 MARKDOWN
Presentation
CV / résumé
resume
- https://github.com/mwhite/resume - a simple Markdown resumé template, LaTeX header, and pre-processing script that can be used with Pandoc to generate professional-looking PDF and HTML output.
HackMyREsume
requires wkhtmltopdf
Conversion
See Documents
install imagemagick sudo npm install -g phantomjs-prebuilt github-markdown-to-png github-markdown-to-png -i yourmarkdownfile.md
github-markdown-to-png -i yourmarkdownfile.md -o png-dir
- https://github.com/joeyespo/grip - a command-line server application written in Python that uses the GitHub markdown API to render a local readme file. The styles come directly from GitHub, so you'll know exactly how it will appear. Changes you make to the Readme will be instantly reflected in the browser without requiring a page refresh.
- allmark - a file-system-centric markdown web server. You can point it at any directory that contains markdown files and it will immediately start a web-server that serves the rendered HTML content of the markdown file to you. And it will not only render the markdown files in your directory as HTML, but it will also add everything that it needed for a complete website: Navigation, Full-text Search, Theming, Sitemap, RSS, Tags, … on-the-fly with websocket-based live-reload. Animation: Cloning allmark from github, building it and taking it out for a test run on the allmark repository itself, and thanks to the power of go all of this is super fast and done with a single standalone application.
Viewers
Terminal
- https://github.com/axiros/terminal_markdown_viewer - Python based Markdown viewer for the terminal might be a good option.
- https://github.com/visit1985/mdp - A command-line based markdown presentation tool. [12]