Commit graph

153 commits

Author SHA1 Message Date
8bcd4809dd
Bump version: 0.1.26 → 0.1.27
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.27
2026-09-18 01:43:49 +02:00
54dcb32729
feat: optionally skip notifying local outgoing webmention targets
- Add exclude_local_targets flag to handler and outgoing processor
- Filter extracted targets by base_url/base_urls netloc when enabled
- Add unit tests and changelog entry
2026-09-18 01:43:28 +02:00
f1aa6c5825
Bump version: 0.1.25 → 0.1.26
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.26
2026-09-18 00:59:52 +02:00
c7d0f3bc05
fix: add SSRF-guarded fetch with caps for Webmention HTTP calls
- Validate per-hop redirect hosts against non-public IP ranges
- Refuse non-http(s) redirects and cap streamed response bodies
- Add handler/processor flags: ssrf_protection and max_source_response_bytes
- Update tests and add guarded fetch unit coverage
2026-09-18 00:59:33 +02:00
f376720090
Bump version: 0.1.24 → 0.1.25
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.25
2026-09-17 18:16:02 +02:00
1802ed7764
fix: discover webmention endpoints for media via Link header
- Extract absolute src URLs from HTML embeds as outgoing targets
- Parse Link header before HTML checks to support non-HTML resources
2026-09-17 18:15:56 +02:00
2e2dd7cb30
Bump version: 0.1.23 → 0.1.24
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.24
2026-09-17 17:10:11 +02:00
fb664df758
fix: Derive plain-text excerpts from HTML content
The incoming parser derived ``mention.excerpt`` by collapsing whitespace
on the raw ``e-content``/description string and cutting it at a fixed
character limit. For HTML content this produced excerpts that end
mid-tag (e.g. ``... <a href=``), which downstream consumers then render
as broken markup or verbatim HTML.

Excerpts are now reduced to plain text (tags stripped via BeautifulSoup)
before being truncated at a word boundary with an ellipsis marker.

Also expose the entry's explicit ``p-summary`` under
``metadata["mf2"]["summary"]`` so consumers can tell a real summary
apart from an excerpt derived from the content.
2026-09-17 17:10:04 +02:00
872ad220c9
Bump version: 0.1.22 → 0.1.23
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.23
2026-06-22 20:39:14 +02:00
4e81aa874f
feat: Cap outgoing endpoint discovery response size
- Add max_discovery_response_bytes option with default 1MiB
- Stream discovery fetches; skip non-HTML and oversized responses
- Close responses after discovery and add unit tests for limits
2026-06-22 20:39:06 +02:00
fda4b26e0e
Bump version: 0.1.21 → 0.1.22
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.22
2026-04-05 02:15:27 +02:00
31e9e2c694
feat: Allow multiple base URLs for incoming webmention validation
- Add base_urls support and merge with base_url for backward compatibility
- Document multi-URL listener setup
- Add unit tests for multi-domain validation behavior
2026-04-05 02:14:57 +02:00
1421bf52c8
Bump version: 0.1.20 → 0.1.21
Some checks failed
publish-pypi / publish (push) Has been cancelled
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
v0.1.21
2026-03-13 03:10:20 +01:00
83cea8cbcf
docs(changelog): Updated CHANGELOG 2026-03-13 03:10:18 +01:00
88830f77c4
fix(parser): Treat author string as name unless it is a URL
Keep URL strings in author url slot; map plain strings to name
2026-03-13 03:09:30 +01:00
8adaea189d
Bump version: 0.1.19 → 0.1.20
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.20
2026-03-11 23:02:32 +01:00
9e46125b29
docs(changelog): Updated CHANGELOG 2026-03-11 23:02:09 +01:00
ddd9c48fac
docs(readme): Add badges and table of contents 2026-03-11 23:00:51 +01:00
fc4fe22061
build(pre-commit): Add md-toc hook for README.md 2026-03-11 23:00:29 +01:00
54b8009aef
Bump version: 0.1.18 → 0.1.19
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.19
2026-03-11 20:10:26 +01:00
5fc176024a
fix: Temporarily fix for the previous version 2026-03-11 20:10:20 +01:00
c2015d67db
docs(changelog): Updated CHANGELOG 2026-03-11 20:09:37 +01:00
16b614dc1c
style: Some minor style adjustments
- Increase author photo to 35px square
- Remove author name font-size override
- Cap expanded collapsible max-height at 1000em (high, but still needed
  in order to get the animation to work)
2026-03-11 20:08:03 +01:00
46bef6365f
Bump version: 0.1.17 → 0.1.18
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.18
2026-03-11 18:33:25 +01:00
ef8e2e0291
docs(changelog): Updated CHANGELOG 2026-03-11 18:33:17 +01:00
628ce120e7
style: Unset max-height for expanded interactions 2026-03-11 18:32:20 +01:00
4e405ab2af
fix(render): One more (ugly) attempt to prevent None as Webmention content
Some checks are pending
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
2026-03-11 02:07:19 +01:00
7c6209ad62
fix: Guard webmention content rendering for empty strings
Some checks are pending
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
2026-03-11 01:36:37 +01:00
0f00c4d189
Bump version: 0.1.16 → 0.1.17
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.17
2026-03-10 17:12:27 +01:00
d7c270b790
docs(changelog): Updated CHANGELOG 2026-03-10 17:12:25 +01:00
804b976f39
style(render): Collapse interactions if they are too long 2026-03-10 17:11:46 +01:00
22c06996da
Bump version: 0.1.15 → 0.1.16
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.16
2026-03-10 01:30:25 +01:00
5470c309a6
docs(changelog): Updated CHANGELOG 2026-03-10 01:30:16 +01:00
acb5583cf6
fix(render): Prefer HTML content and sanitize mention markup
- Parse mf2 content using `html` before `value`
- Add basic allowlist HTML sanitizer and use it in webmention template
2026-03-10 01:27:00 +01:00
71ad5ee181
fix(parser): Strip trailing URLs from mention titles
- Clean mf2, og:title, twitter:title, and <title> derived titles
2026-03-10 01:24:28 +01:00
8df001f8e0
Bump version: 0.1.14 → 0.1.15
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.15
2026-03-09 17:49:03 +01:00
30eb2b252a
docs(changelog): Updated CHANGELOG 2026-03-09 17:49:00 +01:00
7fea41ed4f
fix(renderer): Sort webmentions by timestamp before rendering
- Order by created_at, then published, newest first
- Use sorted order for mention-type counts
2026-03-09 17:48:15 +01:00
bf91908b67
Bump version: 0.1.13 → 0.1.14
Some checks failed
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.14
2026-03-08 00:09:07 +01:00
0410932795
docs(changelog): Updated CHANGELOG 2026-03-08 00:09:03 +01:00
76ebac80e9
feat(render): Add webmention type counts and summary header
- Compute per-type counts in renderer and pass to template
- Render summary bar and update heading in webmentions template
2026-03-08 00:07:13 +01:00
d43f7cc295
Bump version: 0.1.12 → 0.1.13
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.13
2026-03-07 22:40:23 +01:00
6d0c5aa5c3
docs(changelog): Updated CHANGELOG 2026-03-07 22:40:08 +01:00
6667de5fee
style: Namespace webmentions template CSS classes
- Prefix mention subcomponent selectors with `wm-mention-`
- Target `h2` under `.wm-mentions` instead of `.wm-mention`
2026-03-07 22:38:56 +01:00
44cc258e97
Bump version: 0.1.11 → 0.1.12
Some checks failed
build / build (push) Waiting to run
coverage / coverage (push) Waiting to run
publish-docs / publish-docs (push) Has been cancelled
publish-pypi / publish (push) Has been cancelled
v0.1.12
2026-03-07 22:23:09 +01:00
e7abb81734
docs(changelog): Updated CHANGELOG 2026-03-07 22:22:57 +01:00
819906132e
style: Namespace Webmention template CSS classes with wm- prefix
- Update templates and unit test expectation for new class names
2026-03-07 22:20:49 +01:00
f0ab1813de
Bump version: 0.1.10 → 0.1.11
Some checks failed
publish-pypi / publish (push) Has been cancelled
build / build (push) Has been cancelled
coverage / coverage (push) Has been cancelled
publish-docs / publish-docs (push) Has been cancelled
v0.1.11
2026-03-05 21:14:35 +01:00
cfa75664ed
docs(changelog): Updated CHANGELOG 2026-03-05 21:14:19 +01:00
083d91b9a8
feat: add Tornado web framework adapter
- Async handlers using run_in_executor to avoid blocking IOLoop
- bind_webmentions() with same API as Flask/FastAPI adapters
- make_webmention_link_header_handler() for Link header injection
- Unit tests and E2E integration tests
- API docs, example server, and README section
- Add [tornado] install extra

Closes #5
2026-03-05 21:11:37 +01:00