cli-ssg

1.0.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i cli-ssg

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

297 kB

Total Files

22

Last publish

Collaborators

  • dhillonks