diff --git a/zh_cn/docs/开发者/_vnote.json b/zh_cn/docs/开发者/_vnote.json index 370fe7b9..306cc0e1 100644 --- a/zh_cn/docs/开发者/_vnote.json +++ b/zh_cn/docs/开发者/_vnote.json @@ -1,6 +1,16 @@ { "created_time": "2018-11-24T11:09:09Z", "files": [ + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:31:29Z", + "modified_time": "2018-11-24T12:36:39Z", + "name": "构建VNote.md", + "tags": [ + ] + } ], "sub_directories": [ ], diff --git a/zh_cn/docs/开发者/构建VNote.md b/zh_cn/docs/开发者/构建VNote.md new file mode 100644 index 00000000..c8fc41b3 --- /dev/null +++ b/zh_cn/docs/开发者/构建VNote.md @@ -0,0 +1,117 @@ +# 构建VNote +您需要**Qt 5.9**才能从源代码创建VNote。 + +## 获取VNote的源代码 +VNote的源代码可在 [Github](https://github.com/tamlok/vnote) 上获取。您可以下载代码的ZIP存档。请注意,VNote依赖于某些子模块,因此您还应该下载这些模块的源代码。 + +推荐的方法是像以下方式使用**git**: + +``` +git clone https://github.com/tamlok/vnote.git vnote.git +cd vnote.git +git submodule update --init +``` + +## 获取Qt 5.9 +您可以从 [Qt Downloads](http://info.qt.io/download-qt-for-application-development) 获取完整的 Qt SDK。对于中国用户,您可以通过[TUNA 镜像](https://mirrors4.tuna.tsinghua.edu.cn/qt/official_releases/qt/5.9/) 加快下载速度。 + +## Windows +在 Windows 上,您需要 **Visual Studio 2015** 或更高版本来编译 VNote。 + +打开 **Qt Creator** 并打开`vnote.git\VNote.pro`作为项目。现在您已准备好调整和编译VNote! + +## Linux +在Ubuntu中,你可以像这样从PPA获得 Qt 5.9: + +```sh +sudo add-apt-repository ppa:beineri/opt-qt591-trusty -y +sudo apt-get update -qq +sudo apt-get -y install qt59base qt59webengine +sudo apt-get -y install qt59webchannel qt59svg qt59location qt59tools qt59translations +source /opt/qt*/bin/qt*-env.sh +``` + +然后像这样编译和安装VNote: + +```sh +cd vnote.git +mkdir build +cd build +qmake ../VNote.pro +make +sudo make install +``` + +### Fcitx +如果您使用 **Fcitx** 作为输入方式,则需要将缺少的库 `libfcitxplatforminputcontextplugin.so` 复制到 Qt 的插件目录。 + +要找到 `libfcitxplatforminputcontextplugin.so` 的位置,您可以执行: + +```sh +fcitx-diagnose | grep libfcitxplatforminputcontextplugin.so +``` + +如果没有这样的库,您可能需要在继续之前为 Qt5 正确安装和配置 Fcitx。 + +然后你需要将lib复制到Qt的插件目录: + +``` +/5.9.3/gcc_64/plugins/platforminputcontexts/ +``` + +### OpenSSL +VNote需要 **openSSL 1.0** 以实现联网。要验证它是否已正确设置,您可以在VNote的帮助菜单中检查更新。如果VNote无法检查更新,则需要将openSSL的库复制到Qt的库目录中。 + +安装openSSL后,您可以找到两个lib文件: + +``` +/usr/lib/libcrypto.so.1.0.0 +/usr/lib/libssl.so.1.0.0 +``` + +将这两个文件复制到Qt的库目录中: + +``` +/5.9.3/gcc_64/lib/ +``` + +在Qt的库目录中,为这两个文件创建符号链接: + +```sh +ln -s libcrypto.so.1.0.0 libcrypto.so +ln -s libssl.so.1.0.0 libssl.so +``` + +## MacOS +如果您更喜欢macOS上的命令行,则可以按照以下步骤操作。 + +1. 安装Xcode和Homebrew; +2. 通过Homebrew安装Qt 5.9.1: + + ``` + brew install qt@5.9.1 + ``` + +3. 在项目目录中,像下面那样创建`build_macos.sh`: + + ```sh + QTDIR="/usr/local/opt/qt@5.9.1" + PATH="$QTDIR/bin:$PATH" + LDFLAGS=-L$QTDIR/lib + CPPFLAGS=-I$QTDIR/include + + mkdir -p build + cd build + qmake -v + qmake CONFIG-=debug CONFIG+=release ../VNote.pro + make -j2 + ``` + +4. 使 `build_macos.sh` 可执行并运行它: + + ```sh + chmod +x build_macos.sh + ./build_macos.sh + ``` + +5. 现在你得到了bundle路径 `path/to/project/build/src/VNote.app` 。 \ No newline at end of file diff --git a/zh_cn/docs/用户/_v_images/20181124202713648_254376416.svg b/zh_cn/docs/用户/_v_images/20181124202713648_254376416.svg new file mode 100644 index 00000000..b32c753f --- /dev/null +++ b/zh_cn/docs/用户/_v_images/20181124202713648_254376416.svg @@ -0,0 +1,44 @@ + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/zh_cn/docs/用户/_v_images/_1517130666_1123329589.png b/zh_cn/docs/用户/_v_images/_1517130666_1123329589.png new file mode 100644 index 00000000..eb18defb Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517130666_1123329589.png differ diff --git a/zh_cn/docs/用户/_v_images/_1517138965_254456675.png b/zh_cn/docs/用户/_v_images/_1517138965_254456675.png new file mode 100644 index 00000000..9d8539c8 Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517138965_254456675.png differ diff --git a/zh_cn/docs/用户/_v_images/_1517139520_1176992512.png b/zh_cn/docs/用户/_v_images/_1517139520_1176992512.png new file mode 100644 index 00000000..2c3b4f6c Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517139520_1176992512.png differ diff --git a/zh_cn/docs/用户/_v_images/_1517711911_1371452209.png b/zh_cn/docs/用户/_v_images/_1517711911_1371452209.png new file mode 100644 index 00000000..fe8aec7b Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517711911_1371452209.png differ diff --git a/zh_cn/docs/用户/_v_images/_1517712063_1523124418.png b/zh_cn/docs/用户/_v_images/_1517712063_1523124418.png new file mode 100644 index 00000000..dd858e63 Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517712063_1523124418.png differ diff --git a/zh_cn/docs/用户/_v_images/_1517715930_350213329.png b/zh_cn/docs/用户/_v_images/_1517715930_350213329.png new file mode 100644 index 00000000..78356d68 Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517715930_350213329.png differ diff --git a/zh_cn/docs/用户/_v_images/_1517717905_885171283.png b/zh_cn/docs/用户/_v_images/_1517717905_885171283.png new file mode 100644 index 00000000..20b3048d Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1517717905_885171283.png differ diff --git a/zh_cn/docs/用户/_v_images/_1522153820_1561893453.png b/zh_cn/docs/用户/_v_images/_1522153820_1561893453.png new file mode 100644 index 00000000..a6213599 Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1522153820_1561893453.png differ diff --git a/zh_cn/docs/用户/_v_images/_1522239414_1120116148.png b/zh_cn/docs/用户/_v_images/_1522239414_1120116148.png new file mode 100644 index 00000000..a66b7500 Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1522239414_1120116148.png differ diff --git a/zh_cn/docs/用户/_v_images/_1522240083_877026964.png b/zh_cn/docs/用户/_v_images/_1522240083_877026964.png new file mode 100644 index 00000000..792406ef Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1522240083_877026964.png differ diff --git a/zh_cn/docs/用户/_v_images/_1526306088_1492754452.png b/zh_cn/docs/用户/_v_images/_1526306088_1492754452.png new file mode 100644 index 00000000..9c863e7c Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1526306088_1492754452.png differ diff --git a/zh_cn/docs/用户/_v_images/_1527406007_1635981025.png b/zh_cn/docs/用户/_v_images/_1527406007_1635981025.png new file mode 100644 index 00000000..02697801 Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_1527406007_1635981025.png differ diff --git a/zh_cn/docs/用户/_v_images/_customizem_1526304904_1519292127.png b/zh_cn/docs/用户/_v_images/_customizem_1526304904_1519292127.png new file mode 100644 index 00000000..3745401e Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_customizem_1526304904_1519292127.png differ diff --git a/zh_cn/docs/用户/_v_images/_vnotemaini_1516459447_1484535342.png b/zh_cn/docs/用户/_v_images/_vnotemaini_1516459447_1484535342.png new file mode 100644 index 00000000..4ff0d8eb Binary files /dev/null and b/zh_cn/docs/用户/_v_images/_vnotemaini_1516459447_1484535342.png differ diff --git a/zh_cn/docs/用户/_vnote.json b/zh_cn/docs/用户/_vnote.json index 3c3f21a4..0b0b9ce4 100644 --- a/zh_cn/docs/用户/_vnote.json +++ b/zh_cn/docs/用户/_vnote.json @@ -1,6 +1,116 @@ { "created_time": "2018-11-24T11:09:01Z", "files": [ + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:26:23Z", + "modified_time": "2018-11-24T12:28:12Z", + "name": "欢迎使用.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:28:54Z", + "modified_time": "2018-11-24T12:32:33Z", + "name": "为什么需要VNote.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:29:11Z", + "modified_time": "2018-11-24T12:33:04Z", + "name": "快速上手.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:29:25Z", + "modified_time": "2018-11-24T12:33:22Z", + "name": "笔记管理.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:29:35Z", + "modified_time": "2018-11-24T12:33:56Z", + "name": "片段.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:29:45Z", + "modified_time": "2018-11-24T12:34:17Z", + "name": "幻词.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:29:56Z", + "modified_time": "2018-11-24T12:34:28Z", + "name": "模板.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:30:05Z", + "modified_time": "2018-11-24T12:34:49Z", + "name": "主题和样式.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:30:14Z", + "modified_time": "2018-11-24T12:35:05Z", + "name": "导出.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:30:59Z", + "modified_time": "2018-11-24T12:35:18Z", + "name": "全文搜索.md", + "tags": [ + ] + }, + { + "attachment_folder": "", + "attachments": [ + ], + "created_time": "2018-11-24T12:31:22Z", + "modified_time": "2018-11-24T12:36:14Z", + "name": "常见问题.md", + "tags": [ + ] + } ], "sub_directories": [ ], diff --git a/zh_cn/docs/用户/为什么需要VNote.md b/zh_cn/docs/用户/为什么需要VNote.md new file mode 100644 index 00000000..584634fb --- /dev/null +++ b/zh_cn/docs/用户/为什么需要VNote.md @@ -0,0 +1,18 @@ +# 为什么需要VNote +## 什么是VNote +VNote是一款专为**Markdown**设计的**V**im风格**笔记**应用程序。它不仅仅是一个Markdown编辑器。VNote旨在成为一个功能强大的Markdown编辑器,带有便捷的笔记管理功能,同时具有友好的Markdown体验的笔记记录应用程序。 + +VNote是免费、开源的。您可以获得适用于Linux,Windows和macOS的VNote。 + +## 为什么要造另一个Markdown「轮子」 +### 关于Markdown的见解 +Markdown作为一种简单的标记语言,与富文本不同,它诞生是为了**弥补编辑器和阅读器之间存在的差距**。解决这种差距的方法有三种: + +1. 作为一个极端,一些编辑器只是将Markdown视为**纯文本**。用户可能会迷失在凌乱的黑色字符中。记录追踪笔记的信息是**十分困难**。 +2. 大多数Markdown编辑器使用两个并排面板以**同时编辑和预览**Markdown笔记。它使事情变得更加简单,因为用户可以在编辑文本的同时预览的排版和布局结果。但是,两个面板可能占据整个屏幕,并且用户要不断左右移动视线,这使用户极其容易分心。 +3. 另一个极端是,一些编辑器在用户输入后马上转换Markdown元素,使得在使用Markdown时就像使用一些快捷方式在Word里编辑富文本文档一样。这可能与Markdown的目标相冲突。 + +由于大多数编辑器选择第二种方式来消除差距,人们总是会在使用Markdown时需要预览结果。这可能是一个关于Markdown的**误解**。定位为简单的标记语言,Markdown旨在帮助在编辑时跟踪文本信息,并在转换为HTML后进行阅读时提供漂亮的排版。设计 + +### VNote的权衡方式 +VNote尝试通过**调整语法高亮和其他一些功能**来最小化差距并为Markdown提供最佳的所见即所得效果。通过跟踪内容的协助,无需在输入后立即预览或转换文本。 \ No newline at end of file diff --git a/zh_cn/docs/用户/主题和样式.md b/zh_cn/docs/用户/主题和样式.md new file mode 100644 index 00000000..67111344 --- /dev/null +++ b/zh_cn/docs/用户/主题和样式.md @@ -0,0 +1,378 @@ +# 主题和样式 +## 主题 +**主题**用于指定VNote的外观,编辑器的样式和读取模式,以及代码块的语法高亮样式。 + +主题对应于配置文件夹中的`themes`文件夹中的子文件夹,其结构如下: + +``` +themes/ +├── v_pure +│ ├── arrow_dropdown.svg +│ ├── branch_closed.svg +│ ├── branch_end.svg +│ ├── branch_more.svg +│ ├── branch_open.svg +│ ├── checkbox_checked.svg +│ ├── checkbox_unchecked.svg +│ ├── close_grey.svg +│ ├── close.svg +│ ├── down_disabled.svg +│ ├── down.svg +│ ├── float.svg +│ ├── left_disabled.svg +│ ├── left.svg +│ ├── line.svg +│ ├── menu_checkbox.svg +│ ├── menu_radiobutton.svg +│ ├── radiobutton_checked.svg +│ ├── radiobutton_unchecked.svg +│ ├── right_disabled.svg +│ ├── right.svg +│ ├── up_disabled.svg +│ ├── up.svg +│ ├── v_pure_codeblock.css +│ ├── v_pure.css +│ ├── v_pure.mdhl +│ ├── v_pure.palette +│ └── v_pure.qss +``` + +- `v_pure.palette`:主题的主要条目,指定其他文件和样式; +- `v_pure.qss`:[Qt样式表](http://doc.qt.io/qt-5/stylesheet-reference.html)的文件,它指定所有小部件的外观; +- `v_pure.mdhl`:Markdown 编辑器风格的文件,使用[PEG Markdown的语法突出显示样式表](http://hasseg.org/peg-markdown-highlight/docs/stylesheet_syntax.html); +- `v_pure.css`:文件的阅读模式; +- `v_pure_codeblock.css`:使用Highlight.js[在读取模式下突出显示代码块样式的文件](https://highlightjs.org/static/demo/); + +### 主题调色板 +我们来看看`.palette`文件。该文件采用 `INI` 格式。 + +#### [metadata] +此部分指定该主题将使用的其他样式文件。 + +```ini +; File path could be absolute path or relative path (related to this file). +; Use @color_tag to reference a style. + +[metadata] +qss_file=v_pure.qss +mdhl_file=v_pure.mdhl +css_file=v_pure.css +codeblock_css_file=v_pure_codeblock.css +version=2 +``` + +#### [phony] +此部分用于定义基本抽象颜色属性的**变量**。变量可以通过`@变量名`引用并定义另一个变量。 + +这些变量由其他部分引用,因此您可以自由选择和定义自己的变量。 + +```ini +[phony] +; Abstract color attributes. +master_fg=#F5F5F5 +master_bg=#00897B +master_light_bg=#80CBC4 +master_dark_bg=#00796B +master_focus_bg=#009688 +master_hover_bg=#009688 +master_pressed_bg=#00796B + +base_fg=#222222 +base_bg=#EAEAEA + +main_fg=@base_fg +main_bg=@base_bg + +title_fg=@base_fg +title_bg=@base_bg + +disabled_fg=#9E9E9E + +content_fg=@base_fg +content_bg=@base_bg + +border_bg=#D3D3D3 + +separator_bg=#D3D3D3 + +hover_fg=@base_fg +hover_bg=#D0D0D0 + +selected_fg=@base_fg +selected_bg=#BDBDBD + +active_fg=@selected_fg +active_bg=@selected_bg + +inactive_fg=@selected_fg +inactive_bg=#D3D3D3 + +focus_fg=@selected_fg +focus_bg=@selected_bg + +pressed_fg=@base_fg +pressed_bg=#B2B2B2 + +edit_fg=#222222 +edit_bg=#F5F5F5 +edit_focus_bg=#E0F2F1 +edit_focus_border=@master_bg +edit_selection_fg=@edit_fg +edit_selection_bg=@master_light_bg + +icon_fg=#222222 +icon_disabled_fg=@disabled_fg + +danger_fg=#F5F5F5 +danger_bg=#C9302C +danger_focus_bg=#D9534F +danger_hover_bg=#D9534F +danger_pressed_bg=#AC2925 +``` + +#### [soft_defined] +本节定义Vnote代码所使用的变量。你**必须**定义这些变量才能使VNote看起来正确。 + +```ini +[soft_defined] +; VAvatar. +; The foreground color of the avatar when Captain mode is triggered. +avatar_captain_mode_fg=@master_fg +; The background color of the avatar when Captain mode is triggered. +avatar_captain_mode_bg=@master_bg + +; Style of the label in Navigation mode. +navigation_label_fg=@master_fg +navigation_label_bg=@master_bg + +; Style of the bubble of VButtonWithWidget. +bubble_fg=@master_fg +bubble_bg=@master_bg + +; Icons' foreground. +danger_icon_fg=@danger_bg +item_icon_fg=@icon_fg +title_icon_fg=@icon_fg + +; VVimIndicator. +vim_indicator_key_label_fg=@base_fg +vim_indicator_mode_label_fg=@base_fg +vim_indicator_cmd_edit_pending_bg=@selected_bg + +; VTabIndicator. +tab_indicator_label_fg=@base_fg + +; Html template. +template_title_flash_light_fg=@master_light_bg +template_title_flash_dark_fg=@master_bg + +; Search hit items in list or tree view. +search_hit_item_fg=@selected_fg +search_hit_item_bg=@master_light_bg +``` + +#### [widgets] +本节定义了要在`qss`文件中使用的变量,以定义不同小部件的具体样式。它们被qss文件引用。 + +```ini +[widgets] +; Widget color attributes. + +; QWidget. +widget_fg=@base_fg + +; Separator of dock widgets. +dock_separator_bg=@border_bg +dock_separator_hover_bg=@border_bg + +; Menubar. +menubar_bg=@main_bg +menubar_fg=@main_fg +menubar_item_selected_bg=@selected_bg + +; Menu. +menu_bg=@base_bg +menu_fg=@base_fg +menu_item_disabled_fg=@disabled_fg +menu_item_selected_fg=@selected_fg +menu_item_selected_bg=@selected_bg +menu_separator_bg=@separator_bg +menu_icon_fg=@icon_fg +menu_icon_danger_fg=@danger_icon_fg +``` + +如果你好奇,`qss` 文件可能看起来像这样: + +```css +/* QWidget */ +QWidget +{ + color: @widget_fg; + font-family: "Hiragino Sans GB", "冬青黑体", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", "Dengxian", "等线体", "STXihei", "华文细黑", "Liberation Sans", "Droid Sans", "NSimSun", "新宋体", "SimSun", "宋体", "Helvetica", "sans-serif", "Tahoma", "Arial", "Verdana", "Geneva", "Georgia", "Times New Roman"; +} + +QWidget[NotebookPanel="true"] { + padding-left: 3px; +} +/* End QWidget */ + +/* QMainWindow */ +QMainWindow { + color: @base_fg; + background: @base_bg; +} + +QMainWindow::separator { + background: @dock_separator_bg; + width: 2px; + height: 2px; +} + +QMainWindow::separator:hover { + background: @dock_separator_hover_bg; +} +/* End QMainWindow */ + +QMenuBar { + border: none; + background: @menubar_bg; + color: @menubar_fg; +} + +QMenuBar::item:selected { + background: @menubar_item_selected_bg; +} +``` + +### 自定义主题 +VNote支持自定义主题。只需将theme(文件夹)放在`themes`文件夹中,重新启动VNote并在菜单中的`File`中选择你的theme即可。 + +自定义主题的最佳方法是调整默认主题。VNote将在`themes` 文件夹中输出默认主题(如果没有,您可以在[此处](https://github.com/tamlok/vnote/tree/master/src/resources/themes)下载)。复制默认主题并重命名 `palette` 文件。然后你可以根据自己的喜好调整它。需要重新启动VNote才能使更改生效。 + +## 编辑风格 +编辑器样式由`mdhl`文件指定。每个主题可能带有一个`mdhl`文件。您还可以应用另一个`mdhl`文件,而不是使用主题指定的默认文件。单独的样式文件可以放在配置文件夹的`styles` 文件夹中。为了扫描新的`mdhl`文件需要重新启动VNote,并且需要重新打开笔记以应用新样式。 + +![](_v_images/_1517715930_350213329.png) + +### MDHL文件的语法 +`mdhl` 文件采用[PEG Markdown的语法高亮样式表](http://hasseg.org/peg-markdown-highlight/docs/stylesheet_syntax.html)并扩展它以支持更多元素。 + +``` +# This is the default markdown styles used for Peg-Markdown-Highlight +# created by Le Tan(tamlokveer@gmail.com). +# For a complete description of the syntax, please refer to the original +# documentation of the style parser +# [The Syntax of PEG Markdown Highlight Stylesheets](http://hasseg.org/peg-markdown-highlight/docs/stylesheet_syntax.html). +# VNote adds some styles in the syntax which will be marked [VNote] in the comment. +# +# Note: Empty lines within a section is NOT allowed. +# Note: Do NOT modify this file directly. Copy it and tune your own style! + +editor +# QTextEdit just choose the first available font, so specify the Chinese fonts first +# Do not use "" to quote the name +font-family: Hiragino Sans GB, 冬青黑体, Microsoft YaHei, 微软雅黑, Microsoft YaHei UI, WenQuanYi Micro Hei, 文泉驿雅黑, Dengxian, 等线体, STXihei, 华文细黑, Liberation Sans, Droid Sans, NSimSun, 新宋体, SimSun, 宋体, Helvetica, sans-serif, Tahoma, Arial, Verdana, Geneva, Georgia, Times New Roman +font-size: 12 +foreground: 222222 +background: f5f5f5 +# [VNote] Style for trailing space +trailing-space: a8a8a8 +# [VNote] Style for line number +line-number-background: eaeaea +line-number-foreground: 424242 +# [VNote] Style for selected word highlight +selected-word-foreground: 222222 +selected-word-background: dfdf00 +# [VNote] Style for searched word highlight +searched-word-foreground: 222222 +searched-word-background: 4db6ac +# [VNote] Style for searched word under cursor highlight +searched-word-cursor-foreground: 222222 +searched-word-cursor-background: 66bb6a +# [VNote] Style for incremental searched word highlight +incremental-searched-word-foreground: 222222 +incremental-searched-word-background: ce93d8 +# [VNote] Style for color column in fenced code block +color-column-background: dd0000 +color-column-foreground: ffff00 +# [VNote} Style for preview image line +preview-image-line-foreground: 9575cd + +editor-selection +foreground: eeeeee +background: 005fff + +editor-current-line +background: c5cae9 +# [VNote] Vim insert mode cursor line background +vim-insert-background: c5cae9 +# [VNote] Vim normal mode cursor line background +vim-normal-background: e0e0e0 +# [VNote] Vim visual mode cursor line background +vim-visual-background: bbdefb +# [VNote] Vim replace mode cursor line background +vim-replace-background: f8bbd0 + +H1 +foreground: 222222 +font-style: bold +font-size: +8 + +VERBATIM +foreground: 673ab7 +font-family: Consolas, Monaco, Andale Mono, Monospace, Courier New +# [VNote] Codeblock sylte from HighlightJS (bold, italic, underlined, color) +# The last occurence of the same attribute takes effect +# Could specify multiple attribute in one line +hljs-comment: 6c6c6c +hljs-keyword: 0000ee +hljs-attribute: 0000ee +hljs-selector-tag: 0000ee +hljs-meta-keyword: 0000ee +hljs-doctag: 0000ee +hljs-name: 0000ee +hljs-type: 880000 +hljs-string: 880000 +hljs-number: 880000 +hljs-selector-id: 880000 +hljs-selector-class: 880000 +hljs-quote: 880000 +hljs-template-tag: 880000 +hljs-deletion: 880000 +hljs-title: bold, 880000 +hljs-section: bold, 880000 +hljs-regexp: bc6060 +hljs-symbol: bc6060 +hljs-variable: bc6060 +hljs-template-variable: bc6060 +hljs-link: bc6060 +hljs-selector-attr: bc6060 +hljs-selector-pseudo: bc6060 +hljs-literal: af00d7 +hljs-built_in: 008700 +hljs-bullet: 008700 +hljs-code: 008700 +hljs-addition: 008700 +hljs-meta: 1f7199 +hljs-meta-string: 4d99bf +hljs-emphasis: italic +hljs-strong: bold +``` + +The syntax highlight of the code blocks in edit mode is specified by the `VERBATIM` element. + +For example, if you want to change the font size of the code block in edit mode, you may need to add the following line under `VERBATIM` element: + +``` +font-size: -2 +``` + +## 渲染样式 +读取模式下的呈现样式由`css`文件指定。每个主题都可以带有一个`css`文件。您还可以应用另一个`css`文件,而不是使用主题指定的默认文件。单独的样式文件可以放在配置文件夹的 `styles`文件夹中。为了扫描新的css文件需要重新启动`css`,并且需要重新打开笔记以应用新样式。 + +![](_v_images/_1517717905_885171283.png) + +## 代码块渲染样式 +读取模式下的呈现样式由`css` 文件指定。每个主题都可以带有一个`css` 文件。您还可以应用另一个`css` 文件,而不是使用主题指定的默认文件。单独的样式文件可以放在配置文件夹的`styles/codeblock_styles` 文件夹中。为了扫描新的`css` 文件需要重新启动VNote,并且需要重新打开注释笔记以应用新样式。 + +该文件由 **highlight.js** 渲染器引擎使用。您可以从[Highlight.js Github](https://github.com/isagalaev/highlight.js/tree/master/src/styles)下载现有的样式文件。 \ No newline at end of file diff --git a/zh_cn/docs/用户/全文搜索.md b/zh_cn/docs/用户/全文搜索.md new file mode 100644 index 00000000..8c3db800 --- /dev/null +++ b/zh_cn/docs/用户/全文搜索.md @@ -0,0 +1,43 @@ +# 全文搜索 +VNote提供强大的内置的全文搜索功能,以搜索您的笔记。 + +按`Ctrl+E C` 或`Ctrl+Alt F` 激活**搜索**坞小部件。您也可以通过`编辑`或`查看`菜单激活它。 + +![](_v_images/_1527406007_1635981025.png) + +## 关键词 +- 指定要搜索的关键字; +- 支持`&&`和`||` 用于AND和OR逻辑,例如`markdown && vnote`; +- 以空格分隔的关键字表示AND,例如 `markdown vnote`; + +### Magic Switch +VNote支持关键字中的**Magic Switch**来打开/关闭搜索的某些选项: + +- `\f`或`\F`:禁用或启用**模糊搜索**; +- `\c`或`\C`:不区分大小写或敏感; +- `\r`或`\R`:禁用或启用**正则表达式**; +- `\w`或`\W`:禁用或启用**仅限全字**; + +例子:`vnote \C \W`用于`不区分大小写`并且`仅限全字`搜索vnote。 + +## 范围 +限制搜索有四个范围: + +- `已打开笔记`; +- `当前文件夹`; +- `当前笔记本`; +- `所有笔记本`; + +## 对象 +指定是否应对**内容**或**名称**执行搜索。 + +## 目标 +我们可以搜索: + +- `笔记`; +- `文件夹`; +- `笔记本`; +- `笔记/文件夹/笔记本`; + +## 文件模式 +我们可以指定文件模式来过滤以获得我们感兴趣的文件,例如`*.md`以仅搜索Markdown文件。 \ No newline at end of file diff --git a/zh_cn/docs/用户/导出.md b/zh_cn/docs/用户/导出.md new file mode 100644 index 00000000..3853e79f --- /dev/null +++ b/zh_cn/docs/用户/导出.md @@ -0,0 +1,96 @@ +# 导出 +VNote支持丰富且可扩展的导出。 + +![](_v_images/_1522153820_1561893453.png) + +## 来源 +有四种来源可供选择需要导出的笔记。 + +- **当前笔记** + - 导出当前笔记; +- **当前文件夹** + - 导出当前文件夹中的所有笔记; + - 支持递归导出子文件夹; +- **当前笔记本** + - 导出当前笔记本的所有笔记; +- **小推车** + - 小推车是一个收集随机笔记以便进一步处理的工具。 + +## 选项 +我们可以为导出指定**Markdown渲染器**,**Markdown渲染背景**,**Markdown渲染样式**和**Markdown渲染代码块样式**。例如,我们可以在导出为PDFs时指定*透明*背景。 + +## 格式 +### Markdown +我们可以将Markdown类型的笔记导出为Markdown格式。对于名为`vnote.md`的笔记,VNote将创建名为`vnote_md`的文件夹,然后将`vnote_md`复制到此文件夹,然后复制此笔记的本地图像,然后复制此笔记的附件。在此之后,我们可以压缩此文件夹并共享它。 + +### HTML +将注释导出为HTML格式时,VNote将首先呈现笔记的Markdown格式,然后将HTML作为文件输出。HTML格式的高级设置包括: + +- **嵌入CSS样式** + - 在导出的HTML文件中嵌入CSS样式。 +- **完整页面** + - 选中后,VNote还将导出除HTML文件之外的相关图像。如果未选中,则可能会丢失本地图像。 +- **MIME HTML** + - 导出MIME HTML格式。 + +### PDF +VNote支持将笔记导出为PDF文件。页面大小和边距是可配置的。有两个引擎可供选择执行导出。 + +#### 内置引擎 +内置引擎可以更好地处理内容,但在生成的PDF文件中缺少书签。 + +#### wkhtmltopdf +[wkhtmltopdf](https://wkhtmltopdf.org/)是将HTML转换为PDF的第三方工具。您需要额外安装这个VNote将使用的工具。使用此引擎时,VNote将首先将Markdown注释转换为HTML格式,然后使用生成的HTML文件作为输入调用*wkhtmltopdf*。 + +![](_v_images/_1522239414_1120116148.png) + +高级设置包括: + +- **wkhtmltopdf** 路径 + - wkhtmltopdf可执行文件的路径。 +- **标题** + - 生成的PDF的标题。它仅在启用**All In One**时有效。 +- **输出的文件名** + - 生成的PDF文件的名称。它仅在启用**All In One**时有效。 +- **页码** + - 是否将页码附加到每个页面及其位置。 +- **启用背景** + - 是否启用HTML的背景。 +- **其他选项** + - 其他全局选项将传递给wkhtmltopdf。有关可用选项,请参阅wkhtmltopdf的文档。 + +### PDF(All In One) +选择此格式时,VNote将使用wkhtmltopdf工具将多个Markdown笔记转换为**一个**PDF文件。为了使这项工作顺利进行,一个实用技巧是从二级标题作为**标题序列**的开始,并将每个笔记的名称以一级标题形式插入。 + +### 自定义 +**自定义**格式使用户可以选择他们喜欢的任何工具来处理笔记。 + +![](_v_images/_1522240083_877026964.png) + +高级设置: + +- **格式来源** + - VNote支持使用Markdown或HTML格式作为输入的工具。 +- **输出后缀** + - 输出文件的后缀,例如docx,pdf或ppt。 +- **启用All In One** + - 是否将多个笔记一次性输入到您的工具中。它们由空格分隔。 +- **输出的文件名** + - 输出的文件名。它仅在启用**All In One**时有效。 +- **输入目录分隔符** + - VNote可以将输入笔记的目录传递给您的工具。您可以使用这些目录作为来源文件夹。此选项指定用于连接这些目录的分隔符。 +- 命令 + - 该命令由VNote执行。您可以使用的一些特殊占位符: + - %0:输入文件; + - %1:输出文件; + - %2:要使用的渲染CSS样式的文件; + - %3:输入文件目录; + - %4:渲染代码块要使用的CSS样式的文件; + +使用[pandoc](http://pandoc.org)导出笔记的示例: + +```sh +pandoc --resource-path=.:"%3" --css="%2" --css="%4" -s -o "%1" "%0" +``` + +如果之后输出的后缀是`pdf`,它将生成PDF文件;如果是`docx`,它将生成DOCX文件。 \ No newline at end of file diff --git a/zh_cn/docs/用户/常见问题.md b/zh_cn/docs/用户/常见问题.md new file mode 100644 index 00000000..4eeb123a --- /dev/null +++ b/zh_cn/docs/用户/常见问题.md @@ -0,0 +1,74 @@ +# 常见问题 +## 如何指定自定义的MathJax脚本? +VNote支持配置`[web]/mathjax_javascript` ,它指定MathJax的位置及其使用的配置。默认值可能如下所示: + +```ini +[web] +; Location and configuration for Mathjax +mathjax_javascript=https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML +``` + +您可以下载MathJax ([howto](http://docs.mathjax.org/en/latest/installation.html)) 并指定要使用的MathJax的本地副本,例如`mathjax_javascript="file:///home/tamlok/Downloads/MathJax-2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"`。 + +您还可以在GUI设置对话框中指定自定义脚本: + +![Customize MathJax Script](_v_images/_customizem_1526304904_1519292127.png) + +注意: + +- 请在本地路径前加上`file://`; +- 使用本地路径可能会无法找到字体。一个比较好的方法是在本机上运行一个轻量级的HTTP服务器。 + +## 如何让VNote更「便携」? +VNote将读取并存储配置文件到操作系统的公共目录中以存储应用程序数据。如果您希望将这些配置文件与VNote可执行文件一起放置,则可以在包含VNote可执行文件的目录中复制或创建`vnote.ini`文件。VNote将首先尝试从可执行文件所在的位置读取`vnote.ini`。 + +但请注意,VNote会将笔记本的路径存储在配置文件中,因此如果将VNote复制到另一台计算机,它可能会读取错误的路径并报错。 + +## 如何使用Mermaid或Flowchart.js绘制图表? +1. 在`Markdown`菜单中启用`Mermaid Diagram`和`Flowchart.js`; +2. 重新打开已打开的标签让它生效; +3. 对于Mermaid,用`mermaid`语言编写一个码块; +4. 对于Flowchart.js,用`flowchart` 或`flow`语言编写代码块; + +Mermaid的例子: + + ```mermaid + graph TD; + A-->B; + A-->C; + B-->D; + C-->D; + ``` + +Flowchart.js例子: + + ```flowchart + st=>start: Start:>http://www.google.com[blank] + e=>end:>http://www.google.com + op1=>operation: My Operation + sub1=>subroutine: My Subroutine + cond=>condition: Yes + or No?:>http://www.google.com + io=>inputoutput: catch something... + + st->op1->cond + cond(yes)->io->e + cond(no)->sub1(right)->op1 + ``` + +## 如何在另一个标签中打开笔记? +![](_v_images/_1526306088_1492754452.png) + +当`单击在当前标签中打开该笔记`是可用的,在笔记列表中单击一个笔记本可以在当前的标签中打开,而双击笔记列表的笔记则在新标签中打开它。 + +## 界面无响应 +## 编辑模式中没有光标 +## 打开一个笔记后软件异常退出 +## 全屏模式中菜单无法正常显示 +以上这4个问题可能是由显卡驱动引起的。建议解决步骤: + +1. 如果是Windows系统,可以尝试更新显卡驱动; +2. 尝试指定VNote使用集成显卡; +3. 如果还不能解决,尝试新建一个系统环境变量`QT_OPENGL`,可以尝试的值包括`desktop`或`angle`或`software`。 + +在以上操作之后,需要重启VNote。 \ No newline at end of file diff --git a/zh_cn/docs/用户/幻词.md b/zh_cn/docs/用户/幻词.md new file mode 100644 index 00000000..d4fcc730 --- /dev/null +++ b/zh_cn/docs/用户/幻词.md @@ -0,0 +1,46 @@ +# 幻词 +**幻词**是一些具有特殊含义的字符。它们将被识别为一些预先定义好的字符。举一个简单的例子,`date`可以识别为今天的日期。 + +VNote在大多数输入窗口小部件中支持片段插入。例如,您可以在创建备注时插入片段作为备注名称。 + +`%da% work log.md`将识别为`20180128 work log.md` ,因为`%da%`是一个幻词,它以`YYYYMMDD`的形式定义为今天的日期。 + +在编辑器中,您可以键入 `%da%`,然后按快捷键 `Ctrl+E M`,它将光标下的单词识别为幻词。 + +例如,键入以下单词: + +``` +Today is %da% +``` + +然后按 `Ctrl+E M`,它将更改为: + +``` +Today is 20180128 +``` + +## 内置幻词 +VNote定义了许多幻词。在输入对话框中,键入`%help%` 以显示已定义的幻词列表。 + +![](_v_images/_1517138965_254456675.png) + +## 自定义幻词 +在配置文件夹中编辑 `vnote.ini` 文件,如下所示: + +```ini +[magic_words] +1\name=vnote +1\definition="vnote is a great tool! -- Written %datetime%" +2\name=hw +2\definition="hello world!" +size=2 +``` + +现在我们得到了两个幻词分别是:`vnote`(基于另一个幻词`datetime`)和`hw`。 + +## 在片段中的幻词 +[Snippet](snippet.html) 也支持幻词。现在我们可以定义一个片段来插入当前日期,如下所示: + +![](_v_images/_1517139520_1176992512.png) + +现在处于编辑模式,我们可以按`Ctrl+E S D`来插入当前日期。 \ No newline at end of file diff --git a/zh_cn/docs/用户/快速上手.md b/zh_cn/docs/用户/快速上手.md new file mode 100644 index 00000000..f779d0f7 --- /dev/null +++ b/zh_cn/docs/用户/快速上手.md @@ -0,0 +1,32 @@ +# 快速上手 +VNote适用于在**Linux**,**Windows**和**macOS**系统。您可以从[下载](https://github.com/tamlok/vnote#downloads)页面获取独立软件包。 + +建议下载并使用VNote的**稳定版本**。如果您更喜欢使用VNote的一些最新功能,可以尝试从`master`分支产生的最新版本。 + +除了独立的安装包之外,一些包管理器可能已经打包和分发VNote,例如*AUR*和*homebrew cask*。 + +## 主界面 +这是VNote主界面的截图。 + +![VNote Main Interface](_v_images/_vnotemaini_1516459447_1484535342.png) + +### 菜单栏和工具栏 +VNote通过窗口顶部的**菜单栏**提供一些设置,并通过菜单项或按钮上的菜单栏下方的**工具栏**提供一些方便的快捷键。将光标放在菜单栏选项或按钮出,会出现一个工具提示或状态提示,有助于说明该选项或按钮的功能。 + +### 笔记本,文件夹和笔记 +VNote使用**笔记本**、**文件夹**和**笔记**层次结构进行笔记管理。左侧面板用于浏览笔记本,文件夹和笔记。 + +第一次启动VNote时,系统将提示您创建第一个笔记本。笔记本对应于文件系统中的目录。您应该选择一个空目录作为您的笔记本根文件夹。此笔记本的所有内容都将被存储在笔记本根文件夹中。 + +一旦你有了一个笔记本,你可以在这个笔记本中创建文件夹。VNote支持无限级别的文件夹。 + +左侧的面板的下部将列出当前文件夹中所有笔记。您可以在通过在该区域右侧菜单创建新的笔记。 + +### 内容区域 +占据大部分空间的中间区域是**内容区域**,用于读取和编辑笔记。VNote支持通过选项卡打开多个笔记。 + +### 工具坞小部件。 +在右侧面板中,有多个工具可以方便您进行阅读和编辑,例如**大纲**和**片段**。 + +### 准备好开始 +这就是VNote了!现在,您可以在VNote中阅读,编辑和管理您的笔记了! \ No newline at end of file diff --git a/zh_cn/docs/用户/模板.md b/zh_cn/docs/用户/模板.md new file mode 100644 index 00000000..f8c6003c --- /dev/null +++ b/zh_cn/docs/用户/模板.md @@ -0,0 +1,24 @@ +# 模板 +VNote支持基于模板创建笔记。 + +创建笔记时,您可以在对话框中选择一个模板。 + +![](_v_images/_1517711911_1371452209.png) + +VNote将模板文件存储在配置文件夹的templates子文件夹中。一个文件对应一个模板。您可以通过单击组合框旁边的「文件夹」图标来访问模板文件夹。![](_v_images/_1517712063_1523124418.png) + +您可以通过系统的文件浏览器在模板文件夹中添加或删除模板文件。 + +VNote支持模板中的**Magic Word**。例如,您可以编写如下模板: + +```md +# %no% +This is a template using **Magic Word** to insert note name as the title automatically. +``` + +`%no%` 是一个Magic Word,将笔记的名称自动识别为标题(不带后缀)。 因此,如果笔记命名为 `week report.md`,则新笔记将如下所示: + +```md +# week report +This is a template using **Magic Word** to insert note name as the title automatically. +``` \ No newline at end of file diff --git a/zh_cn/docs/用户/欢迎使用.md b/zh_cn/docs/用户/欢迎使用.md new file mode 100644 index 00000000..4b48d814 --- /dev/null +++ b/zh_cn/docs/用户/欢迎使用.md @@ -0,0 +1,6 @@ +# 欢迎使用VNote文档 +![](_v_images/20181124202713648_254376416.svg =256x) + +VNote是一个更懂程序员和Markdown的笔记。 + +VNote是开源的,源代码托管在[GitHub](https://github.com/tamlok/vnote)。 \ No newline at end of file diff --git a/zh_cn/docs/用户/片段.md b/zh_cn/docs/用户/片段.md new file mode 100644 index 00000000..1ca33575 --- /dev/null +++ b/zh_cn/docs/用户/片段.md @@ -0,0 +1,61 @@ +# 片段 +片段旨在方便重复输入一些词组。 + +## 片段管理 +您可以通过 `Tools` 工具栏小部件管理片段。 + +![](_v_images/_1517130666_1123329589.png) + +在此面板中,我们可以: + +1. 创建一个片段; +2. 打开片段文件夹; + - VNote使用配置文件夹中的一个文件夹来存储所有片段,并使用配置文件 `snippet.json` 进行管理。每个片段对应一个文件。 +3. 查看和编辑有关片段的信息; +4. 排序和删除片段; +5. 将一个片段应用(插入)到编辑器中; + +## 定义一个片段 +片段包含: + +- 片段名称 + - 用以标识不同的片段。它也是片段文件夹中相应文件的名称。 +- 片段类型 + - 纯文本或HTML。目前仅支持纯文本。 +- 快捷键 + - 您可以指定26个字符(a到z)中的一个来快速插入指定的片段。 +- 光标标记 + - 插入片段后,VNote使用光标标记以表示光标的位置。应该只在内容中出现一次。 +- 选择标记 + - 在应用片段之前,VNote使用选择标记以标记插入所选文本的位置。选择标记可能会在内容中多次出现。插入片段后,所有选择标记都将替换为所选片段。 +- 内容 + - 在插入片段时,片段的内容将插入当前光标位置。 + +## 使用一个片段 +### 片段面板 +将光标放在正确的位置,然后双击代码段面板中的片段段以插入片段。 + +### 快捷键 +您可以使用**Captain Mode**快速插入片段。在编辑模式下,按`Ctrl+E S` 以激活片段选择对话框,其中显示**已定义快捷方式**的所有片段。按相应的快捷键以插入片段。 + +## 例子 +### 插入CPP语言的代码块 + ```cpp + @@ + ``` + +### 注释掉所选文本 +``` + +``` + +### 颜色的标记 +``` +$$@@ +``` + +或: + +``` +$$@@ +``` \ No newline at end of file diff --git a/zh_cn/docs/用户/笔记管理.md b/zh_cn/docs/用户/笔记管理.md new file mode 100644 index 00000000..d3601654 --- /dev/null +++ b/zh_cn/docs/用户/笔记管理.md @@ -0,0 +1,32 @@ +# 笔记管理 +VNote采用**notebooks-folders-notes**层次结构进行笔记管理。notebook对应于文件系统中的目录,称为**Notebook Root Folder**。笔记本的Folders对应于Notebook Root Folder中的目录。文件夹中的Notes对应于该目录中的文件。 + +## 笔记本 +Notebook是在VNote中独立,不言自明的容器。一个笔记本是文件系统中的一个**Notebook Root Folder**。该根文件夹包含该笔记本的所有笔记和配置文件。 + +### 创建一个笔记本 +您可以通过指定以下字段来创建新笔记本: + +- **笔记本名称** + - VNote中笔记本的名称。它仅用于在VNote中识别您的笔记本。它不会写入笔记本的配置。 +- **笔记本根文件夹** + - 在系统中选择一个**空**目录以保存此笔记本的所有内容。该被选的目录会假设在VNote的控制之下。 +- **图像文件夹** + - 这是用于存储笔记的本地图像的文件夹的名称。VNote使用给定文件夹(具有相同父文件夹)来存储这些笔记的图像。 +- **附件文件夹** + - 这是用于存储备注附件文件的文件夹的名称。 + +### 迁移和导入笔记本 +一个笔记本是文件系统中的一个独立目录,因此您只需复制或同步*Notebook Root Folder*即可迁移笔记本。 + +您可以在创建笔记本时通过选择它的*Notebook Root Folder*将现有笔记本导入到VNote。VNote将尝试读取配置文件以还原笔记本。 + +结合这些操作,您可以在允许第三方服务(如Dropbox和OneDrive)同步的目录中创建笔记本,然后在另一台计算机中,您可以将该目录作为笔记本导入VNote。这样,您可以使用VNote编辑和管理您的笔记,这些笔记将由其他受信任的服务在家中和工作中同步。 + +## 文件夹 +笔记本中的文件夹层次结构与*Notebook Root Folder*中的目录相同。理论上您可以创建无限多的文件夹层级。 + +## 笔记 +您可以通过菜单中的`File` 选项里的`New Notes From Files` 操作将外部文件作为笔记导入到VNote中。VNote将所选文件作为笔记复制到当前文件夹中。 + +理论上,VNote中的笔记可以使用任何后缀。带后缀`.md`的笔记将被视为Markdown文件。 \ No newline at end of file diff --git a/zh_cn/navigation.json b/zh_cn/navigation.json index 4142c583..e4263cbf 100644 --- a/zh_cn/navigation.json +++ b/zh_cn/navigation.json @@ -24,7 +24,7 @@ "text": "文档", "target": "docs/_vnote.json", "navi": true, - "navi_index": "用户/welcome.md" + "navi_index": "用户/欢迎使用.md" }, { "text": "捐赠",