wiki-viewer 2.17.2 → 2.18.0

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.
Files changed (174) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/pdf/save/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/share/[token]/asset/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/wiki/hosted-apps/[slug]/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/wiki/hosted-apps/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/wiki/scratch/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/app/[slug]/[[...rest]]/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/s/[token]/page.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/chunks/0.u4_next_dist_esm_build_templates_app-route_12fsa9t.js +1 -1
  67. package/.next/standalone/.next/server/chunks/[root-of-the-server]__034zu-9._.js +1 -1
  68. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05h6fe-._.js +1 -1
  69. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09vw_yd._.js +1 -1
  70. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b7h2ot._.js +1 -1
  71. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ian9~8._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jsp839._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ltsov-._.js +1 -1
  74. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pru66p._.js +1 -1
  75. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tl7-s6._.js +1 -1
  76. package/.next/standalone/.next/server/chunks/[root-of-the-server]__101dr96._.js +2 -2
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10i6erq._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11ltgmp._.js +3 -3
  79. package/.next/standalone/.next/server/chunks/ssr/0a.g_remark-gfm_index_0x_9hnh.js +3 -0
  80. package/.next/standalone/.next/server/chunks/ssr/0a.g_remark-gfm_lib_index_0jlfajt.js +3 -0
  81. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0g8tatq._.js → 0~w0_katex_dist_katex_mjs_03x.-bb._.js} +1 -1
  82. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0t6hfzy._.js → 0~w0_katex_dist_katex_mjs_0gr6q1f._.js} +1 -1
  83. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0gg-.v~._.js → [root-of-the-server]__02.v5th._.js} +2 -2
  84. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rqekx_._.js → [root-of-the-server]__0fh-02e._.js} +2 -2
  85. package/.next/standalone/.next/server/chunks/ssr/_0d28.zp._.js +3 -0
  86. package/.next/standalone/.next/server/chunks/ssr/_0e1uo~z._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/ssr/_0k6g8yo._.js +43 -4
  88. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-6o3nd._.js → node_modules__pnpm_0-q76.t._.js} +1 -1
  89. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cqbnhd._.js → node_modules__pnpm_0.cggg3._.js} +1 -1
  90. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0rfdc9s._.js → node_modules__pnpm_0.eafd4._.js} +2 -2
  91. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_098zkfc._.js → node_modules__pnpm_0.lls2f._.js} +2 -2
  92. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0pqf~nv._.js → node_modules__pnpm_029eo0j._.js} +1 -1
  93. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-71x-j._.js → node_modules__pnpm_02t6.-b._.js} +1 -1
  94. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0zl8cqc._.js → node_modules__pnpm_035f6c2._.js} +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_12~1zv2._.js → node_modules__pnpm_03m~yp-._.js} +1 -1
  96. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_10d.46l._.js → node_modules__pnpm_04aul6b._.js} +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13~cuil._.js → node_modules__pnpm_04h3f7z._.js} +1 -1
  98. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04.xj_.._.js → node_modules__pnpm_052119m._.js} +2 -2
  99. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_01jw~66._.js → node_modules__pnpm_05k6a~v._.js} +1 -1
  100. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0izzet6._.js → node_modules__pnpm_05tvs.j._.js} +1 -1
  101. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0t_o_3_._.js → node_modules__pnpm_06lzn3f._.js} +1 -1
  102. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08jqo7c._.js → node_modules__pnpm_08ly65-._.js} +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0~82dm0._.js → node_modules__pnpm_09-tnjc._.js} +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0hrvcv9._.js → node_modules__pnpm_0_39rjg._.js} +1 -1
  105. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0c414b2._.js → node_modules__pnpm_0_mroc7._.js} +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_12ukxhf._.js → node_modules__pnpm_0a0xb30._.js} +1 -1
  107. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13er52c._.js → node_modules__pnpm_0aczw13._.js} +2 -2
  108. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0pdmyaz._.js → node_modules__pnpm_0awp-lz._.js} +1 -1
  109. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0bft7q1._.js +3 -0
  110. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0mgx7ud._.js → node_modules__pnpm_0bjukfc._.js} +2 -2
  111. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0d65071._.js → node_modules__pnpm_0dnud63._.js} +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ywf~mm._.js → node_modules__pnpm_0ev5rtd._.js} +2 -2
  113. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gqqzid._.js → node_modules__pnpm_0ew~_em._.js} +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.cctde._.js → node_modules__pnpm_0fekgqt._.js} +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0_zd~dk._.js → node_modules__pnpm_0frtimc._.js} +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_12tjs4x._.js → node_modules__pnpm_0gg_t7m._.js} +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.ee_mw._.js → node_modules__pnpm_0gk3zd4._.js} +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0g2bjhh._.js → node_modules__pnpm_0gwfulm._.js} +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wf9woj._.js → node_modules__pnpm_0ho8oyj._.js} +2 -2
  120. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0icemj5._.js +3 -0
  121. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_12gduin._.js → node_modules__pnpm_0l8oa7o._.js} +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_114x37.._.js → node_modules__pnpm_0laq3ah._.js} +2 -2
  123. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_12h2abk._.js → node_modules__pnpm_0ldy4q8._.js} +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0rvh.bg._.js → node_modules__pnpm_0nqllnp._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_00vcylf._.js → node_modules__pnpm_0owi.t~._.js} +2 -2
  126. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0qf~x-r._.js → node_modules__pnpm_0p_qmx3._.js} +2 -2
  127. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0u97yk9._.js → node_modules__pnpm_0pq-m-w._.js} +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_03qtb48._.js → node_modules__pnpm_0qq915e._.js} +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wpvrc-._.js → node_modules__pnpm_0rzgcz4._.js} +2 -2
  130. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ew7yzw._.js → node_modules__pnpm_0s6od3y._.js} +2 -2
  131. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0r2fx0c._.js → node_modules__pnpm_0tqhmaj._.js} +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0ts_t7o._.js +3 -0
  133. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0242eyt._.js → node_modules__pnpm_0w6417f._.js} +2 -2
  134. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0~_s5ha._.js → node_modules__pnpm_0wpana9._.js} +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.-rpgq._.js → node_modules__pnpm_0xp1-db._.js} +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0lrwvt7._.js → node_modules__pnpm_0yo568y._.js} +2 -2
  137. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0c8gg~8._.js → node_modules__pnpm_0ywyhqr._.js} +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_10f4qpz._.js → node_modules__pnpm_0z3_de6._.js} +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0fxz20v._.js → node_modules__pnpm_0~sf~oy._.js} +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0222zw3._.js → node_modules__pnpm_1057jq-._.js} +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02zw~h_._.js → node_modules__pnpm_10e264.._.js} +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_01jd.4m._.js → node_modules__pnpm_10tma_q._.js} +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04baqvu._.js → node_modules__pnpm_11ge450._.js} +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_12r.yrc._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0e1ds7y._.js → node_modules__pnpm_13dh01l._.js} +1 -1
  146. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  147. package/.next/standalone/.next/server/pages/500.html +1 -1
  148. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  150. package/.next/standalone/.next/static/chunks/0-ljp3jtzmmv7.js +1 -0
  151. package/.next/standalone/.next/static/chunks/{0n~dazst~sc7s.js → 03d9mze.e_uaz.js} +5 -5
  152. package/.next/standalone/.next/static/chunks/04ty7tw4dnejo.css +1 -0
  153. package/.next/standalone/.next/static/chunks/09dn.__2m_69y.js +1 -0
  154. package/.next/standalone/.next/static/chunks/0ch1.r_lv21oq.js +1 -0
  155. package/.next/standalone/.next/static/chunks/0j_n58.7iw6~6.js +1 -0
  156. package/.next/standalone/.next/static/chunks/0lax9ukrykxpi.js +1 -0
  157. package/.next/standalone/.next/static/chunks/0lxbev-rginnd.js +1 -0
  158. package/.next/standalone/.next/static/chunks/{144gewald~_d3.js → 0y3wtq_6_n5iu.js} +52 -13
  159. package/.next/standalone/.next/static/chunks/12hepnxqos.kd.js +1 -0
  160. package/.next/standalone/.next/static/chunks/16xauntup4146.js +1 -0
  161. package/.next/standalone/isometric-codebase-map.html +1 -1
  162. package/.next/standalone/isometric-codebase-map.json +1 -1
  163. package/.next/standalone/package.json +3 -1
  164. package/.next/standalone/server.js +1 -1
  165. package/package.json +3 -1
  166. package/.next/standalone/.next/server/chunks/ssr/_0_0pyx2._.js +0 -3
  167. package/.next/standalone/.next/server/chunks/ssr/_0q~d8b~._.js +0 -3
  168. package/.next/standalone/.next/static/chunks/0-cls2jl5dv52.css +0 -1
  169. package/.next/standalone/.next/static/chunks/02d_ok-cqd.4a.js +0 -1
  170. package/.next/standalone/.next/static/chunks/09r.txqh5meou.js +0 -1
  171. package/.next/standalone/.next/static/chunks/0k-oaty6nz49y.js +0 -1
  172. /package/.next/standalone/.next/static/{mgmXU8yiKNFpuBzAAefbK → rjQq3BNlWxvbhPVr6pwwW}/_buildManifest.js +0 -0
  173. /package/.next/standalone/.next/static/{mgmXU8yiKNFpuBzAAefbK → rjQq3BNlWxvbhPVr6pwwW}/_clientMiddlewareManifest.js +0 -0
  174. /package/.next/standalone/.next/static/{mgmXU8yiKNFpuBzAAefbK → rjQq3BNlWxvbhPVr6pwwW}/_ssgManifest.js +0 -0
@@ -815,7 +815,7 @@
815
815
  ] },
816
816
  { id: "editor", code: "ED", name: "Editor and viewers", group: "surface", loc: "12,224 LOC", gx: 5, gy: 0, w: 4, d: 3, h: 13, what: "Shows many file types and lets people edit Markdown with rich interactions.", how: "TipTap extensions and viewer components handle Markdown, documents, media, notebooks, and websites.", talks: ["wiki-api", "proof", "state"], children: [
817
817
  { code: "TP", name: "TipTap editor", h: 8, what: "Turns Markdown blocks into an editable document.", how: "editor.tsx and extensions.ts register TipTap nodes and marks that map Markdown blocks to an editable ProseMirror document." },
818
- { code: "VW", name: "File viewers", h: 6, what: "Chooses a safe renderer for each supported file kind.", how: "A viewer registry dispatches per-type renderers for images, PDFs, media, notebooks, CSVs, Mermaid, and websites." },
818
+ { code: "VW", name: "File viewers", h: 6, what: "Chooses a safe renderer for each supported file kind.", how: "A viewer registry dispatches per-type renderers for images, PDFs, media, notebooks, CSVs, Mermaid, websites, and MDX; the MDX viewer compiles .mdx in-browser via the mdx-js compiler and executes its JSX inside a null-origin allow-scripts iframe (React loaded from esm.sh) behind a default-off scripts consent." },
819
819
  { code: "CV", name: "Canvas viewer", h: 5, what: "Renders and edits .excalidraw scene JSON in an Excalidraw surface.", how: "The canvas viewer lazy-loads Excalidraw, debounces scene autosaves, embeds files, and reloads on sha256 conflicts; it renders read-only (viewModeEnabled) in git read-only workspaces and public share links." }
820
820
  ] },
821
821
  { id: "hooks", code: "HK", name: "Page-shell hooks", group: "surface", loc: "1,688 LOC", gx: 10, gy: 0, w: 2, d: 2, h: 5, what: "Connects page actions to workspaces, file trees, uploads, scratchpad, and navigation.", how: "Client hooks coordinate URL state, prefetching, workspace selection, and server calls.", talks: ["wiki-api", "workspace", "state"], children: [
@@ -26,7 +26,7 @@
26
26
  ] },
27
27
  { "id": "editor", "code": "ED", "name": "Editor and viewers", "group": "surface", "loc": "12,224 LOC", "gx": 5, "gy": 0, "w": 4, "d": 3, "h": 13, "what": "Shows many file types and lets people edit Markdown with rich interactions.", "how": "TipTap extensions and viewer components handle Markdown, documents, media, notebooks, and websites.", "talks": ["wiki-api", "proof", "state"], "children": [
28
28
  { "code": "TP", "name": "TipTap editor", "h": 8, "what": "Turns Markdown blocks into an editable document.", "how": "editor.tsx and extensions.ts register TipTap nodes and marks that map Markdown blocks to an editable ProseMirror document." },
29
- { "code": "VW", "name": "File viewers", "h": 6, "what": "Chooses a safe renderer for each supported file kind.", "how": "A viewer registry dispatches per-type renderers for images, PDFs, media, notebooks, CSVs, Mermaid, and websites." },
29
+ { "code": "VW", "name": "File viewers", "h": 6, "what": "Chooses a safe renderer for each supported file kind.", "how": "A viewer registry dispatches per-type renderers for images, PDFs, media, notebooks, CSVs, Mermaid, websites, and MDX; the MDX viewer compiles .mdx in-browser via the mdx-js compiler and executes its JSX inside a null-origin allow-scripts iframe (React loaded from esm.sh) behind a default-off scripts consent." },
30
30
  { "code": "CV", "name": "Canvas viewer", "h": 5, "what": "Renders and edits .excalidraw scene JSON in an Excalidraw surface.", "how": "The canvas viewer lazy-loads Excalidraw, debounces scene autosaves, embeds files, and reloads on sha256 conflicts; it renders read-only (viewModeEnabled) in git read-only workspaces and public share links." }
31
31
  ] },
32
32
  { "id": "hooks", "code": "HK", "name": "Page-shell hooks", "group": "surface", "loc": "1,688 LOC", "gx": 10, "gy": 0, "w": 2, "d": 2, "h": 5, "what": "Connects page actions to workspaces, file trees, uploads, scratchpad, and navigation.", "how": "Client hooks coordinate URL state, prefetching, workspace selection, and server calls.", "talks": ["wiki-api", "workspace", "state"], "children": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wiki-viewer",
3
- "version": "2.17.2",
3
+ "version": "2.18.0",
4
4
  "description": "Local file viewer and wiki — view markdown, HTML, PDFs, notebooks, office docs, and more from any directory",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -49,6 +49,7 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@excalidraw/excalidraw": "0.18.1",
52
+ "@mdx-js/mdx": "^3.1.1",
52
53
  "better-auth": "^1.6.12",
53
54
  "chokidar": "^5.0.0",
54
55
  "jszip": "^3.10.1",
@@ -61,6 +62,7 @@
61
62
  "rehype-parse": "^9.0.1",
62
63
  "rehype-raw": "^7.0.0",
63
64
  "rehype-sanitize": "^6.0.0",
65
+ "remark-frontmatter": "^5.0.0",
64
66
  "undici": "^8.3.0"
65
67
  },
66
68
  "devDependencies": {
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
15
15
  const hostname = process.env.HOSTNAME || '0.0.0.0'
16
16
 
17
17
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
18
- const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"2.17.2"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/wiki-viewer/wiki-viewer","allowedDevOrigins":["localhost"],"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/wiki-viewer/wiki-viewer"},"distDirRoot":".next"}
18
+ const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"2.18.0"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/wiki-viewer/wiki-viewer","allowedDevOrigins":["localhost"],"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/wiki-viewer/wiki-viewer"},"distDirRoot":".next"}
19
19
 
20
20
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
21
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wiki-viewer",
3
- "version": "2.17.2",
3
+ "version": "2.18.0",
4
4
  "description": "Local file viewer and wiki — view markdown, HTML, PDFs, notebooks, office docs, and more from any directory",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -49,6 +49,7 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@excalidraw/excalidraw": "0.18.1",
52
+ "@mdx-js/mdx": "^3.1.1",
52
53
  "better-auth": "^1.6.12",
53
54
  "chokidar": "^5.0.0",
54
55
  "jszip": "^3.10.1",
@@ -61,6 +62,7 @@
61
62
  "rehype-parse": "^9.0.1",
62
63
  "rehype-raw": "^7.0.0",
63
64
  "rehype-sanitize": "^6.0.0",
65
+ "remark-frontmatter": "^5.0.0",
64
66
  "undici": "^8.3.0"
65
67
  },
66
68
  "devDependencies": {