Auto-sync: 2026-04-20 16:01

This commit is contained in:
2026-04-20 16:01:56 +08:00
parent d55e364abc
commit af7f28a13b
54 changed files with 3398 additions and 1579 deletions

View File

@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="3000" height="2000" viewBox="0 0 3000 2000">
<defs>
<filter id="chalk" x="-20%" y="-20%" width="140%" height="140%">
<feTurbulence baseFrequency="0.8" numOctaves="2" stitchTiles="stitch" result="t" />
<feColorMatrix type="saturate" values="0" in="t" result="t2"/>
<feBlend in="SourceGraphic" in2="t2" mode="overlay"/>
</filter>
<linearGradient id="bggrad" x1="0" x2="1" y1="0" y2="1">
<stop offset="0%" stop-color="#0b0b0b"/>
<stop offset="100%" stop-color="#111111"/>
</linearGradient>
<style>
.title { font: 64px/1.1 'Helvetica Neue', Arial, sans-serif; fill: #fff; font-weight:700 }
.subtitle { font: 28px/1.1 'Helvetica Neue', Arial, sans-serif; fill:#ddd }
.timeline-label { font: 20px 'Helvetica Neue', Arial, sans-serif; fill:#f6f6f6 }
.box-title { font:22px 'Helvetica Neue', Arial, sans-serif; fill:#fff; font-weight:700 }
.box-body { font:18px 'Helvetica Neue', Arial, sans-serif; fill:#f2f2f2 }
.datasrc { font:16px 'Helvetica Neue', Arial, sans-serif; fill:#cfcfcf }
.caption { font:18px 'Helvetica Neue', Arial, sans-serif; fill:#ddd }
</style>
</defs>
<!-- background -->
<rect width="100%" height="100%" fill="url(#bggrad)"/>
<!-- Title -->
<g transform="translate(120,80)">
<text class="title">llm-wiki-sync — 从零散笔记到结构化 Wiki</text>
<text class="subtitle" transform="translate(0,70)">把 raw/ 里的素材自动解析为 Source 页面、实体与图谱chalkboard 风格)</text>
</g>
<!-- Timeline (left-to-right) -->
<g transform="translate(140,220)">
<line x1="0" y1="0" x2="2600" y2="0" stroke="#3a3a3a" stroke-width="6" stroke-linecap="round"/>
<!-- nodes -->
<g transform="translate(0,-40)">
<circle cx="0" cy="40" r="28" fill="#2e8b57" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">raw/ (source)</text>
</g>
<g transform="translate(600,-40)">
<circle cx="0" cy="40" r="28" fill="#f39c12" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">ingest</text>
</g>
<g transform="translate(1200,-40)">
<circle cx="0" cy="40" r="28" fill="#d35400" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">extract</text>
</g>
<g transform="translate(1800,-40)">
<circle cx="0" cy="40" r="28" fill="#2980b9" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">wiki / sources</text>
</g>
<g transform="translate(2400,-40)">
<circle cx="0" cy="40" r="28" fill="#8e44ad" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">graph → quartz</text>
</g>
</g>
<!-- Flowchart (center) -->
<g transform="translate(260,380)">
<!-- ingest box -->
<rect x="0" y="0" width="420" height="110" rx="12" fill="#141414" stroke="#ffffff22" stroke-width="2" filter="url(#chalk)"/>
<text class="box-title" x="20" y="34">1. Parse & Normalize</text>
<text class="box-body" x="20" y="64">frontmatter, metadata, language detection</text>
<text class="box-body" x="20" y="88">split sections, clean formatting</text>
<!-- arrow to extract -->
<line x1="450" y1="55" x2="710" y2="55" stroke="#ffffff55" stroke-width="6" marker-end="url(#arrow)"/>
<!-- extract box -->
<rect x="760" y="0" width="480" height="160" rx="12" fill="#141414" stroke="#ffffff22" stroke-width="2"/>
<text class="box-title" x="780" y="38">2. LLM Extraction</text>
<text class="box-body" x="780" y="70">Summary (24 sentences)</text>
<text class="box-body" x="780" y="98">Key Claims · Quotes · Concepts · Entities</text>
<text class="box-body" x="780" y="126">Connections (A → depends_on → B)</text>
<!-- arrow to wiki -->
<line x1="1250" y1="80" x2="1480" y2="80" stroke="#ffffff55" stroke-width="6"/>
<!-- wiki box -->
<rect x="1510" y="-20" width="540" height="220" rx="12" fill="#141414" stroke="#ffffff22" stroke-width="2"/>
<text class="box-title" x="1530" y="20">3. Write Source Page</text>
<text class="box-body" x="1530" y="56">frontmatter + Summary + Claims + Quotes</text>
<text class="box-body" x="1530" y="86">Create/Update Entities & Concepts pages</text>
<text class="box-body" x="1530" y="116">Append ingest log (git & audit)</text>
<text class="box-body" x="1530" y="146">Optional: graph rebuild → graph.json / graph.html</text>
</g>
<!-- callouts on right -->
<g transform="translate(1820,700)">
<rect x="0" y="0" width="1080" height="360" rx="14" fill="#0f0f0f" stroke="#ffffff11" stroke-width="2"/>
<text class="box-title" x="28" y="42">Key Outputs & Callouts</text>
<g transform="translate(28,70)">
<rect x="0" y="0" width="320" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="30">Summary</text>
<text class="box-body" x="18" y="60">24 concise lines for search & index</text>
</g>
<g transform="translate(360,70)">
<rect x="0" y="0" width="320" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="30">Entities & Concepts</text>
<text class="box-body" x="18" y="60">Normalized pages: wiki/entities/, wiki/concepts/</text>
</g>
<g transform="translate(700,70)">
<rect x="0" y="0" width="320" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="30">Connections</text>
<text class="box-body" x="18" y="60">Graph edges for visual discovery (graph.json)</text>
</g>
<g transform="translate(28,210)">
<rect x="0" y="0" width="990" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="36">Operational Notes</text>
<text class="box-body" x="18" y="66">Batch size 310, audit logs, git checkpoints, Quartz for static export</text>
</g>
</g>
<!-- footer / data sources -->
<g transform="translate(120,1200)">
<text class="datasrc">Data sources: Karpathy gist (LLM Wiki), SamurAI llm-wiki-agent (github.com/SamurAIGPT/llm-wiki-agent), Quartz (jackyzha0/quartz)</text>
<rect x="0" y="36" width="2760" height="320" rx="8" fill="#0d0d0d" stroke="#ffffff11"/>
<text class="caption" x="20" y="80">Caption: Chalkboard-style infographic summarizing llm-wiki-sync — an automated pipeline to convert scattered notes (raw/) into structured wiki pages, entities, and a graph for long-term reuse.</text>
<text class="datasrc" x="20" y="120">Annotations: include source links in wiki: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f; https://github.com/SamurAIGPT/llm-wiki-agent; https://github.com/jackyzha0/quartz</text>
</g>
<!-- visual arrow marker definition -->
<defs>
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto">
<path d="M0,0 L10,5 L0,10 z" fill="#ffffffcc" />
</marker>
</defs>
<!-- alt text as comment -->
<!-- ALT: Infographic showing llm-wiki-sync pipeline: timeline from raw -> ingest -> extract -> wiki -> graph, central flowchart of parse -> LLM extraction -> write source page, callouts for Summary, Entities, Connections, footer with data sources and caption. Chalkboard visual theme (dark background, white/colored highlights). -->
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB