summaryrefslogtreecommitdiff
path: root/README.md
blob: 672da3df42e0a47b1f036a30ed80702217ba3279 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Groffdown
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).

Groffdown is a script that when ran on a markdown document,
will convert the most typical markdown syntax into groff
(using the `ms` macros) to then output it to a `.ms` file.

At a later stage, the goal will be to output groffdown
as standard output (sdout). Since I am not aware if the
`refer` groff pre-processor can accept standard input
(sdin), I prefer to keep it at that for the moment.

## Syntax goals

1. Speed
2. Markdown Syntax (with yaml preamble)
3. LaTeX where markdown lacks


## Existing Syntax

| Description          | Command                             | `.md` | `.tex` | `YAML-like` |
|----------------------|-------------------------------------|-------|--------|-------------|
| Headers (1-5)        | `#`-`#####`                         | X     |        |             |
| Italic               | `*text*`                            | X     |        |             |
| Bold                 | `**text**`                          | X     |        |             |
| Bold & Italic        | `***text***`                        | X     |        |             |
| Bullet points        | `- text`                            | X     |        |             |
| Title                | `title: `(in preamble)              |       |        | X           |
| Author               | `author: `(in preamble)             |       |        | X           |
| Date                 | `date: `(in preamble)               |       |        | X           |
| Author's Institution | `institution: `(in preamble)        |       |        | X           |
| Abstract             | `\begin{abstract}`-`\end{abstract}` |       | X      |             |
| Inline equations     | `$x+1$`                             |       | X      |             |
| Centered equations   | `\begin{equation}`-`\end{equation}` |       | X      |             |
| Citations            | `\cite{reference}`                  |       | X      |             |

## Current issues
- Indented bulletted list (sublists) don't work
- All text formatings need to be on the same line (you can't start bold
  on one line and finish on the other)

## Needed implementations
- Numbered lists
- Tables
- multi-macro compatibility (mom macros for urls)
- Optional output to `sdout`