GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - psf/wiki: The Python Wiki

BranchesTags
Open more actions menu

Latest commit

 

History

110 Commits
110 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
_exclude
_exclude
 
 
_extra/edit
_extra/edit
 
 
_redirects_html
_redirects_html
 
 
_static
_static
 
 
_templates/partials
_templates/partials
 
 
contributing
contributing
 
 
jython
jython
 
 
oauth
oauth
 
 
people
people
 
 
psf
psf
 
 
python
python
 
 
scripts
scripts
 
 
.dockerignore
.dockerignore
 
 
.env.example
.env.example
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
.python-version
.python-version
 
 
Dockerfile
Dockerfile
 
 
LICENSE-APACHE
LICENSE-APACHE
 
 
LICENSE-MIT
LICENSE-MIT
 
 
Makefile
Makefile
 
 
Procfile
Procfile
 
 
README.md
README.md
 
 
_redirects.json
_redirects.json
 
 
_redirects_moin.json
_redirects_moin.json
 
 
conf.py
conf.py
 
 
index.md
index.md
 
 
nginx.conf
nginx.conf
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

The Python Wiki

A Sphinx-based rebuild of the Python community wiki, migrated from the old MoinMoin installation. Three wiki sections live here: python, psf, and jython.

Setup

You'll need uv and Python 3.14+.

make install

That's it. No virtualenv management, no pip — uv handles everything.

Contributing

All content lives as Markdown files under python/, psf/, and jython/. Each section has its own index.md with a toctree. Subdirectories group related pages (workgroups, conferences, etc.) and have their own index.md files too.

To edit a page, find the .md file and change it directly. The format is MyST Markdown — standard Markdown plus a few Sphinx directives like {toctree} and {admonition}.

Previewing your changes

The wiki has ~3500 pages across all three sections, so a full build takes a while. You almost certainly don't need to build everything.

Build just the section you're working on:

## PSF wiki only (~400 pages, builds in under a minute)
make docs-serve-fast WIKI=psf

## Jython wiki only (~460 pages)
make docs-serve-fast WIKI=jython

## Python wiki (~3400 pages — still the big one)
make docs-serve-fast WIKI=python

Build a single subsection when you're focused on one area:

## Just the Packaging WG pages (~113 pages, builds in seconds)
make docs-serve-fast WIKI=psf SECTION=Packaging

## Just the Advocacy section
make docs-serve-fast WIKI=python SECTION=Advocacy

## Just the Summer of Code pages
make docs-serve-fast WIKI=python SECTION=SummerOfCode

Both commands start a live-reload server — save a file and the browser refreshes automatically.

Full build (all sections, for CI or final checks):

make docs

Adding a new page

  1. Create a .md file in the right directory
  2. Add it to the parent index.md toctree
  3. Start the file with a top-level heading (# Page Title)

If you're creating a new subdirectory, add an index.md inside it with a toctree listing its pages, then reference that subdir/index from the parent toctree.

Page format

Pages migrated from MoinMoin have a legacy notice at the top — you can remove it if you're substantially rewriting the content. New pages don't need one.

A minimal page looks like:

## My Page Title

Content goes here. Standard Markdown works — links, lists, code blocks, tables.

Use [MyST directives](https://myst-parser.readthedocs.io/en/latest/syntax/roles-and-directives.html)
when you need admonitions, toctrees, or tab panels.

Redirects from the old wiki

The old MoinMoin wiki used a custom URL encoding for special characters — spaces became (20), slashes became (2f), umlauts like Ä became (c384), and so on. The new site uses plain decoded filenames.

Page moves and encoded filename mappings live in _redirects.json. On every Sphinx build, scripts/gen_redirect_pages.py resolves redirect chains and regenerates static HTML redirects in _redirects_html/; no redirect extension or raw archive is required.

The generator also restores the Python wiki's public /moin/ URLs from the mappings and surviving Python pages. For example, /moin/BeginnersGuide/NonProgrammers redirects directly to /python/getting-started/BeginnersGuide/NonProgrammers.html. Explicit /moin/ mappings take precedence. Directory landing pages preserve parent-page bookmarks, and /moin/ leads to the Python wiki home. Query strings and fragments survive redirects.

If you reorganize pages, add entries to _redirects.json using extensionless docnames, such as "python/OldName": "python/guides/NewName". Builds automatically regenerate the HTML, and changes to the map trigger deployment.

To regenerate the HTML without a Sphinx build:

uv run python scripts/gen_redirect_pages.py

To rescan the raw HTML archive for additional encoded filename mappings:

make redirects

This merges discovered mappings without overwriting manual entries, then regenerates the HTML. To run the redirect regression tests:

uv run python -m unittest discover -s scripts/tests -v

Other make targets

make help             Show all available targets
make sync             Pull raw HTML from the wiki server
make convert          Re-run the MoinMoin-to-Markdown conversion
make redirects        Regenerate old wiki URL redirects
make lint             Run pre-commit hooks
make clean            Remove all build artifacts
make docs-clean       Remove just the Sphinx build output

Project structure

python/               Python wiki content
psf/                  PSF wiki content
jython/               Jython wiki content
scripts/              Conversion and maintenance scripts
  convert.py          MoinMoin HTML → MyST Markdown converter
  strip_attrs.py      Strips pandoc attribute syntax from .md files
  gen_old_wiki_redirects.py
                      Generates MoinMoin URL → decoded path redirects
  gen_redirect_pages.py
                      Generates static redirects, including legacy /moin/ aliases
_redirects.json       Page moves and encoded filename mappings
_templates/           Sphinx HTML templates
_static/              CSS and static assets
conf.py               Sphinx configuration

License

Unless otherwise noted, this project is dual-licensed under the MIT License or the Apache License, Version 2.0, at your option (MIT OR Apache-2.0).

Existing third-party material, including migrated wiki content and attachments, retains its original copyright and licensing terms. This dual-license grant does not relicense that material or grant rights its contributors have not authorized.

About

The Python Wiki

psf.github.io/wiki/

Topics

psfpythonpython-software-foundationpython-wikiwiki

Resources

Readme

Code of conduct

Code of conduct
Activity
Custom properties

Stars

11 stars

Watchers

0 watching

Forks

16 forks
Report repository

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.