YYiki

YYiki is a personal Wiki created and managed by yy. It is built on the The Rule of Least Power and aims to create a wiki that can be maximally re-used with other systems.

  1. Arguably, the minimal text format that support internal links is markdown. So Markdown is used.
  2. The pages (written in plain text markdown) can be managed in many ways (e.g., DB) but the least powerful and minimal solution is flatfiles inside a folder (and hierarchically organized folders). So Flat files are used.
  3. How to manage the change history of pages? It is possible to implement some ways to keep the history. But why should we create our own if we can just use existing version control systems? So Git + GitHub is used.

The benefit of having a minimal system with flat files is that other software can use the same “database”. The page repo can be seamlessly used with tools like Obsidian. Currently it is built for the case of single-user personal wiki and thus the admin account and access control is minimal and manual adjustments are required.

The wiki engine is written in Python. It uses Flat files (implemented with Flask + Flask-FlatPages) and Git to manage the pages. It uses Tufte CSS as the default design.

The source code is on GitHub. The following pages contain its interface and installation documentation.