wikied 0.7.0 → 0.8.1
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 +1 -11
- package/dist/cli/index.js +1 -1
- package/dist/client/assets/{arc-BGbUjP6l.js → arc-BcNRNWhT.js} +1 -1
- package/dist/client/assets/architecture-7EHR7CIX-BGHsj3Sd.js +1 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-B4z3Bib0.js → architectureDiagram-3BPJPVTR-PrKBtz_N.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CM9yoR1c.js → blockDiagram-GPEHLZMM-Cu6_nrob.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BJuYwiU6.js → c4Diagram-AAUBKEIU-XAOiDGD3.js} +1 -1
- package/dist/client/assets/channel-CPmtBTYe.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-CElL4Bkg.js → chunk-2J33WTMH-C6gxPqIL.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-4pLcLIM5.js → chunk-4BX2VUAB-BF6pxt2R.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-BCehx-77.js → chunk-55IACEB6-BgFb2EGJ.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-7cRbWNAI.js → chunk-727SXJPM-CGa5zkpd.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-CdZ5KEq0.js → chunk-AQP2D5EJ-BG2Gm9Jj.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CX3tOevw.js → chunk-FMBD7UC4-9PjtkE8N.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-BIe2czkN.js → chunk-ND2GUHAM-BkwAMldP.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-CugKC9yc.js +1 -0
- package/dist/client/assets/classDiagram-4FO5ZUOK-CgZje55M.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CD8O_LKr.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BZ5-BOtV.js → cose-bilkent-S5V4N54A-DJMnAWsu.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-BF4eE7Vq.js → dagre-BM42HDAG-DxhB7WC5.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-CBD1vPsC.js → diagram-2AECGRRQ-Bm6bCjKV.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-BKVF6D-v.js → diagram-5GNKFQAL-5JYUOXRk.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-B4tg5Sq2.js → diagram-KO2AKTUF-DGpZHYq_.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CrtzqKHR.js → diagram-LMA3HP47-CHk9wsYZ.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-B1U1l2z9.js → diagram-OG6HWLK6-CfWuAKz7.js} +1 -1
- package/dist/client/assets/{dist-2tmgITdd.js → dist-BR2D9joR.js} +1 -1
- package/dist/client/assets/{dist-BMnytQui.js → dist-BjXWQdR7.js} +1 -1
- package/dist/client/assets/{dist-BdtcHXh3.js → dist-BtQr4_T2.js} +1 -1
- package/dist/client/assets/{dist-BAyNC3jS.js → dist-C24Am8Vy.js} +1 -1
- package/dist/client/assets/{dist-BGAr6uGo.js → dist-CAQl_JeH.js} +1 -1
- package/dist/client/assets/{dist-BiKkiCmA.js → dist-CN5BUgsL.js} +1 -1
- package/dist/client/assets/{dist-DLRVIfbL.js → dist-CYBm04dn.js} +1 -1
- package/dist/client/assets/{dist-CDbDhEh_.js → dist-CqO8fBRP.js} +1 -1
- package/dist/client/assets/{dist-CHFPp6QK.js → dist-D1HFoNWi.js} +1 -1
- package/dist/client/assets/{dist-BD40sG-g.js → dist-D2gqg6XD.js} +1 -1
- package/dist/client/assets/{dist-CZj-wKzk.js → dist-DKiO2E1b.js} +1 -1
- package/dist/client/assets/{dist-BnHFa9WX.js → dist-Dgs9dPpZ.js} +1 -1
- package/dist/client/assets/{dist-4GL-blwo.js → dist-K-OE26Yi.js} +1 -1
- package/dist/client/assets/{dist-0-z0Cnty.js → dist-Pl3rvXUl.js} +1 -1
- package/dist/client/assets/{dist-44lkZ2T8.js → dist-PodDLKOH.js} +1 -1
- package/dist/client/assets/{dist--hLEDvOf.js → dist-ckTWnBTv.js} +1 -1
- package/dist/client/assets/{dist-Q6A1c5I0.js → dist-sjFMLj70.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-B62HhqZg.js → erDiagram-TEJ5UH35-xeNgkSAy.js} +1 -1
- package/dist/client/assets/eventmodeling-FCH6USID-DphoJcXR.js +1 -0
- package/dist/client/assets/{flowDiagram-I6XJVG4X-Bgr5YjhY.js → flowDiagram-I6XJVG4X-Diocribv.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CD_17vBt.js → ganttDiagram-6RSMTGT7-xTdTc-El.js} +1 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-BTW4f9fi.js +1 -0
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BaRvMOzh.js → gitGraphDiagram-PVQCEYII-DmKIUOJx.js} +1 -1
- package/dist/client/assets/{index-BPa7ldDk.css → index-BGCXi2uF.css} +1 -1
- package/dist/client/assets/index-Cvvt5420.js +532 -0
- package/dist/client/assets/info-J43DQDTF-Cw2HNDaO.js +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-B4RQ7JzR.js → infoDiagram-5YYISTIA-D4cfvBEb.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-Bbrza3Oj.js → ishikawaDiagram-YF4QCWOH-K2NTS-gk.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BNSA0bV7.js → journeyDiagram-JHISSGLW-D6ZE_T8d.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BShOC1Nf.js → kanban-definition-UN3LZRKU-NeD0uRbJ.js} +1 -1
- package/dist/client/assets/{linear-B_52T76x.js → linear-BB-hRShj.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-2kO9DfMJ.js → mermaid-parser.core-BGxRxHQl.js} +2 -2
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-CYrR5n4p.js → mindmap-definition-RKZ34NQL-re0v-Abf.js} +1 -1
- package/dist/client/assets/packet-YPE3B663-CrHs8zQk.js +1 -0
- package/dist/client/assets/pie-LRSECV5Y-DN2X-C7c.js +1 -0
- package/dist/client/assets/{pieDiagram-4H26LBE5-BPBPJDOL.js → pieDiagram-4H26LBE5-CVgGRPUj.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-7qeZA_5K.js → quadrantDiagram-W4KKPZXB-hvgg5ND-.js} +1 -1
- package/dist/client/assets/radar-GUYGQ44K-CGfUK9B7.js +1 -0
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-Bn_o0XyB.js → requirementDiagram-4Y6WPE33-BDRcpjKM.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-C7tq1iBN.js → sankeyDiagram-5OEKKPKP-CZMAxFS8.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CVntHqub.js → sequenceDiagram-3UESZ5HK-tCo417FM.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-6CbiQtH2.js → stateDiagram-AJRCARHV-BiiCMTOc.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BeuZpgnp.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-8O7m6KY3.js → timeline-definition-PNZ67QCA-CwdU_R2S.js} +1 -1
- package/dist/client/assets/treeView-BLDUP644-Bf0-7Ltp.js +1 -0
- package/dist/client/assets/treemap-LRROVOQU-jGeMHPB3.js +1 -0
- package/dist/client/assets/{vennDiagram-CIIHVFJN-BPYk8Ngd.js → vennDiagram-CIIHVFJN-BLHvlGvY.js} +1 -1
- package/dist/client/assets/wardley-L42UT6IY-BUzbFhcv.js +1 -0
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-BFpz-Hih.js → wardleyDiagram-YWT4CUSO-C6CXsYNa.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-B11s2eQY.js → xychartDiagram-2RQKCTM6-Bq_1XgNP.js} +1 -1
- package/dist/client/index.html +2 -2
- package/docs/project/README.md +2 -2
- package/docs/project/architecture.md +257 -257
- package/docs/project/changelog.md +19 -0
- package/docs/project/design.md +190 -190
- package/docs/project/how-to/package-local.md +5 -5
- package/docs/project/how-to/run.md +2 -2
- package/package.json +1 -1
- package/dist/client/assets/arc-BQ8FQIxG.js +0 -1
- package/dist/client/assets/arc-D29HaK0-.js +0 -1
- package/dist/client/assets/arc-DN1TRxdV.js +0 -1
- package/dist/client/assets/arc-EsqL9E_k.js +0 -1
- package/dist/client/assets/arc-lxhneEjK.js +0 -1
- package/dist/client/assets/architecture-7EHR7CIX-BqNz3w30.js +0 -1
- package/dist/client/assets/architecture-7EHR7CIX-CFJQjcdg.js +0 -1
- package/dist/client/assets/architecture-7EHR7CIX-ClbxVUwJ.js +0 -1
- package/dist/client/assets/architecture-7EHR7CIX-CyNbBoe0.js +0 -1
- package/dist/client/assets/architecture-7EHR7CIX-DSRN3R9m.js +0 -1
- package/dist/client/assets/architecture-7EHR7CIX-PtlJ4dOt.js +0 -1
- package/dist/client/assets/architectureDiagram-3BPJPVTR-BcWhK0P7.js +0 -36
- package/dist/client/assets/architectureDiagram-3BPJPVTR-CFDO5Pht.js +0 -36
- package/dist/client/assets/architectureDiagram-3BPJPVTR-YHMi__Re.js +0 -36
- package/dist/client/assets/architectureDiagram-3BPJPVTR-tkcUxvnc.js +0 -36
- package/dist/client/assets/architectureDiagram-3BPJPVTR-uohXcL3U.js +0 -36
- package/dist/client/assets/blockDiagram-GPEHLZMM-CmuICidh.js +0 -132
- package/dist/client/assets/blockDiagram-GPEHLZMM-Cw-DTpkY.js +0 -132
- package/dist/client/assets/blockDiagram-GPEHLZMM-D8CFcow6.js +0 -132
- package/dist/client/assets/blockDiagram-GPEHLZMM-DITm6e9a.js +0 -132
- package/dist/client/assets/blockDiagram-GPEHLZMM-sRYCtT3R.js +0 -132
- package/dist/client/assets/c4Diagram-AAUBKEIU-CAKSwn1Q.js +0 -10
- package/dist/client/assets/c4Diagram-AAUBKEIU-CQNX7g2f.js +0 -10
- package/dist/client/assets/c4Diagram-AAUBKEIU-Cmr0FZN2.js +0 -10
- package/dist/client/assets/c4Diagram-AAUBKEIU-hz6fXX48.js +0 -10
- package/dist/client/assets/c4Diagram-AAUBKEIU-jMpUd_wV.js +0 -10
- package/dist/client/assets/channel-BLySICXj.js +0 -1
- package/dist/client/assets/channel-BhTl1myF.js +0 -1
- package/dist/client/assets/channel-C6YaMftE.js +0 -1
- package/dist/client/assets/channel-DCmlVXgL.js +0 -1
- package/dist/client/assets/channel-DGNLHxy4.js +0 -1
- package/dist/client/assets/channel-x4T-_YD7.js +0 -1
- package/dist/client/assets/chunk-2J33WTMH-CbW3CBuf.js +0 -1
- package/dist/client/assets/chunk-2J33WTMH-Cwe8zhoU.js +0 -1
- package/dist/client/assets/chunk-2J33WTMH-D3_CoMp1.js +0 -1
- package/dist/client/assets/chunk-2J33WTMH-DN_GVUWe.js +0 -1
- package/dist/client/assets/chunk-2J33WTMH-zDzeRZN5.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-9XalwBpW.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-B5EdDr8j.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-BFtetfgd.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-DGIU4KKY.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-jTIxI8DZ.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-BPpZck88.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-BV23knRO.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-C0d8c7Vo.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-CQ_t4_xx.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-JZcTe9lc.js +0 -1
- package/dist/client/assets/chunk-727SXJPM-BSL_F1Le.js +0 -206
- package/dist/client/assets/chunk-727SXJPM-D47mkitj.js +0 -206
- package/dist/client/assets/chunk-727SXJPM-D9_MqMP5.js +0 -206
- package/dist/client/assets/chunk-727SXJPM-RyJFEFm-.js +0 -206
- package/dist/client/assets/chunk-727SXJPM-nDNND1Fi.js +0 -206
- package/dist/client/assets/chunk-AQP2D5EJ-CtXh86Eg.js +0 -231
- package/dist/client/assets/chunk-AQP2D5EJ-CwxUU4hk.js +0 -231
- package/dist/client/assets/chunk-AQP2D5EJ-D0baAcg1.js +0 -231
- package/dist/client/assets/chunk-AQP2D5EJ-DCPlWaAh.js +0 -231
- package/dist/client/assets/chunk-AQP2D5EJ-J_DkonSc.js +0 -231
- package/dist/client/assets/chunk-FMBD7UC4-BbZ1AGyL.js +0 -15
- package/dist/client/assets/chunk-FMBD7UC4-BdGnGsSk.js +0 -15
- package/dist/client/assets/chunk-FMBD7UC4-CVSNIJCH.js +0 -15
- package/dist/client/assets/chunk-FMBD7UC4-CqUEgFjs.js +0 -15
- package/dist/client/assets/chunk-FMBD7UC4-DC5BOUfb.js +0 -15
- package/dist/client/assets/chunk-ND2GUHAM-BSN4IQif.js +0 -1
- package/dist/client/assets/chunk-ND2GUHAM-CnGwaH5L.js +0 -1
- package/dist/client/assets/chunk-ND2GUHAM-DNiW6T9n.js +0 -1
- package/dist/client/assets/chunk-ND2GUHAM-DlypeIxK.js +0 -1
- package/dist/client/assets/chunk-ND2GUHAM-dO9yBJ9c.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-BHbu3UP6.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-BpYsV_6y.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-CO1iLMuP.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-DXTWyPl6.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-Dp-LTU9i.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-kXi8OW4-.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-AtKel0XH.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-B0NpKzPr.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-Bk7OZQQT.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CUT5SOh1.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DR6twz9n.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-XKa3UYeT.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-C10EkiwP.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CYNm9k9j.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Cu6f4_Qr.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DVtSKtsc.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DdsQ5sc8.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-M8Y05qZy.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-C5IwfIBU.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-C6fAtGoM.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-CDm9Oap6.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-CRCh_MP2.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-D-iXlubx.js +0 -1
- package/dist/client/assets/dagre-BM42HDAG-C1UxjNQo.js +0 -4
- package/dist/client/assets/dagre-BM42HDAG-CN_eUZpE.js +0 -4
- package/dist/client/assets/dagre-BM42HDAG-DG3qHB9n.js +0 -4
- package/dist/client/assets/dagre-BM42HDAG-DGqTKLQn.js +0 -4
- package/dist/client/assets/dagre-BM42HDAG-HhxsMVKO.js +0 -4
- package/dist/client/assets/diagram-2AECGRRQ-CPsbxJxF.js +0 -43
- package/dist/client/assets/diagram-2AECGRRQ-DFQSvODp.js +0 -43
- package/dist/client/assets/diagram-2AECGRRQ-DMEfdrj9.js +0 -43
- package/dist/client/assets/diagram-2AECGRRQ-DlJ7PqUC.js +0 -43
- package/dist/client/assets/diagram-2AECGRRQ-DvCOeQpl.js +0 -43
- package/dist/client/assets/diagram-5GNKFQAL-CV0_MyBI.js +0 -10
- package/dist/client/assets/diagram-5GNKFQAL-Cz34sKoA.js +0 -10
- package/dist/client/assets/diagram-5GNKFQAL-DP3pe1RC.js +0 -10
- package/dist/client/assets/diagram-5GNKFQAL-DxF6k7UP.js +0 -10
- package/dist/client/assets/diagram-5GNKFQAL-iSa2z6P6.js +0 -10
- package/dist/client/assets/diagram-KO2AKTUF-BRgzZSvK.js +0 -3
- package/dist/client/assets/diagram-KO2AKTUF-CIV3uGBq.js +0 -3
- package/dist/client/assets/diagram-KO2AKTUF-CTH7FURo.js +0 -3
- package/dist/client/assets/diagram-KO2AKTUF-C_2zZZh0.js +0 -3
- package/dist/client/assets/diagram-KO2AKTUF-Cuss_t-R.js +0 -3
- package/dist/client/assets/diagram-LMA3HP47-D0uf37D2.js +0 -24
- package/dist/client/assets/diagram-LMA3HP47-DCJWcert.js +0 -24
- package/dist/client/assets/diagram-LMA3HP47-DHLGCfmQ.js +0 -24
- package/dist/client/assets/diagram-LMA3HP47-DqcX8v1J.js +0 -24
- package/dist/client/assets/diagram-LMA3HP47-Y_acETft.js +0 -24
- package/dist/client/assets/diagram-OG6HWLK6-Bpl1By3g.js +0 -24
- package/dist/client/assets/diagram-OG6HWLK6-BpniHTDY.js +0 -24
- package/dist/client/assets/diagram-OG6HWLK6-CPIuiHbu.js +0 -24
- package/dist/client/assets/diagram-OG6HWLK6-CYWwbYrm.js +0 -24
- package/dist/client/assets/diagram-OG6HWLK6-CmxjZhDt.js +0 -24
- package/dist/client/assets/dist-B6O_DpEm.js +0 -1
- package/dist/client/assets/dist-BMcGXJl_.js +0 -1
- package/dist/client/assets/dist-BMrfqEff.js +0 -1
- package/dist/client/assets/dist-BNzWMaB6.js +0 -1
- package/dist/client/assets/dist-BP22L48M.js +0 -1
- package/dist/client/assets/dist-BQFQYyOf.js +0 -1
- package/dist/client/assets/dist-BS_Wb5ek.js +0 -1
- package/dist/client/assets/dist-BTSt8RmS.js +0 -1
- package/dist/client/assets/dist-BTqWikmn.js +0 -9
- package/dist/client/assets/dist-BU-v7eOh.js +0 -1
- package/dist/client/assets/dist-BW9zpavZ.js +0 -1
- package/dist/client/assets/dist-BYpLoh88.js +0 -1
- package/dist/client/assets/dist-Ba2VBCEx.js +0 -1
- package/dist/client/assets/dist-BbyHZUWl.js +0 -1
- package/dist/client/assets/dist-Bj-AtBpB.js +0 -1
- package/dist/client/assets/dist-BkIFud2w.js +0 -2
- package/dist/client/assets/dist-BkJurX-Q.js +0 -2
- package/dist/client/assets/dist-BmvzHEa6.js +0 -1
- package/dist/client/assets/dist-BrtuoXw3.js +0 -1
- package/dist/client/assets/dist-Bv1_rpJY.js +0 -2
- package/dist/client/assets/dist-BxJTQCfI.js +0 -1
- package/dist/client/assets/dist-By195sxY.js +0 -1
- package/dist/client/assets/dist-C0PJTPJf.js +0 -1
- package/dist/client/assets/dist-C70w0n6j.js +0 -1
- package/dist/client/assets/dist-C7zhb6ia.js +0 -1
- package/dist/client/assets/dist-CFQ-7y4O.js +0 -1
- package/dist/client/assets/dist-CJvz1rI0.js +0 -2
- package/dist/client/assets/dist-CKq8Ue0B.js +0 -1
- package/dist/client/assets/dist-CL-xNTXw.js +0 -1
- package/dist/client/assets/dist-CRDAhP-_.js +0 -9
- package/dist/client/assets/dist-CS16K7fI.js +0 -1
- package/dist/client/assets/dist-CTOPKEFU.js +0 -1
- package/dist/client/assets/dist-C_7Kdz86.js +0 -1
- package/dist/client/assets/dist-Catly5LE.js +0 -1
- package/dist/client/assets/dist-Cf5WqFxW.js +0 -1
- package/dist/client/assets/dist-ChpghJfy.js +0 -9
- package/dist/client/assets/dist-ChvQZ65S.js +0 -1
- package/dist/client/assets/dist-Cj50abYe.js +0 -1
- package/dist/client/assets/dist-CmE34U3l.js +0 -1
- package/dist/client/assets/dist-CnEAsIWK.js +0 -11
- package/dist/client/assets/dist-Cokhcc-e.js +0 -1
- package/dist/client/assets/dist-Cp5GrNtz.js +0 -1
- package/dist/client/assets/dist-Ct9nOXP2.js +0 -1
- package/dist/client/assets/dist-CuQa92y3.js +0 -1
- package/dist/client/assets/dist-Cu_x7LYJ.js +0 -1
- package/dist/client/assets/dist-D0wTN10c.js +0 -2
- package/dist/client/assets/dist-D6XIhlK2.js +0 -1
- package/dist/client/assets/dist-D96yzPvR.js +0 -1
- package/dist/client/assets/dist-DIbBkegB.js +0 -1
- package/dist/client/assets/dist-DLMHIC1t.js +0 -1
- package/dist/client/assets/dist-DNA1Z08m.js +0 -1
- package/dist/client/assets/dist-DNKDt2SL.js +0 -9
- package/dist/client/assets/dist-DNbCIPJZ.js +0 -1
- package/dist/client/assets/dist-DRO62xNi.js +0 -11
- package/dist/client/assets/dist-DSuqFJZG.js +0 -1
- package/dist/client/assets/dist-DVQbjcvW.js +0 -1
- package/dist/client/assets/dist-DWY4UZzp.js +0 -1
- package/dist/client/assets/dist-DYo-CenB.js +0 -1
- package/dist/client/assets/dist-DZdkfueI.js +0 -1
- package/dist/client/assets/dist-Dd92cuCD.js +0 -1
- package/dist/client/assets/dist-Dhrxncs7.js +0 -1
- package/dist/client/assets/dist-DkBb8pyD.js +0 -1
- package/dist/client/assets/dist-DpfF9ujP.js +0 -1
- package/dist/client/assets/dist-DsXVGesw.js +0 -1
- package/dist/client/assets/dist-DzHWpwvC.js +0 -9
- package/dist/client/assets/dist-FD0Pk5v3.js +0 -1
- package/dist/client/assets/dist-HEJhLJLi.js +0 -11
- package/dist/client/assets/dist-JvwHRPyx.js +0 -1
- package/dist/client/assets/dist-LeORtSWk.js +0 -1
- package/dist/client/assets/dist-Lt0tqjQf.js +0 -1
- package/dist/client/assets/dist-M8PzXy6d.js +0 -1
- package/dist/client/assets/dist-MQmNzVLE.js +0 -1
- package/dist/client/assets/dist-PXqLsMmX.js +0 -1
- package/dist/client/assets/dist-VLVu-KW2.js +0 -1
- package/dist/client/assets/dist-YLM2KsVW.js +0 -1
- package/dist/client/assets/dist-bfKL2iu_.js +0 -1
- package/dist/client/assets/dist-h-MwnblL.js +0 -1
- package/dist/client/assets/dist-hXXcIbxU.js +0 -1
- package/dist/client/assets/dist-llL-i6i2.js +0 -1
- package/dist/client/assets/dist-mQxXzSBY.js +0 -1
- package/dist/client/assets/dist-ogHbs9vd.js +0 -1
- package/dist/client/assets/dist-os_6esOz.js +0 -1
- package/dist/client/assets/dist-t0zWlbUu.js +0 -11
- package/dist/client/assets/dist-uL3SbE3I.js +0 -11
- package/dist/client/assets/dist-xIpUAkiA.js +0 -1
- package/dist/client/assets/erDiagram-TEJ5UH35-BXxzMHpX.js +0 -85
- package/dist/client/assets/erDiagram-TEJ5UH35-CTM4iRPt.js +0 -85
- package/dist/client/assets/erDiagram-TEJ5UH35-DaaUCEf-.js +0 -85
- package/dist/client/assets/erDiagram-TEJ5UH35-DnwoJhSL.js +0 -85
- package/dist/client/assets/erDiagram-TEJ5UH35-Dofm20uI.js +0 -85
- package/dist/client/assets/eventmodeling-FCH6USID-CG8-lqF5.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-Ckn2qnKs.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-DsmiUeUD.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-IsJECylp.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-TfS978Hk.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-rDVHKK_z.js +0 -1
- package/dist/client/assets/flowDiagram-I6XJVG4X-CwbJrsAH.js +0 -162
- package/dist/client/assets/flowDiagram-I6XJVG4X-DB8NE8dO.js +0 -162
- package/dist/client/assets/flowDiagram-I6XJVG4X-DG3xWBhm.js +0 -162
- package/dist/client/assets/flowDiagram-I6XJVG4X-SHBvldeJ.js +0 -162
- package/dist/client/assets/flowDiagram-I6XJVG4X-lRhOrZDv.js +0 -162
- package/dist/client/assets/ganttDiagram-6RSMTGT7-BKybsoxO.js +0 -292
- package/dist/client/assets/ganttDiagram-6RSMTGT7-CO57UxDH.js +0 -292
- package/dist/client/assets/ganttDiagram-6RSMTGT7-CV4c0bxZ.js +0 -292
- package/dist/client/assets/ganttDiagram-6RSMTGT7-D5PiNC8A.js +0 -292
- package/dist/client/assets/ganttDiagram-6RSMTGT7-DdVvDmnp.js +0 -292
- package/dist/client/assets/gitGraph-WXDBUCRP-B5abLcfr.js +0 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-CEUAsiWg.js +0 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-CPPxqCrS.js +0 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-Cj9_uihB.js +0 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-Q72MkpNg.js +0 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-ojGUgaVb.js +0 -1
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-BckLmYy0.js +0 -106
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-CQvq0IhO.js +0 -106
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-D547DZF5.js +0 -106
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-DOFs1eg8.js +0 -106
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-Dba8FK50.js +0 -106
- package/dist/client/assets/index-8YKIjcJe.js +0 -532
- package/dist/client/assets/index-Bc6bzkA8.js +0 -532
- package/dist/client/assets/index-BewIyJmj.js +0 -532
- package/dist/client/assets/index-BhJ9ao0y.js +0 -532
- package/dist/client/assets/index-CzvLoUvF.js +0 -532
- package/dist/client/assets/index-ckENP4pU.js +0 -532
- package/dist/client/assets/info-J43DQDTF-BOKPpojc.js +0 -1
- package/dist/client/assets/info-J43DQDTF-CWf75QJC.js +0 -1
- package/dist/client/assets/info-J43DQDTF-Db_7Q2r9.js +0 -1
- package/dist/client/assets/info-J43DQDTF-DfyyKBT0.js +0 -1
- package/dist/client/assets/info-J43DQDTF-Esf2TaF1.js +0 -1
- package/dist/client/assets/info-J43DQDTF-bdterZJm.js +0 -1
- package/dist/client/assets/infoDiagram-5YYISTIA-C6MmRXdl.js +0 -2
- package/dist/client/assets/infoDiagram-5YYISTIA-CJx1aJYH.js +0 -2
- package/dist/client/assets/infoDiagram-5YYISTIA-DAFFEaMX.js +0 -2
- package/dist/client/assets/infoDiagram-5YYISTIA-DPPbj55q.js +0 -2
- package/dist/client/assets/infoDiagram-5YYISTIA-LrF3QIgt.js +0 -2
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-BeqvjDIl.js +0 -70
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-D1voQ_A3.js +0 -70
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-DQVs-e5F.js +0 -70
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-DellCRrr.js +0 -70
- package/dist/client/assets/ishikawaDiagram-YF4QCWOH-j2svCPD_.js +0 -70
- package/dist/client/assets/journeyDiagram-JHISSGLW-ByjUcNIQ.js +0 -139
- package/dist/client/assets/journeyDiagram-JHISSGLW-CjmHTXWw.js +0 -139
- package/dist/client/assets/journeyDiagram-JHISSGLW-CyW3uYgl.js +0 -139
- package/dist/client/assets/journeyDiagram-JHISSGLW-DHG9tEO9.js +0 -139
- package/dist/client/assets/journeyDiagram-JHISSGLW-DMhylUSs.js +0 -139
- package/dist/client/assets/kanban-definition-UN3LZRKU-By6J-toY.js +0 -89
- package/dist/client/assets/kanban-definition-UN3LZRKU-CPmisIY0.js +0 -89
- package/dist/client/assets/kanban-definition-UN3LZRKU-DJq0v7yA.js +0 -89
- package/dist/client/assets/kanban-definition-UN3LZRKU-Odm95TPd.js +0 -89
- package/dist/client/assets/kanban-definition-UN3LZRKU-RhdfI1Go.js +0 -89
- package/dist/client/assets/linear-CCnRmQWj.js +0 -1
- package/dist/client/assets/linear-CLY6mbcf.js +0 -1
- package/dist/client/assets/linear-D2PqFEbl.js +0 -1
- package/dist/client/assets/linear-U4CTwA5d.js +0 -1
- package/dist/client/assets/linear-fC_JigXY.js +0 -1
- package/dist/client/assets/mermaid-parser.core-BaqVS2PS.js +0 -161
- package/dist/client/assets/mermaid-parser.core-CXSSSULW.js +0 -161
- package/dist/client/assets/mermaid-parser.core-D4wkA2RA.js +0 -161
- package/dist/client/assets/mermaid-parser.core-DJaMK5f0.js +0 -161
- package/dist/client/assets/mermaid-parser.core-Dg7giF1T.js +0 -161
- package/dist/client/assets/mindmap-definition-RKZ34NQL-CakoPsMY.js +0 -96
- package/dist/client/assets/mindmap-definition-RKZ34NQL-Ck-hSWI1.js +0 -96
- package/dist/client/assets/mindmap-definition-RKZ34NQL-DQ6OHT_i.js +0 -96
- package/dist/client/assets/mindmap-definition-RKZ34NQL-DUC927Xf.js +0 -96
- package/dist/client/assets/mindmap-definition-RKZ34NQL-DeFA1j35.js +0 -96
- package/dist/client/assets/packet-YPE3B663-B3KOrKph.js +0 -1
- package/dist/client/assets/packet-YPE3B663-BZYQ3FCV.js +0 -1
- package/dist/client/assets/packet-YPE3B663-CCp5WtTq.js +0 -1
- package/dist/client/assets/packet-YPE3B663-CfJJ9tXN.js +0 -1
- package/dist/client/assets/packet-YPE3B663-Ctl6nY1w.js +0 -1
- package/dist/client/assets/packet-YPE3B663-_U-6UVls.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-BAnVLQEp.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-BbZVTGZg.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-CYEccf3s.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-DlRiXmmJ.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-Dm3u76QZ.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-X0vz9XKi.js +0 -1
- package/dist/client/assets/pieDiagram-4H26LBE5-CAXyv9NR.js +0 -30
- package/dist/client/assets/pieDiagram-4H26LBE5-Cp_atO_B.js +0 -30
- package/dist/client/assets/pieDiagram-4H26LBE5-CzJrKJr4.js +0 -30
- package/dist/client/assets/pieDiagram-4H26LBE5-JffHRhRs.js +0 -30
- package/dist/client/assets/pieDiagram-4H26LBE5-pmEU7Uu5.js +0 -30
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-B0JKtXGW.js +0 -7
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-CkJY1wkN.js +0 -7
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-DDnjiiYP.js +0 -7
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-DR-dJSMY.js +0 -7
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-Dg9KCwo0.js +0 -7
- package/dist/client/assets/radar-GUYGQ44K-8ZjjdwFn.js +0 -1
- package/dist/client/assets/radar-GUYGQ44K-BbAfN5-x.js +0 -1
- package/dist/client/assets/radar-GUYGQ44K-Bwdc6UPK.js +0 -1
- package/dist/client/assets/radar-GUYGQ44K-CXCenk63.js +0 -1
- package/dist/client/assets/radar-GUYGQ44K-CuJfIW1O.js +0 -1
- package/dist/client/assets/radar-GUYGQ44K-D7_r3KxN.js +0 -1
- package/dist/client/assets/requirementDiagram-4Y6WPE33-BwXGdVNn.js +0 -84
- package/dist/client/assets/requirementDiagram-4Y6WPE33-D6YIEesF.js +0 -84
- package/dist/client/assets/requirementDiagram-4Y6WPE33-DP0YrPiG.js +0 -84
- package/dist/client/assets/requirementDiagram-4Y6WPE33-DqqKjv9b.js +0 -84
- package/dist/client/assets/requirementDiagram-4Y6WPE33-Sc9Ib_Ju.js +0 -84
- package/dist/client/assets/sankeyDiagram-5OEKKPKP-CTglKOYH.js +0 -40
- package/dist/client/assets/sankeyDiagram-5OEKKPKP-Cdn5hR-T.js +0 -40
- package/dist/client/assets/sankeyDiagram-5OEKKPKP-CtjDOI1d.js +0 -40
- package/dist/client/assets/sankeyDiagram-5OEKKPKP-D1JvUXfm.js +0 -40
- package/dist/client/assets/sankeyDiagram-5OEKKPKP-DmlH_EuV.js +0 -40
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-B1l_RYCD.js +0 -162
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-BODENHDd.js +0 -162
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-BfXBRbtn.js +0 -162
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-ZsntJaDA.js +0 -162
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-g0S6cpjA.js +0 -162
- package/dist/client/assets/stateDiagram-AJRCARHV-BH3emNVA.js +0 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-Bfy4u1jj.js +0 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-DTL_BeMw.js +0 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-DuMfvw76.js +0 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-bEyFJqkt.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BeBJn9Ia.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BySjtxL0.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CJJ1ZY2Q.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CewRZjoh.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Ctaegh5b.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Duq_b4Yy.js +0 -1
- package/dist/client/assets/timeline-definition-PNZ67QCA-BrvVyhY0.js +0 -120
- package/dist/client/assets/timeline-definition-PNZ67QCA-BtixI1WS.js +0 -120
- package/dist/client/assets/timeline-definition-PNZ67QCA-D9KAhtfV.js +0 -120
- package/dist/client/assets/timeline-definition-PNZ67QCA-XT2bwWOB.js +0 -120
- package/dist/client/assets/timeline-definition-PNZ67QCA-aOxVtn0E.js +0 -120
- package/dist/client/assets/treeView-BLDUP644-B0kTb_g3.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-B6UCevyB.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-ClAwlEqa.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-SGGobL-X.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-UtXcJa80.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-X3LRngOg.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-BVDdbYmy.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-CSUALSge.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-D7lbGl6O.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-DDMghpbA.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-FsJUYG1s.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-Kcw-WZrd.js +0 -1
- package/dist/client/assets/vennDiagram-CIIHVFJN-ByGExN5N.js +0 -34
- package/dist/client/assets/vennDiagram-CIIHVFJN-CTqKsU3a.js +0 -34
- package/dist/client/assets/vennDiagram-CIIHVFJN-Dra5j7V2.js +0 -34
- package/dist/client/assets/vennDiagram-CIIHVFJN-JUG6MMjw.js +0 -34
- package/dist/client/assets/vennDiagram-CIIHVFJN-vqKQtTQi.js +0 -34
- package/dist/client/assets/wardley-L42UT6IY-BCqwgr28.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-BYdsv-7d.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-DJ-60DT_.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-DdTJfznk.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-DznNraZH.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-R3qTlKe5.js +0 -1
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-BNMsJ5dX.js +0 -78
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-CJbjncot.js +0 -78
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-DGMk2w-Q.js +0 -78
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-Xyf3f312.js +0 -78
- package/dist/client/assets/wardleyDiagram-YWT4CUSO-bCQqSS9Y.js +0 -78
- package/dist/client/assets/xychartDiagram-2RQKCTM6-BppcNHGA.js +0 -7
- package/dist/client/assets/xychartDiagram-2RQKCTM6-CGoX_9dB.js +0 -7
- package/dist/client/assets/xychartDiagram-2RQKCTM6-Cbjyvu2C.js +0 -7
- package/dist/client/assets/xychartDiagram-2RQKCTM6-DiHjc_ea.js +0 -7
- package/dist/client/assets/xychartDiagram-2RQKCTM6-Dit8uJrh.js +0 -7
|
@@ -1,258 +1,258 @@
|
|
|
1
|
-
# Architecture
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
`wikied` is a packaged local web application. A Node CLI starts an Express server, the server exposes filesystem and git APIs and serves a prebuilt React app, and the browser UI uses those APIs to edit Markdown files under the selected root.
|
|
6
|
-
|
|
7
|
-
Only the server touches the filesystem and git. The client sends root-relative intent, and the server validates each path before reading, writing, creating, renaming, copying assets, or running git commands.
|
|
8
|
-
|
|
9
|
-
## Runtime Flow
|
|
10
|
-
|
|
11
|
-
```mermaid
|
|
12
|
-
flowchart LR
|
|
13
|
-
User[Terminal] --> CLI[wikied CLI]
|
|
14
|
-
CLI -->|optional --git clone| Git[git clone]
|
|
15
|
-
CLI --> Server[Express server on 127.0.0.1]
|
|
16
|
-
Server --> Static[dist/client React app]
|
|
17
|
-
Browser[Browser UI] --> Static
|
|
18
|
-
Browser --> API[REST API]
|
|
19
|
-
API --> Safety[Path safety layer]
|
|
20
|
-
Safety --> FS[Workspace files]
|
|
21
|
-
API --> GitOps[Git operations]
|
|
22
|
-
GitOps --> Repo[.git repository]
|
|
23
|
-
API --> Settings[~/.wikied/settings.json]
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Boundaries
|
|
27
|
-
|
|
28
|
-
### CLI
|
|
29
|
-
|
|
30
|
-
The CLI lives in `src/cli` and is responsible for:
|
|
31
|
-
|
|
32
|
-
* Parsing the optional root path.
|
|
33
|
-
* Parsing `--port`, `--no-open`, `--dev-client`, and `--git <url>`.
|
|
34
|
-
* Resolving the opened root.
|
|
35
|
-
* Running a pre-flight `git clone` when `--git` is supplied (before the server starts).
|
|
36
|
-
* Loading user-level settings.
|
|
37
|
-
* Starting the Express server.
|
|
38
|
-
* Printing the local URL.
|
|
39
|
-
* Opening the browser when settings allow it and `--no-open` is absent.
|
|
40
|
-
|
|
41
|
-
### Server
|
|
42
|
-
|
|
43
|
-
The server lives in `src/server` and is responsible for:
|
|
44
|
-
|
|
45
|
-
* Serving the React build.
|
|
46
|
-
* Listing the file tree.
|
|
47
|
-
* Reading and writing Markdown files (with UTF-16 LE BOM detection on read).
|
|
48
|
-
* Validating paths against the opened root.
|
|
49
|
-
* Rejecting symlink escapes and traversal attempts.
|
|
50
|
-
* Creating and renaming Markdown files.
|
|
51
|
-
* Copying image assets.
|
|
52
|
-
* Detecting save conflicts using revision tokens.
|
|
53
|
-
* Reading and writing user-level settings.
|
|
54
|
-
* Reporting workspace state (`isEmpty`, `isGitRepo`) on the health endpoint.
|
|
55
|
-
* Cloning a git repository into an empty root (`POST /api/clone`).
|
|
56
|
-
* Running git status, commit, push, and pull when the workspace is a git repository.
|
|
57
|
-
* Returning structured API errors.
|
|
58
|
-
|
|
59
|
-
### Client
|
|
60
|
-
|
|
61
|
-
The React app lives in `src/client` and is responsible for:
|
|
62
|
-
|
|
63
|
-
* Rendering the Mantine `AppShell` with a top bar, conditionally visible right aside, and editor main area.
|
|
64
|
-
* Showing a clone-on-empty-root modal when `GET /api/health` reports `isEmpty: true`.
|
|
65
|
-
* Displaying the filename pill with an inline file picker combobox (`Ctrl+P`).
|
|
66
|
-
* Showing an orange dirty indicator dot beside the filename pill.
|
|
67
|
-
* Managing the active document state.
|
|
68
|
-
* Caching unsaved edits in memory when switching away from a dirty file so Save all can restore and save them later.
|
|
69
|
-
* Showing Rich and Preview modes.
|
|
70
|
-
* Tracking dirty state across multiple files.
|
|
71
|
-
* Triggering save, autosave, and relative-link navigation flows.
|
|
72
|
-
* Rendering a Save button with a dirty-count badge; Save all iterates the dirty cache.
|
|
73
|
-
* Rendering a Git button (when `isGitRepo: true`) with a changed-files badge; popover offers Commit, Push, and Pull.
|
|
74
|
-
* Rendering the Outline and Recent panels as drawers or a pinned aside.
|
|
75
|
-
* Rendering Markdown preview and Mermaid diagrams.
|
|
76
|
-
* Applying theme (System / Light / Dark) via Mantine's color scheme system.
|
|
77
|
-
|
|
78
|
-
### Shared Utilities
|
|
79
|
-
|
|
80
|
-
Shared code lives in `src/shared` and contains:
|
|
81
|
-
|
|
82
|
-
* API request and response types.
|
|
83
|
-
* Error code constants (including `GIT_ERROR`).
|
|
84
|
-
* Markdown extension detection.
|
|
85
|
-
* Client path normalization.
|
|
86
|
-
|
|
87
|
-
### Git Helper Module
|
|
88
|
-
|
|
89
|
-
`src/server/git.ts` provides thin shell-out helpers used by the server endpoints:
|
|
90
|
-
|
|
91
|
-
* `isEmptyDir(path)` — checks whether a directory has no entries.
|
|
92
|
-
* `isGitRepo(path)` — checks whether `path/.git` exists.
|
|
93
|
-
* `gitClone(url, cwd)` — spawns `git clone <url> .` with a 60-second timeout.
|
|
94
|
-
* `gitStatus(cwd)` — returns the count of changed lines from `git status --short`.
|
|
95
|
-
* `gitCommit(message, cwd)` — runs `git add -A` then `git commit -m`.
|
|
96
|
-
* `gitPush(cwd)` — runs `git push`.
|
|
97
|
-
* `gitPull(cwd)` — runs `git pull`.
|
|
98
|
-
|
|
99
|
-
All helpers spawn child processes with a 30-second timeout (60 s for clone) and propagate stderr as the error message on non-zero exit.
|
|
100
|
-
|
|
101
|
-
## Data Flow
|
|
102
|
-
|
|
103
|
-
### Initial Load
|
|
104
|
-
|
|
105
|
-
```mermaid
|
|
106
|
-
sequenceDiagram
|
|
107
|
-
participant UI as React UI
|
|
108
|
-
participant API as Express API
|
|
109
|
-
participant Settings as Settings file
|
|
110
|
-
participant FS as Workspace
|
|
111
|
-
|
|
112
|
-
UI->>API: GET /api/health
|
|
113
|
-
API-->>UI: ok, isEmpty, isGitRepo
|
|
114
|
-
UI->>API: GET /api/settings
|
|
115
|
-
API->>Settings: Read ~/.wikied/settings.json or defaults
|
|
116
|
-
UI->>API: GET /api/tree
|
|
117
|
-
API->>FS: Recursively list root
|
|
118
|
-
API-->>UI: Settings and tree (parallel)
|
|
119
|
-
alt isEmpty true
|
|
120
|
-
UI->>UI: Show clone-or-start-empty modal
|
|
121
|
-
end
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Clone From Browser
|
|
125
|
-
|
|
126
|
-
```mermaid
|
|
127
|
-
sequenceDiagram
|
|
128
|
-
participant UI as React UI
|
|
129
|
-
participant API as Express API
|
|
130
|
-
participant Git as git CLI
|
|
131
|
-
|
|
132
|
-
UI->>API: POST /api/clone {url}
|
|
133
|
-
API->>API: Validate URL format and root is still empty
|
|
134
|
-
API->>Git: git clone <url> .
|
|
135
|
-
Git-->>API: Exit code
|
|
136
|
-
alt Success
|
|
137
|
-
API-->>UI: 204 No Content
|
|
138
|
-
UI->>API: GET /api/health + GET /api/tree
|
|
139
|
-
UI->>UI: Dismiss modal, load workspace
|
|
140
|
-
else Failure
|
|
141
|
-
API-->>UI: 500 with stderr message
|
|
142
|
-
UI->>UI: Show error inline
|
|
143
|
-
end
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Opening A File
|
|
147
|
-
|
|
148
|
-
```mermaid
|
|
149
|
-
sequenceDiagram
|
|
150
|
-
participant UI as React UI
|
|
151
|
-
participant API as Express API
|
|
152
|
-
participant FS as Filesystem
|
|
153
|
-
|
|
154
|
-
UI->>API: GET /api/files/content?path=guide.md
|
|
155
|
-
API->>API: Validate path under root and extension
|
|
156
|
-
API->>FS: Read file bytes (detect UTF-16 LE BOM)
|
|
157
|
-
FS-->>API: Content, mtime, size, hash
|
|
158
|
-
API-->>UI: Content plus revision token
|
|
159
|
-
UI->>UI: Populate editor and mark clean
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Saving A File
|
|
163
|
-
|
|
164
|
-
```mermaid
|
|
165
|
-
sequenceDiagram
|
|
166
|
-
participant UI as React UI
|
|
167
|
-
participant API as Express API
|
|
168
|
-
participant FS as Filesystem
|
|
169
|
-
|
|
170
|
-
UI->>API: PUT /api/files/content with path, content, revision
|
|
171
|
-
API->>API: Validate path and compare disk revision
|
|
172
|
-
alt Revision matches
|
|
173
|
-
API->>FS: Write file
|
|
174
|
-
FS-->>API: New stat and hash
|
|
175
|
-
API-->>UI: Saved with new revision
|
|
176
|
-
UI->>UI: Update activeFile.revision in App state
|
|
177
|
-
else Revision differs
|
|
178
|
-
API-->>UI: 409 conflict with latest disk content
|
|
179
|
-
end
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Switching Files With Unsaved Edits
|
|
183
|
-
|
|
184
|
-
```mermaid
|
|
185
|
-
sequenceDiagram
|
|
186
|
-
participant UI as React UI
|
|
187
|
-
participant Cache as App dirty cache
|
|
188
|
-
|
|
189
|
-
Note over UI: File A is dirty, user opens File B
|
|
190
|
-
UI->>Cache: Store {content, revision} for File A
|
|
191
|
-
UI->>UI: Fetch and open File B normally
|
|
192
|
-
Note over UI: User switches back to File A
|
|
193
|
-
UI->>Cache: Retrieve cached content for File A
|
|
194
|
-
UI->>UI: Open File A with cached content as initialContent<br/>disk content as diskContent (EditorWorkspace starts dirty)
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### Opening A Relative Preview Link
|
|
198
|
-
|
|
199
|
-
```mermaid
|
|
200
|
-
sequenceDiagram
|
|
201
|
-
participant Preview as Markdown Preview
|
|
202
|
-
participant Editor as EditorWorkspace
|
|
203
|
-
participant App as App state
|
|
204
|
-
participant API as Express API
|
|
205
|
-
|
|
206
|
-
Preview->>Editor: Relative link clicked
|
|
207
|
-
Editor->>Editor: Resolve href from active document directory
|
|
208
|
-
alt Dirty document
|
|
209
|
-
Editor->>Editor: Confirm save or cancel
|
|
210
|
-
Editor->>API: PUT current document when confirmed
|
|
211
|
-
end
|
|
212
|
-
Editor->>App: Open resolved path
|
|
213
|
-
App->>API: GET /api/files/content?path=resolved.md
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Safety Model
|
|
217
|
-
|
|
218
|
-
All filesystem operations resolve the requested path to an absolute real path and verify that it stays under the opened root.
|
|
219
|
-
|
|
220
|
-
The server rejects:
|
|
221
|
-
|
|
222
|
-
* `..` traversal.
|
|
223
|
-
* Absolute paths from client requests.
|
|
224
|
-
* Symlink paths that resolve outside the root.
|
|
225
|
-
* Editable operations for unsupported extensions.
|
|
226
|
-
* Rename operations that overwrite an existing file.
|
|
227
|
-
|
|
228
|
-
Git clone URL validation rejects:
|
|
229
|
-
|
|
230
|
-
* Empty values.
|
|
231
|
-
* Dash-prefixed values (injection prevention).
|
|
232
|
-
* URLs that do not match `http://`, `https://`, `git://`, `ssh://`, or SSH shorthand (`user@host:path`).
|
|
233
|
-
|
|
234
|
-
Git operation endpoints return `400` if the workspace root is not a git repository.
|
|
235
|
-
|
|
236
|
-
## Configuration Model
|
|
237
|
-
|
|
238
|
-
Settings are stored outside the project at `~/.wikied/settings.json`.
|
|
239
|
-
|
|
240
|
-
Current settings:
|
|
241
|
-
|
|
242
|
-
* `autoOpenBrowser`
|
|
243
|
-
* `autosave`
|
|
244
|
-
* `assetFolder`
|
|
245
|
-
* `recentFiles`
|
|
246
|
-
|
|
247
|
-
The app does not write project-local metadata.
|
|
248
|
-
|
|
249
|
-
## Deployment Model
|
|
250
|
-
|
|
251
|
-
`wikied` is packaged as an npm-style tarball with:
|
|
252
|
-
|
|
253
|
-
* A binary entry in `package.json`.
|
|
254
|
-
* Compiled CLI, server, and shared JavaScript in `dist`.
|
|
255
|
-
* A prebuilt React app in `dist/client`.
|
|
256
|
-
* Project documentation in `docs/project`.
|
|
257
|
-
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`wikied` is a packaged local web application. A Node CLI starts an Express server, the server exposes filesystem and git APIs and serves a prebuilt React app, and the browser UI uses those APIs to edit Markdown files under the selected root.
|
|
6
|
+
|
|
7
|
+
Only the server touches the filesystem and git. The client sends root-relative intent, and the server validates each path before reading, writing, creating, renaming, copying assets, or running git commands.
|
|
8
|
+
|
|
9
|
+
## Runtime Flow
|
|
10
|
+
|
|
11
|
+
```mermaid
|
|
12
|
+
flowchart LR
|
|
13
|
+
User[Terminal] --> CLI[wikied CLI]
|
|
14
|
+
CLI -->|optional --git clone| Git[git clone]
|
|
15
|
+
CLI --> Server[Express server on 127.0.0.1]
|
|
16
|
+
Server --> Static[dist/client React app]
|
|
17
|
+
Browser[Browser UI] --> Static
|
|
18
|
+
Browser --> API[REST API]
|
|
19
|
+
API --> Safety[Path safety layer]
|
|
20
|
+
Safety --> FS[Workspace files]
|
|
21
|
+
API --> GitOps[Git operations]
|
|
22
|
+
GitOps --> Repo[.git repository]
|
|
23
|
+
API --> Settings[~/.wikied/settings.json]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Boundaries
|
|
27
|
+
|
|
28
|
+
### CLI
|
|
29
|
+
|
|
30
|
+
The CLI lives in `src/cli` and is responsible for:
|
|
31
|
+
|
|
32
|
+
* Parsing the optional root path.
|
|
33
|
+
* Parsing `--port`, `--no-open`, `--dev-client`, and `--git <url>`.
|
|
34
|
+
* Resolving the opened root.
|
|
35
|
+
* Running a pre-flight `git clone` when `--git` is supplied (before the server starts).
|
|
36
|
+
* Loading user-level settings.
|
|
37
|
+
* Starting the Express server.
|
|
38
|
+
* Printing the local URL.
|
|
39
|
+
* Opening the browser when settings allow it and `--no-open` is absent.
|
|
40
|
+
|
|
41
|
+
### Server
|
|
42
|
+
|
|
43
|
+
The server lives in `src/server` and is responsible for:
|
|
44
|
+
|
|
45
|
+
* Serving the React build.
|
|
46
|
+
* Listing the file tree.
|
|
47
|
+
* Reading and writing Markdown files (with UTF-16 LE BOM detection on read).
|
|
48
|
+
* Validating paths against the opened root.
|
|
49
|
+
* Rejecting symlink escapes and traversal attempts.
|
|
50
|
+
* Creating and renaming Markdown files.
|
|
51
|
+
* Copying image assets.
|
|
52
|
+
* Detecting save conflicts using revision tokens.
|
|
53
|
+
* Reading and writing user-level settings.
|
|
54
|
+
* Reporting workspace state (`isEmpty`, `isGitRepo`) on the health endpoint.
|
|
55
|
+
* Cloning a git repository into an empty root (`POST /api/clone`).
|
|
56
|
+
* Running git status, commit, push, and pull when the workspace is a git repository.
|
|
57
|
+
* Returning structured API errors.
|
|
58
|
+
|
|
59
|
+
### Client
|
|
60
|
+
|
|
61
|
+
The React app lives in `src/client` and is responsible for:
|
|
62
|
+
|
|
63
|
+
* Rendering the Mantine `AppShell` with a top bar, conditionally visible right aside, and editor main area.
|
|
64
|
+
* Showing a clone-on-empty-root modal when `GET /api/health` reports `isEmpty: true`.
|
|
65
|
+
* Displaying the filename pill with an inline file picker combobox (`Ctrl+P`).
|
|
66
|
+
* Showing an orange dirty indicator dot beside the filename pill.
|
|
67
|
+
* Managing the active document state.
|
|
68
|
+
* Caching unsaved edits in memory when switching away from a dirty file so Save all can restore and save them later.
|
|
69
|
+
* Showing Rich and Preview modes.
|
|
70
|
+
* Tracking dirty state across multiple files.
|
|
71
|
+
* Triggering save, autosave, and relative-link navigation flows.
|
|
72
|
+
* Rendering a Save button with a dirty-count badge; Save all iterates the dirty cache.
|
|
73
|
+
* Rendering a Git button (when `isGitRepo: true`) with a changed-files badge; popover offers Commit, Push, and Pull.
|
|
74
|
+
* Rendering the Outline and Recent panels as drawers or a pinned aside.
|
|
75
|
+
* Rendering Markdown preview and Mermaid diagrams.
|
|
76
|
+
* Applying theme (System / Light / Dark) via Mantine's color scheme system.
|
|
77
|
+
|
|
78
|
+
### Shared Utilities
|
|
79
|
+
|
|
80
|
+
Shared code lives in `src/shared` and contains:
|
|
81
|
+
|
|
82
|
+
* API request and response types.
|
|
83
|
+
* Error code constants (including `GIT_ERROR`).
|
|
84
|
+
* Markdown extension detection.
|
|
85
|
+
* Client path normalization.
|
|
86
|
+
|
|
87
|
+
### Git Helper Module
|
|
88
|
+
|
|
89
|
+
`src/server/git.ts` provides thin shell-out helpers used by the server endpoints:
|
|
90
|
+
|
|
91
|
+
* `isEmptyDir(path)` — checks whether a directory has no entries.
|
|
92
|
+
* `isGitRepo(path)` — checks whether `path/.git` exists.
|
|
93
|
+
* `gitClone(url, cwd)` — spawns `git clone <url> .` with a 60-second timeout.
|
|
94
|
+
* `gitStatus(cwd)` — returns the count of changed lines from `git status --short`.
|
|
95
|
+
* `gitCommit(message, cwd)` — runs `git add -A` then `git commit -m`.
|
|
96
|
+
* `gitPush(cwd)` — runs `git push`.
|
|
97
|
+
* `gitPull(cwd)` — runs `git pull`.
|
|
98
|
+
|
|
99
|
+
All helpers spawn child processes with a 30-second timeout (60 s for clone) and propagate stderr as the error message on non-zero exit.
|
|
100
|
+
|
|
101
|
+
## Data Flow
|
|
102
|
+
|
|
103
|
+
### Initial Load
|
|
104
|
+
|
|
105
|
+
```mermaid
|
|
106
|
+
sequenceDiagram
|
|
107
|
+
participant UI as React UI
|
|
108
|
+
participant API as Express API
|
|
109
|
+
participant Settings as Settings file
|
|
110
|
+
participant FS as Workspace
|
|
111
|
+
|
|
112
|
+
UI->>API: GET /api/health
|
|
113
|
+
API-->>UI: ok, isEmpty, isGitRepo
|
|
114
|
+
UI->>API: GET /api/settings
|
|
115
|
+
API->>Settings: Read ~/.wikied/settings.json or defaults
|
|
116
|
+
UI->>API: GET /api/tree
|
|
117
|
+
API->>FS: Recursively list root
|
|
118
|
+
API-->>UI: Settings and tree (parallel)
|
|
119
|
+
alt isEmpty true
|
|
120
|
+
UI->>UI: Show clone-or-start-empty modal
|
|
121
|
+
end
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Clone From Browser
|
|
125
|
+
|
|
126
|
+
```mermaid
|
|
127
|
+
sequenceDiagram
|
|
128
|
+
participant UI as React UI
|
|
129
|
+
participant API as Express API
|
|
130
|
+
participant Git as git CLI
|
|
131
|
+
|
|
132
|
+
UI->>API: POST /api/clone {url}
|
|
133
|
+
API->>API: Validate URL format and root is still empty
|
|
134
|
+
API->>Git: git clone <url> .
|
|
135
|
+
Git-->>API: Exit code
|
|
136
|
+
alt Success
|
|
137
|
+
API-->>UI: 204 No Content
|
|
138
|
+
UI->>API: GET /api/health + GET /api/tree
|
|
139
|
+
UI->>UI: Dismiss modal, load workspace
|
|
140
|
+
else Failure
|
|
141
|
+
API-->>UI: 500 with stderr message
|
|
142
|
+
UI->>UI: Show error inline
|
|
143
|
+
end
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Opening A File
|
|
147
|
+
|
|
148
|
+
```mermaid
|
|
149
|
+
sequenceDiagram
|
|
150
|
+
participant UI as React UI
|
|
151
|
+
participant API as Express API
|
|
152
|
+
participant FS as Filesystem
|
|
153
|
+
|
|
154
|
+
UI->>API: GET /api/files/content?path=guide.md
|
|
155
|
+
API->>API: Validate path under root and extension
|
|
156
|
+
API->>FS: Read file bytes (detect UTF-16 LE BOM)
|
|
157
|
+
FS-->>API: Content, mtime, size, hash
|
|
158
|
+
API-->>UI: Content plus revision token
|
|
159
|
+
UI->>UI: Populate editor and mark clean
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Saving A File
|
|
163
|
+
|
|
164
|
+
```mermaid
|
|
165
|
+
sequenceDiagram
|
|
166
|
+
participant UI as React UI
|
|
167
|
+
participant API as Express API
|
|
168
|
+
participant FS as Filesystem
|
|
169
|
+
|
|
170
|
+
UI->>API: PUT /api/files/content with path, content, revision
|
|
171
|
+
API->>API: Validate path and compare disk revision
|
|
172
|
+
alt Revision matches
|
|
173
|
+
API->>FS: Write file
|
|
174
|
+
FS-->>API: New stat and hash
|
|
175
|
+
API-->>UI: Saved with new revision
|
|
176
|
+
UI->>UI: Update activeFile.revision in App state
|
|
177
|
+
else Revision differs
|
|
178
|
+
API-->>UI: 409 conflict with latest disk content
|
|
179
|
+
end
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Switching Files With Unsaved Edits
|
|
183
|
+
|
|
184
|
+
```mermaid
|
|
185
|
+
sequenceDiagram
|
|
186
|
+
participant UI as React UI
|
|
187
|
+
participant Cache as App dirty cache
|
|
188
|
+
|
|
189
|
+
Note over UI: File A is dirty, user opens File B
|
|
190
|
+
UI->>Cache: Store {content, revision} for File A
|
|
191
|
+
UI->>UI: Fetch and open File B normally
|
|
192
|
+
Note over UI: User switches back to File A
|
|
193
|
+
UI->>Cache: Retrieve cached content for File A
|
|
194
|
+
UI->>UI: Open File A with cached content as initialContent<br/>disk content as diskContent (EditorWorkspace starts dirty)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Opening A Relative Preview Link
|
|
198
|
+
|
|
199
|
+
```mermaid
|
|
200
|
+
sequenceDiagram
|
|
201
|
+
participant Preview as Markdown Preview
|
|
202
|
+
participant Editor as EditorWorkspace
|
|
203
|
+
participant App as App state
|
|
204
|
+
participant API as Express API
|
|
205
|
+
|
|
206
|
+
Preview->>Editor: Relative link clicked
|
|
207
|
+
Editor->>Editor: Resolve href from active document directory
|
|
208
|
+
alt Dirty document
|
|
209
|
+
Editor->>Editor: Confirm save or cancel
|
|
210
|
+
Editor->>API: PUT current document when confirmed
|
|
211
|
+
end
|
|
212
|
+
Editor->>App: Open resolved path
|
|
213
|
+
App->>API: GET /api/files/content?path=resolved.md
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Safety Model
|
|
217
|
+
|
|
218
|
+
All filesystem operations resolve the requested path to an absolute real path and verify that it stays under the opened root.
|
|
219
|
+
|
|
220
|
+
The server rejects:
|
|
221
|
+
|
|
222
|
+
* `..` traversal.
|
|
223
|
+
* Absolute paths from client requests.
|
|
224
|
+
* Symlink paths that resolve outside the root.
|
|
225
|
+
* Editable operations for unsupported extensions.
|
|
226
|
+
* Rename operations that overwrite an existing file.
|
|
227
|
+
|
|
228
|
+
Git clone URL validation rejects:
|
|
229
|
+
|
|
230
|
+
* Empty values.
|
|
231
|
+
* Dash-prefixed values (injection prevention).
|
|
232
|
+
* URLs that do not match `http://`, `https://`, `git://`, `ssh://`, or SSH shorthand (`user@host:path`).
|
|
233
|
+
|
|
234
|
+
Git operation endpoints return `400` if the workspace root is not a git repository.
|
|
235
|
+
|
|
236
|
+
## Configuration Model
|
|
237
|
+
|
|
238
|
+
Settings are stored outside the project at `~/.wikied/settings.json`.
|
|
239
|
+
|
|
240
|
+
Current settings:
|
|
241
|
+
|
|
242
|
+
* `autoOpenBrowser`
|
|
243
|
+
* `autosave`
|
|
244
|
+
* `assetFolder`
|
|
245
|
+
* `recentFiles`
|
|
246
|
+
|
|
247
|
+
The app does not write project-local metadata.
|
|
248
|
+
|
|
249
|
+
## Deployment Model
|
|
250
|
+
|
|
251
|
+
`wikied` is packaged as an npm-style tarball with:
|
|
252
|
+
|
|
253
|
+
* A binary entry in `package.json`.
|
|
254
|
+
* Compiled CLI, server, and shared JavaScript in `dist`.
|
|
255
|
+
* A prebuilt React app in `dist/client`.
|
|
256
|
+
* Project documentation in `docs/project`.
|
|
257
|
+
|
|
258
258
|
End users do not need a Vite development server.
|
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.1
|
|
4
|
+
|
|
5
|
+
* Fixed dark mode in the Rich editor content area: Mantine signals dark mode via `data-mantine-color-scheme` but MDXEditor uses a `.dark` ancestor class. The Rich editor wrapper now receives `.dark` via `useComputedColorScheme`, activating MDXEditor's own dark palette for all toolbar internals, button states, code blocks, and dialogs.
|
|
6
|
+
* Fixed toolbar background in dark mode: the accent shade-0 tint is replaced with `--mantine-color-dark-6` so the toolbar uses a proper dark surface.
|
|
7
|
+
* Fixed file tree navbar background and header divider in dark mode: `--mantine-primary-color-0/2` replaced with `--mantine-color-dark-7/5` when dark mode is active.
|
|
8
|
+
* Fixed three unit tests for `RichMarkdownEditor` that broke once `useComputedColorScheme` was added: test renders now wrap the component in `MantineProvider`.
|
|
9
|
+
|
|
10
|
+
## 0.8.0
|
|
11
|
+
|
|
12
|
+
* Toolbar flush layout: removed side padding from the editor wrapper; toolbar is now edge-to-edge while content retains its 12 px / 16 px padding via a direct `mdxeditor-root-contenteditable` rule.
|
|
13
|
+
* All version references (code, docs, tarball paths, lock file) bumped to 0.8.0.
|
|
14
|
+
|
|
15
|
+
## 0.7.1
|
|
16
|
+
|
|
17
|
+
* Toolbar is now genuinely sticky: fixed the `toolbarClassName` placement (moved to `toolbarPlugin`) and gave `EditorWorkspace` an explicit `calc(100dvh …)` height so the inner scroll container activates. Toolbar stays pinned at the top of the editor as content scrolls.
|
|
18
|
+
* Package size reduced from 9.2 MB to 2.5 MB: enabled `emptyOutDir` (eliminates stale build copies) and added `.npmignore` (excludes dev docs and source).
|
|
19
|
+
* Help modal redesigned: two-panel layout with a TOC sidebar, free-text search with yellow highlighted matches, and IntersectionObserver-based active section tracking.
|
|
20
|
+
* Version badge in header and `APP_VERSION` constant updated to `0.7.1`.
|
|
21
|
+
|
|
3
22
|
## 0.7.0
|
|
4
23
|
|
|
5
24
|
* Added 4 accent color themes — Blue (default), Red, Purple, and Slate — selectable as color swatches in the Settings popover. The chosen accent rebuilds the Mantine theme immediately without a page reload and persists to localStorage.
|