chaussebenjamin / groffdown Goto Github PK
View Code? Open in Web Editor NEWA variant of markdown designed for groff like compilation efficiency.
License: GNU General Public License v3.0
A variant of markdown designed for groff like compilation efficiency.
License: GNU General Public License v3.0
--- title: Groffdown author: Benjamin Chausse date: 2019-09-19 Markdown syntax with GNU/Troff-like compilation speeds. --- # What is Groffdown? Groffdown aims to take the already existing (and well-known) markdown syntax and make it compile at speed similar to the ones of groff. The main compiler for markdown to pdf usually being `pandoc`, it can be quite long to compile a document (up to four seconds for one page documents in some cases) unlike Groff which is known to usually compile very quickly (0.1 second on average for one page documents). As a proof of concept, this *README* file can be fully compiled using groffdown to then be used by groff. # Example piping workflow Groffdown is a script which when run on a markdown document, will convert the most typical markdown syntax into groff (using the `ms` macros) to then send it to standard output. Therefore, it can be piped directly into groff (or it's related software). Here is an example of a complete piping command: - groffdown <filename>.gd | refer -PS -e "-p$REFERBIB" | groff -me -ms -kejpt -T pdf > <filename>.pdf # Syntax goals - Speed - Markdown Syntax (with yaml preamble) - LaTeX where markdown lacks ## Existing Syntax ### Commands similar to markdown - Headers (1-5) - *Italic* - **Bold** - ***Bold & Italic*** - Bullet points - `Code blocks (in a monospaced font)` ### Commands similar to LaTeX - Abstract - Inline equations - Centered equations - Citations ### Commands similar to YAML - Titles - Authors - Dates - Author's Institution # Current issues - All text formatings need to be on the same line (you can't start bold on one line and finish on the other) Doing otherwise seems to trigger an unescapable recursive loop on the groff side of things. # Needed implementations - Numbered lists - multi-macro compatibility (mom macros for urls)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.