]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - Makefile
CONTRIBUTING.md: define new workflow for documentation edition and contributions
[github/shaarli/Shaarli.git] / Makefile
index 60aec9a08b6049328ee031dd7e19fbaeafc8664e..1ddd60f8a602766771405fada0f845e063594550 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -124,8 +124,20 @@ test:
        @echo "-------"
        @echo "PHPUNIT"
        @echo "-------"
-       @mkdir -p sandbox
-       @$(BIN)/phpunit tests
+       @mkdir -p sandbox coverage
+       @$(BIN)/phpunit --coverage-php coverage/main.cov --testsuite unit-tests
+
+locale_test_%:
+       @UT_LOCALE=$*.utf8 \
+               $(BIN)/phpunit \
+               --coverage-php coverage/$(firstword $(subst _, ,$*)).cov \
+               --bootstrap tests/languages/bootstrap.php \
+               --testsuite language-$(firstword $(subst _, ,$*))
+
+all_tests: test locale_test_de_DE locale_test_en_US locale_test_fr_FR
+       @$(BIN)/phpcov merge --html coverage coverage
+       @# --text doesn't work with phpunit 4.* (v5 requires PHP 5.6)
+       @#$(BIN)/phpcov merge --text coverage/txt coverage
 
 ##
 # Custom release archive generation
@@ -169,6 +181,12 @@ clean:
        @git clean -df
        @rm -rf sandbox
 
+### generate the AUTHORS file from Git commit information
+authors:
+       @cp .github/mailmap .mailmap
+       @git shortlog -sne > AUTHORS
+       @rm .mailmap
+
 ### generate Doxygen documentation
 doxygen: clean
        @rm -rf doxygen
@@ -176,42 +194,28 @@ doxygen: clean
 
 ### update the local copy of the documentation
 doc: clean
-       @rm -rf doc
-       @git clone https://github.com/shaarli/Shaarli.wiki.git doc
-       @rm -rf doc/.git
-
-### Generate a custom sidebar
-#
-# Sidebar content:
-#  - convert GitHub-flavoured relative links to standard Markdown
-#  - trim HTML, only keep the list (<ul>[...]</ul>) part
-htmlsidebar:
-       @echo '<div id="local-sidebar">' > doc/sidebar.html
-       @awk 'BEGIN { FS = "[\\[\\]]{2}" }'\
-       'm = /\[/ { t=$$2; gsub(/ /, "-", $$2); print $$1"["t"]("$$2".html)"$$3 }'\
-       '!m { print $$0 }' doc/_Sidebar.md > doc/tmp.md
-       @pandoc -f markdown -t html5 -s doc/tmp.md | awk '/(ul>|li>)/' >> doc/sidebar.html
-       @echo '</div>' >> doc/sidebar.html
-       @rm doc/tmp.md
+       @rm -rf doc/md/
+       @git clone https://github.com/shaarli/Shaarli.wiki.git doc/md
+       mv doc/md/Home.md doc/md/index.md
+       @rm -rf doc/md/.git
 
 ### Convert local markdown documentation to HTML
 #
 # For all pages:
-#  - infer title from the file name
 #  - convert GitHub-flavoured relative links to standard Markdown
-#  - insert the sidebar menu
+#  - generate html documentation with mkdocs
 htmlpages:
-       @for file in `find doc/ -maxdepth 1 -name "*.md"`; do \
-               base=`basename $$file .md`; \
-               sed -i "1i #$${base//-/ }" $$file; \
-               awk 'BEGIN { FS = "[\\[\\]]{2}" }'\
-       'm = /\[/ { t=$$2; gsub(/ /, "-", $$2); print $$1"["t"]("$$2".html)"$$3 }'\
-       '!m { print $$0 }' $$file > doc/tmp.md; \
-               mv doc/tmp.md $$file; \
-               pandoc -f markdown_github -t html5 -s \
-                       -c "github-markdown.css" \
-                       -T Shaarli -M pagetitle:"$${base//-/ }" -B doc/sidebar.html \
-                       -o doc/$$base.html $$file; \
-       done;
-
-htmldoc: doc htmlsidebar htmlpages
+       # Rename local [[links]] to regular links.
+       @for file in `find doc/md/ -maxdepth 1 -name "*.md"`; do \
+               sed -e "s/\[\[\(.*\)\]\]/[\1](\1)/g" "$$file" > doc/md/tmp.md; \
+               mv doc/md/tmp.md $$file; \
+       done
+
+       python3 -m venv venv/
+       bash -c 'source venv/bin/activate; \
+       pip install mkdocs; \
+       mkdocs build'
+       find doc/html/ -type f -exec chmod a-x '{}' \;
+       rm -r venv
+
+doc_html: authors doc htmlpages