# ===================================================================== # STATIC BOOKMARK GENERATOR # ===================================================================== # # A simple, fast bookmark system that generates a static HTML page # with tag filtering, pagination and an RSS feed. Built for in-house # use, polished for others who might find it useful. # # Works for private use, public sharing or both. Create separate files # for different purposes: # # public-bms.txt, private-bms.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) # # ===================================================================== # 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 embedding HTML] # tag1, tag2, tag3 # # # New bookmarks should be appended to the end of the file to appear as # the most recent entries. # # ===================================================================== # 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 # # ===================================================================== # APPENDING NEW BOOKMARKS # ===================================================================== # # Instead of editing a large bookmarks file directly, create a small # file (new.txt) with a manageable amount of entries following the same # 4-line format, then append it: # # cat new.txt >> bookmarks.txt # # Then run the bookmarks.py script to recreate bookmarks.html # # ===================================================================== # PERFORMANCE EXPECTATIONS # ===================================================================== # # Designed for modest collections (a few thousand bookmarks or less). # # Up to 1,000 bookmarks: Instant, no noticeable delay (expected) # 1,000 - 5,000 bookmarks: Fast, 1-2 second initial load (expected) # 5,000+ bookmarks: Beyond intended scope. Consider Postmarks (github) # # ===================================================================== # HOW TO USE # ===================================================================== # # 1. Create a bookmarks.txt file following the format above # # 2. Run the script: # # Linux/macOS: ./bookmarks.py bookmarks.txt # Windows: python bookmarks.py bookmarks.txt # # 3. This creates a bookmarks.html and rss.xml file # # 4. Upload both files to your web server to share with others # or just use the bookmarks.html file locally # # ===================================================================== # # # Last updated: 20 May 2026 # #