Commit graph

140 commits

Author SHA1 Message Date
3858307302 Delete test_phase.py 2026-05-18 14:36:16 +07:00
59efc20dde Updated sample-sites. 2026-05-18 14:30:49 +07:00
b3c46ec4bc
Add full Apache 2.0 licence notices to all relevant files
Add full Apache 2.0 licence notices to all relevant files
2026-05-18 14:12:23 +07:00
Claude
0054e050a7
Remove licence notice from theme.yml
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-18 07:12:06 +00:00
Claude
7fa60aae59
Add full Apache 2.0 licence notice to all relevant files
- mdcms.py: expand abbreviated notice to full boilerplate
- app/index.html: fix version in comment header (v0.3.8 → v0.4)
- app/config.yml: add missing final two lines of notice
- app/theme.yml: add full licence notice (was missing entirely)

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-18 07:11:00 +00:00
Claude
d72a7c0d7f
Update CLAUDE.md for v0.4: branching convention, renderer features, known limitations
- Branching: main=release, development=default dev branch, no per-conversation branches
- Add v0.4 renderer features section (callouts, TOC, theme, icons, PWA, fetch-deps)
- Note topbar nav is broken — always use sidebar
- Update version markers to v0.4 throughout
- Add note that tag pushes must be done locally (cloud env blocks them)

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-18 07:09:07 +00:00
ac0b634cc0
v0.4.0 — Phase 7: PWA (service worker, manifest, offline support)
Completes the v0.4 milestone. All 7 phases merged and tested.

Phase 7: manifest.json + service-worker.js generation, cache-first offline SW,
offline message from config.yml, favicon.png, PWA installable on desktop.

Also: callout border-color/background CSS fix; v0.4.0 version bump across all files.
2026-05-18 03:40:58 +07:00
Claude
6b2eb490fa
Bump to v0.4.0 — milestone release
- mdcms.py: CLI_VERSION 0.4.0, updated docstring and comment
- pyproject.toml: version 0.4.0
- app/index.html: site format marker → mdcms v0.4
- app/config.yml: site format marker → mdcms v0.4
- app/theme.yml: add site format marker mdcms v0.4

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 20:38:21 +00:00
Claude
8b4114004e
Rebuild nav.yml and search.json for phase7 test pages
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 20:33:17 +00:00
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
db794cedf7
Fix callout border-color and background CSS variables
Fix callout border-color and background CSS variables
2026-05-18 02:23:07 +07:00
Claude
cd1668dd04
Fix callout border-color and background CSS variables
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:22:56 +00:00
Claude
020b05f1f6
Fix callout CSS: wire border-color and background to CSS variables
border-left was 4px solid without color; background was missing.
JS sets --callout-primary and --callout-bg on each callout element
but CSS wasn't referencing them.

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:21:25 +00:00
Claude
ad2f7b47ee
Fix phase7 index.html: restore main base, apply only PWA additions
Cherry-pick had auto-merged with wrong base (reverted TOC/callout CSS
and renderTocTag). Now uses main's index.html with only the three
phase7 additions applied on top: manifest link, SW registration
script, and offline-message localStorage handling.

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:15:56 +00:00
Claude
383dbcd420
Phase 7 test setup: PWA config, sample pages, test_phase.py wiring
- config.yml: pwa: yes, navigation: sidebar, offline-message
- home.md: Phase 7 test instructions
- about.md, docs.md: sample pages for offline cache testing
- test_phase.py: all phases point to claude/* branches; EXTRA_FILES for 5 and 7
- version bump to 0.3.9

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:11:33 +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
8993a4285c
v0.3.8 — Phase 6: fetch-deps offline/local dependency mode
v0.3.8 — Phase 6: fetch-deps offline/local dependency mode
2026-05-18 02:07:27 +07:00
Claude
81d0f2ffd0
Bump version to 0.3.8
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:07:22 +00:00
Claude
60694c9ecf
Update test_phase.py: phase 5 → claude/toc-tag-phase5, phase 6 → claude/fetch-deps-phase6
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 19:06:46 +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
321202e5e0
v0.3.7 — Phase 5: Table of contents tag
v0.3.7 — Phase 5: Table of contents tag
2026-05-18 01:51:31 +07: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
ca8deba23f
v0.3.6 — Phase 4 callout tags (+ phases 1–3)
v0.3.6 — Phase 4 callout tags (+ phases 1–3)
2026-05-18 01:43:36 +07:00
Claude
c657529303
Bump version to 0.3.6
https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 18:39:56 +00:00
Claude
cd1e6e14ce
Fix missing icon broken image, clean up debug logs, expand test cases
- iconEl: use actual icon filename as <img src> fallback so browser
  shows a visible broken image when the file is missing (was src="")
- Remove debug console.log statements added for diagnosis
- home.md: add test cases for message: override (with console warning)
  and missing icon (broken image should render)
- home.md: add explanatory text for message: key test

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 18:27:41 +00:00
Claude
dd306b004c
Debug: add console.log to renderCalloutTag, set title color as inline style
Helps diagnose why title row is not showing. Logging shows the raw tag
data and whether the title branch is taken. Inline style bypasses any
CSS custom-property cascade issues.

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 18:08:37 +00:00
Claude
b626d5e066
Add test_phase.py for Phase 4
- Phase 4 branch points to claude/debug-api-errors-gd730
- Phase 4 EXTRA_FILES checks out app/config.yml and app/pages/home.md
  from the branch (needed for message: key test and callout test cases)
- Updated Phase 4 verify checklist covers all spec requirements:
  basic types, title row, no-title, markdown body, icon override,
  message: key, dark mode
- Added EXTRA_FILES mechanism for per-phase content file checkout
- Improved checklist formatting with section headers

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 17:50:01 +00:00
Claude
690965df7d
v0.4 Phase 4: callout tags
- Extend renderer.code to match `mdcms <type>` fence syntax (e.g. ```mdcms callout-info)
- Extend parseMdcmsTag to capture body lines after the key-value block
- Add renderCalloutTag: icon + title row, markdown body, colour CSS vars
- Add hexToRgba helper for low-opacity background colour
- Make themeConfig module-level so callout renderer can read callout defaults
- Add callout CSS: left border, title row flex layout, icon fill
- Add reusable message: key support with category-aware language resolution
- Add aitranslation callout message to config.yml for test
- Update home.md with full Phase 4 test cases

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-17 17:43:27 +00:00
Claude
8a39bc31e9
Revert "Update home.md with phase 4 callout test cases"
This reverts commit e8f3f39470.
2026-05-17 17:24:05 +00:00
Claude
e8f3f39470
Update home.md with phase 4 callout test cases
https://claude.ai/code/session_01ULCpT86FWFsXCp2gXhKKbW
2026-05-17 17:23:53 +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
0386422a99
v0.4 Phase 2: local SVG icon system, remove Google Material Icons
- Add 17 SVG icons to app/assets/icons/ (Material Icons paths, Apache 2.0)
- Remove Google Material Icons and Symbols CDN link tags
- Add normaliseIconName(), loadIcon(), getIcon(), iconEl() — icon name
  normalisation per spec §2.3, async fetch-and-cache, sync accessor,
  element builder with broken-image fallback for missing icons
- Preload all standard icons (+ categories-selecticon if set) concurrently
  in boot() before UI is built, so all icon references are sync after that
- Replace ICONS object with icon cache system throughout:
  theme toggle → light_mode/dark_mode, search → search, hamburgers → menu,
  section toggles → arrow_right/arrow_drop_down, dropdown carets →
  arrow_drop_down, category selecticon → normalised SVG lookup
- Update .toggle-icon, .category-icon, .nav-caret CSS for SVG layout
- Add .mdcms-icon CSS class (inline-flex, currentColor fill)
- Fix pre-existing ICONS.close bug (was undefined; hamburger now always
  shows menu icon)

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
3c27e86cf2 Upodated docs 2026-05-17 22:23:07 +07: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
6492329b27
v0.4 Phase 1: theme.yml — separate presentational config from config.yml
- Add app/theme.yml: colours (light/dark), semantic colours, callout
  defaults, fonts (with bunny: provider support), font-size, line-height,
  main-width, nav-width
- app/config.yml: add `theme: theme.yml` reference; remove font and
  layout keys that now live in theme.yml
- index.html: add applyThemeYml() that reads the new theme.yml format
  and derives all CSS custom properties (accent-rgb, nav-active-bg,
  nav-hover-bg, table-header-bg, link-colour) from the 5 user keys per
  mode; add --colour-info/warning/success/error CSS vars with hardcoded
  defaults; add --line-height-body CSS var
- index.html: update loadFonts() to accept themeConfig, support
  provider:name:weight format for Bunny Fonts and Google Fonts
- index.html: boot() fetches theme file named by config.theme, routes
  to applyThemeYml() for new format or applyConfigTheme() for legacy;
  falls back gracefully to hardcoded defaults when theme key is absent

https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:33:20 +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
bcf716bfd0 Update v0.3.2.txt 2026-05-16 22:25:53 +07:00
a17cfc6f1a Updated to v0.3.2. 2026-05-16 22:25:19 +07:00
0a83ca7e38 Merge branch 'main' of github.com:kbenestad/mdcms 2026-05-16 22:22:40 +07:00
6dc83e176d Updated to v0.3.2. 2026-05-16 22:22:19 +07:00
a2822a6458
Merge pull request #11 from kbenestad/claude/linux-install-docs-cwQsb
Bump to v0.3.2 and enhance version command output
2026-05-16 22:12:55 +07:00
Claude
e3eb654996
Bump version to 0.3.2
https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:10:17 +00:00
Claude
ce6f9ec09f
Bump pyproject.toml to 0.3.1, update versioning rule in CLAUDE.md
https://claude.ai/code/session_015XtsgTMi8UtmgxEgb5Qt2c
2026-05-16 15:07:44 +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
b1b64917cf Updated banner for v0.3.1 2026-05-16 21:58:22 +07:00