Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
6f61f33
release: 0.10.1
WaylonWalker Dec 4, 2025
a13d675
Bump version: 0.10.1b0 → 0.11.0.dev0
Dec 4, 2025
dd2b37f
fix: improve cache invalidation for feeds and templates
WaylonWalker Dec 4, 2025
9ea63c1
fix: add cache invalidation for redirects and jinja_md templates
WaylonWalker Dec 4, 2025
a253987
fix: standardize cache keys with version tracking
WaylonWalker Dec 4, 2025
0dfa7df
ruff fix
WaylonWalker Dec 5, 2025
e3686e6
Bump version: 0.11.0.dev0 → 0.11.0.dev1
Dec 5, 2025
5ee2f1b
Fix AttributeError: 'Environment' object has no attribute 'template_p…
WaylonWalker Dec 5, 2025
5f1742f
Refactor: Centralize template utilities in jinja_env plugin
WaylonWalker Dec 5, 2025
2db2396
Simplify: Add built-in caching to get_template, remove plugin wrappers
WaylonWalker Dec 5, 2025
47856e6
docs: update CHANGELOG for 0.11.0 release
WaylonWalker Dec 5, 2025
12649ea
ruff fixes
WaylonWalker Dec 5, 2025
623cba1
Bump version: 0.11.0.dev1 → 0.11.0.dev2
Dec 5, 2025
dda8603
Add atom support (#167)
WaylonWalker Dec 7, 2025
494b60e
Bump version: 0.11.0.dev2 → 0.11.0.dev3
Dec 7, 2025
10fa96f
fix: markata has no attribute get_template
WaylonWalker Dec 8, 2025
619336f
Bump version: 0.11.0.dev3 → 0.11.0.dev4
Dec 8, 2025
b51059b
Fix: `auto_description` now strips wikilinks, HTML tags, markdown-it …
WaylonWalker Dec 8, 2025
c773bf2
fix: also include jinja blocks
WaylonWalker Dec 8, 2025
d49817f
Fix: `publish_html` now properly resolves custom `output_html`
WaylonWalker Dec 8, 2025
b2ceedb
fix atom issues
WaylonWalker Dec 8, 2025
871bafc
ruff fix
WaylonWalker Dec 8, 2025
7dcca6d
Bump version: 0.11.0.dev4 → 0.11.0.dev5
Dec 8, 2025
73be834
perf: optimize file writes and feed generation
WaylonWalker Dec 8, 2025
6f3498c
ruff fix
WaylonWalker Dec 8, 2025
bac7c96
Bump version: 0.11.0.dev5 → 0.11.0.dev6
Dec 8, 2025
4406bc9
perf: optimize diskcache and feed hash generation
WaylonWalker Dec 9, 2025
a3cf06a
Bump version: 0.11.0.dev6 → 0.11.0.dev7
Dec 9, 2025
6650bd2
fix: correct feed cache key and output_html path resolution
WaylonWalker Dec 9, 2025
05d6396
Bump version: 0.11.0.dev7 → 0.11.0.dev8
Dec 9, 2025
d662ed6
feat: CLI config overrides with -s 'style.theme=nord'
WaylonWalker Dec 18, 2025
6170dbd
Merge branch 'feature/cli-config-overrides' into develop
WaylonWalker Dec 18, 2025
08dba57
docs: Add CLI config overrides to CHANGELOG
WaylonWalker Dec 18, 2025
7297e4c
Bump version: 0.11.0.dev8 → 0.11.0.dev9
Dec 18, 2025
5faa434
feat: enhanced wikilink system (#172)
WaylonWalker Jan 19, 2026
d8882d5
Bump version: 0.11.0.dev9 → 0.11.0.dev10
Jan 19, 2026
836feb4
feat: add pagination support to feeds (#173)
WaylonWalker Jan 22, 2026
6b6a59a
Bump version: 0.11.0.dev10 → 0.11.0.dev11
Jan 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,86 @@
# Markata Changelog

## 0.11.0

### CLI Configuration Overrides

- Feat: Add `-s/--set` flag for runtime config overrides with dot notation (e.g., `-s 'style.theme=nord'`)
- Feat: Add `-c/--config` flag for alternate config files
- Feat: Add `-o/--output-dir` flag for output directory override
- Feat: Add support for `MARKATA_*` environment variables with nested config (e.g., `MARKATA_STYLE__THEME=nord`)
- Feat: Add `parse_set_options()` and `_deep_merge()` utilities for config handling
- Enable: Runtime theme switching and configuration without editing files

### Performance Improvements

- Perf: increased diskcache size limit to 5GB and reduced cull_limit to minimize expensive eviction operations (saves ~4s during cache culling)
- Perf: optimized feed hash generation to use lightweight post identifiers (slug + content_hash) instead of expensive `str(post.to_dict())` serialization (saves ~6s)
- Perf: feeds now cache expensive `feed.map()` calls during hash generation (~7.7s savings)
- Perf: feeds batch directory creation operations (~2s savings)
- Perf: feeds only read XSL files when they exist and need comparison
- Perf: to_json, service_worker, redirects, jinja_env, and post_template now only write files when content changes (prevents unnecessary file system modifications and downstream syncing)

### Cache Invalidation Improvements

- Fix: feeds now properly invalidate cache when post metadata changes (title, date, slug, published, description)
- Fix: feeds now properly invalidate cache when template files are modified
- Fix: post_template now tracks template file changes for cache invalidation
- Fix: redirects now invalidate cache when template files change
- Fix: jinja_md now includes post metadata and version in cache keys
- Fix: standardized cache keys across plugins to include `__version__` for proper invalidation on updates
- Fix: render_markdown now includes backend and extensions in cache key
- Fix: `auto_description` now strips wikilinks, HTML tags, markdown-it attributes (e.g. {.class-name}), Jinja template tags, admonitions (!!!, !!!+, ???, ???+), and HTML comments for cleaner descriptions
- Fix: `publish_html` now properly resolves custom `output_html` paths relative to `output_dir`, preventing files from being written to project root
- Perf: heading_link replaced expensive file I/O with `__version__` in cache key
- Feat: feeds now support atom feeds

### Enhanced Wikilinks System

- Feat: Added comprehensive configuration system for wikilinks resolution with priority-based scoring
- Feat: Implemented intelligent duplicate resolution that eliminates false warnings for hierarchical patterns (e.g., `tag/python` vs `python`)
- Fix: Fixed display text override syntax `[[page|Display Text]]` - now properly splits on first pipe and preserves display text
- Feat: Added support for anchor links `[[page#anchor]]` and complex syntax `[[folder/page#anchor|Display Text]]`
- Feat: Configurable priority rules allow custom scoring patterns for different content types
- Feat: Warning suppression patterns to reduce noise for expected duplicates (e.g., `tag/*`, `category/*`)
- Feat: Multiple resolution strategies: "priority" (default), "first", or "warn"

### Template Utilities (Breaking for Plugin Authors)

- **BREAKING**: Removed internal `get_template()` functions from `feeds.py` and `post_template.py`
- Feat: added centralized `get_template()`, `get_template_paths()`, and `get_templates_mtime()` to `jinja_env` plugin
- Feat: `get_template()` includes automatic caching with `@lru_cache` and smart fallback handling
- **Plugin authors**: Import from `markata.plugins.jinja_env` instead of using internal functions
```python
from markata.plugins.jinja_env import get_template, get_templates_mtime
template = get_template(markata.jinja_env, "template.html")
```

## 0.10.1

- Release: version bump

## 0.10.0

### Feed Pagination

- Feat: Add feed pagination with three types: `htmx`, `manual`, `js`
- Feat: HTMX infinite scroll with partial loading
- Feat: JavaScript infinite scroll using Intersection Observer
- Feat: Manual page navigation with prev/next controls
- Feat: Configurable `items_per_page`, `pagination_type`, and `enabled` per feed

### Security

- Feat: SHA-256 integrity verification for HTMX downloads (25+ versions supported)
- Feat: Path traversal protection for feed slugs
- Feat: XSS prevention in templates using `|tojson` filter
- Feat: Fail securely if HTMX download fails (no CDN fallback)
- Feat: Comprehensive security test suite for feeds

### Other

- Feat: Improve feed name sanitization with Python identifier conversion
- Feat: Add pagination implementation guide documentation
- Fix: `auto_description` now more accurately returns plain text, does not cut off words, and add an ellipsis.
- Fix: article_html now typed such that it may be a dict without warning
- publish_source now only supports using post models that include a dumps command, i.e. no longer frontmatter post objects
Expand Down
Loading