1
0
mirror of https://gitlab.com/MisterBiggs/brain-quartz.git synced 2026-06-03 21:10:34 +00:00

feat: implement wiki-linked categories with graph and backlinks integration

Add complete category system that integrates with Obsidian's wiki-linked
category frontmatter. Categories appear as pills on pages and link directly
to category notes (not aggregation pages).

Features:
- Parse [[Page Name]] syntax from category frontmatter
- Display category pills styled like tags
- Link directly to category notes
- Integrate with graph view connections
- Enable bidirectional backlinks
- Preserve case in category slugs

Implementation:
- Added extractWikiLinks() to frontmatter transformer
- Created CategoryList component for pill rendering
- Modified links transformer to include categories in links array
- Updated contentIndex to export category metadata
- Added i18n strings for category UI elements
- Set includeEmptyFiles: true to show empty category pages in graph

Files modified:
- quartz/plugins/transformers/frontmatter.ts
- quartz/plugins/transformers/links.ts
- quartz/plugins/emitters/contentIndex.tsx
- quartz/components/CategoryList.tsx (new)
- quartz/components/pages/CategoryContent.tsx (new)
- quartz/plugins/emitters/categoryPage.tsx (new)
- quartz/i18n/locales/en-US.ts
- quartz/i18n/locales/definition.ts
- quartz/components/index.ts
- quartz.layout.ts
- quartz.config.ts
- README.md (updated with Quartz updater documentation)

Security: Comprehensive privacy review confirms NO information leaks from
private folder. All ignore patterns working correctly.

Docs: Added CUSTOMIZATIONS.md with complete feature documentation,
implementation details, and privacy audit results.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-09 15:59:17 -05:00
parent 342d6428a3
commit a1a9b5233d
14 changed files with 662 additions and 4 deletions
+7
View File
@@ -84,5 +84,12 @@ export interface Translation {
showingFirst: (variables: { count: number }) => string
totalTags: (variables: { count: number }) => string
}
categoryContent: {
category: string
categoryIndex: string
itemsUnderCategory: (variables: { count: number }) => string
showingFirst: (variables: { count: number }) => string
totalCategories: (variables: { count: number }) => string
}
}
}
+8
View File
@@ -83,5 +83,13 @@ export default {
showingFirst: ({ count }) => `Showing first ${count} tags.`,
totalTags: ({ count }) => `Found ${count} total tags.`,
},
categoryContent: {
category: "Category",
categoryIndex: "Category Index",
itemsUnderCategory: ({ count }) =>
count === 1 ? "1 item in this category." : `${count} items in this category.`,
showingFirst: ({ count }) => `Showing first ${count} categories.`,
totalCategories: ({ count }) => `Found ${count} total categories.`,
},
},
} as const satisfies Translation