Jul 24 - Update Rich-text editor to enhance table editor 5
This commit is contained in:
@@ -32,7 +32,8 @@
|
|||||||
"Read(//tmp/**)",
|
"Read(//tmp/**)",
|
||||||
"Bash(curl -sSL https://raw.githubusercontent.com/attoae/quill-table-better/main/src/utils/clipboard-matchers.ts -o cm.ts -w \"cm %{http_code}\\\\n\")",
|
"Bash(curl -sSL https://raw.githubusercontent.com/attoae/quill-table-better/main/src/utils/clipboard-matchers.ts -o cm.ts -w \"cm %{http_code}\\\\n\")",
|
||||||
"Bash(curl -sSL https://raw.githubusercontent.com/attoae/quill-table-better/main/src/ui/table-menus.ts -o tm.ts -w \"tm %{http_code}\\\\n\")",
|
"Bash(curl -sSL https://raw.githubusercontent.com/attoae/quill-table-better/main/src/ui/table-menus.ts -o tm.ts -w \"tm %{http_code}\\\\n\")",
|
||||||
"Bash(curl -sSL https://raw.githubusercontent.com/attoae/quill-table-better/main/src/ui/table-properties-form.ts -o tpf.ts -w \"tpf %{http_code}\\\\n\")"
|
"Bash(curl -sSL https://raw.githubusercontent.com/attoae/quill-table-better/main/src/ui/table-properties-form.ts -o tpf.ts -w \"tpf %{http_code}\\\\n\")",
|
||||||
|
"Bash(python -m py_compile app.py)"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,6 +202,23 @@ def create_app():
|
|||||||
def healthz():
|
def healthz():
|
||||||
return {"status": "ok"}
|
return {"status": "ok"}
|
||||||
|
|
||||||
|
@app.context_processor
|
||||||
|
def inject_asset_url():
|
||||||
|
"""`asset_url('css/style.css')` → the static URL with a `?v=<mtime>`
|
||||||
|
cache-buster, so an edited CSS/JS file is always re-fetched instead of
|
||||||
|
being served stale from the browser/proxy cache."""
|
||||||
|
from flask import url_for
|
||||||
|
|
||||||
|
def asset_url(filename):
|
||||||
|
try:
|
||||||
|
version = int(os.path.getmtime(
|
||||||
|
os.path.join(app.static_folder, filename)))
|
||||||
|
except OSError:
|
||||||
|
version = 0
|
||||||
|
return url_for("static", filename=filename, v=version)
|
||||||
|
|
||||||
|
return {"asset_url": asset_url}
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,9 @@ body{
|
|||||||
.block__sub{color:var(--muted);font-size:.96rem;margin:14px 0 0;max-width:34ch}
|
.block__sub{color:var(--muted);font-size:.96rem;margin:14px 0 0;max-width:34ch}
|
||||||
|
|
||||||
/* ---------- TOPICS (accordion) ---------- */
|
/* ---------- TOPICS (accordion) ---------- */
|
||||||
.topics{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
|
/* min-width:0 lets this 1fr grid item shrink instead of being widened to a
|
||||||
|
table's intrinsic width (which would push sibling text past the card). */
|
||||||
|
.topics{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair);min-width:0}
|
||||||
.topic{border-bottom:1px solid var(--hair)}
|
.topic{border-bottom:1px solid var(--hair)}
|
||||||
.topic__head{
|
.topic__head{
|
||||||
width:100%;background:none;border:0;cursor:pointer;text-align:left;
|
width:100%;background:none;border:0;cursor:pointer;text-align:left;
|
||||||
@@ -147,7 +149,9 @@ body{
|
|||||||
padding:2px 4px 30px 0;max-width:62ch;
|
padding:2px 4px 30px 0;max-width:62ch;
|
||||||
display:flex;flex-direction:column;gap:20px;
|
display:flex;flex-direction:column;gap:20px;
|
||||||
}
|
}
|
||||||
.prose{color:var(--ink-soft);font-size:1.03rem}
|
/* min-width:0 so a wide table can't stretch this flex item; overflow-x lets a
|
||||||
|
genuinely too-wide table scroll within the prose box rather than clip text. */
|
||||||
|
.prose{color:var(--ink-soft);font-size:1.03rem;min-width:0;overflow-x:auto}
|
||||||
.prose p{margin:0 0 .8em}
|
.prose p{margin:0 0 .8em}
|
||||||
.prose p:last-child{margin-bottom:0}
|
.prose p:last-child{margin-bottom:0}
|
||||||
.prose strong{color:var(--ink);font-weight:600}
|
.prose strong{color:var(--ink);font-weight:600}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/admin.css') }}">
|
<link rel="stylesheet" href="{{ asset_url('css/admin.css') }}">
|
||||||
{% block head_extra %}{% endblock %}
|
{% block head_extra %}{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body class="{% block body_class %}{% endblock %}">
|
<body class="{% block body_class %}{% endblock %}">
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
<link rel="stylesheet" href="{{ asset_url('css/style.css') }}">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="grain" aria-hidden="true"></div>
|
<div class="grain" aria-hidden="true"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user