You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
webpack-plugin/README.md

121 lines
2.4 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Site-O-Mat Webpack Plugin
A Webpack Plugin for generating a Website as Html-Files from a Markdown File Structure.
Why? The Main reason i had to update some Websites, but realise there were no benfit
to use a Full CMS or Headless CMS like Directus. Rendering the same pages that a rarley updated
seems like a waste of energy. Why not generate from a hierachical file structure. Luckly i
i had development a CMS that runs on Markdown File a few years ago as a proof of concept.
## Roadmap
Next will be,
* Some tests
* Better Filtering in Queries
Maybe later,
* Integrate Eta.js and LiquidJS
## Installation
Setup this registry in your project .npmrc file:
```
@helpers:registry=https://gitea.node001.net/api/packages/HerrHase/npm/
```
Install with npm or yarn
```
npm i --save-dev @helpers/siteomat-webpack-plugin
yarn add --dev @helpers/siteomat-webpack-plugin
```
## Configuration
```
const SiteomatWebpackPlugin = require('siteomat-webpack-plugin')
plugins: [
new SiteomatWebpackPlugin(
'./resources/site',
'./resources/views'
)
]
```
or
```
plugins: [
new SiteomatWebpackPlugin(
'./resources/site',
'./resources/views',
{
<options>
}
)
]
```
| Name | Type | Default | Description |
|-------------|-----------|---------|-------------|
| destination | {String} | null | If not set, it will use the public path |
| htmlMinify | {Boolean} | true | Minify Html and remove all Whitespace |
## Pages
Pages are Markdown-Files, they are seperates in two parts. First part is a yaml-Section,
```
---
title: "health goth DIY tattooed"
view: "home.njk"
meta:
description: "La"
media:
teaser:
src: "_images/test.jpeg"
alt: "cold-pressed"
---
```
These yaml will be parsed as a Object and available in Templates. "view" is required. Second
part will be parsed as Markdown, but could be empty.
## Nesting
```
index.md
blog
 index.md
```
## Blocks
"_blocks" in a Directory,
## Queries
### Pages
Basic Usage:
```
pageQuery.find()
```
or with options,
| Name | Type | Default | Description |
|-------------|-----------|---------|-------------|
| parent | {String} | / | Directory for start query |
| deep | {Integer} | -1 | Deep of Recursive |
| orderBy | {Array} | null | Name of field sorting, a "-" in front of the. Nested fields are also possible. |