菜单
开源
最后评审时间:2024 年 6 月 4 日

将词添加到 Grafana Labs 词典

Grafana Labs 文档团队维护一个用于拼写检查的词典。同一个词典也用于根据词语定义中的元数据生成一些 Vale 规则。

模板文件使用 Jsonnet 编程语言,但您无需了解 Jsonnet 即可添加新词。与 YAML 不同,Jsonnet 对空白不敏感。

本主题说明如何执行以下任务

对于更复杂的词语,如果您熟悉编写 Jsonnet,请参考词语元数据参考。如果您不熟悉编写 Jsonnet,可以创建一个 issue,由维护者为您添加。

开始之前

添加普通词(名词、动词或形容词)

名词是表示具体或抽象事物的词。动词通常描述动作。形容词描述名词。

步骤

添加普通词

  1. 在编辑器中打开 vale/dictionary/<LETTER>.jsonnet 模板文件,其中 LETTER 是您要添加的词的首字母。

  2. 为您的词语定义添加一行。

    您的行应位于数组中,在其他条目之间。条目示例如下:

    jsonnet
    word.new(<STEM>, <AFFIXES>, <PART OF SPEECH>),

    条目按字母顺序排列。

  3. 填写必填字段 <STEM><AFFIXES><PART OF SPEECH>

    1. <STEM> 替换为词干。

      这是没有任何前缀或后缀的词。对于动词 downsampling,词干是 downsample

      您必须将词干放在单引号 (') 之间。

      您的行应类似于以下内容:

      jsonnet
      word.new('downsample', <AFFIXES>, <PART OF SPEECH>),
    2. <AFFIXES> 替换为 Hunspell 词缀的组合。

      要了解可以添加哪些词缀,请参考Hunspell 词缀表

      您必须将词缀放在单引号 (') 之间。

      要添加过去式和动名词形式的词缀,您的行应类似于以下内容:

      jsonnet
      word.new('downsample', 'DG', <PART OF SPEECH>),
    3. <PART OF SPEECH> 替换为词性。

      对于动词,它是 'verb'。对于名词,它是 'noun'。对于形容词,它是 'adjective'

      您完成的行应类似于以下内容:

      jsonnet
      word.new('downsample', 'DG', 'verb'),
  4. 如果该词不广为人知,扩展其定义以包含描述:description: <DESCRIPTION>

    描述应该定义该词。

    您的行应类似于以下内容:

    jsonnet
    word.new('downsample', 'DG', 'verb') { description: 'To reduce the sampling rate of a signal.' },

添加产品名称

产品可以是 Grafana Labs 的产品、其他公司的产品或项目的名称。

步骤

添加产品

  1. 在编辑器中打开 vale/dictionary/<LETTER>.jsonnet 模板文件,其中 LETTER 是您要添加的词的首字母。

  2. 为您的词语定义添加一行。

    您的行应位于数组中,在其他条目之间。条目示例如下:

    jsonnet
    word.new(<STEM>, <AFFIXES>, <PART OF SPEECH>),

    条目按字母顺序排列。

  3. 填写必填字段 <STEM><AFFIXES><PART OF SPEECH>

    1. <STEM> 替换为词干。

      对于产品,这是产品名称。

      jsonnet
      word.new('CloudWatch', <AFFIXES>, <PART OF SPEECH>),
    2. <AFFIXES> 替换为 Hunspell 词缀的组合。

      产品通常没有词缀。

      jsonnet
      word.new('CloudWatch', '', <PART OF SPEECH>),
    3. <PART OF SPEECH> 替换为词性。

      对于产品,这是 'noun'

      您的行应类似于以下内容:

      jsonnet
      word.new('CloudWatch', '', 'noun'),
  4. 扩展定义以表明它是一个产品。

    在右括号 ()) 和行尾逗号 (,) 之间添加对象 { product: true }

    您的行应类似于以下内容:

    jsonnet
    word.new('CloudWatch', '', 'noun') { product: true },
  5. 如果该产品是 Amazon 产品,扩展其定义以包含这一点。

    更新对象以包含一个额外的字段,Amazon: true

    您的行应类似于以下内容:

    jsonnet
    word.new('CloudWatch', '', 'noun') { Amazon: true, product: true },
  6. 扩展其定义以包含描述:description: <DESCRIPTION>

    描述应至少包含产品主要文档的链接。

    您的行应类似于以下内容:

    jsonnet
    word.new('CloudWatch', '', 'noun') { Amazon: true, description: 'https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html', product: true },

添加缩写

缩写是一个短语的缩短形式。如果该缩写是常用的(例如 HTTP),您无需在文章中解释它。您可以在定义中说明该缩写是常用的。

步骤

添加缩写

  1. 在编辑器中打开 vale/dictionary/<LETTER>.jsonnet 模板文件,其中 LETTER 是您要添加的词的首字母。

  2. 为您的词语定义添加一行。

    您的行应位于数组中,在其他条目之间。条目示例如下:

    jsonnet
    word.new(<STEM>, <AFFIXES>, <PART OF SPEECH>),

    条目按字母顺序排列。

  3. 填写必填字段 <STEM><AFFIXES><PART OF SPEECH>

    1. <STEM> 替换为词干。

      对于缩写,这是缩写的字母。

      jsonnet
      word.new('SUT', <AFFIXES>, <PART OF SPEECH>),
    2. <AFFIXES> 替换为 Hunspell 词缀的组合。

      要了解可以添加哪些词缀,请参考Hunspell 词缀表

      您必须将词缀放在单引号 (') 之间。

      一些缩写有复数后缀。要添加复数后缀,请包含 s。所有词缀都区分大小写。

      jsonnet
      word.new('SUT', 's', <PART OF SPEECH>),
    3. <PART OF SPEECH> 替换为词性。

      对于缩写,这是 'noun'

      您的行应类似于以下内容:

      jsonnet
      word.new('SUT', 's', 'noun'),
  4. 扩展定义以表明它是一个缩写。

    在右括号 ()) 和行尾逗号 (,) 之间添加对象 { abbreviation: true }

    您的行应类似于以下内容:

    jsonnet
    word.new('SUT', 's', 'noun') { abbreviation: true },
  5. 扩展其定义以包含描述:description: <DESCRIPTION>

    描述应至少包含缩写的完整形式。

    您的行应类似于以下内容:

    jsonnet
    word.new('SUT', 's', 'noun') { abbreviation: true, description: 'System Under Test' },
  6. 如果您不需要为普通读者扩展缩写,扩展定义以包含这一点。

    更新对象以包含一个额外的字段,established_abbreviation: true

    对于常用的缩写 HTTP,您的行应类似于以下内容:

    jsonnet
    word.new('HTTP', '', 'noun') { abbreviation: true, description: 'Hypertext Transfer Protocol', established_abbreviation: true },