mirror of
https://github.com/ether/etherpad-lite.git
synced 2026-07-18 17:13:58 +00:00
* checkPlugin: flag absolute /static/plugins/ paths in templates (#5203) Plugin templates that reference assets as \`/static/plugins/...\` (absolute) silently break any Etherpad instance hosted behind a reverse proxy at a sub-path — the browser resolves the path against the domain root instead of the proxy prefix and the asset 404s. The right form is \`../static/plugins/...\` (relative), which ep_embedmedia PR #4 fixed manually and which #5203 asked for as a mechanical check. Walk \`templates/\` and \`static/\` of the plugin, scan every \`*.ejs\` / \`*.html\` for \`/static/plugins/\` not preceded by a URL scheme, dot, or word char (so \`https://host/static/plugins/...\` and already-correct \`../static/plugins/...\` stay untouched). Warn normally; in \`autofix\` mode rewrite to the relative form in place. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * checkPlugin: skip autofix for static/*.html Addresses Qodo review: HTML served from a plugin's static/ directory resolves against /static/plugins/<plugin>/static/..., so rewriting /static/plugins/... to ../static/plugins/... yields a broken URL. Keep scanning static/ for warnings but no longer rewrite, and clarify the remediation guidance to point at the file's own location. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| lib | ||
| checkPlugin.ts | ||
| getCorePlugins.sh | ||
| listOfficialPlugins | ||
| README.md | ||
| reTestAllPlugins.sh | ||
| stalePlugins.ts | ||
| updateAllPluginsScript.sh | ||
| updateCorePlugins.sh | ||
The files in this folder are for Plugin developers.
Get suggestions to improve your Plugin
This code will check your plugin for known usual issues and some suggestions for improvements. No changes will be made to your project.
node src/bin/plugins/checkPlugin.js $PLUGIN_NAME$
Basic Example:
node src/bin/plugins/checkPlugin.js ep_webrtc
Autofixing - will autofix any issues it can
node src/bin/plugins/checkPlugin.js ep_whatever autofix
Autocommitting - fix issues and commit
node src/bin/plugins/checkPlugin.js ep_whatever autocommit
Autopush - fix issues, commit, push, and publish (highly dangerous)
node src/bin/plugins/checkPlugin.js ep_whatever autopush
All the plugins
Replace johnmclear with your github username
# Clones
cd node_modules
GHUSER=johnmclear; curl "https://api.github.com/users/$GHUSER/repos?per_page=1000" | grep -o 'git@[^"]*' | grep /ep_ | xargs -L1 git clone
cd ..
# autofixes and autocommits /pushes & npm publishes
for dir in node_modules/ep_*; do
dir=${dir#node_modules/}
[ "$dir" != ep_etherpad-lite ] || continue
node src/bin/plugins/checkPlugin.js "$dir" autocommit
done
Automating update of ether organization plugins
getCorePlugins.sh
updateCorePlugins.sh