Ensure CSS updates after deploy

This commit is contained in:
2026-01-27 11:09:20 +01:00
parent 7a4ce8609c
commit 43fc752535
4 changed files with 36 additions and 2 deletions

View File

@@ -9,6 +9,13 @@
"./_dokuwiki/vendor" "./_dokuwiki/vendor"
], ],
// DokuWiki replaces @ini_* placeholders server-side.
// VS Code's CSS validator doesn't understand those tokens, but LESS does.
"files.associations": {
"style.css": "less",
"temp-input-colors.css": "less"
},
// Keep the file explorer tidy when the optional DokuWiki checkout exists. // Keep the file explorer tidy when the optional DokuWiki checkout exists.
"files.exclude": { "files.exclude": {
"**/_dokuwiki/.git": true, "**/_dokuwiki/.git": true,

View File

@@ -167,6 +167,18 @@ the template provides proper form control styles.
Temporary file: [temp-input-colors.css](temp-input-colors.css) Temporary file: [temp-input-colors.css](temp-input-colors.css)
Developer note: DokuWiki serves a combined stylesheet via `lib/exe/css.php` and caches it.
Cache invalidation is based on the mtimes of the source CSS/LESS files.
If you deploy into a mounted/remote filesystem with a different clock, preserving mtimes can prevent
automatic invalidation (making it look like your CSS changes don't load until you purge cache).
`deploy.sh` avoids preserving mtimes by default to make CSS iteration smoother. If you explicitly want
to preserve mtimes, use:
```bash
./deploy.sh --preserve-times
```
## Features and usage ## Features and usage

View File

@@ -41,7 +41,8 @@ class action_plugin_luxtools extends ActionPlugin
*/ */
public function addScripts(Event $event, $param) public function addScripts(Event $event, $param)
{ {
$base = DOKU_BASE . "lib/plugins/luxtools/js/"; $plugin = $this->getPluginName();
$base = DOKU_BASE . "lib/plugins/$plugin/js/";
$scripts = [ $scripts = [
"lightbox.js", "lightbox.js",
"gallery-thumbnails.js", "gallery-thumbnails.js",
@@ -75,7 +76,8 @@ class action_plugin_luxtools extends ActionPlugin
return; return;
} }
$event->data['files'][DOKU_PLUGIN . 'luxtools/temp-input-colors.css'] = DOKU_BASE . 'lib/plugins/luxtools/'; $plugin = $this->getPluginName();
$event->data['files'][DOKU_PLUGIN . $plugin . '/temp-input-colors.css'] = DOKU_BASE . 'lib/plugins/' . $plugin . '/';
} }
/** /**

View File

@@ -9,10 +9,12 @@ set -euo pipefail
# ./deploy.sh --dry-run # show what would change # ./deploy.sh --dry-run # show what would change
# ./deploy.sh /path/to/luxtools # ./deploy.sh /path/to/luxtools
# ./deploy.sh --no-delete # don't delete extraneous files at target # ./deploy.sh --no-delete # don't delete extraneous files at target
# ./deploy.sh --preserve-times # keep source mtimes at target
TARGET="/thebe/Web/lib/plugins/luxtools" TARGET="/thebe/Web/lib/plugins/luxtools"
DRY_RUN=0 DRY_RUN=0
DELETE=1 DELETE=1
PRESERVE_TIMES=0
while (($#)); do while (($#)); do
case "$1" in case "$1" in
@@ -24,6 +26,10 @@ while (($#)); do
DELETE=0 DELETE=0
shift shift
;; ;;
--preserve-times)
PRESERVE_TIMES=1
shift
;;
-h|--help) -h|--help)
sed -n '1,80p' "$0" sed -n '1,80p' "$0"
exit 0 exit 0
@@ -79,6 +85,13 @@ RSYNC_ARGS=(
--exclude=.DS_Store --exclude=.DS_Store
) )
# DokuWiki's combined CSS (lib/exe/css.php) is cached and invalidated based on source file mtimes.
# When deploying to a mounted/remote filesystem with a different clock, preserving mtimes can make
# DokuWiki think the cache is always newer than your plugin CSS. Avoid that by default.
if (( ! PRESERVE_TIMES )); then
RSYNC_ARGS+=(--no-times --omit-dir-times)
fi
if ((DRY_RUN)); then if ((DRY_RUN)); then
RSYNC_ARGS+=(--dry-run) RSYNC_ARGS+=(--dry-run)
fi fi