Merge remote-tracking branch 'origin/claude/per-category-font-styling-gUUzo'

This commit is contained in:
Claude 2026-05-19 06:20:47 +00:00
commit cef2318210
No known key found for this signature in database
2 changed files with 6 additions and 0 deletions

View file

@ -166,6 +166,7 @@ For nested navigation, set `parent: <parent-section-code>` and `parent-sort` on
- Variant files: `<base>.<code>.md` — the suffix is only treated as a category if the code is declared in config - Variant files: `<base>.<code>.md` — the suffix is only treated as a category if the code is declared in config
- `categories-sectionnames: per-category` requires each section in `nav.yml` to have a `categorynames` block with an entry per category code - `categories-sectionnames: per-category` requires each section in `nav.yml` to have a `categorynames` block with an entry per category code
- RTL is set per category via `direction: rtl` - RTL is set per category via `direction: rtl`
- Line height is set per category via `line-height: 2.8` (useful for scripts like Nastaliq that need extra vertical space). Restores to theme default when switching to a category without this key.
## Dynamic post tags (mdcms code blocks) ## Dynamic post tags (mdcms code blocks)

View file

@ -959,6 +959,7 @@ body {
let activeCategory = null; // current code let activeCategory = null; // current code
let sectionnamesMode = 'same'; // 'same' | 'per-category' let sectionnamesMode = 'same'; // 'same' | 'per-category'
let loadedFonts = new Set(); // track which font files have been loaded let loadedFonts = new Set(); // track which font files have been loaded
let defaultLineHeight = null; // theme/CSS default, captured after theme is applied
// ─── Icons ──────────────────────────────────────────────── // ─── Icons ────────────────────────────────────────────────
const STANDARD_ICONS = ['dark_mode','light_mode','menu','search','arrow_right','arrow_drop_down','mobile_arrow_down','language','info','warning','error','success','exclamation','dangerous','report','history','text_compare','keyboard_arrow_right','keyboard_arrow_down','keyboard_double_arrow_right','keyboard_double_arrow_down','expand_content','collapse_content','add','minimize']; const STANDARD_ICONS = ['dark_mode','light_mode','menu','search','arrow_right','arrow_drop_down','mobile_arrow_down','language','info','warning','error','success','exclamation','dangerous','report','history','text_compare','keyboard_arrow_right','keyboard_arrow_down','keyboard_double_arrow_right','keyboard_double_arrow_down','expand_content','collapse_content','add','minimize'];
@ -2295,6 +2296,9 @@ function fmtDatetime(dtStr) {
document.querySelectorAll('.category-bar').forEach(b => b.setAttribute('dir', direction)); document.querySelectorAll('.category-bar').forEach(b => b.setAttribute('dir', direction));
document.querySelectorAll('.md-content, .title-bar').forEach(el => el.setAttribute('dir', direction)); document.querySelectorAll('.md-content, .title-bar').forEach(el => el.setAttribute('dir', direction));
document.querySelectorAll('.sidebar').forEach(el => el.setAttribute('dir', direction)); document.querySelectorAll('.sidebar').forEach(el => el.setAttribute('dir', direction));
// Apply per-category line-height override, or restore theme default
const lh = cat && cat['line-height'];
document.documentElement.style.setProperty('--line-height-body', lh ? String(lh) : (defaultLineHeight || '1.7'));
} }
function doSearch(query, resultsEl) { function doSearch(query, resultsEl) {
@ -2767,6 +2771,7 @@ function fmtDatetime(dtStr) {
if (config.theme) applyThemeYml(themeConfig); if (config.theme) applyThemeYml(themeConfig);
else applyConfigTheme(); else applyConfigTheme();
defaultLineHeight = getComputedStyle(document.documentElement).getPropertyValue('--line-height-body').trim() || '1.7';
applyTheme(getInitialTheme()); applyTheme(getInitialTheme());
// nav.yml — phase 2 expects `sections:` + `pages:` blocks; phase 1 flat // nav.yml — phase 2 expects `sections:` + `pages:` blocks; phase 1 flat