nim-wiki/GitHubPages.asciidoc

33 lines
1.2 KiB
Plaintext

#### Building and publishing docs on GitHub Pages
A script build your project documentation and publish it on GitHub pages. Replace "main_fname".
Caution: the script will commit and publish every html file in the project directory.
[source,nim]
----
#!/usr/bin/env nim
mode = ScriptMode.Verbose
import strutils
let main_fname = "REPLACE_ME.nim"
var author_name, proj_name = ""
let git_orig = static_exec "git remote show origin -n"
for line in git_orig.splitlines:
if line.contains "Push URL:":
assert line.contains "github.com"
(author_name, proj_name) = line.split(':')[2].split('/')
proj_name = proj_name[0..<proj_name.len-4]
echo "Author name: $#\nProject name: $#\n" % [author_name, proj_name]
exec "nim doc2 --docSeeSrcUrl:https://github.com/$#/$#/blob/master $#" % [
author_name, proj_name, main_fname]
exec "git checkout gh-pages || git checkout --orphan gh-pages"
exec "git add *.html"
exec "git commit *.html -m'update docs'"
exec "git push --set-upstream origin gh-pages"
echo "\nThe following files have been published:"
for fname in listFiles("."):
if fname.endswith(".html"):
echo "https://$#.github.io/$#/$#" % [author_name, proj_name, fname[2..<fname.len]]
----