0.1.3-beta.3 • Published 4 months ago

mkbk v0.1.3-beta.3

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
4 months ago

mkbk

npm npm CI License: MPL 2.0

📚 A book library static site generator .

A static site generator geared towards creatives looking to distribute their markdown-based written works.

Features

  • Generate a full static site from a straightforward organization of markdown files
  • Creates RSS feeds and EPUB files for every book
  • Customization: provides powerful theming capabilities allowing you to customize the internal HTML output using the Nunjucks templating engine.
  • Extensible: returns a collection object which prevents lock-in to a specific output paradigm (ie. bring your own renderer) and allows you to generate other non-HTML formats.

COPYING

SPDX-License-Identifier: MPL-2.0

See LICENSE.txt

Usage

Installation and Quickstart

Ensure you have node.js and npm installed.

  1. Bootstrap a node project:
    npm init -y
    npm install mkbk
  2. Create an index.js file with the following contents:

    const { collection, renderer } = require('mkbk');
    
    // Create a collection project
    const project = collection.parse(
      {
        title: 'Book Collection Web Title',
        workingDir: '.',
        baseURL: 'https://example.com/books', // REQUIRED for RSS feeds
        languageCode: 'en',
        books: [
          {
            id: 'unique-book-id',       // REQUIRED
            workingDir: './books/warp', // REQUIRED
            title: "Book Title",
            languageCode: 'en',
            tags: ["Science Fiction", "Fantasy", "Action", "Adventure"],
            description: 'One or two sentences describing the book.',
            coverRelPath: 'cover.webp',
            blurbRelPath: 'index.md',
            status: 'Completed',
          },
          {
            id: 'unique-book-id-2', // REQUIRED
            workingDir: './books/warp', // REQUIRED
            title: "Book Title 2",
            languageCode: 'en',
            tags: ["Dark Fantasy", "Action", "Thriller"],
            description: 'One or two sentences describing the book.',
            coverRelPath: 'cover.webp',
            blurbRelPath: 'index.md',
            status: 'On Hiatus',
          },
        ]
      }
    );
    
    // Generate HTML Site from a collection object
    try {
      renderer.genCollectionStaticSite(project);
    } catch (err) {
      console.log(err);
    }
  3. Structure your content as seen in Folder Structure and examples

  4. Run node index.js to build static website.

Folder Structure

mkbk utilizes a straightforward folder structure for your source files.

PROJECT_ROOT/
    package.json
    index.js
    books/ # source directory containing a bunch of books
      book-id-1/
        index.md
        cover.webp
        chapters/
          markdown-file-1.md
          markdown-file-2.md
    layout/ # customize internal html generation
      index.html
      book.html
      chapter.html
      assets/
        styles.css
        placeholder-image.png
    out/ # This is where the final site is created
      index.html
      styles.css
      placeholder-image.png
      book-id-1/
        index.html
        cover.webp
        markdown-file-1.html
        markdown-file-2.html
        rss.xml
        book-id-1.epub
    # ...
0.1.3-beta.3

4 months ago

0.1.3-beta.2

4 months ago

0.1.3-beta.1

4 months ago

0.1.2

6 months ago

0.1.1

7 months ago

0.1.0

7 months ago

0.1.0-beta.1

7 months ago

0.0.15

7 months ago

0.0.14

8 months ago

0.0.13

8 months ago

0.0.12

8 months ago

0.0.11

8 months ago

0.0.10

8 months ago

0.0.9

8 months ago

0.0.8

8 months ago

0.0.7

8 months ago

0.0.6

8 months ago

0.0.5

8 months ago

0.0.4

8 months ago

0.0.3

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago