Skip to content

rolandw-blog/blogBuilder

Repository files navigation

Blog Builder

Operating Manual

Build with lerna

lerna bootstrap
lerna run build

Then build example styles in ./public/styles/

mkdir output/css
node-sass -r -o ./output/css ./public/styles/

// once the blog has been built
cp ./public/styles ./output

Hot Reload CSS

Keep it simple, use nodemon.

nodemon -e scss --exec node-sass -r -o ./output/css ./public/styles/

Usage Examples

build everything.

By default, if no file is passed in with --file or -f flag, then the whole blog will be built from the blog root in config.json.

Also for now pass in -r esm to node when running the cli.

example \
  --templates="./templates/" \
  --styles="./public/styles/css" \
  --config="./config.json" \
  --output="./output" \
  --protocol="http" \
  --baseUrl="localhost:8080" \
  --sourceBaseUrl="https://github.com/rolandwarburton/knowledge" \

Build one file.

example \
  --templates="./templates/" \
  --styles="./public/styles/css" \
  --config="./config.json" \
  --output="./output" \
  --protocol="http" \
  --baseUrl="localhost:8080" \
  --sourceBaseUrl="https://github.com/rolandwarburton/knowledge" \
  --file="../knowledge/Linux/borg.md

Config File Example

{
  "version": 0.1,
  "root": "/home/roland/Documents/projects/blogv2/knowledge",
  "virtualPageMeta": [
    {
      "template": "home.hbs",
      "pathOnDisk": "/home/roland/Documents/projects/blogv2/knowledge/index.md",
      "virtual": true
    },
    {
      "template": "about.hbs",
      "pathOnDisk": "/home/roland/Documents/projects/blogv2/knowledge/about.md",
      "virtual": true
    }
  ],
  "pageMeta": [
    {
      "template": "blogPost.hbs",
      "pathOnDisk": "/home/roland/Documents/projects/blogv2/knowledge/Linux/xfce install notes.md",
      "virtual": false,
      "build": true
    }
  ]
}

Publishing

npm login --scope=@rolandwarburton --registry=https://npm.pkg.github.com
// use your github PAT (token) as the password

lerna publish --registry=https://npm.pkg.github.com/