From 331cb4108aba2d2c8a2f041d06aad6d5c2268907 Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Sat, 18 May 2024 23:47:13 -0400
Subject: [PATCH 01/51] Address #2497: * Updated Schematron as per issue *
Added a test to detest.xml * Updated expected results to match new test file
---
P5/Source/Specs/ab.xml | 10 +-
P5/Source/Specs/div.xml | 10 +-
P5/Source/Specs/p.xml | 13 +-
P5/Test/detest.xml | 150 ++++++++++--------
.../expected-results/detest_xml_relaxng.log | 2 +-
.../detest_xml_schematron.log | 3 +
6 files changed, 99 insertions(+), 89 deletions(-)
diff --git a/P5/Source/Specs/ab.xml b/P5/Source/Specs/ab.xml
index c4fb583143..241babdf88 100644
--- a/P5/Source/Specs/ab.xml
+++ b/P5/Source/Specs/ab.xml
@@ -27,12 +27,12 @@
-
+
-
-
- Abstract model violation: Lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText.
-
+
+
+ Abstract model violation: Metrical lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText.
+
diff --git a/P5/Source/Specs/div.xml b/P5/Source/Specs/div.xml
index 17d69d3f0d..309cc127bb 100644
--- a/P5/Source/Specs/div.xml
+++ b/P5/Source/Specs/div.xml
@@ -65,12 +65,12 @@
-
+
-
-
- Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
-
+
+
+ Abstract model violation: Metrical lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
+
diff --git a/P5/Source/Specs/p.xml b/P5/Source/Specs/p.xml
index 2fca22ff4e..bb1d55a9f5 100644
--- a/P5/Source/Specs/p.xml
+++ b/P5/Source/Specs/p.xml
@@ -48,15 +48,12 @@
-
+
-
-
- Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
-
+
+
+ Abstract model violation: Metrical lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
+
diff --git a/P5/Test/detest.xml b/P5/Test/detest.xml
index 58ca3db948..cf5ee3c7a6 100644
--- a/P5/Test/detest.xml
+++ b/P5/Test/detest.xml
@@ -82,7 +82,7 @@
Testing schematron constraints
- sicut erat in
+ sicut erat in
freddy principia
@@ -91,32 +91,32 @@
cats
-
+
-
+
Added by MDH. This tests the Schematron constraint that any
element with calendar must have some textual
content.
-
+
-
+
This has some content which is OK This one doesn't but that's also OK.
That one (just to my left) is illegal
as is that one
and that one
-
-
-
+
+
+
Canon 1
hello
A Canon Text
hello
-
-
+
+
Canon 2
hello
@@ -127,35 +127,35 @@
A 2nd Canon Text
hello
-
-
+
+
Canon 3
Canon 4
-
-
+
+
Register 1
Canon 5
-
-
+
+
This sentence contains
an illegally nested phrase
and should trigger a schematron squawk
-
+
- Testing multiple occurences of a datatype in a single
- attribute value. The following should be valid:
- minimum
- min +1 unless ≤, in which case max
- max
-
+ Testing multiple occurences of a datatype in a single
+ attribute value. The following should be valid:
+ minimum
+ min +1 unless ≤, in which case max
+ max
+
@@ -204,15 +204,15 @@
Some transcribed text with subst errors
... are all included. It is
- Tthe expressed
+ Tthe expressed
that he and his Sister Miſs D —
- who always lived with him, wd. be very
- principally remembered in her Will.
+ who always lived with him, wd. be very
+ principally remembered in her Will.
ἐπιτρέψῃ [ἐπετρέψῃ] τῷ ὑποδέκτῃ μὴ ὀχλῆσαι
τῶνα συνκυρόντωνα
- ἐργαστηρίωνα
+ ἐργαστηρίωνα
While pondering thus she mus'd,
- her pinions fann'd
+ her pinions fann'd
@@ -248,45 +248,45 @@
- test msDesc elements that should not be repeated
-
Some manuscript description elements are supposed to occur
- a max of only once, even though RelaxNG allows infinite.
-
Added 2023-10-11 19:21 by Syd.
-
-
- MEL
- BB
- mel:bb:ve:08
- riddle of Strider
-
- occurs only once, thus valid
- occurs twice, thus invalid
- occurs twice, thus invalid
- three occurrences, thus invalid
- three occurrences, thus invalid
- three occurrences, thus invalid
- four occurrences, thus invalid
- four occurrences, thus invalid
- four occurrences, thus invalid
- four occurrences, thus invalid
-
-
The above msDesc should generate 3 errors, one
- each for physDesc, history, and
- additional.
-
-
- All that is gold does not glitter,
- Not all those who wander are lost;
- The old that is strong does not wither,
- Deep roots are not reached by the frost.
-
-
- From the ashes a fire shall be woken,
- A light from the shadows shall spring;
- Renewed shall be blade that was broken,
- The crownless again shall be king.
-
-
+ test msDesc elements that should not be repeated
+
Some manuscript description elements are supposed to occur
+ a max of only once, even though RelaxNG allows infinite.
+
Added 2023-10-11 19:21 by Syd.
+
+
+ MEL
+ BB
+ mel:bb:ve:08
+ riddle of Strider
+
+ occurs only once, thus valid
+ occurs twice, thus invalid
+ occurs twice, thus invalid
+ three occurrences, thus invalid
+ three occurrences, thus invalid
+ three occurrences, thus invalid
+ four occurrences, thus invalid
+ four occurrences, thus invalid
+ four occurrences, thus invalid
+ four occurrences, thus invalid
+
+
The above msDesc should generate 3 errors, one
+ each for physDesc, history, and
+ additional.
+
+
+ All that is gold does not glitter,
+ Not all those who wander are lost;
+ The old that is strong does not wither,
+ Deep roots are not reached by the frost.
+
+
+ From the ashes a fire shall be woken,
+ A light from the shadows shall spring;
+ Renewed shall be blade that was broken,
+ The crownless again shall be king.
+
+
Shift should have a new attribute
@@ -371,14 +371,24 @@
Here is
a little floating text
.
Here is
another little floating text
.
+
+
+
This paragraph should be valid.
+ The one around “find”, below, should be invalid.
+
+ I think that I shall never see Sight of TEI elements is significant in this little poem.A floating text inside this tree.Nor can it be
that I shall know
A paragraph
herein below
.
- More likely maybe I could find
+ More likely maybe I could
find
A div
stuck in this poem's lines.
And here is the same poem again, inside a giant floatingText and coded a little differently.
+
The “find”, below, should be flagged as an
+ abstract model violation, IMHO, but is not because the
+ Schematron is fooled by the fact that it is within a
+ floatingText. Sigh. —Syd, 2024-05-18
@@ -387,7 +397,7 @@
A floating text inside this tree.Nor can it be that I shall know
A paragraph
herein below
.
- More likely maybe I could find
+ More likely maybe I could
find
A div
stuck in this poem's lines.
@@ -402,7 +412,7 @@
detest.odd because they would break
the build there
- See //elementSpec[@ident eq 'abbr']/listRef in detest.odd
+ See //elementSpec[@ident eq 'abbr']/listRef in detest.oddno target (2B caught by Schematron)good target absolute URI
diff --git a/P5/Test/expected-results/detest_xml_relaxng.log b/P5/Test/expected-results/detest_xml_relaxng.log
index 1d50cb2506..c4ae5f99fe 100644
--- a/P5/Test/expected-results/detest_xml_relaxng.log
+++ b/P5/Test/expected-results/detest_xml_relaxng.log
@@ -73,7 +73,7 @@ allowed:
element http://www.tei-c.org/ns/1.0^listRef
element http://www.tei-c.org/ns/1.0^relatedItem
element http://www.tei-c.org/ns/1.0^citedRange
-detest.xml:411:12: error: attribute ^target with invalid value ""
+detest.xml:421:12: error: attribute ^target with invalid value ""
required:
data http://www.w3.org/2001/XMLSchema-datatypes^anyURI
error: some documents are invalid
diff --git a/P5/Test/expected-results/detest_xml_schematron.log b/P5/Test/expected-results/detest_xml_schematron.log
index 6ecfa77abc..20a30a9157 100644
--- a/P5/Test/expected-results/detest_xml_schematron.log
+++ b/P5/Test/expected-results/detest_xml_schematron.log
@@ -12,6 +12,9 @@ The element indicated by @spanTo (notMeaningful) must follow the current element
@calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this date element has no textual content. (string-length( normalize-space(.) ) gt 0)
+
+ Abstract model violation: Metrical lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
+ (ancestor::tei:floatingText | parent::tei:figure | parent::tei:note)
@calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this date element has no textual content. (string-length( normalize-space(.) ) gt 0)
From e7538b0906c1796cc97c87bb08f77d3724162095 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 8 Oct 2024 16:42:29 +0100
Subject: [PATCH 02/51] Updated description of deleted parentheses and
corrected typographical to topographical.
---
P5/Source/Specs/lb.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Specs/lb.xml b/P5/Source/Specs/lb.xml
index 64bbfdde4b..b073712233 100644
--- a/P5/Source/Specs/lb.xml
+++ b/P5/Source/Specs/lb.xml
@@ -9,7 +9,7 @@
inicio de líneainizio di rigaZeilenanfang
- marks the beginning of a new (typographic) line in some edition or version of a text.
+ marks the beginning of a topographic line in some edition or version of a text.텍스트의 편집 또는 버전에서 새로운 (인쇄상의) 행 시작을 표지한다.標記某版本文本裡 (在印刷上) 的新起行。ある版における新しい(印刷上の)行の始まりを示す。
From 95e9edf1cf58c60733693f51f4a130eb1bf972fc Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 8 Oct 2024 16:50:42 +0100
Subject: [PATCH 03/51] Updated line break(s) to line beginning(s)
---
P5/Source/Specs/lb.xml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/P5/Source/Specs/lb.xml b/P5/Source/Specs/lb.xml
index b073712233..f7d88e22d5 100644
--- a/P5/Source/Specs/lb.xml
+++ b/P5/Source/Specs/lb.xml
@@ -32,7 +32,7 @@
-
This example shows typographical line breaks within metrical lines, where they occur at different
+
This example shows typographical line beginning within metrical lines, where they occur at different
places in different editions:
Of Mans First Disobedience, and the Fruit
@@ -58,9 +58,9 @@
-
This example encodes typographical line breaks as a means of
+
This example encodes typographical line beginning as a means of
preserving the visual appearance of a title page. The break
-attribute is used to show that the line break does not (as elsewhere)
+ attribute is used to show that the line beginning does not (as elsewhere)
mark the start of a new word.
With Additions, ne-ver before Printed.
@@ -89,15 +89,15 @@ soi-xante & dixhuytiesme livre.
starts. The n attribute, if used, indicates the number or other value associated
with the text between this point and the next lb element, typically the sequence
number of the line within the page, or other appropriate unit. This element is intended to be
- used for marking actual line breaks on a manuscript or printed page, at the point where they
+ used for marking line beginnings on a manuscript or printed page, at the point where they
occur; it should not be used to tag structural units such as lines of verse (for which the
l element is available) except in circumstances where structural units cannot
otherwise be marked.
The type attribute may be used to characterize the
- line break in any respect. The more specialized attributes
+ line beginning in any respect. The more specialized attributes
break, ed, or edRef should be preferred when the
intent is to indicate whether or not the line
- break is word-breaking, or to note the source from which it
+ beginning is word-breaking, or to note the source from which it
derives.
From 7e8193ba6bef3e305221d6579c19eb5f60007228 Mon Sep 17 00:00:00 2001
From: Klaus Rettinghaus
Date: Mon, 11 Nov 2024 11:13:47 +0100
Subject: [PATCH 04/51] Remove dead link
---
README.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/README.md b/README.md
index d0a8d2f973..b69206dbbe 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,5 @@ The [TEI](https://www.tei-c.org) is an international and interdisciplinary stand
This repository contains the sources for building the [TEI P5 Guidelines](https://www.tei-c.org/release/doc/tei-p5-doc/en/html/index.html) and
[schemas](https://www.tei-c.org/guidelines/customization/). If you want to work on the Guidelines, you should look in the [P5 directory](https://github.com/TEIC/TEI/tree/dev/P5).
-Some notes on working with Git and on this GitHub repository may be found in the following documents:
+Some notes on working with Git and on this GitHub repository may be found in the following document:
* [Git README](https://github.com/TEIC/TEI/blob/master/Documents/Git-README.md)
-* [Using the TEI GitHub Repository](https://www.tei-c.org/guidelines/p5/using-the-tei-github-repository/)
From 82e9a84f16e9c9f183610b48dbd7ef19f17d6563 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 10 Dec 2024 20:02:02 +0000
Subject: [PATCH 05/51] Updated typographical to topographical, line breaks to
line beginnings, added clarification to example in line spec
---
P5/Source/Specs/lb.xml | 4 ++--
P5/Source/Specs/line.xml | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/P5/Source/Specs/lb.xml b/P5/Source/Specs/lb.xml
index f7d88e22d5..b772dbfa38 100644
--- a/P5/Source/Specs/lb.xml
+++ b/P5/Source/Specs/lb.xml
@@ -32,7 +32,7 @@
-
This example shows typographical line beginning within metrical lines, where they occur at different
+
This example shows topographical line beginning within metrical lines, where they occur at different
places in different editions:
Of Mans First Disobedience, and the Fruit
@@ -58,7 +58,7 @@
-
This example encodes typographical line beginning as a means of
+
This example encodes topographical line beginning as a means of
preserving the visual appearance of a title page. The break
attribute is used to show that the line beginning does not (as elsewhere)
mark the start of a new word.
This example shows topographical lines as a means of preserving the visual appearance of a poem:
@@ -53,7 +54,7 @@ said
This element should be used only to mark up writing which
is topographically organized as a series of lines, horizontal or
vertical. It should not be used to mark lines of verse (for which use
-l) nor to mark linebreaks within text which has been encoded
+l) nor to mark line beginnings within text which has been encoded
using structural elements such as p (for which use
lb).
From ea3d132c08363438701b9446322e12706c107602 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 10 Dec 2024 20:47:00 +0000
Subject: [PATCH 06/51] replaced break with beginning for pb and cb
---
P5/Source/Specs/cb.xml | 2 +-
P5/Source/Specs/gb.xml | 2 +-
P5/Source/Specs/pb.xml | 6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/P5/Source/Specs/cb.xml b/P5/Source/Specs/cb.xml
index 183deccbd9..a5dc01136e 100644
--- a/P5/Source/Specs/cb.xml
+++ b/P5/Source/Specs/cb.xml
@@ -50,7 +50,7 @@
On this element, the global n attribute indicates the number or other value associated with the column
which follows the point of insertion of this cb element. Encoders should adopt a clear and consistent policy as to
- whether the numbers associated with column breaks relate to the physical
+ whether the numbers associated with column beginnings relate to the physical
sequence number of the column in the whole text, or whether columns are
numbered within the page.
The cb element is placed at the head of the
diff --git a/P5/Source/Specs/gb.xml b/P5/Source/Specs/gb.xml
index 9e8a5dae3e..eca0b0e360 100644
--- a/P5/Source/Specs/gb.xml
+++ b/P5/Source/Specs/gb.xml
@@ -29,7 +29,7 @@
attribute indicates the number or other value used to identify
this gathering in a collation.
The type attribute may be used to further
- characterize the gathering in any respect.
+ characterize the gathering in any respect.
diff --git a/P5/Source/Specs/pb.xml b/P5/Source/Specs/pb.xml
index 23b9fcd160..3593601f80 100644
--- a/P5/Source/Specs/pb.xml
+++ b/P5/Source/Specs/pb.xml
@@ -47,7 +47,7 @@
-
A page break may be associated with a facsimile image of the page it introduces by means of
+
A page beginning may be associated with a facsimile image of the page it introduces by means of
the facs attribute
@@ -92,10 +92,10 @@
physical sequence number is implicit in the presence of the
pb element itself.
The type attribute may be used to characterize
- the page break in any respect. The more specialized attributes
+ the page beginning in any respect. The more specialized attributes
break, ed, or edRef should be
preferred when the intent is to indicate whether or not the
- page break is word-breaking, or to note the source from
+ page beginning is word-breaking, or to note the source from
which it derives.
From 9aaa9eb7f164f11cec8f5e04217e69c3e89867af Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 10 Dec 2024 20:52:01 +0000
Subject: [PATCH 07/51] Replace breaks with beginnings for att.breaking example
---
P5/Source/Specs/att.breaking.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Specs/att.breaking.xml b/P5/Source/Specs/att.breaking.xml
index 4eb817318e..c0fa83f533 100644
--- a/P5/Source/Specs/att.breaking.xml
+++ b/P5/Source/Specs/att.breaking.xml
@@ -46,7 +46,7 @@ of any adjacent whitespace
In the following lines from the
Dream of the Rood,
- linebreaks occur in the middle of the words lāðost
+ line beginnings occur in the middle of the words lāðost
and reord-berendum.
From 69b6f216329494283ef070df127fb004d7f43309 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 10 Dec 2024 20:58:26 +0000
Subject: [PATCH 08/51] Replace break with beginning in param
---
P5/Source/Specs/param.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Specs/param.xml b/P5/Source/Specs/param.xml
index f6c6185be6..543e100992 100644
--- a/P5/Source/Specs/param.xml
+++ b/P5/Source/Specs/param.xml
@@ -51,7 +51,7 @@
a parameter of this name should supply an
expression to be used to label something, for example concat('Page ', @n)
- for a page break or @n for a footnote reference; typically used with the
+ for a page beginning or @n for a footnote reference; typically used with the
note or break behaviours
From 77bf0224fda1be21610298932aa7b4aa0034142c Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 10 Dec 2024 21:06:36 +0000
Subject: [PATCH 09/51] Replace break with beginning
---
P5/Source/Specs/att.edition.xml | 4 ++--
P5/Source/Specs/att.milestoneUnit.xml | 6 +++---
P5/Source/Specs/model.xml | 2 +-
P5/Source/Specs/param.xml | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/P5/Source/Specs/att.edition.xml b/P5/Source/Specs/att.edition.xml
index 1646c437fd..74700583d2 100644
--- a/P5/Source/Specs/att.edition.xml
+++ b/P5/Source/Specs/att.edition.xml
@@ -13,7 +13,7 @@
版supplies a sigil or other arbitrary identifier for the source edition in which
the associated feature (for example, a page, column, or line
- break) occurs at this point in the text.
+ beginning) occurs at this point in the text.
fournit un identifiant arbitraire pour l'édition source dans laquelle la caractéristique associée
(par exemple, une page, une colonne ou un saut de ligne) apparaît à ce point du texte.関連する属性(ページ・段落・行の切れ目)がテキストのこの地点において発生するソースのエディションについての印やその他の任意の識別子を提供する。
@@ -24,7 +24,7 @@
参照provides a pointer to the source edition in which
the associated feature (for example, a page, column, or line
- break) occurs at this point in the text.
+ beginning) occurs at this point in the text.
このポインタが示すのは、当該テキスト中に現れる(頁や段、行等の)関連する素性が生じる元の版である。
diff --git a/P5/Source/Specs/att.milestoneUnit.xml b/P5/Source/Specs/att.milestoneUnit.xml
index 90562acee6..0522de96f8 100644
--- a/P5/Source/Specs/att.milestoneUnit.xml
+++ b/P5/Source/Specs/att.milestoneUnit.xml
@@ -21,7 +21,7 @@
- physical page breaks (synonymous with the pb element).
+ physical page beginnings (synonymous with the pb element).물리적 페이지 바꿈分頁 (和元素pb同義) 。cambio físico de página (sinónimo del elemento
@@ -33,7 +33,7 @@
pb)
- column breaks.
+ column beginnings.열 바꿈分段。cambio de columna.
@@ -42,7 +42,7 @@
interruzione di colonna
- line breaks (synonymous with the lb element).
+ line beginnings (synonymous with the lb element).행 바꿈分行 (和元素lb同義) 。salto de línea (sinónimo del elemento libra).
diff --git a/P5/Source/Specs/model.xml b/P5/Source/Specs/model.xml
index aaab06d5db..58cfb725e5 100644
--- a/P5/Source/Specs/model.xml
+++ b/P5/Source/Specs/model.xml
@@ -100,7 +100,7 @@
- create a line, column, or page break
+ create a line, column, or page beginning
according to the value of type
diff --git a/P5/Source/Specs/param.xml b/P5/Source/Specs/param.xml
index 543e100992..ee46d015ee 100644
--- a/P5/Source/Specs/param.xml
+++ b/P5/Source/Specs/param.xml
@@ -72,7 +72,7 @@
a parameter of this name can be used to
- categorize the specified behaviour in any way; for example the kind of break (when used
+ categorize the specified behaviour in any way; for example the kind of beginning (when used
with the break behaviour) or the kind of index to be generated (if used
with the index behaviour) etc.
From 68d7f1007661cb19cac2f9b0f6c3d180601a2e13 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Tue, 10 Dec 2024 21:19:06 +0000
Subject: [PATCH 10/51] Replace break with beginning
---
.../en/CH-LanguagesCharacterSets.xml | 2 +-
P5/Source/Guidelines/en/CO-CoreElements.xml | 24 +++++++++----------
.../Guidelines/en/DI-PrintDictionaries.xml | 4 ++--
.../Guidelines/en/DS-DefaultTextStructure.xml | 6 ++---
.../en/FT-TablesFormulaeGraphics.xml | 2 +-
P5/Source/Guidelines/en/HD-Header.xml | 4 ++--
.../Guidelines/en/NH-Non-hierarchical.xml | 2 +-
P5/Source/Guidelines/en/PH-PrimarySources.xml | 4 ++--
.../Guidelines/en/SG-GentleIntroduction.xml | 6 ++---
.../en/WD-NonStandardCharacters.xml | 4 ++--
10 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml b/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml
index 97931191b0..2400b0218e 100644
--- a/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml
+++ b/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml
@@ -426,7 +426,7 @@ dates, and predefined value lists.
individual characters, the overall typesetting process also
follows specific rules of how to calculate the distance between
characters, how much whitespace occurs between words, at which
- points line breaks might occur and so forth.
+ points line beginnings might occur and so forth.
If we concern ourselves only with the rendering process of the
characters themselves, leaving out all these other parameters, we
will realize that of all the information required for this process, only a small
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index 7df83faa4f..974aadb202 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -329,7 +329,7 @@ problem for text encoders. Suppose, for example, that we wish to
investigate a diachronic English corpus for occurrences of
tea-pot and teapot, to
find evidence for the point at which this compound becomes
-lexicalized. Any case where the word is hyphenated across a linebreak,
+lexicalized. Any case where the word is hyphenated across a line beginning,
like this: is
ambiguous: there is no simple way of deciding which of the two
@@ -381,11 +381,11 @@ whitespace.
The lb, pb, and cb elements are notable
exceptions to this general rule, since their function is precisely to
-represent (or replace) line, page, or column breaks, which, as noted
+represent (or replace) line, page, or column beginnings, which, as noted
above, are generally considered to be equivalent to whitespace. These
elements provide a more reliable way of preserving the lineation,
pagination, etc of a source document, since the encoder should not
-assume that (untagged) line breaks etc. in an XML source file will
+assume that (untagged) line beginnings etc. in an XML source file will
necessarily be preserved.
To control the intended tokenization, the encoder may use the
@@ -3492,11 +3492,11 @@ section and in section .
When a text has no pre-existing associated reference system of any
kind, these Guidelines recommend as a minimum that at least the page
boundaries of the source text be marked using one of the methods
-outlined in this section. Retaining page breaks in the markup is also
+outlined in this section. Retaining page beginnings in the markup is also
recommended for texts which have a detailed reference system of their
-own. Line breaks in prose texts may be, but need not be, tagged.Many encoders find it convenient to retain the line
-breaks of the original during data entry, to simplify proofreading,
-but this may be done without inserting a tag for each line break of
+own. Line beginnings in prose texts may be, but need not be, tagged.Many encoders find it convenient to retain the line
+ beginnings of the original during data entry, to simplify proofreading,
+ but this may be done without inserting a tag for each line beginning of
the original.
Using the xml:id and n Attributes
When traditional reference schemes represent a hierarchical
@@ -3900,7 +3900,7 @@ treated as a single word, a tagging such as the following is recommended:
...sed imperator dixit...
-Where hyphenation appears before a line or page break, the encoder may
+ Where hyphenation appears before a line or page beginning, the encoder may
or may not choose to record the fact, either explicitly using an
appropriate Unicode character, or descriptively for example by means
of the rend attribute; see further .
@@ -5645,8 +5645,8 @@ metrical rather than typographic lines. In some modern or free verse,
it may be hard to decide whether the typographic line is to be
regarded as a verse line or not, but the distinction is quite clear
for verse following regular metrical patterns. Where a metrical line is
-interrupted by a typographic line break, the encoder may choose to
-ignore the fact entirely or to use the empty lb (line break)
+interrupted by a typographic line beginning, the encoder may choose to
+ignore the fact entirely or to use the empty lb (line beginning)
element discussed in . By convention, the start
of a metrical line implies the start of a typographic line; hence
there is no need to introduce an lb tag at the start of every
@@ -5664,13 +5664,13 @@ starts within a metrical line, as in the following example:
In the original copy text, the presence of an ornamental capital at
the start of the poem means that the measure is not wide enough to
print the first four lines on four lines; instead each metrical line occupies
-two typographic lines, with a break at the point indicated. Note that
+two typographic lines, with a beginning at the point indicated. Note that
this encoding makes no attempt to preserve information about the
whitespace or indentation associated with either kind of line; if regarded
as essential, this information would be recorded using the
rend or rendition attributes discussed in .
The l element should not be used to represent typographic
-lines in non-verse materials: if the line-breaking points in a prose
+ lines in non-verse materials: if the line-beginninging points in a prose
text are considered important for analysis, they should be marked with
the lb element. Alternatively, a neutral segmentation element
such as seg or ab may be used; see further
diff --git a/P5/Source/Guidelines/en/DI-PrintDictionaries.xml b/P5/Source/Guidelines/en/DI-PrintDictionaries.xml
index 984ad248ef..592c27433a 100644
--- a/P5/Source/Guidelines/en/DI-PrintDictionaries.xml
+++ b/P5/Source/Guidelines/en/DI-PrintDictionaries.xml
@@ -2227,7 +2227,7 @@ following three, which help to clarify some issues raised with particular urgenc
dictionaries, on account of the complexity of both their typography and their
information structure.(a) the typographic view—the
-two-dimensional printed page, including information about line and page breaks
+ two-dimensional printed page, including information about line and page beginnings
and other features of layout (b) the editorial view—the one-dimensional sequence of tokens
which can be seen as the input to the typesetting process; the wording and
@@ -2243,7 +2243,7 @@ therefore hyphenated (naut-ical); the typographic view of the dictionary preserves this information. In a
purely editorial view, the particular form in which the domain name is given in the
particular dictionary (as nautical, rather than naut., Naut., etc.)
-would be preserved, but the fact of the line break would not. Font shifts might
+ would be preserved, but the fact of the line beginning would not. Font shifts might
plausibly be included in either a strictly typographic or an editorial view. In the
lexical view, the only information preserved concerning domain would be some standard
symbol or string representing the nautical domain (e.g. naut.) regardless of the
diff --git a/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml b/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml
index 727a2d6729..f3e14eba2f 100644
--- a/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml
+++ b/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml
@@ -1506,7 +1506,7 @@ the div elements containing chapters of the text itself. (For the
-Alternatively, the pointers in the index might link to the page breaks
+ Alternatively, the pointers in the index might link to the page beginnings
at which a chapter begins, assuming that these have been included in
the markup:
@@ -1629,7 +1629,7 @@ the work discussed earlier in this section:
@@ -1731,7 +1731,7 @@ transcription):
-Note that if the page breaks in the original source have also been
+ Note that if the page beginnings in the original source have also been
explicitly encoded, and given identifiers, the references to them in the
above index can more usefully be recorded as links. For example,
assuming that the encoding of page 461 of the original source starts
diff --git a/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml b/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml
index 2d7ba565fa..5090a7ddd6 100644
--- a/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml
+++ b/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml
@@ -255,7 +255,7 @@ this is rarely if ever done in practice.
The content of table elements is not limited to head and
row. Milestone elements such as cb and lb
- allow breaks to be signalled inside tables; figure provides an
+ allow beginnings to be signalled inside tables; figure provides an
option for including data which is not amenable to normal row and cell
analysis; and other elements such as epigraph and
trailer provide options for including text which is clearly
diff --git a/P5/Source/Guidelines/en/HD-Header.xml b/P5/Source/Guidelines/en/HD-Header.xml
index 5fa66dc927..abb789f103 100644
--- a/P5/Source/Guidelines/en/HD-Header.xml
+++ b/P5/Source/Guidelines/en/HD-Header.xml
@@ -1410,7 +1410,7 @@ it to mark italicised English words only.
The withId attribute may optionally be used to specify
how many of the occurrences of the element in question bear a value
for the global xml:id attribute, as in the following
-example: Marks page breaks in the York
+ example: Marks page beginnings in the York
(1734) edition only This indicates that the
pb element occurs 321 times, on each of which an identifier
is provided.
@@ -1518,7 +1518,7 @@ not recommended for automatic processing.
text. The n attribute on each div1 and
div2 contains the canonical reference for each such
division, in the form 'XX.yyy', where XX is the book number in Roman
- numerals, and yyy the section number in arabic. Line breaks are
+ numerals, and yyy the section number in arabic. Line beginnings are
marked by empty lb elements, each of which includes the
through line number in Casaubon's edition as the value of its
n attribute.
diff --git a/P5/Source/Guidelines/en/NH-Non-hierarchical.xml b/P5/Source/Guidelines/en/NH-Non-hierarchical.xml
index 589dfb8977..f4f74e3a5c 100644
--- a/P5/Source/Guidelines/en/NH-Non-hierarchical.xml
+++ b/P5/Source/Guidelines/en/NH-Non-hierarchical.xml
@@ -220,7 +220,7 @@ wound.
typographical and metrical line divisions correspond,
lb does not itself make a metrical claim: in encoding
verse from sources, such as Old English manuscripts, where
- physical line breaks are not used to indicate metrical
+ physical line beginnings are not used to indicate metrical
lineation, the correspondence would break down entirely.
diff --git a/P5/Source/Guidelines/en/PH-PrimarySources.xml b/P5/Source/Guidelines/en/PH-PrimarySources.xml
index 77bf99e7f4..ba46321e3f 100644
--- a/P5/Source/Guidelines/en/PH-PrimarySources.xml
+++ b/P5/Source/Guidelines/en/PH-PrimarySources.xml
@@ -750,7 +750,7 @@ used to define a polygon of any shape using this coordinate system:-->
methods of recording editorial or other alterations to the text, such as expansion
of abbreviations, corrections, conjectures, etc. (section )methods of describing important extra-linguistic phenomena in the source: unusual
- spaces, lines, page and line breaks, changes of manuscript hand, etc. (section )
+ spaces, lines, page and line beginnings, changes of manuscript hand, etc. (section )
methods of representing aspects of layout such as spacing or lines methods of representing material such as running heads, catch-words, and the like
@@ -2550,7 +2550,7 @@ referring to the zone marked in purple on the right
This approach assumes that the transcription will primarily be organized in the same way as
the physical layout of the source, using embedded transcription elements. Alternatively,
where the a non-embedded transcription has been provided, using the text element,
- it is still possible to record gathering breaks, page breaks, column breaks, line breaks
+ it is still possible to record gathering beginnings, page beginnings, column beginnings, line beginnings
etc in the source, using the elements described in section . Detailed
metadata about the physical make-up of a source will usually be summarized by the
physDesc component of an msDesc element discussed in .
diff --git a/P5/Source/Guidelines/en/SG-GentleIntroduction.xml b/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
index 89421b1d60..9d8e9faec5 100644
--- a/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
+++ b/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
@@ -229,7 +229,7 @@ forth. And for certain types of analysis (most notably textual
criticism) the physical appearance of one particular printed or
manuscript source may be of importance: paradoxically, one may wish to
use descriptive markup to describe presentational features such as
-typeface, line breaks, use of whitespace and so forth.
+typeface, line beginnings, use of whitespace and so forth.
These textual structures overlap with one another in complex and
unpredictable ways. Particularly when dealing with texts as
@@ -346,7 +346,7 @@ document.The element names here have been chosen for
clarity of exposition; there is, however, a TEI element corresponding to
each. It will, however, serve as an introduction to the basic notions of XML.
-Whitespace and line breaks have been added to the example for the
+ Whitespace and line beginnings have been added to the example for the
sake of visual clarity only; they have no particular significance in the
XML encoding itself. Also, the line
]]>
@@ -1256,7 +1256,7 @@ only so that it can be clearly distinguished from the
structure of the document. As suggested above, one common example is
the need, when processing an XML document for printed output, to
include a suggestion that the formatting processor might use to
-determine where to begin a new page of output. Page-breaking decisions
+determine where to begin a new page of output. Page-beginning decisions
are usually best made by the formatting engine alone, but there will
always be occasions when it may be necessary to override these. An XML
processing instruction inserted into the document is one very simple
diff --git a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
index c6c7c38b0e..d673231382 100644
--- a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
+++ b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
@@ -1250,11 +1250,11 @@ precinct at Dodona. (L.H. Jeffery Archive)
is reversed, and so is their individual orientation (in fact, we see them
from the back, as it were). seg elements
have been used here because these are clearly not lines
- in the sense of poetic lines; the text is continuous prose, and linebreaks
+ in the sense of poetic lines; the text is continuous prose, and line beginnings
are incidental.
There are obviously some unsatisfactory aspects of this manner of encoding
- boustrophedon. In the inscription above, some words run across linebreaks,
+ boustrophedon. In the inscription above, some words run across line beginnings,
so if we wished to tag both words and the right-to-left phenomena, one
hierarchy would have to be privileged over the other. By using a transform
function rather than a writing mode property, we are apparently suggesting
From 5cdeae3a3105177583f8dd5fc4e38ea7ea201484 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Wed, 11 Dec 2024 19:35:52 +0000
Subject: [PATCH 11/51] Recommended changes applied
---
P5/Source/Specs/lb.xml | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/P5/Source/Specs/lb.xml b/P5/Source/Specs/lb.xml
index bf42ee6302..287259b895 100644
--- a/P5/Source/Specs/lb.xml
+++ b/P5/Source/Specs/lb.xml
@@ -32,8 +32,7 @@
-
This example shows topographical line beginning within metrical lines, where they occur at different
- places in different editions:
+
This example shows the encoding of the beginning of each topographic line within metrical lines, where they occur in both the 1667 and 1674 editions:
Of Mans First Disobedience, and the FruitOf that Forbidden Tree, whose mortal tast
@@ -89,15 +88,15 @@ soi-xante & dixhuytiesme livre.
starts. The n attribute, if used, indicates the number or other value associated
with the text between this point and the next lb element, typically the sequence
number of the line within the page, or other appropriate unit. This element is intended to be
- used for marking line beginnings on a manuscript or printed page, at the point where they
+ used for marking the beginning of each line on a manuscript or printed page, at the point where they
occur; it should not be used to tag structural units such as lines of verse (for which the
l element is available) except in circumstances where structural units cannot
otherwise be marked.
The type attribute may be used to characterize the
line beginning in any respect. The more specialized attributes
break, ed, or edRef should be preferred when the
- intent is to indicate whether or not the line
- beginning is word-breaking, or to note the source from which it
+ intent is to indicate whether or not the beginning of a new line
+ is word-breaking, or to note the source from which it
derives.
The target and cRef attributes are mutually exclusive.
+
+
+
Les attributs target et cRef sont exclusifs l'un de l'autre.
+
+
+
属性targetとcRefは、排他的に使用される。
+
+
+
Die target und cRef-Attribute schließen sich gegenseitig aus.
+
diff --git a/P5/Source/Specs/ref.xml b/P5/Source/Specs/ref.xml
index 296d4f14d5..a7c4b12f41 100644
--- a/P5/Source/Specs/ref.xml
+++ b/P5/Source/Specs/ref.xml
@@ -34,7 +34,7 @@
- Only one of the attributes @target' and @cRef' may be supplied on
+ Only one of the attributes @target and @cRef may be supplied on .
From f68f4a845700f6ee2e91690e8e1c19145f6ff1ab Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Tue, 31 Dec 2024 19:06:27 -0500
Subject: [PATCH 13/51] =?UTF-8?q?Improve=20=E2=80=9Clist=E2=80=9D=20of=20a?=
=?UTF-8?q?ttribute=20class=20inclusions=20in=20ST=20(the=20"tei"=20module?=
=?UTF-8?q?).=20No=20changes=20to=20prose=20or=20schema,=20just=20re-arran?=
=?UTF-8?q?ged=20the=20sequence=20of=20attribute=20specifications=20and=20?=
=?UTF-8?q?added=20comments=20to=20explain=20it.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
P5/Source/Guidelines/en/ST-Infrastructure.xml | 363 +++++++++---------
.../detest_xml_schematron.log | 4 +-
2 files changed, 191 insertions(+), 176 deletions(-)
diff --git a/P5/Source/Guidelines/en/ST-Infrastructure.xml b/P5/Source/Guidelines/en/ST-Infrastructure.xml
index f0c449890a..f745f121a9 100644
--- a/P5/Source/Guidelines/en/ST-Infrastructure.xml
+++ b/P5/Source/Guidelines/en/ST-Infrastructure.xml
@@ -74,123 +74,123 @@ with others.-->
section below.
The following table lists the modules defined by the current release of these Guidelines:
-
-
-
- Module name
- Where defined
- Formal public identifier
-
-
- tei
-
- TEI Infrastructure
-
-
- header
-
- Common Metadata
-
-
- core
-
- Common Core
-
-
- textstructure
-
- Default Text Structure
-
-
- gaiji
-
- Character and Glyph Documentation
-
-
- verse
-
- Verse
-
-
- drama
-
- Performance Texts
-
-
- spoken
-
- Transcribed Speech
-
-
- cmc
-
- TEI-CMC
-
-
- dictionaries
-
- Dictionaries
-
-
- msdescription
-
- Manuscript Description
-
-
- transcr
-
- Transcription of Primary Sources
-
-
- textcrit
-
- Text Criticism
-
-
- namesdates
-
- Names, dates, persons and places
-
-
- figures
-
- Tables, Formulæ, Notated Music, Figures
-
-
- corpus
-
- Metadata for Language Corpora
-
-
- linking
-
- Linking, Segmentation, and Alignment
-
-
- analysis
-
- Analysis and Interpretation
-
-
- iso-fs
-
- Feature Structures
-
-
- nets
-
- Graphs, networks, and trees
-
-
- certainty
-
- Certainty and Uncertainty
-
-
- tagdocs
-
- Documentation Elements
-
+
+
+
+ Module name
+ Where defined
+ Formal public identifier
+
+
+ tei
+
+ TEI Infrastructure
+
+
+ header
+
+ Common Metadata
+
+
+ core
+
+ Common Core
+
+
+ textstructure
+
+ Default Text Structure
+
+
+ gaiji
+
+ Character and Glyph Documentation
+
+
+ verse
+
+ Verse
+
+
+ drama
+
+ Performance Texts
+
+
+ spoken
+
+ Transcribed Speech
+
+
+ cmc
+
+ TEI-CMC
+
+
+ dictionaries
+
+ Dictionaries
+
+
+ msdescription
+
+ Manuscript Description
+
+
+ transcr
+
+ Transcription of Primary Sources
+
+
+ textcrit
+
+ Text Criticism
+
+
+ namesdates
+
+ Names, dates, persons and places
+
+
+ figures
+
+ Tables, Formulæ, Notated Music, Figures
+
+
+ corpus
+
+ Metadata for Language Corpora
+
+
+ linking
+
+ Linking, Segmentation, and Alignment
+
+
+ analysis
+
+ Analysis and Interpretation
+
+
+ iso-fs
+
+ Feature Structures
+
+
+ nets
+
+ Graphs, networks, and trees
+
+
+ certainty
+
+ Certainty and Uncertainty
+
+
+ tagdocs
+
+ Documentation Elements
+
For each module listed above, the corresponding chapter gives a full description of the
@@ -555,11 +555,11 @@ Georgie, and Dim, ... </p>
-
-
+
+
-
+
@@ -586,10 +586,10 @@ Georgie, and Dim, ... </p>
document, rather than to control how it should be formatted.
In the TEI scheme, it is possible to supply information about the appearance of
elements within a source document in the following distinct ways:
- One or more properties may be specified as the
- default for a set of elements (based on an external
- scheme, by default CSS), using rendition elements
- and their selector attributes;
+ One or more properties may be specified as the
+ default for a set of elements (based on an external
+ scheme, by default CSS), using rendition elements
+ and their selector attributes;One or more properties may be specified for individual element occurrences,
using the rend attribute with any convenient set of one or more
sequence-indeterminate tokens;
@@ -622,15 +622,15 @@ Georgie, and Dim, ... </p>
by pointing to a bibliographic citation for a quotation to indicate the source from which it derives. The target of the
pointer may be an entry in a bibliographic list of some kind, or a pointer to a digital version of the source itself.
-
As with other TEI pointers, the value of this attribute
- is expressed as any form of URI, for example an absolute
- URL, a relative URL, or a private scheme URI that is
- expanded to a relative or absolute URL as documented in a
- prefixDef. In the following typical example a
- relative bare name URL value is used
- to point to a bibl elsewhere in the bibliography
- of the document which contains a bibliographic source for
- the quotation itself:
+
As with other TEI pointers, the value of this attribute
+ is expressed as any form of URI, for example an absolute
+ URL, a relative URL, or a private scheme URI that is
+ expanded to a relative or absolute URL as documented in a
+ prefixDef. In the following typical example a
+ relative bare name URL value is used
+ to point to a bibl elsewhere in the bibliography
+ of the document which contains a bibliographic source for
+ the quotation itself:
@@ -862,70 +862,85 @@ one, or vice versa, should be done with care.
Attributes of type teidata.word, such as age on
diff --git a/P5/Test/expected-results/detest_xml_schematron.log b/P5/Test/expected-results/detest_xml_schematron.log
index 7a5532c45d..482eddf011 100644
--- a/P5/Test/expected-results/detest_xml_schematron.log
+++ b/P5/Test/expected-results/detest_xml_schematron.log
@@ -1,12 +1,12 @@
The @generatedBy attribute is for use within a <post> element. (ancestor-or-self::tei:post)
The @generatedBy attribute is for use within a <post> element. (ancestor-or-self::tei:post)
-The abbr element should not be categorized in detail with @subtype unless also categorized in general with @type (@type)
-The div element should not be categorized in detail with @subtype unless also categorized in general with @type (@type)
The element indicated by @spanTo (#ds2) must follow the current element delSpan
(id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)])
The element indicated by @spanTo (notMeaningful) must follow the current element delSpan
(id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)])
@schemeVersion can only be used if @scheme is specified. (@scheme and not(@scheme = 'free'))
+The abbr element should not be categorized in detail with @subtype unless also categorized in general with @type (@type)
+The div element should not be categorized in detail with @subtype unless also categorized in general with @type (@type)
@calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this date element has no textual content. (string-length( normalize-space(.) ) gt 0)
The content of a "gloss" list should include a sequence of one or more pairs of a label element followed by an item element (tei:label)
An lg element must contain at least one child l, lg, or gap element. (count(descendant::tei:lg|descendant::tei:l|descendant::tei:gap) > 0)
From 27f3233e9002d9b18fe96bc78e58c50c06cf13a7 Mon Sep 17 00:00:00 2001
From: martindholmes
Date: Fri, 3 Jan 2025 16:15:54 -0800
Subject: [PATCH 14/51] Fixing two typos in links to the bibliography.
---
P5/Source/Guidelines/en/CMC-ComputerMediatedCommunication.xml | 2 +-
P5/Source/Specs/post.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/P5/Source/Guidelines/en/CMC-ComputerMediatedCommunication.xml b/P5/Source/Guidelines/en/CMC-ComputerMediatedCommunication.xml
index 0c6c731815..2e2695e3ac 100644
--- a/P5/Source/Guidelines/en/CMC-ComputerMediatedCommunication.xml
+++ b/P5/Source/Guidelines/en/CMC-ComputerMediatedCommunication.xml
@@ -951,7 +951,7 @@ See the file COPYING.txt for details.
icon-based emoji.
Alternatively, e.g. when w is not regularly used to encode tokens in the TEI
document, c may be used to mark an emoji. For example, the source post Da kostet
- ein Haarschnitt 50 € 😱 (from the corpus , in
+ ein Haarschnitt 50 € 😱 (from the corpus , in
English A haircut there costs 50 € 😱) might be encoded as follows: Da kostet ein Haarschnitt 50 € 😱
diff --git a/P5/Source/Specs/post.xml b/P5/Source/Specs/post.xml
index dae4fc0c32..49818bcc53 100644
--- a/P5/Source/Specs/post.xml
+++ b/P5/Source/Specs/post.xml
@@ -223,7 +223,7 @@ See the file COPYING.txt for details.
timelines, as individual comments following a status update on Facebook pages, as posts
in forum threads, as contributions on Wikipedia talk pages or in the comments section of
a weblog. [Element adopted from the DeRiK schema.
- Aspects of the model adopted from the CoMeRe Schema]. The
+ Aspects of the model adopted from the CoMeRe Schema]. The
post element is a member of the model class model.common (via model.CMC).
This allows for using (and combining) occurrences of post, u,
incident, and kinesicin one and the same div in order to
From 25c29251f6cf6667927b81ae6f25ee25edc282c1 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Mon, 13 Jan 2025 18:41:56 +0000
Subject: [PATCH 15/51] Add reviewers recommended changes
---
P5/Source/Specs/lb.xml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/P5/Source/Specs/lb.xml b/P5/Source/Specs/lb.xml
index 287259b895..4d51431ea6 100644
--- a/P5/Source/Specs/lb.xml
+++ b/P5/Source/Specs/lb.xml
@@ -32,7 +32,7 @@
-
This example shows the encoding of the beginning of each topographic line within metrical lines, where they occur in both the 1667 and 1674 editions:
+
This example shows the encoding of the beginning of each new topographic line within a metrical line, indicating where it occurs in both the 1667 and 1674 editions:
Of Mans First Disobedience, and the FruitOf that Forbidden Tree, whose mortal tast
@@ -57,9 +57,9 @@
-
This example encodes topographical line beginning as a means of
+
This example shows the encoding of the beginning of a new topographical line as a means of
preserving the visual appearance of a title page. The break
- attribute is used to show that the line beginning does not (as elsewhere)
+ attribute is used to show that the beginning of the new line does not (as elsewhere)
mark the start of a new word.
With Additions, ne-ver before Printed.
@@ -88,14 +88,14 @@ soi-xante & dixhuytiesme livre.
starts. The n attribute, if used, indicates the number or other value associated
with the text between this point and the next lb element, typically the sequence
number of the line within the page, or other appropriate unit. This element is intended to be
- used for marking the beginning of each line on a manuscript or printed page, at the point where they
- occur; it should not be used to tag structural units such as lines of verse (for which the
+ used for marking the beginning of each new topographic line on a manuscript or printed page, at the point where it
+ occurs; it should not be used to tag structural units such as lines of verse (for which the
l element is available) except in circumstances where structural units cannot
otherwise be marked.
The type attribute may be used to characterize the
line beginning in any respect. The more specialized attributes
break, ed, or edRef should be preferred when the
- intent is to indicate whether or not the beginning of a new line
+ intent is to indicate whether or not the beginning of the new topographic line
is word-breaking, or to note the source from which it
derives.
From 85533add3ac95a6d23212b7dc5f0241044a2e716 Mon Sep 17 00:00:00 2001
From: martindholmes
Date: Mon, 13 Jan 2025 14:53:47 -0800
Subject: [PATCH 16/51] Fix missing s per @sydb.
---
P5/Source/Guidelines/en/WD-NonStandardCharacters.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
index c6c7c38b0e..4ef5ef9070 100644
--- a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
+++ b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
@@ -1246,7 +1246,7 @@ precinct at Dodona. (L.H. Jeffery Archive)
ΑΣΣΑΙ
The 180-degree rotation around the Y (vertical) axis here
- describes what is happening in the RTL line in boustrophedon; the order of glyphs
+ describes what is happening in the RTL lines in boustrophedon; the order of glyphs
is reversed, and so is their individual orientation (in fact, we see them
from the back, as it were). seg elements
have been used here because these are clearly not lines
From fdb054d3462bea55b5ecaafd31d8c20ac8bc192f Mon Sep 17 00:00:00 2001
From: martindholmes
Date: Mon, 13 Jan 2025 14:53:47 -0800
Subject: [PATCH 17/51] Fix missing s per @sydb.
---
P5/Source/Guidelines/en/WD-NonStandardCharacters.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
index d673231382..389eb05a3a 100644
--- a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
+++ b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
@@ -1246,7 +1246,7 @@ precinct at Dodona. (L.H. Jeffery Archive)
ΑΣΣΑΙ
The 180-degree rotation around the Y (vertical) axis here
- describes what is happening in the RTL line in boustrophedon; the order of glyphs
+ describes what is happening in the RTL lines in boustrophedon; the order of glyphs
is reversed, and so is their individual orientation (in fact, we see them
from the back, as it were). seg elements
have been used here because these are clearly not lines
From d522bf972050109e9c880333139e07871c90fc27 Mon Sep 17 00:00:00 2001
From: sabine seifert
Date: Tue, 14 Jan 2025 01:28:34 +0100
Subject: [PATCH 18/51] Added dateline to att.written (#2644) so that hand
attribute is available
Guessing @trishaoconnor did not notice this one was assigned to her; merging on her behalf tonight so we need not discuss at meeting tomorrow.
---
P5/Source/Specs/dateline.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/P5/Source/Specs/dateline.xml b/P5/Source/Specs/dateline.xml
index a175ace081..14a73025c3 100644
--- a/P5/Source/Specs/dateline.xml
+++ b/P5/Source/Specs/dateline.xml
@@ -25,6 +25,7 @@
+
From 17da6b45cefcc6fee85810660ce5c6d9bb4db421 Mon Sep 17 00:00:00 2001
From: Gustavo Riva
Date: Tue, 14 Jan 2025 01:31:43 +0100
Subject: [PATCH 19/51] Removing conflicting sup css rules in teic.css and
guidelines.css. Adding css rule for a.notelink (#2636)
---
P5/guidelines.css | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/P5/guidelines.css b/P5/guidelines.css
index a00628fdbd..f73cc9f311 100644
--- a/P5/guidelines.css
+++ b/P5/guidelines.css
@@ -630,6 +630,10 @@ div.note ul {
}
span.noteLabel {
}
+a.notelink {
+ text-decoration: none;
+}
+
/* images */
div.figure {
text-align: left;
@@ -812,10 +816,7 @@ span.icon {
font-weight: bold;
font-size: large;
}
-sup {
- vertical-align: top;
- font-size: 70%;
-}
+
/* paragraphs */
p, div.p {
margin-top: 0.3em;
From ba43ca5ca63040579dd77f08e9545228bfd20516 Mon Sep 17 00:00:00 2001
From: Martin Holmes
Date: Tue, 14 Jan 2025 12:01:02 -0800
Subject: [PATCH 20/51] Normalizing Japanese punctuation per issue #2337.
(#2648)
---
P5/Source/Specs/att.patternReplacement.xml | 2 +-
P5/Source/Specs/att.placement.xml | 2 +-
P5/Source/Specs/certainty.xml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/P5/Source/Specs/att.patternReplacement.xml b/P5/Source/Specs/att.patternReplacement.xml
index 1f3d2acd9e..c6bbe969b1 100644
--- a/P5/Source/Specs/att.patternReplacement.xml
+++ b/P5/Source/Specs/att.patternReplacement.xml
@@ -91,7 +91,7 @@
diff --git a/P5/Source/Specs/att.placement.xml b/P5/Source/Specs/att.placement.xml
index 150de792e4..b646fef54c 100644
--- a/P5/Source/Specs/att.placement.xml
+++ b/P5/Source/Specs/att.placement.xml
@@ -42,7 +42,7 @@
in the margin (left, right, or both)dans la marge (gauche, droite ou les deux en même temps)
- 余白(左left, 右right, 左右both)
+ 余白(左left、右right、左右both)on the opposite, i.e. facing, page
diff --git a/P5/Source/Specs/certainty.xml b/P5/Source/Specs/certainty.xml
index c6bbb0494a..d4af7598af 100644
--- a/P5/Source/Specs/certainty.xml
+++ b/P5/Source/Specs/certainty.xml
@@ -241,7 +241,7 @@ ambiguity-free system for indicating certainty.
From ecf0b7ccc850936676f6f14a9d9fb6026d0f628a Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Wed, 15 Jan 2025 19:18:40 -0500
Subject: [PATCH 21/51] Emergency fix: extended lifetime of "context-required"
deprecation warning for 1 month so we do not get errors until after release
next week.
---
P5/Source/Specs/constraintSpec.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Specs/constraintSpec.xml b/P5/Source/Specs/constraintSpec.xml
index b936185206..1495d3fa27 100644
--- a/P5/Source/Specs/constraintSpec.xml
+++ b/P5/Source/Specs/constraintSpec.xml
@@ -63,7 +63,7 @@
-
+
The use of ISO Schematron sch:assert and
sch:report elements without a parent sch:rule
From 536a26751c55ec12d27a09b2d9afa1f441653c86 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 13:12:43 +0000
Subject: [PATCH 22/51] Apply recommended update to att.breaking
---
P5/Source/Specs/att.breaking.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/P5/Source/Specs/att.breaking.xml b/P5/Source/Specs/att.breaking.xml
index c0fa83f533..6a9aa92ce6 100644
--- a/P5/Source/Specs/att.breaking.xml
+++ b/P5/Source/Specs/att.breaking.xml
@@ -46,8 +46,7 @@ of any adjacent whitespace
In the following lines from the
Dream of the Rood,
- line beginnings occur in the middle of the words lāðost
- and reord-berendum.
+ the words lāðost and reord-berendum each start on one line and continue onto the next.
From b2c446511071273ff12dd4261f3f927d208e5fca Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 13:17:06 +0000
Subject: [PATCH 23/51] Apply recommended changes toWD-NonStandardCharacters
---
P5/Source/Guidelines/en/WD-NonStandardCharacters.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
index 389eb05a3a..3e6cee5826 100644
--- a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
+++ b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
@@ -1254,7 +1254,7 @@ precinct at Dodona. (L.H. Jeffery Archive)
are incidental.
There are obviously some unsatisfactory aspects of this manner of encoding
- boustrophedon. In the inscription above, some words run across line beginnings,
+ boustrophedon. In the inscription above, some words are split across two lines,
so if we wished to tag both words and the right-to-left phenomena, one
hierarchy would have to be privileged over the other. By using a transform
function rather than a writing mode property, we are apparently suggesting
From 5f2fedfca56cfef268a8c7aceae724d4e3b72cd3 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 13:20:08 +0000
Subject: [PATCH 24/51] Apply recommended changes toWD-NonStandardCharacters
---
P5/Source/Guidelines/en/WD-NonStandardCharacters.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
index 3e6cee5826..72942a5ca4 100644
--- a/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
+++ b/P5/Source/Guidelines/en/WD-NonStandardCharacters.xml
@@ -1250,8 +1250,7 @@ precinct at Dodona. (L.H. Jeffery Archive)
is reversed, and so is their individual orientation (in fact, we see them
from the back, as it were). seg elements
have been used here because these are clearly not lines
- in the sense of poetic lines; the text is continuous prose, and line beginnings
- are incidental.
+ in the sense of poetic lines; the text is continuous prose, and the division into separate lines is incidental.
There are obviously some unsatisfactory aspects of this manner of encoding
boustrophedon. In the inscription above, some words are split across two lines,
From eaa34d6aa1c77752317febba2eec9ee1f271940b Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 18:23:54 +0000
Subject: [PATCH 25/51] Applied recommended changes to CO-CoreElements
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 23 ++++++++++-----------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index 974aadb202..9078dba78a 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -329,7 +329,7 @@ problem for text encoders. Suppose, for example, that we wish to
investigate a diachronic English corpus for occurrences of
tea-pot and teapot, to
find evidence for the point at which this compound becomes
-lexicalized. Any case where the word is hyphenated across a line beginning,
+lexicalized. Any case where the word is hyphenated across a line division,
like this: is
ambiguous: there is no simple way of deciding which of the two
@@ -384,7 +384,7 @@ exceptions to this general rule, since their function is precisely to
represent (or replace) line, page, or column beginnings, which, as noted
above, are generally considered to be equivalent to whitespace. These
elements provide a more reliable way of preserving the lineation,
-pagination, etc of a source document, since the encoder should not
+pagination, etc. of a source document, since the encoder should not
assume that (untagged) line beginnings etc. in an XML source file will
necessarily be preserved.
@@ -3492,11 +3492,11 @@ section and in section .
When a text has no pre-existing associated reference system of any
kind, these Guidelines recommend as a minimum that at least the page
boundaries of the source text be marked using one of the methods
-outlined in this section. Retaining page beginnings in the markup is also
+outlined in this section. Retaining page boundaries in the markup is also
recommended for texts which have a detailed reference system of their
-own. Line beginnings in prose texts may be, but need not be, tagged.Many encoders find it convenient to retain the line
- beginnings of the original during data entry, to simplify proofreading,
- but this may be done without inserting a tag for each line beginning of
+own. Line divisions in prose texts may be, but need not be, encoded.Many encoders find it convenient to retain the line
+ divisions of the original during data entry, to simplify proofreading,
+ but this may be done without inserting an element for the beginning of each line in
the original.
Using the xml:id and n Attributes
When traditional reference schemes represent a hierarchical
@@ -3900,7 +3900,7 @@ treated as a single word, a tagging such as the following is recommended:
...sed imperator dixit...
- Where hyphenation appears before a line or page beginning, the encoder may
+ Where hyphenation appears at the end of a topographic line, a column, or a page, the encoder may
or may not choose to record the fact, either explicitly using an
appropriate Unicode character, or descriptively for example by means
of the rend attribute; see further .
@@ -5645,13 +5645,13 @@ metrical rather than typographic lines. In some modern or free verse,
it may be hard to decide whether the typographic line is to be
regarded as a verse line or not, but the distinction is quite clear
for verse following regular metrical patterns. Where a metrical line is
-interrupted by a typographic line beginning, the encoder may choose to
+interrupted by the start of a new typographic line, the encoder may choose to
ignore the fact entirely or to use the empty lb (line beginning)
element discussed in . By convention, the start
of a metrical line implies the start of a typographic line; hence
there is no need to introduce an lb tag at the start of every
l element, but only at places where a new typographic line
-starts within a metrical line, as in the following example:
+starts within a metrical line, as in the following example:
Of Mans First Disobedience, and the Fruit
@@ -5664,14 +5664,13 @@ starts within a metrical line, as in the following example:
In the original copy text, the presence of an ornamental capital at
the start of the poem means that the measure is not wide enough to
print the first four lines on four lines; instead each metrical line occupies
-two typographic lines, with a beginning at the point indicated. Note that
+two typographic lines, with the second beginning at the point indicated. Note that
this encoding makes no attempt to preserve information about the
whitespace or indentation associated with either kind of line; if regarded
as essential, this information would be recorded using the
rend or rendition attributes discussed in .
The l element should not be used to represent typographic
- lines in non-verse materials: if the line-beginninging points in a prose
-text are considered important for analysis, they should be marked with
+ lines in non-verse materials: if the lineation of a prose text is considered important for analysis, the beginning of each line should be marked with
the lb element. Alternatively, a neutral segmentation element
such as seg or ab may be used; see further
discussion of these elements in chapter . The
From 324be445e1c6109e58fa3c9dc74e8df624866cc9 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 19:28:10 +0000
Subject: [PATCH 26/51] Applied recommended changes to DI-PrintDictionaries
---
P5/Source/Guidelines/en/DI-PrintDictionaries.xml | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/P5/Source/Guidelines/en/DI-PrintDictionaries.xml b/P5/Source/Guidelines/en/DI-PrintDictionaries.xml
index 592c27433a..3db2df4a11 100644
--- a/P5/Source/Guidelines/en/DI-PrintDictionaries.xml
+++ b/P5/Source/Guidelines/en/DI-PrintDictionaries.xml
@@ -2227,8 +2227,7 @@ following three, which help to clarify some issues raised with particular urgenc
dictionaries, on account of the complexity of both their typography and their
information structure.(a) the typographic view—the
- two-dimensional printed page, including information about line and page beginnings
-and other features of layout
+ two-dimensional printed page, including information about lineation, pagination, and other features of layout
(b) the editorial view—the one-dimensional sequence of tokens
which can be seen as the input to the typesetting process; the wording and
punctuation of the text and the sequencing of items are visible in this view,
@@ -2243,7 +2242,7 @@ therefore hyphenated (naut-ical); the typographic view of the dictionary preserves this information. In a
purely editorial view, the particular form in which the domain name is given in the
particular dictionary (as nautical, rather than naut., Naut., etc.)
- would be preserved, but the fact of the line beginning would not. Font shifts might
+ would be preserved, but the fact that the word was split across two lines with a soft hyphen would not. Font shifts might
plausibly be included in either a strictly typographic or an editorial view. In the
lexical view, the only information preserved concerning domain would be some standard
symbol or string representing the nautical domain (e.g. naut.) regardless of the
From 65d9eac6b922529bb50e857f081dd0d4bde3f7fa Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 19:33:26 +0000
Subject: [PATCH 27/51] Applied recommended changes to DS-DefaultTextStructure
---
P5/Source/Guidelines/en/DS-DefaultTextStructure.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml b/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml
index f3e14eba2f..04d80c2df2 100644
--- a/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml
+++ b/P5/Source/Guidelines/en/DS-DefaultTextStructure.xml
@@ -1731,7 +1731,7 @@ transcription):
- Note that if the page beginnings in the original source have also been
+ Note that if the pagination in the original source have also been
explicitly encoded, and given identifiers, the references to them in the
above index can more usefully be recorded as links. For example,
assuming that the encoding of page 461 of the original source starts
From 0ae161d1eee70f1d1b1334782a50da1e3b5c95bc Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 19:41:41 +0000
Subject: [PATCH 28/51] Applied recommended changes to
FT-TablesFormulaeGraphics
---
P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml b/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml
index 5090a7ddd6..f3280c6f14 100644
--- a/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml
+++ b/P5/Source/Guidelines/en/FT-TablesFormulaeGraphics.xml
@@ -255,7 +255,7 @@ this is rarely if ever done in practice.
The content of table elements is not limited to head and
row. Milestone elements such as cb and lb
- allow beginnings to be signalled inside tables; figure provides an
+ allow new columns or lines to be signalled inside tables; figure provides an
option for including data which is not amenable to normal row and cell
analysis; and other elements such as epigraph and
trailer provide options for including text which is clearly
From f7faf259813bb2392b4373e476e82526ffd549f6 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 19:59:46 +0000
Subject: [PATCH 29/51] Applied recommended changes to PH-PrimarySources
---
P5/Source/Guidelines/en/PH-PrimarySources.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/P5/Source/Guidelines/en/PH-PrimarySources.xml b/P5/Source/Guidelines/en/PH-PrimarySources.xml
index ba46321e3f..d5537dc13c 100644
--- a/P5/Source/Guidelines/en/PH-PrimarySources.xml
+++ b/P5/Source/Guidelines/en/PH-PrimarySources.xml
@@ -749,8 +749,8 @@ used to define a polygon of any shape using this coordinate system:-->
chapter provides ways of encoding such information: methods of recording editorial or other alterations to the text, such as expansion
of abbreviations, corrections, conjectures, etc. (section )
- methods of describing important extra-linguistic phenomena in the source: unusual
- spaces, lines, page and line beginnings, changes of manuscript hand, etc. (section )
+ methods of describing important extra-linguistic phenomena in the source: pagination, lineation, unusual
+ spaces, changes of manuscript hand, etc. (section )methods of representing aspects of layout such as spacing or lines methods of representing material such as running heads, catch-words, and the like
@@ -2549,9 +2549,9 @@ referring to the zone marked in purple on the right
-->
This approach assumes that the transcription will primarily be organized in the same way as
the physical layout of the source, using embedded transcription elements. Alternatively,
- where the a non-embedded transcription has been provided, using the text element,
+ where a non-embedded transcription has been provided, using the text element,
it is still possible to record gathering beginnings, page beginnings, column beginnings, line beginnings
- etc in the source, using the elements described in section . Detailed
+ etc. in the source, using the elements described in section . Detailed
metadata about the physical make-up of a source will usually be summarized by the
physDesc component of an msDesc element discussed in .
From 8618a90b37232067bf4326cba7e817a25421574b Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 20:11:55 +0000
Subject: [PATCH 30/51] Applied recommended changes to SG-GentleIntroduction
---
P5/Source/Guidelines/en/SG-GentleIntroduction.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/P5/Source/Guidelines/en/SG-GentleIntroduction.xml b/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
index 9d8e9faec5..3f4bf976cf 100644
--- a/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
+++ b/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
@@ -229,7 +229,7 @@ forth. And for certain types of analysis (most notably textual
criticism) the physical appearance of one particular printed or
manuscript source may be of importance: paradoxically, one may wish to
use descriptive markup to describe presentational features such as
-typeface, line beginnings, use of whitespace and so forth.
+typeface, original topographic lineation, use of whitespace and so forth.
These textual structures overlap with one another in complex and
unpredictable ways. Particularly when dealing with texts as
@@ -346,7 +346,7 @@ document.The element names here have been chosen for
clarity of exposition; there is, however, a TEI element corresponding to
each. It will, however, serve as an introduction to the basic notions of XML.
- Whitespace and line beginnings have been added to the example for the
+ Whitespace and line divisions have been added to the example for the
sake of visual clarity only; they have no particular significance in the
XML encoding itself. Also, the line
]]>
@@ -1256,8 +1256,8 @@ only so that it can be clearly distinguished from the
structure of the document. As suggested above, one common example is
the need, when processing an XML document for printed output, to
include a suggestion that the formatting processor might use to
-determine where to begin a new page of output. Page-beginning decisions
-are usually best made by the formatting engine alone, but there will
+determine where to begin a new page of output. It is generally best
+to leave pagination of the output to the formatting engine alone, but there will
always be occasions when it may be necessary to override these. An XML
processing instruction inserted into the document is one very simple
and effective way of doing this without interfering with other aspects
From 169067ce5bde0bd94f3a909e8a784ed18579dbbb Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Thu, 16 Jan 2025 20:23:57 +0000
Subject: [PATCH 31/51] Changed 'beginning' back to 'break' in model.xml and
param.xml
---
P5/Source/Specs/model.xml | 2 +-
P5/Source/Specs/param.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/P5/Source/Specs/model.xml b/P5/Source/Specs/model.xml
index 58cfb725e5..aaab06d5db 100644
--- a/P5/Source/Specs/model.xml
+++ b/P5/Source/Specs/model.xml
@@ -100,7 +100,7 @@
- create a line, column, or page beginning
+ create a line, column, or page break
according to the value of type
diff --git a/P5/Source/Specs/param.xml b/P5/Source/Specs/param.xml
index ee46d015ee..543e100992 100644
--- a/P5/Source/Specs/param.xml
+++ b/P5/Source/Specs/param.xml
@@ -72,7 +72,7 @@
a parameter of this name can be used to
- categorize the specified behaviour in any way; for example the kind of beginning (when used
+ categorize the specified behaviour in any way; for example the kind of break (when used
with the break behaviour) or the kind of index to be generated (if used
with the index behaviour) etc.
From dafd5e5cf1fcbde6da9971f3a3a4bdea532dcd70 Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Thu, 16 Jan 2025 18:00:35 -0500
Subject: [PATCH 32/51] First pass at addressing #2392.
Made bibl, biblFull, and biblStruct members of att.canonical. Ajusted the guidelines to reflect this addition and clarified uses of bibl vs ref.
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 15 +++++++++++++--
P5/Source/Specs/bibl.xml | 1 +
P5/Source/Specs/biblFull.xml | 1 +
P5/Source/Specs/biblStruct.xml | 1 +
4 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index 7df83faa4f..e3b31c8adf 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4201,6 +4201,17 @@ encoding of short-form references such as Baxter,
1983 is not as bibl elements but as
cross-references to such elements; see section
below.
+
+ Bibliographic references encoded with bibl, biblFull, and biblStruct may use the attributes defined in att.canonical: ref and key. The ref may be used to point to a more detailed definition, either within or outside the TEI document, as shown in the following example:
+
+ The song of Achilles by Madeline Miller.
+
+ The key attribute, on the other hand, links a bibliographical reference to an externally- or project-defined identifier as demonstrated here:
+
+ Book 16 of Homer's Iliad.
+
+ These attributes should not be used for encoding bibliographic pointers (short-form citations); for that purpose, see section below.
+
In cases where the encoder wishes to impose more structure on the
bibliographic information, for example to make sure it conforms to a
particular stylesheet or retrieval processor, the biblStruct
@@ -5476,8 +5487,8 @@ following example:
normalize bibliographic references: Nelson claims (Nelson [1980] pages 13–37)
...
If it is desired to capture additional information like this in a short-form
- reference, then bibl may be used with the corresp attribute pointing to
- the full bibliographic reference: Nelson claims (Nelson [1980] pages 13–37) ...
+ reference, then bibl may be used with the ref attribute pointing to
+ the full bibliographic reference: Nelson claims (Nelson [1980] pages 13–37) ...
The ref element may also be used to provide a reference to a copy of the bibliographic item itself, particularly if this is available online, as in the following example:
diff --git a/P5/Source/Specs/bibl.xml b/P5/Source/Specs/bibl.xml
index 0ee30b97b8..33d96dbe49 100644
--- a/P5/Source/Specs/bibl.xml
+++ b/P5/Source/Specs/bibl.xml
@@ -25,6 +25,7 @@
ausgezeichnet sein können.
+
diff --git a/P5/Source/Specs/biblFull.xml b/P5/Source/Specs/biblFull.xml
index c65a5a3260..a227844da7 100644
--- a/P5/Source/Specs/biblFull.xml
+++ b/P5/Source/Specs/biblFull.xml
@@ -23,6 +23,7 @@
strutturata nella quale sono presenti tutti i componenti di descrizione di un file TEI.
+
diff --git a/P5/Source/Specs/biblStruct.xml b/P5/Source/Specs/biblStruct.xml
index 49e90392f6..afc179e706 100644
--- a/P5/Source/Specs/biblStruct.xml
+++ b/P5/Source/Specs/biblStruct.xml
@@ -22,6 +22,7 @@
contenere solo altri elemento nell'ordine specificato.
+
From ae075cc6f93be0eaab46e59b2aee80256c4c6cd2 Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Thu, 16 Jan 2025 20:33:32 -0500
Subject: [PATCH 33/51] prose adjustments. Refs #2392
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index e3b31c8adf..fbb8cfa9b7 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4202,7 +4202,7 @@ encoding of short-form references such as Baxter,
cross-references to such elements; see section
below.
- Bibliographic references encoded with bibl, biblFull, and biblStruct may use the attributes defined in att.canonical: ref and key. The ref may be used to point to a more detailed definition, either within or outside the TEI document, as shown in the following example:
+ Bibliographic references encoded with bibl, biblFull, and biblStruct may link to a likely more detailed bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref may be used to point to a definition either within or outside the TEI document, as shown in the following example:
The song of Achilles by Madeline Miller.
From bb8cd4a343a4404e7d3b21007bed78f162d8122e Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Thu, 16 Jan 2025 20:41:08 -0500
Subject: [PATCH 34/51] replaced and with or. Refs #2392
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index fbb8cfa9b7..9b73dc6d5e 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4202,7 +4202,7 @@ encoding of short-form references such as Baxter,
cross-references to such elements; see section
below.
- Bibliographic references encoded with bibl, biblFull, and biblStruct may link to a likely more detailed bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref may be used to point to a definition either within or outside the TEI document, as shown in the following example:
+ Bibliographic references encoded with bibl, biblFull, or biblStruct may link to a likely more detailed bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref may be used to point to a definition either within or outside the TEI document, as shown in the following example:
The song of Achilles by Madeline Miller.
From d3cab2271e2a2a4d82568bcb6bfd92501823c8d7 Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Thu, 16 Jan 2025 21:42:06 -0500
Subject: [PATCH 35/51] Removed links back to text in footnote and bibliography
popups. Also removed dependency on jQuery for this script.
---
P5/webnav/popupFootnotes.js | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/P5/webnav/popupFootnotes.js b/P5/webnav/popupFootnotes.js
index 9c4a8ddf41..accd2f5a01 100644
--- a/P5/webnav/popupFootnotes.js
+++ b/P5/webnav/popupFootnotes.js
@@ -10,8 +10,8 @@
var footnotePopupContent = null;
var biblFrame = null;
-$(document).ready(function(){
-//First we create a popup box ready to receive the footnotes.
+
+document.addEventListener("DOMContentLoaded", function() {
footnotePopup = document.createElement('div');
footnotePopup.setAttribute('id', 'footnotePopup');
var closer = document.createElement('div');
@@ -49,6 +49,8 @@ function showPopupFootnote(footnoteId){
var cloneFootnote = footnote.cloneNode(true);
//We need to remove the id because it'll be a duplicate.
cloneFootnote.setAttribute('id', '');
+ // Also remove links back to the text because they are not needed in popups.
+ cloneFootnote.querySelectorAll("a.link_return").forEach(function(a) {a.parentElement.removeChild(a)});
//Add it to the popup.
clearContent(footnotePopupContent);
footnotePopupContent.appendChild(cloneFootnote);
@@ -63,14 +65,15 @@ function clearContent(targetEl){
}
//Bind the escape key so that it hides the popup if it's showing.
-$(document).keyup(function(e){
- if(e.keyCode === 27)
+document.addEventListener("keyup", function(e) {
+ if(e.keyCode === 27) {
if (document.getElementById('footnotePopup').style.display == 'block'){
document.getElementById('footnotePopup').style.display = 'none';
e.preventDefault();
e.stopPropagation();
}
-});
+ }
+})
//These functions set up and handle the display of bibliographical references
//as popups.
@@ -78,7 +81,7 @@ $(document).keyup(function(e){
//This function finds all links to items in the bibliography and turns them
//into JS calls which retrieve the content which has been imported into
//an iframe, and display it as a popup.
-function setupBiblPopups (){
+function setupBiblPopups () {
var links = document.getElementsByTagName('a');
for (var i=0; i
Date: Thu, 16 Jan 2025 21:49:38 -0500
Subject: [PATCH 36/51] further adjustments to prose
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index 9b73dc6d5e..43108c3b42 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4202,7 +4202,7 @@ encoding of short-form references such as Baxter,
cross-references to such elements; see section
below.
- Bibliographic references encoded with bibl, biblFull, or biblStruct may link to a likely more detailed bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref may be used to point to a definition either within or outside the TEI document, as shown in the following example:
+ Bibliographic references encoded with bibl, biblFull, or biblStruct may link to a another, likely more detailed, bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref attribute performs this linking function using a URI that may point either within or outside the TEI document, as shown in the following example:
The song of Achilles by Madeline Miller.
From 36ac5b8fc7f11dc7a4a6a801a37a874e4a43c883 Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Fri, 17 Jan 2025 20:47:22 -0500
Subject: [PATCH 37/51] removed javascript dependencies. Improved popup
positioning
---
P5/webnav/bootstrap.bundle.min.js | 7 -
P5/webnav/bootstrap.bundle.min.js.map | 1 -
P5/webnav/jquery-3.7.0.min.js | 2 -
P5/webnav/jquery.treeview.js | 251 --------------------------
P5/webnav/popupFootnotes.js | 29 ++-
5 files changed, 22 insertions(+), 268 deletions(-)
delete mode 100644 P5/webnav/bootstrap.bundle.min.js
delete mode 100644 P5/webnav/bootstrap.bundle.min.js.map
delete mode 100644 P5/webnav/jquery-3.7.0.min.js
delete mode 100644 P5/webnav/jquery.treeview.js
diff --git a/P5/webnav/bootstrap.bundle.min.js b/P5/webnav/bootstrap.bundle.min.js
deleted file mode 100644
index e8f21f703f..0000000000
--- a/P5/webnav/bootstrap.bundle.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v5.3.1 (https://getbootstrap.com/)
- * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:""},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'
',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'
The key attribute, on the other hand, links a bibliographical reference to an externally- or project-defined identifier as demonstrated here:
- Book 16 of Homer's Iliad.
+ Book 16 of Homer's Iliad.
These attributes should not be used for encoding bibliographic pointers (short-form citations); for that purpose, see section below.
From d87af1fa81520214994b003e354c51cfc0281fe2 Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Sat, 18 Jan 2025 13:38:06 -0500
Subject: [PATCH 39/51] Replaced likely with possibly
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index d24b8973c0..ee38da3501 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4202,7 +4202,7 @@ encoding of short-form references such as Baxter,
cross-references to such elements; see section
below.
- Bibliographic references encoded with bibl, biblFull, or biblStruct may link to a another, likely more detailed, bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref attribute performs this linking function using a URI that may point either within or outside the TEI document, as shown in the following example:
+ Bibliographic references encoded with bibl, biblFull, or biblStruct may link to a another, possibly more detailed, bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref attribute performs this linking function using a URI that may point either within or outside the TEI document, as shown in the following example:
The song of Achilles by Madeline Miller.
From 62fdd0906de56835b3f799613af6d7239bb03c3f Mon Sep 17 00:00:00 2001
From: Raff Viglianti
Date: Sat, 18 Jan 2025 14:29:17 -0500
Subject: [PATCH 40/51] Fixed typo
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index ee38da3501..3d48f9131a 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4202,7 +4202,7 @@ encoding of short-form references such as Baxter,
cross-references to such elements; see section
below.
- Bibliographic references encoded with bibl, biblFull, or biblStruct may link to a another, possibly more detailed, bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref attribute performs this linking function using a URI that may point either within or outside the TEI document, as shown in the following example:
+ Bibliographic references encoded with bibl, biblFull, or biblStruct may link to another, possibly more detailed, bibliographic reference to the same resource using either the attribute ref or key defined in att.canonical. The ref attribute performs this linking function using a URI that may point either within or outside the TEI document, as shown in the following example:
The song of Achilles by Madeline Miller.
From 5972b28f67336b20a172d5bc226b21f6c6a5f47e Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Sun, 19 Jan 2025 23:08:42 -0500
Subject: [PATCH 41/51] Impliment @hcayless solution #1
---
P5/Source/Specs/att.spanning.xml | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/P5/Source/Specs/att.spanning.xml b/P5/Source/Specs/att.spanning.xml
index 127a2d2185..64039d3cf7 100644
--- a/P5/Source/Specs/att.spanning.xml
+++ b/P5/Source/Specs/att.spanning.xml
@@ -5,15 +5,13 @@
provides attributes for elements which delimit a span of text by pointing mechanisms rather than by enclosing it.포함보다는 포인터 메카니즘을 통하여 구분된 텍스트 구간을 나타내는 요소의 속성을 제공한다.提供元素的屬性,這些元素使用參照機制來限定某一文字段,而非包含此文字段。
- テキスト幅の範囲を内容としてではなく参照機能を使って示す要素に付与さ
- れる属性を示す。
+ テキスト幅の範囲を内容としてではなく参照機能を使って示す要素に付与さ れる属性を示す。fournit des attributs pour les éléments qui délimitent un passage de texte par des mécanismes de pointage plutôt qu'en entourant le passage.proporciona atributos para elementos que delimitan un fragmento de texto utilizando los señalizadores en lugar de cerrando el texto.assegna degli attributi agli elementi che delimitano una porzione di testo utilizzando dei puntatori invece di racchiudere il testo stesso
- indicates the end of a span initiated by the element
- bearing this attribute.
+ indicates the end of a span initiated by the element bearing this attribute.이 속성을 포함하는 요소에 의해 시작된 구간의 끝을 나타낸다.指出文字段的結尾,該文字段以帶有此屬性的元素開頭。当該要素が示す範囲の終点を示す。
@@ -22,12 +20,11 @@
indica la fine della porzione di testo che ha inizio con l'elemento a cui è assegnato l'attributo
- The @spanTo attribute must point to an element following the
- current element
+ The @spanTo attribute must point to an element following the current element; however, this can only be tested if both this element and the one pointed to are in the same document.
-
-
-The element indicated by @spanTo () must follow the current element
+
+
+ The element indicated by @spanTo () must follow the current element
@@ -36,15 +33,15 @@ The element indicated by @spanTo () must follow
The span is defined as running in document order from the start
- of the content of the pointing element to the end of the
+ of the content of the pointing element to the end of the
content of the element pointed to by the spanTo attribute (if
any). If no value is supplied for the attribute, the assumption is that the span is
coextensive with the pointing element. If no content is present,
the assumption is that the starting point of the span is
- immediately following the element itself.
+ immediately following the element itself.
-
Le passage est défini comme courant depuis le début du contenu de l'élément pointeur (s'il y en a un) jusqu'à la fin du contenu de l'élément
+
Le passage est défini comme courant depuis le début du contenu de l'élément pointeur (s'il y en a un) jusqu'à la fin du contenu de l'élément
pointé par l'attribut spanTo (s'il y en a un), dans l'ordre du document. Si aucune valeur n'est fournie pour l'attribut, il est entendu
que le passage est de même étendue que l'élément pointeur.
From 371266e8113f269e59244f56e87e253c89200251 Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Sun, 19 Jan 2025 23:41:03 -0500
Subject: [PATCH 42/51] Ack! Forgot to update tests to match.
---
P5/Test/detest.xml | 2 +-
P5/Test/expected-results/detest_xml_schematron.log | 5 +----
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/P5/Test/detest.xml b/P5/Test/detest.xml
index 8e2b4719d1..0566ec5597 100644
--- a/P5/Test/detest.xml
+++ b/P5/Test/detest.xml
@@ -135,7 +135,7 @@
This one doesn't but that's also OK.
That one (just to my left) is illegal
as is that one
- and that one
+ but that one will not be reported either way
diff --git a/P5/Test/expected-results/detest_xml_schematron.log b/P5/Test/expected-results/detest_xml_schematron.log
index 482eddf011..6c3c4eda7e 100644
--- a/P5/Test/expected-results/detest_xml_schematron.log
+++ b/P5/Test/expected-results/detest_xml_schematron.log
@@ -1,9 +1,6 @@
The @generatedBy attribute is for use within a <post> element. (ancestor-or-self::tei:post)
The @generatedBy attribute is for use within a <post> element. (ancestor-or-self::tei:post)
- The element indicated by @spanTo (#ds2) must follow the current element delSpan
- (id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)])
- The element indicated by @spanTo (notMeaningful) must follow the current element delSpan
- (id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)])
+ The element indicated by @spanTo (#ds2) must follow the current delSpan element (id( substring( @spanTo, 2 ) ) >> .)
@schemeVersion can only be used if @scheme is specified. (@scheme and not(@scheme = 'free'))
The abbr element should not be categorized in detail with @subtype unless also categorized in general with @type (@type)
The div element should not be categorized in detail with @subtype unless also categorized in general with @type (@type)
From fb8a4a48550af99c0cba76f5b19220a34afcf907 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Mon, 20 Jan 2025 10:00:52 +0000
Subject: [PATCH 43/51] Added missing Oxford comma
---
P5/Source/Guidelines/en/SG-GentleIntroduction.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/SG-GentleIntroduction.xml b/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
index 3f4bf976cf..2c349634a9 100644
--- a/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
+++ b/P5/Source/Guidelines/en/SG-GentleIntroduction.xml
@@ -229,7 +229,7 @@ forth. And for certain types of analysis (most notably textual
criticism) the physical appearance of one particular printed or
manuscript source may be of importance: paradoxically, one may wish to
use descriptive markup to describe presentational features such as
-typeface, original topographic lineation, use of whitespace and so forth.
+typeface, original topographic lineation, use of whitespace, and so forth.
These textual structures overlap with one another in complex and
unpredictable ways. Particularly when dealing with texts as
From 861b9baa42709c27dc9a252c12940e0ddc578e3b Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Mon, 20 Jan 2025 10:18:48 +0000
Subject: [PATCH 44/51] Rewrite line beginning section
---
P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml b/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml
index 2400b0218e..78df2218dd 100644
--- a/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml
+++ b/P5/Source/Guidelines/en/CH-LanguagesCharacterSets.xml
@@ -410,7 +410,7 @@ dates, and predefined value lists.
depends largely on the purpose, external requirements, local
equipment and so forth, it is thus outside the scope of coverage
for these Guidelines.
-
It might however nevertheless be helpful to put some of the
+
It might nevertheless be helpful to put some of the
terminology used for the rendering process in the context of the
discussion of this chapter. As was mentioned above, Unicode
encodes abstract characters, not specific glyphs. For any
@@ -421,12 +421,12 @@ dates, and predefined value lists.
and which areas have to be left blank. If we want to print a character
from the Latin script, besides the selection of
the overall glyph shape, this process also requires that a
- specific weight of the font has been selected, a specific size
+ specific weight and size of the font has been selected,
and to what degree the shape should be slanted. Beyond
individual characters, the overall typesetting process also
- follows specific rules of how to calculate the distance between
- characters, how much whitespace occurs between words, at which
- points line beginnings might occur and so forth.
+ follows specific rules for calculating the distance between
+ characters, for determining how much whitespace occurs between any two words, and how long each line should be (and thus at which
+ points a new line begins), and so forth.
If we concern ourselves only with the rendering process of the
characters themselves, leaving out all these other parameters, we
will realize that of all the information required for this process, only a small
From 14e2fbb7179e04a054514f5ca8c99b7b7ce037c8 Mon Sep 17 00:00:00 2001
From: Patricia O Connor
Date: Mon, 20 Jan 2025 11:06:38 +0000
Subject: [PATCH 45/51] Change linebreaks to line divisions
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index 9078dba78a..f5485697fd 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -2696,7 +2696,7 @@ appropriate value for the rend attribute. Suggested values
for rend include:
bulleted (items preceded by bullets or similar markings)
- inline (items rendered within continuous prose, with no linebreaks)
+ inline (items rendered within continuous prose, with no line divisions)numbered (items preceded by numbers or letters)simple (items rendered as blocks, but with no bullet or number)
From 815787687c8815c2e99ebe6bcac53f840ceadcbb Mon Sep 17 00:00:00 2001
From: martindholmes
Date: Mon, 20 Jan 2025 08:46:07 -0800
Subject: [PATCH 46/51] Remove space in the middle of a word.
---
P5/Source/Specs/att.spanning.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Specs/att.spanning.xml b/P5/Source/Specs/att.spanning.xml
index 64039d3cf7..3a321bae48 100644
--- a/P5/Source/Specs/att.spanning.xml
+++ b/P5/Source/Specs/att.spanning.xml
@@ -5,7 +5,7 @@
provides attributes for elements which delimit a span of text by pointing mechanisms rather than by enclosing it.포함보다는 포인터 메카니즘을 통하여 구분된 텍스트 구간을 나타내는 요소의 속성을 제공한다.提供元素的屬性,這些元素使用參照機制來限定某一文字段,而非包含此文字段。
- テキスト幅の範囲を内容としてではなく参照機能を使って示す要素に付与さ れる属性を示す。
+ テキスト幅の範囲を内容としてではなく参照機能を使って示す要素に付与される属性を示す。fournit des attributs pour les éléments qui délimitent un passage de texte par des mécanismes de pointage plutôt qu'en entourant le passage.proporciona atributos para elementos que delimitan un fragmento de texto utilizando los señalizadores en lugar de cerrando el texto.assegna degli attributi agli elementi che delimitano una porzione di testo utilizzando dei puntatori invece di racchiudere il testo stesso
From 3c89ad9f2785b63dee2a86826f35783c191d63e3 Mon Sep 17 00:00:00 2001
From: Klaus Rettinghaus
Date: Mon, 20 Jan 2025 20:04:42 +0100
Subject: [PATCH 47/51] fix: restore lost value (#2579)
---
P5/Source/Specs/gap.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Specs/gap.xml b/P5/Source/Specs/gap.xml
index 271a355eea..5d178d8be4 100644
--- a/P5/Source/Specs/gap.xml
+++ b/P5/Source/Specs/gap.xml
@@ -49,7 +49,7 @@
누락의 이유를 제시한다. 그 값의 예들은 다음과 같다: sampling,
illegible, inaudible, irrelevant, cancelled,
cancelled and illegible
- 說明省略的原因。屬性值的例子有sampling、、inaudible、irrelevant、cancelled、cancelled
+ 說明省略的原因。屬性值的例子有sampling、illegible、inaudible、irrelevant、cancelled、cancelled
and illegible。省略の理由を示す。例えば、 見本、聞こえない、
無関係、取り消し、取り消しがありかつ判読できない、など。
From 1b3b00a0160164023e5ac3e15cf25f1baae3d9ae Mon Sep 17 00:00:00 2001
From: ebeshero
Date: Mon, 20 Jan 2025 15:55:29 -0500
Subject: [PATCH 48/51] small phrasing revision in CO
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index 3d48f9131a..cacbc3ce0b 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4206,7 +4206,7 @@ below.
The song of Achilles by Madeline Miller.
- The key attribute, on the other hand, links a bibliographical reference to an externally- or project-defined identifier as demonstrated here:
+ The key attribute, on the other hand, associates a bibliographical reference to an external or project-defined identifier as demonstrated here:
Book 16 of Homer's Iliad.
From c5e31b1aba976d012c2302217b07b076b788d7f0 Mon Sep 17 00:00:00 2001
From: ebeshero
Date: Mon, 20 Jan 2025 15:57:45 -0500
Subject: [PATCH 49/51] one more tiny phrasing revision to CO re #2392
---
P5/Source/Guidelines/en/CO-CoreElements.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Source/Guidelines/en/CO-CoreElements.xml b/P5/Source/Guidelines/en/CO-CoreElements.xml
index cacbc3ce0b..72cf611fe3 100644
--- a/P5/Source/Guidelines/en/CO-CoreElements.xml
+++ b/P5/Source/Guidelines/en/CO-CoreElements.xml
@@ -4206,7 +4206,7 @@ below.
The song of Achilles by Madeline Miller.
- The key attribute, on the other hand, associates a bibliographical reference to an external or project-defined identifier as demonstrated here:
+ The key attribute, on the other hand, associates a bibliographical reference with an external or project-defined identifier as demonstrated here:
Book 16 of Homer's Iliad.
From 4bd774d375a576297aceb996c227beff48cce7d2 Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Sat, 18 May 2024 23:47:13 -0400
Subject: [PATCH 50/51] Rebased (with several manual merges and a fix to
expected results) of: Address #2497: * Updated Schematron as per issue *
Added a test to detest.xml * Updated expected results to match new test file
---
P5/Source/Specs/ab.xml | 10 +-
P5/Source/Specs/div.xml | 10 +-
P5/Source/Specs/p.xml | 13 +-
P5/Test/detest.odd | 6 +-
P5/Test/detest.xml | 144 ++++++++++--------
.../detest_xml_schematron.log | 1 +
6 files changed, 96 insertions(+), 88 deletions(-)
diff --git a/P5/Source/Specs/ab.xml b/P5/Source/Specs/ab.xml
index d901081103..38a0c7ae6e 100644
--- a/P5/Source/Specs/ab.xml
+++ b/P5/Source/Specs/ab.xml
@@ -28,12 +28,12 @@
-
+
-
-
- Abstract model violation: Lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText.
-
+
+
+ Abstract model violation: Metrical lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText.
+
diff --git a/P5/Source/Specs/div.xml b/P5/Source/Specs/div.xml
index 40f481f67d..6e0565a6dc 100644
--- a/P5/Source/Specs/div.xml
+++ b/P5/Source/Specs/div.xml
@@ -65,12 +65,12 @@
-
+
-
-
- Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
-
+
+
+ Abstract model violation: Metrical lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
+
diff --git a/P5/Source/Specs/p.xml b/P5/Source/Specs/p.xml
index abc4a30a08..59e2eab230 100644
--- a/P5/Source/Specs/p.xml
+++ b/P5/Source/Specs/p.xml
@@ -49,15 +49,12 @@
-
+
-
-
- Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
-
+
+
+ Abstract model violation: Metrical lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
+
diff --git a/P5/Test/detest.odd b/P5/Test/detest.odd
index ef810c71c9..72effe8d3a 100644
--- a/P5/Test/detest.odd
+++ b/P5/Test/detest.odd
@@ -464,14 +464,14 @@
This constraintSpec is invalid because it is
missing scheme in add mode.
- This rule never fires.
+ This rule never fires, 01This constraintSpec is invalid because it is
missing scheme in replace mode.
- This rule never fires.
+ This rule never fires, 02.
@@ -480,7 +480,7 @@
(i.e., does not have a sch:rule
context="…".)
- This rule never fires.
+ This rule never fires, 03.
- BB
- mel:bb:ve:08
- riddle of Strider
-
- occurs only once, thus valid
- occurs twice, thus invalid
- occurs twice, thus invalid
- three occurrences, thus invalid
- three occurrences, thus invalid
- three occurrences, thus invalid
- four occurrences, thus invalid
- four occurrences, thus invalid
- four occurrences, thus invalid
- four occurrences, thus invalid
-
-
The above msDesc should generate 3 errors, one
- each for physDesc, history, and
- additional.
-
-
- All that is gold does not glitter,
- Not all those who wander are lost;
- The old that is strong does not wither,
- Deep roots are not reached by the frost.
-
-
- From the ashes a fire shall be woken,
- A light from the shadows shall spring;
- Renewed shall be blade that was broken,
- The crownless again shall be king.
-
-
+ test msDesc elements that should not be repeated
+
Some manuscript description elements are supposed to occur
+ a max of only once, even though RelaxNG allows infinite.
+
Added 2023-10-11 19:21 by Syd.
+
+
+ MEL
+ BB
+ mel:bb:ve:08
+ riddle of Strider
+
+ occurs only once, thus valid
+ occurs twice, thus invalid
+ occurs twice, thus invalid
+ three occurrences, thus invalid
+ three occurrences, thus invalid
+ three occurrences, thus invalid
+ four occurrences, thus invalid
+ four occurrences, thus invalid
+ four occurrences, thus invalid
+ four occurrences, thus invalid
+
+
The above msDesc should generate 3 errors, one
+ each for physDesc, history, and
+ additional.
+
+
+ All that is gold does not glitter,
+ Not all those who wander are lost;
+ The old that is strong does not wither,
+ Deep roots are not reached by the frost.
+
+
+ From the ashes a fire shall be woken,
+ A light from the shadows shall spring;
+ Renewed shall be blade that was broken,
+ The crownless again shall be king.
+
+
Shift should have a new attribute
@@ -401,14 +401,24 @@
Here is
a little floating text
.
Here is
another little floating text
.
+
+
+
This paragraph should be valid.
+ The one around “find”, below, should be invalid.
+
+ I think that I shall never see Sight of TEI elements is significant in this little poem.A floating text inside this tree.Nor can it be
that I shall know
A paragraph
herein below
.
- More likely maybe I could find
+ More likely maybe I could
find
A div
stuck in this poem's lines.
And here is the same poem again, inside a giant floatingText and coded a little differently.
+
The “find”, below, should be flagged as an
+ abstract model violation, IMHO, but is not because the
+ Schematron is fooled by the fact that it is within a
+ floatingText. Sigh. —Syd, 2024-05-18
@@ -417,7 +427,7 @@
A floating text inside this tree.Nor can it be that I shall know
A paragraph
herein below
.
- More likely maybe I could find
+ More likely maybe I could
find
A div
stuck in this poem's lines.
@@ -432,7 +442,7 @@
detest.odd because they would break
the build there
- See //elementSpec[@ident eq 'abbr']/listRef in detest.odd
+ See //elementSpec[@ident eq 'abbr']/listRef in detest.oddno target (2B caught by Schematron)good target absolute URI
diff --git a/P5/Test/expected-results/detest_xml_schematron.log b/P5/Test/expected-results/detest_xml_schematron.log
index 6c3c4eda7e..a6a6e8b84d 100644
--- a/P5/Test/expected-results/detest_xml_schematron.log
+++ b/P5/Test/expected-results/detest_xml_schematron.log
@@ -38,3 +38,4 @@ In the context of tagset documentation, the listRef element must not self-nest.
In the context of tagset documentation, each ptr or ref element inside a listRef must have a target attribute with only 1 pointer as its value. (@target and not( matches( @target,'\s') ))
In the context of tagset documentation, each ptr or ref element inside a listRef must have a target attribute with only 1 pointer as its value. (@target and not( matches( @target,'\s') ))
The @new attribute should always be supplied; use the special value "normal" to indicate that the feature concerned ceases to be remarkable at this point. (@new / warning)
+ Abstract model violation: Metrical lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText. (ancestor::tei:floatingText | parent::tei:figure | parent::tei:note)
From 32bbed2be8d79b0085a87596ac4ebf00cf14a252 Mon Sep 17 00:00:00 2001
From: Syd Bauman
Date: Mon, 20 Jan 2025 16:18:12 -0500
Subject: [PATCH 51/51] manual merge of expected results
---
P5/Test/expected-results/detest_xml_relaxng.log | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/P5/Test/expected-results/detest_xml_relaxng.log b/P5/Test/expected-results/detest_xml_relaxng.log
index 396e10c622..48a294155d 100644
--- a/P5/Test/expected-results/detest_xml_relaxng.log
+++ b/P5/Test/expected-results/detest_xml_relaxng.log
@@ -73,7 +73,7 @@ allowed:
element http://www.tei-c.org/ns/1.0^listRef
element http://www.tei-c.org/ns/1.0^relatedItem
element http://www.tei-c.org/ns/1.0^citedRange
-detest.xml:441:12: error: attribute ^target with invalid value ""
+detest.xml:451:12: error: attribute ^target with invalid value ""
required:
data http://www.w3.org/2001/XMLSchema-datatypes^anyURI
error: some documents are invalid