Example ikiwiki site using ilot page: https://pages.ilot.page/ikiwiki
Find a file
Antoine Martin aa6e6f422b
All checks were successful
/ render (push) Successful in 41s
Update README for ilot pages
2026-05-25 12:34:06 -04:00
.forgejo/workflows Fetch submodules and use ikiwiki theme lib 2026-05-25 12:14:42 -04:00
content Remove comments and calendar links 2016-07-07 11:56:52 +03:00
themes Use the ikistrap theme 2016-07-07 11:11:55 +03:00
.gitignore Use the ikistrap theme 2016-07-07 11:11:55 +03:00
.gitmodules Use https for submodule 2016-07-07 11:12:34 +03:00
ikiwiki.setup Remove 404 and google search plugins 2016-07-07 11:55:07 +03:00
LICENSE Add license 2016-07-07 08:25:49 +00:00
README.md Update README for ilot pages 2026-05-25 12:34:06 -04:00

Build Status


Example ikiwiki website using Ilot Pages

Learn more about Ilot Pages at https://pages.ilot.io and the official documentation https://wiki.ilot.io/books/pages


Forge CI

This project's static Pages are built by Forge CI, following the steps defined in .forgejo/workflows/pages.yaml:

on:
  push:
     branches:
       - 'main'

jobs:
  render:
    runs-on: aarch64
    container:
      image: alpine:latest
    steps:
      - name: Environment setup
        run: |
          apk add git ikiwiki perl-yaml-tiny tree nodejs imagemagick-perlmagick imagemagick imagemagick-jpeg findutils bash imagemagick-webp
      - name: Repo pull
        uses: actions/checkout@v4
        with:
          fetch-depth: 1
          submodules: recursive
      - name: Pages repo pull
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          ref: pages
          path: public
      - name: Render website
        run: ikiwiki --setup ikiwiki.setup --libdir themes/ikistrap/lib
      - name: Website upload
        run: |
          [ -f .domains ] && cp .domains public/.domains || echo '.domains not found, skipping.'
          [ -f _redirects ] && cp _redirects public/_redirects || echo '_redirects not found, skipping.'
          git log -1 --pretty=%B > commit.txt
          cd public
          date > generated.txt
          # Note: the following account information will not work on GHES
          git config user.name "forgejo-actions[bot]"
          git config user.email "pages@ilot.page"
          git add .
          git commit -F ../commit.txt
          git push

We are using a theme based on Bootstrap 4 using submodules, and in order to enable the theme plugin, we must pass the libdir parameter.

Forge makes available to the hosting server whatever files are sent to the pages branch. The workflow does the following:

  1. Installs the dependencies with alpine:latest image
  2. Fetches the main branch and submodules, and changes directory into it
  3. Fetches the pages branch under ./public
  4. Renders website to ./public
  5. Copies (if available) .domains and _redirects file if available if using custom domains or custom directs
  6. Writes current commit information to commit.txt to be picked up later
  7. Commits changes to pages branch, matching commit message
  8. Pushes changes to pages branch

Once push is done, the pages server will make it available after a few minutes

Other workflows are setup under previews.yaml and cleanup.yaml to generate previews under $url/previews when working within a pull requests. These workflows are still a work in progress.

Building locally

To work locally with this project, you'll have to follow the steps below:

  1. Fork, clone or download this project
  2. Install ikiwiki
  3. Clone the submodules: git submodule init && git submodule update
  4. Generate the website: ikiwiki --setup ikiwiki.setup --libdir themes/ikistrap/lib
  5. Preview your project: open public/index.html in a browser

Read more at ikiwiki's documentation.

Did you fork this project?

If you forked this project for your own use, please go to your project's Settings and remove the forking relationship, which won't be necessary unless you want to contribute back to the upstream project.

Troubleshooting

  1. CSS is missing! That means two things:

    Either that you have wrongly set up the CSS URL in your templates, or your static generator has a configuration option that needs to be explicitly set in order to serve static assets under a relative URL.