WikiSite is an automated system for aggregating and publishing GitHub wikis across your organization. This tool leverages Jekyll with the Just the Docs theme to convert wiki content into a cohesive, user-friendly static site hosted on GitHub Pages.
- Automated Wiki Aggregation: Automatically fetches wikis from repositories marked with the
shared-wikiproperty. - Jekyll Conversion: Converts wiki markdown to Jekyll-compatible markdown with appropriate front matter.
- Asset Management: Downloads and integrates all referenced images into the generated site.
- Continuous Deployment: Integrates with GitHub Actions for seamless deployment to GitHub Pages.
- GitHub App: Requires a GitHub App with read access to repository contents.
- Shared-Wiki Property: Repositories must have a custom boolean property
shared-wikiset totrue. - Image References: Only image references pointing to repository assets are supported (e.g.,
https://github.com/owner/repo/blob/branch/images/example.png).
Click the "Use this template" button at the top of this repository to create a new repository based on this template.
Ensure you have a GitHub App with the necessary permissions to read repository contents.
For each repository you want to include, set the custom property shared-wiki to true.
To test the Jekyll site locally, follow these steps:
-
Clone the Repository:
git clone https://github.com/yourusername/wikisite.git cd wikisite -
Install Dependencies:
bundle install
-
Pull All Wikis:
./scripts/pull-all-wikis.sh
-
Preprocess Wikis:
./scripts/preprocess-wikis.sh
-
Pull All Assets:
./scripts/pull-all-wiki-assets.sh
-
Replace Asset References:
./scripts/replace-asset-references.sh
-
Build the Site:
bundle exec jekyll build -
Serve the Site Locally:
bundle exec jekyll serveThe site will be accessible at
http://localhost:4000.
Use the provided GitHub Actions workflow to automatically deploy your site to GitHub Pages.
Change the environments in the workflow file to match your org and main wiki repository.
env:
ENV_ORG_NAME: yourorg
ENV_MAIN_WIKI: main-wiki-repoYou can customize the look and feel of your site by editing the _config.yml and other Jekyll-related settings.
We welcome contributions! Please check out our contributing guide for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
Please follow our Code of Conduct in all your interactions with the project.
This project uses the Just the Docs theme.
For any issues, please open an issue on this repository.
For more information, you can reach out to the project maintainer at github@webrodent.com.