YYiki

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

  1. Arguably, the minimal text format that supports 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 flat files 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 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 the single-user personal wiki and thus the admin account and access control are 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.