Implements [[term]], [[w:term]], and [[d:term]] wiki link syntax:
- New wiki_links.ts utility for parsing and tag generation
- Extract wiki links from content and generate w/d tags
- CodeMirror syntax highlighting (violet/cyan/amber)
- Preview displays extracted wiki tags separately from hashtags
- Tutorial documentation for wiki link usage
Per WIKI_TAG_SPEC.md:
- [[term]] and [[w:term]] generate w-tags (references/mentions)
- [[d:term]] generates d-tags (definitions)
- Custom display text: [[term|display text]]
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed regex bug in attribute parsing (\s instead of \\s)
- Section-specific tags now extracted correctly from AsciiDoc attributes
- Added tag display for index events (30040) in preview
- Removed duplicate document header/tags rendering
- Tags now show for all 30040 and 30041 events at all parse levels
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixes multiple issues with AsciiDoc hierarchical parsing and preview rendering:
**Content Extraction:**
- Fixed content extraction to include child headers at all parse levels
- Level 3 parsing now properly includes ==== sub headers in === parent content
- Unified content extraction logic stops only at sibling/parent headers
**Event Generation:**
- Fixed collectSectionsAtLevel to include Level 2-N sections for proper hierarchy
- Level 3 parsing creates index events for == sections, content events for === sections
- Maintains NKBIP-01 compliance: parent sections get both index+content events
**Preview Rendering:**
- Fixed heading removal to target specific section titles, not first header found
- === subheader now renders correctly as h3 in preview
- Nested content properly displays in parent sections
**Example Structure (Level 3 parsing):**
```
= title
== test 1 → Index Event (30040) + Content Event (30041)
text
=== subheader → Content Event (30041)
content + nested
==== sub subheader
nested content
== note 2 → Index Event (30040) + Content Event (30041)
text
```
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Successfully implemented proper Asciidoctor tree processor extension for NKBIP-01
hierarchical parsing with comprehensive test coverage and future integration plan.
Features:
- Real Asciidoctor tree processor extension using registry.treeProcessor()
- NKBIP-01 compliant hierarchical structure (30040 index + 30041 content events)
- Parse levels 2-5 with different event granularities:
* Level 2: One 30041 per level 2 section (contains all nested content)
* Level 3+: Mix of 30040 (sections with children) + 30041 (content sections)
- Content preserved as original AsciiDoc markup
- Comprehensive test suite validating all parse levels and event structures
Implementation:
- src/lib/utils/publication_tree_processor.ts: Core tree processor extension
- src/lib/utils/asciidoc_publication_parser.ts: Unified parser interface
- tests/unit/publication_tree_processor.test.ts: Complete test coverage
- HIERARCHY_VISUALIZATION_PLAN.md: Next phase integration plan
Next: Integrate into ZettelEditor with visual hierarchy indicators
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>