npm.io
1.0.1 • Published 4 years agoCLI

cli-ssg

Licence
MIT
Version
1.0.1
Deps
4
Size
290 kB
Vulns
1
Weekly
0

cli-ssg

stage badge stage badge

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:

https://cli-ssg.vercel.app/

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