Enhance Article editor
This commit is contained in:
@@ -34,7 +34,52 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div style="white-space:pre-wrap;font-size:14px;line-height:1.8;color:var(--text);">{{ article.body }}</div>
|
||||
<!-- Render rich HTML saved by TinyMCE -->
|
||||
<style>
|
||||
.kb-body { font-size:14px; line-height:1.8; color:var(--text); }
|
||||
.kb-body h1,.kb-body h2,.kb-body h3,.kb-body h4 { font-weight:700; margin:1.4em 0 .5em; color:var(--text); }
|
||||
.kb-body h1{font-size:1.55em;} .kb-body h2{font-size:1.3em;} .kb-body h3{font-size:1.12em;}
|
||||
.kb-body p { margin:0 0 1em; }
|
||||
.kb-body a { color:var(--accent); }
|
||||
.kb-body code { background:var(--surface2); border:1px solid var(--border); border-radius:4px; padding:1px 5px; font-size:.88em; font-family:'Space Mono',monospace; }
|
||||
.kb-body pre { background:#1e293b; color:#e2e8f0; padding:14px 18px; border-radius:8px; overflow-x:auto; margin:1em 0; }
|
||||
.kb-body pre code { background:none; border:none; padding:0; color:inherit; }
|
||||
.kb-body table { border-collapse:collapse; width:100%; margin:1em 0; }
|
||||
.kb-body table th { background:var(--surface2); font-weight:600; }
|
||||
.kb-body table th,.kb-body table td { border:1px solid var(--border); padding:8px 12px; font-size:13px; }
|
||||
.kb-body table tr:nth-child(even) td { background:var(--bg); }
|
||||
.kb-body img { max-width:100%; height:auto; border-radius:6px; margin:4px 0; }
|
||||
.kb-body blockquote { border-left:4px solid var(--accent); margin:1em 0; padding:10px 16px; background:var(--info-bg); border-radius:0 6px 6px 0; color:var(--info); }
|
||||
.kb-body ul,.kb-body ol { padding-left:24px; margin:0 0 1em; }
|
||||
.kb-body li { margin-bottom:.3em; }
|
||||
.kb-body hr { border:none; border-top:1px solid var(--border); margin:2em 0; }
|
||||
.kb-body .callout-info { background:var(--info-bg); border:1px solid #bfdbfe; border-radius:8px; padding:14px 16px; margin:1em 0; }
|
||||
.kb-body .callout-warning { background:var(--warning-bg); border:1px solid #fde68a; border-radius:8px; padding:14px 16px; margin:1em 0; }
|
||||
.kb-body .callout-tip { background:var(--success-bg); border:1px solid #a7f3d0; border-radius:8px; padding:14px 16px; margin:1em 0; }
|
||||
</style>
|
||||
<div class="kb-body">{{ article.body | safe }}</div>
|
||||
|
||||
{% set existing_atts = article.attachments.all() %}
|
||||
{% if existing_atts %}
|
||||
<div style="margin-top:24px;padding-top:16px;border-top:1px solid var(--border);">
|
||||
<div style="font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:10px;">
|
||||
<i class="bi bi-paperclip me-1"></i>Attachments
|
||||
</div>
|
||||
<div style="display:flex;flex-direction:column;gap:6px;">
|
||||
{% for att in existing_atts %}
|
||||
<a href="{{ url_for('admin.kb_serve_file', stored_name=att.stored_name) }}"
|
||||
target="_blank"
|
||||
style="display:flex;align-items:center;gap:10px;padding:9px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;">
|
||||
<i class="bi bi-{% if att.mime_type and 'image' in att.mime_type %}image{% elif att.mime_type and 'pdf' in att.mime_type %}file-earmark-pdf{% else %}file-earmark{% endif %}"
|
||||
style="color:var(--accent);font-size:16px;flex-shrink:0;"></i>
|
||||
<span style="flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">{{ att.filename }}</span>
|
||||
<span style="font-size:11px;color:var(--muted);font-family:'Space Mono',monospace;">{{ (att.file_size / 1024)|int }} KB</span>
|
||||
<i class="bi bi-download" style="color:var(--muted);font-size:13px;"></i>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card mt-3">
|
||||
@@ -52,4 +97,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user