Commit graph

127 commits

Author SHA1 Message Date
Claude
0e14e80d1f
Add Linux arm64 release binary and .deb package
Adds an ubuntu-24.04-arm matrix entry so each release produces
mdcms-linux-arm64 and a matching arm64 .deb alongside the existing
amd64 artefacts. Fixes the fpm binary path and .deb artifact name to
be matrix-driven so both Linux builds are independent.

https://claude.ai/code/session_01LScjwzJJgLKsNrqEPLxJS8
2026-06-05 03:52:18 +00:00
21cae07a9b
Update remote repository URL in mirror workflow
Some checks are pending
/ mirror (push) Waiting to run
2026-06-04 17:11:57 +07:00
5af611502a
Add GitHub Actions workflow for repository mirroring 2026-06-04 17:08:50 +07:00
a939883bef
Clarify markdown usage in reference pages
Update documentation to clarify markdown usage.
2026-05-21 12:14:37 +07:00
80877cbaea
Fix markdown syntax in reference pages documentation
Correct markdown formatting for code blocks and frontmatter.
2026-05-21 12:14:14 +07:00
7ab7d468e5
Improve markdown structure in reference pages
Update markdown formatting and clarify frontmatter section.
2026-05-21 12:13:45 +07:00
893588d89b Updated themes, 2026-05-19
New folder structure plus HTML presentation.
2026-05-19 20:20:10 +07:00
03adf65c62 Merge branch 'main' of https://github.com/kbenestad/mdcms 2026-05-19 15:52:09 +07:00
65c4944a84 New standard favicon added. 2026-05-19 15:52:06 +07:00
Claude
283e0f8299
Fix hamburger hidden on iOS: hide sidebar with visibility on mobile
iOS Safari can fail to honour transform: translateX(-100%) on position:fixed
elements, leaving the sidebar sitting over the content at z-index 100 and
blocking the mobile-header (z-index 50) that contains the hamburger.

Add visibility: hidden to the closed mobile sidebar. A transition-delay of
0.3s (matching the transform duration) keeps the slide-out animation intact —
the sidebar slides away first, then disappears. The open state resets the
transition immediately so the sidebar becomes visible before sliding in.

https://claude.ai/code/session_017r3kqm4FgEGy2DPPzYcLYQ
2026-05-19 07:22:06 +00:00
Claude
3ac0a89be1
Remove sidebar header and footer dividers from nav
https://claude.ai/code/session_017r3kqm4FgEGy2DPPzYcLYQ
2026-05-19 07:03:28 +00:00
Claude
d63fc0035f
Document unreleased.md as a living changelog for development
https://claude.ai/code/session_01EzU13EL8D5Ud2ngQUKDj9e
2026-05-19 06:58:41 +00:00
Claude
cb0bc180a4
Remove default bold-on-hover from content links
Link hover bold was hardcoded to 700 in both light and dark root variables.
Users can opt in via `link-style-hover: ...:bold` in theme.yml.

https://claude.ai/code/session_01EzU13EL8D5Ud2ngQUKDj9e
2026-05-19 06:54:50 +00:00
cd02f43e82
Fix category font not reverting when switching to a no-font category (#23)
* Fix category picker and hamburger using page colours instead of nav colours

Both elements render against --bg-nav but were using --font-colour (the page
text colour). Switch to --nav-link-colour / --nav-section-heading-colour /
--nav-link-active-colour so they remain legible when nav-background is set to
a colour that contrasts with the page text colour (e.g. dark blue nav with
white nav-link text).

https://claude.ai/code/session_01MA8V1FvCmxjkCYyTxseaxB

* Fix category font not reverting when switching to a no-font category

maybeLoadCategoryFont applied a font-family to document.body but never
cleared it when switching to a category with no font defined. The inline
style overrides the CSS --font-body variable, so the category font
persisted indefinitely.

Fix: reset document.body.style.fontFamily to '' when the target category
has no font (letting --font-body take effect), and re-apply the family
string when switching back to an already-loaded font category.

https://claude.ai/code/session_01MA8V1FvCmxjkCYyTxseaxB

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-19 13:28:51 +07:00
c1d83b4bd6
Fix category picker and hamburger using page colours instead of nav colours (#22)
Both elements render against --bg-nav but were using --font-colour (the page
text colour). Switch to --nav-link-colour / --nav-section-heading-colour /
--nav-link-active-colour so they remain legible when nav-background is set to
a colour that contrasts with the page text colour (e.g. dark blue nav with
white nav-link text).

https://claude.ai/code/session_01MA8V1FvCmxjkCYyTxseaxB

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-19 13:25:29 +07:00
Claude
cef2318210
Merge remote-tracking branch 'origin/claude/per-category-font-styling-gUUzo' 2026-05-19 06:20:47 +00:00
Claude
237fae111a
Add per-category line-height support
Nastaliq and other complex scripts need significantly more vertical
space than Latin text. A new `line-height` key on any category entry
in config.yml overrides --line-height-body for that category and
restores the theme default when switching away.

https://claude.ai/code/session_01LZVnq4wUgdv5oXFLcj6qXf
2026-05-19 06:11:40 +00:00
Claude
a67d731700
Fix mobile hamburger not showing: replace inline-style+!important hack with a base CSS rule
The mobile header was hidden via mobileHeader.style.display='none' (inline style),
then a dynamically-injected <style> with !important was supposed to reveal it on mobile.
Inline styles and injected stylesheets interact inconsistently across browsers, making
the hamburger invisible on mobile in practice.

Replace with a simple CSS-only approach: add a base rule
'.layout-sidebar .mobile-header { display: none; }' so the existing media-query
'display: flex' override works through normal cascade — no inline style needed,
no !important injection needed.

https://claude.ai/code/session_01HRJsjppKZ2cpmNUAV2NXds
2026-05-19 04:12:45 +00:00
Claude
b69af5dfa2
Merge claude/investigate-google-fonts-ijYrT: default font provider to Bunny Fonts
https://claude.ai/code/session_01PTQoBgxUeXHkZkdgHbafAE
2026-05-19 03:41:52 +00:00
Claude
8c4486a1f8
Update docs: default font provider is now Bunny Fonts
https://claude.ai/code/session_01PTQoBgxUeXHkZkdgHbafAE
2026-05-19 03:41:44 +00:00
Claude
c77e423bdd
Change default font provider from Google to Bunny Fonts
Font specs without an explicit provider prefix now route to Bunny Fonts
instead of Google Fonts, avoiding Google CDN requests by default.

https://claude.ai/code/session_01PTQoBgxUeXHkZkdgHbafAE
2026-05-19 03:40:51 +00:00
cfe11cd24b
Add banner for latest version notification 2026-05-18 22:20:48 +07:00
f08e8d896a
Update version message in v0.3.2 banner 2026-05-18 22:20:21 +07:00
Claude
bcb451a9ee
Merge development: update reference-theme.md with all new theme.yml keys
https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 15:16:45 +00:00
f836e320b3 Update reference-theme.md with all new theme.yml keys (nav colours, semantic-dark, toggle icons)
Adds documentation for:
- nav-link, nav-link-active, nav-section-heading (per mode)
- nav-sitename, nav-description, nav-toggle (per mode)
- divider (per mode, auto-derived by default)
- colours-semantic-dark (dark mode semantic colour overrides)
- nav-section-expand-icon / nav-section-collapse-icon (top-level toggle icons)

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 22:15:13 +07:00
Claude
737049f19e
Add configurable nav section toggle icons
Two new top-level theme.yml keys — nav-section-expand-icon and
nav-section-collapse-icon — replace the hardcoded arrow_right/arrow_drop_down
used on collapsible nav sections. Defaults preserve existing behaviour.

Eight new icon SVGs added to app/assets/icons/:
  keyboard_arrow_right / keyboard_arrow_down     (chevrons)
  keyboard_double_arrow_right / keyboard_double_arrow_down
  expand_content / collapse_content              (corner arrows)
  add / minimize                                 (plus/minus)

All eight added to STANDARD_ICONS so fetch-deps bundles them correctly.
CLAUDE.md key reference and docs/claude-design.md updated with the full
icon catalogue, pairing guidance, and style notes for Claude Design.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 15:08:59 +00:00
Claude
648f1afcfd
Add legibility analysis section to Claude Design guide
Documents every colour pairing to check, WCAG contrast targets for each
role, and common failure modes (saturated accents, muted text on tinted
backgrounds, dark-mode text-muted). Checklist expanded with contrast items.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 14:58:26 +00:00
Claude
f4a41ed3ae
Add nav-sitename, nav-description, nav-toggle colour keys
Separates sidebar header colours from nav link colours. The three new keys
control the site name, site description, and dark/light toggle independently,
each cascading from the nearest nav variable (nav-sitename → nav-link,
nav-description and nav-toggle → nav-section-heading) so existing themes
are unaffected.

Enables Claude Design to fine-tune sidebar header legibility on saturated or
bold nav backgrounds without having to override the nav link colours, and vice
versa. CSS selectors and applyThemeYml() updated; app/theme.yml, CLAUDE.md,
and docs/claude-design.md updated with full key reference and pattern examples.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 14:47:28 +00:00
Claude
1d76226311
Document nav colour key requirement for saturated and dark nav backgrounds
Clarifies that nav-link, nav-link-active, and nav-section-heading affect not
just nav links but also the site name, description, and theme toggle — all
sidebar elements that inherit from these variables. Adds a rule of thumb for
when to set the keys explicitly (saturation >20%, or lightness outside the
neutral range).

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 14:43:04 +00:00
Claude
4e66024be0
Fix sidebar header and theme toggle colours on accent-coloured nav backgrounds
Site name, site description, and dark/light mode toggle all used content-area
colour variables (--font-colour, --font-colour-muted, --divider) which clash
when nav-background differs from the page background. All three now reference
the nav colour variables (--nav-link-colour, --nav-link-active-colour,
--nav-section-heading-colour) with graceful fallbacks, so they remain legible
on any nav background colour without requiring new theme.yml keys.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 14:37:44 +00:00
Claude
f2bc729e40
Derive --divider via color-mix; add explicit divider key as escape hatch
--divider in both light and dark modes now auto-derives from the theme's
background and text colours using color-mix(in srgb, bg 85%, text), so
accent-coloured or custom-background themes get a correct divider without
any extra config. An explicit `divider` key in theme.yml overrides this
for the rare cases where exact control is needed.

docs/claude-design.md and CLAUDE.md updated accordingly.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 11:09:06 +00:00
Claude
92af867da2
Merge claude/add-nav-link-colors-wz6IU: nav-link colour keys and per-mode semantic colours
Fixes theme designs (e.g. accent-coloured nav backgrounds) where active nav
links were invisible because nav-link-active defaulted to accent on an
accent-coloured background. Adds colours-semantic-dark for dark mode callout
legibility.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 10:38:05 +00:00
Claude
923626855f
Add nav-link colour keys and per-mode semantic colours to theme system
- New theme.yml keys: nav-link, nav-link-active, nav-section-heading (per
  light/dark mode). Fixes themes where nav-background equals accent, which
  made active nav links invisible against their own background.
- New colours-semantic-dark block overrides callout semantic colours in dark
  mode only, preventing washed-out callout borders and backgrounds on dark
  page backgrounds.
- CSS: nav item and section heading selectors now use the new CSS variables
  with graceful fallbacks to existing defaults — no breakage for themes that
  don't set the new keys.
- app/theme.yml starter updated with new keys (commented examples) and
  sensible colours-semantic-dark defaults.
- CLAUDE.md updated with full key reference table and guidance on when to
  use nav colour overrides.
- docs/claude-design.md: new authoring guide for Claude Design covering
  contrast rules, nav pattern examples, and a pre-publish checklist.

https://claude.ai/code/session_01NQKywehSj8Ku4yKhwB4VNB
2026-05-18 10:37:35 +00:00
9ea0c0cc55
Adjust paths for MD-CMS multisite workflow
Updated paths and git commands for multisite configuration in the workflow.
2026-05-18 17:00:16 +07:00
c7ddf32720
Enhance GitHub Actions workflow and permissions
Updated GitHub Actions workflow to include permissions and modified installation command for mdcms. Changed directory handling for building sections to use a loop instead of hardcoded values.
2026-05-18 16:57:01 +07:00
Claude
f9f3b9b81b
Add full reference doc for page frontmatter and mdcms tags
Covers all frontmatter fields, all mdcms code-block tag types
(callout-*, toc, posts-created-*), tag options, raw HTML behaviour,
and a full example page.

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-18 09:17:24 +00:00
Claude
74681670d7
Add full reference docs for theme.yml, config.yml, and nav.yml
All keys, all values, usage instructions, and full examples for each file.

https://claude.ai/code/session_01UP8Wo2CKPNhvvTkzX48CWF
2026-05-18 08:44:35 +00:00
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