Obsidian 插件:Interlinear Glossing

Obsidian 插件:Interlinear Glossing

插件名片

  • 插件名称:Interlinear Glossing
  • 插件作者:Mijyuoon
  • 插件说明:在语言学文本中使用的格式化线性注释。
  • 插件分类:[‘obsidian 插件 ’, ‘readme’]
  • 项目地址:点我访问
  • 国内下载地址:下载安装

概述

在语言学文本中使用的格式化线性注释。

Obsidian 插件:Interlinear Glossing--概述

原文出处

下面自述文件的来源于 Readme


Readme(翻译)

下面是 ling-gloss 插件的自述翻译

黑曜石分词注释

该插件为 分词注释 提供支持,常用于语言学文档中。

它主要面向使用 Obsidian 记录他们的构造语言的构造语言社区成员。

用法

使用带有 gloss 标签的代码块来编写注释,如下所示:

```gloss

# 这是一个逐字解释的块
```

# 开头的行被视为注释,并且解析器会忽略它们。空行和只包含空格的行也会被忽略。

基本的术语由两行组成,即源语言文本和元语言。可以使用 \gla(术语级别 A)和 \glb(术语级别 B)命令来实现这一点。这些命令接受由空格分隔的元素(单词或语素)的列表,这些元素将按元素逐个垂直对齐。默认情况下,级别 A 行应用斜体样式,而级别 B 行没有默认样式。

\gla Péter-nek van egy macská-ja
\glb Peter-DAT exist INDEF cat-POSS.3SG

用法--Readme(翻译)

此外,如果需要在单个术语元素中使用空格,可以将其包装在方括号 [like this] 中。要在术语元素中直接使用方括号,可以通过在前面加上插入符号 ^ 来 ” 转义 ” 它们,例如 ^[this^]。可以使用空方括号 [] 在术语中写入空元素。

\gla János tegnap [vi-tt el] két könyv-et Péter-nek
\glb John^[TOP^] yesterday^[FOC^] [take-PST away] two book-ACC Peter-DAT

用法--Readme(翻译)

如果需要额外的行,例如用于音译,可以使用 \glc(gloss level C)命令,其功能与 \gla\glb 命令相同。C 级行没有默认样式,就像 B 级一样。

\gla Péter-nek van egy macská-ja
\glb pe:tɛrnɛk vɒn ɛɟ mɒt͡ʃka:jɒ
\glc Peter-DAT exist INDEF cat-POSS.3SG

用法--Readme(翻译)

自由翻译 (\ft)

可以使用 \ft 命令在术语表的底部添加一行自由翻译。该命令接受一行文本作为参数。默认情况下,自由翻译行会用引号括起来,并应用斜体样式。

\gla Péter-nek van egy macská-ja
\glb pe:tɛrnɛk vɒn ɛɟ mɒt͡ʃka:jɒ
\glc Peter-DAT exist INDEF cat-POSS.3SG
\ft Peter has a cat.

用法--自由翻译 ()

使用 \ex 命令可以在译文上方添加原始源文本行,该命令与 \ft 命令类似,接受一行文本作为参数。默认情况下,原始文本行会应用粗体样式。

\ex Péternek van egy macskája.
\gla Péter-nek van egy macská-ja
\glb pe:tɛrnɛk vɒn ɛɟ mɒt͡ʃka:jɒ
\glc Peter-DAT exist INDEF cat-POSS.3SG
\ft Peter has a cat.

用法--自由翻译 ()

换行

如果命令行太长,可以通过缩进后续行来将其分成多行。此外,空行会被忽略,可以用于分隔跨越多行的命令。下面的两个示例产生相同的结果,如下所示:

\ex János tegnap elvitt két könyvet Péternek.
\gla János tegnap elvi-tt két könyv-et Péter-nek.
\glb John:NOM yesterday take-PST two book-ACC Peter-DAT
\ft John took two books to Peter yesterday.
\ex János tegnap elvitt két könyvet Péternek.

\gla János tegnap
    elvi-tt két
    könyv-et Péter-nek.

\glb John:NOM yesterday
    take-PST two
    book-ACC Peter-DAT

\ft John took two books to Peter yesterday.

用法--换行

替代语法(\gl

有一种替代语法可用于解释行,其中源语言元素与标记中的解释相邻。这样做的优点是使标记更易于阅读和编写,特别是对于较长的解释。

要使用此语法,使用带有 ngloss 标签的代码块,而不是之前看到的常规 gloss 标签:

```ngloss

# 这个术语表将使用替代语法
```

在这种模式下,用于单个术语表行(\gla\glb\glc)的命令被替换为单个 \gl 命令。该命令接受一个以空格分隔的标记列表,其解释如下:

  • 一个常规的裸 token 始终被视为新的 A 级(第一行)元素
  • 一个跟在常规 token 后面的用方括号括起来的 [token] 是一个 B 级(第二行)元素,对应于最后一个 A 级元素
  • 任何额外的方括号括起来的 [token] 都会添加到最后一个 A 级元素的后面的行中
    • 请注意,此机制允许添加超过 3 行的术语表行,如下所示
\gl János [ja:noʃ] [John:NOM]
	tegnap [tɛgnɒp] [yesterday]
	elvi-tt [ɛlvit:] [take-PST]
	két [ke:t] [two]
	könyv-et [køɲvɛt] [book-ACC]
	Péter-nek [pe:tɛrnɛk] [Peter-DAT]

用法--替代语法()

\set glastyle cjk
\ex 牆上掛著一幅畫 / 墙上挂着一幅画
\gl 牆 [墙] [qiáng] [wall] [^[TOP]
	上 [上] [shàng] [on] [^]]
	掛 [挂] [guà] [hang] [V]
	著 [着] [zhe] [CONT] [ASP]
	一 [一] [yì] [one] [^[S]
	幅 [幅] [fú] [picture.CL] []
	畫 [画] [huà] [picture] [^]]
\ft 一幅画挂在墙上。

用法--替代语法()

虽然通常将每个元素单独放在一行上更清晰,如上面的示例所示,但这并不是严格必要的,所有标记都可以放在 \gl 命令后的同一行上以获得相同的结果。此外,与裸标记之间不同,方括号 [tokens] 之间不需要空格。(方括号 [tokens] 内的空格与其他语法中的空格的工作方式相同。)

下面的示例产生与上面相同的结果,尽管可读性通常较差:

\gl János[ja:noʃ][John:NOM]  tegnap[tɛgnɒp][yesterday]  elvi-tt[ɛlvit:][take-PST]  két[ke:t][two]  könyv-et[køɲvɛt][book-ACC]  Péter-nek[pe:tɛrnɛk][Peter-DAT]

自定义样式

渲染的注释块的所有部分都有分配的 CSS 类,因此可以使用 CSS片段 来自定义它们的外观。下面是可用的 CSS 类列表及其示例。

.ling-gloss

这个类代表整个词汇解释块。

.ling-gloss { border: solid 2px red; }

用法--

.ling-gloss-elements

这个类表示包含垂直对齐元素的注释行的子块。

.ling-gloss-elements { border: solid 2px red; }

用法--

.ling-gloss-preamble

这个类表示未修改的源文本(前言)行。

.ling-gloss-preamble { border: solid 2px red; }

用法--

.ling-gloss-translation

这个类表示自由翻译行。

.ling-gloss-translation { border: solid 2px red; }

用法--

.ling-gloss-element

这个类表示一个垂直对齐的词汇元素组。

.ling-gloss-element { border: solid 2px red; }

用法--

.ling-gloss-level-*

这些类代表特定注释行上的一个元素,其中 * 是小写字母 abcx 之一,对应于该行的级别。

.ling-gloss-level-a { border: dotted 2px red; }
.ling-gloss-level-b { border: dashed 2px yellowgreen; }
.ling-gloss-level-c { border: solid 2px blueviolet; }

用法--

请注意,level-x 样式适用于级别 C 行之后的所有行,然而,CSS 兄弟选择器 :nth-child(n) 可以用来定位特定的行。级别 X 行的 n 计数从 4 开始,因为前三行是级别 A、B 和 C。

.ling-gloss-level-x { border: solid 2px red; }
.ling-gloss-level-x:nth-child(5) { font-size: 1.5em; }
\set glastyle cjk
\ex 牆上掛著一幅畫 / 墙上挂着一幅画
\gl 牆 [墙] [qiáng] [wall] [^[TOP]
	上 [上] [shàng] [on] [^]]
	掛 [挂] [guà] [hang] [V]
	著 [着] [zhe] [CONT] [ASP]
	一 [一] [yì] [one] [^[S]
	幅 [幅] [fú] [picture.CL] []
	畫 [画] [huà] [picture] [^]]
\ft A picture is hanging on the wall.

用法--

设置选项(\set

可以使用 \set 命令更改单个词汇块的一些选项,该命令接受一个选项名称,并根据命令的不同:

  • 没有值(用于二进制开关选项)
  • 单个值(值标记之间的多个空格会被合并为一个)
  • 值列表(方括号 [tokens] 可以用于包含空格的值)

下面是可用选项的列表及示例。

glaspaces

该选项允许在 A 级元素中使用下划线字符作为空格。这对于支持空格的括号标记语法 ngloss 特别有用,因为无法在 A 级中使用支持空格的括号标记。该选项不接受任何值。

\set glaspaces
\gl nǐ_hǎo [hello]
    shì_jiè [world]

用法--

gl*styleexstyleftstyle

这些选项为渲染的词汇表的各个部分分配自定义的 CSS 类,以允许对单个词汇表进行选择性定制。所有这些选项都接受 CSS 类名列表作为值。每个命令如下所示,针对词汇表的特定部分:

  • gl*style - 目标是特定词汇表行上的一个元素,其中 * 是小写字母 abcx 之一,对应于该行的级别。
    • 请注意,glxstyle 适用于级别 C 行之后的所有行。有关详细信息,请参见 .ling-gloss-level-*
  • exstyle - 目标是未修改的源文本(前导)行。
  • ftstyle - 目标是自由翻译行。

对于提供的每个类名,将为目标分配一个名为 .ling-style-* 的 CSS 类,其中 * 是提供的类名。

例如,假设在 CSS 片段中定义了以下样式:

.ling-style-big { font-size: 1.5em; }
.ling-style-solid { border: solid 2px red; }
.ling-style-dashed { border: dashed 2px yellowgreen; }

应该显示以下词汇表,如下所示:

\set glastyle big solid
\set ftstyle dashed
\gl János [ja:noʃ] [John:NOM]
    tegnap [tɛgnɒp] [yesterday]
    elvi-tt [ɛlvit:] [take-PST]
    két [ke:t] [two]
    könyv-et [køɲvɛt] [book-ACC]
    Péter-nek [pe:tɛrnɛk] [Peter-DAT]
\ft John took two books to Peter yesterday.

用法--,,

默认情况下,插件为 glastyle 选项定义了一个名为 cjk 的样式,该样式删除了默认的斜体样式。这适用于通常不使用斜体的 CJK 字符:

\set glastyle cjk
\gl 你好 [nǐhǎo] [hello]
	世界 [shìjiè] [world]

用法--,,

删除 \set 行的相同词汇表:

用法--,,

安装

你现在可以从 Obsidian 的官方社区插件仓库中安装这个插件,方法是在 Obsidian 中转到“设置→社区插件→浏览”,然后搜索“Interlinear Glossing”。

手动安装(已弃用)

  • 在任意位置创建一个名为 ling-gloss 的文件夹
  • 前往 “Releases” 页面,下载最新版本的 main.jsmanifest.jsonstyles.css 文件
  • 将下载的文件复制到之前创建的文件夹中
  • 打开你的 vault 的插件文件夹,路径为 <Vault Folder>/.obsidian/plugins,并将你的文件夹放在其中
  • 在 Obsidian 设置中重新加载插件或重新启动程序
  • 在 Obsidian 设置中启用 “Interlinear Glossing” 插件


反馈交流

其他渠道

版权声明