All checks were successful
Deploy / Build and Deploy to Production (push) Successful in 16s
Implement complete custom CSS management system: - Separate base CSS (readonly) and custom CSS (editable) - Save custom CSS to Kirby backend per narrative - Visual save button with state indicators (dirty/saving/success/error) - CSRF-protected API endpoint for CSS operations - Dual-editor StylesheetViewer (base + custom with edit mode toggle) - Auto-format custom CSS with Prettier on edit mode exit Backend changes: - Add web2print Kirby plugin with POST/GET routes - Add customCss field to narrative blueprint - Add CSRF token meta tag in header - Include customCss and modified timestamps in JSON template - Install code-editor plugin for Kirby panel Frontend changes: - Refactor stylesheet store with baseCss/customCss refs - Make content a computed property (baseCss + customCss) - Add helper methods: replaceBlock, replaceInCustomCss, setCustomCss - Update all components to use new store API - Create SaveButton component with FAB design - Redesign StylesheetViewer with collapsable sections - Initialize store from narrative data on app mount File changes: - Rename stylesheet.css → stylesheet.print.css - Update all references to new filename Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
35 lines
No EOL
1.2 KiB
PHP
35 lines
No EOL
1.2 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>
|
|
<?= e($page->isHomePage() != true, $page->title() . ' - ') . $site->title() ?>
|
|
</title>
|
|
|
|
<link rel="stylesheet" href="<?= url('assets/css/style.css') ?>">
|
|
<link rel="stylesheet" href="<?= url('assets/css/pagedjs-interface.css') ?>">
|
|
|
|
<!-- À SUPPRIMER EN PRODUCTION -->
|
|
<meta name="robots" content="noindex, nofollow, noarchive">
|
|
|
|
<!-- CSRF Token for API calls -->
|
|
<?php if ($kirby->user()): ?>
|
|
<meta name="csrf" content="<?= csrf() ?>">
|
|
<?php endif ?>
|
|
|
|
<!-- APP -->
|
|
<?php if (Dir::exists('assets/dist')): ?>
|
|
<script type="module"
|
|
src="<?= url('assets/dist/index.js') ?>" defer></script>
|
|
<link rel="stylesheet"
|
|
href="<?= url('assets/dist/index.css') ?>">
|
|
<?php else: ?>
|
|
<script type="module" src="http://localhost:5173/@vite/client" defer></script>
|
|
<script type="module" src="http://localhost:5173/src/main.js" defer></script>
|
|
<?php endif ?>
|
|
</head>
|
|
|
|
<body data-template="<?= $page->template() ?>"<?php if (isset($narrativeJsonUrl)): ?> data-narrative-url="<?= $narrativeJsonUrl ?>"<?php endif ?>>
|
|
<div id="app">
|