# =====================================================================
# pm (pymarks): an HTML bookmark and RSS generator
# =====================================================================
#
# A simple, fast bookmark system that generates a static HTML page with
# tag filtering, pagination and built-in search. Everything is embedded
# in the HTML: no databases, no server-side requirements.
#
# Built for personal use. Polished for others who might find it useful
# (see the script's configuration section).
#
# Works equally well offline and online. Create separate HTML files for
# different purposes: public.txt, private.txt, etc...
#
# =====================================================================
# COMPATIBILITY
# =====================================================================
#
# Supported: Linux, macOS, *BSD and Windows
#
# Output: bookmarks.html (works in any modern browser)
# rss.xml (valid RSS 2.0 feed)
#
# Required: Python 3.6 or higher (uses only standard library)
#
# =====================================================================
# LAYOUT
# =====================================================================
#
# The generated HTML uses a clean 3-column desktop layout that's
# optimized for 1080p (zoom-friendly for other resolutions):
#
# - Left: Tags (A to SPLIT_LETTER)
# - Center: Bookmarks (with filtering, pagination and search)
# - Right: Tags (SPLIT_LETTER+1 to Z)
#
# The default split is the letter 'K'; configurable.
#
# =====================================================================
# FILE FORMAT
# =====================================================================
#
# Each bookmark entry uses 4 lines: URL, TITLE, Description, Tags.
#
# Separate entries with one or more blank lines.
#
# Comment lines are supported (preceded with #)
#
# URL [remote | local | absolute | relative]
# TITLE
# Description [supports HTML]
# tag1, tag2, tag3 [tip: Use tag to PIN some tags to the top]
#
#
# Bookmarks appended to the end of the text file will appear as the
# most recent entries in bookmarks.html and the RSS feed.
#
# =====================================================================
# FILE FORMAT EXAMPLE
# =====================================================================
#
# https://www.gutenberg.org/
# Project Gutenberg
# Free eBooks - over 70,000 free classic books
# ebooks, reading, public-domain
#
# https://archive.org/
# Internet Archive
# Digital library of internet sites and other resources
# archive, history, media
#
# file:///home/user/docs/python-cheatsheet.html
# Python Cheat Sheet
# Local reference guide for Python
# python, programming, local
#
# ../../notes/todo.html
# Daily todo list
# Tasks and reminders for today
# todo, schedule, local
#
# https://www.openstreetmap.org/
# OpenStreetMap
# Free editable map of the world
# maps, geography
#
# =====================================================================
# PERFORMANCE EXPECTATIONS
# =====================================================================
#
# Designed for modest collections (a few thousand bookmarks or less).
#
# Up to 1,000 bookmarks: Instant, no noticeable delay.
# About 5,000 bookmarks: Near-instant search and tag filtering.
#
# =====================================================================
# HOW TO USE
# =====================================================================
#
# 1. Create a bookmarks.txt file following the format above
#
# 2. Run the script with your bookmark file:
#
# Default output: bookmarks.html
# pm bookmarks.txt
#
# Custom output: mypage.html
# pm bookmarks.txt mypage.html
#
# Custom output: html extension auto-added
# pm bookmarks.txt mypage
#
# With a directory path
# pm path/to/bookmarks.txt anyName.html
#
# 3. This creates the HTML file and rss.xml in the current directory.
#
# 4. Upload both files to your web server to share with others or use
# bookmarks.html locally.
#
# =====================================================================
# CONFIGURATION NOTES
# =====================================================================
#
# See the CONFIGURATION section at the top of this script for details.
#
# The following can be easily customized:
#
# - Tag columns defined using a 'split letter'
# - Page title
# - RSS feed title
# - Footer links
# - Number of bookmarks per page
# - Column Width Adjustments
#
# =====================================================================
# RSS FEED
# =====================================================================
#
# Append new bookmarks to the end of the file.
#
# The RSS feed includes the 10 most recent bookmarks (culled from the
# bottom of your bookmarks.txt file) and is regenerated each time the
# script runs.
#
# =====================================================================
#
# Last updated: 09 August 2026
#