소스 검색

feature/add_project_document_2 (#2267)

* add macos detailed build documentation

* The second batch is modified separately

* add code flow img

* adj doc logic
chendapao 3 년 전
부모
커밋
7ad46f3b40

+ 1 - 1
zh_cn/docs/开发者/02 - 工程配置/vx.json

@@ -5,7 +5,7 @@
             "attachment_folder": "",
             "created_time": "2022-09-09T15:41:27Z",
             "id": "63",
-            "modified_time": "2022-09-22T23:53:02Z",
+            "modified_time": "2022-10-05T09:51:07Z",
             "name": "工程结构.md",
             "signature": "784285914952851111",
             "tags": [

BIN
zh_cn/docs/开发者/02 - 工程配置/vx_images/367553117269276.png


+ 218 - 217
zh_cn/docs/开发者/02 - 工程配置/工程结构.md

@@ -1,6 +1,11 @@
 # 工程结构
 
 
+## 代码结构图
+
+![](vx_images/367553117269276.png)
+
+
 ## 结构解析
 
 ```
@@ -30,7 +35,7 @@
 │     ├── search                                   搜索模块
 │     ├── snippet                                  片段模块
 │     ├── task                                     任务模块
-│     ├── unitedentry                              TODO 不知道这里是干什么的  
+│     ├── unitedentry                              统一入口模块
 │     ├── utils                                    工具模块
 │     └── widgets                                  窗体
 │         ├── ***                                      其他窗体文件
@@ -79,96 +84,96 @@ git submodule update --init --recursive
 
 其他在 `src/core` 根目录下的文件
 
-| 名称                  | 解释 |
-| :------------------- | :--- |
-| buffermgr            |      |
-| clipboarddata        |      |
-| configmgr            |      |
-| coreconfig           |      |
-| editorconfig         |      |
-| externalfile         |      |
-| file                 |      |
-| global               |      |
-| historyitem          |      |
-| historymgr           |      |
-| htmltemplatehelper   |      |
-| logger               |      |  
-| mainconfig           |      |
-| markdowneditorconfig |      |
-| notebookmgr          |      |
-| quickaccesshelper    |      |
-| sessionconfig        |      |
-| singleinstanceguard  |      |
-| templatemgr          |      |
-| texteditorconfig     |      |        
-| theme                |      |
-| thememgr             |      |
-| vnotex               |      |
-| widgetconfig         |      |
+| 名称                  | 解释                                                                             |
+| :------------------- | :------------------------------------------------------------------------------- |
+| vnotex               | vnote总入口,对核心的功能进行初始化等                                               |
+| global               | 全局通用枚举、内联方法                                                             |
+| buffermgr            | 缓冲管理器,当前打开的笔记都会进入到缓存中,笔记打开、缓存的增删                      |
+| configmgr            | 配置管理器,主配置、当前会话配置、核心配置、编辑器配置、窗体配置的总入口               |
+| historymgr           | 操作历史管理器,以json的格式将历史操作数据存储到session.json中                       |
+| templatemgr          | 模板管理器,把模板理解为一个笔记即可,获得模板基础信息、文件夹,主题,路径             |
+| thememgr             | 主题管理器,调色、高亮、编辑、md配色、icon图标等                                    |
+| notebookmgr          | 笔记本管理器,笔记本的CRUD,版本控制、后端、配置、导入等                             |
+| mainconfig           | 主配置,版本、核心配置、编辑器配置、窗体配置等入口                                   |
+| coreconfig           | 核心配置,设置中的快捷键、主题、检查更新、默认打开                                   |
+| editorconfig         | 编辑器配置,设置中的编辑器、文本编辑、markdown编辑、自动保存等                        |
+| markdowneditorconfig | markdown编辑器配置,文本、uml、graphviz、mathjax、图片、缩放、代码、链接跳转         |
+| texteditorconfig     | 文本编辑器配置,插入模式、光标、折叠、制表符、特殊高亮                                |
+| widgetconfig         | 窗体配置,标题自动扩展、序号、查询和替换、 资源视图、搜索、窗体保持、窗体拆分、统一入口 |
+| sessionconfig        | 当前会话配置,opengl,当前笔记打开状态、窗体布局等                                   |
+| clipboarddata        | 剪切板数据,TODO                                                                  |
+| externalfile         | 外部文件,读取、路径、图片等                                                       |
+| file                 | 文件,这里主要是对图片操作                                                         |
+| historyitem          | 操作历史的item,记录历史的变动                                                     |
+| logger               | 日志                                                                             |
+| htmltemplatehelper   | html模板帮助                                                                     |
+| quickaccesshelper    | 快速访问帮助                                                                      |
+| singleinstanceguard  | 窗体的单例,只能打开一个vnote                                                      |
+| theme                | 主题的实际应用                                                                    |
 
 文件夹 `buffer` 缓冲区,就是已经打开的笔记
 
-| 名称                   | 解释 |
-| :-------------------- | :--- |
-| buffer                |      |
-| bufferprovider        |      |
-| filebufferprovider    |      |
-| filetypehelper        |      |
-| markdownbuffer        |      |
-| markdownbufferfactory |      |
-| nodebufferprovider    |      |
-| textbuffer            |      |
-| textbufferfactory     |      |
+| 名称                   | 解释                                                                                 |
+| :-------------------- | :----------------------------------------------------------------------------------- |
+| buffer                | 缓冲区的CRUD、视图                                                                    |
+| bufferprovider        | 缓冲区供应者,对接vnote自己的笔记的缓冲区,缓冲区的虚方法,TODO为什么这里要定义这些虚方法呢 |
+| filebufferprovider    | 文件缓冲区供应者,对接外部文件的缓存区                                                  |
+| filetypehelper        | 文件类型帮助                                                                          |
+| markdownbuffer        | markdown缓冲区,图片增删,过时图片删除                                                  |
+| markdownbufferfactory | marodkwn缓冲区工厂类,创建所用                                                         |
+| nodebufferprovider    | 笔记缓冲区提供者 TODO 这块没太懂                                                       |
+| textbuffer            | 文本缓冲区                                                                            |
+| textbufferfactory     | 文本缓冲区工厂类,创建所用                                                             |
 
 文件夹 `notebook` 笔记的索引、笔记索引的嵌入式数据库操作、标签、参数、外部文件
 
-| 名称                    | 解释 |
-| :--------------------- | :--- |
-| bundlenotebook         |      |
-| bundlenotebookfactory  |      |
-| externalnode           |      |
-| node                   |      |
-| nodeparameters         |      |
-| notebook               |      |
-| notebookdatabaseaccess |      |
-| notebookparameters     |      |
-| notebooktagmgr         |      |
-| tag                    |      |
-| vxnode                 |      |
-| vxnodefile             |      |
-
-文件夹 `notebookbackend`   TODO 笔记后端(工厂方法)
-
-| 名称                         | 解释 |
-| :-------------------------- | :--- |
-| inotebookbackend            |      |
-| localnotebookbackend        |      |
-| localnotebookbackendfactory |      |
-
-文件夹 `notebookconfigmgr`  TODO  笔记索引配置管理
-
-| 名称    | 解释    |
-| :-- | :-- |
-| bundlenotebookconfigmgr | |
-| inotebookconfigmgr | |
-| notebookconfig | |
-| vxnodeconfig | |
-| vxnotebookconfigmgr | |
-| vxnotebookconfigmgrfactory | |
-
-
-文件夹 `versioncontroller`     TODO 笔记版本管理(未开发)
-
-| 名称                           | 解释 |
-| :---------------------------- | :--- |
-| dummyversioncontroller        |      |
-| dummyversioncontrollerfactory |      |
-| versioncontrollerserver       |      |
+| 名称                    | 解释                                                                              |
+| :--------------------- | :-------------------------------------------------------------------------------- |
+| bundlenotebook         | 笔记本打包,会将所有笔记和笔记本拍平后的数据结构、标签、以及对应关系读写到SQLite数据库中 |
+| bundlenotebookfactory  | 笔记本打包工厂类                                                                   |
+| externalnode           | vnote 未管理的外部节点                                                             |
+| node                   | 笔记 (笔记本的节点)  兼容2                                                          |
+| nodeparameters         | 笔记的参数,id,创建时间,修改时间,标签,附件                                        |
+| notebook               | 笔记本和回收站                                                                     |
+| notebookdatabaseaccess | 笔记本和笔记的数据库读写操作                                                         |
+| notebookparameters     | 笔记本的参数                                                                       |
+| notebooktagmgr         | 笔记本标签管理器                                                                   |
+| tag                    | 标签                                                                              |
+| vxnode                 | vnotex3的节点                                                                     |
+| vxnodefile             | vnotex3的文件                                                                      |
+
+文件夹 `notebookbackend` 笔记后端,如存储等,尚未实现
+
+| 名称                         | 解释                               |
+| :-------------------------- | :-------------------------------- |
+| inotebookbackend            | 笔记本后端的抽象类,文件的访问和同步 |
+| localnotebookbackend        | 笔记本后端的本地文件系统            |
+| localnotebookbackendfactory | 笔记本后端工厂类                    |
+
+文件夹 `notebookconfigmgr` 笔记索引配置管理
+
+| 名称                        | 解释                                                 |
+| :------------------------- | :-------------------------------------------------- |
+| bundlenotebookconfigmgr    | 笔记本配置管理器打包,获取数据库、本地文件索引信息等配置 |
+| inotebookconfigmgr         | 笔记本配置管理器的抽象类,配置文件的读写                |
+| notebookconfig             | 笔记本配置                                           |
+| vxnodeconfig               | vx节点配置                                           |
+| vxnotebookconfigmgr        | vx笔记本配置管理器                                    |
+| vxnotebookconfigmgrfactory | vx笔记本配置管理器工厂类                              |
+
+
+文件夹 `versioncontroller` 笔记版本管理(未开发)
+
+| 名称                           | 解释                |
+| :---------------------------- | :------------------ |
+| dummyversioncontroller        | 虚拟版本控制器       |
+| dummyversioncontrollerfactory | 虚拟版本控制器工厂类 |
+| versioncontrollerserver       | 版本控制器服务       |
 
 
 ### src/data
 
-资源文件夹,主要包含 `核心资源` 和 `额外资源`,因为是资源文件,所有会有对应的 `.qrc 工程资源文件` 可以理解为在打包时需要哪些资源文件:
+资源文件夹,主要包含 `核心资源` 和 `额外资源`,因为是资源文件,所有会有对应的 `.qrc` 工程资源文件,可以理解为在打包时需要哪些资源文件:
 
 core `核心资源`
 
@@ -216,7 +221,7 @@ extra `额外资源`
 | imagehost       | 图床                |
 | imagehostmgr    | 图床管理、增删、改名 |
 | imagehostutils  | 图床工具类          |
-| repoimagehost   | TODO 不知道         |
+| repoimagehost   | 图床解析、测试、使用 |
 
 
 ### search
@@ -260,17 +265,17 @@ extra `额外资源`
 
 统一入口模块
 
-| 名称                | 解释                       |
-| :----------------- | :------------------------- |
-| entrypopup         | 统一入口的弹出框            |
-| entrywidgetfactory | 窗口工厂类                  |
-| findunitedentry    | 统一入口查找                |
-| helpunitedentry    | 统一入口帮助                |
-| iunitedentry       | TODO 不知道                |
-| unitedentry        | TODO 不知道                |
-| unitedentryalias   | 统一入口别名                |
-| unitedentryhelper  | TODO 没懂与上面的help的区别 |
-| unitedentrymgr     | 统一入口管理器              |
+| 名称                | 解释            |
+| :----------------- | :-------------- |
+| entrypopup         | 统一入口的弹出框 |
+| entrywidgetfactory | 窗口工厂类       |
+| findunitedentry    | 统一入口查找     |
+| helpunitedentry    | 统一入口帮助     |
+| iunitedentry       | 统一入口的接口   |
+| unitedentry        | 统一入口         |
+| unitedentryalias   | 统一入口别名     |
+| unitedentryhelper  | 统一入口帮助     |
+| unitedentrymgr     | 统一入口管理器   |
 
 
 ### utils
@@ -301,141 +306,137 @@ extra `额外资源`
 
 窗体模块
 
-| 名称                             | 解释              |
-| :------------------------------ | :---------------- |
-| attachmentdragdropareaindicator | TODO 不知道       |
-| attachmentpopup                 | 附件弹出框         |
-| biaction                        | TODO bi动作       |
-| buttonpopup                     | 按钮弹出框         |
-| combobox                        | 解决间距的下拉菜单 |
-| consoleviewer                   | 控制台预览         |
-| dockwidgethelper                | 左侧导航坞窗体帮助 |
-| dragdropareaindicator           | TODO 拖拽区域指示  |
-| editreaddiscardaction           | TODO 读写丢弃动作  |
-| filesystemviewer                | 文件系统观察者     |
-| findandreplacewidget            | 查找和替换窗体     |
-| floatingwidget                  | 浮动窗体          |
-| fullscreentoggleaction          | 全屏切换          |
-| historypanel                    | 历史记录面板       |
-| itemproxystyle                  | TODO 不知道       |
-| labelwithbuttonswidget          | 标签按钮小部件     |
-| lineedit                        | TODO 什么线条编辑  |
-| lineeditdelegate                | TODO 线条委托     |
-| lineeditwithsnippet             |                   |
-| listwidget                      |                   |
-| locationinputwithbrowsebutton   |                   |
-| locationlist                    |                   |
-| mainwindow                      |                   |
-| markdownviewwindow              |                   |
-| messageboxhelper                |                   |
-| navigationmode                  |                   |
-| navigationmodemgr               |                   |
-| notebookexplorer                |                   |
-| notebookexplorersession         |                   |
-| notebooknodeexplorer            |                   |
-| notebookselector                |                   |
-| outlinepopup                    |                   |
-| outlineprovider                 |                   |
-| outlineviewer                   |                   |
-| propertydefs                    |                   |
-| quickselector                   |                   |
-| searchinfoprovider              |                   |
-| searchpanel                     |                   |
-| simplesegmenthighlighter        |                   |
-| snippetpanel                    |                   |
-| statusbarhelper                 |                   |
-| styleditemdelegate              |                   |
-| systemtrayhelper                |                   |
-| tagexplorer                     |                   |
-| tagpopup                        |                   |
-| tagviewer                       |                   |
-| textviewwindow                  |                   |
-| titlebar                        |                   |
-| titletoolbar                    |                   |
-| toolbarhelper                   |                   |
-| toolbox                         |                   |
-| treeview                        |                   |
-| treewidget                      |                   |
-| treewidgetitem                  |                   |
-| viewarea                        |                   |
-| viewareasession                 |                   |
-| viewsplit                       |                   |
-| viewwindow                      |                   |
-| viewwindowsession               |                   |
-| viewwindowtoolbarhelper         |                   |
-| webpage                         |                   |
-| webviewer                       |                   |
-| widgetsfactory                  |                   |
-| windowspanel                    |                   |
-| windowsprovider                 |                   |
-| wordcountpopup                  |                   |
+
+| 名称                             | 解释                                                                   |
+| :------------------------------ | :--------------------------------------------------------------------- |
+| attachmentdragdropareaindicator | TODO 不知道                                                            |
+| attachmentpopup                 | 附件弹出框                                                             |
+| biaction                        | TODO bi动作                                                            |
+| buttonpopup                     | 按钮弹出框                                                             |
+| combobox                        | 解决间距的下拉菜单                                                      |
+| consoleviewer                   | 控制台预览                                                             |
+| dockwidgethelper                | 左侧导航坞窗体帮助                                                      |
+| dragdropareaindicator           | 拖放区域指示部件                                                        |
+| editreaddiscardaction           | (阅读模式、编辑模式、放弃)动作                                           |
+| filesystemviewer                | 文件系统观察者                                                          |
+| findandreplacewidget            | 查找和替换窗体                                                          |
+| floatingwidget                  | 浮动窗体                                                               |
+| fullscreentoggleaction          | 全屏切换                                                               |
+| historypanel                    | 历史记录面板                                                            |
+| itemproxystyle                  | TODO 不知道                                                            |
+| labelwithbuttonswidget          | 标签按钮小部件                                                          |
+| lineedit                        | 行编辑部件                                                             |
+| lineeditdelegate                | 行编辑部件代理                                                          |
+| lineeditwithsnippet             | 行编辑与片段                                                            |
+| listwidget                      | 列表窗体                                                               |
+| locationinputwithbrowsebutton   | TODO                                                                   |
+| locationlist                    | 位置列表                                                               |
+| mainwindow                      | 主窗体,窗体总入口                                                      |
+| markdownviewwindow              | markdown视图                                                           |
+| messageboxhelper                | 消息推送帮助                                                            |
+| navigationmode                  | 导航模式接口,如果一个小部件想要支持导航模式,则需要继承这个类。            |
+| navigationmodemgr               | 导航模式管理器                                                          |
+| notebookexplorer                | 笔记本资源管理器                                                        |
+| notebookexplorersession         | 笔记本资源管理器当前会话,用与重新打开后的会话恢复                         |
+| notebooknodeexplorer            | 笔记本中的笔记资源管理器                                                 |
+| notebookselector                | 笔记本选择器                                                            |
+| outlinepopup                    | 笔记中弹出的大纲                                                        |
+| outlineprovider                 | 大纲提供者                                                             |
+| outlineviewer                   | 大纲视图                                                               |
+| propertydefs                    | 定义用于QSS的属性。                                                     |
+| quickselector                   | TODO                                                                   |
+| searchinfoprovider              | 搜索提供者                                                             |
+| searchpanel                     | 搜索面板                                                               |
+| simplesegmenthighlighter        | TODO                                                                   |
+| snippetpanel                    | 片段面板                                                               |
+| statusbarhelper                 | 状态栏帮助                                                             |
+| styleditemdelegate              | 样式代理                                                               |
+| systemtrayhelper                | 系统托盘                                                               |
+| tagexplorer                     | 标签资源管理器                                                          |
+| tagpopup                        | 笔记中的标签弹出框                                                      |
+| tagviewer                       | 标签视图                                                               |
+| textviewwindow                  | 文本视图窗体                                                            |
+| titlebar                        | 标题栏                                                                 |
+| titletoolbar                    | 标题工具栏                                                             |
+| toolbarhelper                   | 工具栏帮助                                                             |
+| toolbox                         | TODO                                                                   |
+| treeview                        | TODO                                                                   |
+| treewidget                      | vnotex修改后的树窗体                                                    |
+| treewidgetitem                  | vnotex修改后的树窗体的选项,修改了默认排序                                |
+| viewarea                        | 视图区域  TODO                                                         |
+| viewareasession                 | TODO                                                                   |
+| viewsplit                       | 视图拆分                                                               |
+| viewwindow                      | 视图拆分后的窗体                                                        |
+| viewwindowsession               | TODO                                                                   |
+| viewwindowtoolbarhelper         | 视图工具栏帮助                                                          |
+| webpage                         | TODO                                                                   |
+| webviewer                       | TODO                                                                   |
+| widgetsfactory                  | 窗体工厂类,菜单、行编辑、行编辑片段、单选框、多选框、下拉框、旋转、纯文本等 |
+| windowspanel                    | 窗体面板                                                               |
+| windowsprovider                 | 窗体提供者                                                             |
+| wordcountpopup                  | 字数统计弹出框                                                          |
 
 dialogs 对话框
 
-| 名称                         | 解释 |
-| :-------------------------- | :--- |
-| deleteconfirmdialog         |      |
-| dialog                      |      |
-| exportdialog                |      |
-| filepropertiesdialog        |      |
-| folderfilesfilterwidget     |      |
-| folderpropertiesdialog      |      |
-| imageinsertdialog           |      |
-| importfolderdialog          |      |
-| importfolderutils           |      |
-| importlegacynotebookdialog  |      |
-| importnotebookdialog        |      |
-| legacynotebookutils         |      |
-| levellabelwithupbutton      |      |
-| linkinsertdialog            |      |
-| managenotebooksdialog       |      |
-| newfolderdialog             |      |
-| newnotebookdialog           |      |
-| newnotebookfromfolderdialog |      |
-| newnotedialog               |      |
-| newsnippetdialog            |      |
-| newtagdialog                |      |
-| nodeinfowidget              |      |
-| notebookinfowidget          |      |
-| notepropertiesdialog        |      |
-| renametagdialog             |      |
-| scrolldialog                |      |
-| selectdialog                |      |
-| selectionitemwidget         |      |
-| snippetinfowidget           |      |
-| snippetpropertiesdialog     |      |
-| sortdialog                  |      |
-| tableinsertdialog           |      |
-| updater                     |      |
-| viewtagsdialog              |      |
+| 名称                         | 解释                    |
+| :-------------------------- | :--------------------- |
+| deleteconfirmdialog         | 需要确认的删除项信息     |
+| dialog                      | vnotex修改后的对话框     |
+| exportdialog                | 导出对话框              |
+| filepropertiesdialog        | 文件配置对话框           |
+| folderfilesfilterwidget     | 文件夹过滤窗体           |
+| folderpropertiesdialog      | 文件夹设置对话框         |
+| imageinsertdialog           | 图片插入对话框           |
+| importfolderdialog          | 导入文件夹对话框         |
+| importfolderutils           | 导入文件夹工具类         |
+| importlegacynotebookdialog  | 导入旧版的笔记本对话框   |
+| importnotebookdialog        | 导入笔记本对话框         |
+| legacynotebookutils         | 旧版笔记本工具类         |
+| levellabelwithupbutton      | TODO                   |
+| linkinsertdialog            | 链接插入对话框           |
+| managenotebooksdialog       | 笔记本管理对话框         |
+| newfolderdialog             | 新建文件夹对话框         |
+| newnotebookdialog           | 新建笔记本对话框         |
+| newnotebookfromfolderdialog | 从文件夹新建笔记本对话框 |
+| newnotedialog               | 新建笔记对话框           |
+| newsnippetdialog            | 新建片段对话框           |
+| newtagdialog                | 新建标签对话框           |
+| nodeinfowidget              | 节点(笔记)信息窗体       |
+| notebookinfowidget          | 笔记本信息窗体           |
+| notepropertiesdialog        | 笔记属性对话框           |
+| renametagdialog             | 名称变更对话框           |
+| scrolldialog                | 滚动条对话框            |
+| selectdialog                | 选择对话框              |
+| selectionitemwidget         | 选择项窗体              |
+| snippetinfowidget           | 片段窗体                |
+| snippetpropertiesdialog     | 片段属性对话框           |
+| sortdialog                  | 排序对话框              |
+| tableinsertdialog           | 表格插入对话框           |
+| updater                     | 自动更新                |
+| viewtagsdialog              | TODO                   |
 
 editors 编辑器
 
-| 名称                         | 解释 |
-| :-------------------------- | :--- |
-| editormarkdownvieweradapter |      |
-| graphhelper                 |      |
-| graphvizhelper              |      |
-| markdowneditor              |      |
-| markdowntable               |      |
-| markdowntablehelper         |      |
-| markdownviewer              |      |
-| markdownvieweradapter       |      |
-| plantumlhelper              |      |
-| previewhelper               |      |
-| statuswidget                |      |
-| texteditor                  |      |
+| 名称                         | 解释                     |
+| :-------------------------- | :----------------------- |
+| editormarkdownvieweradapter | markdown 编辑器视图适配器 |
+| graphhelper                 | 图帮助                    |
+| graphvizhelper              |                          |
+| markdowneditor              | markdown编辑器            |
+| markdowntable               | markdown中的智能表格      |
+| markdowntablehelper         | markdown表格帮助          |
+| markdownviewer              | TODO                     |
+| markdownvieweradapter       | TODO                     |
+| plantumlhelper              | uml帮助                  |
+| previewhelper               | 预览帮助                  |
+| statuswidget                | 状态窗体                  |
+| texteditor                  | 纯文本编辑器              |
 
 framelessmainwindow 无边框窗口
 
 | 名称                      | 解释      |
 | :----------------------- | :-------- |
-| framelessmainwindow      |           |
+| framelessmainwindow      | 主窗体     |
 | framelessmainwindowlinux | 针对linux |
 | framelessmainwindowwin   | 针对win   |
 
-
-
-## 模块关系图
-
-TODO