A WPF (.NET 10) desktop app for browsing a folder tree of HTML and Markdown notes with a live preview — built for people who keep their documentation as plain files on disk rather than in a web app.
Point it at any folder. It scans the tree, reads titles out of the documents themselves, and gives you a three-pane browser: folders, files, and a rendered preview.
- Three-pane layout — folder tree, document list, and a live rendered preview
- Real titles, not filenames — pulls the
<title>or first heading out of each HTML file so the list reads like a table of contents - Recursive folders expandable inline, at any depth
- Search across filenames, or within file contents
- Filter by file type
- Windows shortcut (
.lnk) support — folders linked from elsewhere appear in the tree as if they were local - Move to Folder across the whole tree, including folders that share an ancestor rather than a parent
- Rename and Edit Title — edits the document's own title, falling back to a plain file rename for non-HTML files
- Open in Browser / Open in Explorer from the preview
- Skips
.git,.vs,bin, andobjwhen scanning
git clone <this-repo-url>
cd KnowledgeBaseViewer
dotnet run
Requires the .NET 10 SDK with the Windows desktop workload. Windows only — WPF isn't cross-platform.
On first run it points at Documents\KnowledgeBase. Use Change Folder… to pick your own; the choice is saved to
%AppData%\KnowledgeBaseViewer\settings.json and remembered next time.
Models/
KbFile.cs, KbFolder.cs, KbSubsection.cs the tree and document model
Services/
KnowledgeBaseScanner.cs walks the folder tree
HtmlMetadataService.cs reads titles and outlines out of HTML
ShortcutResolver.cs resolves .lnk targets
AppSettings.cs settings persisted to %AppData%
RowTemplateSelectors.cs picks the right row template per item
DepthToMarginConverter.cs indents nested rows by depth
- Platform: WPF, .NET 10
- Storage: settings as JSON in
%AppData%; documents stay plain files on disk - Dependencies: none beyond the framework
Notes and build guides written as HTML files are easy to produce and awful to browse — a folder of files tells you nothing about what's in them. This reads the documents themselves to build a usable index, so the filesystem stays the source of truth and nothing has to be imported into a database or a web app.
