-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcreate-markdown.coffee
executable file
·29 lines (23 loc) · 1.06 KB
/
create-markdown.coffee
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
#!/usr/bin/env coffee
fs = require 'fs'
wordwrap = require 'wordwrap'
processReadme = (readme) ->
processed = readme
.replace(///^[^=]+=+\n///, '')
.replace(/<kbd>(.*?)<\/kbd>/g, (all, g1) -> "'#{g1}'")
.replace(///\[([^\]]+)\]\([^\)]+\)///g, (all, g1) -> g1)
.replace(///`([^`]+)`///g, (all, g1) -> "`#{g1}'")
.replace(/^ +/mg, (all) -> all.replace(/ /g, '='))
wordwrap(77, {mode: 'soft'})(processed)
.replace(///^=+///mg, (all) -> all.replace(///=///g, ' '))
.replace(///^#+(.*)$///mg, (all, g1) -> ";=\n;;#{g1}:")
.replace(///^$///mg, ';=')
.replace(///^([^;])///mg, (all, g1) -> ";; #{g1}")
.replace(///^;=///mg, '')
link = "https://github.com/cosmicexplorer/f3"
header = ";; The below is generated from a README at\n;; #{link}.\n"
readme = fs.readFileSync("#{__dirname}/README.md").toString()
f3El = fs.readFileSync("#{__dirname}/f3.el").toString()
output = f3El.replace(/(;;; Commentary:)\n(;; End Commentary)/g, (all, g1, g2) ->
"#{g1}\n\n#{header}#{processReadme(readme)}\n#{g2}")
fs.writeFileSync "#{__dirname}/f3.el", output