0.12.2 • Published 2 years ago

dusg v0.12.2

Weekly downloads
2
License
MIT
Repository
github
Last release
2 years ago

DUSG

Deluxe Universal Site Generator

Build Status Coverage Status

Design Goals

DUSG is a static site generator that uses JavaScript instead of templating languages. It uses the file system instead of a database.

What it Does

  • Provides a Command Line Interface and a JavaScript API
  • Reads Markdown files in a source directory
  • Parses YAML in each file into the key metadata
  • Parses Markdown in each file into the key html
  • Includes a path key for the output of each file
  • Includes a rootRelativeUrl key for each file
  • Includes a stats key for each file's information
  • Creates an array of parsed files into the key pageObjects
  • Uses a JavaScript function instead of templating languages
  • Writes files to a destination directory

Installation

npm install --save-dev dusg

Formatting Source Files

Source files must end with the .md extension. A source file may begin with YAML which should begin and end with three hyphens (---). Markdown within the file will be parsed and turned into HTML.

Example Source File

---
title: An Example Source File
author: Luke Teaford
---

# Hello, World!

The metadata can contain whatever you want.

Writing Template Functions

A suitable template function is a callback that will receive a page object as its only argument. The page object has an html key that contains the markdown parsed as HTML, a metadata key that contains the YAML parsed as a JavaScript object, a path key that contains the output path of the file, and an array called pageObjects which contains each pageObject.

Example Template Function

const exampleTemplate = aPageObject => {
  const { html, metadata } = aPageObject
  const { title, author } = metadata
  return `<!DOCTYPE html>
<title>${title} - ${author}</title>
${html}`
}

Command Line Interface

# Simplest usage
npx dusg --src='./your-source' --dest='./your-destination' --template='./your-template.js'

# Aliases are supported
npx dusg -s './your-source-directory' -d './your-destination-directory' -t './your-template.js'

# Show detailed documentation
npx dusg --help

JavaScript API

const dusg = require('dusg')
const aTemplateFunction = require('./your-template.js')

dusg({
  src: './your-source-directory',
  dest: './your-destination-directory',
  template: aTemplateFunction
})

Other Options

  • cleanUrls means each file will be written to a directory so ./about-me.md would become ./about-me/index.html. This is enabled by default.
  • extension is the file extension to write. The default is .html.
0.12.1

2 years ago

0.12.2

2 years ago

0.12.0

4 years ago

0.11.0

4 years ago

0.10.0

4 years ago

0.9.0

4 years ago

0.8.3

4 years ago

0.7.0

4 years ago

0.6.0

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago

0.0.1

5 years ago