Pi66

merodi
A markdown-based static site generator.
git clone https://git.pi66.xyz/merodi

Date Message Author Files + -
2026-07-23 18:29 fix: run on_build_start hook before validation pi66 1 +1 -3
2026-07-23 15:28 fix: make release-mode errors fatal instead of rendering HTML page to production pi66 1 +16 -12
2026-07-23 15:15 docs: simplify README, defer full docs until 1.0.0 pi66 1 +11 -105
2026-07-22 15:57 chore: bump version to 0.4.1 pi66 1 +1 -1
2026-07-22 15:56 fix: remove automatic release destination cleanup pi66 1 +0 -4
2026-07-22 15:54 fix: exit after successful build validation pi66 1 +1 -0
2026-07-22 15:28 chore: bump version to 0.4.0 pi66 1 +1 -1
2026-07-22 15:26 fix: resolve output paths and force file builds pi66 1 +6 -1
2026-07-22 09:37 refactor:update watcher and webviewer for build modes pixel 2 +27 -35
2026-07-22 09:37 refactor:simplify file operations pixel 1 +7 -14
2026-07-22 09:36 refactor:simplify error handling pixel 1 +31 -29
2026-07-22 09:36 refactor:simplify config loading pixel 1 +19 -34
2026-07-22 09:36 refactor:simplify walk/build orchestration pixel 1 +9 -14
2026-07-22 09:35 refactor:simplify compile pipeline pixel 1 +11 -17
2026-07-22 09:34 refactor:simplify markdown/html processing pixel 1 +22 -49
2026-07-22 09:33 refactor:simplify plugin loading pixel 1 +4 -7
2026-07-22 09:31 feat:add build validation and force options pixel 1 +3 -1
2026-07-22 09:31 feat:add build modes (draft/release) pixel 7 +99 -80
2026-07-21 19:09 chore: remove build/ and dist/ from gitignore pi66 1 +0 -2
2026-07-21 18:38 feat: add global version option and show help by default pi66 1 +12 -1
2026-07-21 18:38 chore: bump version to 0.3.1 pi66 1 +1 -1
2026-07-21 16:14 fix: improve temporary progress output pi66 2 +4 -5
2026-07-21 10:29 fix: clear_all_hashes signature, full_reload, GlobalStore accessors, compile_file order, remove dead should_skip_file pi66 4 +34 -29
2026-07-21 10:16 webviewer: remove duplicate warn pi66 1 +5 -6
2026-07-21 10:15 watcher: rewrite with safety net, static detection, single/full reload pi66 1 +58 -27
2026-07-21 10:15 main: add on_start/on_end lifecycle hooks pi66 1 +7 -0
2026-07-21 10:15 errors: extract term_error/web_error, remove duplicate pi66 1 +10 -5
2026-07-21 10:14 hash: global cache, clear functions pi66 1 +15 -6
2026-07-21 10:14 build: split compile_file, add progress, build_all pi66 2 +62 -35
2026-07-21 10:14 build: fix isfile, remove loading all .py files pi66 1 +10 -11
2026-07-21 10:13 hooks: multi-subscriber system with priority and error isolation pi66 1 +60 -42
2026-07-21 10:13 api: add API singleton with GlobalStore and expose decorator pi66 1 +19 -0
2026-07-18 22:27 feat: add on_plugins_before_export hook entry, reorder hooks alphabetically pi66 2 +3 -1
2026-07-18 22:26 feat: set api.config inside load_config pi66 1 +3 -1
2026-07-18 22:25 feat: enable line numbers in syntax highlighting config pi66 1 +2 -0
2026-07-18 22:24 feat: wire build.py functions into api/expose plugin system pi66 1 +12 -4
2026-07-18 04:06 refactor: remove escape_code_blocks. pi66 2 +1 -20
2026-07-18 00:38 feat: add on_page_skip hook for skipped pages pi66 2 +2 -0
2026-07-18 00:27 fix: prune hooks dict to match only hook names actually called in code pi66 1 +25 -35
2026-07-17 23:53 feat: add plugin hook system across build, config, hash, and watcher pipelines pi66 5 +116 -26
2026-07-15 00:12 chore: bump version to 0.3.0 pi66 1 +1 -1
2026-07-15 00:10 feat: add title param to info() pi66 1 +2 -2
2026-07-15 00:10 feat: reload plugins on change, force-rebuild on template edit pi66 2 +23 -17
2026-07-15 00:10 fix: treat tree.plugins as a directory pi66 2 +4 -3
2026-07-15 00:10 refactor: split build pipeline, fix plugin loading, add hooks for plugin API pi66 1 +85 -60
2026-07-15 00:10 refactor: remove global CONFIG, pass config explicitly pi66 2 +11 -16
2026-07-14 19:52 feat: skip dotfiles during build pi66 1 +4 -1
2026-07-14 19:51 fix: preserve ${} in code blocks pi66 1 +5 -1
2026-07-06 01:44 feat: add md5-hashing-based caching to skip unchanged files pi66 6 +101 -5
2026-07-05 01:19 fix: resolve symlinked markdown files using readlink before compiling pi66 1 +3 -2
2026-07-04 23:05 chore: remove unused Extras import pi66 1 +0 -1
2026-07-04 23:05 fix: use config.tree instead of stale tree_config, watch plugin dir pi66 1 +1 -1
2026-07-04 23:03 refactor: use settings.CONFIG instead of passing config through call chain pi66 3 +52 -37
2026-07-04 22:59 fix: reload plugin modules fresh on each build to avoid stale cache pi66 1 +5 -0
2026-07-04 22:58 refactor: move init_config_struct/render_config into init_project pi66 2 +52 -52
2026-07-04 22:56 refactor: consolidate config loaders into load_config() pi66 1 +21 -9
2026-07-04 22:54 feat: add global CONFIG holder in settings pi66 1 +3 -0
2026-07-04 14:31 fix: allow plugins to import local modules pi66 1 +4 -0
2026-07-03 19:46 refactor: remove index.html fallback for directory change events pi66 1 +0 -6
2026-07-03 19:44 fix: simplify reload() pi66 1 +3 -4
2026-07-03 19:44 refactor: update config loader calls to match new signature pi66 1 +3 -3
2026-07-03 19:42 chore: chdir into project dir before loading config pi66 2 +8 -6
2026-07-03 19:41 refactor: drop project_path param from config loaders, use cwd instead pi66 1 +11 -11
2026-07-02 21:43 fix: resolve local IPs for the HTTP server pi66 2 +35 -11
2026-07-02 21:42 fix: handle missing frame in error reporting pi66 1 +23 -9
2026-07-01 13:54 chore: bump version to v0.2.1 pi66 1 +1 -1
2026-07-01 03:02 fix: prevent Jinja from misparsing literal template syntax inside code blocks pi66 1 +14 -21
2026-06-30 18:30 chore: log HTTP server start pi66 1 +1 -0
2026-06-30 17:14 fix: update tracked markdown file based on actual changed path pi66 1 +15 -9
2026-06-30 17:13 chore: sort markdown extensions alphabetically pi66 1 +6 -6
2026-06-30 01:45 feat: add watch command pi66 3 +91 -45
2026-06-29 16:41 fix: handle plugin loading failures pi66 1 +13 -9
2026-06-29 16:19 fix: keep file watcher observer alive pi66 1 +2 -1
2026-06-28 14:09 fix: handle malformed log_message args with try/except pi66 1 +5 -2
2026-06-28 14:09 fix: remove undefined global context from load_plugins pi66 1 +0 -1
2026-06-27 22:38 fix: use .get() with defaults for all config fields pi66 1 +26 -33
2026-06-27 22:09 chore: bump version to 0.2.0 pi66 1 +1 -1
2026-06-27 22:08 feat: add dev_tools config option to webview pi66 3 +5 -1
2026-06-27 20:27 fix: prevent inline regex from matching backticks inside fenced blocks pi66 1 +15 -4
2026-06-27 18:23 fix: escape code blocks with raw tags instead of manual char replacement pi66 1 +5 -2
2026-06-27 18:15 fix: correct highlight config path pi66 1 +1 -1
2026-06-27 12:18 docs: update README.md pi66 1 +2 -2
2026-06-27 12:14 docs: update README.md pi66 1 +70 -22
2026-06-27 12:13 fix: remove hardcoded extras default in single file build pi66 1 +8 -2
2026-06-27 12:05 refactor: remove pymdownx.magiclink extension pi66 1 +0 -1
2026-06-27 11:52 feat: use default highlight config for --file builds pi66 1 +2 -1
2026-06-27 11:37 feat: integrate highlight config into markdown compilation pi66 2 +24 -12
2026-06-27 11:37 feat: add Extras dataclass and load_extras_config pi66 2 +16 -0
2026-06-27 11:37 chore: add pygments to dependencies pi66 1 +2 -1
2026-06-27 11:15 refactor: rename config to tree_config in build.py for clarity pi66 1 +4 -4
2026-06-27 11:08 refactor: move `create_tree_dirs()` to fileops.py pi66 2 +8 -9
2026-06-27 11:06 refactor: move `init_config_struct()` to config.py pi66 2 +29 -26
2026-06-27 10:51 refactor: move render_config to config.py pi66 2 +22 -20
2026-06-27 01:58 feat: add LaTeX math rendering pi66 2 +30 -18
2026-06-27 01:03 feat: add support for `md_to_html` extension pi66 1 +1 -0
2026-06-27 00:16 feat: add advanced markdown extensions pi66 2 +16 -5
2026-06-26 23:30 refactor: remove unused watch files parameter pi66 1 +1 -1
2026-06-26 23:29 refactor: simplify watch files call pi66 1 +1 -1
2026-06-26 23:29 refactor: watch project folders directly pi66 1 +1 -1
2026-06-26 23:28 refactor: remove unused watch files parameter pi66 1 +0 -1
2026-06-26 23:28 fix: improve web path resolution for html files pi66 1 +23 -9
2026-06-26 23:26 fix: remove markdown attributes after jinja tags pi66 1 +3 -1
2026-06-26 23:20 refactor: remove `{{` from html_filter as it doesn't need to be wrapping pi66 1 +0 -2
2026-06-26 01:04 fix: patch attr_list to use [ ] instead of { } to avoid Jinja2 conflicts pi66 1 +12 -3
2026-06-25 17:42 feat: enable extended Markdown support pi66 1 +8 -1
2026-06-25 17:12 Init commit pi66 15 +694 -0