migrate documentation in zh_cn

This commit is contained in:
Le Tan 2018-11-24 20:39:07 +08:00
parent f732951fd9
commit 58e454e299
30 changed files with 1092 additions and 1 deletions

View File

@ -1,6 +1,16 @@
{ {
"created_time": "2018-11-24T11:09:09Z", "created_time": "2018-11-24T11:09:09Z",
"files": [ "files": [
{
"attachment_folder": "",
"attachments": [
],
"created_time": "2018-11-24T12:31:29Z",
"modified_time": "2018-11-24T12:36:39Z",
"name": "构建VNote.md",
"tags": [
]
}
], ],
"sub_directories": [ "sub_directories": [
], ],

View File

@ -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的插件目录
```
<path_to_Qt_installation_directory>/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的库目录中
```
<path_to_Qt_installation_directory>/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`

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg8"
version="1.1"
viewBox="0 0 135.46666 135.46666"
height="512"
width="512">
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-161.53335)"
id="g4579"
style="display:inline">
<path
id="path4682"
d="m 42.289995,195.6223 -20.278396,3.3e-4 25.334055,70.74483 c 0.448204,1.32121 2.064047,4.66939 4.092726,4.73001 l 21.555975,0.0275 c -8.602263,-24.03459 -17.204501,-48.0692 -25.806767,-72.10379 -0.624661,-1.37844 -2.606139,-3.39892 -4.897593,-3.39892 z"
style="fill:#00897b;fill-opacity:1;stroke:none;stroke-width:0.2399714;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path856"
d="M 113.45506,217.57986 C 97.982428,237.70991 80.859596,259.34026 72.994356,271.125 l -6.893565,-23.90176 33.174646,-43.1022 z"
style="fill:#00897b;fill-opacity:1;stroke:none;stroke-width:0.2399714;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path4577"
d="m 113.44472,191.54848 c 0.0504,-1.94436 -1.34529,-4.1252 -3.90208,-4.13813 l -22.932325,-0.002 c 5.340575,7.09033 15.661615,18.31157 26.844745,30.17171 z"
style="fill:#00897b;fill-opacity:1;stroke:none;stroke-width:0.21666166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

View File

@ -1,6 +1,116 @@
{ {
"created_time": "2018-11-24T11:09:01Z", "created_time": "2018-11-24T11:09:01Z",
"files": [ "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": [ "sub_directories": [
], ],

View File

@ -0,0 +1,18 @@
# 为什么需要VNote
## 什么是VNote
VNote是一款专为**Markdown**设计的**V**im风格**笔记**应用程序。它不仅仅是一个Markdown编辑器。VNote旨在成为一个功能强大的Markdown编辑器带有便捷的笔记管理功能同时具有友好的Markdown体验的笔记记录应用程序。
VNote是免费、开源的。您可以获得适用于LinuxWindows和macOS的VNote。
## 为什么要造另一个Markdown「轮子」
### 关于Markdown的见解
Markdown作为一种简单的标记语言与富文本不同它诞生是为了**弥补编辑器和阅读器之间存在的差距**。解决这种差距的方法有三种:
1. 作为一个极端一些编辑器只是将Markdown视为**纯文本**。用户可能会迷失在凌乱的黑色字符中。记录追踪笔记的信息是**十分困难**。
2. 大多数Markdown编辑器使用两个并排面板以**同时编辑和预览**Markdown笔记。它使事情变得更加简单因为用户可以在编辑文本的同时预览的排版和布局结果。但是两个面板可能占据整个屏幕并且用户要不断左右移动视线这使用户极其容易分心。
3. 另一个极端是一些编辑器在用户输入后马上转换Markdown元素使得在使用Markdown时就像使用一些快捷方式在Word里编辑富文本文档一样。这可能与Markdown的目标相冲突。
由于大多数编辑器选择第二种方式来消除差距人们总是会在使用Markdown时需要预览结果。这可能是一个关于Markdown的**误解**。定位为简单的标记语言Markdown旨在帮助在编辑时跟踪文本信息并在转换为HTML后进行阅读时提供漂亮的排版。设计
### VNote的权衡方式
VNote尝试通过**调整语法高亮和其他一些功能**来最小化差距并为Markdown提供最佳的所见即所得效果。通过跟踪内容的协助无需在输入后立即预览或转换文本。

View File

@ -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)下载现有的样式文件。

View File

@ -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文件。

View File

@ -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的文档。
### PDFAll In One
选择此格式时VNote将使用wkhtmltopdf工具将多个Markdown笔记转换为**一个**PDF文件。为了使这项工作顺利进行一个实用技巧是从二级标题作为**标题序列**的开始,并将每个笔记的名称以一级标题形式插入。
### 自定义
**自定义**格式使用户可以选择他们喜欢的任何工具来处理笔记。
![](_v_images/_1522240083_877026964.png)
高级设置:
- **格式来源**
- VNote支持使用Markdown或HTML格式作为输入的工具。
- **输出后缀**
- 输出文件的后缀例如docxpdf或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文件。

View File

@ -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。

View File

@ -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`来插入当前日期。

View File

@ -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中阅读编辑和管理您的笔记了

View File

@ -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.
```

View File

@ -0,0 +1,6 @@
# 欢迎使用VNote文档
![](_v_images/20181124202713648_254376416.svg =256x)
VNote是一个更懂程序员和Markdown的笔记。
VNote是开源的源代码托管在[GitHub](https://github.com/tamlok/vnote)。

View File

@ -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
@@
```
### 注释掉所选文本
```
<!-- $$@@ -->
```
### 颜色的标记
```
<font color=red>$$@@</font>
```
或:
```
<mark>$$@@</mark>
```

View File

@ -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文件。

View File

@ -24,7 +24,7 @@
"text": "文档", "text": "文档",
"target": "docs/_vnote.json", "target": "docs/_vnote.json",
"navi": true, "navi": true,
"navi_index": "用户/welcome.md" "navi_index": "用户/欢迎使用.md"
}, },
{ {
"text": "捐赠", "text": "捐赠",