From a50b0289a0b601e25a46de32301eb8c2ffa04dac Mon Sep 17 00:00:00 2001 From: Anthony Donlon Date: Fri, 19 Dec 2025 01:08:24 +0800 Subject: [PATCH] editor: add social card images --- editor/server/utils.py | 14 +++ .../web/{icon.png => assets/icon-32x32.png} | Bin editor/web/assets/icon-error-large.png | Bin 0 -> 10680 bytes editor/web/assets/icon-ok-large.png | Bin 0 -> 10228 bytes editor/web/index.html | 4 +- editor/web/package.json | 3 +- editor/web/vite.config.ts | 13 +- editor/web/yarn.lock | 112 ++++++++++++++++++ 8 files changed, 141 insertions(+), 5 deletions(-) rename editor/web/{icon.png => assets/icon-32x32.png} (100%) create mode 100644 editor/web/assets/icon-error-large.png create mode 100644 editor/web/assets/icon-ok-large.png diff --git a/editor/server/utils.py b/editor/server/utils.py index 9037dd8..02129f5 100644 --- a/editor/server/utils.py +++ b/editor/server/utils.py @@ -34,11 +34,17 @@ template = env.from_string(''' +{% if page_image_url %} + +{% endif %} +{% if page_image_url %} + +{% endif %} {% endblock %} ''') @@ -116,6 +122,13 @@ def render_extended_template(params: ErrorPageParams, *args: Any, **kwargs: Any) -> str: fill_cf_template_params(params) + page_image_id = 'ok' + cf_status_obj = params.get('cloudflare_status') + if cf_status_obj: + cf_status = cf_status_obj.get('status') + if cf_status == 'error': + page_image_id = 'error' + page_image_url = f'https://virt.moe/cferr/editor/assets/icon-{page_image_id}-large.png' return render_cf_error_page(params=params, template=template, base=base_template, @@ -123,5 +136,6 @@ def render_extended_template(params: ErrorPageParams, page_icon_type=current_app.config.get('PAGE_ICON_TYPE'), url=request.url, description='Cloudflare error page', + page_image_url=page_image_url, *args, **kwargs) diff --git a/editor/web/icon.png b/editor/web/assets/icon-32x32.png similarity index 100% rename from editor/web/icon.png rename to editor/web/assets/icon-32x32.png diff --git a/editor/web/assets/icon-error-large.png b/editor/web/assets/icon-error-large.png new file mode 100644 index 0000000000000000000000000000000000000000..ae19285225ff0c986edc05fb9cfc6f6a63ac2443 GIT binary patch literal 10680 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 - + + + diff --git a/editor/web/package.json b/editor/web/package.json index 0b8815d..8069b9f 100644 --- a/editor/web/package.json +++ b/editor/web/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "bootstrap": "^5.3.8", - "ejs": "^3.1.10" + "ejs": "^3.1.10", + "vite-plugin-static-copy": "^3.1.4" } } diff --git a/editor/web/vite.config.ts b/editor/web/vite.config.ts index 87161f2..8378090 100644 --- a/editor/web/vite.config.ts +++ b/editor/web/vite.config.ts @@ -1,9 +1,8 @@ /// -import { defineConfig, loadEnv } from 'vite'; +import { defineConfig } from 'vite'; import { minify as htmlMinify } from 'html-minifier-terser'; -import process from 'node:process'; - +import { viteStaticCopy } from 'vite-plugin-static-copy'; export default defineConfig(({ mode }) => { const baseUrl = mode === 'production' ? '' : '/editor/'; @@ -38,6 +37,14 @@ export default defineConfig(({ mode }) => { }, }, }, + viteStaticCopy({ + targets: [ + { + src: 'assets/', + dest: '', + }, + ], + }), ], }; }); diff --git a/editor/web/yarn.lock b/editor/web/yarn.lock index 7a45718..122fcaf 100644 --- a/editor/web/yarn.lock +++ b/editor/web/yarn.lock @@ -293,6 +293,14 @@ acorn@^8.15.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + async@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" @@ -303,6 +311,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + bootstrap@^5.3.8: version "5.3.8" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed" @@ -315,6 +328,13 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" +braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -328,6 +348,21 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" +chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + clean-css@~5.3.2: version "5.3.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" @@ -409,11 +444,25 @@ filelist@^1.0.4: dependencies: minimatch "^5.0.1" +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + html-minifier-terser@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" @@ -427,6 +476,30 @@ html-minifier-terser@^7.2.0: relateurl "^0.2.7" terser "^5.15.1" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + jake@^10.8.5: version "10.9.4" resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6" @@ -463,6 +536,16 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +p-map@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.4.tgz#b81814255f542e252d5729dca4d66e5ec14935b8" + integrity sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -484,6 +567,11 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + picomatch@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" @@ -503,6 +591,13 @@ prettier@3.7.4: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -575,6 +670,13 @@ tinyglobby@^0.2.15: fdir "^6.5.0" picomatch "^4.0.3" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + tslib@^2.0.3: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" @@ -590,6 +692,16 @@ undici-types@~7.16.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== +vite-plugin-static-copy@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vite-plugin-static-copy/-/vite-plugin-static-copy-3.1.4.tgz#d8365b717c2506885ca9a51457a1bcfe6f3a2bef" + integrity sha512-iCmr4GSw4eSnaB+G8zc2f4dxSuDjbkjwpuBLLGvQYR9IW7rnDzftnUjOH5p4RYR+d4GsiBqXRvzuFhs5bnzVyw== + dependencies: + chokidar "^3.6.0" + p-map "^7.0.3" + picocolors "^1.1.1" + tinyglobby "^0.2.15" + vite@^7.2.6: version "7.2.7" resolved "https://registry.yarnpkg.com/vite/-/vite-7.2.7.tgz#0789a4c3206081699f34a9ecca2dda594a07478e"