Every exported document (PDF, EPUB, DOCX, HTML, markdown, plain, ...)
now points back to its living source on Remarkbox so a printed snapshot
remains traceable years later.
What's injected:
- Top banner: source URI, snapshot ISO timestamp, generator commit hash,
plus a notice the document is a snapshot of a living source.
- QR code (PNG, embedded as data URI) linking back to the canonical URI.
Scannable from print, survives the pandoc image pipeline across
HTML, PDF (via wkhtmltopdf), DOCX, EPUB, ODT.
- Per-reply permalinks: each reply heading hyperlinks its date to the
deep-link permalink (thread-uri#node-id), academic-citation style.
- Footer repeating the source URI + commit hash.
- Namespace exports also hyperlink each chapter title to the live
thread.
Canonical URI = https://{namespace.name}{node.path} — namespace name is
its host on the public web.
New module: remarkbox/lib/provenance.py — header_md, footer_md,
reply_heading_md, qr_png_data_uri, canonical_uri helpers, and a one-shot
build() bundler.
Dep added: segno (pure-Python QR generator, BSD, zero deps).
84 lines
1.9 KiB
Text
84 lines
1.9 KiB
Text
# python 2 -> 3 compat.
|
|
six
|
|
|
|
# Python 3.12+ no longer bundles setuptools in venvs.
|
|
setuptools
|
|
|
|
# Pyramid.
|
|
plaster_pastedeploy
|
|
pyramid
|
|
pyramid_jinja2
|
|
pyramid_debugtoolbar
|
|
pyramid_retry
|
|
pyramid_tm
|
|
|
|
# Model.
|
|
SQLAlchemy
|
|
SQLAlchemy-Utils
|
|
transaction
|
|
zope.sqlalchemy
|
|
alembic
|
|
|
|
# PostgreSQL database connections.
|
|
# requires postgresql-devel on Fedora for `pg_config` binary.
|
|
psycopg2-binary
|
|
|
|
# Template renderer.
|
|
#jinja2
|
|
jinja2
|
|
|
|
# MarkDown is a popular and familair WYSIWYM markup language.
|
|
markdown
|
|
python-markdown-math
|
|
html5lib
|
|
BeautifulSoup4
|
|
|
|
# Bleach sanitizes MarkDown (removes HTML/Javascript) to prevent XSS.
|
|
# Pin >=6.0.0: bleach <3.3.0 had CVE-2021-23980 (ReDoS in linkifier URL regex);
|
|
# bleach <6.0.0 had LinkifyFilter API differences that break sanitize_html.py.
|
|
bleach>=6.0.0
|
|
bleach-allowlist
|
|
|
|
# codehilite.
|
|
pygments
|
|
|
|
# Human readable time deltas.
|
|
ago
|
|
|
|
# light weight URI attribute parser.
|
|
miniuri
|
|
|
|
# the official Remarkbox "meta" theme.
|
|
remarkbox-theme-meta @ git+ssh://git@git.unturf.com:2222/engineering/remarkbox/remarkbox-theme-meta.git
|
|
|
|
# chaostheory theme (foxhop.net).
|
|
remarkbox-chaostheory @ git+ssh://git@git.unturf.com:2222/engineering/remarkbox/remarkbox-theme-chaostheory.git
|
|
|
|
# another example theme.
|
|
#git+https://github.com/russellballestrini/remarkbox-westworld.git#egg-remarkbox-westworld
|
|
#git+https://git.unturf.com/engineering/remarkbox/remarkbox-westworld.git#egg-remarkbox-westworld
|
|
#remarkbox-westworld @ git+https://git.unturf.com/engineering/remarkbox/remarkbox-westworld.git
|
|
|
|
# Create URI slugs from titles.
|
|
python-slugify
|
|
|
|
# Future proof, computationally complex password hashes.
|
|
bcrypt
|
|
|
|
# reach out to verify public rb_owner_key.
|
|
requests[security]
|
|
# request library pins this dependency too low.
|
|
# idna==2.6
|
|
|
|
# credit card storage and processing.
|
|
stripe
|
|
|
|
# slack: bot notifications.
|
|
slacker
|
|
|
|
# DKIM Signed Email from Python.
|
|
dkimpy
|
|
|
|
# QR codes for export provenance (links printed PDFs back to their living source).
|
|
# Pure Python, zero deps, BSD license.
|
|
segno
|