- New apps/guides app with GuidePage model and audience mapping by wiki path - sync_guides management command: one-way read-only sync from wikijs DB - Read-only wikijs_ro DB role + WIKI_DB_* env config (secrets, gitignored) - Markdown rendering with bleach sanitisation; rewrites internal guide links to the portal help root and wiki image paths to WIKI_PUBLIC_BASE - /portal/help/ (buyer) and /ops/help/ (ops) index + detail views with role-based audience filtering (404 on cross-role guides) - Help nav item added to both portal base templates - Tests: audience filtering, markdown sanitisation, link rewriting, sync command
28 lines
997 B
HTML
28 lines
997 B
HTML
<div class="page-header">
|
|
<nav aria-label="breadcrumb">
|
|
<ol class="breadcrumb mb-1">
|
|
<li class="breadcrumb-item"><a href="{{ help_root }}">Help Centre</a></li>
|
|
<li class="breadcrumb-item active" aria-current="page">{{ guide.title }}</li>
|
|
</ol>
|
|
</nav>
|
|
<h2>{{ guide.title }}</h2>
|
|
<a href="{{ help_root }}" class="btn btn-sm btn-outline-secondary mt-2">← Back to all guides</a>
|
|
</div>
|
|
|
|
<div class="row g-3">
|
|
<div class="col-md-3">
|
|
<div class="stat-card">
|
|
<h6 class="mb-3">Guides</h6>
|
|
<ul class="list-unstyled small mb-0">
|
|
{% for item in guides %}
|
|
<li class="mb-2">
|
|
<a class="text-decoration-none {% if item.pk == guide.pk %}fw-bold text-primary{% else %}text-secondary{% endif %}" href="{{ help_root }}{{ item.page_slug }}/">{{ item.title }}</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-9">
|
|
<div class="stat-card guide-content">{{ guide_html|safe }}</div>
|
|
</div>
|
|
</div>
|