@plebeiantech/lat.md 0.12.3-fork.2 → 0.12.3-fork.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -2
- package/dist/src/cli/agent-invocation.d.ts +6 -0
- package/dist/src/cli/agent-invocation.js +23 -0
- package/dist/src/cli/checklist-menu.d.ts +2 -1
- package/dist/src/cli/checklist-menu.js +3 -2
- package/dist/src/cli/comment-guard.d.ts +14 -0
- package/dist/src/cli/comment-guard.js +10 -33
- package/dist/src/cli/comment-reminder.d.ts +65 -6
- package/dist/src/cli/comment-reminder.js +164 -28
- package/dist/src/cli/fork-instructions.d.ts +20 -0
- package/dist/src/cli/fork-instructions.js +184 -0
- package/dist/src/cli/fork-scaffold.d.ts +106 -0
- package/dist/src/cli/fork-scaffold.js +490 -0
- package/dist/src/cli/graph.d.ts +1 -1
- package/dist/src/cli/hook.d.ts +26 -0
- package/dist/src/cli/hook.js +115 -64
- package/dist/src/cli/index.js +166 -64
- package/dist/src/cli/init-preferences.d.ts +4 -0
- package/dist/src/cli/init-preferences.js +36 -0
- package/dist/src/cli/init.d.ts +2 -1
- package/dist/src/cli/init.js +107 -50
- package/dist/src/cli/reindex.d.ts +1 -1
- package/dist/src/cli/reindex.js +7 -10
- package/dist/src/cli/search.d.ts +14 -4
- package/dist/src/cli/search.js +116 -100
- package/dist/src/cli/ui-build-server.d.ts +12 -0
- package/dist/src/cli/ui-build-server.js +26 -0
- package/dist/src/cli/ui-build.d.ts +4 -0
- package/dist/src/cli/ui-build.js +13 -0
- package/dist/src/cli/ui.d.ts +1 -1
- package/dist/src/cli/ui.js +18 -2
- package/dist/src/fork/antigravity-hook.d.ts +47 -0
- package/dist/src/fork/antigravity-hook.js +424 -0
- package/dist/src/fork/antigravity-init.d.ts +17 -0
- package/dist/src/fork/antigravity-init.js +124 -0
- package/dist/src/fork/upstream-drift-cli.js +2 -0
- package/dist/src/fork/upstream-drift.d.ts +26 -0
- package/dist/src/fork/upstream-drift.js +185 -0
- package/dist/src/fork/upstream-guard-cli.d.ts +1 -0
- package/dist/src/fork/upstream-guard-cli.js +2 -0
- package/dist/src/fork/upstream-guard.d.ts +72 -0
- package/dist/src/fork/upstream-guard.js +445 -0
- package/dist/src/graph-export.d.ts +2 -0
- package/dist/src/graph-export.js +38 -19
- package/dist/src/knowledge/claude-memory.d.ts +1 -0
- package/dist/src/knowledge/claude-memory.js +33 -4
- package/dist/src/knowledge/index.js +2 -2
- package/dist/src/mcp/server.js +34 -18
- package/dist/src/search/cache.d.ts +3 -0
- package/dist/src/search/cache.js +104 -0
- package/dist/src/search/chunks.d.ts +23 -0
- package/dist/src/search/chunks.js +200 -0
- package/dist/src/search/db.d.ts +28 -16
- package/dist/src/search/db.js +106 -40
- package/dist/src/search/embedder.d.ts +2 -1
- package/dist/src/search/embedder.js +7 -6
- package/dist/src/search/index.d.ts +6 -2
- package/dist/src/search/index.js +176 -53
- package/dist/src/search/lexical.d.ts +6 -0
- package/dist/src/search/lexical.js +36 -0
- package/dist/src/search/lock.d.ts +5 -0
- package/dist/src/search/lock.js +45 -0
- package/dist/src/search/query.d.ts +26 -0
- package/dist/src/search/query.js +103 -0
- package/dist/src/search/search.d.ts +17 -7
- package/dist/src/search/search.js +164 -14
- package/dist/src/search/types.d.ts +15 -0
- package/dist/src/search/types.js +1 -0
- package/dist/src/view/client/assets/GraphView-0bPe_Q5I.js +456 -0
- package/dist/src/view/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/src/view/client/assets/MarkdownEditor-1_8mI7lO.js +28 -0
- package/dist/src/view/client/assets/OrbitControls-DwcpQNja.js +1 -0
- package/dist/src/view/client/assets/STLLoader-CLWTKt5i.js +1 -0
- package/dist/src/view/client/assets/_commonjsHelpers-CqkleIqs.js +1 -0
- package/dist/src/view/client/assets/abnfDiagram-VCTEODGH-BLIuikwY.js +1 -0
- package/dist/src/view/client/assets/arc-D4PzdKSA.js +1 -0
- package/dist/src/view/client/assets/architectureDiagram-5GKGNRK7-35Egww62.js +36 -0
- package/dist/src/view/client/assets/blockDiagram-I7D4REHJ-tqNy53-W.js +129 -0
- package/dist/src/view/client/assets/c4Diagram-7LVT6UL2-DZ_GcD9K.js +38 -0
- package/dist/src/view/client/assets/channel-DensupHE.js +1 -0
- package/dist/src/view/client/assets/chunk-2Q5K7J3B-BUjq4Q7b.js +1 -0
- package/dist/src/view/client/assets/chunk-5VM5RSS4-BsIix6I5.js +15 -0
- package/dist/src/view/client/assets/chunk-F27PBJKO-Dxo7UheG.js +1 -0
- package/dist/src/view/client/assets/chunk-IMKFNOWR-C5lzUDK5.js +231 -0
- package/dist/src/view/client/assets/chunk-JWPE2WC7-qCHQlKfY.js +1 -0
- package/dist/src/view/client/assets/chunk-POPQ4Y6H-CDPKw21I.js +1 -0
- package/dist/src/view/client/assets/chunk-SVP7TREG-CD_C-9M-.js +88 -0
- package/dist/src/view/client/assets/chunk-TICWLB2K-ZMatRvad.js +206 -0
- package/dist/src/view/client/assets/chunk-XXDRQBXY-dDs4quwg.js +1 -0
- package/dist/src/view/client/assets/classDiagram-ZZMXUADV-CV7ArHLW.js +1 -0
- package/dist/src/view/client/assets/classDiagram-v2-VYDZK3BY-CV7ArHLW.js +1 -0
- package/dist/src/view/client/assets/cose-bilkent-JH36ORCC-CwH3-T1N.js +1 -0
- package/dist/src/view/client/assets/cynefin-OW5HDTMX-DodS6r00.js +166 -0
- package/dist/src/view/client/assets/cynefinDiagram-5FMLGOSQ-D7WDoy0K.js +62 -0
- package/dist/src/view/client/assets/cytoscape.esm-DzSz-X2X.js +321 -0
- package/dist/src/view/client/assets/dagre-GXQ25YYZ-yc2GTi5h.js +4 -0
- package/dist/src/view/client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/src/view/client/assets/diagram-S7CK7UJ4-CEP0FGL8.js +30 -0
- package/dist/src/view/client/assets/diagram-UQ7AKVKN-BZIEojBf.js +41 -0
- package/dist/src/view/client/assets/diagram-VSXAHHWV-BSB6COmM.js +3 -0
- package/dist/src/view/client/assets/diagram-VX7I27RA-DqfR3psV.js +24 -0
- package/dist/src/view/client/assets/diagram-Z3DM3KII-B79t0s5P.js +24 -0
- package/dist/src/view/client/assets/ebnfDiagram-PWID7BFC-CqbCQhE1.js +1 -0
- package/dist/src/view/client/assets/erDiagram-RLTQ6QDP-BVfoYIhJ.js +99 -0
- package/dist/src/view/client/assets/flowDiagram-HODETNUW-Dfyjm6ib.js +168 -0
- package/dist/src/view/client/assets/ganttDiagram-EL5Y4UJY-Da9ta_k3.js +292 -0
- package/dist/src/view/client/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dist/src/view/client/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dist/src/view/client/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dist/src/view/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
- package/dist/src/view/client/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dist/src/view/client/assets/gitGraphDiagram-WWUBYQGX-BDqlQ6LG.js +106 -0
- package/dist/src/view/client/assets/index-BnENo9bV.js +1 -0
- package/dist/src/view/client/assets/index-DG0Ez15D.css +1 -0
- package/dist/src/view/client/assets/index-heNSjszK.js +13 -0
- package/dist/src/view/client/assets/infoDiagram-27XIBGKW-CozIUYm1.js +2 -0
- package/dist/src/view/client/assets/init-Gi6I4Gst.js +1 -0
- package/dist/src/view/client/assets/ishikawaDiagram-5VMMS53U-tkBLr-Tn.js +70 -0
- package/dist/src/view/client/assets/journeyDiagram-3NMN7TZE-Dcd_Ofwc.js +139 -0
- package/dist/src/view/client/assets/kanban-definition-UXKFOSKX-CQvZmdAf.js +89 -0
- package/dist/src/view/client/assets/katex-HP8lGamR.js +257 -0
- package/dist/src/view/client/assets/layout-BxuGL0Ip.js +1 -0
- package/dist/src/view/client/assets/linear-D8tR6G5K.js +1 -0
- package/dist/src/view/client/assets/logo-RR_KBOAT.svg +149 -0
- package/dist/src/view/client/assets/maplibre-gl-CDX6Zuow.js +800 -0
- package/dist/src/view/client/assets/mermaid.core-BlHZooLK.js +310 -0
- package/dist/src/view/client/assets/mindmap-definition-YA3MSWOX-BqvVz5lC.js +96 -0
- package/dist/src/view/client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/src/view/client/assets/pegDiagram-XKGWAZYB-BkbOOTxX.js +1 -0
- package/dist/src/view/client/assets/pieDiagram-E7YTZNPT-BToTpG0m.js +39 -0
- package/dist/src/view/client/assets/quadrantDiagram-AXDQQJYC-CerD2TfT.js +7 -0
- package/dist/src/view/client/assets/railroadDiagram-O6MQD6OU-B2oElPYD.js +1 -0
- package/dist/src/view/client/assets/requirementDiagram-BXWQKSXE-BCL8RGFd.js +84 -0
- package/dist/src/view/client/assets/sankeyDiagram-P5KCCOFB-BqnkNRPm.js +40 -0
- package/dist/src/view/client/assets/sequenceDiagram-WJ2MYXX4-DKSKYknp.js +162 -0
- package/dist/src/view/client/assets/sizeCapture-INFHLROL-D8reQ7IM.js +1 -0
- package/dist/src/view/client/assets/stateDiagram-D77RDMKH-B-Eme-BN.js +1 -0
- package/dist/src/view/client/assets/stateDiagram-v2-MP3YSRHH-yXL-Y-Ym.js +1 -0
- package/dist/src/view/client/assets/swimlanes-42K2YHIH-lK0158X4.js +1 -0
- package/dist/src/view/client/assets/swimlanesDiagram-VR7AAH4N-CGn5WOGw.js +8 -0
- package/dist/src/view/client/assets/three.module-PDSP0dbZ.js +4108 -0
- package/dist/src/view/client/assets/timeline-definition-24CTP7MA-imh-edhJ.js +120 -0
- package/dist/src/view/client/assets/vennDiagram-4TSXK5OY-Ixwhcd6r.js +34 -0
- package/dist/src/view/client/assets/wardleyDiagram-VM6X3IG4-Cvr_zzKI.js +78 -0
- package/dist/src/view/client/assets/xychartDiagram-S5SC5T6Z-BvcmHKlQ.js +7 -0
- package/dist/src/view/client/index.html +2 -2
- package/dist/src/view/client-shell.d.ts +2 -0
- package/dist/src/view/client-shell.js +5 -0
- package/dist/src/view/diagnostics.d.ts +3 -2
- package/dist/src/view/diagnostics.js +49 -58
- package/dist/src/view/document-edit.d.ts +8 -0
- package/dist/src/view/document-edit.js +25 -0
- package/dist/src/view/document-route.d.ts +14 -0
- package/dist/src/view/document-route.js +126 -0
- package/dist/src/view/document-tree.d.ts +18 -0
- package/dist/src/view/document-tree.js +139 -0
- package/dist/src/view/external-document-tree.d.ts +3 -0
- package/dist/src/view/external-document-tree.js +674 -0
- package/dist/src/view/git-diff.js +205 -1
- package/dist/src/view/git.js +1 -1
- package/dist/src/view/graph.d.ts +7 -0
- package/dist/src/view/graph.js +267 -0
- package/dist/src/view/highlight.d.ts +10 -2
- package/dist/src/view/highlight.js +50648 -3166
- package/dist/src/view/markdown.d.ts +8 -3
- package/dist/src/view/markdown.js +311 -41
- package/dist/src/view/preindexed-search.d.ts +15 -0
- package/dist/src/view/preindexed-search.js +25 -0
- package/dist/src/view/protocol.d.ts +95 -6
- package/dist/src/view/protocol.js +1 -1
- package/dist/src/view/publication.d.ts +2 -0
- package/dist/src/view/publication.js +78 -0
- package/dist/src/view/references.d.ts +13 -26
- package/dist/src/view/references.js +150 -119
- package/dist/src/view/repository.d.ts +18 -5
- package/dist/src/view/repository.js +269 -27
- package/dist/src/view/request-security.d.ts +5 -0
- package/dist/src/view/request-security.js +46 -0
- package/dist/src/view/search-result.d.ts +4 -0
- package/dist/src/view/search-result.js +25 -0
- package/dist/src/view/search.d.ts +7 -2
- package/dist/src/view/search.js +23 -33
- package/dist/src/view/server-build.d.ts +21 -0
- package/dist/src/view/server-build.js +145 -0
- package/dist/src/view/server-deployment.d.ts +31 -0
- package/dist/src/view/server-deployment.js +94 -0
- package/dist/src/view/server-index-worker.d.ts +6 -0
- package/dist/src/view/server-index-worker.js +14 -0
- package/dist/src/view/server.d.ts +14 -2
- package/dist/src/view/server.js +254 -51
- package/dist/src/view/source-target.d.ts +10 -0
- package/dist/src/view/source-target.js +43 -0
- package/dist/src/view/static-build.d.ts +32 -0
- package/dist/src/view/static-build.js +741 -0
- package/dist/src/view/static-protocol.d.ts +47 -0
- package/dist/src/view/static-protocol.js +15 -0
- package/dist/src/view/store.d.ts +26 -3
- package/dist/src/view/store.js +325 -44
- package/dist/src/view/table-of-contents.d.ts +9 -0
- package/dist/src/view/table-of-contents.js +83 -0
- package/dist/src/view/vercel-build.d.ts +24 -0
- package/dist/src/view/vercel-build.js +140 -0
- package/dist/src/view/vercel-server-build.d.ts +10 -0
- package/dist/src/view/vercel-server-build.js +61 -0
- package/dist/vendor/lat.md-server/cli.d.ts +2 -0
- package/dist/vendor/lat.md-server/cli.js +12 -0
- package/dist/vendor/lat.md-server/index.d.ts +38 -0
- package/dist/vendor/lat.md-server/index.js +128 -0
- package/package.json +72 -25
- package/plugins/lat-md/README.md +61 -0
- package/plugins/lat-md/hooks.json +38 -0
- package/plugins/lat-md/plugin.json +9 -0
- package/plugins/lat-md/rules/AGENTS.md +118 -0
- package/plugins/lat-md/skills/lat-md/SKILL.md +178 -0
- package/plugins/lat-md/skills/lat-md-conventions/SKILL.md +182 -0
- package/templates/AGENTS.md +19 -20
- package/templates/cursor-rules.md +14 -7
- package/templates/fork/conventions.md +173 -0
- package/templates/opencode-plugin.ts +9 -9
- package/templates/pi-extension.ts +11 -11
- package/templates/skill/SKILL.md +28 -17
- package/dist/src/cli/check-frontmatter.d.ts +0 -12
- package/dist/src/cli/check-frontmatter.js +0 -44
- package/dist/src/cli/check-mode.d.ts +0 -6
- package/dist/src/cli/check-mode.js +0 -303
- package/dist/src/cli/check-status.d.ts +0 -74
- package/dist/src/cli/check-status.js +0 -217
- package/dist/src/cli/check.d.ts +0 -45
- package/dist/src/cli/check.js +0 -777
- package/dist/src/cli/context.d.ts +0 -11
- package/dist/src/cli/context.js +0 -58
- package/dist/src/cli/expand.d.ts +0 -8
- package/dist/src/cli/expand.js +0 -94
- package/dist/src/cli/gen-index.d.ts +0 -45
- package/dist/src/cli/gen-index.js +0 -235
- package/dist/src/cli/link-scheme.d.ts +0 -54
- package/dist/src/cli/link-scheme.js +0 -101
- package/dist/src/cli/locate.d.ts +0 -2
- package/dist/src/cli/locate.js +0 -17
- package/dist/src/cli/refs.d.ts +0 -22
- package/dist/src/cli/refs.js +0 -229
- package/dist/src/cli/section.d.ts +0 -43
- package/dist/src/cli/section.js +0 -252
- package/dist/src/cli/select-menu.d.ts +0 -13
- package/dist/src/cli/select-menu.js +0 -100
- package/dist/src/code-refs.d.ts +0 -17
- package/dist/src/code-refs.js +0 -277
- package/dist/src/config.d.ts +0 -29
- package/dist/src/config.js +0 -83
- package/dist/src/context.d.ts +0 -23
- package/dist/src/context.js +0 -11
- package/dist/src/extensions/wiki-link/from-markdown.d.ts +0 -5
- package/dist/src/extensions/wiki-link/from-markdown.js +0 -34
- package/dist/src/extensions/wiki-link/index.d.ts +0 -4
- package/dist/src/extensions/wiki-link/index.js +0 -3
- package/dist/src/extensions/wiki-link/syntax.d.ts +0 -14
- package/dist/src/extensions/wiki-link/syntax.js +0 -121
- package/dist/src/extensions/wiki-link/to-markdown.d.ts +0 -5
- package/dist/src/extensions/wiki-link/to-markdown.js +0 -28
- package/dist/src/extensions/wiki-link/types.d.ts +0 -34
- package/dist/src/format.d.ts +0 -8
- package/dist/src/format.js +0 -43
- package/dist/src/init-version.d.ts +0 -10
- package/dist/src/init-version.js +0 -49
- package/dist/src/lattice.d.ts +0 -108
- package/dist/src/lattice.js +0 -816
- package/dist/src/parser.d.ts +0 -3
- package/dist/src/parser.js +0 -18
- package/dist/src/source-parser.d.ts +0 -27
- package/dist/src/source-parser.js +0 -916
- package/dist/src/untrusted.d.ts +0 -24
- package/dist/src/untrusted.js +0 -97
- package/dist/src/view/client/assets/index-B0n0u03y.css +0 -1
- package/dist/src/view/client/assets/index-xm2_px4q.js +0 -23
- package/dist/src/walk.d.ts +0 -18
- package/dist/src/walk.js +0 -27
- /package/dist/src/{extensions/wiki-link/types.js → fork/upstream-drift-cli.d.ts} +0 -0
|
@@ -1,111 +1,21 @@
|
|
|
1
1
|
import { relative, resolve } from 'node:path';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { toPosix } from '../walk.js';
|
|
2
|
+
import { buildFileIndex, buildSectionSlugIndex, flattenSections, resolveRef, } from '@plebeiantech/lat.md-core/lattice-model';
|
|
3
|
+
import { analyzeMarkdownFile, } from '@plebeiantech/lat.md-core/markdown-analysis';
|
|
4
|
+
import { toPosix } from '@plebeiantech/lat.md-core/path';
|
|
6
5
|
import { renderMarkdown } from './markdown.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return node.data.alias ?? node.value;
|
|
10
|
-
if ('value' in node && typeof node.value === 'string')
|
|
11
|
-
return node.value;
|
|
12
|
-
if (node.type === 'image')
|
|
13
|
-
return node.alt ?? '';
|
|
14
|
-
if (!('children' in node) || !Array.isArray(node.children))
|
|
15
|
-
return '';
|
|
16
|
-
return node.children
|
|
17
|
-
.map((child) => inlineText(child))
|
|
18
|
-
.join('');
|
|
19
|
-
}
|
|
20
|
-
function paragraphs(content, tree) {
|
|
21
|
-
const byLine = new Map();
|
|
22
|
-
visit(tree, 'paragraph', (node) => {
|
|
23
|
-
const start = node.position?.start.line;
|
|
24
|
-
const end = node.position?.end.line;
|
|
25
|
-
if (!start || !end)
|
|
26
|
-
return;
|
|
27
|
-
const text = inlineText(node).replace(/\s+/g, ' ').trim();
|
|
28
|
-
const startOffset = node.position?.start.offset;
|
|
29
|
-
const endOffset = node.position?.end.offset;
|
|
30
|
-
const paragraph = {
|
|
31
|
-
markdown: startOffset === undefined || endOffset === undefined
|
|
32
|
-
? text
|
|
33
|
-
: content.slice(startOffset, endOffset),
|
|
34
|
-
startLine: start,
|
|
35
|
-
text,
|
|
36
|
-
};
|
|
37
|
-
for (let line = start; line <= end; line++)
|
|
38
|
-
byLine.set(line, paragraph);
|
|
39
|
-
});
|
|
40
|
-
return byLine;
|
|
41
|
-
}
|
|
42
|
-
function markdownLinks(tree) {
|
|
43
|
-
const definitions = new Map();
|
|
44
|
-
visit(tree, 'definition', (node) => {
|
|
45
|
-
definitions.set(node.identifier.toLowerCase(), node.url);
|
|
46
|
-
});
|
|
47
|
-
const links = [];
|
|
48
|
-
visit(tree, (node) => {
|
|
49
|
-
if (node.type !== 'link' &&
|
|
50
|
-
node.type !== 'image' &&
|
|
51
|
-
node.type !== 'linkReference' &&
|
|
52
|
-
node.type !== 'imageReference') {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
const line = node.position?.start.line;
|
|
56
|
-
if (!line)
|
|
57
|
-
return;
|
|
58
|
-
const url = node.type === 'link' || node.type === 'image'
|
|
59
|
-
? node.url
|
|
60
|
-
: definitions.get(node.identifier.toLowerCase());
|
|
61
|
-
if (url) {
|
|
62
|
-
links.push({
|
|
63
|
-
kind: node.type === 'image' || node.type === 'imageReference'
|
|
64
|
-
? 'image'
|
|
65
|
-
: 'link',
|
|
66
|
-
line,
|
|
67
|
-
url,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
return links;
|
|
72
|
-
}
|
|
6
|
+
import { viewSourceTarget, rewriteLocalFileLink } from './source-target.js';
|
|
7
|
+
import { documentUrl as routeDocumentUrl } from './document-route.js';
|
|
73
8
|
/** Parse one Markdown file once into every structure needed by the view store. */
|
|
74
9
|
export function parseViewMarkdownFile(absolutePath, content, latDir, projectRoot) {
|
|
75
|
-
|
|
76
|
-
return {
|
|
77
|
-
absolutePath,
|
|
78
|
-
content,
|
|
79
|
-
path: toPosix(relative(latDir, absolutePath)),
|
|
80
|
-
projectPath: toPosix(relative(projectRoot, absolutePath)),
|
|
81
|
-
tree,
|
|
82
|
-
sections: parseSections(absolutePath, content, projectRoot, tree),
|
|
83
|
-
wikiRefs: extractRefs(absolutePath, content, projectRoot, tree),
|
|
84
|
-
paragraphs: paragraphs(content, tree),
|
|
85
|
-
markdownLinks: markdownLinks(tree),
|
|
86
|
-
validationLinks: extractLinks(content, tree),
|
|
87
|
-
};
|
|
10
|
+
return analyzeMarkdownFile(absolutePath, content, latDir, projectRoot);
|
|
88
11
|
}
|
|
89
12
|
function contextMarkdownLink(requestedPath, url) {
|
|
90
|
-
|
|
91
|
-
url.startsWith('//') ||
|
|
92
|
-
/^[a-z][a-z\d+.-]*:/i.test(url)) {
|
|
93
|
-
return url;
|
|
94
|
-
}
|
|
95
|
-
const encodedPath = requestedPath
|
|
96
|
-
.split('/')
|
|
97
|
-
.map(encodeURIComponent)
|
|
98
|
-
.join('/');
|
|
99
|
-
const resolved = new URL(url, `http://lat.local/docs/${encodedPath}`);
|
|
100
|
-
return `${resolved.pathname}${resolved.search}${resolved.hash}`;
|
|
13
|
+
return rewriteLocalFileLink(url, requestedPath);
|
|
101
14
|
}
|
|
102
15
|
function documentUrl(latDir, projectRoot, section) {
|
|
103
16
|
const path = toPosix(relative(latDir, resolve(projectRoot, section.filePath)));
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
? `#${encodeURIComponent(section.githubSlug)}`
|
|
107
|
-
: '';
|
|
108
|
-
return `/docs/${encoded}${fragment}`;
|
|
17
|
+
const fragment = section.githubSlug ? section.githubSlug : '';
|
|
18
|
+
return routeDocumentUrl(path, fragment);
|
|
109
19
|
}
|
|
110
20
|
function breadcrumbs(latDir, projectRoot, section) {
|
|
111
21
|
const path = toPosix(relative(latDir, resolve(projectRoot, section.filePath))).replace(/\.md$/i, '');
|
|
@@ -115,7 +25,7 @@ function sourceLineUrl(path, line) {
|
|
|
115
25
|
const encoded = path.split('/').map(encodeURIComponent).join('/');
|
|
116
26
|
return `/code/${encoded}?at=${line}`;
|
|
117
27
|
}
|
|
118
|
-
function linkedSection(url, sourcePath, sectionsByPath) {
|
|
28
|
+
export function linkedSection(url, sourcePath, sectionsByPath) {
|
|
119
29
|
if (url.startsWith('//') || /^[a-z][a-z\d+.-]*:/i.test(url))
|
|
120
30
|
return null;
|
|
121
31
|
const encodedSourcePath = sourcePath
|
|
@@ -124,20 +34,19 @@ function linkedSection(url, sourcePath, sectionsByPath) {
|
|
|
124
34
|
.join('/');
|
|
125
35
|
let destination;
|
|
126
36
|
try {
|
|
127
|
-
destination = new URL(url, `http://lat.local
|
|
37
|
+
destination = new URL(url, `http://lat.local/${encodedSourcePath}`);
|
|
128
38
|
}
|
|
129
39
|
catch {
|
|
130
40
|
return null;
|
|
131
41
|
}
|
|
132
|
-
if (destination.origin !== 'http://lat.local'
|
|
133
|
-
!destination.pathname.startsWith('/docs/')) {
|
|
42
|
+
if (destination.origin !== 'http://lat.local') {
|
|
134
43
|
return null;
|
|
135
44
|
}
|
|
136
45
|
let path;
|
|
137
46
|
let fragment;
|
|
138
47
|
try {
|
|
139
48
|
path = destination.pathname
|
|
140
|
-
.slice(
|
|
49
|
+
.slice(1)
|
|
141
50
|
.split('/')
|
|
142
51
|
.map(decodeURIComponent)
|
|
143
52
|
.join('/');
|
|
@@ -154,14 +63,15 @@ function linkedSection(url, sourcePath, sectionsByPath) {
|
|
|
154
63
|
return (sections.find((section) => section.githubSlug?.toLowerCase() === fragment.toLowerCase()) ?? null);
|
|
155
64
|
}
|
|
156
65
|
function paragraphFor(file, section, line) {
|
|
157
|
-
return (file.paragraphs.
|
|
66
|
+
return (file.paragraphs.find((paragraph) => line >= paragraph.startLine && line <= paragraph.endLine) ?? {
|
|
158
67
|
markdown: section.firstParagraph,
|
|
159
68
|
startLine: line,
|
|
69
|
+
endLine: line,
|
|
160
70
|
text: section.firstParagraph,
|
|
161
71
|
});
|
|
162
72
|
}
|
|
163
73
|
/** Resolve cached outgoing occurrences into direct section and source indexes. */
|
|
164
|
-
export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections) {
|
|
74
|
+
export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections, resolveExternalTarget) {
|
|
165
75
|
const files = [...markdownFiles].sort((a, b) => a.path.localeCompare(b.path));
|
|
166
76
|
const sections = flattenSections(allSections);
|
|
167
77
|
const sectionIds = new Set(sections.map((section) => section.id.toLowerCase()));
|
|
@@ -174,6 +84,7 @@ export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections) {
|
|
|
174
84
|
}
|
|
175
85
|
const incoming = new Map();
|
|
176
86
|
const sourceByTarget = new Map();
|
|
87
|
+
const externalByTarget = new Map();
|
|
177
88
|
const addIncoming = (targetId, key, reference) => {
|
|
178
89
|
const target = targetId.toLowerCase();
|
|
179
90
|
let references = incoming.get(target);
|
|
@@ -184,6 +95,24 @@ export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections) {
|
|
|
184
95
|
if (!references.has(key))
|
|
185
96
|
references.set(key, reference);
|
|
186
97
|
};
|
|
98
|
+
const addSourceReference = (target, key, reference) => {
|
|
99
|
+
let references = sourceByTarget.get(target);
|
|
100
|
+
if (!references) {
|
|
101
|
+
references = new Map();
|
|
102
|
+
sourceByTarget.set(target, references);
|
|
103
|
+
}
|
|
104
|
+
if (!references.has(key))
|
|
105
|
+
references.set(key, reference);
|
|
106
|
+
};
|
|
107
|
+
const addExternalReference = (target, key, reference) => {
|
|
108
|
+
let references = externalByTarget.get(target);
|
|
109
|
+
if (!references) {
|
|
110
|
+
references = new Map();
|
|
111
|
+
externalByTarget.set(target, references);
|
|
112
|
+
}
|
|
113
|
+
if (!references.has(key))
|
|
114
|
+
references.set(key, reference);
|
|
115
|
+
};
|
|
187
116
|
for (const file of files) {
|
|
188
117
|
const fileSections = flattenSections(file.sections).sort((a, b) => a.startLine - b.startLine);
|
|
189
118
|
for (const ref of file.wikiRefs) {
|
|
@@ -198,16 +127,24 @@ export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections) {
|
|
|
198
127
|
paragraph: paragraphFor(file, section, ref.line),
|
|
199
128
|
activeWikiLink: ref.target,
|
|
200
129
|
};
|
|
201
|
-
const
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
130
|
+
const locationKey = `markdown:${section.filePath}:${reference.paragraph.startLine}`;
|
|
131
|
+
const externalTarget = resolveExternalTarget?.(ref.target);
|
|
132
|
+
if (externalTarget) {
|
|
133
|
+
addExternalReference(externalTarget, locationKey, reference);
|
|
134
|
+
}
|
|
135
|
+
const source = viewSourceTarget(ref.target);
|
|
136
|
+
if (source) {
|
|
137
|
+
addSourceReference(source.key, locationKey, reference);
|
|
138
|
+
if (source.symbol) {
|
|
139
|
+
addSourceReference(source.fileKey, locationKey, reference);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
205
142
|
const resolved = resolveRef(ref.target, sectionIds, fileIndex, slugIndex);
|
|
206
143
|
if (resolved.ambiguous ||
|
|
207
144
|
!sectionById.has(resolved.resolved.toLowerCase())) {
|
|
208
145
|
continue;
|
|
209
146
|
}
|
|
210
|
-
addIncoming(resolved.resolved,
|
|
147
|
+
addIncoming(resolved.resolved, locationKey, reference);
|
|
211
148
|
}
|
|
212
149
|
for (const link of file.markdownLinks) {
|
|
213
150
|
if (link.kind !== 'link')
|
|
@@ -233,6 +170,16 @@ export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections) {
|
|
|
233
170
|
}
|
|
234
171
|
for (const file of [...codeFiles].sort((a, b) => a.path.localeCompare(b.path))) {
|
|
235
172
|
for (const ref of [...file.refs].sort((a, b) => a.line - b.line)) {
|
|
173
|
+
const externalTarget = resolveExternalTarget?.(ref.target);
|
|
174
|
+
if (externalTarget) {
|
|
175
|
+
addExternalReference(externalTarget, `code:${ref.file}:${ref.line}`, {
|
|
176
|
+
kind: 'code',
|
|
177
|
+
path: ref.file,
|
|
178
|
+
line: ref.line,
|
|
179
|
+
snippet: file.lines[ref.line - 1]?.trim() ?? '',
|
|
180
|
+
url: sourceLineUrl(ref.file, ref.line),
|
|
181
|
+
});
|
|
182
|
+
}
|
|
236
183
|
const resolved = resolveRef(ref.target, sectionIds, fileIndex, slugIndex);
|
|
237
184
|
if (resolved.ambiguous ||
|
|
238
185
|
!sectionById.has(resolved.resolved.toLowerCase())) {
|
|
@@ -252,22 +199,107 @@ export function buildViewReferenceIndex(markdownFiles, codeFiles, allSections) {
|
|
|
252
199
|
target,
|
|
253
200
|
[...references.values()],
|
|
254
201
|
])),
|
|
255
|
-
sourceByTarget,
|
|
202
|
+
sourceByTarget: new Map([...sourceByTarget].map(([target, references]) => [
|
|
203
|
+
target,
|
|
204
|
+
[...references.values()],
|
|
205
|
+
])),
|
|
206
|
+
sourceReferenceCounts: new Map([...sourceByTarget].map(([target, references]) => [
|
|
207
|
+
target,
|
|
208
|
+
references.size,
|
|
209
|
+
])),
|
|
210
|
+
externalByTarget: new Map([...externalByTarget].map(([target, references]) => [
|
|
211
|
+
target,
|
|
212
|
+
[...references.values()],
|
|
213
|
+
])),
|
|
256
214
|
};
|
|
257
215
|
}
|
|
216
|
+
async function renderExternalReference(reference, latDir, projectRoot, createWikiLinkResolver) {
|
|
217
|
+
if (reference.kind === 'code')
|
|
218
|
+
return reference;
|
|
219
|
+
const resolver = createWikiLinkResolver
|
|
220
|
+
? await createWikiLinkResolver(reference.sourcePath)
|
|
221
|
+
: undefined;
|
|
222
|
+
return renderIndexedMarkdownReference(reference, latDir, projectRoot, resolver);
|
|
223
|
+
}
|
|
224
|
+
/** Render exact local Markdown and code backlinks for external targets. */
|
|
225
|
+
export async function renderExternalSectionBackReferences(index, targets, latDir, projectRoot, createWikiLinkResolver) {
|
|
226
|
+
const sections = new Map();
|
|
227
|
+
for (const [target, headingId] of targets) {
|
|
228
|
+
let section = sections.get(headingId);
|
|
229
|
+
if (!section) {
|
|
230
|
+
section = { sectionId: target, references: new Map() };
|
|
231
|
+
sections.set(headingId, section);
|
|
232
|
+
}
|
|
233
|
+
const lowerTarget = target.toLowerCase();
|
|
234
|
+
const indexed = [...index.externalByTarget]
|
|
235
|
+
.filter(([candidate]) => candidate.toLowerCase() === lowerTarget)
|
|
236
|
+
.flatMap(([, references]) => references);
|
|
237
|
+
for (const reference of indexed) {
|
|
238
|
+
const key = reference.kind === 'markdown'
|
|
239
|
+
? `markdown:${reference.sourcePath}:${reference.paragraph.startLine}`
|
|
240
|
+
: `code:${reference.path}:${reference.line}`;
|
|
241
|
+
if (!section.references.has(key))
|
|
242
|
+
section.references.set(key, reference);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
const result = [];
|
|
246
|
+
for (const [headingId, section] of sections) {
|
|
247
|
+
const references = await Promise.all([...section.references.values()].map((reference) => renderExternalReference(reference, latDir, projectRoot, createWikiLinkResolver)));
|
|
248
|
+
result.push({ sectionId: section.sectionId, headingId, references });
|
|
249
|
+
}
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
/** Adapt exact external backlinks to the source context presentation. */
|
|
253
|
+
export async function renderExternalSourceReferences(index, target, latDir, projectRoot, createWikiLinkResolver) {
|
|
254
|
+
const indexed = index.externalByTarget.get(target) ?? [];
|
|
255
|
+
const result = [];
|
|
256
|
+
for (const reference of indexed) {
|
|
257
|
+
const rendered = await renderExternalReference(reference, latDir, projectRoot, createWikiLinkResolver);
|
|
258
|
+
if (rendered.kind === 'markdown') {
|
|
259
|
+
result.push({
|
|
260
|
+
sectionId: rendered.sectionId,
|
|
261
|
+
breadcrumbs: rendered.breadcrumbs,
|
|
262
|
+
paragraph: rendered.paragraph,
|
|
263
|
+
paragraphTree: rendered.paragraphTree,
|
|
264
|
+
url: rendered.url,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
result.push({
|
|
269
|
+
sectionId: `code:${rendered.path}:${rendered.line}`,
|
|
270
|
+
breadcrumbs: [...rendered.path.split('/'), `line ${rendered.line}`],
|
|
271
|
+
paragraph: rendered.snippet,
|
|
272
|
+
paragraphTree: {
|
|
273
|
+
version: 1,
|
|
274
|
+
type: 'root',
|
|
275
|
+
children: [
|
|
276
|
+
{
|
|
277
|
+
type: 'element',
|
|
278
|
+
tagName: 'code',
|
|
279
|
+
properties: {},
|
|
280
|
+
children: [{ type: 'text', value: rendered.snippet }],
|
|
281
|
+
},
|
|
282
|
+
],
|
|
283
|
+
},
|
|
284
|
+
url: rendered.url,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return result;
|
|
289
|
+
}
|
|
258
290
|
async function renderIndexedMarkdownReference(reference, latDir, projectRoot, resolveWikiLink) {
|
|
259
|
-
const
|
|
291
|
+
const paragraphTree = (await renderMarkdown(reference.paragraph.markdown, reference.sourcePath, resolveWikiLink, {
|
|
260
292
|
activeWikiLink: reference.activeWikiLink,
|
|
261
293
|
activeMarkdownLink: reference.activeMarkdownLink,
|
|
262
294
|
lineOffset: reference.paragraph.startLine - 1,
|
|
263
295
|
rewriteMarkdownLink: (url) => contextMarkdownLink(reference.sourcePath, url),
|
|
264
|
-
})).
|
|
296
|
+
})).tree;
|
|
265
297
|
return {
|
|
266
298
|
kind: 'markdown',
|
|
267
299
|
sectionId: reference.section.id,
|
|
268
300
|
breadcrumbs: breadcrumbs(latDir, projectRoot, reference.section),
|
|
269
301
|
paragraph: reference.paragraph.text,
|
|
270
|
-
|
|
302
|
+
paragraphTree,
|
|
271
303
|
url: documentUrl(latDir, projectRoot, reference.section),
|
|
272
304
|
};
|
|
273
305
|
}
|
|
@@ -287,8 +319,6 @@ export async function renderSectionBackReferences(index, visibleSections, latDir
|
|
|
287
319
|
const result = [];
|
|
288
320
|
for (const section of flattenSections(visibleSections)) {
|
|
289
321
|
const indexed = index.incomingBySection.get(section.id.toLowerCase()) ?? [];
|
|
290
|
-
if (indexed.length === 0)
|
|
291
|
-
continue;
|
|
292
322
|
const references = [];
|
|
293
323
|
for (const reference of indexed) {
|
|
294
324
|
references.push(reference.kind === 'code'
|
|
@@ -305,7 +335,8 @@ export async function renderSectionBackReferences(index, visibleSections, latDir
|
|
|
305
335
|
}
|
|
306
336
|
/** Render cached Markdown occurrences that point to one source target. */
|
|
307
337
|
export async function renderSourceReferenceContext(index, target, origin, latDir, projectRoot, createWikiLinkResolver) {
|
|
308
|
-
const
|
|
338
|
+
const source = viewSourceTarget(target);
|
|
339
|
+
const indexed = source ? (index.sourceByTarget.get(source.key) ?? []) : [];
|
|
309
340
|
const resolverByPath = new Map();
|
|
310
341
|
const located = [];
|
|
311
342
|
for (const reference of indexed) {
|
|
@@ -323,7 +354,7 @@ export async function renderSourceReferenceContext(index, target, origin, latDir
|
|
|
323
354
|
sectionId: rendered.sectionId,
|
|
324
355
|
breadcrumbs: rendered.breadcrumbs,
|
|
325
356
|
paragraph: rendered.paragraph,
|
|
326
|
-
|
|
357
|
+
paragraphTree: rendered.paragraphTree,
|
|
327
358
|
url: rendered.url,
|
|
328
359
|
},
|
|
329
360
|
});
|
|
@@ -1,12 +1,25 @@
|
|
|
1
|
-
import { type Section } from '
|
|
2
|
-
import type
|
|
1
|
+
import { type Section } from '@plebeiantech/lat.md-core/lattice-model';
|
|
2
|
+
import { type ExternalResolver } from '@plebeiantech/lat.md-core/external-sources';
|
|
3
|
+
import type { ExternalTarget } from '@plebeiantech/lat.md-core/external-sources';
|
|
4
|
+
import { renderExternalDocumentTree } from './external-document-tree.js';
|
|
5
|
+
import type { ViewExternalDocument, ViewSourceDocument } from './protocol.js';
|
|
3
6
|
import { type SourceReferenceOrigin, type ViewReferenceIndex } from './references.js';
|
|
4
7
|
export declare class ViewDocumentNotFoundError extends Error {
|
|
5
8
|
}
|
|
6
9
|
export declare class ViewSourceNotFoundError extends Error {
|
|
7
10
|
}
|
|
8
|
-
export declare
|
|
11
|
+
export declare class ViewExternalNotFoundError extends Error {
|
|
12
|
+
}
|
|
13
|
+
export declare function externalUrl(target: string): string;
|
|
14
|
+
/** Make repository-relative external-document links reflect pulled files. */
|
|
15
|
+
export declare function resolveExternalDocumentLinks(tree: Awaited<ReturnType<typeof renderExternalDocumentTree>>, current: ExternalTarget, external: ExternalResolver, referenceIndex: ViewReferenceIndex): typeof tree;
|
|
16
|
+
export declare function createMarkdownWikiLinkResolver(latDir: string, requestedPath: string, loadedSections: Section[], referenceIndex?: ViewReferenceIndex, externalResolver?: ExternalResolver, publishable?: (path: string) => Promise<boolean>): Promise<(target: string, context: {
|
|
9
17
|
line: number;
|
|
10
|
-
}) => Promise<
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
href: string;
|
|
20
|
+
referenceCount: number;
|
|
21
|
+
} | null>>;
|
|
22
|
+
/** Resolve and render one configured external file through the normal view models. */
|
|
23
|
+
export declare function getViewExternal(latDir: string, projectRoot: string, targetValue: string, external: ExternalResolver, allSections: Section[], referenceIndex: ViewReferenceIndex, publishable?: (path: string) => Promise<boolean>): Promise<ViewExternalDocument>;
|
|
11
24
|
/** Read and highlight a source file after constraining it to the project root. */
|
|
12
|
-
export declare function getViewSource(latDir: string, projectRoot: string, requestedPath: string, requestedSymbol?: string, origin?: SourceReferenceOrigin, requestedLine?: number, allSections?: Section[], referenceIndex?: ViewReferenceIndex): Promise<ViewSourceDocument>;
|
|
25
|
+
export declare function getViewSource(latDir: string, projectRoot: string, requestedPath: string, requestedSymbol?: string, origin?: SourceReferenceOrigin, requestedLine?: number, allSections?: Section[], referenceIndex?: ViewReferenceIndex, publishable?: (path: string) => Promise<boolean>): Promise<ViewSourceDocument>;
|