Skip to content

About

This site is a collection of documentation, articles, links, examples about the Raku programming language. All it being putted together in one information space to help you learn Raku faster and more efficiently.

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Latest commit

 

History

145 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raku-knowledge-base-social

This repository holds the source of the Raku Knowledge Base, a site about the Raku programming language. It carries the documentation, module pages and examples the site is built from.

About

The Raku Knowledge Base is built with Podlite, a markup language for documentation. This repository contains the source files for The Raku Knowledge Base, a web-based knowledge base that includes:

  • Official Raku project documentation
  • Documentation for user modules, both the files a module ships and the text found in its sources
  • A page for every module in the registry, including those that ship no documentation at all
  • Code examples and tutorials
  • Markdown files from various sources
  • A monthly digest of what changed in the module ecosystem

The content is written in the Podlite markup language. Its specification is at https://podlite.org/specification.

Features

  • Global search: across every document on the site.
  • Term index: generated from the documents themselves.
  • Table of contents: for moving inside a long document.
  • Breadcrumbs: the path from the site root down to the open page.
  • Syntax highlighting: for code inside the documents.
  • Markdown support: markdown files become pages like the rest.

Beyond the website

  • Monthly ecosystem digest: what changed in the module ecosystem since the previous release, with links to the module pages.
  • MCP server: search the corpus, fetch a page, list its sections, from an editor or an AI agent. See mcp-server/README.md.
  • Offline bundle: the search index and the server packed together, for use without a network.
  • Dated data releases: each release keeps a snapshot of module versions, so any two releases can be compared.

Running it locally

Both the website and the MCP server run on your own machine. Take index.zip and raku-kb-mcp-offline.tar.gz from the latest release.

The website

The exported pages are flat .html files, while their addresses carry no extension, so the server has to try .html for a path that has none. python3 -m http.server does not, and answers 404 for every page but the front one.

unzip index.zip -d site
npx serve site          # http://localhost:3000

The same through Docker, with nothing installed on the host:

docker run --rm -p 3000:3000 -v "$PWD/site:/site:ro" \
  node:22-alpine npx -y serve -l 3000 /site

The MCP server

From the offline bundle, which carries the search index with it:

tar xzf raku-kb-mcp-offline.tar.gz && cd raku-kb-mcp
npm install
claude mcp add raku-kb -- node "$PWD/bin/raku-kb-mcp.mjs"

Or from the published image:

docker run -i --rm ghcr.io/zag/raku-kb-mcp

Contributing

To contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with a clear, descriptive message.
  4. Push your changes to your fork.
  5. Submit a pull request to the main repository.

Pull requests generated by automated tools are closed without review.

Technical Details

Podlite Markup Language

Most of the content in this repository is written in Podlite. It carries formatting, cross-references between documents, and code examples.

To learn more about Podlite markup, please refer to the official specification.

Build pipeline

Source Fetch Parse
Raku documentation yarn docs:download (clones Raku/doc) yarn docs:parse → built/docs-tree.json
Examples yarn examples:download (clones Raku/examples) yarn examples:parse → built/examples-tree.json
User modules bin/refresh-mods.sh: zef index → dedup to built/mods.json → tarballs into work_mods/zef same script, final step → built/mods-tree.json

bin/parsesrc.mjs handles rakudoc, pod6, markdown, and Raku source files; parsed trees land in built/ as JSON. Pages are generated by podlite-web with a local plugin (podlite-web.config.js → lib/), generated pages live under virtual/src.

The module set comes from two registries, the zef index and the wider ecosystem list, deduplicated to one latest version per module. Rerunning bin/refresh-mods.sh is resumable and refreshes everything.

Publishing

A workflow runs on the first day of each month. It refreshes the module set, builds the site, packs index.zip and the offline bundle raku-kb-mcp-offline.tar.gz, writes the release notes by comparing the new module versions against the previous snapshot, and publishes the server image.

License

"Raku" is a trademark of the Yet Another Society.

This project is licensed under the Artistic License 2.0.

The Artistic License 2.0 is chosen to align with the licensing of Raku itself and many Raku modules. This license provides freedom for use, modification, and distribution while ensuring that credit is given to the original authors.

For the full text of the license, please see the LICENSE file in this repository or visit the Open Source Initiative's Artistic License 2.0 page.

Contact

For questions, suggestions, or support, please open an issue in this repository or contact us at info@podlite.org.

About

This site is a collection of documentation, articles, links, examples about the Raku programming language. All it being putted together in one information space to help you learn Raku faster and more efficiently.

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages