From 909f637722c8f5cb1ec3049a3a09ace92424716d Mon Sep 17 00:00:00 2001 From: Dan Frumin Date: Fri, 28 Aug 2020 18:24:58 +0200 Subject: [PATCH] make serve function --- Makefile | 20 ++++++++++++++++++-- src/webcc.ml | 5 ++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 8843d37..eb6d276 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ src := content cache := .cache -www := _site/posts +www_root := _site +www := $(www_root)/posts +post_index := $(www_root)/posts.html post_compiler := src/webcc.ml builddir := _build/default @@ -10,7 +12,9 @@ POSTCC := $(builddir)/$(patsubst %.ml,%.exe,$(post_compiler)) post-sources := $(shell find $(src)/ -type f) post-htmls := $(patsubst $(src)/%.md,$(www)/%.html,$(post-sources)) -all: $(POSTCC) $(post-htmls) +.PHONY: all serve clean $(post_index) + +all: $(POSTCC) $(post-htmls) $(post_index) $(www_root)/static $(www): mkdir -p $(www) @@ -18,8 +22,20 @@ $(www): $(www)/%.html: $(src)/%.md $(www) $(POSTCC) $< -o $@ +# make sure that this target is .PHONY! +$(post_index): + echo LOL > $@ + + +$(www_root)/static: + cp -R static $@ + $(POSTCC): $(post_compiler) dune build clean: rm $(POSTCC) + rm -fr $(www_root) + +serve: + cd $(www_root) && python -m SimpleHTTPServer diff --git a/src/webcc.ml b/src/webcc.ml index 1e1506c..e75195f 100644 --- a/src/webcc.ml +++ b/src/webcc.ml @@ -10,7 +10,7 @@ let spec = " Consider all remaining arguments as input file names."; ] - +(** Utitilies *) let with_open_in fn f = let ic = open_in fn in match f ic with @@ -34,6 +34,8 @@ let read_metadata ic = | _ -> lst in go [] +(** Functions for processing an individual post *) + let format_post ~title ~tags ~date ~contents = String.concat "" [ {| @@ -69,6 +71,7 @@ let format_post ~title ~tags ~date ~contents = |}] +(* convert contents from [ic] to a post webpage, output to [oc] *) let process ic oc = let metadata = read_metadata ic in let lookup_metadata k =