Semantic Markdown (SMD)
Introduction
DON'T USE THIS YET! I RECOMMEND WAITING FOR VERSION 1.0.0
Semantic Markdown is a bit like a custom markdown development environment as well as contains a default implementation in javascript. The default implementation of SMD attempts to make easy marking up web pages with good HTML5 and schema, and contains tools for adding styling, so you can run it on a markdown document and immediately sent to a friend or upload it.
Contents
Purpose
The purpose of this project is to:
- Help create custom markdown flavors.
- Translate markdown flavors into each other.
- Make markdown settings an authoring choice, not a developer choice.
- Create a powerful, intuitive default implementation with many "bells and whistles".
- Provide Authoring language suggestions similarly to Grammarly and Readable, but integrated into the development pipeline.
- Make Semantic HTML and Schema markup easy and fun to create.
- Making authoring fun.
Design
- Hackable.
- Human Readable.
- Expressive. Low language redundancy. This is similar to Pythons principle of There's Only One Way To Do It
- Input and Output Document should look as close as is possible. For example, a plain text file written in SMD should resemble how a browser renders the output HTML.
- Sticks as close as possible to the original markdown.
The principles here are given in order of preference. The construction of the default syntax is decided as deductively as possible around these principles. Due to the first principle being "hackable", you can essentially re-order the guiding principles according to your own preference. Eventually, a full specification of a markdown ruleset should be able to translate into any other ruleset.
Roadmap
- [ ] Base Rules
- [ ] headings
- [x] h1-h6: left side atx headings
- [ ] h1-h6: two side atx headings
- [ ] h1-h6: setext style headings
- [x] ul
- [x] li
- [ ] ol
- [x] phrasing
- [x] em
- [x] strong
- [x] sub
- [x] sup
- [ ] Code
- [x] inline code
- [x] block code
- [ ] testing
- [ ] headings
- [ ] Meta
- [ ] Wrapping with HTML boilerplate
- [ ] Including css styles
- [x] Critic
- [x] insert
- [x] delete
- [x] mark
- [x] comment
- [ ] Links
- [ ] Inline links
- [ ] Reference links
- [ ] Schema ontology links
- [ ] Interpreters
- [ ] Mathjs
- [x] Math expression toTex
- [x] Evaluate inline Math
- [ ] testing
- [ ] inline javascript
- [ ] chart.js (charts)
- [ ] mermaid.js (uml digrams)
- [ ] abcjs (music)
- [ ] Mathjs
- [ ] Language and Syntax Tools
- [ ] Browser Inline Dictionary lookup
- [ ] readeasy suggestions on compilation
- [ ] Front Matter
- [ ] Editing of rules using YAML files
- [ ] Writing yaml rulesets for various markdown flavors
- [ ] Include Components
- [ ] Forms
- [ ] Video
- [ ] Audio
These are various flavors of markdown, some or all for which I hope to write rulesets using smd
interpretable yaml specifications.
-
[ ] Initial Custom Rulesets
-
[ ] Existing Markdown Standards
- [ ] CommonMark
- [ ] CriticMarkup
- [ ] Discount
- [ ] DocFX
- [ ] Ghost's Markdown/Haunted Markdown
- [ ] GitHub Flavored Markdown
- [ ] Gitlab
- [ ] Haroopad Flavored Markdown
- [ ] iA Writer's Markdown
- [ ] Kramdown
- [ ] Leanpub Flavored Markdown
- [ ] Litedown
- [ ] Lunamark
- [ ] Madoko
- [ ] Markdown
- [ ] Markdown 2
- [ ] Markdown Extra
- [ ] Markdown-it
- [ ] Markua
- [ ] Maruku
- [ ] MultiMarkdown
- [ ] Pandoc's Markdown
- [ ] PHP Markdown Extra Extended
- [ ] Python Markdown
- [ ] Redcarpet
- [ ] Remarkable
- [ ] Rhythmus
- [ ] Scholarly Markdown
- [ ] Showdown
- [ ] StackOverflow's Markdown
- [ ] Taiga Markdown
- [ ] Trello's Markdown
- [ ] vfmd
- [ ] Xcode/Swift Playgrounds Markup
Release Notes
Release 0.1.15
- Tidy README.md
Release 0.1.14
add to readme specs
Release 0.1.13
added keywords to package.json
Release 0.1.12
tidy readme
Release 0.1.8
- basic functionality
- headers
- unordered list
Phrasing Markup
- em
- strong
- sub
- sup
Critic Markup
- ins
- del
- mark
- comment
Math
- mathjax