Knowledge base of ~80+ markdown files across 14 domains (00-13), Logseq graph, hardware design files (KiCAD), infrastructure configs, and talas-wiki static site. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
139 lines
6.5 KiB
HTML
139 lines
6.5 KiB
HTML
{{define "title"}}Dashboard — Talas Wiki{{end}}
|
|
|
|
{{define "content"}}
|
|
<div class="breadcrumb"><a href="/">/</a> / <span>dashboard</span></div>
|
|
<div class="page-header">
|
|
<h1>Dashboard</h1>
|
|
{{if not .ReadOnly}}<a href="/export" class="btn-edit">exporter HTML</a>{{end}}
|
|
</div>
|
|
|
|
<div class="dash-stats">
|
|
<div class="dash-stat"><span class="dash-stat-num">{{.TotalPages}}</span><span class="dash-stat-label">pages</span></div>
|
|
<div class="dash-stat"><span class="dash-stat-num">{{.TotalDomains}}</span><span class="dash-stat-label">domaines</span></div>
|
|
<div class="dash-stat"><span class="dash-stat-num">{{len .OrphanPages}}</span><span class="dash-stat-label">orphelines</span></div>
|
|
<div class="dash-stat"><span class="dash-stat-num">{{len .BrokenLinks}}</span><span class="dash-stat-label">liens casses</span></div>
|
|
<div class="dash-stat"><span class="dash-stat-num">{{len .AllTags}}</span><span class="dash-stat-label">tags</span></div>
|
|
</div>
|
|
|
|
{{if .DomainHealth}}
|
|
<div class="dash-section" style="margin-bottom:24px">
|
|
<h2>Sante des domaines</h2>
|
|
<table class="health-table">
|
|
<tr><th>Domaine</th><th>Lie</th><th>Tagge</th><th>Recent</th><th>Liens/page</th></tr>
|
|
{{range .DomainHealth}}
|
|
<tr>
|
|
<td><span style="color:{{.Color}}">{{.Domain}}</span> <span style="color:var(--text-dim);font-size:10px">({{.TotalPages}})</span></td>
|
|
<td><div class="health-bar"><div class="health-fill {{healthClass .PctLinked}}" style="width:{{.PctLinked}}%"></div></div> {{.PctLinked}}%</td>
|
|
<td><div class="health-bar"><div class="health-fill {{healthClass .PctTagged}}" style="width:{{.PctTagged}}%"></div></div> {{.PctTagged}}%</td>
|
|
<td><div class="health-bar"><div class="health-fill {{healthClass .PctRecent}}" style="width:{{.PctRecent}}%"></div></div> {{.PctRecent}}%</td>
|
|
<td>{{fmtFloat .AvgLinks}}</td>
|
|
</tr>
|
|
{{end}}
|
|
</table>
|
|
</div>
|
|
{{end}}
|
|
|
|
<div class="dash-grid">
|
|
<div class="dash-section">
|
|
<h2>Pages les plus liees</h2>
|
|
<div class="dash-list">{{range .MostLinked}}
|
|
<a href="/wiki/{{encodeURL .URLPath}}" class="dash-item"><span class="dash-item-title">{{.Title}}</span><span class="dash-item-meta">{{backlinkCount .URLPath}} liens · {{.Domain}}</span></a>
|
|
{{end}}</div>
|
|
</div>
|
|
|
|
<div class="dash-section">
|
|
<h2>Modifications recentes</h2>
|
|
<div class="dash-list">{{range .RecentPages}}
|
|
<a href="/wiki/{{encodeURL .URLPath}}" class="dash-item"><span class="dash-item-title">{{.Title}}</span><span class="dash-item-meta">{{formatDateShort .ModTime}} · {{.Domain}}</span></a>
|
|
{{end}}</div>
|
|
</div>
|
|
|
|
<div class="dash-section">
|
|
<h2>Activite git</h2>
|
|
<div class="dash-list">{{range .RecentActivity}}
|
|
<div class="dash-item"><span class="dash-item-title git-msg">{{.Message}}</span><span class="dash-item-meta">{{shortHash .Hash}} · {{formatDateShort .Date}}</span></div>
|
|
{{end}}{{if not .RecentActivity}}<div class="dash-item"><span class="dash-item-meta">Pas de repo git</span></div>{{end}}</div>
|
|
</div>
|
|
|
|
{{if .BrokenLinks}}
|
|
<div class="dash-section">
|
|
<h2>Liens casses</h2>
|
|
<div class="dash-list">{{range .BrokenLinks}}
|
|
<div class="dash-item">
|
|
<a href="/wiki/{{encodeURL .Source}}" class="dash-item-title">{{.Source}}</a>
|
|
<span class="dash-item-meta broken">→ {{.Target}}</span>
|
|
{{if .Suggestion}}
|
|
<form method="POST" action="/fix-link" style="display:inline">
|
|
<input type="hidden" name="source" value="{{.Source}}">
|
|
<input type="hidden" name="old_target" value="{{.Target}}">
|
|
<input type="hidden" name="new_target" value="{{.Suggestion}}">
|
|
<button type="submit" class="fix-btn" title="Remplacer par {{.Suggestion}}">→ {{.Suggestion}}</button>
|
|
</form>
|
|
{{end}}
|
|
</div>
|
|
{{end}}</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if .OrphanPages}}
|
|
<div class="dash-section">
|
|
<h2>Pages orphelines</h2>
|
|
<div class="dash-list">{{range .OrphanPages}}
|
|
<a href="/wiki/{{encodeURL .URLPath}}" class="dash-item"><span class="dash-item-title">{{.Title}}</span><span class="dash-item-meta">{{.Domain}}</span></a>
|
|
{{end}}</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if not .AnalyticsReady}}
|
|
<div class="dash-section">
|
|
<h2>Analyse en cours...</h2>
|
|
<p class="dash-hint">Les suggestions de liens et la detection de doublons se calculent en arriere-plan. Rafraichissez dans quelques secondes.</p>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if .LinkSuggestions}}
|
|
<div class="dash-section">
|
|
<h2>Suggestions de liens</h2>
|
|
<p class="dash-hint">Pages mentionnees mais non liees</p>
|
|
<div class="dash-list">{{range .LinkSuggestions}}
|
|
<div class="dash-item">
|
|
<a href="/wiki/{{encodeURL .Source}}" class="dash-item-title">{{.Source}}</a>
|
|
<span class="dash-item-meta">mentionne <a href="/wiki/{{encodeURL .Target}}" class="suggestion-target">{{.TargetTitle}}</a> ({{.Mentions}}x)</span>
|
|
</div>
|
|
{{end}}</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if .Duplicates}}
|
|
<div class="dash-section">
|
|
<h2>Contenus similaires</h2>
|
|
<p class="dash-hint">Pages avec contenu potentiellement duplique</p>
|
|
<div class="dash-list">{{range .Duplicates}}
|
|
<div class="dash-item">
|
|
{{range .Pages}}<a href="/wiki/{{encodeURL .URLPath}}" class="dash-item-title" style="margin-right:8px">{{.Title}}</a>{{end}}
|
|
<span class="dash-item-meta">{{fmtPct .Similarity}}</span>
|
|
</div>
|
|
{{end}}</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if .Backups}}
|
|
<div class="dash-section" id="backups">
|
|
<h2>Backups</h2>
|
|
{{if not $.ReadOnly}}<form method="POST" action="/backup" style="margin-bottom:8px"><button type="submit" class="fix-btn">Creer un backup</button></form>{{end}}
|
|
<div class="dash-list">{{range .Backups}}
|
|
<a href="/backup/{{.}}" class="dash-item"><span class="dash-item-title">{{.}}</span></a>
|
|
{{end}}</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if .Reviews}}
|
|
<div class="dash-section">
|
|
<h2>Reviews en attente</h2>
|
|
<div class="dash-list">{{range .Reviews}}
|
|
<a href="/review/{{.ID}}" class="dash-item"><span class="dash-item-title">{{.PagePath}}</span><span class="dash-item-meta">{{.Author}} — {{.Message}}</span></a>
|
|
{{end}}</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|