Commit graph

21 commits

Author SHA1 Message Date
Claude
9856a94d26
Add M favicon, fix manifest for PWA installability
- Generate 192x192 blue/white M icon as favicon.png
- manifest.json: add id field, proper icon sizes (192/512), purpose: any
- mdcms.py generate_pwa(): respect favicon config key, skip icons if
  file missing, emit id and correct sizes

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 20:33:00 +00:00
Claude
a9e48ffee4
Merge remote-tracking branch 'origin/main' into claude/pwa-phase7
# Conflicts:
#	app/pages/home.md
#	mdcms.py
#	pyproject.toml
#	test_phase.py
2026-05-17 19:23:31 +00:00
Claude
92615fad1c
v0.4 Phase 7: PWA support + bump to 0.3.8
- Add generate_pwa(): builds manifest.json (name, short_name, theme_color,
  standalone display, favicon icon) and service-worker.js with a
  cache-first strategy; cache name is versioned by a hash of the precache
  file list so new builds automatically invalidate old caches; precache
  list covers index.html, config.yml, nav.yml, search.json, theme file,
  and all pages/posts/assets
- Call generate_pwa() from run_build() when pwa: yes/true in config.yml
- index.html: add <link rel="manifest"> and SW registration script in
  <head>; both silently no-op when the generated files are absent
- index.html boot(): write offline-message from config to localStorage
  on every load so the message survives cache eviction
- index.html navigateTo(): show localStorage offline message when a page
  fetch fails instead of the generic not-found message
- Update CLAUDE.md with PWA config key reference

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-17 19:10:19 +00:00
Claude
81d0f2ffd0
Bump version to 0.3.8
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:07:22 +00:00
Claude
9b7639cc62
v0.4 Phase 6: fetch-deps command for offline/local dependency mode
- Add _http_get() general HTTP helper (SSL via certifi, 30s timeout)
- Add CDN_DEPS table: 6 jsDelivr assets (js-yaml, marked, fuse.js,
  highlight.js, 2x highlight CSS)
- Add _fetch_bunny_fonts(): reads theme.yml font-body/heading/code keys,
  fetches CSS from fonts.bunny.net, downloads woff2 files to assets/fonts/,
  rewrites CSS to use relative local paths, writes per-font CSS file
- Add _patch_index_html(): replaces CDN URLs with local vendor paths,
  injects <link data-mdcms-fonts> tags for locally downloaded fonts
- Add fetch-deps CLI command: downloads vendors, fetches fonts if theme.yml
  present, patches index.html — site makes no external network requests
- index.html loadFonts(): skip if data-mdcms-fonts link already present
  (set by patched index.html after fetch-deps)
- Update CLAUDE.md CLI command table with fetch-deps entries

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-17 19:06:31 +00:00
Claude
2412608c7c
v0.4 Phase 5: TOC tag + bump to 0.3.7
- Add renderTocTag(): groups visible pages by section in section sort
  order; sorts pages within each section by sort then filename; excludes
  current page, draft sections, and category-invisible pages; renders
  section headings and linked page lists; replaces the tag placeholder
- Add toc dispatch in hydrateMdcmsTags()
- Add .mdcms-toc, .mdcms-toc-section, .mdcms-toc-list CSS

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-17 18:49:16 +00:00
Claude
c657529303
Bump version to 0.3.6
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 18:39:56 +00:00
Claude
8ae283fe41
v0.4 Phase 3: asset validation in mdcms build
- Add validate_assets(): scans config.yml and theme.yml recursively for
  string values starting with assets/, and all markdown files in pages/
  and posts/ via regex; deduplicates by (path, source) before checking
- Add _collect_yaml_assets() helper for recursive YAML traversal
- Call validate_assets() in run_build() after writing nav.yml and
  search.json; prints yellow warnings for each missing asset, build
  continues on all warnings

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-17 17:19:33 +00:00
Claude
1051a36044
Bump version to 0.3.5
https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-17 17:19:33 +00:00
Claude
373ec4035e
Bump version to 0.3.4
https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-17 17:19:33 +00:00
56c22f075d
Merge pull request #13 from kbenestad/claude/linux-install-docs-cwQsb
Claude/linux install docs cw qsb
2026-05-16 22:46:38 +07:00
7edc7ab339
Merge pull request #12 from kbenestad/claude/config-keys-overview-e3lj1
Claude/config keys overview e3lj1
2026-05-16 22:45:12 +07:00
Claude
546235020f
Bump version to 0.3.3
https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:35:53 +00:00
Claude
503eb3d83d
Add cache-busting timestamp to banner URL in --version
Prevents GitHub CDN from serving stale banner content.

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:28:00 +00:00
Claude
e3eb654996
Bump version to 0.3.2
https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:10:17 +00:00
Claude
b1fc97a024
Bump CLI to v0.3.1, add banner fetch to --version
- CLI_VERSION → 0.3.1, CLI_RELEASE_DATE → 10 May 2026
- Replace click.version_option with custom callback that prints version
  + release date, then fetches docs/banner/v{VERSION}.txt from GitHub
  and prints it; falls back to a "no online information" message on 404
  or network error
- Add versioning rule to CLAUDE.md

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:05:34 +00:00
Claude
d595f38dfd
fix: coerce category codes to str to handle YAML-parsed integers
YAML parses bare numeric codes (e.g. `code: 01`) as int, causing
TypeError in CATEGORY_CODE_RE.match() which expects str/bytes.

https://claude.ai/code/session_01N1msEmfHK7UWa6mNS8LPGu
2026-05-10 15:53:24 +00:00
Claude
a6eb3119e0
Remove date and datetime frontmatter fields, consolidate to created
date and datetime were overlapping with created. Only created is now
read by the scanner and emitted in search.json; modified is also
included in search.json output alongside it.

https://claude.ai/code/session_013A4egzphocyto9bvZ76dxf
2026-05-09 13:37:36 +00:00
Claude
69677b31ca
Fix SSL cert verification in PyInstaller binaries via certifi
PyInstaller-bundled Python cannot find system CA certs on Linux/macOS.
Use certifi's bundled CA bundle for all GitHub API requests.

https://claude.ai/code/session_01MqEqGhP1guGx5VuFsLaws2
2026-05-08 17:05:38 +00:00
Claude
24670a66dd
Rebuild mdcms as proper CLI tool (v0.3)
- Replace interactive TUI with click-based subcommands:
  register, delete, view, build
- build accepts NAME (registry), --path, or CWD for GitHub Actions use
- Switch to PyYAML for frontmatter and nav.yml parsing
- Add pyproject.toml with click + PyYAML deps and mdcms entry point
- Add v0.3 version marker to app/config.yml and app/index.html
- Registry moves to ~/.config/mdcms/sites.json (XDG-compliant)
- Project root is now the directory containing index.html (no website/ subdir)
- register auto-downloads template from GitHub if no site found

https://claude.ai/code/session_01MqEqGhP1guGx5VuFsLaws2
2026-05-08 16:05:04 +00:00
9aa3610df4 v0.2.2 migrated to GitHub 2026-04-20 00:02:43 +07:00