Getting Started
On this page, we build a basic Hello World page with Wikven.
Wikven builds a static website from a directory of wikitext. There are three ways to install it: the standalone binary (Linux only), the Docker image (any platform), or built from source. This guide uses the binary or Docker, so pick whichever you have.
Create a source directory and add a wikitext file. Any file ending in .wikitext becomes a wiki article. Name your entry page index so it builds to index.html, the file a browser opens at the site root.
mkdir src
echo 'Hello, World!' > src/index.wikitext
Then build the site. The rendered pages are written to dist/. Pick the tab for how you run Wikven:
Run it in the directory that holds src/:
wikven build
Mount the source and output directories into the container:
docker run --rm \
-v "$(pwd)/src:/workspace/src" \
-v "$(pwd)/dist:/workspace/dist" \
ghcr.io/chaotic-ground/wikven
The untagged image is the newest released version. To hold a build still, pin the version tag :1.3.0 or the digest (ghcr.io/chaotic-ground/wikven@sha256:...); shorter tags for the major and the minor version are published too, and move as that line gains releases. A dated nightly-YYYY-MM-DD tag is the main branch as it stood that day, for trying a change before it is released.
Preview the site locally, then open http://localhost:8080:
wikven serve
docker run --rm -p 8080:8080 \
-v "$(pwd)/dist:/workspace/dist" \
ghcr.io/chaotic-ground/wikven serve
Opening dist/index.html directly also works, though some links and assets resolve correctly only when served. To publish it online, see Deploying.
Setting the title of the site
For configuration, create a .wikven.yaml file in your src directory.
cat <<EOF > src/.wikven.yaml
config:
Sitename: My Site
EOF
Build again with the same command as before, and the site is titled "My Site".
Adding a second page
Every .wikitext file becomes a page. Add another one and link to it from the first with [[...]]:
echo 'This is the help page.' > src/Help.wikitext
echo 'Read the [[Help]].' >> src/index.wikitext
Build again: the home page now links to Help.html, and the link works with no server. See Pages for how file names map to page titles and namespaces.
Adding a template
Templates, the main reason to reach for Wikven over Markdown, let you reuse content. Put a Template: page in your source and transclude it with {{...}}:
mkdir -p src/Template && echo "'''Note:''' {{{1}}}" > src/Template/Note.wikitext
echo '{{Note|Rebuild the site after every edit.}}' >> src/index.wikitext
Build again: the home page now shows the note. See Pages#Templates for parameters and more.