2017-10-22 05:37:38 +02:00
|
|
|
# chroma-markdown
|
|
|
|
|
|
|
|
This binary compiles Markdown files into HTML. In particular, code blocks of the
|
|
|
|
following format:
|
|
|
|
|
2017-10-22 19:34:56 +02:00
|
|
|
<pre><code># Section Title
|
|
|
|
|
2017-10-22 05:37:38 +02:00
|
|
|
```go
|
|
|
|
fmt.Println("hello world")
|
2017-10-22 19:34:56 +02:00
|
|
|
```</code></pre>
|
2017-10-22 05:37:38 +02:00
|
|
|
|
|
|
|
Will be parsed and compiled to HTML using [`chroma`, a tool for generating
|
|
|
|
syntax highlights][chroma]. The rest of the file will be compiled from markdown
|
|
|
|
to HTML.
|
|
|
|
|
2017-10-22 19:34:56 +02:00
|
|
|
```html
|
|
|
|
<h1>Section Title</h1>
|
|
|
|
<pre class="chroma"><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">)</span>
|
|
|
|
</pre>
|
|
|
|
```
|
|
|
|
|
2017-10-22 05:37:38 +02:00
|
|
|
Input can be sent either on standard input or by specifying a filename at the
|
|
|
|
command line. All outputs are printed to standard output, where they can be
|
|
|
|
redirected to a file:
|
|
|
|
|
|
|
|
```html
|
|
|
|
cat index.md | chroma-markdown > output.html
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Why?
|
|
|
|
|
|
|
|
You can use this with content management systems that want you to use an HTML
|
|
|
|
editor, like WordPress. There are tools that do Markdown compilation and tools
|
|
|
|
that do syntax highlighting but few that do both.
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
This requires either Commonmark (cmark) or Markdown (markdown) binaries to be
|
|
|
|
present on your `$PATH`. The Go markdown renderer has [a critical error][error]
|
|
|
|
that prevents in-memory Markdown compilation.
|
|
|
|
|
|
|
|
[error]: https://github.com/russross/blackfriday/issues/403
|
|
|
|
[chroma]: https://github.com/alecthomas/chroma
|
2017-10-22 19:34:56 +02:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
Find your target operating system (darwin, windows, linux) and desired bin
|
|
|
|
directory, and modify the command below as appropriate:
|
|
|
|
|
|
|
|
curl --silent --location --output=/usr/local/bin/chroma-markdown https://github.com/kevinburke/chroma-markdown/releases/download/0.1/chroma-markdown-linux-amd64 && chmod 755 /usr/local/bin/chroma-markdown
|
|
|
|
|
|
|
|
The latest version is 0.1.
|
|
|
|
|
|
|
|
If you have a Go development environment, you can also install via source code:
|
|
|
|
|
|
|
|
```
|
|
|
|
go get -u github.com/kevinburke/chroma-markdown
|
|
|
|
```
|
|
|
|
|
|
|
|
This should place a `chroma-markdown` binary in `$GOPATH/bin`, so for me,
|
|
|
|
`~/bin/chroma-markdown`.
|