mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
Listmonk serves its admin and public pages with the custom CSS and JS it keeps in the settings table, so the role writes the design there: tasks/03_design.yml, included after the settings reaper in tasks/02_manager_ops.yml, pipes templates/design/appearance.sql.j2 into psql. With design on it writes the marked admin stylesheet, admin script and public stylesheet, but only over an empty value or one that starts with the role's own marker, so custom CSS an operator wrote stays; with design off it empties only its own values. The same SQL sets app.logo_url, app.favicon_url and app.site_name from the design lookup and restores the former values when design is off; those keys move from LISTMONK_SETTINGS to LISTMONK_DESIGN_BRANDING in vars/main.yml. templates/design/admin.css.j2 maps the colors of the Bulma and Buefy admin onto the design tokens, templates/design/public.css.j2 does the same for the subscription pages, and templates/design/admin.js.j2 keeps favicon and title on the configured ones while the single-page app rewrites its head. meta/services.yml declares the 182x34 logo slot of the navbar; the emptied files/style.css goes. files/playwright/test-design.js checks tokens, public pages, the administration, navigation and tags, the code editors, logo, favicon and title, that the role writes only its marked settings, and captures the gallery; the native form takes ADMIN_NATIVE_PASSWORD. The unit test renders the SQL for design on, design off and design off without a fallback. README.md links the gallery; TODO.md records the settings task that always reports changed, the secrets it renders into the shell argv, and the logo URLs taken unguarded when the logo replacement is off. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>