# Markdown

- Page: https://shared.btbytes.com/p/markdown
- Date: 2019-12-14
- Tags: markdown

Why Use plain text (like markdown) to write things? Dr Kieran Healy has a [nice website explaining how](http://plain-text.co/index.html)

[The Markdown Guide for the Perplexed](https://github.com/tajmone/markdown-guide)


## Desktop Tools


I  MarkEdit  as the default app to open `.md` files on MacOS. Otherwise it is painful to wait for XCode to open it. MarkEdit is quite fast and nimble. I have also used Typora before for the same thing before.

- [MarkEdit](https://github.com/MarkEdit-app/MarkEdit) is a MacOS app to edit Markdown files. It is open source.
- [SilverBullet](https://silverbullet.md/) is an extensible, [open source](https://github.com/silverbulletmd/silverbullet), **personal
knowledge management** application. Indeed, fundamentally that’s fancy talk for “a note-taking app with links.”. It is also written in [Deno](https://shared.btbytes.com/p/deno) + [Typescript](https://shared.btbytes.com/p/typescript)
- [Typora — a minimal markdown reading & writing app](https://www.typora.io/) is probably the most featureful Markdown editor for Mac.
- [Markdeep](https://casual-effects.com/markdeep/) is 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.
- [Marp](https://yhatt.github.io/marp/) is a cross-platform Markdown Presentation Writer. [HN discussion](https://news.ycombinator.com/item?id=12079671)
- [MedleyText - Take programming notes with style](http://web.archive.org/web/20161229051336/http://medleytext.net/)
- [MindForger - Thinking Notebook and Markdown IDE](http://www.mindforger.com/#download)
- [VNote - A note-taking application that knows programmers and Markdown better](http://web.archive.org/web/20181230060731/https://tamlok.github.io/vnote/en_us/) -- Qt app.
- [fabiospampinato/notable: The markdown-based note-taking app that doesn't suck.](https://github.com/fabiospampinato/notable) -- Electron app.
* [Glow](https://github.com/charmbracelet/glow) terminal based markdown reader.
* [markdown-service-tools](https://brettterpstra.com/projects/markdown-service-tools/)  are a collection of OS X Services designed to make writing Markdown text that much easier.
* [PanWriter](https://panwriter.com/) Markdown editor for macOS, Windows and Linux.
* [MarkdownDown](https://markdowndown.vercel.app/)  -- "Convert any webpage to a clean markdown   w/ images downloaded."

## Web tools

[uselink — Turn any doc into a living, shareable link](https://uselink.app/)

## Wrappers

### [Foliant](https://foliant-docs.github.io/docs/)

> Foliant is a all-in-one documentation authoring tool. It lets you produce standalone documents in pdf and docx, as well as websites, from single Markdown source.
> Foliant is a higher order tool, which means it uses other programs to do its job. For pdf and docx, it uses Pandoc, for websites it uses MkDocs.
> Foliant preprocessors let you include parts of documents in other documents, show and hide content with flags, render diagrams from text, and much more.

Who Is Foliant for?

You'll love Foliant if you:

* need to ship documentation as pdf, docx, and website forms
* want to use Markdown with consistent extension system instead of custome syntax for every new bit of functionality
* like reStructuredText's extensibility and Asciidoc's flexibility, but actually would rather use Markdown
* want a tool that you can actually write custom extensions for without dealing with something as overengineered as Sphinx
* have documentation spread across many repos and want to reuse parts between documents

### [pp - A generic Preprocessor (with Pandoc in mind)](http://cdsoft.fr/pp/)

PP is a text preprocessor designed for Pandoc (and more generally Markdown and reStructuredText).

`pp` now implements:

* macros
* [literate](https://shared.btbytes.com/p/literate) programming
* GraphViz, PlantUML and ditaa diagrams
* Asymptote and R figures
* Bash, Cmd, PowerShell, Python, Lua, Haskell and R scripts
* Mustache

---

[GitHub - drasimwagan/mdv: MDV — a Markdown superset for documents, dashboards, and slides with embedded data and visualizations. HTML + PDF export, live preview, VS Code extension. · GitHub](https://github.com/drasimwagan/mdv)


## Markdown to PDF conversion

- [yogsototh/mkdocs: No brainer Markdown to HTML and PDF](https://github.com/yogsototh/mkdocs)
- [Geemili/mdproof: A standalone markdown to PDF converter](https://github.com/Geemili/mdproof)
- [parrt/bookish: A tool that translates augmented markdown into HTML or latex](https://github.com/parrt/bookish) -- "a translator that generates HTML using SVG for equations and PDF from native latex equations." It was created to write this document with 100s of equations -- ["The Matrix Calculus You Need For Deep Learning"](http://web.archive.org/web/20180130174648/http://parrt.cs.usfca.edu/doc/matrix-calculus/index.html)
- [vsch/flexmark-java: Java Markdown parser with source level AST. CommonMark 0.28, emulation of: pegdown, kramdown, markdown.pl, MultiMarkdown. With HTML to MD, MD to PDF, MD to DOCX conversion modules.](https://github.com/vsch/flexmark-java)


## HTML to Markdown

[Show HN: HTML-to-Markdown – convert entire websites to Markdown with Golang/CLI | Hacker News](https://news.ycombinator.com/item?id=42093511) -- a few tools mentioned,  like [jina.ai](https://jina.ai)

[markdown.new - Markdown for Agents \| Cloudflare-Powered URL to Markdown](https://markdown.new)

## Markdown Styling

[ReMarkdown — HTML that looks like Markdown text](https://fvsch.github.io/remarkdown/)


## Command line tools

- [SDocs](https://sdocs.dev)  -- `sdoc path/to/README.md` opens your file at [https://sdoc.dev](https://sdoc.dev/) with pleasant default styles which can be altered. Share the url to share your file + custom styling. **Your file never hits the SDocs server:** Encoded file content lives in the URL fragment
- [becheran/mlc: Check for broken links in markup files](https://github.com/becheran/mlc)
- [Automatic citation extraction from URLs - phiresky's blog](https://phiresky.github.io/blog/2019/pandoc-url2cite/?) (`pandoc-url2cite`)
- [mermaid - Generation of diagrams and flowcharts from text in a similar manner as markdown.](http://knsv.github.io/mermaid/)
- [Markdown to Confluence Convertor](http://www.jedi.be/blog/2011/12/15/markdown-to-confluence-conversion/). TL;DR -- Install: `gem install markdown2confluence` and use it: `markdown2confluence foo.md`
- [lunaryorn/mdcat: Cat for markdown](https://github.com/lunaryorn/mdcat)
- [termbook](https://byron.github.io/termbook/) is a command-line tool and library designed to make  `mdbook` documentation executable. "...it is essentially nothing more than an mdbook clone with a custom preprocessor."
- [Demobox](https://jaredforsyth.com/demobox/index.html)  is a quick & stylish way of getting a demo page up and running for your new react component.

Python One liner:

```bash
python3 -m markdown -x markdown.extensions.fenced_code -x markdown.extensions.codehilite index.md > index2.html
```
- [mq – jq-like tool for Markdown processing](https://mqlang.org/)

```
mq '.h' demo.md
... lists all the h elements .. 

```


## Browser tools

- [HackMD - Collaborative markdown notes](https://hackmd.io/) via [Data stories](https://hackmd.io/s/HJcNByyD7)
- [Markdown Presentations For Developers on GitHub, GitLab and Bitbucket - GitPitch](https://gitpitch.com/). Typical - GitPitch Slideshow URL <https://gitpitch.com/user/repo/branch>.
- [Remark](https://remarkjs.com/#1) -- "A simple, in-browser, Markdown-driven slideshow tool targeted at people who know their way around HTML and CSS"
- [ivanceras/spongedown: Markdown with svg bob support](https://github.com/ivanceras/spongedown). [docs](https://ivanceras.github.io/spongedown/). [LIVE](http://ivanceras.github.io/svgbob-editor/)
- [hiroppy/fusuma: ✍️Make slides with Markdown easily.](https://github.com/hiroppy/fusuma)
- [Convert Medium Posts to Markdown](https://makemediumreadable.com/read) -- "Make Medium Reable Again"
- [blocks.md - Markdown to amazing forms and web pages](https://blocks.md/)

## Python Markdown

This is intersting to me because i use Python Markdown to render this site, and use many built-in and third party extensions.

- [facelessuser/pymdown-extensions: Extensions for Python Markdown](https://github.com/facelessuser/pymdown-extensions); Not using this yet, but looks interesting for learning; Apr 2023.

## Libraries

[Mistune](https://mistune.readthedocs.io/en/latest/) for Python

: * claims to be fastest markdown renderer for Python
  * `mistune.markdown('I am using **mistune markdown parser**')`
  * options are configurable
  * [contribs](https://github.com/lepture/mistune-contrib)

[lowdown — simple markdown translator](https://kristaps.bsd.lv/lowdown/) is a Markdown translator producing HTML5 and roff documents in the ms and man formats. Written in C. "Beyond the basic Markdown syntax support, lowdown supports the following Markdown features and extensions: autolinking, fenced code, tables, superscripts, footnotes, disabled inline HTML, “smartypants”, metadata, commonmark (in progress).  You can control which parser features are used by using the -d (disable feature) and -e (enable feature) flags."

[Gottox/smu: simple markup - markdown like syntax](https://github.com/Gottox/smu)

[syntax-tree/mdast: Markdown Abstract Syntax Tree format](https://github.com/syntax-tree/mdast); see also [syntax-tree/unist: Universal Syntax Tree used by unifiedjs](https://github.com/syntax-tree/unist)

[lkesteloot/teamten's markdown parser in Java](https://github.com/lkesteloot/teamten/blob/master/src/main/java/com/teamten/markdown/MarkdownParser.java) is very easy to understand how the parsing works. It is a good read!

[wernsey/d.awk: An Awk script to generate documentation from Markdown comments in C, C++, Java, JavaScript, C# source code.](https://github.com/wernsey/d.awk)

[Markdown for the component era | MDX](https://mdxjs.com/) <q>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. 🚀</q>


## Competing mark-up languages

* [Shirakumo/markless: An text markup standard focusing on being intuitive and fast to parse.](https://github.com/shirakumo/markless)
* [bakpakin/bkdoc: Markup format and compiler that can output to different document formats.](https://github.com/bakpakin/bkdoc)
* [ArchieML](http://archieml.org/) --" was created at The New York Times to make it easier to write and edit structured text on deadline that could be rendered in web pages, or more specifically, rendered in interactive graphics.One of the main goals was to make it easy to tag text as data, without having type a lot of special characters."
* [eno](https://eno-lang.org/eno/) -- " is a structured, plain-text notation language, related in many ways to its ancestors and relatives JSON, YAML, TOML, ArchieML, StrictYAML, and others. Through its simple syntax and versatile nature it targets a wide audience, both in regards to cultural background as well as technical ability. As a modern foundational technology for file-based content it enables highly productive and reliable application development, and the possibility to create file-based content applications for a wider and more diverse user audience than was previously possible."
* [Documenting and Presenting with Pillar](https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/PillarChap/Pillar.html) Pillar is a markup syntax and associated tools to write and generate documentation and books. (from the Smalltalk world).
*   [typst](https://shared.btbytes.com/p/typst) [Typst A Programmable Markup Language for Typesetting](https://www.user.tu-berlin.de/laurmaedje/programmable-markup-language-for-typesetting.pdf) (PDF)
* [MyST Markdown - Tools for the future of technical communication - MyST Markdown](https://mystmd.org/)
* nota
* [Quaint](http://breuleux.github.io/quaint/) is a _markup language_ that you can use to write documents. It is similar to `Markdown`, but it is **more powerful** and **more extensible**.
* [LiaScript](https://liascript.github.io/#About) "a simple and extendable Markdown-dialect that allows sharing knowledge by creating interactive courses in an Open-Source manner, where anyone can participate and contribute."
* [Podlite](https://podlite.org/) is a lightweight block-based markup language designed for flexibility and ease of use. [podlite+next.js](https://github.com/podlite/podlite-web); [online playground](https://pod6.in/)
* [Standoff Markup](https://handmade.network/p/375/standoff-markup-explorer/)
- [Bookish](https://github.com/parrt/bookish) is an xml-ish + some markdown format for books and articles that it can convert to HTML and latex; used to generate this article: [The Matrix Calculus You Need For Deep Learning](https://explained.ai/matrix-calculus/index.html) and [PDF](https://arxiv.org/abs/1802.01528)
- [iamgio/quarkdown: 🪐 Markdown with superpowers.](https://github.com/iamgio/quarkdown); [Quarkdown demo](http://web.archive.org/web/20240822015822/https://iamgio.eu/quarkdown/demo/)
