Changes
7 changed files (+102/-11)
-
-
@@ -5,6 +5,8 @@import * as yamlFrontmatter from "../deps/deno.land/std/front_matter/yaml.ts"; import type * as Mdast from "../deps/esm.sh/mdast/types.ts"; import { fromMarkdown } from "../deps/esm.sh/mdast-util-from-markdown/mod.ts"; import { gfmFromMarkdown } from "../deps/esm.sh/mdast-util-gfm/mod.ts"; import { gfm } from "../deps/esm.sh/micromark-extension-gfm/mod.ts"; import type { ContentParser,
-
@@ -55,6 +57,13 @@ */frontmatter?: boolean; } function parseMarkdown(markdown: string | Uint8Array) { return fromMarkdown(markdown, { extensions: [gfm()], mdastExtensions: [gfmFromMarkdown()], }); } export class ObsidianMarkdownParser implements ContentParser { #frontmatter: boolean;
-
@@ -70,7 +79,7 @@if (!this.#frontmatter) { return { kind: "obsidian_markdown", content: fromMarkdown(bytes), content: parseMarkdown(bytes), }; }
-
@@ -91,7 +100,7 @@ language: lang || documentMetadata.language,}, documentContent: { kind: "obsidian_markdown", content: fromMarkdown(frontmatter.body), content: parseMarkdown(frontmatter.body), }, }; }
-
-
-
@@ -227,11 +227,13 @@ "https://esm.sh/v135/@shelf/fast-uslug@1.0.0": "46107bc12821cd3fd8605a1a837fc9288a254d8e4e406126059b5a6031695ad0","https://esm.sh/v135/@shelf/fast-uslug@1.0.0/denonext/fast-uslug.mjs": "d140f64633d7ede6e407d8b9ea3236b6c614da96c5fce03297f353e735106cf0", "https://esm.sh/v135/@ungap/structured-clone@1.2.0/denonext/structured-clone.mjs": "e683ab48ef7a3afd3bce9d1589d14177ddbdbf76fa1483524dddbeb6b142469f", "https://esm.sh/v135/boolbase@1.0.0/denonext/boolbase.mjs": "4e3bd67e9b1c5c55094eae98345d0107c6a44ef57bd3d4b9579698fa44722280", "https://esm.sh/v135/ccount@2.0.1/denonext/ccount.mjs": "7b32092651a866fcc992c028982ce5e911356da7653baa3febb1a8ccb93e30f8", "https://esm.sh/v135/character-entities@2.0.2/denonext/character-entities.mjs": "9e8657f056310ac3ca8058eaf96cef695ee13a4bf6c302674796a882464f305c", "https://esm.sh/v135/comma-separated-tokens@2.0.3/denonext/comma-separated-tokens.mjs": "ad5df8a36487e0a63d15bbbb6bab8b153e08583d0d5eb6d0058cd0fc619252e0", "https://esm.sh/v135/css-selector-parser@3.0.2/denonext/css-selector-parser.mjs": "4e3d11f08e30de48bdf107a92e992cd25ae845b1aee47bfe1d4fdd467241ab49", "https://esm.sh/v135/decode-named-character-reference@1.0.2/denonext/decode-named-character-reference.mjs": "1a5a8f9cbe302be478e964ab701be8644dbdfd4d8ce9f14de186cf84ee2a4bc1", "https://esm.sh/v135/devlop@1.1.0/denonext/devlop.mjs": "05fffa5a5168daec45963b784734dbc468758e130a340af874adfe0d457e394a", "https://esm.sh/v135/escape-string-regexp@5.0.0/denonext/escape-string-regexp.mjs": "6080dd39c43a11f999a41172a27b8c58572d747d8276c039d93d4be8b21747a5", "https://esm.sh/v135/estree-util-is-identifier-name@3.0.0/denonext/estree-util-is-identifier-name.mjs": "2d1080530be602e98e40807bbb760a08a017b315be59fe869b57afca5d667dca", "https://esm.sh/v135/github-slugger@2.0.0/denonext/github-slugger.mjs": "42ff6fe7ba4f63d8a048970e5a32cd5b0348905dde3f9e270d90e44a6e7635ae", "https://esm.sh/v135/hast-util-is-element@3.0.0": "d5b1ded368a5fbbcb79687bebcf33d94a37020bd82116c1bec69a012f17e5cf2",
-
@@ -244,18 +246,38 @@ "https://esm.sh/v135/hast-util-to-string@3.0.0": "efe413bc8cc4a67ac6b84b46e2fc2b0a79e4d7e4a31707cc8e60fab683b71080","https://esm.sh/v135/hast-util-to-string@3.0.0/denonext/hast-util-to-string.mjs": "4f7c061733fa8e99e3055e443c09a8d4e7f6e95ccd7a06b61d38682989bf6ba8", "https://esm.sh/v135/hast-util-whitespace@3.0.0/denonext/hast-util-whitespace.mjs": "b2988a87d03b42636bca6ebee778326993a23953ba6638973be17ce03100a357", "https://esm.sh/v135/inline-style-parser@0.2.2/denonext/inline-style-parser.mjs": "6b516634a2a716b57fa335bdaf9910c568a01330bfb7686ca534228aff59149e", "https://esm.sh/v135/longest-streak@3.1.0/denonext/longest-streak.mjs": "97b1d8c42d407e285971fea218d89a0404270c3b841a26ec62b83f62450ad573", "https://esm.sh/v135/markdown-table@3.0.3/denonext/markdown-table.mjs": "1dd9cb2d2d95fc440cc10489ac77bf979c944e76070997d962e05f627f45df0e", "https://esm.sh/v135/mdast-util-find-and-replace@3.0.1/denonext/mdast-util-find-and-replace.mjs": "dd75ab7e2d5060ab738fe5da72eeada37c295d5e506b6f8cae61d56dbd875446", "https://esm.sh/v135/mdast-util-from-markdown@2.0.0": "6faa1f66f444b738c9cf8a0e97084ff0ab08008e0236379c1f25c250dd8457f1", "https://esm.sh/v135/mdast-util-from-markdown@2.0.0/denonext/mdast-util-from-markdown.bundle.mjs": "df1b3422a8b65ba9b34a1ff13c48f4b4838e31abfe2b959f21d1d72aa9b8c576", "https://esm.sh/v135/mdast-util-from-markdown@2.0.0/denonext/mdast-util-from-markdown.mjs": "30a0b1f34afa2c946dc1b401a8f42d7e3cc85a9c5b77ce95276f028b24c10fcf", "https://esm.sh/v135/mdast-util-from-markdown@2.0.0?bundle": "78b9052f4160970c245355728fdb09133ecd8ba65b0562989b1312932bac14eb", "https://esm.sh/v135/mdast-util-gfm-autolink-literal@2.0.0/denonext/mdast-util-gfm-autolink-literal.mjs": "9c4e2596bb79f9847c77e93c43874bf601134d100a890bd3977c00ca317b09c6", "https://esm.sh/v135/mdast-util-gfm-footnote@2.0.0/denonext/mdast-util-gfm-footnote.mjs": "a011850c90af121e09623567b1a1abcaa6bebe5dafc618b2015cb2469c9058cd", "https://esm.sh/v135/mdast-util-gfm-strikethrough@2.0.0/denonext/mdast-util-gfm-strikethrough.mjs": "8d6128f5b2e3c6df5d5a17f5ef00a8d945218e591b3aa668cd146c9050b2664e", "https://esm.sh/v135/mdast-util-gfm-table@2.0.0/denonext/mdast-util-gfm-table.mjs": "03566441d8a21a76264c54db7f47de32a231296a8774e155d3de9e0a63468638", "https://esm.sh/v135/mdast-util-gfm-task-list-item@2.0.0/denonext/mdast-util-gfm-task-list-item.mjs": "a2542fbdb27957f27c170055b85feda34b48d38884afe7f565713f3cc2503301", "https://esm.sh/v135/mdast-util-gfm@3.0.0": "0bef9ce3d7db5662f2a43ba8c34586323d295eb9bde1db802ad9015ceb3c843e", "https://esm.sh/v135/mdast-util-gfm@3.0.0/denonext/mdast-util-gfm.mjs": "0a06fd1def4aadb5defc7f631f6c1d23f8598d57233cba19d4618229db70b10a", "https://esm.sh/v135/mdast-util-phrasing@4.0.0/denonext/mdast-util-phrasing.mjs": "ed30057d1949bdde664291eaa5e11ea8c765f573a5c38eba60b099ffd3612f42", "https://esm.sh/v135/mdast-util-to-hast@13.1.0": "3a712fec5d7f4696ec135556925c8c2f7480b21dc39bd96077550d06220d2ba8", "https://esm.sh/v135/mdast-util-to-hast@13.1.0/denonext/mdast-util-to-hast.bundle.mjs": "98233d354e40ecc412381732a5a6c907d9722bcc94dd955e6afad647170dbe37", "https://esm.sh/v135/mdast-util-to-hast@13.1.0/denonext/mdast-util-to-hast.mjs": "e6ab97ff3f6c94f6c7ccaba485dac8a4fdd5edae1b311ae295b409b462ff5001", "https://esm.sh/v135/mdast-util-to-hast@13.1.0?bundle": "ee4ad3ffeaa1df751318c7d17c17b7f52e22f7e0e01c0c4538a60dc68af015e6", "https://esm.sh/v135/mdast-util-to-markdown@2.1.0/denonext/mdast-util-to-markdown.mjs": "45752d146270661e71f91869eba6f6c434b3f564a005542d0e5dbebc8734e45e", "https://esm.sh/v135/mdast-util-to-string@4.0.0/denonext/mdast-util-to-string.mjs": "eda9725fc0c7dc0e7b56998d2d8e4f29312cc5493cb7834c70f32fab2609103b", "https://esm.sh/v135/mdast-util-toc@7.0.0": "b4628c5babae460fa3452c52fe2f5aa810b2790dd74a6606784febbe0cad6ce6", "https://esm.sh/v135/mdast-util-toc@7.0.0/denonext/mdast-util-toc.mjs": "533c8f1317129350db102e9116b48b03e12e327a203852bb3d16d5ffb217d07c", "https://esm.sh/v135/micromark-core-commonmark@2.0.0/denonext/micromark-core-commonmark.mjs": "29686a813f2fa7fc1801c9c6142f71e32e605e6cf8bb8a9afeab78c814f0216c", "https://esm.sh/v135/micromark-extension-gfm-autolink-literal@2.0.0/denonext/micromark-extension-gfm-autolink-literal.mjs": "3fee7a2d71d4a3ae46f0a7eeea45fb171e32e70a84d79dbe4602d0aad3ac6e51", "https://esm.sh/v135/micromark-extension-gfm-footnote@2.0.0/denonext/micromark-extension-gfm-footnote.mjs": "921d1bb352c7cff04be54613f5e5cce410a905ff8d70962604f6900cee46aefd", "https://esm.sh/v135/micromark-extension-gfm-strikethrough@2.0.0/denonext/micromark-extension-gfm-strikethrough.mjs": "acb141db23ac60d397308c959dcf595dda45357d74367103bdeb5ec01882d4d4", "https://esm.sh/v135/micromark-extension-gfm-table@2.0.0/denonext/micromark-extension-gfm-table.mjs": "eca8d545020ef80da88feb948fc626b6a902fc5a487481ba15deb42bbb2e075b", "https://esm.sh/v135/micromark-extension-gfm-tagfilter@2.0.0/denonext/micromark-extension-gfm-tagfilter.mjs": "6e6faebfc624e00c5af52026393372174a7415aab2bc1d7cc16f2541f2977ba3", "https://esm.sh/v135/micromark-extension-gfm-task-list-item@2.0.1/denonext/micromark-extension-gfm-task-list-item.mjs": "575d12647ea051e013593a551391a854e5b4dd69d6c594b20d8ec2a46fbbd7a1", "https://esm.sh/v135/micromark-extension-gfm@3.0.0": "7a25f597838e5849b3f542c9973c1147720cf0669d25d5c43ce37f2524acb079", "https://esm.sh/v135/micromark-extension-gfm@3.0.0/denonext/micromark-extension-gfm.mjs": "eaa65f2159d1e1eb993fec61d40c79ef55068d6fa8da92bbfa34259d10011112", "https://esm.sh/v135/micromark-factory-destination@2.0.0/denonext/micromark-factory-destination.mjs": "84dadab4182836ff8c4437e9a384a6e3488496848641c9868334d8a6b7658331", "https://esm.sh/v135/micromark-factory-label@2.0.0/denonext/micromark-factory-label.mjs": "0d4877dbb95c2bf635d48d8d44a243ab0c6830f68c76289c9d92730871b88170", "https://esm.sh/v135/micromark-factory-space@2.0.0/denonext/micromark-factory-space.mjs": "1ac7c90dec53f7f634767c5470c2dcf204f4df99ec318a27832786153d5c8110",
-
-
-
@@ -0,0 +1,5 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // // SPDX-License-Identifier: Apache-2.0 export * from "https://esm.sh/v135/mdast-util-gfm@3.0.0";
-
-
-
@@ -0,0 +1,5 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // // SPDX-License-Identifier: Apache-2.0 export * from "https://esm.sh/v135/micromark-extension-gfm@3.0.0";
-
-
-
@@ -2,11 +2,11 @@ - [x] Using Vault as a site structure- [ ] Markdown Parsing - [x] CommonMark - [ ] GitHub Flavored Markdown - [ ] ~~Strikethrough~~ - [ ] Task Lists - [ ] Footnotes - [ ] Autolinks - [ ] Tables - [x] Strikethrough - [x] Task Lists - [x] Footnotes - [x] Autolinks - [x] Tables - [ ] Diagrams (Mermaid) ... Maybe no support, as Mermaid's overall quality is questionable. - [ ] MathJax ... No support if it can't generate MathML at build time. - [ ] Syntax Highlighting
-
-
-
@@ -0,0 +1,25 @@## Strikethrough extension ~~This text is rendered with strikethrough~~. ## Task Lists extension - [x] Checked - [ ] Unchecked ## Footnotes extension This is a normal paragraph[^1]. [^1]: I'm not. ## Autolinks extension https://github.github.com/gfm/ ## Tables extension | Language | Execution | | :--------: | ----------------- | | JavaScript | Interpreter & JIT | | Dart | AOT or JIT |
-
-
-
@@ -12,6 +12,7 @@ jsxs,} from "../../../deps/deno.land/x/nano_jsx/jsx-runtime/index.ts"; import { toHast } from "../../../deps/esm.sh/mdast-util-to-hast/mod.ts"; import { toJsxRuntime } from "../../../deps/esm.sh/hast-util-to-jsx-runtime/mod.ts"; import * as HastToJSXRuntime from "../../../deps/esm.sh/hast-util-to-jsx-runtime/mod.ts"; import type { Document, DocumentTree } from "../../../types.ts"; import type { ObsidianMarkdownDocument } from "../../../content_parser/obsidian_markdown.ts";
-
@@ -29,13 +30,37 @@ import * as Toc from "./organisms/toc.tsx";import * as SiteLayout from "./templates/site_layout.tsx"; import * as JSONCanvasRenderer from "./json_canvas_renderer.tsx"; function nanoifyProps(props: HastToJSXRuntime.Props): HastToJSXRuntime.Props { const ret: HastToJSXRuntime.Props = {}; for (const key in props) { switch (props[key]) { // nanojsx cannot handle falsy attribute correctly case false: case null: break; // ideal `true` for boolean attribute is empty string, but nanojsx emits `"true"`. case true: ret[key] = ""; break; default: ret[key] = props[key]; break; } } return ret; } function toNode(hast: ReturnType<typeof toHast>) { return toJsxRuntime(hast, { Fragment, // @ts-ignore: library type being unnecessary narrow jsx, // @ts-ignore: library type being unnecessary narrow jsxs, jsx(type, props, key) { return jsx(type, nanoifyProps(props), key || ""); }, jsxs(type, props, key) { return jsxs(type, nanoifyProps(props), key || ""); }, }); }
-