[tor-commits] [torspec/master] build HTML GitLab Pages site with GitLab CI

nickm at torproject.org nickm at torproject.org
Mon Jan 13 18:31:28 UTC 2020


commit fdfa3a5458d605d563637343dd58ac444dcf6dff
Author: Hans-Christoph Steiner <hans at eds.org>
Date:   Tue Nov 26 22:16:04 2019 +0100

    build HTML GitLab Pages site with GitLab CI
    
    This does a rough conversion to Markdown using regexps, then uses pandoc to
    convert the Markdown to HTML.  An index.html is also generated to make it
    easy to find the various documents.  This will create a site in any GitLab
    fork that has CI/CD and Pages setup, which is the default on gitlab.com.
---
 .gitlab-ci.yml | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..9211ec2
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,33 @@
+
+pages:
+  image: debian:buster
+  script:
+    - apt-get update
+    - apt-get -qy install --no-install-recommends pandoc
+    - test -d public || mkdir public
+    - printf '<!DOCTYPE html>\n\n<html><body><h1>%s</h1><ul>' $CI_PROJECT_PATH > public/index.html
+    - for f in *.txt; do
+        set -x;
+        name=`echo $f | sed s,\.txt$,,`;
+        md=${name}.md;
+        cat $f | sed --regexp-extended
+            -e '0,/^ +/{s/^ +/# /}'
+            -e 's/^ {1,3}([^ ])/\1/'
+            -e '/^[0-9]+\. +http/! s/^([0-9]+\. )/## \1/'
+            -e 's/^([0-9]+\.[0-9]+\. )/### \1/'
+            -e 's/^([0-9]+\.[0-9]+\.[0-9]+\. )/#### \1/'
+            -e 's/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\. )/##### \1/'
+            > $md;
+        printf "\n---\n\noriginal source\x3a [$f](https://gitweb.torproject.org/torspec.git/tree/$f)\n" >> $md;
+        title=`sed -En '0,/^# /s/^# (.*)/\1/p' $md`;
+        printf "<li><a href=\"${name}.html\"><tt>$name</tt>: $title</a></li>" >> public/index.html;
+        pandoc --from=markdown $md --output=public/${name}.html;
+        mkdir public/$name;
+        cp public/${name}.html public/$name/index.html;
+      done
+    - printf '</ul></body></html>' >> public/index.html
+  artifacts:
+    paths:
+    - public
+  only:
+    - master





More information about the tor-commits mailing list