diff --git a/main.ts b/main.ts index b89412a..6784e9c 100644 --- a/main.ts +++ b/main.ts @@ -177,7 +177,7 @@ class HtmlView extends FileView { } canAcceptExtension(extension: string): boolean { - return extension === "html"; + return extension === "html" || extension === "htm"; } async onLoadFile(file: TFile): Promise { @@ -258,7 +258,7 @@ export default class HtmlDocsPlugin extends Plugin { VIEW_TYPE_HTML, (leaf: WorkspaceLeaf) => new HtmlView(leaf), ); - this.registerExtensions(["html"], VIEW_TYPE_HTML); + this.registerExtensions(["html", "htm"], VIEW_TYPE_HTML); this.registerExistingHtmlTabNavigation(); this.registerThemeRefresh(); @@ -267,7 +267,11 @@ export default class HtmlDocsPlugin extends Plugin { throw new Error("HTML Docs: app.embedRegistry is unavailable; cannot register HTML embeds."); } embedRegistry.registerExtension("html", (context, file) => new HtmlEmbed(context.containerEl, this, file)); - this.register(() => embedRegistry.unregisterExtension("html")); + embedRegistry.registerExtension("htm", (context, file) => new HtmlEmbed(context.containerEl, this, file)); + this.register(() => { + embedRegistry.unregisterExtension("html"); + embedRegistry.unregisterExtension("htm"); + }); // Obsidian hides files with unrecognized extensions in the file // explorer unless "Show all file types" is on; registering the @@ -359,7 +363,7 @@ export default class HtmlDocsPlugin extends Plugin { const file = this.app.metadataCache.getFirstLinkpathDest(linkpath, sourcePath) ?? this.app.vault.getAbstractFileByPath(linkpath); - return file instanceof TFile && file.extension === "html" ? file : null; + return file instanceof TFile && (file.extension === "html" || file.extension === "htm") ? file : null; } private findOpenHtmlLeaf(file: TFile): WorkspaceLeaf | null { diff --git a/test/test.sh b/test/test.sh index 167c99a..3cbfb1a 100755 --- a/test/test.sh +++ b/test/test.sh @@ -447,9 +447,9 @@ check "theme class re-render flips scheme" "$(echo "$THEME_RERENDER" | jq -r '.a check "theme class re-render swaps blob" "$(echo "$THEME_RERENDER" | jq -r .rerendered)" "true" check "theme class test restores classes" "$(echo "$THEME_RERENDER" | jq -r .restored)" "true" check ".html routes to html-docs view" "$(echo "$REGISTRY" | jq -r .htmlViewType)" "html-docs" -check ".htm is not registered" "$(echo "$REGISTRY" | jq -r .htmViewType)" "null" +check ".htm routes to html-docs view" "$(echo "$REGISTRY" | jq -r .htmViewType)" "html-docs" check ".html embed registered" "$(echo "$REGISTRY" | jq -r .htmlEmbedRegistered)" "true" -check ".htm embed not registered" "$(echo "$REGISTRY" | jq -r .htmEmbedRegistered)" "false" +check ".htm embed registered" "$(echo "$REGISTRY" | jq -r .htmEmbedRegistered)" "true" check "open existing html tab from link" "$(echo "$DEDUPED_NAVIGATION" | jq -r .htmlLeafCount)" "1" check "existing html tab is focused" "$(echo "$DEDUPED_NAVIGATION" | jq -r .activeFile)" "$FIXTURE_REL" check "deferred html state is reused" "$(echo "$DEFERRED_STATE_NAVIGATION" | jq -r .activeIsFakeDeferredLeaf)" "true"