Selaa lähdekoodia

WIP: feature/add_project_document_1 (#2254)

* add macos detailed build documentation

* feature/add_project_document_1
chendapao 3 vuotta sitten
vanhempi
sitoutus
cfbe4bc994

BIN
vx_notebook/notebook.db


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

@@ -0,0 +1,21 @@
+{
+    "created_time": "2022-09-09T15:41:11Z",
+    "files": [
+        {
+            "attachment_folder": "",
+            "created_time": "2022-09-09T15:41:27Z",
+            "id": "63",
+            "modified_time": "2022-09-22T23:53:02Z",
+            "name": "工程结构.md",
+            "signature": "784285914952851111",
+            "tags": [
+            ]
+        }
+    ],
+    "folders": [
+    ],
+    "id": "62",
+    "modified_time": "2022-09-09T15:41:11Z",
+    "signature": "207324029083287",
+    "version": 3
+}

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

@@ -0,0 +1,441 @@
+# 工程结构
+
+
+## 结构解析
+
+```
+/
+├── scripts                                        本地小脚本 更新版本所用
+├── .github                                        github CI/CD 流程编排,issues 模板
+├── .gitmodules                                    github 规范的 modules 依赖文件
+│
+├── libs                                           引用的外部库
+│     ├── QHotkey                                      跨平台的全局热键
+│     ├── vtextedit                                    VNote 自己开源的编辑器
+│     └── libs.pro                                     外部库的工程索引文件
+│
+├── src                                            VNote 源码文件夹
+│     ├── core                                     核心源码
+│     │     ├── ***                                    其他核心文件
+│     │     ├── versioncontroller                      版本管理
+│     │     ├── buffer                                 缓存模块
+│     │     ├── notebook                               笔记本
+│     │     ├── notebookbackend                        笔记本后台
+│     │     └── notebookconfigmgr                      笔记本配置管理
+│     ├── data                                     VNote 工程数据
+│     │     ├── core                                   运行所需要的默认配置
+│     │     └── extra                                  额外的资源文件
+│     ├── export                                   导出模块
+│     ├── imagehost                                图床模块
+│     ├── search                                   搜索模块
+│     ├── snippet                                  片段模块
+│     ├── task                                     任务模块
+│     ├── unitedentry                              TODO 不知道这里是干什么的  
+│     ├── utils                                    工具模块
+│     └── widgets                                  窗体
+│         ├── ***                                      其他窗体文件
+│         ├── dialogs                                  对话框
+│         ├── editors                                  编辑器
+│         └── framelessmainwindow                      无边框的窗口
+├── pics                                           README所需的图片
+│
+├── main.cpp                                       程序主入口
+├── COPYING.LESSER                                 开源协议
+├── README.md
+├── README_zh_CN.md
+├── build
+├── changes.md
+├── tests                                          测试
+└── vnote.pro                                      Qt 工程文件
+```
+
+
+## 源码模块简单介绍
+
+
+### libs
+
+依赖的外部库,以 gitmodules 的形式管理,会将一些开源库 fork 到我们自己的仓库中,方便依赖和后续开发。主要也是担心库会莫名其妙消失。
+
+```
+[submodule "libs/vtextedit"]
+	path = libs/vtextedit
+	url = https://github.com/vnotex/vtextedit.git
+[submodule "libs/QHotkey"]
+	path = libs/QHotkey
+	url = https://github.com/vnotex/QHotkey.git
+```
+
+更新方式可以使用如下命令:
+
+```
+git submodule update --init --recursive
+```
+
+
+### src/core
+
+核心代码文件夹,主要包含以下 `功能性` 内容:
+
+其他在 `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         |      |
+
+文件夹 `buffer` 缓冲区,就是已经打开的笔记
+
+| 名称                   | 解释 |
+| :-------------------- | :--- |
+| buffer                |      |
+| bufferprovider        |      |
+| filebufferprovider    |      |
+| filetypehelper        |      |
+| markdownbuffer        |      |
+| markdownbufferfactory |      |
+| nodebufferprovider    |      |
+| 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       |      |
+
+
+### src/data
+
+资源文件夹,主要包含 `核心资源` 和 `额外资源`,因为是资源文件,所有会有对应的 `.qrc 工程资源文件` 可以理解为在打包时需要哪些资源文件:
+
+core `核心资源`
+
+| 名称           | 解释                                                                                                             |
+| :------------ | :--------------------------------------------------------------------------------------------------------------- |
+| icons         | 默认的图标文件                                                                                                    |
+| logo          | 各尺寸的logo、启动标示图、最小化图标                                                                                |
+| translations  | 多语言,目前支持了中文、英文、日文,用 qt 的 languist 先制作好 ts 文件,再生成 qm 文件,其他地方使用 `tr("***")` 来调用 |
+| core.qrc      | 工程资源文件,可以理解为打包的时候会将哪些文件打包进去,同时在增删一些文件的时候,也需要调整这里                         |
+| Info.plist    | TODO不知道干嘛                                                                                                    |
+| vnote.desktop | 桌面快捷方式                                                                                                      |
+| vnote.json    | 默认配置                                                                                                          |
+
+extra `额外资源`
+
+| 名称                 | 解释                            |
+| :------------------ | :------------------------------ |
+| dicts               | 语法检查的字典                   |
+| docs                | 文档                            |
+| syntax-highlighting | 语法检测的规则文件               |
+| tasks               | 任务功能,目前内置了 git 简单操作 |
+| themes              | 主题                            |
+| web                 | TODO 不知道                     |
+
+
+### export
+
+导出模块,目前支持 `HTML`、`PDF`、`Markdown`、`自定义` 。
+
+| 名称             | 解释                                      |
+| :-------------- | :--------------------------------------- |
+| exportdata      | 导出数据转换                               |
+| exporter        | 导出器,将对应的数据导出生成其相应格式的文件 |
+| webviewexporter | TODO 不知道干嘛                           |
+
+
+### imagehost
+
+图床模块,目前是支持了 `本地`、`gitee`、`github`。
+
+| 名称             | 解释                |
+| :-------------- | :------------------ |
+| giteeimagehost  | 码云图床            |
+| githubimagehost | github图床          |
+| imagehost       | 图床                |
+| imagehostmgr    | 图床管理、增删、改名 |
+| imagehostutils  | 图床工具类          |
+| repoimagehost   | TODO 不知道         |
+
+
+### search
+
+搜索模块
+
+| 名称              | 解释                                                      |
+| :--------------- | :-------------------------------------------------------- |
+| filesearchengine | 文件搜索引擎                                               |
+| searchdata       | 搜索条件的转换,把界面上的搜索条件转换成可以进行实际搜索的条件 |
+| searcher         | 搜索者,干活开始搜索                                        |
+| searchhelper     | 搜索帮助,提供搜索反馈,比如无效关键词等等                    |
+| searchresultitem | 搜索结果,这位置列表那里显示出来的那些                       |
+| searchtoken      | 搜索令牌、全文检索、正则匹配                                |
+
+
+### snippet
+
+片段模块
+
+| 名称            | 解释                             |
+| :------------- | :------------------------------- |
+| dynamicsnippet | 动态片段 TODO 没懂为什么叫动态片段 |
+| snippet        | 片段、目前只支持了文本片段         |
+| snippetmgr     | 片段管理器、增删改查               |
+
+
+### task
+
+任务模块
+
+| 名称             | 解释                                                    |
+| :-------------- | :------------------------------------------------------ |
+| shellexecution  | 脚本执行器,默认为 win:`PowerShell`、其他为:`/bin/bash` |
+| task            | 任务、实现了与外部程序的交互                              |
+| taskmgr         | 任务管理器、任务刷新、加载                                |
+| taskvariablemgr | 任务变量管理器                                           |
+
+
+### unitedentry
+
+统一入口模块
+
+| 名称                | 解释                       |
+| :----------------- | :------------------------- |
+| entrypopup         | 统一入口的弹出框            |
+| entrywidgetfactory | 窗口工厂类                  |
+| findunitedentry    | 统一入口查找                |
+| helpunitedentry    | 统一入口帮助                |
+| iunitedentry       | TODO 不知道                |
+| unitedentry        | TODO 不知道                |
+| unitedentryalias   | 统一入口别名                |
+| unitedentryhelper  | TODO 没懂与上面的help的区别 |
+| unitedentrymgr     | 统一入口管理器              |
+
+
+### utils
+
+工具模块
+
+| 名称               | 解释                                         |
+| :---------------- | :------------------------------------------- |
+| asyncworker       | 异步工作 TODO 不知道                          |
+| callbackpool      | 回调池                                        |
+| clipboardutils    | 剪切板工具                                    |
+| contentmediautils | 媒介内容工具、主要还是对图片的操作              |
+| docsutils         | 文档工具,TODO 内部文档所用                    |
+| fileutils         | 文件工具,读写文件                             |
+| htmlutils         | html工具,解析html辅助所用                     |
+| iconutils         | icon工具,icon文件获取、单色渲染               |
+| imageutils        | 图片工具,猜测图片格式与后缀 TODO 但是没明白    |
+| pathutils         | 路径工具,文件、文件夹路径管理、相对路径管理     |
+| printutils        | TODO什么打印呢                                |
+| processutils      | 内部程序工具、辅助缓冲、导出、预览、搜索、绘图等 |
+| urldragdroputils  | Url拖拽工具,TODO不知道是哪里拖拽              |
+| utils             | 其他工具                                      |
+| webutils          | 网页工具                                      |
+| widgetutils       | 窗体工具                                      |
+
+
+### widget
+
+窗体模块
+
+| 名称                             | 解释              |
+| :------------------------------ | :---------------- |
+| 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                  |                   |
+
+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              |      |
+
+editors 编辑器
+
+| 名称                         | 解释 |
+| :-------------------------- | :--- |
+| editormarkdownvieweradapter |      |
+| graphhelper                 |      |
+| graphvizhelper              |      |
+| markdowneditor              |      |
+| markdowntable               |      |
+| markdowntablehelper         |      |
+| markdownviewer              |      |
+| markdownvieweradapter       |      |
+| plantumlhelper              |      |
+| previewhelper               |      |
+| statuswidget                |      |
+| texteditor                  |      |
+
+framelessmainwindow 无边框窗口
+
+| 名称                      | 解释      |
+| :----------------------- | :-------- |
+| framelessmainwindow      |           |
+| framelessmainwindowlinux | 针对linux |
+| framelessmainwindowwin   | 针对win   |
+
+
+
+## 模块关系图
+
+TODO

+ 3 - 0
zh_cn/docs/开发者/vx.json

@@ -15,6 +15,9 @@
     "folders": [
         {
             "name": "01 - 开发入门"
+        },
+        {
+            "name": "02 - 工程配置"
         }
     ],
     "id": "43",