From 069cf112bac272d550d3ebbf61b2a9b87186b977 Mon Sep 17 00:00:00 2001 From: Stefan Probst Date: Wed, 26 Feb 2025 16:40:18 +0100 Subject: [PATCH 01/10] feat: add test content --- content/en/people/dariah-teach/index.mdx | 5 + .../index.mdx | 845 ++++++++++++++++++ 2 files changed, 850 insertions(+) create mode 100644 content/en/people/dariah-teach/index.mdx create mode 100644 content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx diff --git a/content/en/people/dariah-teach/index.mdx b/content/en/people/dariah-teach/index.mdx new file mode 100644 index 000000000..6b9b2be85 --- /dev/null +++ b/content/en/people/dariah-teach/index.mdx @@ -0,0 +1,5 @@ +--- +name: DARIAH Teach +image: /assets/images/default-avatar.svg +social: [] +--- diff --git a/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx new file mode 100644 index 000000000..36a6d63bb --- /dev/null +++ b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx @@ -0,0 +1,845 @@ +--- +title: "Digital Scholarly Editions: Manuscripts, Texts and TEI Encoding" +locale: en +publication-date: 2017-05-11 +version: 1.0.0 +authors: + - dariah-teach +editors: [] +contributors: + - dariah-teach +tags: + - tei + # - editing-tools + # - encoding + - xml + # - critical-edition +sources: + - dariah-teach +license: cc-by-4.0 +table-of-contents: false +summary: + content: This course will introduce you to the creation of digital scholarly editions, for manuscripts or printed texts, with the help of the TEI and other related technologies. +content-type: training-module +--- + +# Scholarly Digital Editions: Manuscripts, Texts and TEI Encoding + +## Useful Resources + + + +Useful Resources + + + +### Oxygen XML Editor + +To follow the guided exercises in this course, you will need to use the XML editor oXygen: +[https://www.oxygenxml.com/](https://www.oxygenxml.com/). + +oXygen is one of the best XML editors currently available. It has many advantages over other +editors: it is relatively easy to set up and to use, it is very powerful, cross-platform (e.g. it +works on the Mac), relatively cheap and has many advanced features that show that the creators are +keen to keep abreast of new developments in the XML world. Crucially, the developers have shown an +unusually keen interest in the needs of humanities computing scholarship, in particular that which +surrounds the Text Encoding Initiative. + +Its main disadvantages are that it is not free (many XML editors are) and that its target audience +seems to be developers (as opposed to, say, average users just needing to edit XML documents) and so +it is not quite as easy to customise for less technical users as some of its more expensive +competitors. + +Each XML editor has its own advantages and disadvantages, but in editing XML-like documents, the +chief functions you will need initially are the following: + +- _Checking for well-formedness_. Does the document you are working on follow the basic syntax rules + of XML? +- _Validation_. Does the XML document validate against the appropriate DTD or schema (if there is + one)? +- _Editing help_. Different editors offer different kinds of help when editing documents: some show + you which elements (or attributes) are available in a given position (according to the document’s + DTD or schema), while others show you the internal structure of an XML document as a ‘tree’ + diagram so that you can navigate quickly around it. + +XML editors can look deceptively like Microsoft Word or other mainstream text processing programs. +It is useful to have similar functionality as word processors (e.g. spelling checkers), but it is +important to understand that XML editors are quite different, and that a good XML editor will +concentrate on the features that XML enables. + +### XML and TEI Encoding + +Here are a few resources about XML and TEI encoding in general. The Guidelines are the point of +reference for the Text Encoding Initiative, and you are strongly recommended to read the chapters on +[Representation of Primary Sources](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/PH.html), +the [Critical Apparatus](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TC.html), and +[Names, Dates, People and Places](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ND.html). +These are the chapters covered more in detail in this course. + +The TEI website provides a gentle introduction to XML, which can be completed by David Birnbaum's +"Even Gentler Introduction to XML". And Finally, TEI by Example offers a series of online tutorials +with plenty of examples, interactive tests and exercises. + +- **TEI Guidelines**: + [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/index.html](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/index.html) +- A Gentle Introduction to XML: + [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SG.html](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SG.html) +- An Even Gentler Introduction to XML: + [http://dh.obdurodon.org/what-is-xml.xhtml](http://dh.obdurodon.org/what-is-xml.xhtml) +- TEI by example: [http://teibyexample.org/](http://teibyexample.org/) + +### Digital Scholarly Editing + +The following links are more specifically related to digital scholarly editing. + +The TEI Toolbox was created by Marjorie Burghardt as a tool for people preparing a natively digital +TEI critical edition. The TEI Toolbox lets you check that your critical edition is properly encoded, +and makes it possible to display parallel versions of a text. It also offers access to the TEI +Zoner, a tool to annotate images. + +Two catalogs record digital (scholarly) editions, which give you an idea of the range of +possibilities provided by the digital format. If you are preparing a digital edition, these are also +a great source of examples that you can browse to discover how others have dealt with the same kind +of texts. + +If any term related to scholarly editing is obscure, do not hesitate to consult the Lexicon of +Scholarly Editing. It is an open access and multilingual resource that offers definitions for +concepts in the field of scholarly editing and textual criticism. + +- TEI Toolbox: + [http://ciham-digital.huma-num.fr/teitoolbox/](http://ciham-digital.huma-num.fr/teitoolbox/) +- Patrick Sahle's catalog of Digital Scholarly Editions: + [http://www.digitale-edition.de/](http://www.digitale-edition.de/) +- Greta Franzini's catalog of Digital Editions: + [https://dig-ed-cat.acdh.oeaw.ac.at/](https://dig-ed-cat.acdh.oeaw.ac.at/) +- Lexicon of Scholarly Editing: [http://uahost.uantwerpen.be/lse/](http://uahost.uantwerpen.be/lse/) + +### Annotating Images + +Here are a few tools that let you create TEI markup for images annotations. For more detail, take +the optional module on [Image Annotation]($@COURSEVIEWBYID*32@$§ion=5). + +- Image Markup Tool (PC + only):[ https://tapor.uvic.ca/~mholmes/image_markup/](https://tapor.uvic.ca/~mholmes/image_markup/) +- InkScape: [https://inkscape.org/en/](https://inkscape.org/en/) +- Oxygen + Plugin:[ https://github.com/oxygenxml/TEI-Facsimile-Plugin](https://github.com/oxygenxml/TEI-Facsimile-Plugin) +- TEI Zoner: + [http://ciham-digital.huma-num.fr/teitoolbox/zoner.php](http://ciham-digital.huma-num.fr/teitoolbox/zoner.php) + +### XML Transformation + +Here are three resources to help you transform your TEI XML in other formats. + +- TEI boilerplate : [http://dcl.ils.indiana.edu/teibp/](http://dcl.ils.indiana.edu/teibp/) +- XSL stylesheets for TEI XML: + [http://www.tei-c.org/release/doc/tei-xsl/](http://www.tei-c.org/release/doc/tei-xsl/) +- Transforming Data for Reuse and Re-publication with XML and XSL: + [http://programminghistorian.org/lessons/transforming-xml-with-xsl](http://programminghistorian.org/lessons/transforming-xml-with-xsl) + + + + + +## Course Materials + + + +# Introduction: Encoding and XML + +## Why Do We Encode? + + + +Why Do We Encode? + + + +Advantages of encoding texts with XML. + + + + + + + + + +## Why Do We Standardize? + + + +Why Do We Standardize? + + + +The Text Encoding Initiative, a common standard for text encoding in the Humanities. + + + + + + + + + +## Encoding a Text + + + +Encoding a Text + + + + + + + +## Displaying a Text + + + +Displaying a Text + + + + + + + +## The XML Constellation: How the Technologies Work Together + + + +The XML Constellation: How the Technologies Work Together + + + +XML works together with other technologies: + +- Schema - set of rules which define the structure of the document (such as the TEI); +- Transformation - conversion from XML to a different format with XSLT or CSS. + + + + + + + + + +# Manuscript Transcription + +## Analysis and Modelling + + + +Analysis and Modelling + + + + + + + +## Pages and Facsimiles + + + +Pages and Facsimiles + + + + + + + +## Phrase-Level Features + + + + + +In this lesson, you will learn to encode various textual features which may appear at the phrase +level: abbreviations, scribal interventions (such as additions, omissions), normalisations, +modifications by the editor, and parts that are difficult or impossible to read. + + + + + +Introduction + + + + + + + + + +Abbreviations + + + + + + + + + +Scribal Interventions: Additions, Deletions and Substitutions + + + + + + + + + +Normalisations + + + + + + + + + +Modifications by the Editor + + + + + + + + + +Difficult Readings and Missing Parts + + + + + + + + + +Exercise (test, to edit) + + + +Here are some images from manuscripts. How would you encode the texts, using the elements that you have learned about in this lesson? + +... (I could also create an assignment in the main section) + + + + + + + +## Quiz + +## Transcription Practice + + + +Transcription Practice + + + +Practice the encoding of phrase-level features with the images provided in the course materials for week 2. + +The images are from two manuscripts of +[Calpurnius Flaccus](https://en.wikipedia.org/wiki/Calpurnius_Flaccus), a Latin author from the +second century AD. The manuscripts, +[CLM 309](http://daten.digitale-sammlungen.de/~db/0009/bsb00090859/images/index.html?id=00090859&groesser=&fip=193.174.98.30&no=&seite=294) +(B) and +[CLM 316](http://daten.digitale-sammlungen.de/~db/0009/bsb00090394/images/index.html?id=00090394&groesser=&fip=193.174.98.30&no=&seite=9) +(M), are held in Münich and are both available online at the Bayerische Staatsbibliothek website. +The full text is available at the Packard Humanities website +[here](http://latin.packhum.org/loc/1100/1/0#0). + +Remember to consider the following types of features: + +- Scribal interventions + - addition + - omission + - substitution +- Editorial interventions + - regularization of spelling: for instance, regularize the e caudata (ę) to _ae_ or _oe_ + - expansion of abbreviations + - supplied text +- Difficult readings or damaged page + +If you need help with abbreviations, check Capelli's dictionary of Latin abbreviations: +[http://www.hist.msu.ru/Departments/Medieval/Cappelli/](http://www.hist.msu.ru/Departments/Medieval/Cappelli/). + + + + + +# Critical Editions and the TEI + +## Understanding Critical Editions + + + +Understanding Critical Editions + + + + + + + +## The TEI Proposal + + + +The TEI Proposal + + + + + + + +## Positive and Negative Apparatus + + + +Positive and Negative Apparatus + + + +The critical apparatus can take different format: positive or negative apparatus. + + + + + + + + + +## Encoding a Critical Edition + + + +Encoding a Critical Edition + + + + + + + +## Quiz + +# Critical Editions: Advanced Features + +## Indexing + + + +Indexing + + + + + + + +## Names: People, Places and Organisations + + + + + +In this lesson, you will learn to encode names of people, places, and their relationships to +organisations. + + + + + +People Names + + + + + + + + + +People, Places and Organisations + + + + + + + + + +Place Names + + + + + + + + + +## Encoding Dates + + + +Encoding Dates + + + + + + + +## Exercises + + + +Exercises + + + +### Exercise 1 + +Encode Names, Dates, Places and their references in the first letter of Mary Shelley's Frankenstein. + +### Exercise 2 + +Create lists of Persons, Places and Organizations in the extracts from William Dalrymple's City of +Djinns: - Encode at least two persons with full biographical details + +- Add the relationships between persons, places and organisations +- Tag at least one instance of each person, place and organisation in the text +- Create an index of the names in the text, along with a page where they are mentioned + +Feel free to encode as many entities as you wish, as well as dates. You can check Wikipedia in order +to gather information about the Mughal emperor +[Shah Jehan](https://en.wikipedia.org/wiki/Shah_Jahan) and his family, or about the writer +[William Dalrymple](). + + + + + +# Annotating Images (Optional) + +## Annotating Images + + + +Annotating Images + + + + + + + +## Annotate a Medieval Bestiary + + + +Annotate a Medieval Bestiary + + + +### Medieval Bestiaries + +Bestiaries are illustrated books which describe animals. They were very popular during the Middle +Ages, and the +[British Library](https://www.bl.uk/catalogues/illuminatedmanuscripts/TourBestiaryGen.asp) offers a +tour of its most interesting bestiaries in illuminated medieval manuscripts: + +"A bestiary is a book of real and imaginary beasts, though its subjects often extend to birds, +plants and even rocks. Long perceived merely as rudimentary natural histories, medieval bestiaries +actually reflect the belief that the natural world was designed by God to instruct mankind. They +describe the physical nature and habits of animals in order to elaborate on the moral or spiritual +significance of these characteristics." (British Library) + +The illustrations in your course material are from the manuscript +[Harley 3244](https://www.bl.uk/catalogues/illuminatedmanuscripts/record.asp?MSID=8798&CollID=8&NStart=3244), +an English codex of the 13th century. + +- Folio 39v: + [https://www.bl.uk/catalogues/illuminatedmanuscripts/ILLUMIN.ASP?Size=mid&IllID=21497](https://www.bl.uk/catalogues/illuminatedmanuscripts/ILLUMIN.ASP?Size=mid&IllID=21497) +- Folio 57v: + [https://www.bl.uk/catalogues/illuminatedmanuscripts/ILLUMIN.ASP?Size=mid&IllID=21535](https://www.bl.uk/catalogues/illuminatedmanuscripts/ILLUMIN.ASP?Size=mid&IllID=21535) +- Folio 58v: + [https://www.bl.uk/catalogues/illuminatedmanuscripts/ILLUMIN.ASP?Size=mid&IllID=21536](https://www.bl.uk/catalogues/illuminatedmanuscripts/ILLUMIN.ASP?Size=mid&IllID=21536) + +### Exercise + +Create zones for each illustration on the pages with the help of the +[TEI Zoner](http://ciham-digital.huma-num.fr/teitoolbox/zoner.php). Then link the zones, in the +<facsimile> element in your TEI file, to annotations about the animals in the <text> +part of your TEI file. + +**Bonus**: can you create an index of animals in alphabetical order, along with the folio(s) where +they appear? The result should look like this: + +- bee: 57v, 58v +- dove: 58v +- dragon: 39v, 58v +- duck: 57v +- elephant: 39v + + + + + +# TEI and XSLT (Optional) + +## Introduction + + + +Introduction + + + + + + + +## XPath + + + +XPath + + + + + + + +## Templates and Namespaces + + + +Templates and Namespaces + + + + + + + +## XSLT Transformations + + + +XSLT Transformations + + + + + + + +## Exercise + + + +Exercise + + + +#### Assignment: + +We've provided a slightly more complex version of the 'snippet.xml' ... + +- Open the 'snippet-task.xml' file +- Figure out which is the new element +- Open the 'snippet.xslt' file +- Do the following: - Add a new template that handles the new element, showing it in BOLD in the + output - Change the template that handles the <title> element so that instead of using + quotation marks, it uses the element <cite> - Save your improved program as + 'snippet-task.xslt' - Test this in the debugger - Once you have it working, make a transformation + scenario for it + + + + From 84bce20cec7d19211edbf61d9c0cef6031d7fa12 Mon Sep 17 00:00:00 2001 From: Stefan Probst Date: Thu, 27 Feb 2025 10:18:38 +0100 Subject: [PATCH 02/10] fix: add placeholder components --- components/content/embed.tsx | 4 +- components/content/figure.tsx | 4 +- components/content/video.tsx | 4 +- .../index.mdx | 18 +-- mdx-components.tsx | 112 ++++++++++++++++++ 5 files changed, 128 insertions(+), 14 deletions(-) diff --git a/components/content/embed.tsx b/components/content/embed.tsx index fc5e4f0ac..68de21052 100644 --- a/components/content/embed.tsx +++ b/components/content/embed.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from "react"; interface EmbedProps { - children: ReactNode; + children?: ReactNode; src: string; /** Added by `with-iframe-titles` mdx plugin. */ title?: string; @@ -20,7 +20,7 @@ export function Embed(props: Readonly): ReactNode { src={src} title={title} /> -
{children}
+ {children ?
{children}
: null} ); } diff --git a/components/content/figure.tsx b/components/content/figure.tsx index d6c7443b1..a2d6910d1 100644 --- a/components/content/figure.tsx +++ b/components/content/figure.tsx @@ -8,7 +8,7 @@ interface FigureProps { /** @default "stretch" */ alignment?: FigureAlignment; alt?: string; - children: ReactNode; + children?: ReactNode; /** Maybe added by `with-image-sizes` mdx plugin. */ height?: number; src: string; @@ -22,7 +22,7 @@ export function Figure(props: Readonly): ReactNode { return (
{alt} -
{children}
+ {children ?
{children}
: null}
); } diff --git a/components/content/video.tsx b/components/content/video.tsx index 918485572..8ee091901 100644 --- a/components/content/video.tsx +++ b/components/content/video.tsx @@ -4,7 +4,7 @@ import type { VideoProvider } from "@/lib/content/options"; import { createVideoUrl } from "@/lib/keystatic/create-video-url"; interface VideoProps { - children: ReactNode; + children?: ReactNode; id: string; provider: VideoProvider; startTime?: number | null; @@ -27,7 +27,7 @@ export function Video(props: Readonly): ReactNode { src={src} title={title} /> -
{children}
+ {children ?
{children}
: null} ); } diff --git a/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx index 36a6d63bb..fb6c664ca 100644 --- a/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx +++ b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx @@ -58,8 +58,8 @@ chief functions you will need initially are the following: - _Validation_. Does the XML document validate against the appropriate DTD or schema (if there is one)? - _Editing help_. Different editors offer different kinds of help when editing documents: some show - you which elements (or attributes) are available in a given position (according to the document’s - DTD or schema), while others show you the internal structure of an XML document as a ‘tree’ + you which elements (or attributes) are available in a given position (according to the document's + DTD or schema), while others show you the internal structure of an XML document as a 'tree' diagram so that you can navigate quickly around it. XML editors can look deceptively like Microsoft Word or other mainstream text processing programs. @@ -827,17 +827,19 @@ they appear? The result should look like this: -#### Assignment: + -We've provided a slightly more complex version of the 'snippet.xml' ... +#### Assignment: -- Open the 'snippet-task.xml' file +We've provided a slightly more complex version of the `snippet.xml` ... + +- Open the `snippet-task.xml` file - Figure out which is the new element -- Open the 'snippet.xslt' file +- Open the `snippet.xslt` file - Do the following: - Add a new template that handles the new element, showing it in BOLD in the output - Change the template that handles the <title> element so that instead of using - quotation marks, it uses the element <cite> - Save your improved program as - 'snippet-task.xslt' - Test this in the debugger - Once you have it working, make a transformation + quotation marks, it uses the element `` - Save your improved program as + `snippet-task.xslt` - Test this in the debugger - Once you have it working, make a transformation scenario for it diff --git a/mdx-components.tsx b/mdx-components.tsx index daa5605d1..c430d9886 100644 --- a/mdx-components.tsx +++ b/mdx-components.tsx @@ -1,3 +1,5 @@ +import type { ReactNode } from "react"; + import { Callout } from "@/components/content/callout"; import { Disclosure } from "@/components/content/disclosure"; import { Embed } from "@/components/content/embed"; @@ -40,6 +42,116 @@ const components = { Tabs, Video, VideoCard, + + /** + * DARIAH-teach components. + * + * Most of these should be dropped in another transform step for the actual content migration. + */ + Page(props: { children: ReactNode; id: string; moduleId: string }) { + const { children } = props; + + return children; + }, + PageTitle(props: { children: ReactNode }) { + const { children } = props; + + // TODO: Avoid multiple h1 elements. + return

{children}

; + }, + PageIntro(props: { children: ReactNode }) { + const { children } = props; + + // eslint-disable-next-line tailwindcss/no-custom-classname + return
{children}
; + }, + PageContent(props: { children: ReactNode }) { + const { children } = props; + + return children; + }, + Resource(props: { + children: ReactNode; + title: string; + id: string; + moduleId: string; + files: Array<{ file: string }>; + }) { + const { files, title } = props; + + return ( + + ); + }, + IframeElement(props: { w: number; h: number; alt: string; src: string }) { + const { src } = props; + + return ; + }, + Assign(props: { children: ReactNode; id: string; moduleId: string }) { + const { children } = props; + + return children; + }, + AssignTitle(props: { children: ReactNode }) { + const { children } = props; + + return

{children}

; + }, + AssignIntro(props: { children: ReactNode }) { + const { children } = props; + + // eslint-disable-next-line tailwindcss/no-custom-classname + return
{children}
; + }, + Lesson(props: { children: ReactNode }) { + const { children } = props; + + return children; + }, + LessonTitle(props: { children: ReactNode }) { + const { children } = props; + + return

{children}

; + }, + LessonIntro(props: { children: ReactNode }) { + const { children } = props; + + // eslint-disable-next-line tailwindcss/no-custom-classname + return
{children}
; + }, + LessonPage(props: { children: ReactNode; id: string; prev_id: string; next_id: string }) { + const { children } = props; + + return children; + }, + LessonPageTitle(props: { children: ReactNode }) { + const { children } = props; + + return

{children}

; + }, + LessonPageIntro(props: { children: ReactNode }) { + const { children } = props; + + // eslint-disable-next-line tailwindcss/no-custom-classname + return
{children}
; + }, + LessonPageContent(props: { children: ReactNode }) { + const { children } = props; + + return children; + }, }; declare global { From 78914c53f8353013d2dd55068c0b550083fe639b Mon Sep 17 00:00:00 2001 From: Stefan Probst Date: Thu, 27 Feb 2025 10:29:15 +0100 Subject: [PATCH 03/10] chore: rename resource to avoid naming collision --- .../index.mdx | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename content/en/resources/hosted/{digital-scholarly-editions-manuscripts-texts-and-tei-encoding => digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach}/index.mdx (100%) diff --git a/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach/index.mdx similarity index 100% rename from content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding/index.mdx rename to content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach/index.mdx From 8d48eb9cca4fe478c73f53e5bbcfd3c8cf8e1a8f Mon Sep 17 00:00:00 2001 From: Stefan Probst Date: Thu, 27 Feb 2025 10:37:07 +0100 Subject: [PATCH 04/10] style: don't treat lesson intro and lesson page intro and assign intro as lead-in --- mdx-components.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/mdx-components.tsx b/mdx-components.tsx index c430d9886..7c1b3f53f 100644 --- a/mdx-components.tsx +++ b/mdx-components.tsx @@ -112,8 +112,7 @@ const components = { AssignIntro(props: { children: ReactNode }) { const { children } = props; - // eslint-disable-next-line tailwindcss/no-custom-classname - return
{children}
; + return
{children}
; }, Lesson(props: { children: ReactNode }) { const { children } = props; @@ -128,8 +127,7 @@ const components = { LessonIntro(props: { children: ReactNode }) { const { children } = props; - // eslint-disable-next-line tailwindcss/no-custom-classname - return
{children}
; + return
{children}
; }, LessonPage(props: { children: ReactNode; id: string; prev_id: string; next_id: string }) { const { children } = props; @@ -144,8 +142,7 @@ const components = { LessonPageIntro(props: { children: ReactNode }) { const { children } = props; - // eslint-disable-next-line tailwindcss/no-custom-classname - return
{children}
; + return
{children}
; }, LessonPageContent(props: { children: ReactNode }) { const { children } = props; From 9a39ad56d2b0fc7b2679b8a4b68aecdbe21d84f3 Mon Sep 17 00:00:00 2001 From: Stefan Probst Date: Thu, 27 Feb 2025 10:53:53 +0100 Subject: [PATCH 05/10] fix: enable toc --- .../index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach/index.mdx b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach/index.mdx index fb6c664ca..1b935258d 100644 --- a/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach/index.mdx +++ b/content/en/resources/hosted/digital-scholarly-editions-manuscripts-texts-and-tei-encoding-dariah-teach/index.mdx @@ -17,7 +17,7 @@ tags: sources: - dariah-teach license: cc-by-4.0 -table-of-contents: false +table-of-contents: true summary: content: This course will introduce you to the creation of digital scholarly editions, for manuscripts or printed texts, with the help of the TEI and other related technologies. content-type: training-module From 45634da41e8f108eb05b52c14e3015ba2422425f Mon Sep 17 00:00:00 2001 From: Stefan Probst Date: Thu, 27 Feb 2025 10:55:41 +0100 Subject: [PATCH 06/10] fix: render video component when iframe has youtube link --- mdx-components.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mdx-components.tsx b/mdx-components.tsx index 7c1b3f53f..902fabf21 100644 --- a/mdx-components.tsx +++ b/mdx-components.tsx @@ -97,6 +97,14 @@ const components = { IframeElement(props: { w: number; h: number; alt: string; src: string }) { const { src } = props; + if (src.startsWith("https://www.youtube.com/embed/")) { + const id = new URL(src).pathname.split("/").pop(); + + if (id) { + return