From ce12def0b61681762717fef788dbb4647370d11e Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Tue, 3 Jul 2018 11:24:54 -0400 Subject: [PATCH] fleshed out site generation script using erb template and file copying --- Makefile | 18 ------------------ config.sh | 9 --------- generate.rb | 36 ++++++++++++++++++++++++++++++++++++ gensite | 5 ----- newgen.sh | 25 ------------------------- update.rb => tools/update.rb | 0 6 files changed, 36 insertions(+), 57 deletions(-) delete mode 100644 Makefile delete mode 100644 config.sh create mode 100755 generate.rb delete mode 100755 gensite delete mode 100755 newgen.sh rename update.rb => tools/update.rb (100%) diff --git a/Makefile b/Makefile deleted file mode 100644 index bdfd8df..0000000 --- a/Makefile +++ /dev/null @@ -1,18 +0,0 @@ - -PATH := $(PWD)/tools:$(PATH) -PAGES = $(addprefix site/,$(addsuffix .html,$(basename $(notdir $(wildcard pages/*.md))))) - -.PHONY: serve -all: $(PAGES) site/index.html - -serve: - tools/serve - -site/index.html: index.html - cp $^ $@ - -site/%.html : pages/%.md - genpage $< > $@ - -clean: - rm site/*.html diff --git a/config.sh b/config.sh deleted file mode 100644 index a8afab6..0000000 --- a/config.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -export TITLE="Simplicity is the ultimate sophistication" -export SUBTITLE="$TITLE" -export COPYRIGHT="© 2015 Michael D. Lowis" -export STYLE="/site/style.css" -export LOGO="/site/logo.png" -export MENUTEXT="`genmenu.sh`" - diff --git a/generate.rb b/generate.rb new file mode 100755 index 0000000..62b2d15 --- /dev/null +++ b/generate.rb @@ -0,0 +1,36 @@ +#!/bin/env ruby +require 'fileutils' +require 'erb' + +SRCDIR="src/" +DESTDIR="foo/" +TEMPLATE = IO.read("page.html.erb") + +class Page + attr_accessor :year, :navigation, :markdown + + def initialize(src) + @year = Time.new.year + @markdown = `tools/md2html.awk #{src}` + end + + def render + ERB.new(TEMPLATE).result(binding) + end +end + +def generate(p) + op = p.gsub(/^#{SRCDIR}/,'') + FileUtils.mkdir_p(File.join(DESTDIR, op)) + op = File.join(DESTDIR, op) + if p.end_with? ".md" then + op = File.join(File.dirname(op), "#{File.basename(op,'.*')}.html") + File.open(op, 'w') { |file| file.write(Page.new(p).render) } + else + FileUtils.copy(p, op) + end +end + +Dir.glob("#{SRCDIR}/**/*").each do |f| + generate(f) if File.file?(f) +end diff --git a/gensite b/gensite deleted file mode 100755 index 5ae68b0..0000000 --- a/gensite +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -pages=(`ls pages/*.md | sed -e 's/\.md$//'`) - -echo ${pages[@]} diff --git a/newgen.sh b/newgen.sh deleted file mode 100755 index 1f12c84..0000000 --- a/newgen.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -SRCDIR="$1" -DESTDIR="$2" - -genpage(){ - src="$1" - dest="$2" - - if [[ -d "$src" ]]; then - echo "dir: '$src'" - else - ofile="$dest/${src#src/}" - ofile="${ofile%.*}.html" - dest="${ofile%/*}" - echo "page: $src -> $ofile" - mkdir -p "$dest" - tools/md2html.awk "$src" > "$ofile" - fi -} - -for p in $(find "$SRCDIR" -mindepth 1 -maxdepth 1); do - genpage "$p" "$DESTDIR" -done - diff --git a/update.rb b/tools/update.rb similarity index 100% rename from update.rb rename to tools/update.rb -- 2.54.0