Configuration¶
Runtime configuration is stored in deelan.config.yml at project root.
Available Options¶
blog_title(string) site title in header and page titlesfooter_text(string) footer textdefault_theme(light | dark) initial theme before user overridetimezone(string, default:UTC) IANA timezone for rendered timestampsaccent_hue(number, default:150) shared hue seed used by light/dark theme variablescontent_max_width(string, default:1100px) main content container widthcode_theme_light(string, default:github-light) Shiki theme for light mode code blockscode_theme_dark(string, default:github-dark) Shiki theme for dark mode code blockstimeline_commit_url_template(string, default: empty) URL template with${COMMIT_SHA}log_level(error | warn | info | debug, default:info) global CLI/script logging thresholdlog_file(string, optional) path to append logs to (relative to project root)
Example¶
blog_title: Deelan.
footer_text: "Built with ♥ using Deelan."
default_theme: dark
timezone: America/Los_Angeles
accent_hue: 150
content_max_width: 1100px
code_theme_light: material-theme-lighter
code_theme_dark: material-theme-darker
timeline_commit_url_template: https://github.com/jhadida/deelan/commit/${COMMIT_SHA}
log_level: info
# log_file: .generated/logs/deelan.log
Theme Tokens and UI Customization¶
For common customization, you do not need to copy src/ styles:
- Change
accent_hueto re-seed both light and dark palettes. - Change
content_max_widthto adjust main page width.
These values map into CSS variables at runtime (for site rendering and exports):
accent_hue->--accent-huecontent_max_width->--container-maxand--detail-max
Timezone Format¶
Use IANA timezone identifiers, for example:
UTCAmerica/Los_AngelesEurope/ParisAsia/Tokyo
Code Highlighting Themes¶
code_theme_light and code_theme_dark map directly to Shiki themes.
Example:
code_theme_light: one-light
code_theme_dark: nord
Notes¶
- Timestamps are rendered without timezone suffix.
- Invalid
timezonefalls back toUTC. - Invalid code themes fall back to
github-light/github-dark. accent_hueis clamped to0..360.- Invalid
content_max_widthfalls back to1100px. - If
timeline_commit_url_templateis missing${COMMIT_SHA}, timeline SHAs render as plain text.
Logging Configuration¶
Logging resolution order is:
- CLI flags (
--log-level,--log-file) - Environment (
DEELAN_LOG_LEVEL,DEELAN_LOG_FILE) deelan.config.yml(logging.level/logging.fileorlog_level/log_file)- Built-in defaults (
info, no log file)
Example overrides:
deelan build --log-level debug
deelan validate --log-file .generated/logs/validate.log