Giter Site home page Giter Site logo

groffdown's Introduction

---
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)

groffdown's People

Contributors

chaussebenjamin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.