Przeglądaj źródła

修改引用功能

bhikkhu-kosalla-china 4 lat temu
rodzic
commit
f0ac7ae20d
2 zmienionych plików z 78 dodań i 5 usunięć
  1. 75 0
      src/part/advance.md
  2. 3 5
      src/part/markdown_guide.md

+ 75 - 0
src/part/advance.md

@@ -0,0 +1,75 @@
+# 进阶用法
+## include,包含文件内容
+
+使用以下语法,您可以将文件包含到您的书中:
+```
+{{#include file.rs}}
+```
+文件的路径必须是**当前**源文件的**相对**路径.
+
+通常,此命令用于包含代码段和示例。在这种情况下, 可指定文件的包含部分,例如其中只包含示例的相关行.
+
+mdBook 会将include文件解释成markdown。自从include命令常用来插入代码片段和示例,你会习惯使用 
+``
+\```
+`` 
+包裹这些命令,显示(include)文件的内容,而不是去解释它们。
+
+````
+```
+{{#include file.rs}}
+```
+````
+
+## 只 Include 一个文件的部分内容
+
+常见要求是你只要文件的部分内容 e.g. 以行编号作为例子。我们对部分内容插入,支持了几种模式:
+
+```hbs
+\{{#include file.rs:2}}
+\{{#include file.rs::10}}
+\{{#include file.rs:2:}}
+\{{#include file.rs:2:10}}
+```
+
+我们支持四种不同的决定`file.rs`部分模式:
+
+- 第一个命令仅包含文件中的第二行.
+- 第二个命令包含直到第 10 行的所有行。即,从 11 到文件末尾的行被省略.
+- 第三个命令包含第 2 行的所有行,即省略第一行.
+- 最后一个命令包含摘录`file.rs`由 2 到 10 行组成.
+
+为了防止文件的修改(行数的变化),导致图书呈现内容的变化, 你还可以使用锚点(anchor),选择一个特定的部分,
+行数就不再相关。
+一个 anchor 是一对匹配的行。 匹配的内容正是正则式,如开头的行 anchor 必须匹配 `ANCHOR:\s*[\w_-]+` and similarly 结尾行则是 `ANCHOR_END:\s*[\w_-]+`。只要内容匹配了,注释的写法格式倒是没有限制。
+
+考虑下面 要 include 的文件:
+
+```rs
+/* ANCHOR: all */
+
+// ANCHOR: component
+struct Paddle {
+    hello: f32,
+}
+// ANCHOR_END: component
+
+////////// ANCHOR: system
+impl System for MySystem { ... }
+////////// ANCHOR_END: system
+
+/* ANCHOR_END: all */
+```
+
+给个示例,你要做的:
+
+````hbs
+Here is a component: ```rust,no_run,noplayground
+\{{#include file.rs:component}} ``` Here is a system:
+```rust,no_run,noplayground
+\{{#include file.rs:system}} ``` This is the full file.
+```rust,no_run,noplayground
+\{{#include file.rs:all}} ```
+````
+
+在已 include anchor 内的,若还包含 anchor 匹配模式,则会被忽略。

+ 3 - 5
src/part/markdown_guide.md

@@ -28,8 +28,7 @@
 真换行
 
 ---
-分隔线---前需要双回车
-
+分割线---前需要双回车
 ```
 </div>
 <div style="flex:1;">
@@ -43,7 +42,6 @@
 
 ---
 分割线---前需要双回车
-
 </div></div>
 
 
@@ -75,7 +73,6 @@
 
 </div></div>
 
-
 ## 高级分割线
 
 ```
@@ -86,4 +83,5 @@
 
 {{#include ../part/line.md:1}}
 我是分割线
-{{#include ../part/line.md:2}}
+{{#include ../part/line.md:2}}
+