在 markdown 文檔中顯示代碼之間的差別的 Gitbook 插件javascript
English[1] | 中文[2]css
{% diff method="diffJson" %}
```json
{
"name": "gitbook-plugin-simple-mind-map",
"version": "0.2.1",
"description": "A gitBook plugin for generating and exporting mind map within markdown"
}
```
```json
{
"name": "gitbook-plugin-diff",
"version": "0.2.1",
"description": "A gitbook plugin for showing the differences between the codes within markdown"
}
```
{% enddiff %}
複製代碼
{
- "description": "A gitBook plugin for generating and exporting mind map within markdown",
- "name": "gitbook-plugin-simple-mind-map",
+ "description": "A gitbook plugin for showing the differences between the codes within markdown",
+ "name": "gitbook-plugin-diff",
"version": "0.2.1"
}
複製代碼
book.json
文件在您的 gitbook
的 book.json
文件中,將 diff
添加到 plugins
列表中.java
這是最簡單的示例:node
{
"plugins": ["diff"]
}
複製代碼
此外,受支持的配置選項以下:git
"gitbook": {
"properties": {
"method": {
"type": "string",
"title": "jsdiff api method",
"required": false,
"default": "diffLines",
"description": "some supported methods such as diffChars or diffWords or diffWordsWithSpace or diffLines or diffTrimmedLines or diffSentences or diffCss or diffJson or diffArrays"
},
"options": {
"type": "object",
"title": "jsdiff api options",
"required": false,
"description": "some methods may not support options"
}
}
}
複製代碼
markdown
語法diff
插件支持 method
和 options
等選項生成差別代碼塊.github
這是在 markdown
文件中基本使用語法:web
{% diff %}
```
old code
```
```
new code
```
{% enddiff %}
複製代碼
下面有一些基本示例:spring
Diff.diffChars(oldStr, newStr[, options])
區分兩個文本塊,逐個字符比較。docker
返回npm
返回更改對象列表(請參見下文)。
選項
ignoreCase
:
true
忽略大小寫差別。默認爲
false
。
示例
設置
method="diffChars"
以調用Diff.diffChars(oldStr, newStr[, options])
方法
{% diff method="diffChars" %}
```js
cat
```
```js
cap
```
{% enddiff %}
複製代碼
ca
- t
+ p
複製代碼
Diff.diffWords(oldStr, newStr[, options])
區分兩個文本塊,逐字比較,忽略空格。
返回
返回更改對象列表(請參見下文)。
選項
ignoreCase
:與
diffChars
相同。
示例
設置
method="diffWords"
來調用Diff.diffWords(oldStr, newStr[, options])
方法
{% diff method="diffWords" %}
```bash
beep boop
```
```bash
beep boob blah
```
{% enddiff %}
複製代碼
beep
- boop
+ boob
+ blah
複製代碼
Diff.diffWordsWithSpace(oldStr, newStr[, options])
區分兩個文本塊,逐字比較,將空白視爲有效。
返回
返回更改對象列表(請參見下文)。
選項
ignoreCase
:與
diffWords
相同。
示例
設置
method="diffWordsWithSpace"
以調用Diff.diffWordsWithSpace(oldStr, newStr[, options])
方法
{% diff method="diffWordsWithSpace" %}
```bash
beep boop
```
```bash
beep boob blah
```
{% enddiff %}
複製代碼
beep
- boop
+ boob blah
複製代碼
Diff.diffLines(oldStr, newStr[, options])
比較兩個文本塊,逐行比較。
返回
返回更改對象列表(請參見下文)。
選項
ignoreWhitespace
:
true
忽略前導和尾隨空白。這與
diffTrimmedLines
相同
newlineIsToken
:
true
newlineIsToken
換行符視爲單獨的標記。這容許換行結構的更改獨立於行內容而發生,並照此處理。一般,這是
diffLines
更加人性化的形式,而且
diffLines
更適合於補丁和其餘計算機友好的輸出。
示例
設置
method="diffLines"
以調用Diff.diffLines(oldStr, newStr[, options])
方法
{% diff method="diffLines",options={"newlineIsToken":true} %}
```bash
beep boop
the cat is palying with cap
what
```
```bash
beep boob blah
the cat is palying with cap
who
```
{% enddiff %}
複製代碼
- beep boop
+ beep boob blah
the cat is palying with cap
- what
+ who
複製代碼
Diff.diffTrimmedLines(oldStr, newStr[, options])
區分兩個文本塊,逐行比較,忽略前導和尾隨空格。
返回
返回更改對象列表(請參見下文)。
選項
ignoreWhitespace
:與
diffLines
相同。
newlineIsToken
:同
diffLines
。
示例
設置
method="diffTrimmedLines"
來調用Diff.diffTrimmedLines(oldStr, newStr[, options])
方法
{% diff method="diffTrimmedLines",options={"newlineIsToken":true} %}
```bash
beep boop
the cat is palying with cap
what
```
```bash
beep boob blah
the cat is palying with cat
who
```
{% enddiff %}
複製代碼
- beep boop
the cat is palying with cap
what
+ beep boob blah
the cat is palying with cat
who
複製代碼
Diff.diffSentences(oldStr, newStr[, options])
區分兩個文本塊,逐句比較。
返回
返回更改對象列表(請參見下文)。
示例
設置
method="diffSentences"
來調用Diff.diffSentences(oldStr, newStr[, options])
方法
{% diff method="diffSentences" %}
```bash
beep boop
the cat is palying with cap
what
```
```bash
beep boob blah
the cat is palying with cat
who
```
{% enddiff %}
複製代碼
- beep boop
the cat is palying with cap
what
+ beep boob blah
the cat is palying with cat
who
複製代碼
Diff.diffCss(oldStr, newStr[, options])
比較兩個文本塊,比較 CSS 標記。
返回
返回更改對象列表(請參見下文)。
示例
設置
method="diffCss"
來調用Diff.diffCss(oldStr, newStr[, options])
方法
{% diff method="diffCss" %}
```css
.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6 {
margin-top: 1.275em;
margin-bottom: .85em;
font-weight: 700;
}
```
```css
.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6 {
margin-top: 1.5em;
margin-bottom: 1em;
}
```
{% enddiff %}
複製代碼
.markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6 {
margin-top:
- 1.275em
+ 1.5em
;
margin-bottom:
- .85em
+ 1em
;
-
font-weight: 700;
}
複製代碼
Diff.diffJson(oldObj, newObj[, options])
比較兩個 JSON 對象,比較每一個對象上定義的字段。在此比較中,字段的順序等並不重要。
返回
返回更改對象列表(請參見下文)。
示例
設置
method="diffJson"
來調用Diff.diffJson(oldObj, newObj[, options])
方法
{% diff method="diffJson" %}
```json
{
"name": "gitbook-plugin-simple-mind-map",
"version": "0.2.1",
"description": "A gitBook plugin for generating and exporting mind map within markdown"
}
```
```json
{
"name": "gitbook-plugin-diff",
"version": "0.2.1",
"description": "A gitbook plugin for showing the differences between the codes within markdown"
}
```
{% enddiff %}
複製代碼
{
- "description": "A gitBook plugin for generating and exporting mind map within markdown",
- "name": "gitbook-plugin-simple-mind-map",
+ "description": "A gitbook plugin for showing the differences between the codes within markdown",
+ "name": "gitbook-plugin-diff",
"version": "0.2.1"
}
複製代碼
Diff.diffArrays(oldArr, newArr[, options])
比較兩個數組,比較每一個項目是否嚴格相等(===)。
返回
返回更改對象列表(請參見下文)。
選件
comparator
:用於自定義相等性檢查的
function(left, right)
示例
設置
method="diffArrays"
以調用Diff.diffArrays(oldArr, newArr[, options])
方法
{% diff method="diffArrays" %}
```json
[
"Vue",
"Python",
"Java",
"flutter",
"springboot",
"docker",
"React",
"小程序"
]
```
```json
[
"Vuejs",
"Nodejs",
"Java",
"flutter",
"springboot",
"docker",
"React"
]
```
{% enddiff %}
複製代碼
[
- Vue
- Python
+ Vuejs
+ Nodejs
Java
flutter
springboot
docker
React
- 小程序
]
複製代碼
gitbook
命令gitbook install
.它將自動爲您的
gitbook
安裝
diff
插件.
該步驟僅須要容許一次便可.
gitbook install
複製代碼
或者您能夠運行 npm install gitbook-plugin-diff
命令本地安裝 gitbook-plugin-diff
插件.
npm install gitbook-plugin-diff
複製代碼
gitbook build
)或服務(
gitbook serve
).
gitbook serve
複製代碼
https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/docs/book.json[7]
{
"plugins": ["diff"],
"pluginsConfig": {
"diff": {
"method": "diffJson"
}
}
}
複製代碼
https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/example/book.json[8]
{
"plugins": ["diff"],
"pluginsConfig": {
"diff": {
"method": "diffJson"
}
}
}
複製代碼
book.json
文件
{
"plugins": ["diff"]
}
複製代碼
或者您能夠將 method
設置爲默認方法用於代碼之間進行比較方式:
{
"plugins": ["diff"],
"pluginsConfig": {
"diff": {
"method": "diffChars"
}
}
}
複製代碼
或者您能夠根據方法將 options
設置爲默認選項.
{
"plugins": ["diff"],
"pluginsConfig": {
"diff": {
"method": "diffChars",
"options": {
"ignoreCase": true
}
}
}
}
複製代碼
注意 :若是您的書尚未建立,以上代碼段能夠用做完整的 book.json
文件.
👤 snowdreams1006
歡迎貢獻,問題和功能要求!隨時檢查問題頁面[15] 。
若是這個項目對您有幫助,請給個星星[16] !
版權全部 ©2019 snowdreams1006[17] 。
該項目是MIT[18]許可的。
English: https://snowdreams1006.github.io/gitbook-plugin-diff/en/
[2]中文: https://snowdreams1006.github.io/gitbook-plugin-diff/zh/
[3]主頁: https://github.com/snowdreams1006/gitbook-plugin-diff#readme
[4]https://snowdreams1006.github.io/gitbook-plugin-diff/: https://snowdreams1006.github.io/gitbook-plugin-diff/
[5]https://snowdreams1006.gitlab.io/gitbook-plugin-diff/: https://snowdreams1006.gitlab.io/gitbook-plugin-diff/
[6]https://snowdreams1006.gitee.io/gitbook-plugin-diff/: https://snowdreams1006.gitee.io/gitbook-plugin-diff/
[7]https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/docs/book.json: https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/docs/book.json
[8]https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/example/book.json: https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/example/book.json
[9]https://github.com/kpdecker/jsdiff: https://github.com/kpdecker/jsdiff
[10]https://github.com/Marak/colors.js: https://github.com/Marak/colors.js
[11]https://github.com/lwhiteley/gitbook-plugin-codegroup: https://github.com/lwhiteley/gitbook-plugin-codegroup
[12]snowdreams1006.tech: https://snowdreams1006.tech/
[13]@snowdreams1006: https://github.com/snowdreams1006
[14]snowdreams1006@163.com: mailto:snowdreams1006@163.com
[15]問題頁面: https://github.com/snowdreams1006/gitbook-plugin-diff/issues
[16]星星: https://github.com/snowdreams1006/gitbook-plugin-diff
[17]snowdreams1006: https://github.com/snowdreams1006
[18]MIT: https://github.com/snowdreams1006/gitbook-plugin-diff/blob/master/LICENSE