From 157b60409ae27439fd6443964e15dcf08f46f3da Mon Sep 17 00:00:00 2001 From: Rieks Date: Mon, 29 Jan 2024 10:11:13 +0100 Subject: [PATCH 1/4] stash... Signed-off-by: Rieks --- docs/guides/50-using-termrefs.md | 77 ++++++++++++++++++++++++++++++++ docs/guides/50-using-terms.md | 19 -------- docs/terms/showtext.md | 26 +++++++++++ 3 files changed, 103 insertions(+), 19 deletions(-) create mode 100644 docs/guides/50-using-termrefs.md delete mode 100644 docs/guides/50-using-terms.md create mode 100644 docs/terms/showtext.md diff --git a/docs/guides/50-using-termrefs.md b/docs/guides/50-using-termrefs.md new file mode 100644 index 0000000000..1f220d9f8e --- /dev/null +++ b/docs/guides/50-using-termrefs.md @@ -0,0 +1,77 @@ +--- +id: using-termrefs +date: 20240109 +--- + +import useBaseUrl from '@docusaurus/useBaseUrl' +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Using TermRefs + +This page is under construction

+ +:::info Editor's note +This page currently only uses basic TermRef syntax. Do we also want to show alt(ernative) syntax? +If so, there are two options: (1) do so in a separate page, or (2) use (synchronized) Tabs. +::: + +A [TermRef](@) is a construct that [authors](@) can use to help their readers to +better understand particular [words or phrases](terms@) they use in their texts. + +:::tip Here are three examples of a [TermRef](@): +A **`[TermRef](@)`** is a construct that **`[authors](@)`** can use to help their readers to +better understand particular **`[words or phrases](terms@)`** they use in their texts. +::: + +When texts that an [author](@) writes are processed, e.g., to become part of a static website such as the one you are now accessing as you read this, the [TermRefs](@) therein are converted into something that helps readers: in this case, a [TermRef](@) is highlighted; also, if the reader hovers over the [TermRef](@), it shows a popup with some short information about that concept; and finally, it is also turned into a hyperlink that readers can click on to navigate to a page that contains more information about the [concept](@) that the [TermRef](@) references. + +This page shows you: + +1. How you can create basic [TermRefs](@); +2. How [TermRefs](@) are Converted (into [RenderableRefs](@)) +3. How you can customize the [TermRef](@) syntax; +4. How you can determine what the [TermRef](@) will look like after it is converted. + +## Basic [TermRefs](@) + +The most common [TermRefs](@) that you will encounter are of the form + +``` markdown +[](@) +``` +where `` is the the [showtext](@) part of the [TermRef](@), i.e., the part that - when the texts are converted - typically shows up in some highlighed fashion, links to the documentation of the [concept](@) that it references, and might have a pop-up text with a short description. + +This most common variety works if the [showtext](@) is a [term](@) that is defined, or a common derivative form. For example if the [term](@) `showtext` is defined, you can use `[showtext](@)` but you should also be able to use `[showtexts](@)` (plural form), and even `[showtext(s)](@)` (to signify 'one or more showtexts'). + +This also holds for nouns that have different endings. For example, if the [term](@) 'party' is defined, you can use `[party](@)` but you should also be able to use `[parties](@)` (plural form), and even `[party's](@)` (as in `this is that [party's](@) perogative`)). + +### Explicitly mentioning the [term](@) + +If this doesn't work (which may happen), but you are sure the [term](@) is defined, then you can use the syntax: + +``` markdown +[](@) +``` + +where + +- `` is the the [showtext](@) part of the [TermRef](@), and +- `` is the term to which you want `` to refer. + +For example, `[organizations or individuals](party@)` will render as [organizations or individuals](party@) (if you hover over it, or click the link, you will see that it will link to the documentation of [party](@)). + +Of course, all this relies on that the `` has been properly defined. + +### Refering to a [term](@) that is defined in another [scope](@) + + + + + + +## How [TermRefs](@) are Converted (into [RenderableRefs](@)) + diff --git a/docs/guides/50-using-terms.md b/docs/guides/50-using-terms.md deleted file mode 100644 index bb9c578257..0000000000 --- a/docs/guides/50-using-terms.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: using-terms -date: 20240109 ---- - -import useBaseUrl from '@docusaurus/useBaseUrl' -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# Using Terms - -This page is under construction

- -This document tells you how to author documents in which you use [terms](@) that are defined in your own, or some other, [terminology](@). - -We assume that you are familiar with git, as well as with any of the other tools (such as static site generators) that you might be using with your repo. diff --git a/docs/terms/showtext.md b/docs/terms/showtext.md new file mode 100644 index 0000000000..30d45dc9fb --- /dev/null +++ b/docs/terms/showtext.md @@ -0,0 +1,26 @@ +--- +# Docusaurus header +id: showtext +displayed_sidebar: tev2SideBar +# TEv2 Curated Text Header +term: showtext +termType: concept +glossaryTerm: Showtext (of a TermRef) +glossaryText: "the first part of a [TermRef](@), i.e., the word or phrase that needs to refer to a particular [concept](@) (or other [semantic unit](@)), and that the reader will see in some marked up way, and that will be rendered such that it provides additional help for [readers](@) to (better) understand the intention of its [author](@)." +grouptags: +formPhrases: [ "showtext{ss}", "show-text{ss}" ] +# Curation status +status: proposed +created: 20240125 +updated: 20240125 +# Origins/Acknowledgements +contributors: RieksJ +attribution: "[TNO Terminology Design](https://tno-terminology-design.github.io/tev2-specifications/docs)" +originalLicense: "[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)" +--- + +# Showtext + +The **Showtext** of a [TermRef](@) is its first part, i.e., the word or phrase that needs to refer to a particular [concept](@) (or other [semantic unit](@)), and that the reader will see in some marked up way, and that will be rendered such that it provides additional help for [readers](@) to (better) understand the intention of its [author](@). + +Further information can be found in the documentation of [TermRef](@), as well as in the specification of the [TermRef syntax](/docs/specs/syntax/term-ref-syntax). \ No newline at end of file From a09ac687bb43c6f7fecdae14b2deeb0fe26720e5 Mon Sep 17 00:00:00 2001 From: Rieks Date: Wed, 7 Feb 2024 07:37:48 +0100 Subject: [PATCH 2/4] wip Signed-off-by: Rieks --- docs/guides/50-using-termrefs.md | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/docs/guides/50-using-termrefs.md b/docs/guides/50-using-termrefs.md index 1f220d9f8e..4cdc267952 100644 --- a/docs/guides/50-using-termrefs.md +++ b/docs/guides/50-using-termrefs.md @@ -19,12 +19,10 @@ This page currently only uses basic TermRef syntax. Do we also want to show alt( If so, there are two options: (1) do so in a separate page, or (2) use (synchronized) Tabs. ::: -A [TermRef](@) is a construct that [authors](@) can use to help their readers to -better understand particular [words or phrases](terms@) they use in their texts. +A [TermRef](@) is a construct that [authors](@) can use to help their readers to better understand particular [words or phrases](terms@) they use in their texts. -:::tip Here are three examples of a [TermRef](@): -A **`[TermRef](@)`** is a construct that **`[authors](@)`** can use to help their readers to -better understand particular **`[words or phrases](terms@)`** they use in their texts. +:::tip The text below has three examples of a [TermRef](@): +A **`[TermRef](@)`** is a construct that **`[authors](@)`** can use to help their readers to better understand particular **`[words or phrases](terms@)`** they use in their texts. ::: When texts that an [author](@) writes are processed, e.g., to become part of a static website such as the one you are now accessing as you read this, the [TermRefs](@) therein are converted into something that helps readers: in this case, a [TermRef](@) is highlighted; also, if the reader hovers over the [TermRef](@), it shows a popup with some short information about that concept; and finally, it is also turned into a hyperlink that readers can click on to navigate to a page that contains more information about the [concept](@) that the [TermRef](@) references. @@ -32,7 +30,7 @@ When texts that an [author](@) writes are processed, e.g., to become part of a s This page shows you: 1. How you can create basic [TermRefs](@); -2. How [TermRefs](@) are Converted (into [RenderableRefs](@)) +2. How [TermRefs](@) are converted (into so-called [RenderableRefs](@)) 3. How you can customize the [TermRef](@) syntax; 4. How you can determine what the [TermRef](@) will look like after it is converted. @@ -59,19 +57,39 @@ If this doesn't work (which may happen), but you are sure the [term](@) is defin where -- `` is the the [showtext](@) part of the [TermRef](@), and +- `` is the (required) [showtext](@) part of the [TermRef](@), and - `` is the term to which you want `` to refer. For example, `[organizations or individuals](party@)` will render as [organizations or individuals](party@) (if you hover over it, or click the link, you will see that it will link to the documentation of [party](@)). Of course, all this relies on that the `` has been properly defined. +### Explicitly mentioning the [term type](@) + +Sometimes, a single [term](@) is used to refer to [semantic units](@) of different types. For example, the term 'terminology' can refer to a [concept](@), but it could also refer to a [mental model](pattern@) that shows how a set of related [concepts](@), [relations](@) etc. work together in a coherent fashion. + +You need to be able to refer to both, and the [TermRefs](@) you use should be unambiguous. You can do that by specifying the [term type](@) in the [TermRef](@), as follows + +- [terminology](concept:terminology@) (i.e.: `[terminology](concept:terminology@)`) refers to the [concept](@) named `terminology`. +- [terminology](pattern:terminology@) (i.e.: `[terminology](pattern:terminology@)`) refers to the [pattern](@) named `terminology`. + +The texts that are used to identify a term type are not standardized. It is up to the [curators](@) of a [scope](@) to determine what they can be, and to ensure that they are correctly specified in the [headers](@) of the [curated texts](@) that describe the corresponding [semantic units](@). + ### Refering to a [term](@) that is defined in another [scope](@) +You can also refer to a [term](@) that wasn't defined in the [scope](@) within which you are creating your [TermRef](@). For example, if would want to refer to the [term](@) `party` as it is defined in the [scope](@) (that is identified by the [scopetag](@)) `essif-lab`, you simply add that [scopetag](@) behind the `@` character, as in [party](@essif-lab) (`[party](@essif-lab)`). +You may also refer to a [term](@) that is defined in a particular version of a [terminology](@), as illustrated by the general syntax +``` markdown +[](@:) +``` +where +- `` is the (required) [showtext](@) part of the [TermRef](@). +- `` is the (optional) [scopetag](@) that specifies the [scope](@) from which the [terminology](@) is to be used; if `` isn't specified, the [current scope](@) is assumed. +- `` is the (optional) [versiontag](@) that specifies the version of the [terminology](@) that is to be used. If `` isn't specified, then the default version of the [terminology](@) is used, the [vsntag](@) of which is defined in the [SAF](@). ## How [TermRefs](@) are Converted (into [RenderableRefs](@)) From 165e7bdeb02fb93bdc6959cee47235b54bdc3912 Mon Sep 17 00:00:00 2001 From: Rieks Date: Mon, 12 Feb 2024 12:55:56 +0100 Subject: [PATCH 3/4] review 'converter profile' (see #32) Signed-off-by: Rieks --- docs/terms/converter-profile.md | 137 +++++++++++++++--- static/images/quote-b-b-warfield-65-54-87.jpg | Bin 0 -> 63336 bytes 2 files changed, 118 insertions(+), 19 deletions(-) create mode 100644 static/images/quote-b-b-warfield-65-54-87.jpg diff --git a/docs/terms/converter-profile.md b/docs/terms/converter-profile.md index f990c11998..8bfe9e9962 100644 --- a/docs/terms/converter-profile.md +++ b/docs/terms/converter-profile.md @@ -32,11 +32,78 @@ The generic workings of [converter profiles](@) is documented in the [TEv2 Text The converter profile object can be envisaged as a YAML object, that has a number of sections. Every converter profile object has the following sections, but individual [text-conversion-tool](@) may specify additional sections (or fields), which can be found in the section "Converter Profile" of their specifications. +
+ Example +Here is an example of what a converter profile object might look like for the [TermRef](@) `[converter profile object](converter-profile#object@)` + +~~~ yaml +int + type: "???" + ??? +ref + showtext: "converter profile object" + termType: "" + termid: "converter-profile" + trait: "object" + scopetag: "" + vsntag: "" +entry + # Docusaurus header + id: converter-profile + displayed_sidebar: tev2SideBar + # TEv2 Curated Text Header + term: converter-profile + termType: concept + glossaryTerm: Converter Profile + glossaryText: "a data object, of a type that is specific for a [text conversion tool](@), that [converters](@) use to create texts by which the [tool](text-conversion-tool@) will replace the text constructs that are located by its [interpreter](@)." + grouptags: + formPhrases: [ "converter-profile{ss}", "profile{ss}" ] + # Curation status + status: proposed + created: 20231218 + updated: 20240108 + # Origins/Acknowledgements + contributors: RieksJ + attribution: "[TNO Terminology Design](https://tno-terminology-design.github.io/tev2-specifications/docs)" + originalLicense: "[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1)" +mrg: + scopetag: "tev2" + scopedir: "https://github.com/tno-terminology-design/tev2-specifications/tree/master/docs" + curatedir: "terms" + glossarydir: "glossaries" + defaultvsn: "documentation" + website: "https://tno-terminology-design.github.io/tev2-specifications/docs" + navpath: "/terms" + navid: "id" + license: "LICENSE.md" + statuses: + - "proposed" + - "approved" + - "deprecated" + issues: "https://github.com/tno-terminology-design/tev2-specifications/issues" + curators: + - name: "RieksJ" + email: + id: "rieks.joosten" + at: "tno.nl" + defaulttype: "concept" + vsntag: "documentation" + altvsntags: + - "latest" +err + file: | Y | Name of the file where the specific reference was found. | + line: 73 + pos: 9 + cause: "" +~~~ + +
+ | Section | Description | | ------- | ----------- | -| `int` | (interpreter): includes information about the interpreter type `int.type`, and the regex used to locate the reference `int.regex`. The `noRefs` helper accesses the `int.regex` to be used as the default type. | +| `int` | (interpreter): includes information about the interpreter type `int.type`, and the regex used to locate the reference `int.regex`. The `noRefs` helper accesses the `int.regex` to be used as the default type. | | `ref` | (reference): the set of properties derived from the [named capturing groups](@) by the [interpreter](@). | -| `entry` | (MRG entry): all fields from the specific [MRG entry](@) that was selected. | +| `entry` | (MRG entry): all fields from the specific [MRG entry](@) that was selected. | | `mrg` | (MRG): all fields from the [terminology section](mrg#terminology@) of the [mrg](@) from which the [MRG entry](@) was taken. | | `err` | (error): various fields, as specified below, that can be used to construct output that helps users identify an error, and fix it. | @@ -71,6 +138,7 @@ When a file is being processed by a [text conversion tool](@), it can happen tha ``` ## Helper functions + Multiple custom [helper functions](https://handlebarsjs.com/guide/expressions.html#helpers) have been specified in addition to the [built-in helper functions](https://handlebarsjs.com/guide/builtin-helpers.html) of [Handlebars](https://handlebarsjs.com/guide/#what-is-handlebars), which can be used within [handlebars expressions](@) to modify the [converter](@) output. The input given to a helper function is always the evaluated value of the expression that follows the call, possibly with extra options. ```ts title="Mustache expression format" @@ -80,14 +148,35 @@ Multiple custom [helper functions](https://handlebarsjs.com/guide/expressions.ht {{noRefs entry.glossaryText type="markdown"}} ``` - ### `capFirst` -This simple helper with identifier `capFirst` replaces every word's first character with the capitalized equivalent. Words are obtained by splitting the input on space characters.
-*It takes the input, splits the input at spaces, and capitalizes the first character of every split item, after which the output is returned.* + +The function of the helper `capFirst` is to capitalize every first character from every word in a string. + +```ts title="'capFirst' examples" +{{capFirst entry.glossaryTerm}} # e.g. "converter profile" becomes "Converter Profile" +{{capFirst entry.glossaryText}} # e.g. "This is a description; for SOME TERM" becomes "This Is A Description; For SOME TERM" +``` + +The helper `capFirst` replaces the first character of every word of its argument with the capitalized equivalent. +Words are obtained by splitting the input on space characters.
+*It takes a string as input, splits the string at spaces, capitalizes the first character of every split item, +reconstructs the input string fomr the split items, and returns the result.* ### `noRefs` -This helper with identifier `noRefs` attempts to use the configured `type` to convert all references to the `showtext` property of the interpreted reference. It also capitalizes the `showtext` replacement using the `capFirst` helper.
-*It takes the input, finds matches using the configured syntax-`type` and uses the capitalized interpreted `showtext` property as a replacement, after which the output is returned.* + +The function of the helper `noRefs` is to replace all [TermRefs](@) from a string, with its (capitalized) [showtext](@). Capitalization is done by the helper `capFirst`. + +```ts title="`noRefs` examples" +{{noRefs entry.glossaryText}} +{{noRefs entry.glossaryText type="markdown"}} +{{noRefs entry.glossaryText type="markdown, html, interpreter"}} +{{noRefs entry.glossaryText type="/\[(?[^\]]+)\]\((?:[^)]+)\)/, html"}} +``` + +The helper `noRefs` uses the configured `type` to convert all references to the `showtext` property of the interpreted reference. +It also capitalizes the `showtext` replacement using the `capFirst` helper.
+*It takes the input, finds matches using the configured syntax-`type` +and uses the capitalized interpreted `showtext` property as a replacement, after which the output is returned.* Three standard values are available to be used as the value for the `type` option. Multiple values may be provided, in which case the values are interpreted in order from left to right. If no value is provided, '`interpreter`' is used as the default `type`. If a `type` is provided that does not match any of the standard `type` values, the value is assumed to be a custom [regex](@). @@ -108,30 +197,40 @@ Available `type` values: ``` -```ts title="NoRefs example" -{{noRefs entry.glossaryText}} -{{noRefs entry.glossaryText type="markdown"}} -{{noRefs entry.glossaryText type="markdown, html, interpreter"}} -{{noRefs entry.glossaryText type="/\[(?[^\]]+)\]\((?:[^)]+)\)/, html"}} -``` - ### `ifValue` -This helper with identifier `ifValue` allows for equality checking by comparing the first value with the value specified as the `equals` argument. Pay attention to the use of a `#` character in front of the opening helper tag (`#ifValue`) and a `/` character at the closing (`/ifValue`) tag in the example.
- *It compares the input given as the value trailing the opening helper identifier (`ifValue`) and the value of the `equals` option, and returns the value inbetween the opening and closing helper tag if the values are equal.* + +The function of the helper `ifValue` is to conditionally render text, based on equality of values. This complements the existing [`#if`-`/if` syntax](https://handlebarsjs.com/guide/builtin-helpers.html#if), that conditionally renders text based on existence of values. + +
+ Example of `ifValue` ```ts title="ifValue example" {{#ifValue entry.termType equals="concept"}}Artifact is a concept{{/ifValue}} {{#ifValue entry.termType equals="image"}}Artifact is an image{{/ifValue}} ``` +
+ +The helper `ifValue` allows for equality checking by comparing the first value with the value specified as the `equals` argument. Pay attention to the use of a `#` character in front of the opening helper tag (`#ifValue`) and a `/` character at the closing (`/ifValue`) tag in the example.
+ *It compares the input given as the value trailing the opening helper identifier (`ifValue`) and the value of the `equals` option, and returns the value inbetween the opening and closing helper tag if the values are equal.* + ### `localize` -This helper with identifier `localize` attempts to parse the value it was given as a URL and compares it to the `website` value of the [MRG](@) in the converter profile. If both the `host` values (e.g., tno-terminology-design.github.io) match, the `pathname` of the URL is returned. If the given value cannot be interpreted as a URL, or the `host` values do not match, the input value is returned. This can be useful in situations where external links (URL's pointing to a website other than the current `host`) are handled differently from internal links. + +The function of the helper `localize` is to convert absolute URLs to relative paths within a specific website context if that is possible, +enhancing internal navigation efficiency and consistency (particularly in static website generator contexts). + +
+ Example of `localize` ```ts title="localize example" {{localize entry.navurl}} // using the localize helper, converts -"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/author" +"https://tno-terminology-design.github.io/tev2-specifications/docs/terms/converter-profile" // into -"/tev2-specifications/docs/terms/author" +"/tev2-specifications/docs/terms/converter-profile" // when the `host` value of the URL matches the MRG website's `host` value ``` + +
+ +The helper `localize` parses the value it was given as a URL and compares it to the `website` value of the [MRG](@) in the converter profile. If both the `host` values (e.g., tno-terminology-design.github.io) match, the `pathname` of the URL is returned. If the given value cannot be interpreted as a URL, or the `host` values do not match, the input value is returned. This can be useful in situations where external links (URL's pointing to a website other than the current `host`) are handled differently from internal links. diff --git a/static/images/quote-b-b-warfield-65-54-87.jpg b/static/images/quote-b-b-warfield-65-54-87.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84b64b31620f77f77021266fe59e5cec9b0a011f GIT binary patch literal 63336 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
  • 1^r;zUI`Wj4LBD`+_+CG7A(6iUc$2W& zbm8i#`4;@oJ^+LA;+-j?e0Q>7U&E*;)UH7^f+`=Y2*lXEUIW28zi$hdP+b*H6izXu$-e=x(lYeO6L54ZUTGeV1hKMWU5 z|NR;NJwX1!L1=vc5t{N39vC;~+oSp8c(%5EX5wWm)i0`rld?BCU!ow*1+h!m7U4@F X^QE5dm3>OTrF>6(VjLIq&D8$@>Y;57 literal 0 HcmV?d00001 From 9b9b8a1553f9651f19aa3309a16602d0bd6a6ebf Mon Sep 17 00:00:00 2001 From: Rieks Date: Mon, 12 Feb 2024 12:58:37 +0100 Subject: [PATCH 4/4] fixed bug in generation Signed-off-by: Rieks --- docs/terms/converter-profile.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/docs/terms/converter-profile.md b/docs/terms/converter-profile.md index 8bfe9e9962..5d7a413a04 100644 --- a/docs/terms/converter-profile.md +++ b/docs/terms/converter-profile.md @@ -152,7 +152,7 @@ Multiple custom [helper functions](https://handlebarsjs.com/guide/expressions.ht The function of the helper `capFirst` is to capitalize every first character from every word in a string. -```ts title="'capFirst' examples" +```ts title="Examples for 'capFirst'" {{capFirst entry.glossaryTerm}} # e.g. "converter profile" becomes "Converter Profile" {{capFirst entry.glossaryText}} # e.g. "This is a description; for SOME TERM" becomes "This Is A Description; For SOME TERM" ``` @@ -166,7 +166,7 @@ reconstructs the input string fomr the split items, and returns the result.* The function of the helper `noRefs` is to replace all [TermRefs](@) from a string, with its (capitalized) [showtext](@). Capitalization is done by the helper `capFirst`. -```ts title="`noRefs` examples" +```ts title="Examples for 'noRefs'" {{noRefs entry.glossaryText}} {{noRefs entry.glossaryText type="markdown"}} {{noRefs entry.glossaryText type="markdown, html, interpreter"}} @@ -201,16 +201,11 @@ Available `type` values: The function of the helper `ifValue` is to conditionally render text, based on equality of values. This complements the existing [`#if`-`/if` syntax](https://handlebarsjs.com/guide/builtin-helpers.html#if), that conditionally renders text based on existence of values. -
    - Example of `ifValue` - ```ts title="ifValue example" {{#ifValue entry.termType equals="concept"}}Artifact is a concept{{/ifValue}} {{#ifValue entry.termType equals="image"}}Artifact is an image{{/ifValue}} ``` -
    - The helper `ifValue` allows for equality checking by comparing the first value with the value specified as the `equals` argument. Pay attention to the use of a `#` character in front of the opening helper tag (`#ifValue`) and a `/` character at the closing (`/ifValue`) tag in the example.
    *It compares the input given as the value trailing the opening helper identifier (`ifValue`) and the value of the `equals` option, and returns the value inbetween the opening and closing helper tag if the values are equal.* @@ -219,10 +214,7 @@ The helper `ifValue` allows for equality checking by comparing the first value w The function of the helper `localize` is to convert absolute URLs to relative paths within a specific website context if that is possible, enhancing internal navigation efficiency and consistency (particularly in static website generator contexts). -
    - Example of `localize` - -```ts title="localize example" +```ts title="Examples for 'localize'" {{localize entry.navurl}} // using the localize helper, converts "https://tno-terminology-design.github.io/tev2-specifications/docs/terms/converter-profile" @@ -231,6 +223,4 @@ enhancing internal navigation efficiency and consistency (particularly in static // when the `host` value of the URL matches the MRG website's `host` value ``` -
    - The helper `localize` parses the value it was given as a URL and compares it to the `website` value of the [MRG](@) in the converter profile. If both the `host` values (e.g., tno-terminology-design.github.io) match, the `pathname` of the URL is returned. If the given value cannot be interpreted as a URL, or the `host` values do not match, the input value is returned. This can be useful in situations where external links (URL's pointing to a website other than the current `host`) are handled differently from internal links.