blob: b66480fd4b624ec305dd0284e8e8fe51a08f3323 [file] [log] [blame]
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