feat: add seo diagnostics tool with cli commands, config paths, and static versioning

Add SEO_REPORTS_DIR to config, STATIC_VERSION for cache-busting, seo prune/clear CLI subcommands, tools router with seo job endpoints, and boot-versioned static URLs in Dockerfile and Makefile
This commit is contained in:
2026-06-14 00:16:22 +00:00
parent 61c1ae8c5d
commit 1b89f7c49f
110 changed files with 4501 additions and 270 deletions
+26 -26
View File
@@ -1,10 +1,10 @@
{% extends "base.html" %}
{% from "_macros.html" import modal %}
{% block extra_head %}
<link rel="stylesheet" href="/static/css/gists.css">
<link rel="stylesheet" href="/static/css/post.css">
<link rel="stylesheet" href="/static/vendor/codemirror/codemirror.min.css">
<link rel="stylesheet" href="/static/vendor/codemirror/theme/monokai.min.css">
<link rel="stylesheet" href="{{ static_url('/static/css/gists.css') }}">
<link rel="stylesheet" href="{{ static_url('/static/css/post.css') }}">
<link rel="stylesheet" href="{{ static_url('/static/vendor/codemirror/codemirror.min.css') }}">
<link rel="stylesheet" href="{{ static_url('/static/vendor/codemirror/theme/monokai.min.css') }}">
{% endblock %}
{% block content %}
<div class="gist-detail-page">
@@ -98,28 +98,28 @@
{% endblock %}
{% block extra_js %}
<script defer src="/static/vendor/codemirror/codemirror.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/python/python.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/javascript/javascript.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/clike/clike.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/htmlmixed/htmlmixed.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/xml/xml.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/css/css.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/go/go.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/rust/rust.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/sql/sql.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/shell/shell.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/yaml/yaml.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/markdown/markdown.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/swift/swift.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/php/php.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/ruby/ruby.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/haskell/haskell.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/lua/lua.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/perl/perl.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/r/r.min.js"></script>
<script defer src="/static/vendor/codemirror/mode/dart/dart.min.js"></script>
<script type="module" src="/static/js/GistEditor.js"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/codemirror.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/python/python.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/javascript/javascript.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/clike/clike.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/htmlmixed/htmlmixed.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/xml/xml.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/css/css.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/go/go.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/rust/rust.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/sql/sql.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/shell/shell.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/yaml/yaml.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/markdown/markdown.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/swift/swift.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/php/php.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/ruby/ruby.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/haskell/haskell.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/lua/lua.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/perl/perl.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/r/r.min.js') }}"></script>
<script defer src="{{ static_url('/static/vendor/codemirror/mode/dart/dart.min.js') }}"></script>
<script type="module" src="{{ static_url('/static/js/GistEditor.js') }}"></script>
<script type="module">
const editModal = document.getElementById("edit-gist-modal");
if (editModal) {