这个仓库是 MYDICTIONARY (版本 <= v3.0.0)的一个依赖。
这个仓库定义了一些MYDICTIONARY(简称“核心库”)的基本数据结构。
以文件animal.xlsx
为例。
如果查询词与列“Word”中的某个单元格完全相同,那么该行的数据会被选出。
例如:对查询词“cat”进行基础查询,第1行数据会被选出。
如果查询词被包含在列“Word”、“Definition”或“Note”中的某些单元格中,那么这些行的数据会被选出。
例如:对查询词“e”进行高级查询,第1、3、5行的数据会被选出。
type VocabularyAskStruct struct {
Word string `json:"word"`
Advance bool `json:"advance"`
Online bool `json:"online"`
DoNotRecord bool `json:"doNotRecord"`
}
这个数据结构用来指示查询词和查询选项。
Word
指示了查询词。
如果Advance
为false
,那么核心库只会对查询词做基本查询。
如果Advance
为true
,那么核心库会对查询词做基本查询和高级查询。
如果Online
为true
,那么核心库会被告知用户需要对Word
做在线查询。
注意:这并不保证核心库会对Word
做在线查询。 核心库执行与否还取决于配置中的online.mode
(详见这里)。
如果DoNotRecord
为true
,那么核心库不会把-词条-记录-到任何生词本或离线词典中。
const (
Basic = "basic"
Advance = "advance"
Collection = 1
Dictionary = 2
Online = 3
)
type VocabularyAnswerStruct struct {
Word string `json:"word"` // `xlsx:wd`
Definition []string `json:"definition"` // `xlsx:def`
SerialNumber int `json:"serialNumber"` // `xlsx:sn`
QueryCounter int `json:"queryCounter"` // `xlsx:qc`
QueryTime string `json:"queryTime"` // `xlsx:qt`
Note []string `json:"note"` // `xlsx:nt`
SourceName string `json:"sourceName"`
Status string `json:"status"`
Location LocationStruct `json:"location"`
}
type LocationStruct struct {
TableType int `json:"tableType"`
TableIndex int `json:"tableIndex"`
ItemIndex int `json:"itemIndex"`
}
这是词条的数据结构。
Word
指示了词条中的词汇。
Definition
指示了词条中的释义。
SerialNumber
指示了词条的序号。
QueryCounter
指示了词条的查询次数。
Note
指示了词条中的笔记。
QueryTime
指示了词条的上次查询时间。
SourceName
指示了词条的来源。它可以是下列各项的名字:
- 生词本
- 离线词典
- 在线服务
Status
指示了一些其他的信息。
如果词条来源于生词本或离线词典:
- 如果词条来源于基本查询,那么它的
Status
为Basic
。 - 如果词条来源于高级查询,那么它的
Status
为Advance
。
如果词条来源于在线服务,那么它的Status
为Basic
。
Location
用于定位词条在生词本或在线词典中的位置。
它是一个结构体,包含下列成员:
TableType
指出了词条的来源。- 如果词条来源于生词本,那么该成员为
Collection
。 - 如果词条来源于离线词典,那么该成员为
Dictionary
。 - 如果词条来源于在线服务,那么该成员为
Online
。
- 如果词条来源于生词本,那么该成员为
TableIndex
指出了词条所属的生词本或在线词典(取决于TableType
)在列表中的索引。ItemIndex
指出了词条在生词本或在线词典中的索引。
上述索引从0开始。
type VocabularyResultStruct struct {
Basic []vocabulary4mydictionary.VocabularyAnswerStruct `json:"basic"`
Advance []vocabulary4mydictionary.VocabularyAnswerStruct `json:"advance"`
}
Basic
由来自基本查询的词条构成。
Advance
由来自高级查询的词条构成。
type VocabularyEditStruct struct {
Location LocationStruct `json:"location"`
Definition string `json:"definition"`
Note string `json:"note"`
}
这个结构体给出一些信息,以便编辑生词本或离线词典中词条。
Location
与#4.9中的相同。
Definition
指示了修改后的释义。
Note
指示了修改后的笔记。
- 所以代码文件是用Atom编写的。
- 所有".md"文件是用Typora编写的。
- 所有".md"文件的风格是Github Flavored Markdown。
- 各行以LF(Linux)结尾。