Created
May 29, 2013 23:38
-
-
Save azat-co/5674684 to your computer and use it in GitHub Desktop.
LeanPub Tool — Node.js script for sanitizing and compiling a book's manuscript. LeanPub uses multi-file book format and a special markdown markup (that confuses Marked app). I found that to convert to MS Word (for editing and other needs) this workflow is the best: 1. run leanpub-tool.js with node.js (node leanpub-tool.js)
2. open file in Marked…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var fs = require('fs'); | |
//change these to YOUR filenames | |
//probably we can read it from Book.txt but I was too lazy to implement it :-) and somebody might want to compile only sertain parts of the book | |
var book =[ | |
"frontmatter.txt", | |
"mainmatter.txt", | |
"part1.txt", | |
"chapter1.txt", | |
"part2.txt", | |
"chapter2.txt", | |
"backmatter.txt", | |
"acknowledgment.txt" | |
]; | |
var sanitizeText = [ | |
'{frontmatter}', | |
'{backmatter}', | |
'{mainmatter}', | |
"I>## Note", | |
"T>## Tip", | |
"W>## Warning", | |
'{lang="javascript"}', | |
'{:lang="javascript"}', | |
'{lang="css"}', | |
'{:lang="css"}', | |
'{lang="json"}', | |
'{lang="ruby"}', | |
'{lang="php"}', | |
'{lang="text"}', | |
'{lang="bash"}', | |
'{lang="html"}', | |
"I>", | |
"T>", | |
"W>" | |
] | |
var str = ''; | |
//read files | |
book.forEach(function(chapter){ | |
str += fs.readFileSync(chapter,'utf8'); | |
}) | |
//sanitize LeanPub specific Markdown tags | |
sanitizeText.forEach(function(text){ | |
// console.log(text) | |
//this loops through while there is not matches | |
while (new RegExp (text).test(str)) { | |
str = str.replace(text,'','gm') | |
}; | |
}) | |
//write output to a file | |
fs.writeFileSync('leanpub-tool.txt',str); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment