0.1.3-beta.3 • Published 4 months ago
mkbk v0.1.3-beta.3
mkbk
📚 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.
- Bootstrap a node project:
npm init -y npm install mkbk
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); }
Structure your content as seen in Folder Structure and examples
- 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