From 0af1cafcd4d18687bd46ee421410f5f3e2ffe050 Mon Sep 17 00:00:00 2001 From: Nick Pegg Date: Mon, 15 Jan 2018 20:36:40 -0800 Subject: [PATCH] Get rid of more JS stuff, replace publish.sh with a Makefile --- Makefile | 10 ++++++ scripts/build_site.js | 77 ------------------------------------------- scripts/publish.sh | 12 ------- 3 files changed, 10 insertions(+), 89 deletions(-) create mode 100644 Makefile delete mode 100755 scripts/build_site.js delete mode 100755 scripts/publish.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2ca5a17 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +clean: + rm -r build + +build: + posty build + +stage: + gsutil -m rsync -d -r build/ gs://test.nickpegg.com + +# TODO: add a `publish` task when ready to roll to prod diff --git a/scripts/build_site.js b/scripts/build_site.js deleted file mode 100755 index cafa309..0000000 --- a/scripts/build_site.js +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env node - -'use strict'; -const fs = require('mz/fs'); -const path = require('path'); -const yaml = require('js-yaml'); - - -async function build() { - let site = { - pages: [], - posts: [], - tags: [], - }; - - site.pages = await fs.readdir('_pages') - .then(files => ( - Promise.all(files.map(f => fs.readFile(path.join('_pages', f), 'utf8'))) - )) - .then(files => { - return files.map(contents => { - let [_, meta, body] = contents.split("---\n"); - let page = yaml.safeLoad(meta); - - if (page.parent === undefined) { - page.parent = null; - } - - page.body = body.trim(); - return page; - }) - }) - .catch(err => console.log('Failure while fetching pages:', err)); - - [site.posts, site.tags] = await fs.readdir('_posts') - .then(files => ( - Promise.all(files.map(f => fs.readFile(path.join('_posts', f), 'utf8'))) - )) - .then(files => { - let tags = new Set(); - let posts = files.map(contents => { - let parts = contents.split("---\n"); - let post = yaml.safeLoad(parts[0]); - - if (parts.length === 2) { - post.blurb = parts[1]; - post.body = post.blurb; - } else if (parts.length === 3) { - post.blurb = parts[1]; - post.body = parts.slice(1).join("\n"); - } - - if (post.tags === undefined) { - post.tags = []; - } - - post.tags.forEach(tag => { - tags.add(tag); - }); - - return post; - }) - - return [posts, tags]; - }) - .catch(err => console.log('Failure while fetching posts:', err)); - - site.pages.sort((a, b) => a.title.localeCompare(b.title)); - // sort posts newest to oldest - site.posts.sort((a, b) => (b.date - a.date)); - site.tags = Array.from(site.tags.values()); - - fs.writeFile('public/site.json', JSON.stringify(site)) - .catch(err => console.log('Unable to write site.json:', err)); -} - -build(); diff --git a/scripts/publish.sh b/scripts/publish.sh deleted file mode 100755 index f0c6115..0000000 --- a/scripts/publish.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if ! which gsutil > /dev/null; then - echo "You need to install gsutil first!" - exit 1 -fi - -if [ "x$1" = "xtest" ]; then - gsutil -m rsync -d -r build/ gs://test.nickpegg.com -else - echo "I don't know how to publish to prod yet!" -fi