Change from snake_case to kebab-case in most places

This commit is contained in:
Greg Shuflin 2023-09-19 03:23:50 -07:00
parent 1753717dd8
commit 1eead20457
3 changed files with 82 additions and 82 deletions

Binary file not shown.

View File

@ -56,8 +56,8 @@ As a first example, here is a gloss of a text in Georgian, along with the Typst
#codeblock(
"#gloss(
header_text: [from \"Georgian and the Unaccusative Hypothesis\", Alice Harris, 1982],
source_text: ([ბავშვ-ი], [ატირდა]),
header: [from \"Georgian and the Unaccusative Hypothesis\", Alice Harris, 1982],
source: ([ბავშვ-ი], [ატირდა]),
transliteration: ([bavšv-i], [aṭirda]),
morphemes: ([child-#smallcaps[nom]], [3S/cry/#smallcaps[incho]/II]),
translation: [The child burst out crying],
@ -69,18 +69,18 @@ for common glossing abbreviations:
#codeblock(
"#gloss(
source_text: ([I'm], [eat-ing], [your], [head]),
source_text_style: (item) => text(fill: red)[#item],
source: ([I'm], [eat-ing], [your], [head]),
source-style: (item) => text(fill: red)[#item],
morphemes: ([1#sg.#sbj\=to.be], [eat-#prog], [2#sg.#poss], [head]),
morphemes_style: text.with(fill: blue),
morphemes-style: text.with(fill: blue),
translation: text(weight: \"semibold\")[I'm eating your head!],
)
", addl-bindings: (poss: poss, prog: prog, sg: sg, sbj: sbj))
The `#gloss` function has three pre-defined parameters for glossing levels:
`source_text`, `transliteration`, and `morphemes`. It also has two parameters
for unaligned text: `header_text` for text that precedes the gloss, and
`source`, `transliteration`, and `morphemes`. It also has two parameters
for unaligned text: `header` for text that precedes the gloss, and
`translation` for text that follows the gloss.
@ -89,27 +89,27 @@ text and translation, without a gloss:
#codeblock(
"#gloss(
source_text: ([Trato de entender, debo comprender, qué es lo que ha hecho conmigo],),
source: ([Trato de entender, debo comprender, qué es lo que ha hecho conmigo],),
translation: [I try to understand, I must comprehend, what she has done with me],
)
")
Note that it is still necessary to wrap the `source_text` argument in an array of length one.
Note that it is still necessary to wrap the `source` argument in an array of length one.
To add more than three glossing lines, there is an additional parameter
`additional_gloss_lines` that can take a list of arbitrarily many more glossing
`additional-lines` that can take a list of arbitrarily many more glossing
lines, which will appear below those specified in the aforementioned
parameters:
#codeblock(
"#gloss(
header_text: [Hunzib (van den Berg 1995:46)],
source_text: ([ождиг],[хо#super[н]хе],[мукъер]),
header: [Hunzib (van den Berg 1995:46)],
source: ([ождиг],[хо#super[н]хе],[мукъер]),
transliteration: ([oʒdig],[χõχe],[muqʼer]),
morphemes: ([ož-di-g],[xõxe],[m-uq'e-r]),
additional_gloss_lines: (
additional-lines: (
([boy-#smallcaps[obl]-#smallcaps[ad]], [tree(#smallcaps[g4])], [#smallcaps[g4]-bend-#smallcaps[pret]]),
([at boy], [tree], [bent]),
),
@ -129,8 +129,8 @@ same arguments as `gloss`:
#codeblock(
"#gloss(
source_text: ([გვ-ფრცქვნ-ი],),
source_text_style: none,
source: ([გვ-ფრცქვნ-ი],),
source-style: none,
transliteration: ([gv-prtskvn-i],),
morphemes: ([1#pl.#obj\-peel-#fmnt],),
translation: \"You peeled us\",
@ -138,8 +138,8 @@ same arguments as `gloss`:
)
#numbered-gloss(
source_text: ([მ-ფრცქვნ-ი],),
source_text_style: none,
source: ([მ-ფრცქვნ-ი],),
source-style: none,
transliteration: ([m-prtskvn-i],),
morphemes: ([1#sg.#obj\-peel-#fmnt],),
translation: \"You peeled me\",
@ -159,9 +159,9 @@ standard Typst counter functions to control gloss numbering:
"#gloss-count.update(20)
#numbered-gloss(
header_text: [_Standard Basque: A Progressive Grammar_ by Rudolf de Rijk, quoting P. Charriton],
source_text: ([Bada beti guregan zorion handi baten nahia.],),
source_text_style: none,
header: [_Standard Basque: A Progressive Grammar_ by Rudolf de Rijk, quoting P. Charriton],
source: ([Bada beti guregan zorion handi baten nahia.],),
source-style: none,
translation: [There always is in us a will for a great happiness.],
)", addl-bindings: (gloss-count: gloss-count))
@ -169,8 +169,8 @@ standard Typst counter functions to control gloss numbering:
== Styling lines of a gloss
Each of the aforementioned text parameters has a corresponding style parameter,
formed by adding `_style` to its name: `header_text_style`, `source_text_style`,
`transliteration_style`, `morphemes_style`, and `translation_style`. These parameters
formed by adding `-style` to its name: `header-style`, `source-style`,
`transliteration-style`, `morphemes-style`, and `translation-style`. These parameters
allow you to specify formatting that should be applied to each entire line of
the gloss. This is particularly useful for the aligned gloss itself, since
otherwise one would have to modify each content item in the list individually.
@ -181,12 +181,12 @@ way will override any contradictory line-level formatting.
#codeblock(
"#gloss(
header_text: [This text is about eating your head.],
header_text_style: text.with(weight: \"bold\", fill: green),
source_text: (text(fill:black)[I'm], [eat-ing], [your], [head]),
source_text_style: text.with(style: \"italic\", fill: red),
header: [This text is about eating your head.],
header-style: text.with(weight: \"bold\", fill: green),
source: (text(fill:black)[I'm], [eat-ing], [your], [head]),
source-style: text.with(style: \"italic\", fill: red),
morphemes: ([1#sg.#sbj\=to.be], text(fill:black)[eat-#prog], [2#sg.#poss], [head]),
morphemes_style: text.with(fill: blue),
morphemes-style: text.with(fill: blue),
translation: text(weight: \"bold\")[I'm eating your head!],
)", addl-bindings: (prog: prog, sbj: sbj, poss: poss, sg: sg))
@ -202,8 +202,8 @@ with Typst field access notation or by importing them from `abbreviations`:
#gloss(
header_text: [(from _Why Caucasian Languages?_, Bernard Comrie, in _Endangered Languages of the Caucasus and Beyond_)],
source_text: ([\[qálɐ-m], [∅-kw-á\]], [ɬ’ə́-r]),
header: [(from _Why Caucasian Languages?_, Bernard Comrie, in _Endangered Languages of the Caucasus and Beyond_)],
source: ([\[qálɐ-m], [∅-kw-á\]], [ɬ’ə́-r]),
morphemes: ([city-#obl], [3#sg\-go-#prf], [man-#abbreviations.abs]),
translation: "The man who went to the city."
)
@ -213,8 +213,8 @@ with Typst field access notation or by importing them from `abbreviations`:
#import abbreviations: obl, sg, prf
#gloss(
header_text: [(from _Why Caucasian Languages?_, by Bernard Comrie, in _Endangered Languages of the Caucasus and Beyond_)],
source_text: ([\[qálɐ-m], [∅-kw-á\]], [ɬ’ə́-r]),
header: [(from _Why Caucasian Languages?_, by Bernard Comrie, in _Endangered Languages of the Caucasus and Beyond_)],
source: ([\[qálɐ-m], [∅-kw-á\]], [ɬ’ə́-r]),
morphemes: ([city-#obl], [3#sg\-go-#prf], [man-#abbreviations.abs]),
translation: \"The man who went to the city.\"
)")
@ -235,89 +235,89 @@ along with the Typst markup needed to generate them:
#codeblock(
"#numbered-gloss(
header_text: [Indonesian (Sneddon 1996:237)],
source_text: ([Mereka], [di], [Jakarta], [sekarang.]),
header: [Indonesian (Sneddon 1996:237)],
source: ([Mereka], [di], [Jakarta], [sekarang.]),
morphemes: ([they], [in], [Jakarta], [now]),
translation: \"They are in Jakarta now\",
)")
#codeblock(
"#numbered-gloss(
header_text: [Lezgian (Haspelmath 1993:207)],
source_text: ([Gila], [abur-u-n], [ferma], [hamišaluǧ], [güǧüna], [amuq-da-č.]),
header: [Lezgian (Haspelmath 1993:207)],
source: ([Gila], [abur-u-n], [ferma], [hamišaluǧ], [güǧüna], [amuq-da-č.]),
morphemes: ([now], [they-#obl\-#gen], [farm], [forever], [behind], [stay-#fut\-#neg]),
translation: \"Now their farm will not stay behind forever.\",
)", addl-bindings: (fut: fut, neg: neg, obl: obl, gen:gen))
#codeblock(
"#numbered-gloss(
header_text: [West Greenlandic (Fortescue 1984:127)],
source_text: ([palasi=lu], [niuirtur=lu]),
header: [West Greenlandic (Fortescue 1984:127)],
source: ([palasi=lu], [niuirtur=lu]),
morphemes: ([priest=and], [shopkeeper=and]),
translation: \"both the priest and the shopkeeper\",
)")
#codeblock(
"#numbered-gloss(
header_text: [Hakha Lai],
source_text: ([a-nii -láay],),
header: [Hakha Lai],
source: ([a-nii -láay],),
morphemes: ([3#sg\-laugh-#fut],),
translation: [s/he will laugh],
)", addl-bindings: (sg: sg, fut: fut))
#codeblock(
"#numbered-gloss(
header_text: [Russian],
source_text: ([My], [s], [Marko], [poexa-l-i], [avtobus-om], [v], [Peredelkino]),
header: [Russian],
source: ([My], [s], [Marko], [poexa-l-i], [avtobus-om], [v], [Peredelkino]),
morphemes: ([1#pl], [#com], [Marko], [go-#pst\-#pl], [bus-#ins], [#all], [Peredelkino]),
additional_gloss_lines: (([we], [with], [Marko], [go-#pst\-#pl], [bus-by], [to], [Peredelkino]),),
additional-lines: (([we], [with], [Marko], [go-#pst\-#pl], [bus-by], [to], [Peredelkino]),),
translation: \"Marko and I went to Perdelkino by bus\",
)", addl-bindings: (com: com, pl: pl, ins: ins, all: all, pst:pst))
#codeblock(
"#numbered-gloss(
header_text: [Turkish],
source_text: ([çık-mak],),
header: [Turkish],
source: ([çık-mak],),
morphemes: ([come.out-#inf],),
translation: \"to come out\",
)", addl-bindings: (inf: inf))
#codeblock(
"#numbered-gloss(
header_text: [Latin],
source_text: ([insul-arum],),
header: [Latin],
source: ([insul-arum],),
morphemes: ([island-#gen\-#pl],),
translation: \"of the islands\",
)", addl-bindings: (gen:gen, pl: pl))
#codeblock(
"#numbered-gloss(
header_text: [French],
source_text: ([aux], [chevaux]),
header: [French],
source: ([aux], [chevaux]),
morphemes: ([to-#art\-#pl],[horse.#pl]),
translation: \"to the horses\",
)",addl-bindings: (art:art, pl:pl))
#codeblock(
"#numbered-gloss(
header_text: [German],
source_text: ([unser-n], [Väter-n]),
header: [German],
source: ([unser-n], [Väter-n]),
morphemes: ([our-#dat\-#pl],[father.#pl\-#dat.#pl]),
translation: \"to our fathers\",
)", addl-bindings: (dat:dat, pl:pl))
#codeblock(
"#numbered-gloss(
header_text: [Hittite (Lehmann 1982:211)],
source_text: ([n=an], [apedani], [mehuni],[essandu.]),
header: [Hittite (Lehmann 1982:211)],
source: ([n=an], [apedani], [mehuni],[essandu.]),
morphemes: ([#smallcaps[conn]=him], [that.#dat.#sg], [time.#dat.#sg], [eat.they.shall]),
translation: \"They shall celebrate him on that date\",
)", addl-bindings: (pl:pl, sg:sg, dat:dat))
#codeblock(
"#numbered-gloss(
header_text: [Jaminjung (Schultze-Berndt 2000:92)],
source_text: ([nanggayan], [guny-bi-yarluga?]),
header: [Jaminjung (Schultze-Berndt 2000:92)],
source: ([nanggayan], [guny-bi-yarluga?]),
morphemes: ([who], [2#du.#A.3#sg.#P\-#fut\-poke]),
translation: \"Who do you two want to spear?\",
)", addl-bindings: (du:du, sg:sg, fut:fut, A:A, P:P))

View File

@ -2,7 +2,7 @@
#let gloss-count = counter("gloss_count")
#let build_gloss(spacing_between_items, formatters, gloss_line_lists) = {
#let build_gloss(item-spacing, formatters, gloss_line_lists) = {
assert(gloss_line_lists.len() > 0, message: "Gloss line lists cannot be empty")
let len = gloss_line_lists.at(0).len()
@ -30,80 +30,80 @@
args.push(formatter_fn(item))
}
make_item_box(..args)
h(spacing_between_items)
h(item-spacing)
}
}
#let gloss(
header_text: none,
header_text_style: none,
source_text: (),
source_text_style: emph,
header: none,
header-style: none,
source: (),
source-style: emph,
transliteration: none,
transliteration_style: none,
transliteration-style: none,
morphemes: none,
morphemes_style: none,
additional_gloss_lines: (), //List of list of content
morphemes-style: none,
additional-lines: (), //List of list of content
translation: none,
translation_style: none,
spacing_between_items: 1em,
gloss_padding: 2.0em, //TODO document these
translation-style: none,
item-spacing: 1em,
gloss-padding: 2.0em, //TODO document these
left_padding: 0.5em,
numbering: false,
breakable: false,
) = {
assert(type(source_text) == "array", message: "source_text needs to be an array; perhaps you forgot to type `(` and `)`, or a trailing comma?")
assert(type(source) == "array", message: "source needs to be an array; perhaps you forgot to type `(` and `)`, or a trailing comma?")
if morphemes != none {
assert(type(morphemes) == "array", message: "morphemes needs to be an array; perhaps you forgot to type `(` and `)`, or a trailing comma?")
assert(source_text.len() == morphemes.len(), message: "source_text and morphemes have different lengths")
assert(source.len() == morphemes.len(), message: "source and morphemes have different lengths")
}
if transliteration != none {
assert(transliteration.len() == source_text.len(), message: "source_text and transliteration have different lengths")
assert(transliteration.len() == source.len(), message: "source and transliteration have different lengths")
}
let gloss_items = {
if header_text != none {
if header_text_style != none {
header_text_style(header_text)
if header != none {
if header-style != none {
header-style(header)
} else {
header_text
header
}
linebreak()
}
let formatters = (source_text_style,)
let gloss_line_lists = (source_text,)
let formatters = (source-style,)
let gloss_line_lists = (source,)
if transliteration != none {
formatters.push(transliteration_style)
formatters.push(transliteration-style)
gloss_line_lists.push(transliteration)
}
if morphemes != none {
formatters.push(morphemes_style)
formatters.push(morphemes-style)
gloss_line_lists.push(morphemes)
}
for additional in additional_gloss_lines {
for additional in additional-lines {
formatters.push(none) //TODO fix this
gloss_line_lists.push(additional)
}
build_gloss(spacing_between_items, formatters, gloss_line_lists)
build_gloss(item-spacing, formatters, gloss_line_lists)
if translation != none {
linebreak()
if translation_style == none {
if translation-style == none {
["#translation"]
} else {
translation_style(translation)
translation-style(translation)
}
}
}
@ -124,7 +124,7 @@
dir:ltr, //TODO this needs to be more flexible
left_padding,
[#gloss_number],
gloss_padding - left_padding - measure([#gloss_number],styles).width,
gloss-padding - left_padding - measure([#gloss_number],styles).width,
[#gloss_items]
)
]