Skip to main content

Static site generator with the smoothness of silk

Project description

Silkie

     __//
cf  /.__.\
    \ \/ /
 '__/    \
  \-      )
   \_____/
_____|_|_____
     " "
 S I L K I E

Chicken ASCII Art

Code style: black pre-commit

Static site generator with the smoothness of silk

Silkie is a simple and smooth static site generator. It can parse text files (".txt") and Markdown files (".md") and generate HTML files from them.

Check out the demo generated from this text file (with help from new.css).

$ silkie -h
Usage: silkie [OPTIONS]

  Static site generator with the smoothness of silk

Options:
  -v, --version          Show the version and exit.
  -h, --help             Show this message and exit.
  -i, --input PATH       Path to the input file/folder  [required]
  -s, --stylesheet TEXT  URL path to a stylesheet
  -l, --lang TEXT        Language of the HTML document [en-CA by default]
  -c, --config FILE      Read option defaults from the specified INI file

Features

  • Generate HTML file(s) from a specified text file/directory
  • Detect the title of a file if it's the first line followed by two blank lines
  • Add custom styling to static site
  • Change HTML document language (<html lang="{your-language}">, en-CA by default)
  • Generate HTML file from a Markdown file (Need Testing)
  • Allow user to supply a JSON formatted configuration file
  • Parse front matter and apply the corresponding metadata fields (Prototype Feature)
    • Check out #21 to see which fields are supported

Installation

$ pip install silkie

Check if you already have installed Silkie:

$ silkie -v

You can also run Silkie as a package:

$ python -m silkie -v

Usage

Input file

$ silkie -i tests/data/text/The Adventure of the Speckled Band.txt

Input directory

$ silkie -i tests/data/text

Custom stylesheet

$ silkie -i tests/data/text/Silver Blaze.txt -s https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css

Custom document language

$ silkie -i tests/data/text/Silver Blaze.txt -l fr

JSON configuration file

$ silkie -c tests/data/config/all_markdown_files.json

Like how you specify the options verbosely for a regular input file, there are keywords can be set in your JSON file: input, lang, and stylesheet

{
    "input": "tests/data/text/Lorem Ipsum.txt",
    "stylesheet": "https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css",
    "lang": "fr"
}

Frontmatter

Supported keywords:

Name Type Default Usage
slug string File path Customize the document URL route, e.g. /docs/example.html
title string Markdown title or file name The text title of the document. Automatically added at the top of your doc if it does not contain any Markdown title.
description string The description of your document, which will added to document metadata for search engine optimization.

Contributing

Please read the Contribution Guide before developing any changes.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

silkie-1.0.7.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

silkie-1.0.7-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file silkie-1.0.7.tar.gz.

File metadata

  • Download URL: silkie-1.0.7.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for silkie-1.0.7.tar.gz
Algorithm Hash digest
SHA256 4487c9544b1563be576ab61d913b0290d5232a623c8bbee843b991f843412701
MD5 4f8fd985c09d045fcd7b9e984cdfcb07
BLAKE2b-256 8fef57d9411d9f7b4062a0bcd383688cc390499c10520fff1688eba66a968ef4

See more details on using hashes here.

File details

Details for the file silkie-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: silkie-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for silkie-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f5e93022d508f2e605e1ba85dd2abf40f414523a66ae05e739e149135d2be0e7
MD5 f66d82677d99736068b6546494de1d92
BLAKE2b-256 58c0dd7288a25fce5d5a05db5b03ebdb31f7eb7f12ec9bd4e7a364c30856e177

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page