镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

About

Single-file HTML app for browsing Pinboard.in bookmark exports — searchable, filterable, no server needed

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Pinboard Archive — Your bookmarks, searchable forever

License: MIT No dependencies

A single-file HTML app that makes exported bookmarks from Pinboard.in (or similar services) searchable and filterable locally — no server, no account, no dependencies. Useful as a personal archive you can browse even after the original service is gone.

Screenshot

Usage

  1. Export your bookmarks from Pinboard as JSON (https://api.pinboard.in/v1/posts/all?format=json).
  2. Open index.html in any modern browser.
  3. Load your export via the file picker or drag & drop.

Alternatively, place your export as bookmarks.json in the same directory — it will be loaded automatically when served over HTTP (e.g. python3 -m http.server 8080).

To try it out with public data, you can download bookmarks from Codever by running python3 codever.py, which fetches all public bookmarks and saves them as bookmarks.json.

Build step (for local file use)

Browsers block fetch() requests from file:// URLs, so bookmarks.json won't auto-load when you open index.html directly as a local file. The build script solves this:

python3 build.py

This reads bookmarks.json and produces:

  • bookmarks.js — a compact JS file (window.BOOKMARKS=[...]) with unused properties stripped.
  • bookmarks.html — a fully self-contained HTML file with the bookmarks inlined.

To copy or share your bookmark archive, either copy index.html + bookmarks.js together, or just bookmarks.html which contains both combined into a single file.

Features

  • Full-text search across title, description, and URL
  • DNF tag filtering: multiple filter rows connected by OR; within each row, conditions are AND-connected
  • Tag and text conditions: include (green) or exclude (red) tags and text searches
  • Interactive omni-input: type to search tags, add text filters, with live preview of results
  • Live preview while typing: results update instantly as you type, showing matches for all dropdown candidates
  • Tag cloud: row-scoped, showing only tags relevant to the active filter row
  • Dark mode via prefers-color-scheme
  • Results capped at 200 with lazy loading; top 100 tags shown by default

Filter Logic

Filters use Disjunctive Normal Form (DNF):

(Row1) OR (Row2) OR ...
Row = (all includes match) AND (no excludes match)
  • Each row contains include (green) and exclude (red) conditions
  • Conditions can be tags (exact match) or text searches (substring match on title, description, URL)
  • Click = include, Shift+click = exclude; click pill to remove, Shift+click pill to toggle exclusion
  • Backspace on empty input removes the last pill

Data stays local

All processing is client-side. No data is sent anywhere. The JSON file is read into memory only and never persisted.

Browser support

Requires ES2020+ (all modern browsers). No polyfills included.

See also

  • Pinboard — a long-running social bookmarking service that hasn't seen much active development in recent years. Pinboard Archive is designed to work with its JSON export format.
  • Pinboard Pin — a Firefox add-on for quickly saving and managing bookmarks on Pinboard directly from the browser toolbar.

Author

Created by Christoph Zwerschke. Released under the MIT License.

About

Single-file HTML app for browsing Pinboard.in bookmark exports — searchable, filterable, no server needed

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages