summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile27
-rw-r--r--README2
-rw-r--r--config/ikiwiki.setup.in12
m---------shared0
5 files changed, 36 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index 7c191a6..5f6f3a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,6 @@
/build/
/content/
/styling/
+/forms/
/config/ikiwiki*.setup
/.ikiwiki*/
diff --git a/Makefile b/Makefile
index 1f0366d..17cc5ec 100644
--- a/Makefile
+++ b/Makefile
@@ -13,6 +13,8 @@ export CURDIR
cssprojects ?= $(wildcard shared/themes/goab styling)
+sass_includes ?= shared/themes/default /usr/share/sass /usr/share/sass/stylesheets /usr/share/compass/frameworks/normalize-scss/stylesheets
+
all: build
-include shared/include.mk
@@ -23,6 +25,8 @@ always-make = $(findstring B,$(MAKEFLAGS))
avoid-broken-git = $(shell cd content && git symbolic-ref -q HEAD > /dev/null || echo " --no-rcs")
iki_configfiles := $(or $(patsubst %.in,%,$(wildcard config/ikiwiki*.setup.in)),config/ikiwiki.setup)
+iki_projects = $(patsubst config/%.setup,build-iki/%,$(iki_configfiles))
+form_projects := $(patsubst forms/%.cgi,build-form/%,$(wildcard forms/*.cgi forms/*/*.cgi))
init: shared/.git content
$(MAKE) $(iki_configfiles)
@@ -38,7 +42,13 @@ config/ikiwiki.setup.in:
configfiles: $(iki_configfiles)
$(iki_configfiles): iki_flavor = $(if $(filter config/ikiwiki-%.setup,$@),$(@:config/ikiwiki-%.setup=%))
$(iki_configfiles): % : %.in
- ikiwiki $(IKIWIKI_DEFAULTS) $(patsubst %,--setup %,$(wildcard $<)) --dumpsetup $@
+ ikiwiki $(IKIWIKI_DEFAULTS) \
+ $(if $(IKIWIKI_UNDERLAYS)$(IKIWIKI_SHARED_UNDERLAYS),\
+ --set-yaml add_underlays="$$(echo $(strip \
+ $(IKIWIKI_UNDERLAYS) \
+ $(IKIWIKI_SHARED_UNDERLAYS)) \
+ | perl -pe 's/\s+/\n/g;s/^/- /gm')") \
+ $(patsubst %,--setup %,$(wildcard $<)) --dumpsetup $@
perl -i -pe '$$s=$$ENV{'CURDIR'}; s/\@CURDIR\@/$$s/g' $@
content: notempty = $(wildcard $@/*.mdwn)
@@ -46,8 +56,15 @@ content:
$(if $(notempty),,mkdir -p '$@')
$(if $(notempty),,printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn')
-build:
- $(if $(cssprojects),$(MAKE) $(cssprojects))
- $(foreach config,$(shell find config -name '*.setup'),ikiwiki --setup $(config)$(avoid-broken-git)$(if $(always-make), --rebuild, --refresh);)
+build: $(iki_projects) $(form_projects)
+$(iki_projects): build-iki/%: config/%.setup $(cssprojects)
+ ikiwiki --setup $<$(avoid-broken-git)$(if $(always-make), --rebuild, --refresh)
+$(form_projects): build-form/%: forms/%.cgi build-iki/ikiwiki
+ install -DT $< build/$<
+ perl -i -pe "s:'../build:'$(CURDIR)/build:g" build/$<
+ cp -f build/html/$*/index.html build/html/$*/index.tmpl
+ FORMBUILDER_NOHEADER=1 build/$< > build/html/$*/index.html~
+ mv -f build/html/$*/index.html~ build/html/$*/index.html
+ rm build/html/$*/index.tmpl
-.PHONY: all build configfiles
+.PHONY: all build build-iki/% build-form/% configfiles
diff --git a/README b/README
index 75c24b1..4417863 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ Ikiwiki build environment
To quickly start working with content, this should suffice:
- git clone git://source.jones.dk/ikiwiki/site
+ git clone git://source.jones.dk/ikiwiki
cd site
make init
make
diff --git a/config/ikiwiki.setup.in b/config/ikiwiki.setup.in
new file mode 100644
index 0000000..ed57570
--- /dev/null
+++ b/config/ikiwiki.setup.in
@@ -0,0 +1,12 @@
+# IkiWiki::Setup::Yaml - YAML formatted setup file
+#
+# Seed info for creating ikiwiki setup file.
+#
+# Passing this to ikiwiki --setup ... --dumpsetup will make ikiwiki
+# generate its setup file.
+#
+# Remember to remove ikiwiki.setup and re-run make init any time you
+# edit this file.
+#
+# name of the wiki
+wikiname: Example website
diff --git a/shared b/shared
-Subproject 8418a770a2be476ecd961d3279d00e151a0a531
+Subproject 1fb36673e48bdfff47aac4a283b6227a4693258