mirror: 初始快照
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# 提交內容更新和勘誤
|
||||
所有人都可以通過 https://github.com/shuowenjiezi/shuowen 爲 [說文解字](http://www.shuowen.org "說文解字") http://www.shuowen.org 提交內容更新和勘誤。
|
||||
|
||||
## 關於此文檔
|
||||
這個文檔是寫給不會使用 github 的朋友的,如果你已經熟悉 clone 和 pull request,可以跳過此文檔。
|
||||
|
||||
## 提交更新的步驟
|
||||
### (1)克隆代碼庫
|
||||
前往:https://github.com/shuowenjiezi/shuowen 並點擊頁面上的 “Clone or download” 按鈕
|
||||

|
||||
|
||||
### (2)查找您要更新的文件
|
||||
[說文解字](http://www.shuowen.org "說文解字") 網站上所有的字頭都有對應的編號,可以通過鏈接地址找到字頭的編號。比如“帝”字的鏈接地址是 http://www.shuowen.org/view/7 ,那麼“帝”字的編號就是 “7”,對應的代碼庫文件就是 7.json。
|
||||
|
||||
先找到您要修改的字頭編號,然後到克隆的版本庫的 data 目錄下面去找以「編號」+「.json」命名的文件,比如「嚏」字的編號是 831,那麼對應的文件名就是 “**831.json**”。需要注意的是,因爲 data 目錄下面的文件太多,github 默認不展示全部文件,所以最簡單的方式就是點擊 “Find file” 搜索文件:
|
||||
|
||||

|
||||
|
||||
進入搜索界面後,輸入您要找的文件名即可:
|
||||
|
||||

|
||||
|
||||
### (3)修改文件內容
|
||||
|
||||
找到要修改的文件後,可以直接在線編輯:
|
||||
|
||||

|
||||
|
||||
文件內容的格式是 JSON,關於內容格式的定義,請參考 “[格式說明](https://github.com/shuowenjiezi/shuowen/blob/master/doc/FORMAT.md "格式說明")”。
|
||||
|
||||
內容修改完成後,點擊 “Preview changes” 查看版本對比。
|
||||
|
||||

|
||||
|
||||
在預覽頁面上面,紅色背景表示被修改的內容,綠色背景表示更新後的版本。
|
||||
|
||||
### (4)提交編輯內容
|
||||
|
||||
確認修改內容後,可以提交編輯內容。請務必備註修改的內容,格式爲:
|
||||
|
||||
[修改原因,包括“完善”和“勘誤”] #字頭編號 - 字頭 - 被修改的內容
|
||||
|
||||
例如:[勘誤] #172 - 𤧩 - 反切由 “鳥貫切” 更新爲 “烏貫切”
|
||||
|
||||

|
||||
|
||||
填寫好備註信息後,點擊 “Commit changes” 提交。
|
||||
|
||||
### (5)推送更新
|
||||
|
||||
到目前爲止,所有的更新都基於克隆後的代碼庫,現在需要將更新推送到原始代碼庫,要發送合併請求,只需要點擊 “New pull request” 按鈕,
|
||||
|
||||

|
||||
|
||||
在合併請求頁面,首先確認合併的目標分支是 dev,而不是 master,然後點擊 “Create pull request” 按鈕,
|
||||
|
||||

|
||||
|
||||
填入更新描述,可直接使用第四步輸入的備註信息,如果需要,也可以在下面的文本框裏面輸入更多描述內容,然後點擊 “Create pull request” 按鈕,
|
||||
|
||||

|
||||
|
||||
到這裏,一個完整的更新流程就結束了。
|
||||
|
||||
我會在收到合併請求後,確認更新內容,然後合併到 [說文解字](http://www.shuowen.org "說文解字") 的代碼庫,在一段時間之後,會從代碼庫加載數據到 [說文解字](http://www.shuowen.org "說文解字") 的數據庫,至此,更新的數據便會顯示到 [說文解字](http://www.shuowen.org "說文解字") 的網站上面。
|
||||
@@ -0,0 +1,159 @@
|
||||
# 說文解字代碼庫數據格式說明文檔
|
||||
|
||||
[說文解字](http://www.shuowen.org "說文解字") 代碼庫創建的目的就是讓更多朋友能夠直接改進內容和勘誤,因此,有必要將文件的格式以及編輯需要注意的事項作一些說明。
|
||||
|
||||
## 格式說明
|
||||
|
||||
所有文件都是以 JSON 格式存儲,關於 JSON,可以參考 http://json.org 上面的說明:
|
||||
|
||||
> JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。
|
||||
> JSON建构于两种结构:
|
||||
> - “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
|
||||
> - 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
|
||||
|
||||
下面結合 [說文解字](http://www.shuowen.org "說文解字") 代碼庫中的內容做一些簡單說明:
|
||||
|
||||
比如 “[帝](http://www.shuowen.org/view/7)” 字,代碼庫中的內容如下,
|
||||
|
||||
{
|
||||
"id": 7,
|
||||
"wordhead": "帝",
|
||||
"explanation": "諦也。王天下之號也。从丄朿聲。",
|
||||
"volume": "01",
|
||||
"radical": "丄",
|
||||
"pronunciation": "都計切",
|
||||
"variants": [
|
||||
{
|
||||
"wordhead": "𢂇",
|
||||
"explanation": "古文帝。古文諸丄字皆从一,篆文皆从𠄞。𠄞,古文上字。䇂示辰龍童音章皆从古文丄。",
|
||||
"seal_character": "三"
|
||||
}
|
||||
],
|
||||
"seal_character": "丈",
|
||||
"pinyin": "di",
|
||||
"pinyin_full": "dì",
|
||||
"components": [
|
||||
"一",
|
||||
"上",
|
||||
"朿"
|
||||
],
|
||||
"xuan_note": "",
|
||||
"kai_note": "",
|
||||
"duan_notes": [
|
||||
{
|
||||
"explanation": "諦也。",
|
||||
"note": "見春秋元命苞、春秋運斗樞。毛詩故訓傳曰。審諦如帝。"
|
||||
},
|
||||
{
|
||||
"explanation": "王天下之號。从二。朿<>聲。",
|
||||
"note": "都計切。古音第十六部。"
|
||||
},
|
||||
{
|
||||
"explanation": "古文帝。古文諸丄字皆从一。篆文皆从𠄞。𠄞古文上字。",
|
||||
"note": "古文从一。小篆从古文上者。古今體異。必云𠄞古上字者。明非二字也。徐鍇曰。古文上兩畫、上短下長。一二之二、則兩畫齊等。䇂俗本䇂下有言。非也。言从䇂。舉䇂可以包言。"
|
||||
},
|
||||
{
|
||||
"explanation": "示辰龍童音章皆从古文上。",
|
||||
"note": "古文示作𥘅。古文禮作𠃞。古文辰作𠨷。此古文从一、小篆从𠄞之證。然則古文以一爲𠄞。六書之假借也。"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
"帝",
|
||||
"𢂇"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
結合 JSON 結構的定義,我們可以看到,上面的代碼主要有 2 種格式,
|
||||
|
||||
1. 左大括號 “{” 和右大括號 “}” 包含的內容,這種結構可以稱爲 “對象“,如果一個人就是一個對象,那麼這個人的姓名,年齡就可以理解爲這個人的屬性,也叫做 “「名稱/值」對” 。
|
||||
2. 左中括號 “[” 和右中括號 “]” 包含的內容,這種結構可以理解爲 “列表”,如果還拿人來舉例,那麼這個人的愛好就可以用一個列表來表示。
|
||||
|
||||
如果用 JSON 來描述上面人的例子,結果如下,
|
||||
|
||||
{
|
||||
"姓名": {
|
||||
"姓": "張",
|
||||
"名": "三"
|
||||
},
|
||||
"年齡": 36,
|
||||
"愛好": ["書法", "編程", "發呆"]
|
||||
}
|
||||
|
||||
從上面的例子我們可以看到,
|
||||
1. 所有的字符串都需要用雙引號 「""」括起來。
|
||||
2. 這2種結構可以被嵌套,比如姓名下面嵌套了另外一個對象,這個對象包含了 “姓” 和 “名” 這2個屬性。
|
||||
2. 屬性的 “名稱” 和 “值” 之間是以 冒號「:」分隔
|
||||
3. 多個屬性之間是以 逗號「,」 分隔,最後一個屬性不需要加 逗號「,」,因爲後面沒有其他屬性了,比如 “姓名” 這個對象的 “姓” 的值 “張” 後面有 逗號「,」,因爲後面還有另外一個屬性,而 “名” 的值 “三” 後面就沒有 逗號「,」,因爲後面沒有其他屬性了。
|
||||
4. 列表的多個值之間也是用 逗號「,」分隔,最後一個值不需要加 逗號「,」。
|
||||
|
||||
內容中的空格不是必須的,但是爲了保證層級關係清楚,會給每個層級增加一個縮進,通常是 4 個空格字符。
|
||||
|
||||
## 數據格式中屬性的含義
|
||||
|
||||
{
|
||||
"id": "字頭編號",
|
||||
"wordhead": "字頭",
|
||||
"explanation": "說文解字對於字頭的解釋",
|
||||
"volume": "字頭所在的卷數",
|
||||
"radical": "字頭所屬的說文部首",
|
||||
"pronunciation": "反切",
|
||||
"variants": [
|
||||
{
|
||||
"wordhead": "重文1的字頭",
|
||||
"explanation": "說文解字對於重文1字頭的解釋",
|
||||
"seal_character": "重文1的小篆字型(此屬性無須修改)"
|
||||
},
|
||||
{
|
||||
"wordhead": "重文2的字頭",
|
||||
"explanation": "說文解字對於重文2字頭的解釋",
|
||||
"seal_character": "重文2的小篆字型(此屬性無須修改)"
|
||||
},
|
||||
... 更多重文,以逗號分隔,最後一個重文無須加逗號
|
||||
{
|
||||
"wordhead": "重文 N 的字頭",
|
||||
"explanation": "說文解字對於重文 N 字頭的解釋",
|
||||
"seal_character": "重文 N 的小篆字型(此屬性無須修改)"
|
||||
}
|
||||
],
|
||||
"seal_character": "字頭的小篆字型(此屬性無須修改)",
|
||||
"pinyin": "無聲調的拼音",
|
||||
"pinyin_full": "包含聲調的拼音",
|
||||
"components": [
|
||||
"構件1,以逗號分隔",
|
||||
"構件2,以逗號分隔",
|
||||
"最後一個構件不需要加逗號"
|
||||
],
|
||||
"xuan_note": "徐鉉註釋",
|
||||
"kai_note": "徐楷註釋",
|
||||
"duan_notes": [
|
||||
{
|
||||
"explanation": "段玉裁說文解字注中摘錄的說文解字原文1",
|
||||
"note": "段玉裁說文解字注中對說文解字原文1的註釋"
|
||||
},
|
||||
{
|
||||
"explanation": "段玉裁說文解字注中摘錄的說文解字原文2",
|
||||
"note": "段玉裁說文解字注中對說文解字原文2的註釋"
|
||||
},
|
||||
... 更多段玉裁說文解字注,以逗號分隔,最後一個無須加逗號
|
||||
{
|
||||
"explanation": "段玉裁說文解字注中摘錄的說文解字原文 N",
|
||||
"note": "段玉裁說文解字注中對說文解字原文 N 的註釋"
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
"字頭搜索索引1,比如搜索“餘”和“余”都能找到“餘”,那我們就稱“餘”和“余”是“餘”的索引",
|
||||
"字頭搜索索引2",
|
||||
... 更多字頭索引,最後一個無須加逗號
|
||||
"字頭搜索索引 N"
|
||||
]
|
||||
}
|
||||
|
||||
特別需要注意的是,
|
||||
1. 最後一個「名稱/值」對 和列表的最後一個內容都不能加逗號
|
||||
2. 字符串必須要用雙引號括起來
|
||||
|
||||
也可以在編輯完內容後,使用線上的一些 JSON 驗證工具確認一下格式是否正確。比如: https://www.json.cn/
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 47 KiB |