| UNAME := $(shell uname) |
| |
| man1files := $(shell find doc/cli -name '*.md' \ |
| | sed 's|.md|.1|g' \ |
| | sed 's|doc/cli|man/man1|g') |
| |
| man3files := $(shell find doc/api -name '*.md' \ |
| | sed 's|.md|.3|g' \ |
| | sed 's|doc/api|man/man3|g') |
| |
| man7files := $(shell find doc/misc -name '*.md' \ |
| | sed 's|.md|.7|g' \ |
| | sed 's|doc/misc|man/man7|g') |
| |
| websitefiles := $(shell find doc -name '*.md' \ |
| | sed 's|.md|.html|g' \ |
| | sed 's|doc/|website/|g' \ |
| | sed 's|website/website/|website/|g') |
| |
| websitestyles = website/assets/css/style.css |
| |
| websitejs := $(shell find doc/website -name '*.js' \ |
| | sed 's|doc/||g' ) |
| |
| tocfiles := $(shell find doc -name '*.md' \ |
| | sed 's|.md|.html|g' \ |
| | sed 's|doc/||g' \ |
| | sed 's|website/||g') |
| |
| all: docs website |
| |
| docs: $(man1files) $(man3files) $(man7files) |
| website: $(websitefiles) $(websitestyles) $(websitejs) website/toc.html website/toc-index.html |
| |
| marked = ./node_modules/marked-man/bin/marked-man |
| lessc = ./node_modules/less/bin/lessc |
| |
| docgen = ./node_modules/node-doc-generator/generate.js |
| createdocs = $(docgen) --format=html --template=doc/website/doc-template.html |
| |
| ifeq ($(UNAME), Darwin) |
| replaceinfile = sed -i '' |
| else |
| replaceinfile = sed -i |
| endif |
| |
| website/cli/%.html: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| @$(createdocs) doc/cli/$*.md > $@ |
| @perl -p -i -e "s/$*\(.\) -- //g" $@ |
| @perl -p -i -e "s/SYNOPSIS/Synopsis/g" $@ |
| @perl -p -i -e "s/DESCRIPTION/Description/g" $@ |
| |
| website/api/%.html: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| $(createdocs) doc/api/$*.md > $@ |
| @perl -p -i -e "s/$*\(.\) -- //g" $@ |
| @perl -p -i -e "s/SYNOPSIS/Synopsis/g" $@ |
| @perl -p -i -e "s/DESCRIPTION/Description/g" $@ |
| |
| website/misc/%.html: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| @$(createdocs) doc/misc/$*.md > $@ |
| @perl -p -i -e "s/$*\(.\) -- //g" $@ |
| @perl -p -i -e "s/SYNOPSIS/Synopsis/g" $@ |
| @perl -p -i -e "s/DESCRIPTION/Description/g" $@ |
| |
| website/index.html: website/toc-index.html |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| $(docgen) --format=html --template=doc/website/doc-template.html doc/website/index.md > $@ |
| $(replaceinfile) -e '/__CUSTOMTOC__/r website/toc-index.html' -e "//d" website/index.html; \ |
| $(replaceinfile) "s/__PATH__/./g" website/index.html; \ |
| |
| website/toc-index.html: |
| touch website/toc-index.html |
| for file in $(tocfiles) ; do \ |
| tmp=$${file##*/nmo-}; \ |
| title=`expr "$$tmp" : '\(.*\).html'`; \ |
| echo "<a href=\"./$$file\">$$title</a>" >> website/toc-index.html; \ |
| done |
| |
| website/toc.html: $(websitefiles) |
| touch website/toc.html |
| for file in $(tocfiles) ; do \ |
| tmp=$${file##*/nmo-}; \ |
| title=`expr "$$tmp" : '\(.*\).html'`; \ |
| echo "<a href=\"../$$file\">$$title</a>" >> website/toc.html; \ |
| done |
| for file in $(tocfiles) ; do \ |
| if [[ $$file =~ "/" ]] ; then \ |
| path='..'; \ |
| else \ |
| path='.'; \ |
| fi; \ |
| $(replaceinfile) -e '/__CUSTOMTOC__/r website/toc.html' -e "//d" website/$$file; \ |
| $(replaceinfile) "s/__PATH__/$${path}/g" website/$$file; \ |
| done |
| |
| |
| |
| website/assets/css/style.css: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| @$(lessc) -x doc/website/assets/css/style.less > $@ |
| |
| website/assets/%.js: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| cp doc/website/assets/$*.js $@ |
| |
| man/man1/%.1: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| $(marked) doc/cli/$*.md > $@ |
| |
| man/man3/%.3: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| $(marked) doc/api/$*.md > $@ |
| |
| man/man7/%.7: |
| @[ -d $(@D) ] || mkdir -p $(@D) |
| $(marked) doc/misc/$*.md > $@ |
| |
| clean: |
| rm -rf lib |
| rm -rf man |
| rm -rf website |
| |
| testwebsite: clean website |
| @open website/index.html |
| |
| |
| deploy: clean website |
| @cd ./website && git init . && git add . && git commit -nm \"Deployment\" && \ |
| git push "git@github.com:robertkowalski/nmo.git" master:gh-pages --force && rm -rf .git |