Commit graph

117 commits

Author SHA1 Message Date
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
fb1b7e6ee4 Updated install.md
Added instructions on CLI installation for Linux, Mac, and Windows.
2026-05-16 21:53:14 +07:00
ea039c1d78 Update CLAUDE.md 2026-05-16 21:23:02 +07:00
767b370202 Overhauled downloads, started fixing docs. 2026-05-16 21:19:35 +07:00
2302f3278f
Merge pull request #10 from kbenestad/claude/fix-mdcms-build-error-iNz2b
Ensure category codes are converted to strings
2026-05-10 22:55:23 +07: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
22f95cd633
Add placeholder text to README.md 2026-05-10 09:01:45 +07:00
capthailand
d8a95f65c9 Merge branch 'main' of https://github.com/kbenestad/mdcms 2026-05-10 09:00:41 +07:00
capthailand
d0bf37a3f0 Updated readme and release structure 2026-05-10 09:00:34 +07:00
86437ae8b0
Update copyright year and owner in LICENSE file 2026-05-10 08:59:36 +07:00
Claude
71bda790ef
Overhaul topbar navigation with grouped dropdowns
Topbar now shows two item types intermixed by sort order:
- Unsectioned pages grouped by sort century: lowest sort = top-level
  link, others fold out in a dropdown beneath it
- Sections: appear as named triggers; pages fold out on hover/click;
  hidden sections require click to expand, visible sections also open
  on hover; draft sections excluded entirely

Desktop: hover or click to open dropdown, small ▾ caret indicates
nested items, parent link highlighted when a child page is active.
Mobile: slide-in panel with accordion expand/collapse per group,
+ / − toggle button on each group that has children.

https://claude.ai/code/session_013A4egzphocyto9bvZ76dxf
2026-05-09 14:03:11 +00:00
Claude
5e4612c01d
Update post listing tags to use created field throughout
Tag names changed from posts-date-*/posts-datetime-* to posts-created-*.
Renderer updated to filter, sort, group, and display using the created
field from search.json. Page meta display also updated to drop date/datetime
fallbacks. Samplesite posts and pages updated to match.

https://claude.ai/code/session_013A4egzphocyto9bvZ76dxf
2026-05-09 13:41:00 +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
d4f8a49f56
Merge pull request #9 from kbenestad/mdcms_cli
Opt into Node.js 24 for GitHub Actions
2026-05-09 12:55:27 +07:00
8ff52f82f9
Merge pull request #8 from kbenestad/claude/reorganize-repo-structure-jbHh0
Add LICENSE, CONTRIBUTING.md, and SECURITY.md
2026-05-09 12:53:16 +07:00
capthailand
1657228b47 Update README.md 2026-05-09 12:29:43 +07:00
Claude
05bcd4d78b
Add LICENSE, CONTRIBUTING.md, and SECURITY.md
Adds the Apache 2.0 license file, contributor guidelines, and security
policy. CONTRIBUTING.md reflects the existing branching convention and
dev workflow. SECURITY.md scopes the policy to mdcms-specific concerns.

https://claude.ai/code/session_01NrVot7Af6ciWRs7VJthQ15
2026-05-09 02:55:19 +00:00
ffb9a04934 Fix build backend: use setuptools.build_meta instead of legacy 2026-05-09 01:26:10 +07:00
95eec13611 Fix install.md: install from GitHub until mdcms is on PyPI 2026-05-09 01:19:53 +07:00
997ef27c5a Update CLAUDE.md: certifi dep, Node 24 workflow, branching convention 2026-05-09 00:11:00 +07:00
Claude
95375284d3
Opt into Node.js 24 for GitHub Actions
Silences deprecation warnings for actions/checkout, actions/setup-python,
actions/upload-artifact ahead of the June 2026 forced migration.

https://claude.ai/code/session_01MqEqGhP1guGx5VuFsLaws2
2026-05-08 17:10:02 +00:00
74140e0f5d
Merge pull request #7 from kbenestad/mdcms_cli
Fix SSL cert verification in PyInstaller binaries via certifi
2026-05-09 00:06:47 +07: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
0995fc518f
Merge pull request #6 from kbenestad/mdcms_cli
Delete existing release before creating to allow re-runs
2026-05-08 23:59:51 +07:00