cli-ssg
Tool to generate html web site from txt or md input
Installation
npm i cli-ssg
Usage
cli-ssg -i "sample_file.txt"
This processes text from sample_file.txt and generates sample_file.html
cli-ssg -i "sample_file.txt" -s "./stylesheet.css"
Same as above, however sample_file.html now uses ./stylesheet.css
cli-ssg -i "sample_dir" -o "output_dir"
This processes all the .txt and .md files in sample_dir and generates .html files for each of them. It also creates an index.html with relative links to each page, storing all these files in output_dir.
Options
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
-i, --input Input file/folder to be processed [string] [required]
-o, --output Output directory [string] [default: "./dist"]
-s, --stylesheet CSS Stylesheet for the website [string]
-l, --lang Lang attribute for html element [string] [default: "en-CA"]
-c, --config Pass JSON file for options [string]
Features
Ability to provide a custom output directory
Ability to provide stylesheet URL
Recursively parses input nested directories and files
Automatically generates index.html if multiple txt or md files are present in input directory
.md files now accepted as input
Ability to parse all markdown syntax to generate HTML
Ability to specify the language using a -l flag
Pass a JSON file for the options
Parse title and paragraphs from the input txt files
Examples
Simple Example
cli-ssg -i ".\sample_input.txt" -o "custom_dir" -s "https://cdnjs.cloudflare.com/ajax/libs/tufte-css/1.8.0/tufte.min.css"
sample_input.txt
Sample title //<---first line followed by 2 empty lines treated as title
This is the first paragraph.
//<--- blank spaces treated as paragraph limits
This is the second paragraph.
This is the third paragraph
custom_dir\sample_output.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Sample title</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
href="https://cdnjs.cloudflare.com/ajax/libs/tufte-css/1.8.0/tufte.min.css"
rel="stylesheet"
/>
</head>
<body>
<h1>Sample title</h1>
<p>This is the first paragraph.</p>
<p>This is the second paragraph.</p>
</body>
</html>
Complex Example
Using multiple text files in the input directory, the following website was created with an auto-generated index.html having links to each individual page:
Use a config JSON file
A .JSON file can also be used to supply arguments instead of using the command line.
cli-ssg -i ".\sample_input.txt" -o "custom_dir" -s "https://cdnjs.cloudflare.com/ajax/libs/tufte-css/1.8.0/tufte.min.css"
For example, the above is equivalent to
cli-ssg -c "config.json"
where config.json:
{
"input": "./sample_input.txt",
"output":"custom_dir",
"stylesheet": "https://cdnjs.cloudflare.com/ajax/libs/tufte-css/1.8.0/tufte.min.css"
}
License
MIT