├── nodsoft_moltenobsidian_web
├── vault
│ ├── .obsidian
│ │ ├── hotkeys.json
│ │ ├── community-plugins.json
│ │ ├── app.json
│ │ ├── appearance.json
│ │ ├── core-plugins.json
│ │ └── graph.json
│ ├── _media
│ │ └── icon.png
│ ├── .gitignore
│ ├── Index.md
│ ├── Tool
│ │ └── Index.md
│ └── Library
│ │ └── Vaults Providers
│ │ ├── Filesystem.md
│ │ └── Index.md
├── src
│ ├── env.d.ts
│ ├── consts.ts
│ ├── styles
│ │ ├── _responsive.scss
│ │ ├── _variables.scss
│ │ ├── _mixins.scss
│ │ ├── syntax
│ │ │ └── _csharp.scss
│ │ └── _content.scss
│ ├── components
│ │ ├── NavLink.astro
│ │ ├── NavLink.astro.scss
│ │ ├── vault
│ │ │ └── VaultNavTree.astro
│ │ ├── BaseHead.astro
│ │ └── Sidebar.astro
│ ├── layouts
│ │ └── Layout.astro
│ └── pages
│ │ ├── 404.astro
│ │ └── [...path].astro
├── public
│ ├── icon.png
│ ├── favicon.ico
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── mstile-150x150.png
│ ├── apple-touch-icon.png
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ ├── browserconfig.xml
│ └── site.webmanifest
├── .vscode
│ ├── extensions.json
│ └── launch.json
├── tsconfig.json
├── astro.config.mjs
├── .gitignore
└── package.json
├── Nodsoft.MoltenObsidian.Tests
├── Assets
│ └── TestVault
│ │ ├── .obsidian
│ │ ├── app.json
│ │ ├── appearance.json
│ │ ├── core-plugins.json
│ │ └── core-plugins-migration.json
│ │ ├── VeryNiceFolder
│ │ └── Hidden Note.md
│ │ └── README.md
├── Vaults
│ ├── FileSystem
│ │ ├── FileSystemVaultFixtureCollection.cs
│ │ └── FileSystemVaultFixture.cs
│ └── InMemory
│ │ ├── InMemoryVaultFixtureCollection.cs
│ │ └── InMemoryVaultFixture.cs
└── Nodsoft.MoltenObsidian.Tests.csproj
├── icon.png
├── Nodsoft.MoltenObsidian
├── GlobalUsings.cs
├── version.json
├── Infrastructure
│ └── Markdown
│ │ ├── Tags
│ │ ├── Tag.cs
│ │ ├── ObsidianTagsRenderer.cs
│ │ └── ObsidianTagsExtension.cs
│ │ ├── InternalLinks
│ │ └── ObsidianInternalLinksExtension.cs
│ │ └── MarkdownExtensions.cs
├── Nodsoft.MoltenObsidian.csproj
├── Vault
│ ├── IVaultFolder.cs
│ ├── IVaultEntity.cs
│ ├── IVaultNote.cs
│ ├── IVaultFile.cs
│ └── VaultUpdateEventArgs.cs
└── Converter
│ ├── ObsidianPipelineBuilder.cs
│ └── ObsidianHtmlConverter.cs
├── Samples
├── Nodsoft.MoltenObsidian.Samples.HttpWasm
│ ├── Layout
│ │ └── MainLayout.razor
│ ├── Pages
│ │ └── Home.razor
│ ├── App.razor
│ ├── _Imports.razor
│ ├── Program.cs
│ ├── Nodsoft.MoltenObsidian.Samples.HttpWasm.csproj
│ └── wwwroot
│ │ └── index.html
├── Nodsoft.MoltenObsidian.Samples.Server
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ └── css
│ │ │ └── open-iconic
│ │ │ ├── font
│ │ │ └── fonts
│ │ │ │ ├── open-iconic.eot
│ │ │ │ ├── open-iconic.otf
│ │ │ │ ├── open-iconic.ttf
│ │ │ │ └── open-iconic.woff
│ │ │ └── ICON-LICENSE
│ ├── Pages
│ │ ├── Index.razor
│ │ ├── _Host.cshtml
│ │ ├── Error.cshtml.cs
│ │ ├── _Layout.cshtml
│ │ ├── Vault
│ │ │ ├── VaultPage.razor
│ │ │ └── VaultNoteEditor.razor
│ │ └── Error.cshtml
│ ├── appsettings.json
│ ├── appsettings.Development.json
│ ├── Shared
│ │ ├── MainLayout.razor
│ │ ├── NavMenu.razor
│ │ ├── NavMenu.razor.css
│ │ └── MainLayout.razor.css
│ ├── App.razor
│ ├── _Imports.razor
│ ├── Nodsoft.MoltenObsidian.Samples.Server.csproj
│ ├── Properties
│ │ └── launchSettings.json
│ └── Program.cs
├── Nodsoft.MoltenObsidian.Samples.Wasm
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ ├── icon-192.png
│ │ ├── css
│ │ │ └── open-iconic
│ │ │ │ ├── font
│ │ │ │ └── fonts
│ │ │ │ │ ├── open-iconic.eot
│ │ │ │ │ ├── open-iconic.otf
│ │ │ │ │ ├── open-iconic.ttf
│ │ │ │ │ └── open-iconic.woff
│ │ │ │ └── ICON-LICENSE
│ │ ├── sample-data
│ │ │ └── weather.json
│ │ └── index.html
│ ├── Pages
│ │ ├── Index.razor
│ │ └── Index.razor.cs
│ ├── Shared
│ │ ├── MainLayout.razor
│ │ ├── SurveyPrompt.razor
│ │ ├── NavMenu.razor
│ │ ├── NavMenu.razor.css
│ │ └── MainLayout.razor.css
│ ├── App.razor
│ ├── _Imports.razor
│ ├── Program.cs
│ ├── Nodsoft.MoltenObsidian.Samples.Wasm.csproj
│ └── Properties
│ │ └── launchSettings.json
├── Nodsoft.MoltenObsidian.Samples.FtpWasm
│ ├── wwwroot
│ │ ├── favicon.png
│ │ ├── icon-192.png
│ │ ├── css
│ │ │ └── open-iconic
│ │ │ │ ├── font
│ │ │ │ └── fonts
│ │ │ │ │ ├── open-iconic.eot
│ │ │ │ │ ├── open-iconic.otf
│ │ │ │ │ ├── open-iconic.ttf
│ │ │ │ │ └── open-iconic.woff
│ │ │ │ └── ICON-LICENSE
│ │ ├── sample-data
│ │ │ └── weather.json
│ │ └── index.html
│ ├── Pages
│ │ ├── Index.razor
│ │ ├── Counter.razor
│ │ └── FetchData.razor
│ ├── Shared
│ │ ├── MainLayout.razor
│ │ ├── SurveyPrompt.razor
│ │ ├── NavMenu.razor
│ │ ├── NavMenu.razor.css
│ │ └── MainLayout.razor.css
│ ├── _Imports.razor
│ ├── Program.cs
│ ├── App.razor
│ ├── Nodsoft.MoltenObsidian.Samples.FtpWasm.csproj
│ └── Properties
│ │ └── launchSettings.json
├── Nodsoft.MoltenObsidian.Samples.FtpServer
│ ├── wwwroot
│ │ ├── favicon.png
│ │ └── css
│ │ │ └── open-iconic
│ │ │ ├── font
│ │ │ └── fonts
│ │ │ │ ├── open-iconic.eot
│ │ │ │ ├── open-iconic.otf
│ │ │ │ ├── open-iconic.ttf
│ │ │ │ └── open-iconic.woff
│ │ │ └── ICON-LICENSE
│ ├── Pages
│ │ ├── Index.razor
│ │ ├── ObsidianText.razor
│ │ ├── Counter.razor
│ │ ├── Error.cshtml.cs
│ │ ├── _Layout.cshtml
│ │ ├── FetchData.razor
│ │ ├── _Host.cshtml
│ │ └── Error.cshtml
│ ├── appsettings.json
│ ├── appsettings.Development.json
│ ├── Data
│ │ ├── WeatherForecast.cs
│ │ └── WeatherForecastService.cs
│ ├── App.razor
│ ├── Shared
│ │ ├── MainLayout.razor
│ │ ├── SurveyPrompt.razor
│ │ ├── NavMenu.razor.css
│ │ ├── MainLayout.razor.css
│ │ └── NavMenu.razor
│ ├── _Imports.razor
│ ├── Nodsoft.MoltenObsidian.Samples.FtpServer.csproj
│ ├── Properties
│ │ └── launchSettings.json
│ └── Program.cs
├── Nodsoft.MoltenObsidian.Samples.EmbeddedVault
│ └── Docs
│ │ └── README.md
├── Directory.Build.props
└── Nodsoft.MoltenObsidian.Sample.FtpServer
│ └── Nodsoft.MoltenObsidian.Samples.FtpServer.csproj
├── Nodsoft.MoltenObsidian.Blazor
├── Templates
│ ├── _Imports.razor
│ ├── TemplateRenderContextBase.cs
│ ├── NotFound.razor
│ ├── FoundNote.razor
│ ├── Error.razor
│ ├── FoundVaultRoot.razor
│ ├── FoundFolder.razor
│ └── FoundIndexNote.razor
├── _Imports.razor
├── version.json
├── Services
│ ├── IVaultRouter.cs
│ ├── VaultRouterFactory.cs
│ └── VaultRouter.cs
├── Nodsoft.MoltenObsidian.Blazor.csproj
├── ObsidianDependencyInjectionExtensions.cs
├── Helpers
│ ├── VaultNavigationHelpers.cs
│ └── VaultNavigationRazorHelpers.razor
└── ObsidianVaultDisplayOptions.cs
├── Nodsoft.MoltenObsidian.Tool
├── Services
│ └── InfoDataPair.cs
├── version.json
├── Program.cs
└── Nodsoft.MoltenObsidian.Tool.csproj
├── .config
└── dotnet-tools.json
├── Nodsoft.MoltenObsidian.Manifest
├── version.json
├── RemoteVaultManifest.cs
├── ManifestFile.cs
├── Nodsoft.MoltenObsidian.Manifest.csproj
├── moltenobsidian.manifest.schema.json
└── VaultManifestGenerator.cs
├── Vaults
├── Nodsoft.MoltenObsidian.Vaults.FileSystem
│ ├── version.json
│ ├── Data
│ │ ├── FileSystemVaultNote.cs
│ │ └── FileSystemVaultEntityBase.cs
│ ├── Nodsoft.MoltenObsidian.Vaults.FileSystem.csproj
│ └── VaultDependencyInjectionExtensions.cs
├── Nodsoft.MoltenObsidian.Vaults.InMemory
│ ├── version.json
│ ├── Nodsoft.MoltenObsidian.Vaults.InMemory.csproj
│ ├── Data
│ │ ├── InMemoryVaultNote.cs
│ │ └── InMemoryVaultEntityBase.cs
│ └── VaultDependencyInjectionExtensions.cs
├── Nodsoft.MoltenObsidian.Vaults.Ftp
│ ├── version.json
│ ├── Data
│ │ ├── FtpRemoteNote.cs
│ │ ├── FtpRemoteFolder.cs
│ │ └── FtpRemoteFile.cs
│ ├── Nodsoft.MoltenObsidian.Vaults.Ftp.csproj
│ ├── Utils.cs
│ └── VaultDependencyInjectionExtensions.cs
├── Nodsoft.MoltenObsidian.Vaults.Http
│ ├── version.json
│ ├── Nodsoft.MoltenObsidian.Vaults.Http.csproj
│ └── Data
│ │ ├── HttpRemoteNote.cs
│ │ ├── HttpRemoteFile.cs
│ │ └── HttpRemoteFolder.cs
├── Directory.Build.props
└── Nodsoft.MoltenObsidian.Vaults.Embedded
│ └── EmbeddedVault.cs
├── nodsoft_moltenobsidian_ssg_client
├── package.json
├── pnpm-lock.yaml
└── vault-manifest.ts
├── version.json
├── .github
└── workflows
│ ├── publish-release.yml
│ └── build.yml
├── .run
├── Generate docs manifest.run.xml
└── Generate site content.run.xml
├── LICENSE
├── Nodsoft.MoltenObsidian.slnx
└── Directory.Build.props
/nodsoft_moltenobsidian_web/vault/.obsidian/hotkeys.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/Nodsoft.MoltenObsidian.Tests/Assets/TestVault/.obsidian/app.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nodsoft/MoltenObsidian/HEAD/icon.png
--------------------------------------------------------------------------------
/Nodsoft.MoltenObsidian.Tests/Assets/TestVault/.obsidian/appearance.json:
--------------------------------------------------------------------------------
1 | {
2 | "accentColor": ""
3 | }
--------------------------------------------------------------------------------
/nodsoft_moltenobsidian_web/vault/.obsidian/community-plugins.json:
--------------------------------------------------------------------------------
1 | [
2 | "obsidian-shellcommands"
3 | ]
--------------------------------------------------------------------------------
/Nodsoft.MoltenObsidian/GlobalUsings.cs:
--------------------------------------------------------------------------------
1 | // Global using directives
2 |
3 | global using JetBrains.Annotations;
--------------------------------------------------------------------------------
/Samples/Nodsoft.MoltenObsidian.Samples.HttpWasm/Layout/MainLayout.razor:
--------------------------------------------------------------------------------
1 | @inherits LayoutComponentBase
2 |
3 | @Body
4 |
--------------------------------------------------------------------------------
/nodsoft_moltenobsidian_web/vault/.obsidian/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "showInlineTitle": false,
3 | "readableLineLength": false
4 | }
--------------------------------------------------------------------------------
/nodsoft_moltenobsidian_web/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
Current count: @currentCount
8 | 9 | 10 | 11 | @code { 12 | private int currentCount = 0; 13 | 14 | private void IncrementCount() 15 | { 16 | currentCount++; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /Samples/Nodsoft.MoltenObsidian.Samples.FtpServer/Pages/Counter.razor: -------------------------------------------------------------------------------- 1 | @page "/counter" 2 | 3 |Current count: @currentCount
8 | 9 | 10 | 11 | @code { 12 | private int currentCount = 0; 13 | 14 | private void IncrementCount() 15 | { 16 | currentCount++; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /version.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", 3 | "version": "1.1", 4 | "publicReleaseRefSpec": [ 5 | "^refs/heads/main", 6 | "^refs/heads/v\\d+(?:\\.\\d+)?$" 7 | ], 8 | "cloudBuild": { 9 | "buildNumber": { 10 | "enabled": true, 11 | "includeCommitId": { 12 | "when": "never" 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /nodsoft_moltenobsidian_web/vault/.obsidian/core-plugins.json: -------------------------------------------------------------------------------- 1 | [ 2 | "file-explorer", 3 | "global-search", 4 | "switcher", 5 | "graph", 6 | "backlink", 7 | "canvas", 8 | "outgoing-link", 9 | "tag-pane", 10 | "page-preview", 11 | "daily-notes", 12 | "templates", 13 | "note-composer", 14 | "command-palette", 15 | "slash-command", 16 | "editor-status", 17 | "bookmarks", 18 | "outline", 19 | "word-count", 20 | "file-recovery" 21 | ] -------------------------------------------------------------------------------- /Nodsoft.MoltenObsidian/Infrastructure/Markdown/Tags/Tag.cs: -------------------------------------------------------------------------------- 1 | using Markdig.Syntax.Inlines; 2 | 3 | namespace Nodsoft.MoltenObsidian.Infrastructure.Markdown.Tags; 4 | 5 | ///Sorry, there's nothing at this address.
10 |Sorry, there's nothing at this address.
10 |Sorry, there's nothing at this address.
10 |Sorry, there's nothing at this address.
10 |Sorry, there's nothing at this address.
10 |Nothing was found at path @ctx.Path.
An error occured while trying to access @ctx.Path :
@ctx.Exception.Message
14 |This component demonstrates fetching data from a service.
10 | 11 | @if (forecasts == null) 12 | { 13 |14 | Loading... 15 |
16 | } 17 | else 18 | { 19 || Date | 23 |Temp. (C) | 24 |Temp. (F) | 25 |Summary | 26 |
|---|---|---|---|
| @forecast.Date.ToShortDateString() | 33 |@forecast.TemperatureC | 34 |@forecast.TemperatureF | 35 |@forecast.Summary | 36 |
This component demonstrates fetching data from the server.
9 | 10 | @if (forecasts == null) 11 | { 12 |13 | Loading... 14 |
15 | } 16 | else 17 | { 18 || Date | 22 |Temp. (C) | 23 |Temp. (F) | 24 |Summary | 25 |
|---|---|---|---|
| @forecast.Date.ToShortDateString() | 32 |@forecast.TemperatureC | 33 |@forecast.TemperatureF | 34 |@forecast.Summary | 35 |
Editing path: @(EditPath ?? "*null*")
24 | Request ID:
25 | @Model.RequestId
26 |
31 | Swapping to the 32 | Development environment displays detailed information about the error that occurred. 33 |
34 |35 | The Development environment shouldn't be enabled for deployed applications. 36 | It can result in displaying sensitive information from exceptions to end users. 37 | For local debugging, enable the 38 | Development environment by setting the 39 | ASPNETCORE_ENVIRONMENT environment variable to 40 | Development 41 | and restarting the app. 42 |
43 |
24 | Request ID: @Model.RequestId
25 |
30 | Swapping to the Development environment displays detailed information about the error that occurred. 31 |
32 |33 | The Development environment shouldn't be enabled for deployed applications. 34 | It can result in displaying sensitive information from exceptions to end users. 35 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 36 | and restarting the app. 37 |
38 |Page not found
31 |Oh dear! It looks like the page you are looking for doesn't exist :
34 | 35 |
37 |
40 | Perhaps there is a typo in the URI, or the page has been removed.
41 | Try going back to the Home page, or browse the site using the navigation menu.
42 |