Skip to main content

Syncronize local files with MediaWiki

Project description

🗃️ Pöuli 🐙

Synchronize local files with MediaWiki instances.

ℹ️ About

This tool was originally conceived by Tommi to upload a subset of their personal knowledge repository, the Jam, with their Personal Reader, PaJamas. Hopefully, it can flourish beyond this specific use-case, and be helpful for other XPUB students or wiki adventurers.

✨ Meaning

The name “Pöuli” (equivalent of PoOuli) stands for:

  • Practically Often Used Lovely Interface
  • Petty yet Outstanding Utility Leading to Integration
  • Phenomenal Optimistic Useful Lovely Idea
  • Paradoxically Obscure but Unstoppable Link Ignitor

It is the anagram of Oulipo, an eclectic, mad, and maddening collective of artists formed in the ’60s.

+++ IDEA: Writing machine name generator

⏬ Installation

The installation instructions assume you are using uv.

+++ TODO

⚙️ Configuration

The initial configuration requires to follow the following steps.

  1. Generate a Bot Password in MediaWiki:
    1. Visit https://pzwiki.wdka.nl/mediadesign/Special:BotPasswords
    2. Generate a bot
    3. Save the chosen bot name and its generated password
  2. Run pwb generate_family_file to tell the script that you want to use the XPUB’s wiki as the reference wiki
  3. Run pwb generate_user_files to provide the login credentials retrieved while generating a Bot Password
  4. Run pwb login to establish the connection and to check if everything is working nominally
  5. Create a YAML configuration file in the config directory or in the script’s directory, with the following data:
    • local_directory: path of the directory for the local files
    • wiki_base_path: the path of the main page within which the local files should be synchronized (can be overwritten by permalink_wiki in each note’s front matter)
    • banner (optional): path to an HTML file to include at the end of all wiki pages published via Pöuli, unless wiki_banner is False in the frontmatter.
    • styling (optional): path to an HTML file to include at the end of all wiki pages published via Pöuli, if and only if wiki_styling is True in the frontmatter.

📡 Usage

+++ TODO

🤔 To-do list

An unsorted list of things to do. Everything will be moved to proper issue tracking after the first release.

  • Handle images
  • Get configuration settings from command line arguments, overriding config file instructions
  • Links management and testing
    • local → local private
    • local → local public (on tommi.space)
    • local → local synchronized
    • local → Wiki (as a regular https link)
    • Wiki → Jam (as a regular https link to tommi.space)
    • Wiki → Wiki (not part of Pajamas)
    • Wiki → Wiki
    • Anchor links
      • same page
      • another page
  • Deal with Categories (see below)
  • Note metadata
    • aliases
    • updated
    • wiki_categories
  • Move the Wiki information and credentials to the YAML configuration file. Ideally, no scripts or commands should be required to run before the main one.
  • test on Windows
  • Get wiki pages that are in the specified subpage but are not found locally
  • Transclusion
    • transform <includeonly> (and similar) to <div id=includeonly> in Markdown
    • How to transform anchor transclusions in MediaWiki? It’s not supported
  • Exclude JSON and YAML files from the source directory
  • Test how references and foonotes work
  • Add dict and instructions about how the script works

♻️ License

Everything inside this repository is licensed under the European Union Public License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poouli-0.1.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poouli-0.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file poouli-0.1.0.tar.gz.

File metadata

  • Download URL: poouli-0.1.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for poouli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a7690bd5c500cab191ec5662655b60f12f8d366e2881723ab692a3a4595c064e
MD5 ee47a45559d61e446a1a79681ddb307a
BLAKE2b-256 3a08d05e99e4ff7de79ab66ef8581f3a3d13f6b8dbfa55af20254c8a4df3b58d

See more details on using hashes here.

File details

Details for the file poouli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: poouli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for poouli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 657b515a837d2089142db58597b92f45668b9eb12777a1c6aa06cf4a9da3b67d
MD5 ca7af4670e4147478d832de28a23d3bb
BLAKE2b-256 f7e7e33d6209c6358ad358567947c351442d92f13af9f3d2e61594de3579d633

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page