<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PCAdmin</id>
	<title>Amateur Theatre Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PCAdmin"/>
	<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php/Special:Contributions/PCAdmin"/>
	<updated>2026-04-16T00:54:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Heiglhoftheater&amp;diff=1965</id>
		<title>Heiglhoftheater</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Heiglhoftheater&amp;diff=1965"/>
		<updated>2026-03-11T13:15:10Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: add red link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally founded by a student group in 2012, [https://www.heiglhoftheater.de Heiglhoftheater] is today open to all who have an interest in amateur performance. A core group of approximately ten people expands to larger groups for specific productions. They usually produce two shows per year. Every member can propose a theatre play for production and if they reach consent from the membership they will act as directors of their particular proposal. Rehearsals are twice a week. Parts of their tickets sales are donated to charitable causes.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 1995, fourteen students living in the student residence located at Heiglhofstraße, in the one of Munich&#039;s Southern suburbs (Großhadern) founded a theatre group. On 22 June 1995 they staged their first performance (&amp;quot;Loriots dramatische Werke&amp;quot;, &amp;quot;Loriot&#039;s Dramatic Works&amp;quot;) in the premises of the student residence. Until 2012 this was their usual theatre venue, today they perform in [[Pasinger Fabrik]] and [[Einstein Kulturforum]] two established stages for cabaret and smaller professional performances. &lt;br /&gt;
&lt;br /&gt;
== Repertoire ==&lt;br /&gt;
Their repertoire stretches from tragedy to boulevard comedy, from classics to modern popular play. Over the years they have performed the following plays.&lt;br /&gt;
&lt;br /&gt;
* Loriot: Loriot’s dramatische Werke, 1995&lt;br /&gt;
* Joseph Kesselring: Arsen und Spitzenhäubchen, 1996&lt;br /&gt;
* Michael Frayne: Der nachte Wahnsinn, 1996&lt;br /&gt;
* Eugène Ionesco: Die Nashörner, 1997&lt;br /&gt;
* Sir Peter Ustinov: Endspurt, 1997&lt;br /&gt;
* Michael Cooney: Und ewig rauschen die Gelder, 1998&lt;br /&gt;
* Kathrin Schrocke: Die Geschmacklosigkeiten, 1998&lt;br /&gt;
* Friedrich Dürrenmatt: Die Panne, 1998&lt;br /&gt;
* Agatha Christie: Zehn kleine Negerlein, 1998&lt;br /&gt;
* Patrick Süßkind: Der Kontrabass, 1999&lt;br /&gt;
* Jean-Paul Sartre: Geschlossene Gesellschaft, 1999&lt;br /&gt;
* Alan Aychbourn: Schöne Bescherung, 1999&lt;br /&gt;
* Terry Pratchett: Mort, 2000&lt;br /&gt;
* Peter Shaffer: Komödie im Dunkeln, 2000&lt;br /&gt;
* Ernst Lubisch: Sein oder Nichtsein, 2001&lt;br /&gt;
* Molière: Der Menschenfeind, 2002&lt;br /&gt;
* Fernando Arrabal: Picknick im Felde &amp;amp; Slawomir Mrozek Auf hoher See, 2003&lt;br /&gt;
* Doris Dörrie: Nackt, 2004&lt;br /&gt;
* Oscar Wilde: Bunbury, 2005&lt;br /&gt;
* William Shakespeare: Der Sturm, 2005&lt;br /&gt;
* Alan Ayckbourn: Schlafzimmergäste, 2006&lt;br /&gt;
* N. Richard Nash: Der Regenmacher, 2006&lt;br /&gt;
* Thomas Vinterberg and Mogens Rukov: Das Fest, 2007&lt;br /&gt;
* Ephraim Kishon: Der Trauschein, 2007&lt;br /&gt;
* Alan Ayckbourn: Einer für Alles, 2008&lt;br /&gt;
* Friedrich Dürrenmatt: Die Physiker, 2008&lt;br /&gt;
* Nina Mitrovic: Das Bett ist zu kurz, 2009&lt;br /&gt;
* C.B. Gilford: Porzellanfraktur, 2009&lt;br /&gt;
* Petr Zelenka: Schrottengel, 2010&lt;br /&gt;
* Agatha Christie: Das Urteil, 2010&lt;br /&gt;
* Woody Allen: Bullets over Broadway, 2011&lt;br /&gt;
* Tena Štivičić: Funkenflug, 2011&lt;br /&gt;
* Bertolt Brecht: Das Leben des Galilei, 2012&lt;br /&gt;
* Francis Verber: Dinner für Spinner, 2012&lt;br /&gt;
* Pavel Kohout: So eine Liebe, 2013&lt;br /&gt;
* Nikolai Gogol Die Heirat, 2014&lt;br /&gt;
* Ingrid Lausund: Zuhause, 2015&lt;br /&gt;
* Vinko Möderndorfer: Drei Schwestern, 2015&lt;br /&gt;
* Hansjörg Schertenleib: Radio Kashmir, 2016&lt;br /&gt;
* Manfred Brida: Herzlich Willkommen, 2016&lt;br /&gt;
* Carlo Goldoni: Der Krieg, 2017&lt;br /&gt;
* Alec Coppel: Der Pavillon, 2017&lt;br /&gt;
* Marius Leutenegger: Aperitif mit dem Teufel, 2018&lt;br /&gt;
* Jules Verne: 20.000 Meilen unter dem Meer, 2018&lt;br /&gt;
* Alan Ayckbourn: Konfusionen, 2019&lt;br /&gt;
* David Auburn: Der Beweis, 2019&lt;br /&gt;
* Woody Allen: Hannah und ihre Schwestern, 2020&lt;br /&gt;
* Mit Abstand … komisch. Sketche von Kishon, Polt u.a., 2020&lt;br /&gt;
* Ingrid Lausund: Bin Nebenan, 2021&lt;br /&gt;
* Pavel Kohout: Krieg im 3. Stock, 2022&lt;br /&gt;
* Jean-Paul Alègre: Bretter, die die Welt bedeuten, 2022&lt;br /&gt;
* Henrik Ibsen: Ein Volksfeind, 2023&lt;br /&gt;
* Bernhard Studlar: Lohn der Nacht, 2023&lt;br /&gt;
* Robert Thomas: Acht Frauen, 2024&lt;br /&gt;
* Woody Allen: Geliebte Aphrodite, 2024&lt;br /&gt;
* Roland Schimmelpfennig: Das Reich der Tiere, 2025&lt;br /&gt;
* Rebekka Kricheldorf: Das Waldhaus, 2025&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Heiglhoftheater&amp;diff=1964</id>
		<title>Heiglhoftheater</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Heiglhoftheater&amp;diff=1964"/>
		<updated>2026-03-11T13:14:30Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: /* History */ add red link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally founded by a student group in 2012, [https://www.heiglhoftheater.de Heiglhoftheater] is today open to all who have an interest in amateur performance. A core group of approximately ten people expands to larger groups for specific productions. They usually produce two shows per year. Every member can propose a theatre play for production and if they reach consent from the membership they will act as directors of their particular proposal. Rehearsals are twice a week. Parts of their tickets sales are donated to charitable causes.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 1995, fourteen students living in the student residence located at Heiglhofstraße, in the one of Munich&#039;s Southern suburbs (Großhadern) founded a theatre group. On 22 June 1995 they staged their first performance (&amp;quot;Loriots dramatische Werke&amp;quot;, &amp;quot;Loriot&#039;s Dramatic Works&amp;quot;) in the premises of the student residence. Until 2012 this was their usual theatre venue, today they perform in Pasinger Fabrik and [[Einstein Kulturforum]] two established stages for cabaret and smaller professional performances. &lt;br /&gt;
&lt;br /&gt;
== Repertoire ==&lt;br /&gt;
Their repertoire stretches from tragedy to boulevard comedy, from classics to modern popular play. Over the years they have performed the following plays.&lt;br /&gt;
&lt;br /&gt;
* Loriot: Loriot’s dramatische Werke, 1995&lt;br /&gt;
* Joseph Kesselring: Arsen und Spitzenhäubchen, 1996&lt;br /&gt;
* Michael Frayne: Der nachte Wahnsinn, 1996&lt;br /&gt;
* Eugène Ionesco: Die Nashörner, 1997&lt;br /&gt;
* Sir Peter Ustinov: Endspurt, 1997&lt;br /&gt;
* Michael Cooney: Und ewig rauschen die Gelder, 1998&lt;br /&gt;
* Kathrin Schrocke: Die Geschmacklosigkeiten, 1998&lt;br /&gt;
* Friedrich Dürrenmatt: Die Panne, 1998&lt;br /&gt;
* Agatha Christie: Zehn kleine Negerlein, 1998&lt;br /&gt;
* Patrick Süßkind: Der Kontrabass, 1999&lt;br /&gt;
* Jean-Paul Sartre: Geschlossene Gesellschaft, 1999&lt;br /&gt;
* Alan Aychbourn: Schöne Bescherung, 1999&lt;br /&gt;
* Terry Pratchett: Mort, 2000&lt;br /&gt;
* Peter Shaffer: Komödie im Dunkeln, 2000&lt;br /&gt;
* Ernst Lubisch: Sein oder Nichtsein, 2001&lt;br /&gt;
* Molière: Der Menschenfeind, 2002&lt;br /&gt;
* Fernando Arrabal: Picknick im Felde &amp;amp; Slawomir Mrozek Auf hoher See, 2003&lt;br /&gt;
* Doris Dörrie: Nackt, 2004&lt;br /&gt;
* Oscar Wilde: Bunbury, 2005&lt;br /&gt;
* William Shakespeare: Der Sturm, 2005&lt;br /&gt;
* Alan Ayckbourn: Schlafzimmergäste, 2006&lt;br /&gt;
* N. Richard Nash: Der Regenmacher, 2006&lt;br /&gt;
* Thomas Vinterberg and Mogens Rukov: Das Fest, 2007&lt;br /&gt;
* Ephraim Kishon: Der Trauschein, 2007&lt;br /&gt;
* Alan Ayckbourn: Einer für Alles, 2008&lt;br /&gt;
* Friedrich Dürrenmatt: Die Physiker, 2008&lt;br /&gt;
* Nina Mitrovic: Das Bett ist zu kurz, 2009&lt;br /&gt;
* C.B. Gilford: Porzellanfraktur, 2009&lt;br /&gt;
* Petr Zelenka: Schrottengel, 2010&lt;br /&gt;
* Agatha Christie: Das Urteil, 2010&lt;br /&gt;
* Woody Allen: Bullets over Broadway, 2011&lt;br /&gt;
* Tena Štivičić: Funkenflug, 2011&lt;br /&gt;
* Bertolt Brecht: Das Leben des Galilei, 2012&lt;br /&gt;
* Francis Verber: Dinner für Spinner, 2012&lt;br /&gt;
* Pavel Kohout: So eine Liebe, 2013&lt;br /&gt;
* Nikolai Gogol Die Heirat, 2014&lt;br /&gt;
* Ingrid Lausund: Zuhause, 2015&lt;br /&gt;
* Vinko Möderndorfer: Drei Schwestern, 2015&lt;br /&gt;
* Hansjörg Schertenleib: Radio Kashmir, 2016&lt;br /&gt;
* Manfred Brida: Herzlich Willkommen, 2016&lt;br /&gt;
* Carlo Goldoni: Der Krieg, 2017&lt;br /&gt;
* Alec Coppel: Der Pavillon, 2017&lt;br /&gt;
* Marius Leutenegger: Aperitif mit dem Teufel, 2018&lt;br /&gt;
* Jules Verne: 20.000 Meilen unter dem Meer, 2018&lt;br /&gt;
* Alan Ayckbourn: Konfusionen, 2019&lt;br /&gt;
* David Auburn: Der Beweis, 2019&lt;br /&gt;
* Woody Allen: Hannah und ihre Schwestern, 2020&lt;br /&gt;
* Mit Abstand … komisch. Sketche von Kishon, Polt u.a., 2020&lt;br /&gt;
* Ingrid Lausund: Bin Nebenan, 2021&lt;br /&gt;
* Pavel Kohout: Krieg im 3. Stock, 2022&lt;br /&gt;
* Jean-Paul Alègre: Bretter, die die Welt bedeuten, 2022&lt;br /&gt;
* Henrik Ibsen: Ein Volksfeind, 2023&lt;br /&gt;
* Bernhard Studlar: Lohn der Nacht, 2023&lt;br /&gt;
* Robert Thomas: Acht Frauen, 2024&lt;br /&gt;
* Woody Allen: Geliebte Aphrodite, 2024&lt;br /&gt;
* Roland Schimmelpfennig: Das Reich der Tiere, 2025&lt;br /&gt;
* Rebekka Kricheldorf: Das Waldhaus, 2025&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1877</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1877"/>
		<updated>2026-01-27T22:14:56Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: no fallback&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year then&lt;br /&gt;
                    local y = tonumber(year)&lt;br /&gt;
                    local m = tonumber(month) or 0&lt;br /&gt;
                    local d = tonumber(day) or 0&lt;br /&gt;
                    -- If month or day are zero/unknown, show only the year&lt;br /&gt;
                    if m == 0 or d == 0 then&lt;br /&gt;
                        return string.format(&#039;%04d&#039;, y)&lt;br /&gt;
                    end&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, y, m, d)&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get the first claim object for a property&lt;br /&gt;
    local function getFirstClaimObject(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
        return claims[1]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get a qualifier value (prefer English monolingual text for P2096)&lt;br /&gt;
    local function getQualifierValue(claim, qualPid)&lt;br /&gt;
        if not claim or not claim.qualifiers or not claim.qualifiers[qualPid] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        local qsnaks = claim.qualifiers[qualPid]&lt;br /&gt;
        if not qsnaks or #qsnaks == 0 then return nil end&lt;br /&gt;
        for i, q in ipairs(qsnaks) do&lt;br /&gt;
            -- Check for valid snak with datavalue&lt;br /&gt;
            if q and q.snaktype == &#039;value&#039; and q.datavalue and q.datavalue.value then&lt;br /&gt;
                local v = q.datavalue.value&lt;br /&gt;
                if type(v) == &#039;table&#039; then&lt;br /&gt;
                    -- For monolingual text, prefer English&lt;br /&gt;
                    if v.language and v.language == &#039;en&#039; and v.text then&lt;br /&gt;
                        return v.text&lt;br /&gt;
                    end&lt;br /&gt;
                else&lt;br /&gt;
                    return tostring(v)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18) with media legend (P2096) as caption&lt;br /&gt;
        local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
        if imageClaim then&lt;br /&gt;
            local imageVal = imageClaim.mainsnak and&lt;br /&gt;
                                 imageClaim.mainsnak.datavalue and&lt;br /&gt;
                                 imageClaim.mainsnak.datavalue.value&lt;br /&gt;
            if imageVal then&lt;br /&gt;
                local imageStr = tostring(imageVal)&lt;br /&gt;
                local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
                if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;,&lt;br /&gt;
                                     caption)&lt;br /&gt;
                else&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18) with media legend (P2096) as caption&lt;br /&gt;
    local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
    if imageClaim then&lt;br /&gt;
        local imageVal =&lt;br /&gt;
            imageClaim.mainsnak and imageClaim.mainsnak.datavalue and&lt;br /&gt;
                imageClaim.mainsnak.datavalue.value&lt;br /&gt;
        if imageVal then&lt;br /&gt;
            local imageStr = tostring(imageVal)&lt;br /&gt;
            local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
            if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;, caption)&lt;br /&gt;
            else&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;&amp;lt;div style=&amp;quot;width:100%; text-align:center;&amp;quot;&amp;gt;[&#039; .. websiteStr ..&lt;br /&gt;
                    &#039; &#039; .. displayUrl .. &#039;]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1876</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1876"/>
		<updated>2026-01-27T22:11:44Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: test again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year then&lt;br /&gt;
                    local y = tonumber(year)&lt;br /&gt;
                    local m = tonumber(month) or 0&lt;br /&gt;
                    local d = tonumber(day) or 0&lt;br /&gt;
                    -- If month or day are zero/unknown, show only the year&lt;br /&gt;
                    if m == 0 or d == 0 then&lt;br /&gt;
                        return string.format(&#039;%04d&#039;, y)&lt;br /&gt;
                    end&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, y, m, d)&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get the first claim object for a property&lt;br /&gt;
    local function getFirstClaimObject(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
        return claims[1]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get a qualifier value (prefer English monolingual text for P2096)&lt;br /&gt;
    local function getQualifierValue(claim, qualPid)&lt;br /&gt;
        if not claim or not claim.qualifiers or not claim.qualifiers[qualPid] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        local qsnaks = claim.qualifiers[qualPid]&lt;br /&gt;
        if not qsnaks or #qsnaks == 0 then return nil end&lt;br /&gt;
        for i, q in ipairs(qsnaks) do&lt;br /&gt;
            -- Check for valid snak with datavalue&lt;br /&gt;
            if q and q.snaktype == &#039;value&#039; and q.datavalue and q.datavalue.value then&lt;br /&gt;
                local v = q.datavalue.value&lt;br /&gt;
                if type(v) == &#039;table&#039; then&lt;br /&gt;
                    -- For monolingual text, prefer English&lt;br /&gt;
                    if v.language and v.language == &#039;en&#039; and v.text then&lt;br /&gt;
                        return v.text&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to any text value&lt;br /&gt;
                    if v.text then return v.text end&lt;br /&gt;
                else&lt;br /&gt;
                    return tostring(v)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18) with media legend (P2096) as caption&lt;br /&gt;
        local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
        if imageClaim then&lt;br /&gt;
            local imageVal = imageClaim.mainsnak and&lt;br /&gt;
                                 imageClaim.mainsnak.datavalue and&lt;br /&gt;
                                 imageClaim.mainsnak.datavalue.value&lt;br /&gt;
            if imageVal then&lt;br /&gt;
                local imageStr = tostring(imageVal)&lt;br /&gt;
                local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
                if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;,&lt;br /&gt;
                                     caption)&lt;br /&gt;
                else&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18) with media legend (P2096) as caption&lt;br /&gt;
    local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
    if imageClaim then&lt;br /&gt;
        local imageVal =&lt;br /&gt;
            imageClaim.mainsnak and imageClaim.mainsnak.datavalue and&lt;br /&gt;
                imageClaim.mainsnak.datavalue.value&lt;br /&gt;
        if imageVal then&lt;br /&gt;
            local imageStr = tostring(imageVal)&lt;br /&gt;
            local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
            if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;, caption)&lt;br /&gt;
            else&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;&amp;lt;div style=&amp;quot;width:100%; text-align:center;&amp;quot;&amp;gt;[&#039; .. websiteStr ..&lt;br /&gt;
                    &#039; &#039; .. displayUrl .. &#039;]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1875</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1875"/>
		<updated>2026-01-27T22:06:48Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: second legend test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year then&lt;br /&gt;
                    local y = tonumber(year)&lt;br /&gt;
                    local m = tonumber(month) or 0&lt;br /&gt;
                    local d = tonumber(day) or 0&lt;br /&gt;
                    -- If month or day are zero/unknown, show only the year&lt;br /&gt;
                    if m == 0 or d == 0 then&lt;br /&gt;
                        return string.format(&#039;%04d&#039;, y)&lt;br /&gt;
                    end&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, y, m, d)&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get the first claim object for a property&lt;br /&gt;
    local function getFirstClaimObject(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
        return claims[1]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get a qualifier value (prefer English monolingual text for P2096)&lt;br /&gt;
    local function getQualifierValue(claim, qualPid)&lt;br /&gt;
        if not claim or not claim.qualifiers or not claim.qualifiers[qualPid] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        local qsnaks = claim.qualifiers[qualPid]&lt;br /&gt;
        if not qsnaks or #qsnaks == 0 then return nil end&lt;br /&gt;
        for i, q in ipairs(qsnaks) do&lt;br /&gt;
            if q and q.datavalue and q.datavalue.value then&lt;br /&gt;
                local v = q.datavalue.value&lt;br /&gt;
                if type(v) == &#039;table&#039; then&lt;br /&gt;
                    if v.language and v.language == &#039;en&#039; and v.text then&lt;br /&gt;
                        return v.text&lt;br /&gt;
                    end&lt;br /&gt;
                    if v.text then return v.text end&lt;br /&gt;
                else&lt;br /&gt;
                    return tostring(v)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18) with media legend (P2096) as caption&lt;br /&gt;
        local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
        if imageClaim then&lt;br /&gt;
            local imageVal = imageClaim.mainsnak and&lt;br /&gt;
                                 imageClaim.mainsnak.datavalue and&lt;br /&gt;
                                 imageClaim.mainsnak.datavalue.value&lt;br /&gt;
            if imageVal then&lt;br /&gt;
                local imageStr = tostring(imageVal)&lt;br /&gt;
                local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
                if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;,&lt;br /&gt;
                                     caption)&lt;br /&gt;
                else&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18) with media legend (P2096) as caption&lt;br /&gt;
    local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
    if imageClaim then&lt;br /&gt;
        local imageVal =&lt;br /&gt;
            imageClaim.mainsnak and imageClaim.mainsnak.datavalue and&lt;br /&gt;
                imageClaim.mainsnak.datavalue.value&lt;br /&gt;
        if imageVal then&lt;br /&gt;
            local imageStr = tostring(imageVal)&lt;br /&gt;
            local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
            if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;, caption)&lt;br /&gt;
            else&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;&amp;lt;div style=&amp;quot;width:100%; text-align:center;&amp;quot;&amp;gt;[&#039; .. websiteStr ..&lt;br /&gt;
                    &#039; &#039; .. displayUrl .. &#039;]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1874</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1874"/>
		<updated>2026-01-27T22:01:39Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: test image captions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year then&lt;br /&gt;
                    local y = tonumber(year)&lt;br /&gt;
                    local m = tonumber(month) or 0&lt;br /&gt;
                    local d = tonumber(day) or 0&lt;br /&gt;
                    -- If month or day are zero/unknown, show only the year&lt;br /&gt;
                    if m == 0 or d == 0 then&lt;br /&gt;
                        return string.format(&#039;%04d&#039;, y)&lt;br /&gt;
                    end&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, y, m, d)&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get the first claim object for a property&lt;br /&gt;
    local function getFirstClaimObject(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
        return claims[1]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get the mainsnak datavalue from a claim object&lt;br /&gt;
    local function getClaimValue(claim)&lt;br /&gt;
        if not claim or not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get a qualifier value (prefer English monolingual text)&lt;br /&gt;
    local function getQualifierValue(claim, qualPid)&lt;br /&gt;
        if not claim or not claim.qualifiers or not claim.qualifiers[qualPid] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        local qsnaks = claim.qualifiers[qualPid]&lt;br /&gt;
        if not qsnaks or #qsnaks == 0 then return nil end&lt;br /&gt;
        for i, q in ipairs(qsnaks) do&lt;br /&gt;
            if q and q.datavalue and q.datavalue.value then&lt;br /&gt;
                local v = q.datavalue.value&lt;br /&gt;
                if type(v) == &#039;table&#039; then&lt;br /&gt;
                    if v.language and v.language == &#039;en&#039; and v.text then&lt;br /&gt;
                        return v.text&lt;br /&gt;
                    end&lt;br /&gt;
                    if v.text then return v.text end&lt;br /&gt;
                else&lt;br /&gt;
                    return tostring(v)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18) with media legend (P2096) as caption when available&lt;br /&gt;
        local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
        if imageClaim then&lt;br /&gt;
            local imageVal = getClaimValue(imageClaim)&lt;br /&gt;
            if imageVal then&lt;br /&gt;
                local imageStr = tostring(imageVal)&lt;br /&gt;
                local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
                if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;,&lt;br /&gt;
                                     caption)&lt;br /&gt;
                else&lt;br /&gt;
                    infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18) with media legend (P2096) as caption when available&lt;br /&gt;
    local imageClaim = getFirstClaimObject(&#039;P18&#039;)&lt;br /&gt;
    if imageClaim then&lt;br /&gt;
        local imageVal = getClaimValue(imageClaim)&lt;br /&gt;
        if imageVal then&lt;br /&gt;
            local imageStr = tostring(imageVal)&lt;br /&gt;
            local caption = getQualifierValue(imageClaim, &#039;P2096&#039;)&lt;br /&gt;
            if caption and caption ~= &#039;&#039; then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;, caption)&lt;br /&gt;
            else&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;&amp;lt;div style=&amp;quot;width:100%; text-align:center;&amp;quot;&amp;gt;[&#039; .. websiteStr ..&lt;br /&gt;
                    &#039; &#039; .. displayUrl .. &#039;]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Arthur_Bourchier&amp;diff=1873</id>
		<title>Arthur Bourchier</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Arthur_Bourchier&amp;diff=1873"/>
		<updated>2026-01-27T21:57:24Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: fix infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q4798060}}&lt;br /&gt;
&lt;br /&gt;
Arthur Bourchier began performing in amateur theatricals at the University of Oxford. During that time he also performed in a variety of amateur theatrical events across Britain. He went on to become a professional actor and later an actor-manager.  &lt;br /&gt;
&lt;br /&gt;
Bourchier&#039;s career as an amateur included:&lt;br /&gt;
&lt;br /&gt;
1885, 28-30 January. Performing in [[Percy Florence Shelley]]&#039;s theatricals at [[Boscombe Manor]].  &lt;br /&gt;
[[Category:People]]&lt;br /&gt;
[[Category:Britain]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Verband_Bayerischer_Amateurtheater_e._V.&amp;diff=1872</id>
		<title>Verband Bayerischer Amateurtheater e. V.</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Verband_Bayerischer_Amateurtheater_e._V.&amp;diff=1872"/>
		<updated>2026-01-27T21:56:26Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Change infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q2513550}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verband Bayerischer Amateurtheater e.V. (VBAT)&#039;&#039;&#039; is an association representing Bavaria&#039;s amateur theater community. With approximately 700 member ensembles and over 60,000 volunteers, it stands as one of the largest state-level organizations for the performing arts in Germany. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
The association is organized into regional divisions: Oberbayern, Niederbayern, Oberpfalz, Franken, Schwaben, and a special division for &#039;&#039;Figurentheater&#039;&#039; (puppet theater). &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Verband Bayerischer Amateurtheater e.V. was founded on October 21, 1923, in Augsburg. Originally named &#039;&#039;Bayerischer Verband Volksspielkunst – Kulturgemeinschaft für Volkskunst und Volksbildung – Verband bayerischer Theatervereine e.V.&#039;&#039;, the association initially aimed to foster folk art and community theater, encouraging appreciation for Bavaria’s cultural traditions. Over the years, VBAT expanded its mission and influence, evolving into a central advocacy organization for amateur theater across Bavaria. Today, it supports an impressive array of theater groups throughout the region, each contributing to the local arts scene. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?chronik=&amp;amp;modul=chronik&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mission and Objectives ==&lt;br /&gt;
VBAT&#039;s core mission is to advocate for Bavarian amateur theater within the cultural, artistic, political, and social spheres. By offering cultural engagement initiatives and educational programs, VBAT encourages collaboration across generations and addresses relevant social themes like integration, tolerance, and intergenerational dialogue. Additionally, the association is dedicated to preserving Bavarian theatrical heritage, dialects, and traditional expressions. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activities and Programs ==&lt;br /&gt;
VBAT offers a variety of programs to enhance the quality and reach of amateur theater. It provides a statewide training initiative led by professional instructors, accessible to all member groups. The association also awards the &amp;quot;[[Larifari]],&amp;quot; a prestigious honor that celebrates achievements in Bavarian amateur theater. Additional member services include guidance on legal matters, assistance with GEMA/GVL licensing, and technical support for productions, among others. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Collaborations ==&lt;br /&gt;
VBAT is affiliated with organizations such as &#039;&#039;Bürgerallianz Bayern&#039;&#039;, &#039;&#039;Bayernbund&#039;&#039;, and &#039;&#039;Bayerischer Landesverein für Heimatpflege&#039;&#039;. It is also associated with the [[Bund Deutscher Amateurtheater (BDAT)|&#039;&#039;Bund Deutscher Amateurtheater e.V.&#039;&#039; (BDAT)]] and &#039;&#039;Union Internationale de la Marionnette&#039;&#039; (UNIMA) Germany, connecting VBAT to international networks like the &#039;&#039;[[International Amateur Theatre Association]]&#039;&#039; (IATA/AITA) and &#039;&#039;[[International Theatre Institute]]&#039;&#039; (ITI). &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Verband_Bayerischer_Amateurtheater_e._V.&amp;diff=1871</id>
		<title>Verband Bayerischer Amateurtheater e. V.</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Verband_Bayerischer_Amateurtheater_e._V.&amp;diff=1871"/>
		<updated>2026-01-27T20:46:57Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Organization|qid=Q2513550}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verband Bayerischer Amateurtheater e.V. (VBAT)&#039;&#039;&#039; is an association representing Bavaria&#039;s amateur theater community. With approximately 700 member ensembles and over 60,000 volunteers, it stands as one of the largest state-level organizations for the performing arts in Germany. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
The association is organized into regional divisions: Oberbayern, Niederbayern, Oberpfalz, Franken, Schwaben, and a special division for &#039;&#039;Figurentheater&#039;&#039; (puppet theater). &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Verband Bayerischer Amateurtheater e.V. was founded on October 21, 1923, in Augsburg. Originally named &#039;&#039;Bayerischer Verband Volksspielkunst – Kulturgemeinschaft für Volkskunst und Volksbildung – Verband bayerischer Theatervereine e.V.&#039;&#039;, the association initially aimed to foster folk art and community theater, encouraging appreciation for Bavaria’s cultural traditions. Over the years, VBAT expanded its mission and influence, evolving into a central advocacy organization for amateur theater across Bavaria. Today, it supports an impressive array of theater groups throughout the region, each contributing to the local arts scene. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?chronik=&amp;amp;modul=chronik&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mission and Objectives ==&lt;br /&gt;
VBAT&#039;s core mission is to advocate for Bavarian amateur theater within the cultural, artistic, political, and social spheres. By offering cultural engagement initiatives and educational programs, VBAT encourages collaboration across generations and addresses relevant social themes like integration, tolerance, and intergenerational dialogue. Additionally, the association is dedicated to preserving Bavarian theatrical heritage, dialects, and traditional expressions. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activities and Programs ==&lt;br /&gt;
VBAT offers a variety of programs to enhance the quality and reach of amateur theater. It provides a statewide training initiative led by professional instructors, accessible to all member groups. The association also awards the &amp;quot;[[Larifari]],&amp;quot; a prestigious honor that celebrates achievements in Bavarian amateur theater. Additional member services include guidance on legal matters, assistance with GEMA/GVL licensing, and technical support for productions, among others. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Collaborations ==&lt;br /&gt;
VBAT is affiliated with organizations such as &#039;&#039;Bürgerallianz Bayern&#039;&#039;, &#039;&#039;Bayernbund&#039;&#039;, and &#039;&#039;Bayerischer Landesverein für Heimatpflege&#039;&#039;. It is also associated with the [[Bund Deutscher Amateurtheater (BDAT)|&#039;&#039;Bund Deutscher Amateurtheater e.V.&#039;&#039; (BDAT)]] and &#039;&#039;Union Internationale de la Marionnette&#039;&#039; (UNIMA) Germany, connecting VBAT to international networks like the &#039;&#039;[[International Amateur Theatre Association]]&#039;&#039; (IATA/AITA) and &#039;&#039;[[International Theatre Institute]]&#039;&#039; (ITI). &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#invoke:GetMembers|getMembers|qid=Q2513550}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Verband_Bayerischer_Amateurtheater_e._V.&amp;diff=1870</id>
		<title>Verband Bayerischer Amateurtheater e. V.</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Verband_Bayerischer_Amateurtheater_e._V.&amp;diff=1870"/>
		<updated>2026-01-27T20:45:21Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Organization|qid=Q2513550}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verband Bayerischer Amateurtheater e.V. (VBAT)&#039;&#039;&#039; is an association representing Bavaria&#039;s amateur theater community. With approximately 700 member ensembles and over 60,000 volunteers, it stands as one of the largest state-level organizations for the performing arts in Germany. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
The association is organized into regional divisions: Oberbayern, Niederbayern, Oberpfalz, Franken, Schwaben, and a special division for &#039;&#039;Figurentheater&#039;&#039; (puppet theater). &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Verband Bayerischer Amateurtheater e.V. was founded on October 21, 1923, in Augsburg. Originally named &#039;&#039;Bayerischer Verband Volksspielkunst – Kulturgemeinschaft für Volkskunst und Volksbildung – Verband bayerischer Theatervereine e.V.&#039;&#039;, the association initially aimed to foster folk art and community theater, encouraging appreciation for Bavaria’s cultural traditions. Over the years, VBAT expanded its mission and influence, evolving into a central advocacy organization for amateur theater across Bavaria. Today, it supports an impressive array of theater groups throughout the region, each contributing to the local arts scene. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?chronik=&amp;amp;modul=chronik&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mission and Objectives ==&lt;br /&gt;
VBAT&#039;s core mission is to advocate for Bavarian amateur theater within the cultural, artistic, political, and social spheres. By offering cultural engagement initiatives and educational programs, VBAT encourages collaboration across generations and addresses relevant social themes like integration, tolerance, and intergenerational dialogue. Additionally, the association is dedicated to preserving Bavarian theatrical heritage, dialects, and traditional expressions. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activities and Programs ==&lt;br /&gt;
VBAT offers a variety of programs to enhance the quality and reach of amateur theater. It provides a statewide training initiative led by professional instructors, accessible to all member groups. The association also awards the &amp;quot;[[Larifari]],&amp;quot; a prestigious honor that celebrates achievements in Bavarian amateur theater. Additional member services include guidance on legal matters, assistance with GEMA/GVL licensing, and technical support for productions, among others. &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Collaborations ==&lt;br /&gt;
VBAT is affiliated with organizations such as &#039;&#039;Bürgerallianz Bayern&#039;&#039;, &#039;&#039;Bayernbund&#039;&#039;, and &#039;&#039;Bayerischer Landesverein für Heimatpflege&#039;&#039;. It is also associated with the [[Bund Deutscher Amateurtheater (BDAT)|&#039;&#039;Bund Deutscher Amateurtheater e.V.&#039;&#039; (BDAT)]] and &#039;&#039;Union Internationale de la Marionnette&#039;&#039; (UNIMA) Germany, connecting VBAT to international networks like the &#039;&#039;International Amateur Theatre Association&#039;&#039; (IATA/AITA) and &#039;&#039;International Theatre Institute&#039;&#039; (ITI). &amp;lt;ref&amp;gt;https://amateurtheater-bayern.de/index.php?menkey=leitbild&amp;amp;modul=content_show&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#invoke:GetMembers|getMembers|qid=Q2513550}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Herbert_Gardner&amp;diff=1869</id>
		<title>Herbert Gardner</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Herbert_Gardner&amp;diff=1869"/>
		<updated>2026-01-27T20:43:08Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Use infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q5734170}}&lt;br /&gt;
[[File:Herbert Gardner, Vanity Fair, 1886-04-07.jpg|thumb|Caricature of Herbert Gardner by Spy, published in &#039;&#039;Vanity Fair&#039;&#039; in 1886 with the caption &amp;quot;amateur theatricals&amp;quot;. ]]&lt;br /&gt;
&#039;&#039;&#039;Herbert Colstoun Gardner, 1st Baron Burghclere&#039;&#039;&#039; (9 June 1846 – 6 May 1921) was a British Liberal politician who sat in the House of Commons from 1885 until he was raised to the peerage in 1895. He went to the University of Cambridge where he was involved in the [[Cambridge Amateur Dramatic Club (A.D.C.)]] and later was a member of the Canterbury Old Stagers. His caricature by Spy, published in &#039;&#039;Vanity Fair&#039;&#039; in 1886, was captioned &amp;quot;amateur theatricals&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
He went on to write plays, including a three act comedy &#039;&#039;Time Will Tell&#039;&#039;. In January 1885 he performed the lead male role in his own play at Sir [[Percy Florence Shelley]]&#039;s private theatre at Boscombe Manor, which the playbill notes was &#039;produced under the personal supervision of the Author&#039;. This was alongside other well-known amateurs such as [[Carlotta Addison]], Arthur Bourchier, Captain Arthur Gooch, [[Augustus Spalding]], Claude Ponsonby, Cecil Clay and Sir Charles Young.  &lt;br /&gt;
[[Category:Britain]]&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1868</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1868"/>
		<updated>2026-01-27T20:39:45Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: fix date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year then&lt;br /&gt;
                    local y = tonumber(year)&lt;br /&gt;
                    local m = tonumber(month) or 0&lt;br /&gt;
                    local d = tonumber(day) or 0&lt;br /&gt;
                    -- If month or day are zero/unknown, show only the year&lt;br /&gt;
                    if m == 0 or d == 0 then&lt;br /&gt;
                        return string.format(&#039;%04d&#039;, y)&lt;br /&gt;
                    end&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, y, m, d)&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18)&lt;br /&gt;
        local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
        if image then&lt;br /&gt;
            local imageStr = formatValue(image)&lt;br /&gt;
            if imageStr then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;&amp;lt;div style=&amp;quot;width:100%; text-align:center;&amp;quot;&amp;gt;[&#039; .. websiteStr ..&lt;br /&gt;
                    &#039; &#039; .. displayUrl .. &#039;]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1867</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1867"/>
		<updated>2026-01-27T20:37:47Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Test website location&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18)&lt;br /&gt;
        local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
        if image then&lt;br /&gt;
            local imageStr = formatValue(image)&lt;br /&gt;
            if imageStr then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;&amp;lt;div style=&amp;quot;width:100%; text-align:center;&amp;quot;&amp;gt;[&#039; .. websiteStr ..&lt;br /&gt;
                    &#039; &#039; .. displayUrl .. &#039;]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1866</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1866"/>
		<updated>2026-01-27T20:34:21Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Fix for orgs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
    local infobox&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18)&lt;br /&gt;
        local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
        if image then&lt;br /&gt;
            local imageStr = formatValue(image)&lt;br /&gt;
            if imageStr then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Theatergesellschaft_Bad_Endorf&amp;diff=1865</id>
		<title>Theatergesellschaft Bad Endorf</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Theatergesellschaft_Bad_Endorf&amp;diff=1865"/>
		<updated>2026-01-27T20:32:32Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Use new infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
The [https://www.theater-endorf.de Theatergesellschaft Bad Endorf e.V.] is an amateur theatre that started performing in 1790 and hence counts as the third oldest theatre in Bavaria. It has a specialization in religious drama and performs every year from Pentecoast on for ca. 5 weeks, hosting up to 5000 spectators during a season. The theatre society is located on Rosenheimer Straße 6, Bad Endorf. Performances normally last several hours and involve large casts of ca. 60 actors. All set designs and costumes are produced by the members. The Bavarian State Ministery of Education and Culture mentioned the amateur theatre valuable in regard to popular education and artistic practice.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In a time period at the end of eighteenth century when in Bavaria the church and state authorities largely repressed religious and passion play, theatre amateurs in the village of Bad Endorf/Teisenheim performed in 1790 the religious play „Thraurige Vorstellung dess Erschrecklichen Jingsten Gerichts“ („Saddening Representation of the Horrible Last Judgement“).&amp;lt;ref&amp;gt;A thorough analysis and discussion of the play as performed in Bad Endorf is found in Edgar Harvolk, &#039;&#039;Das Endorser Volksschauspiel&#039;&#039;, Rosenheim 1974, ch. II &amp;quot;Das Endorfer Jüngst-Gericht-Spiel&amp;quot;, 24-86.&amp;lt;/ref&amp;gt; The play was loosely inspired by the themes of &amp;quot;Everyman&amp;quot; presenting the horrible consequences of falling to the temptations of evil. The cast consisted of 27 people in addition to a large number of extras for the group of &amp;quot;the righteous&amp;quot; and &amp;quot;the godless&amp;quot; in the grande finale.&amp;lt;ref&amp;gt;Harvolk, &#039;&#039;Das Endorfer Volksschauspiel&#039;&#039;, 51.&amp;lt;/ref&amp;gt; After this first outdoor performance the pheasant theatre (Bauerntheater) continued to stage religious plays, historic knight and robber plays (&amp;quot;Ritter- und Räuberstücke&amp;quot;) in diverse local locations (local inns, yards etc.). The ambition to follow the Oberammergau example and engage in passion play from 1817 on was continually blocked by the church authorities that did not deem the pheasants worth staging the passion of Christ.&amp;lt;ref&amp;gt;Edgar Harvolk, &#039;&#039;Die Endorfer Volksschauspiele seit 1790&#039;&#039;, Munich 1990, 5-6.&amp;lt;/ref&amp;gt; In 1866 a group of 12 village people (pheasants, inn keepers, merchants) initiated a formal theatre association (&amp;quot;Theatergesellschaft Bad Endorf&amp;quot;) and raised money to start building their own theatre. One of their success performances was the religious play of &amp;quot;The Egyptian Joseph&amp;quot; (&amp;quot;Der ägyptische Joseph&amp;quot;) that included music performance and the staging of tableaux vivants &amp;quot;in the style of the passion plays in Oberammergau&amp;quot;&amp;lt;ref&amp;gt;Subtitle on a theatre bill from 1884, quoted in Harvolk, &#039;&#039;Die Endorser Volksschauspiele&#039;&#039;, 8.&amp;lt;/ref&amp;gt;. In 1958 the theatre was remodelled and hosts now up to 534 spectators. Since the end oft he 1960s the amateur theatre also performed comedies and farces. In 1991 it received the Kulturpreis (cultural prize) from the county of Rosenheim.&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
&lt;br /&gt;
* Paula Aiblinger&lt;br /&gt;
* Konrad Schlaipfer&lt;br /&gt;
* Annemarie Ramoser&lt;br /&gt;
* Julia Hofmann&lt;br /&gt;
* Werner Hofmann&lt;br /&gt;
* Barbara Bichler&lt;br /&gt;
* Andrea Krug&lt;br /&gt;
* Katharina Plank&lt;br /&gt;
* Martina Seehuber-Liegl&lt;br /&gt;
* Marlene Dickl&lt;br /&gt;
* Emmeram Aiblinger&lt;br /&gt;
* Josef Mayer&lt;br /&gt;
* Markus Mädler&lt;br /&gt;
* Flo Schauer&lt;br /&gt;
* Kathi Plank&lt;br /&gt;
&lt;br /&gt;
== Repertoire ==&lt;br /&gt;
They regularly performed plays by the following authors:&lt;br /&gt;
&lt;br /&gt;
* 1949-1955 Christian Mayrl; former clockmaker from Eggstätt (7 plays)&lt;br /&gt;
* 1976-1995 Hubert Bomba from Bad Endorf (13 plays)&lt;br /&gt;
* 2000 Margarethe Janssen from Waldkraiburg (1 play)&lt;br /&gt;
* 2007, 2010, 2012 &amp;amp; 2014 Horst Rankl from Rosenheim (4 plays)&lt;br /&gt;
&lt;br /&gt;
Religious play performed between 1945 and 1990:&lt;br /&gt;
&lt;br /&gt;
* Die hl. Elisabeth von Thüringen, 1946, 1956, 1972, 1985&lt;br /&gt;
* Saulus, 1947, 1966, 1982&lt;br /&gt;
* Der verlorene Sohn, 1948, 1977&lt;br /&gt;
* Die sel. Irmengard, 1949, 1968, 1983&lt;br /&gt;
* Der Ägyptische Joseph, 1950, 1979&lt;br /&gt;
* Franziskus von Assisi, 1951, 1967, 1980&lt;br /&gt;
* Margaretha von Cortona, 1952, 1969&lt;br /&gt;
* Nikolaus von Flüe, 1953, 1973, &lt;br /&gt;
* Thomas Morus, 1954, 1976&lt;br /&gt;
* Bruder Konrad von Parzham, 1955, 1970, 1984&lt;br /&gt;
* Maria Lourdes, 1957, 1974, 1988&lt;br /&gt;
* Hedwig von Andechs, 1958, 1975&lt;br /&gt;
* Die hl. Nothburga, 1959, 1971,1987&lt;br /&gt;
* Der hl. Pfarrer von Ars, 1960, 1989&lt;br /&gt;
* Klara von Assisi, 1961&lt;br /&gt;
* Klemens Maria Hofbauer, 1962&lt;br /&gt;
* Mutter Monika und ihr Sohn Augustinus, 1963, 1981&lt;br /&gt;
* Königin Adelheid, 1964, 1978&lt;br /&gt;
* Der Rufer Gottes - Kolping, 1965&lt;br /&gt;
* Saulus, 1966, 1982&lt;br /&gt;
* Franziskus von Aissisi, 1967, 1980&lt;br /&gt;
* Der hl. Stephanus, 1986&lt;br /&gt;
* Moses, 1990&lt;br /&gt;
&lt;br /&gt;
Recently performed plays:&lt;br /&gt;
&lt;br /&gt;
* Gerhard Prell: „Martin Luther“ (religious play)&lt;br /&gt;
* [[Paula Aiblinger]]: Bruder Konrad (religious play)&lt;br /&gt;
* Paula Aiblinger: Hedwig von Andechs (religious play)&lt;br /&gt;
* [[Julia and Werner Hofmann]]: Irmengard vom Chiemsee (religious play)&lt;br /&gt;
* Julia and Werner Hofmann: Die Musketiere (for families)&lt;br /&gt;
* [[Erich Eckert]], Hubert Bomba, Elisabeth Neubauer: Der verlorene Sohn (religious play)&lt;br /&gt;
* [[Franz Schauer]]: „Die Pfiffige Urschl“ (comedy)&lt;br /&gt;
* [[Ulla Kling]]: A Leich zum Kaffee (comedy)&lt;br /&gt;
* [[Carl Borro Schwerla]]: Graf Schorschi (comedy)&lt;br /&gt;
* [[Georg Lohmeier]]: Königlich Bayerisches Amtsgericht (comedy)&lt;br /&gt;
* [[Marianne Santl]]: Herkules der Musterstier (comedy)&lt;br /&gt;
* [[Ludwig Anzensgruber]]: Doppelselbstmord. Ko des sei? (comedy)&lt;br /&gt;
* [[Howard Pyle]]: Robin Hood (for children)&lt;br /&gt;
* Hirtenstück&lt;br /&gt;
* Astrid Lindgren: Ronja Räubertochter (for children)&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
* Harvolk, Edgar, &#039;&#039;Das Endorfer Volksschauspiel&#039;&#039;, Rosenheim 1974.&lt;br /&gt;
* Harvolk, Edgar, &#039;&#039;Die Endorfer Volksschauspiele seit 1790&#039;&#039;, Munich 1990.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.theater-endorf.de/ Official Website]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Category:Germany]]&lt;br /&gt;
[[Category:Clubs, Societies and Institutions]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=MediaWiki:Tagline&amp;diff=1864</id>
		<title>MediaWiki:Tagline</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=MediaWiki:Tagline&amp;diff=1864"/>
		<updated>2026-01-27T20:29:15Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Delete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=August_von_Kotzebue&amp;diff=1863</id>
		<title>August von Kotzebue</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=August_von_Kotzebue&amp;diff=1863"/>
		<updated>2026-01-27T20:25:22Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Use qid&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q57242}}&lt;br /&gt;
[https://de.wikipedia.org/wiki/August_von_Kotzebue August von Kotzebue] (1761-1819) was a writer, dramatist, amateur theatre practitioner, editor, public intellectual and political actor. &lt;br /&gt;
&lt;br /&gt;
[[File:Menschenhaß und Reue 1827 Kopie.jpg|thumb|Menschenhaß und Reue, Illustration from August von Kotzebue’s sämmtliche dramatische Werke. Leipzig, bey Paul Gotthelf Kummer, 1827.]]&lt;br /&gt;
&lt;br /&gt;
== Kotzebue and amateur theatricals ==&lt;br /&gt;
[[File:Kanuti Gildi Saal1.JPG|thumb|Kanutigilde, Tallinn]]&lt;br /&gt;
He is one of the first dramatists that became internationally known and his plays were translated to many languages already during his lifetime. He was particularly popular in amateur theatricals. With his &amp;quot;Almanach dramatischer Spiele&amp;quot; (1802 to 1820) he wrote and edited a series of easy pieces and one-act plays particularly suited for performance in amateur theatres. In 1784, together with Friedrich Gustav von Rosen, he founded the [[Liebhabertheater Reval|Liebhabertheater in Reval]] (today Tallinn, Estonia) and continued to write and perform for it until its closing in 1795. Here, he premiered most of his later famous pieces, e.g. &amp;quot;Menschenhaß und Reue&amp;quot; (premiered 1788), &amp;quot;Der Eremit auf Formentera&amp;quot; (1790), &amp;quot;Die Indianer in England&amp;quot; (premiered 1789), &amp;quot;Die Sonnenjungfrau&amp;quot; (premiered 1789). Kotzebue initiated the building of a stage in the Kanutigilde where they performed. The amateur theatre in Reval ended its activity after the opening of a professional theatre in the city. From 1812 to 1813 was Kotzebue the director of the Reval city theatre.&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=August_von_Kotzebue&amp;diff=1862</id>
		<title>August von Kotzebue</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=August_von_Kotzebue&amp;diff=1862"/>
		<updated>2026-01-27T20:24:49Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Use infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox}}&lt;br /&gt;
[https://de.wikipedia.org/wiki/August_von_Kotzebue August von Kotzebue] (1761-1819) was a writer, dramatist, amateur theatre practitioner, editor, public intellectual and political actor. &lt;br /&gt;
&lt;br /&gt;
[[File:Menschenhaß und Reue 1827 Kopie.jpg|thumb|Menschenhaß und Reue, Illustration from August von Kotzebue’s sämmtliche dramatische Werke. Leipzig, bey Paul Gotthelf Kummer, 1827.]]&lt;br /&gt;
&lt;br /&gt;
== Kotzebue and amateur theatricals ==&lt;br /&gt;
[[File:Kanuti Gildi Saal1.JPG|thumb|Kanutigilde, Tallinn]]&lt;br /&gt;
He is one of the first dramatists that became internationally known and his plays were translated to many languages already during his lifetime. He was particularly popular in amateur theatricals. With his &amp;quot;Almanach dramatischer Spiele&amp;quot; (1802 to 1820) he wrote and edited a series of easy pieces and one-act plays particularly suited for performance in amateur theatres. In 1784, together with Friedrich Gustav von Rosen, he founded the [[Liebhabertheater Reval|Liebhabertheater in Reval]] (today Tallinn, Estonia) and continued to write and perform for it until its closing in 1795. Here, he premiered most of his later famous pieces, e.g. &amp;quot;Menschenhaß und Reue&amp;quot; (premiered 1788), &amp;quot;Der Eremit auf Formentera&amp;quot; (1790), &amp;quot;Die Indianer in England&amp;quot; (premiered 1789), &amp;quot;Die Sonnenjungfrau&amp;quot; (premiered 1789). Kotzebue initiated the building of a stage in the Kanutigilde where they performed. The amateur theatre in Reval ended its activity after the opening of a professional theatre in the city. From 1812 to 1813 was Kotzebue the director of the Reval city theatre.&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1861</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1861"/>
		<updated>2026-01-27T20:19:56Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Image width&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18)&lt;br /&gt;
        local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
        if image then&lt;br /&gt;
            local imageStr = formatValue(image)&lt;br /&gt;
            if imageStr then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|300px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1860</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1860"/>
		<updated>2026-01-27T20:15:09Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Update label&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local personTitle = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            personTitle = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = personTitle,&lt;br /&gt;
            titleClass = &#039;hintergrundfarbe6&#039;,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18)&lt;br /&gt;
        local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
        if image then&lt;br /&gt;
            local imageStr = formatValue(image)&lt;br /&gt;
            if imageStr then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1859</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1859"/>
		<updated>2026-01-27T20:12:35Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: New image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = entity.labels.en,&lt;br /&gt;
            titleClass = &#039;hintergrundfarbe6&#039;,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add image (P18)&lt;br /&gt;
        local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
        if image then&lt;br /&gt;
            local imageStr = formatValue(image)&lt;br /&gt;
            if imageStr then&lt;br /&gt;
                infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) ..&lt;br /&gt;
               &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1858</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1858"/>
		<updated>2026-01-27T20:04:05Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Add categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local given = formatValue(getPropertyValue(&#039;P735&#039;)) or &#039;&#039;&lt;br /&gt;
        local family = formatValue(getPropertyValue(&#039;P734&#039;)) or &#039;&#039;&lt;br /&gt;
        local personTitle = (given .. &#039; &#039; .. family):gsub(&#039;^%s+&#039;, &#039;&#039;):gsub(&lt;br /&gt;
                                &#039;%s+$&#039;, &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = personTitle ~= &#039;&#039; and personTitle or qid,&lt;br /&gt;
            titleClass = &#039;hintergrundfarbe6&#039;,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox) .. &#039;\n[[Category:People]]&#039;&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox) .. &#039;\n[[Category:Clubs, Societies and Institutions]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Robert_Coates&amp;diff=1857</id>
		<title>Robert Coates</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Robert_Coates&amp;diff=1857"/>
		<updated>2026-01-27T20:03:15Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: remove category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q1747746}}&lt;br /&gt;
Robert Coates (1772- 21 February 1848) was an amateur actor, who performed in Britain in the early nineteenth century. He was satirised by the press and by cartoonists for his amateur theatrical endeavours and for his interests in fashion.    &lt;br /&gt;
&lt;br /&gt;
== Amateur Theatrical Career==&lt;br /&gt;
He performed in a number of roles in the early nineteenth century. &lt;br /&gt;
&lt;br /&gt;
==Personal Life==&lt;br /&gt;
He was married in 1823 to Emma and had two children.  &lt;br /&gt;
&lt;br /&gt;
Using queer historiographical approaches to studying Robert Coates, it seems possible that he was queer.   &lt;br /&gt;
&lt;br /&gt;
Robert Coates is buried in [[Kensal Green Cemetery]] in London.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot;&amp;gt;&lt;br /&gt;
File:The Gay Lothario. The Great and Celebrated Amateur of Fashion MET DP818363.jpg|The Gay Lothario: The Great and Celebrated Amateur of Fashion&lt;br /&gt;
File:The amateur actor Robert Coates dreaming about his success o Wellcome V0050204.jpg|Satirical image of Robert Coates titled &#039;An Amateur&#039;s Dream&#039;.&lt;br /&gt;
File:Bodleian Libraries, Princely piety, or- the worshippers at Wanstead.jpg|Caricature titled &#039;Princely Piety, or- the Worshippers at Wanstead&#039;. The caricature, by George Cruikshank, depicts suitors wooing a wealthy young heiress. Robert Coates appears in black, to the left of Sir Lumley Skeffington in red, at the foot of the staircase.&lt;br /&gt;
File:Robert Coates (actor).jpg|Robert Coates&lt;br /&gt;
File:Portrait of Emma Anne Coates (nee Robinson) - DPLA - a50ac6022116e3c100a5fc8af59977ba.jpg|Emma Anne Coates, the wife of Robert Coates&lt;br /&gt;
File:Grave of Robert Coates in Kensal Green Cemetery.jpg|Robert Coates&#039;s grave in Kensal Green Cemetery, London.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Britain]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Robert_Coates&amp;diff=1856</id>
		<title>Robert Coates</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Robert_Coates&amp;diff=1856"/>
		<updated>2026-01-27T20:01:36Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: use infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q1747746}}&lt;br /&gt;
Robert Coates (1772- 21 February 1848) was an amateur actor, who performed in Britain in the early nineteenth century. He was satirised by the press and by cartoonists for his amateur theatrical endeavours and for his interests in fashion.    &lt;br /&gt;
&lt;br /&gt;
== Amateur Theatrical Career==&lt;br /&gt;
He performed in a number of roles in the early nineteenth century. &lt;br /&gt;
&lt;br /&gt;
==Personal Life==&lt;br /&gt;
He was married in 1823 to Emma and had two children.  &lt;br /&gt;
&lt;br /&gt;
Using queer historiographical approaches to studying Robert Coates, it seems possible that he was queer.   &lt;br /&gt;
&lt;br /&gt;
Robert Coates is buried in [[Kensal Green Cemetery]] in London.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot;&amp;gt;&lt;br /&gt;
File:The Gay Lothario. The Great and Celebrated Amateur of Fashion MET DP818363.jpg|The Gay Lothario: The Great and Celebrated Amateur of Fashion&lt;br /&gt;
File:The amateur actor Robert Coates dreaming about his success o Wellcome V0050204.jpg|Satirical image of Robert Coates titled &#039;An Amateur&#039;s Dream&#039;.&lt;br /&gt;
File:Bodleian Libraries, Princely piety, or- the worshippers at Wanstead.jpg|Caricature titled &#039;Princely Piety, or- the Worshippers at Wanstead&#039;. The caricature, by George Cruikshank, depicts suitors wooing a wealthy young heiress. Robert Coates appears in black, to the left of Sir Lumley Skeffington in red, at the foot of the staircase.&lt;br /&gt;
File:Robert Coates (actor).jpg|Robert Coates&lt;br /&gt;
File:Portrait of Emma Anne Coates (nee Robinson) - DPLA - a50ac6022116e3c100a5fc8af59977ba.jpg|Emma Anne Coates, the wife of Robert Coates&lt;br /&gt;
File:Grave of Robert Coates in Kensal Green Cemetery.jpg|Robert Coates&#039;s grave in Kensal Green Cemetery, London.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Britain]]&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Germaine_de_Sta%C3%ABl&amp;diff=1855</id>
		<title>Germaine de Staël</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Germaine_de_Sta%C3%ABl&amp;diff=1855"/>
		<updated>2026-01-27T19:53:38Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Use correct infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DynamicInfobox|qid=Q123041}}&lt;br /&gt;
[https://sv.wikipedia.org/wiki/Germaine_de_Staël Germaine de Staël] (1766-1817) used her prominent position in the salons to question authority and create her own theatre. Her political and feminist writings caused her to be exiled for many years, and she soon became a forerunner of the emerging Romantic movement.&amp;lt;ref&amp;gt;Maria Fairweather, &#039;&#039;Madame de Staël&#039;&#039; (London, 2005); Carla Hesse, &#039;&#039;The Other Enlightenment&#039;&#039; (New Jersey, 2001); Machteld de Poortere, &#039;&#039;The Philosophical and Literary Ideas of Mme De Staël and of Mme De Genlis&#039;&#039;, (New York, 2007).&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
While in exile she surrounded herself with the intellectuals of Europe and created her own amateur theatre in Coppet, Switzerland, where some of her own plays where performed, often with de Staël herself on stage.&amp;lt;ref&amp;gt;Rougemont, Martine de &#039;Pour un répertoire des rôles et des représentations de Mme de Staël’, &#039;&#039;Cahiers Staëliens&#039;&#039;, no. 19, 1974, p. 79-92; Plagnol-Diéval, M-E, ‘Le Théâtre des familles de madame de Staël’, &#039;&#039;Cahiers Staëliens&#039;&#039;, no. 50, 1999, p. 45-65 ; Blandine Poirier, &#039;Le Théâtre de société de Germaine de Staël: une forme d’engagement ?&#039;, in &#039;&#039;Théâtre et société : Réseaux de sociabilité et représentations de la société&#039;&#039;, eds. Valentina Ponzetto and Jennifer Ruimi, p. 105-124. &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:Germaine de Staël by Vladimir Borovikovsky.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:DynamicInfobox&amp;diff=1854</id>
		<title>Template:DynamicInfobox</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:DynamicInfobox&amp;diff=1854"/>
		<updated>2026-01-27T19:53:12Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Create template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{#invoke:DynamicCapiunto|main|qid={{{qid}}}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for the Amateur Theatre Wiki Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1853</id>
		<title>Module:DynamicCapiunto</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:DynamicCapiunto&amp;diff=1853"/>
		<updated>2026-01-27T19:50:08Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Create module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper to get claim entity id (if the claim is an entity)&lt;br /&gt;
    local function getClaimEntityId(pid)&lt;br /&gt;
        local v = getPropertyValue(pid)&lt;br /&gt;
        if type(v) == &#039;table&#039; and v.id then return v.id end&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Decide which infobox to render based on instance (P31)&lt;br /&gt;
    local instanceId = getClaimEntityId(&#039;P31&#039;)&lt;br /&gt;
&lt;br /&gt;
    if instanceId == &#039;Q5&#039; then&lt;br /&gt;
        -- Person infobox&lt;br /&gt;
        local given = formatValue(getPropertyValue(&#039;P735&#039;)) or &#039;&#039;&lt;br /&gt;
        local family = formatValue(getPropertyValue(&#039;P734&#039;)) or &#039;&#039;&lt;br /&gt;
        local personTitle = (given .. &#039; &#039; .. family):gsub(&#039;^%s+&#039;, &#039;&#039;):gsub(&lt;br /&gt;
                                &#039;%s+$&#039;, &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = personTitle ~= &#039;&#039; and personTitle or qid,&lt;br /&gt;
            titleClass = &#039;hintergrundfarbe6&#039;,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Birthplace (P19)&lt;br /&gt;
        local birthplace = getPropertyValue(&#039;P19&#039;)&lt;br /&gt;
        if birthplace then&lt;br /&gt;
            infobox:addRow(&#039;Birthplace&#039;, formatValue(birthplace))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Birthday (P569)&lt;br /&gt;
        local birthday = getPropertyValue(&#039;P569&#039;)&lt;br /&gt;
        if birthday then&lt;br /&gt;
            infobox:addRow(&#039;Birthday&#039;, formatValue(birthday))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Death (P570)&lt;br /&gt;
        local death = getPropertyValue(&#039;P570&#039;)&lt;br /&gt;
        if death then infobox:addRow(&#039;Death&#039;, formatValue(death)) end&lt;br /&gt;
&lt;br /&gt;
        -- Occupation (P106)&lt;br /&gt;
        local occupation = getPropertyValue(&#039;P106&#039;)&lt;br /&gt;
        if occupation then&lt;br /&gt;
            infobox:addRow(&#039;Occupation&#039;, formatValue(occupation))&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(infobox)&lt;br /&gt;
    else&lt;br /&gt;
        -- Default: organisation/troupe infobox (existing behavior)&lt;br /&gt;
        local title = qid&lt;br /&gt;
        if entity.labels and entity.labels.en then&lt;br /&gt;
            title = entity.labels.en.value&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local infobox = capiunto.create({&lt;br /&gt;
            title = title,&lt;br /&gt;
            bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
            bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
        })&lt;br /&gt;
&lt;br /&gt;
        -- Add official name (P1448)&lt;br /&gt;
        local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
        if officialName then&lt;br /&gt;
            infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1852</id>
		<title>Module:CapiuntoOrganization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1852"/>
		<updated>2026-01-27T17:33:03Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: test links to wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity then&lt;br /&gt;
                    local label = (linkedEntity.labels and&lt;br /&gt;
                                      linkedEntity.labels.en) and&lt;br /&gt;
                                      linkedEntity.labels.en.value or value.id&lt;br /&gt;
                    -- Then prefer an en.wikipedia sitelink (external link)&lt;br /&gt;
                    if linkedEntity.sitelinks and linkedEntity.sitelinks.enwiki and&lt;br /&gt;
                        linkedEntity.sitelinks.enwiki.url then&lt;br /&gt;
                        return&lt;br /&gt;
                            &#039;[&#039; .. linkedEntity.sitelinks.enwiki.url .. &#039; &#039; ..&lt;br /&gt;
                                label .. &#039;]&#039;&lt;br /&gt;
                    end&lt;br /&gt;
                    -- Fallback to the English label if available&lt;br /&gt;
                    if linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                        return label&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get the title (use English label or QID as fallback)&lt;br /&gt;
    local title = qid&lt;br /&gt;
    if entity.labels and entity.labels.en then title = entity.labels.en.value end&lt;br /&gt;
&lt;br /&gt;
    -- Create the infobox&lt;br /&gt;
    local infobox = capiunto.create({&lt;br /&gt;
        title = title,&lt;br /&gt;
        bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
        bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    -- Add official name (P1448)&lt;br /&gt;
    local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
    if officialName then&lt;br /&gt;
        infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1851</id>
		<title>Module:CapiuntoOrganization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1851"/>
		<updated>2026-01-27T16:20:34Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: nicer link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
&lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
&lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
&lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid ..&lt;br /&gt;
                   &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then return nil end&lt;br /&gt;
&lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then return nil end&lt;br /&gt;
&lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day =&lt;br /&gt;
                    dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year),&lt;br /&gt;
                                         tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
                -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity and linkedEntity.labels and&lt;br /&gt;
                    linkedEntity.labels.en then&lt;br /&gt;
                    -- Try to find a local page for this entity&lt;br /&gt;
                    local localTitle = mw.ext.UnlinkedWikibase.getLocalTitle(&lt;br /&gt;
                                           value.id)&lt;br /&gt;
                    if localTitle then&lt;br /&gt;
                        return &#039;[[&#039; .. localTitle.prefixedText .. &#039;|&#039; ..&lt;br /&gt;
                                   linkedEntity.labels.en.value .. &#039;]]&#039;&lt;br /&gt;
                    else&lt;br /&gt;
                        return linkedEntity.labels.en.value&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
                -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get the title (use English label or QID as fallback)&lt;br /&gt;
    local title = qid&lt;br /&gt;
    if entity.labels and entity.labels.en then title = entity.labels.en.value end&lt;br /&gt;
&lt;br /&gt;
    -- Create the infobox&lt;br /&gt;
    local infobox = capiunto.create({&lt;br /&gt;
        title = title,&lt;br /&gt;
        bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
        bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    -- Add official name (P1448)&lt;br /&gt;
    local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
    if officialName then&lt;br /&gt;
        infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then infobox:addRow(&#039;Country&#039;, formatValue(country)) end&lt;br /&gt;
&lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Add official website (P856) as full-width row at bottom&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            -- Strip http:// or https:// from display text&lt;br /&gt;
            local displayUrl = websiteStr:gsub(&#039;^https?://&#039;, &#039;&#039;)&lt;br /&gt;
            infobox:addWikitext(&lt;br /&gt;
                &#039;{| style=&amp;quot;width:100%; text-align:center;&amp;quot;\n|-\n| [&#039; ..&lt;br /&gt;
                    websiteStr .. &#039; &#039; .. displayUrl .. &#039;]\n|}&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(infobox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1850</id>
		<title>Module:CapiuntoOrganization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1850"/>
		<updated>2026-01-27T16:15:59Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: update registration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
    &lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, &#039;id=&#039; .. qid)&lt;br /&gt;
    &lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
    &lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid .. &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day = dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year), tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
            -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity and linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                    -- Try to find a local page for this entity&lt;br /&gt;
                    local localTitle = mw.ext.UnlinkedWikibase.getLocalTitle(value.id)&lt;br /&gt;
                    if localTitle then&lt;br /&gt;
                        return &#039;[[&#039; .. localTitle.prefixedText .. &#039;|&#039; .. linkedEntity.labels.en.value .. &#039;]]&#039;&lt;br /&gt;
                    else&lt;br /&gt;
                        return linkedEntity.labels.en.value&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
            -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Get the title (use English label or QID as fallback)&lt;br /&gt;
    local title = qid&lt;br /&gt;
    if entity.labels and entity.labels.en then&lt;br /&gt;
        title = entity.labels.en.value&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Create the infobox&lt;br /&gt;
    local infobox = capiunto.create({&lt;br /&gt;
        title = title,&lt;br /&gt;
        bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
        bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
    })&lt;br /&gt;
    &lt;br /&gt;
    -- Add official name (P1448)&lt;br /&gt;
    local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
    if officialName then&lt;br /&gt;
        infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add official website (P856)&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            infobox:addRow(&#039;Official Website&#039;, &#039;[&#039; .. websiteStr .. &#039;]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then&lt;br /&gt;
        infobox:addRow(&#039;Country&#039;, formatValue(country))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return tostring(infobox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1849</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1849"/>
		<updated>2026-01-27T16:14:39Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: update with capiunto&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{#invoke:CapiuntoOrganization|main|qid={{{qid}}}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1848</id>
		<title>Module:CapiuntoOrganization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Module:CapiuntoOrganization&amp;diff=1848"/>
		<updated>2026-01-27T16:11:42Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Create module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local capiunto = require &#039;capiunto&#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    local qid = args.qid or args[1]&lt;br /&gt;
    &lt;br /&gt;
    if not qid then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: No Wikidata QID provided&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Register the entity association&lt;br /&gt;
    frame:callParserFunction(&#039;#unlinkedwikibase&#039;, {id = qid})&lt;br /&gt;
    &lt;br /&gt;
    -- Get entity data from UnlinkedWikibase&lt;br /&gt;
    local entity = mw.ext.UnlinkedWikibase.getEntity(qid)&lt;br /&gt;
    &lt;br /&gt;
    if not entity then&lt;br /&gt;
        return &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: Entity &#039; .. qid .. &#039; not found&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Helper function to get property value from entity&lt;br /&gt;
    local function getPropertyValue(pid)&lt;br /&gt;
        if not entity.claims or not entity.claims[pid] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local claims = entity.claims[pid]&lt;br /&gt;
        if not claims or #claims == 0 then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local claim = claims[1]&lt;br /&gt;
        if not claim.mainsnak or not claim.mainsnak.datavalue then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        return claim.mainsnak.datavalue.value&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Helper function to format different value types&lt;br /&gt;
    local function formatValue(value, valueType)&lt;br /&gt;
        if not value then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if type(value) == &#039;table&#039; then&lt;br /&gt;
            -- Handle time values&lt;br /&gt;
            if value.time then&lt;br /&gt;
                -- Extract year-month-day from +2023-01-15T00:00:00Z format&lt;br /&gt;
                local dateStr = value.time&lt;br /&gt;
                local year, month, day = dateStr:match(&#039;^[+-]?(%d+)-(%d+)-(%d+)&#039;)&lt;br /&gt;
                if year and month and day then&lt;br /&gt;
                    return string.format(&#039;%04d-%02d-%02d&#039;, tonumber(year), tonumber(month), tonumber(day))&lt;br /&gt;
                end&lt;br /&gt;
                return value.time&lt;br /&gt;
            -- Handle entity references (Q-IDs)&lt;br /&gt;
            elseif value.id then&lt;br /&gt;
                local linkedEntity = mw.ext.UnlinkedWikibase.getEntity(value.id)&lt;br /&gt;
                if linkedEntity and linkedEntity.labels and linkedEntity.labels.en then&lt;br /&gt;
                    -- Try to find a local page for this entity&lt;br /&gt;
                    local localTitle = mw.ext.UnlinkedWikibase.getLocalTitle(value.id)&lt;br /&gt;
                    if localTitle then&lt;br /&gt;
                        return &#039;[[&#039; .. localTitle.prefixedText .. &#039;|&#039; .. linkedEntity.labels.en.value .. &#039;]]&#039;&lt;br /&gt;
                    else&lt;br /&gt;
                        return linkedEntity.labels.en.value&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                return value.id&lt;br /&gt;
            -- Handle monolingual text&lt;br /&gt;
            elseif value.text then&lt;br /&gt;
                return value.text&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        return tostring(value)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Get the title (use English label or QID as fallback)&lt;br /&gt;
    local title = qid&lt;br /&gt;
    if entity.labels and entity.labels.en then&lt;br /&gt;
        title = entity.labels.en.value&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Create the infobox&lt;br /&gt;
    local infobox = capiunto.create({&lt;br /&gt;
        title = title,&lt;br /&gt;
        bodyClass = &#039;infobox vevent&#039;,&lt;br /&gt;
        bodyStyle = &#039;width: 300px;&#039;&lt;br /&gt;
    })&lt;br /&gt;
    &lt;br /&gt;
    -- Add official name (P1448)&lt;br /&gt;
    local officialName = getPropertyValue(&#039;P1448&#039;)&lt;br /&gt;
    if officialName then&lt;br /&gt;
        infobox:addRow(&#039;Official Name&#039;, formatValue(officialName))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add logo (P154)&lt;br /&gt;
    local logo = getPropertyValue(&#039;P154&#039;)&lt;br /&gt;
    if logo then&lt;br /&gt;
        local logoStr = formatValue(logo)&lt;br /&gt;
        if logoStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. logoStr .. &#039;|150px]]&#039;, &#039;Logo&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add image (P18)&lt;br /&gt;
    local image = getPropertyValue(&#039;P18&#039;)&lt;br /&gt;
    if image then&lt;br /&gt;
        local imageStr = formatValue(image)&lt;br /&gt;
        if imageStr then&lt;br /&gt;
            infobox:addImage(&#039;[[File:&#039; .. imageStr .. &#039;|250px]]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add headquarters (P159)&lt;br /&gt;
    local headquarters = getPropertyValue(&#039;P159&#039;)&lt;br /&gt;
    if headquarters then&lt;br /&gt;
        infobox:addRow(&#039;Headquarters&#039;, formatValue(headquarters))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add founding date (P571)&lt;br /&gt;
    local foundingDate = getPropertyValue(&#039;P571&#039;)&lt;br /&gt;
    if foundingDate then&lt;br /&gt;
        infobox:addRow(&#039;Founding Date&#039;, formatValue(foundingDate))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add dissolution date (P576)&lt;br /&gt;
    local dissolutionDate = getPropertyValue(&#039;P576&#039;)&lt;br /&gt;
    if dissolutionDate then&lt;br /&gt;
        infobox:addRow(&#039;Dissolution Date&#039;, formatValue(dissolutionDate))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add official website (P856)&lt;br /&gt;
    local website = getPropertyValue(&#039;P856&#039;)&lt;br /&gt;
    if website then&lt;br /&gt;
        local websiteStr = formatValue(website)&lt;br /&gt;
        if websiteStr then&lt;br /&gt;
            infobox:addRow(&#039;Official Website&#039;, &#039;[&#039; .. websiteStr .. &#039;]&#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add country (P17)&lt;br /&gt;
    local country = getPropertyValue(&#039;P17&#039;)&lt;br /&gt;
    if country then&lt;br /&gt;
        infobox:addRow(&#039;Country&#039;, formatValue(country))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Add parent organization (P749)&lt;br /&gt;
    local parentOrg = getPropertyValue(&#039;P749&#039;)&lt;br /&gt;
    if parentOrg then&lt;br /&gt;
        infobox:addRow(&#039;Parent Organization&#039;, formatValue(parentOrg))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return tostring(infobox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1847</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1847"/>
		<updated>2026-01-27T14:11:56Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: link at bottom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;float-right wikitable infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot; id=&amp;quot;template-organization&amp;quot; summary=&amp;quot;Infobox for organizations&amp;quot;&lt;br /&gt;
{{#unlinkedwikibase: id={{{qid}}} }}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P1448}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; font-size: 1.2em;&amp;quot; | {{#invoke:WDfetch|getvalue|pid=P1448}}&lt;br /&gt;
|&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; font-size: 1.2em;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; padding: 10px;&amp;quot; |&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P154}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{#invoke:WDfetch|getvalue|pid=P154}}&amp;lt;br/&amp;gt;}}&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P18}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{#invoke:WDfetch|getvalue|pid=P18}}}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P159}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Headquarters &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P159}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P571}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Founding Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P571}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P576}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Dissolution Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P576}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P17}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Country &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P17}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P749}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Parent Organization &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P749}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P856}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | {{#invoke:WDfetch|getvalue|pid=P856}}&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1846</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1846"/>
		<updated>2026-01-27T14:08:06Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: pagename&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;float-right wikitable infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot; id=&amp;quot;template-organization&amp;quot; summary=&amp;quot;Infobox for organizations&amp;quot;&lt;br /&gt;
{{#unlinkedwikibase: id={{{qid}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P1448}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; font-size: 1.2em;&amp;quot; | {{#invoke:WDfetch|getvalue|pid=P1448}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; font-size: 1.2em;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; padding: 10px;&amp;quot; |&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P154}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{#invoke:WDfetch|getvalue|pid=P154}}&amp;lt;br/&amp;gt;}}&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P18}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{#invoke:WDfetch|getvalue|pid=P18}}}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P159}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Headquarters &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P159}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P571}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Founding Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P571}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P576}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Dissolution Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P576}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P856}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Official Website &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P856}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P17}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Country &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P17}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P749}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Parent Organization &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P749}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1845</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1845"/>
		<updated>2026-01-27T14:06:26Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: fix text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;float-right wikitable infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot; id=&amp;quot;template-organization&amp;quot; summary=&amp;quot;Infobox for organizations&amp;quot;&lt;br /&gt;
{{#unlinkedwikibase: id={{{qid}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P1448}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; font-size: 1.2em;&amp;quot; | {{#invoke:WDfetch|getvalue|pid=P1448}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; padding: 10px;&amp;quot; |&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P154}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{#invoke:WDfetch|getvalue|pid=P154}}&amp;lt;br/&amp;gt;}}&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P18}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
{{#invoke:WDfetch|getvalue|pid=P18}}}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P159}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Headquarters &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P159}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P571}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Founding Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P571}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P576}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Dissolution Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P576}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P856}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Official Website &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P856}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P17}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Country &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P17}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P749}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Parent Organization &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P749}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1844</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1844"/>
		<updated>2026-01-27T14:05:00Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;float-right wikitable infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot; id=&amp;quot;template-organization&amp;quot; summary=&amp;quot;Infobox for organizations&amp;quot;&lt;br /&gt;
{{#unlinkedwikibase: id={{{qid}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P1448}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; font-size: 1.2em;&amp;quot; | {{#invoke:WDfetch|getvalue|pid=P1448}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center; padding: 10px;&amp;quot; |&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P154}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
[[File:{{#invoke:WDfetch|getvalue|pid=P154}}|150px]]&amp;lt;br/&amp;gt;}}&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P18}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
[[File:{{#invoke:WDfetch|getvalue|pid=P18}}|280px]]}}&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P159}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Headquarters &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P159}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P571}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Founding Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P571}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P576}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Dissolution Date &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P576}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P856}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Official Website &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P856}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P17}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Country &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P17}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P749}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
! Parent Organization &lt;br /&gt;
{{!}} {{#invoke:WDfetch|getvalue|pid=P749}}&lt;br /&gt;
{{!}}-}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1843</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1843"/>
		<updated>2026-01-27T14:01:02Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Remove image tags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;float-right wikitable infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot; id=&amp;quot;template-organization&amp;quot; summary=&amp;quot;Infobox for organizations&amp;quot;&lt;br /&gt;
{{#unlinkedwikibase: id={{{qid}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P1448}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Official Name &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P1448}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P154}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Logo &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P154}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P18}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Image &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P18}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P159}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Headquarters &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P159}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P571}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Founding Date &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P571}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P576}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Dissolution Date &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P576}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P856}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Official Website &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P856}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P17}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Country &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P17}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P749}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Parent Organization &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P749}}}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Main_Page&amp;diff=1607</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Main_Page&amp;diff=1607"/>
		<updated>2025-09-03T12:41:23Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: redo link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Amateur Theatre Wiki. This is a place for anyone passionate about amateur theatre. Here, you can find out more about amateur theatre in your home country, town or village. You can discover what amateur theatre was like a century ago and learn how it works elsewhere around the world. Most importantly of all, you can join our growing community of amateur theatre historians, who are busy adding their own amateur theatre histories to this site.          &lt;br /&gt;
&lt;br /&gt;
History starts now - and the site includes details of productions and performances that happened this year, as well as those that took place in the distant past. It is a work in progress, and we need your help to grow this Wiki site. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:The Gay Lothario. The Great and Celebrated Amateur of Fashion MET DP818363.jpg|[[Robert Coates|The Gay Lothario: The Great and Celebrated Amateur of Fashion]]&lt;br /&gt;
File:Germaine de Staël by Vladimir Borovikovsky.png|Portrait of Anne Louise [[Germaine de Staël|Germaine de Staël-Holstein]]&lt;br /&gt;
File:Bildschirmfoto 2022-12-21 um 10.52.36.jpg|Detail from Theatre Bill, 1827&lt;br /&gt;
File:GER — BY – Oberbayern — Lkr. Rosenheim — Gemeinde Bad Endorf — Bad Endorf Ort — Rosenheimer Str. 6 (Volkstheater) Mattes 2021.jpg|[[Theatergesellschaft Bad Endorf]] (theatre association in Bad Endorf, Germany)&lt;br /&gt;
File:Herbert Gardner, Vanity Fair, 1886-04-07.jpg|Caricature of [[Herbert Gardner]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Why should you get involved as a contributor? ==&lt;br /&gt;
For too long [[wikipedia:Amateur_theatre|amateur theatre]] has been undervalued in societies and cultures around the world. In most nations, the study of theatre has focussed almost exclusively on professional activity. However, amateur theatre has played a vital role in many theatrical ecologies and needs greater acknowledgement. It&#039;s only through documenting amateur theatrical activities and histories that the contribution of amateur theatre to these ecologies can begin to be recognised. &lt;br /&gt;
&lt;br /&gt;
== How to get an account ==&lt;br /&gt;
To contribute to the Amateur Theatre Wiki, you’ll need a user account. It’s easy to get started:&lt;br /&gt;
&lt;br /&gt;
# Send an email to &#039;&#039;&#039;[support.atwiki@lrz.uni-muenchen.de]&#039;&#039;&#039; with the subject line &amp;quot;Account Creation Request.&amp;quot;&lt;br /&gt;
# In your email, include:&lt;br /&gt;
#* Your username&lt;br /&gt;
#* A brief explanation of why you’d like to contribute&lt;br /&gt;
#* Any relevant affiliation with amateur theatre (optional)&lt;br /&gt;
&lt;br /&gt;
Once your request is reviewed, you will receive a reply with your login details.&lt;br /&gt;
&lt;br /&gt;
== How can you get involved? ==&lt;br /&gt;
Firstly, don&#039;t be scared! We&#039;ve made adding entries and editing the Amateur Theatre Wiki as easy as possible. Even if you have no experience editing websites before, this couldn&#039;t be easier.  &lt;br /&gt;
&lt;br /&gt;
Before you start, please make sure that you are aware of the [[Amateur Theatre Wiki:Community guidelines|community guidelines.]]&lt;br /&gt;
&lt;br /&gt;
Contact the Admin for account creation  &lt;br /&gt;
&lt;br /&gt;
To get you started, we&#039;ve created a number of helpful guides. Find out how to: &lt;br /&gt;
&lt;br /&gt;
* [[Amateur Theatre Wiki:Help#Creating new articles workflow|Create an entry]]&lt;br /&gt;
* [[mediawikiwiki:Help:Editing_pages|Edit an existing entry]] by using the [[mediawikiwiki:Help:VisualEditor/User_guide|Visual Editor]]&lt;br /&gt;
* [[Amateur Theatre Wiki:Help|Add a picture to an entry]]&lt;br /&gt;
&lt;br /&gt;
== How can you search the site? ==&lt;br /&gt;
At the top of the page you can enter your search terms into the bar at the top of the page, where it says &#039;Search Amateur Theatre Wiki&#039;. Alternatively, you might find it useful to search by category. Our [[Special:Categories|categories]] include:&lt;br /&gt;
&lt;br /&gt;
* [[:Category:People|People]]&lt;br /&gt;
* [[:Category:Venues|Venues]]&lt;br /&gt;
* [[:Category:Productions and Performances|Productions and Performances]]&lt;br /&gt;
* [[:Category:Clubs, Societies and Institutions|Clubs, Societies and Institutions]]&lt;br /&gt;
* [[:Category:Plays|Plays]]&lt;br /&gt;
* [[:Category:Music|Music]]&lt;br /&gt;
* [[:Category:Dance|Dance]]&lt;br /&gt;
&lt;br /&gt;
You might also want to search by country. &lt;br /&gt;
&lt;br /&gt;
== Example Entries ==&lt;br /&gt;
To give you an idea what sort of information you might find in the Amateur Theatre Wiki, here are some example entries for you to view:&lt;br /&gt;
* Example 1 - [[Robert Coates]] (Categories - People and Britain)&lt;br /&gt;
* Example 2 - [[Theatergesellschaft Urania]] (Category - Clubs, Societies and Institutions and Germany)&lt;br /&gt;
* Example 3 - [[Löfholmen’s Theatre Society]] (Categories - Clubs, Societies and Institutions and Sweden)&lt;br /&gt;
* Example 4 - [[Campden House]] (Categories - Venues and Britain)&lt;br /&gt;
&lt;br /&gt;
== Structured Data ==&lt;br /&gt;
The project has also produced a list of contemporary amateur theater associations which can be visualized as a map [https://w.wiki/86S$ here]. It contains (at the moment) only most of Germany&#039;s amateur theater scene organized by [[Bund Deutscher Amateurtheater (BDAT)|Bund Deutscher Amateurtheater]]. A full list of the amateur theaters can be found [https://w.wiki/86Td here].&lt;br /&gt;
&lt;br /&gt;
== About this Project ==&lt;br /&gt;
This site is part of the ERC Project &#039;&#039;&#039;P-Citizens&#039;&#039;&#039;, which researches Amateur Theatre Practice in Germany, France, Britain, Sweden and Switzerland from 1780-1850. For more information visit the [[Amateur Theatre Wiki:About|About-Page]] or the [https://www.p-citizens.gwi.uni-muenchen.de/ project website].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Full emblem, black on transparent.png&lt;br /&gt;
File:LMU Muenchen Logo.svg&lt;br /&gt;
File:UniversityWarwickLogo.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Main_Page&amp;diff=1606</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Main_Page&amp;diff=1606"/>
		<updated>2025-09-03T12:40:40Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;ref&amp;gt;nskdfkhfoa&amp;lt;/ref&amp;gt;Welcome to the Amateur Theatre Wiki. This is a place for anyone passionate about amateur theatre. Here, you can find out more about amateur theatre in your home country, town or village. You can discover what amateur theatre was like a century ago and learn how it works elsewhere around the world. Most importantly of all, you can join our growing community of amateur theatre historians, who are busy adding their own amateur theatre histories to this site.          &lt;br /&gt;
&lt;br /&gt;
History starts now - and the site includes details of productions and performances that happened this year, as well as those that took place in the distant past. It is a work in progress, and we need your help to grow this Wiki site. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:The Gay Lothario. The Great and Celebrated Amateur of Fashion MET DP818363.jpg|[[Robert Coates|The Gay Lothario: The Great and Celebrated Amateur of Fashion]]&lt;br /&gt;
File:Germaine de Staël by Vladimir Borovikovsky.png|Portrait of Anne Louise [[Germaine de Staël|Germaine de Staël-Holstein]]&lt;br /&gt;
File:Bildschirmfoto 2022-12-21 um 10.52.36.jpg|Detail from Theatre Bill, 1827&lt;br /&gt;
File:GER — BY – Oberbayern — Lkr. Rosenheim — Gemeinde Bad Endorf — Bad Endorf Ort — Rosenheimer Str. 6 (Volkstheater) Mattes 2021.jpg|[[Theatergesellschaft Bad Endorf]] (theatre association in Bad Endorf, Germany)&lt;br /&gt;
File:Herbert Gardner, Vanity Fair, 1886-04-07.jpg|Caricature of [[Herbert Gardner]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Why should you get involved as a contributor? ==&lt;br /&gt;
For too long [[wikipedia:Amateur_theatre|amateur theatre]] has been undervalued in societies and cultures around the world. In most nations, the study of theatre has focussed almost exclusively on professional activity. However, amateur theatre has played a vital role in many theatrical ecologies and needs greater acknowledgement. It&#039;s only through documenting amateur theatrical activities and histories that the contribution of amateur theatre to these ecologies can begin to be recognised. &lt;br /&gt;
&lt;br /&gt;
== How to get an account ==&lt;br /&gt;
To contribute to the Amateur Theatre Wiki, you’ll need a user account. It’s easy to get started:&lt;br /&gt;
&lt;br /&gt;
# Send an email to &#039;&#039;&#039;[support.atwiki@lrz.uni-muenchen.de]&#039;&#039;&#039; with the subject line &amp;quot;Account Creation Request.&amp;quot;&lt;br /&gt;
# In your email, include:&lt;br /&gt;
#* Your username&lt;br /&gt;
#* A brief explanation of why you’d like to contribute&lt;br /&gt;
#* Any relevant affiliation with amateur theatre (optional)&lt;br /&gt;
&lt;br /&gt;
Once your request is reviewed, you will receive a reply with your login details.&lt;br /&gt;
&lt;br /&gt;
== How can you get involved? ==&lt;br /&gt;
Firstly, don&#039;t be scared! We&#039;ve made adding entries and editing the Amateur Theatre Wiki as easy as possible. Even if you have no experience editing websites before, this couldn&#039;t be easier.  &lt;br /&gt;
&lt;br /&gt;
Before you start, please make sure that you are aware of the [[Amateur Theatre Wiki:Community guidelines|community guidelines.]]&lt;br /&gt;
&lt;br /&gt;
Contact the Admin for account creation  &lt;br /&gt;
&lt;br /&gt;
To get you started, we&#039;ve created a number of helpful guides. Find out how to: &lt;br /&gt;
&lt;br /&gt;
* [[Amateur Theatre Wiki:Help#Creating new articles workflow|Create an entry]]&lt;br /&gt;
* [[mediawikiwiki:Help:Editing_pages|Edit an existing entry]] by using the [[mediawikiwiki:Help:VisualEditor/User_guide|Visual Editor]]&lt;br /&gt;
* [[Amateur Theatre Wiki:Help|Add a picture to an entry]]&lt;br /&gt;
&lt;br /&gt;
== How can you search the site? ==&lt;br /&gt;
At the top of the page you can enter your search terms into the bar at the top of the page, where it says &#039;Search Amateur Theatre Wiki&#039;. Alternatively, you might find it useful to search by category. Our [[Special:Categories|categories]] include:&lt;br /&gt;
&lt;br /&gt;
* [[:Category:People|People]]&lt;br /&gt;
* [[:Category:Venues|Venues]]&lt;br /&gt;
* [[:Category:Productions and Performances|Productions and Performances]]&lt;br /&gt;
* [[:Category:Clubs, Societies and Institutions|Clubs, Societies and Institutions]]&lt;br /&gt;
* [[:Category:Plays|Plays]]&lt;br /&gt;
* [[:Category:Music|Music]]&lt;br /&gt;
* [[:Category:Dance|Dance]]&lt;br /&gt;
&lt;br /&gt;
You might also want to search by country. &lt;br /&gt;
&lt;br /&gt;
== Example Entries ==&lt;br /&gt;
To give you an idea what sort of information you might find in the Amateur Theatre Wiki, here are some example entries for you to view:&lt;br /&gt;
* Example 1 - [[Robert Coates]] (Categories - People and Britain)&lt;br /&gt;
* Example 2 - [[Theatergesellschaft Urania]] (Category - Clubs, Societies and Institutions and Germany)&lt;br /&gt;
* Example 3 - [[Löfholmen’s Theatre Society]] (Categories - Clubs, Societies and Institutions and Sweden)&lt;br /&gt;
* Example 4 - [[Campden House]] (Categories - Venues and Britain)&lt;br /&gt;
&lt;br /&gt;
== Structured Data ==&lt;br /&gt;
The project has also produced a list of contemporary amateur theater associations which can be visualized as a map [https://w.wiki/86S$ here]. It contains (at the moment) only most of Germany&#039;s amateur theater scene organized by [[Bund Deutscher Amateurtheater (BDAT)|Bund Deutscher Amateurtheater]]. A full list of the amateur theaters can be found [https://w.wiki/86Td here].&lt;br /&gt;
&lt;br /&gt;
== About this Project ==&lt;br /&gt;
This site is part of the ERC Project &#039;&#039;&#039;P-Citizens&#039;&#039;&#039;, which researches Amateur Theatre Practice in Germany, France, Britain, Sweden and Switzerland from 1780-1850. For more information visit the [[Amateur Theatre Wiki:About|About-Page]] or the [https://www.p-citizens.gwi.uni-muenchen.de/ project website].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Full emblem, black on transparent.png&lt;br /&gt;
File:LMU Muenchen Logo.svg&lt;br /&gt;
File:UniversityWarwickLogo.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Main_Page&amp;diff=1605</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Main_Page&amp;diff=1605"/>
		<updated>2025-09-03T12:31:41Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: /* How to get an account */ new mail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Amateur Theatre Wiki. This is a place for anyone passionate about amateur theatre. Here, you can find out more about amateur theatre in your home country, town or village. You can discover what amateur theatre was like a century ago and learn how it works elsewhere around the world. Most importantly of all, you can join our growing community of amateur theatre historians, who are busy adding their own amateur theatre histories to this site.          &lt;br /&gt;
&lt;br /&gt;
History starts now - and the site includes details of productions and performances that happened this year, as well as those that took place in the distant past. It is a work in progress, and we need your help to grow this Wiki site. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:The Gay Lothario. The Great and Celebrated Amateur of Fashion MET DP818363.jpg|[[Robert Coates|The Gay Lothario: The Great and Celebrated Amateur of Fashion]]&lt;br /&gt;
File:Germaine de Staël by Vladimir Borovikovsky.png|Portrait of Anne Louise [[Germaine de Staël|Germaine de Staël-Holstein]]&lt;br /&gt;
File:Bildschirmfoto 2022-12-21 um 10.52.36.jpg|Detail from Theatre Bill, 1827&lt;br /&gt;
File:GER — BY – Oberbayern — Lkr. Rosenheim — Gemeinde Bad Endorf — Bad Endorf Ort — Rosenheimer Str. 6 (Volkstheater) Mattes 2021.jpg|[[Theatergesellschaft Bad Endorf]] (theatre association in Bad Endorf, Germany)&lt;br /&gt;
File:Herbert Gardner, Vanity Fair, 1886-04-07.jpg|Caricature of [[Herbert Gardner]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Why should you get involved as a contributor? ==&lt;br /&gt;
For too long [[wikipedia:Amateur_theatre|amateur theatre]] has been undervalued in societies and cultures around the world. In most nations, the study of theatre has focussed almost exclusively on professional activity. However, amateur theatre has played a vital role in many theatrical ecologies and needs greater acknowledgement. It&#039;s only through documenting amateur theatrical activities and histories that the contribution of amateur theatre to these ecologies can begin to be recognised. &lt;br /&gt;
&lt;br /&gt;
== How to get an account ==&lt;br /&gt;
To contribute to the Amateur Theatre Wiki, you’ll need a user account. It’s easy to get started:&lt;br /&gt;
&lt;br /&gt;
# Send an email to &#039;&#039;&#039;[support.atwiki@lrz.uni-muenchen.de]&#039;&#039;&#039; with the subject line &amp;quot;Account Creation Request.&amp;quot;&lt;br /&gt;
# In your email, include:&lt;br /&gt;
#* Your username&lt;br /&gt;
#* A brief explanation of why you’d like to contribute&lt;br /&gt;
#* Any relevant affiliation with amateur theatre (optional)&lt;br /&gt;
&lt;br /&gt;
Once your request is reviewed, you will receive a reply with your login details.&lt;br /&gt;
&lt;br /&gt;
== How can you get involved? ==&lt;br /&gt;
Firstly, don&#039;t be scared! We&#039;ve made adding entries and editing the Amateur Theatre Wiki as easy as possible. Even if you have no experience editing websites before, this couldn&#039;t be easier.  &lt;br /&gt;
&lt;br /&gt;
Before you start, please make sure that you are aware of the [[Amateur Theatre Wiki:Community guidelines|community guidelines.]]&lt;br /&gt;
&lt;br /&gt;
Contact the Admin for account creation  &lt;br /&gt;
&lt;br /&gt;
To get you started, we&#039;ve created a number of helpful guides. Find out how to: &lt;br /&gt;
&lt;br /&gt;
* [[Amateur Theatre Wiki:Help#Creating new articles workflow|Create an entry]]&lt;br /&gt;
* [[mediawikiwiki:Help:Editing_pages|Edit an existing entry]] by using the [[mediawikiwiki:Help:VisualEditor/User_guide|Visual Editor]]&lt;br /&gt;
* [[Amateur Theatre Wiki:Help|Add a picture to an entry]]&lt;br /&gt;
&lt;br /&gt;
== How can you search the site? ==&lt;br /&gt;
At the top of the page you can enter your search terms into the bar at the top of the page, where it says &#039;Search Amateur Theatre Wiki&#039;. Alternatively, you might find it useful to search by category. Our [[Special:Categories|categories]] include:&lt;br /&gt;
&lt;br /&gt;
* [[:Category:People|People]]&lt;br /&gt;
* [[:Category:Venues|Venues]]&lt;br /&gt;
* [[:Category:Productions and Performances|Productions and Performances]]&lt;br /&gt;
* [[:Category:Clubs, Societies and Institutions|Clubs, Societies and Institutions]]&lt;br /&gt;
* [[:Category:Plays|Plays]]&lt;br /&gt;
* [[:Category:Music|Music]]&lt;br /&gt;
* [[:Category:Dance|Dance]]&lt;br /&gt;
&lt;br /&gt;
You might also want to search by country. &lt;br /&gt;
&lt;br /&gt;
== Example Entries ==&lt;br /&gt;
To give you an idea what sort of information you might find in the Amateur Theatre Wiki, here are some example entries for you to view:&lt;br /&gt;
* Example 1 - [[Robert Coates]] (Categories - People and Britain)&lt;br /&gt;
* Example 2 - [[Theatergesellschaft Urania]] (Category - Clubs, Societies and Institutions and Germany)&lt;br /&gt;
* Example 3 - [[Löfholmen’s Theatre Society]] (Categories - Clubs, Societies and Institutions and Sweden)&lt;br /&gt;
* Example 4 - [[Campden House]] (Categories - Venues and Britain)&lt;br /&gt;
&lt;br /&gt;
== Structured Data ==&lt;br /&gt;
The project has also produced a list of contemporary amateur theater associations which can be visualized as a map [https://w.wiki/86S$ here]. It contains (at the moment) only most of Germany&#039;s amateur theater scene organized by [[Bund Deutscher Amateurtheater (BDAT)|Bund Deutscher Amateurtheater]]. A full list of the amateur theaters can be found [https://w.wiki/86Td here].&lt;br /&gt;
&lt;br /&gt;
== About this Project ==&lt;br /&gt;
This site is part of the ERC Project &#039;&#039;&#039;P-Citizens&#039;&#039;&#039;, which researches Amateur Theatre Practice in Germany, France, Britain, Sweden and Switzerland from 1780-1850. For more information visit the [[Amateur Theatre Wiki:About|About-Page]] or the [https://www.p-citizens.gwi.uni-muenchen.de/ project website].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:Full emblem, black on transparent.png&lt;br /&gt;
File:LMU Muenchen Logo.svg&lt;br /&gt;
File:UniversityWarwickLogo.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1604</id>
		<title>Template:Organization</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Organization&amp;diff=1604"/>
		<updated>2025-07-29T13:14:09Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: More fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;float-right wikitable infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot; id=&amp;quot;template-organization&amp;quot; summary=&amp;quot;Infobox for organizations&amp;quot;&lt;br /&gt;
{{#unlinkedwikibase: id={{{qid}}} }}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P1448}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Official Name &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P1448}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P154}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Logo &lt;br /&gt;
    {{!}} [[File:{{#invoke:WDfetch|getvalue|pid=P154}}|150px]]}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P18}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Image &lt;br /&gt;
    {{!}} [[File:{{#invoke:WDfetch|getvalue|pid=P18}}|250px]]}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P159}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Headquarters &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P159}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P571}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Founding Date &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P571}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P576}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Dissolution Date &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P576}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P856}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Official Website &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P856}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P17}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Country &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P17}}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{#if: {{#invoke:WDfetch|getvalue|pid=P749}} |&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
    ! Parent Organization &lt;br /&gt;
    {{!}} {{#invoke:WDfetch|getvalue|pid=P749}}}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is an example usage of this template with a sample Wikidata QID.&lt;br /&gt;
&lt;br /&gt;
{{Organization|qid=Q120730912}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;params&amp;quot;: {&lt;br /&gt;
    &amp;quot;qid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Wikidata QID&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Mandatory Wikidata QID to fetch all parameters dynamically from Wikidata.&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&amp;quot;official_name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Name (P1448)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;logo&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Logo (P154)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Logo image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;image&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Image (P18)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Image.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;headquarters&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Headquarters (P159)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Headquarters.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;founding_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Founding Date (P571)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Founding date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dissolution_date&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Dissolution Date (P576)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Dissolution date.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;official_website&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Official Website (P856)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Official website.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Country (P17)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Country.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent_organization&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;label&amp;quot;: &amp;quot;Parent Organization (P749)&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Parent organization.&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Infobox for an organization. Fetches all parameters dynamically from Wikidata based on the mandatory QID.&amp;quot;,&lt;br /&gt;
  &amp;quot;format&amp;quot;: &amp;quot;inline&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Robert_Coates&amp;diff=1561</id>
		<title>Robert Coates</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Robert_Coates&amp;diff=1561"/>
		<updated>2025-05-30T11:58:20Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Save&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person|qid=Q1747746}}&lt;br /&gt;
Robert Coates (1772- 21 February 1848) was an amateur actor, who performed in Britain in the early nineteenth century. He was satirised by the press and by cartoonists for his amateur theatrical endeavours and for his interests in fashion.    &lt;br /&gt;
&lt;br /&gt;
== Amateur Theatrical Career==&lt;br /&gt;
He performed in a number of roles in the early nineteenth century. &lt;br /&gt;
&lt;br /&gt;
==Personal Life==&lt;br /&gt;
He was married in 1823 to Emma and had two children.  &lt;br /&gt;
&lt;br /&gt;
Using queer historiographical approaches to studying Robert Coates, it seems possible that he was queer.   &lt;br /&gt;
&lt;br /&gt;
Robert Coates is buried in [[Kensal Green Cemetery]] in London.      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot;&amp;gt;&lt;br /&gt;
File:The Gay Lothario. The Great and Celebrated Amateur of Fashion MET DP818363.jpg|The Gay Lothario: The Great and Celebrated Amateur of Fashion&lt;br /&gt;
File:The amateur actor Robert Coates dreaming about his success o Wellcome V0050204.jpg|Satirical image of Robert Coates titled &#039;An Amateur&#039;s Dream&#039;.&lt;br /&gt;
File:Bodleian Libraries, Princely piety, or- the worshippers at Wanstead.jpg|Caricature titled &#039;Princely Piety, or- the Worshippers at Wanstead&#039;. The caricature, by George Cruikshank, depicts suitors wooing a wealthy young heiress. Robert Coates appears in black, to the left of Sir Lumley Skeffington in red, at the foot of the staircase.&lt;br /&gt;
File:Robert Coates (actor).jpg|Robert Coates&lt;br /&gt;
File:Portrait of Emma Anne Coates (nee Robinson) - DPLA - a50ac6022116e3c100a5fc8af59977ba.jpg|Emma Anne Coates, the wife of Robert Coates&lt;br /&gt;
File:Grave of Robert Coates in Kensal Green Cemetery.jpg|Robert Coates&#039;s grave in Kensal Green Cemetery, London.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Britain]]&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Germaine_de_Sta%C3%ABl&amp;diff=1560</id>
		<title>Germaine de Staël</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Germaine_de_Sta%C3%ABl&amp;diff=1560"/>
		<updated>2025-05-30T11:48:55Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person|qid=Q123041}}&lt;br /&gt;
[https://sv.wikipedia.org/wiki/Germaine_de_Staël Germaine de Staël] (1766-1817) used her prominent position in the salons to question authority and create her own theatre. Her political and feminist writings caused her to be exiled for many years, and she soon became a forerunner of the emerging Romantic movement.&amp;lt;ref&amp;gt;Maria Fairweather, &#039;&#039;Madame de Staël&#039;&#039; (London, 2005); Carla Hesse, &#039;&#039;The Other Enlightenment&#039;&#039; (New Jersey, 2001); Machteld de Poortere, &#039;&#039;The Philosophical and Literary Ideas of Mme De Staël and of Mme De Genlis&#039;&#039;, (New York, 2007).&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
While in exile she surrounded herself with the intellectuals of Europe and created her own amateur theatre in Coppet, Switzerland, where some of her own plays where performed, often with de Staël herself on stage.&amp;lt;ref&amp;gt;Rougemont, Martine de &#039;Pour un répertoire des rôles et des représentations de Mme de Staël’, &#039;&#039;Cahiers Staëliens&#039;&#039;, no. 19, 1974, p. 79-92; Plagnol-Diéval, M-E, ‘Le Théâtre des familles de madame de Staël’, &#039;&#039;Cahiers Staëliens&#039;&#039;, no. 50, 1999, p. 45-65 ; Blandine Poirier, &#039;Le Théâtre de société de Germaine de Staël: une forme d’engagement ?&#039;, in &#039;&#039;Théâtre et société : Réseaux de sociabilité et représentations de la société&#039;&#039;, eds. Valentina Ponzetto and Jennifer Ruimi, p. 105-124. &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:Germaine de Staël by Vladimir Borovikovsky.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Germaine_de_Sta%C3%ABl&amp;diff=1559</id>
		<title>Germaine de Staël</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Germaine_de_Sta%C3%ABl&amp;diff=1559"/>
		<updated>2025-05-30T11:43:26Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: Add Infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Person|qid=Q123041}}&lt;br /&gt;
[https://sv.wikipedia.org/wiki/Germaine_de_Staël Germaine de Staël] (1766-1817) used her prominent position in the salons to question authority and create her own theatre. Her political and feminist writings caused her to be exiled for many years, and she soon became a forerunner of the emerging Romantic movement.&amp;lt;ref&amp;gt;Maria Fairweather, &#039;&#039;Madame de Staël&#039;&#039; (London, 2005); Carla Hesse, &#039;&#039;The Other Enlightenment&#039;&#039; (New Jersey, 2001); Machteld de Poortere, &#039;&#039;The Philosophical and Literary Ideas of Mme De Staël and of Mme De Genlis&#039;&#039;, (New York, 2007).&amp;lt;/ref&amp;gt; While in exile she surrounded herself with the intellectuals of Europe and created her own amateur theatre in Coppet, Switzerland, where some of her own plays where performed, often with de Staël herself on stage.&amp;lt;ref&amp;gt;Rougemont, Martine de &#039;Pour un répertoire des rôles et des représentations de Mme de Staël’, &#039;&#039;Cahiers Staëliens&#039;&#039;, no. 19, 1974, p. 79-92; Plagnol-Diéval, M-E, ‘Le Théâtre des familles de madame de Staël’, &#039;&#039;Cahiers Staëliens&#039;&#039;, no. 50, 1999, p. 45-65 ; Blandine Poirier, &#039;Le Théâtre de société de Germaine de Staël: une forme d’engagement ?&#039;, in &#039;&#039;Théâtre et société : Réseaux de sociabilité et représentations de la société&#039;&#039;, eds. Valentina Ponzetto and Jennifer Ruimi, p. 105-124. &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:Germaine de Staël by Vladimir Borovikovsky.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[[Category:People]]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=MediaWiki:Cite-tool-definition.json&amp;diff=1558</id>
		<title>MediaWiki:Cite-tool-definition.json</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=MediaWiki:Cite-tool-definition.json&amp;diff=1558"/>
		<updated>2025-05-30T11:33:13Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;web&amp;quot;,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;ref-cite-web&amp;quot;,&lt;br /&gt;
        &amp;quot;template&amp;quot;: &amp;quot;Cite web&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;book&amp;quot;,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;ref-cite-book&amp;quot;,&lt;br /&gt;
        &amp;quot;template&amp;quot;: &amp;quot;Cite book&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;news&amp;quot;,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;ref-cite-news&amp;quot;,&lt;br /&gt;
        &amp;quot;template&amp;quot;: &amp;quot;Cite news&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;journal&amp;quot;,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;ref-cite-journal&amp;quot;,&lt;br /&gt;
        &amp;quot;template&amp;quot;: &amp;quot;Cite journal&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=MediaWiki:Citoid-template-type-map.json&amp;diff=1556</id>
		<title>MediaWiki:Citoid-template-type-map.json</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=MediaWiki:Citoid-template-type-map.json&amp;diff=1556"/>
		<updated>2025-05-30T11:33:13Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;artwork&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;audioRecording&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;bill&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;blogPost&amp;quot;: &amp;quot;Cite web&amp;quot;,&lt;br /&gt;
	&amp;quot;book&amp;quot;: &amp;quot;Cite book&amp;quot;,&lt;br /&gt;
	&amp;quot;bookSection&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;case&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;computerProgram&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;conferencePaper&amp;quot;: &amp;quot;Cite journal&amp;quot;,&lt;br /&gt;
	&amp;quot;dataset&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;dictionaryEntry&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;document&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;email&amp;quot;: &amp;quot;Cite web&amp;quot;,&lt;br /&gt;
	&amp;quot;encyclopediaArticle&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;film&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;forumPost&amp;quot;: &amp;quot;Cite web&amp;quot;,&lt;br /&gt;
	&amp;quot;hearing&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;instantMessage&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;interview&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;journalArticle&amp;quot;: &amp;quot;Cite journal&amp;quot;,&lt;br /&gt;
	&amp;quot;letter&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;magazineArticle&amp;quot;: &amp;quot;Cite news&amp;quot;,&lt;br /&gt;
	&amp;quot;manuscript&amp;quot;: &amp;quot;Cite book&amp;quot;,&lt;br /&gt;
	&amp;quot;map&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;newspaperArticle&amp;quot;: &amp;quot;Cite news&amp;quot;,&lt;br /&gt;
	&amp;quot;patent&amp;quot;: &amp;quot;Cite patent&amp;quot;,&lt;br /&gt;
	&amp;quot;podcast&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;preprint&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;presentation&amp;quot;: &amp;quot;Cite journal&amp;quot;,&lt;br /&gt;
	&amp;quot;radioBroadcast&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;report&amp;quot;: &amp;quot;Cite report&amp;quot;,&lt;br /&gt;
	&amp;quot;standard&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;statute&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;thesis&amp;quot;: &amp;quot;Cite thesis&amp;quot;,&lt;br /&gt;
	&amp;quot;tvBroadcast&amp;quot;: &amp;quot;Citation&amp;quot;,&lt;br /&gt;
	&amp;quot;videoRecording&amp;quot;: &amp;quot;Cite AV media&amp;quot;,&lt;br /&gt;
	&amp;quot;webpage&amp;quot;: &amp;quot;Cite web&amp;quot;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_book&amp;diff=1554</id>
		<title>Template:Cite book</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_book&amp;diff=1554"/>
		<updated>2025-05-30T11:33:13Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:citation/CS1|citation&lt;br /&gt;
|CitationClass=book&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
{{collapse top|TemplateData}}&lt;br /&gt;
{{Cite book/TemplateData}}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_journal&amp;diff=1552</id>
		<title>Template:Cite journal</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_journal&amp;diff=1552"/>
		<updated>2025-05-30T11:33:13Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Citation/CS1|citation&lt;br /&gt;
|CitationClass=journal&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_news&amp;diff=1550</id>
		<title>Template:Cite news</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_news&amp;diff=1550"/>
		<updated>2025-05-30T11:33:13Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:citation/CS1|citation&lt;br /&gt;
|CitationClass=news&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
	<entry>
		<id>https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_web&amp;diff=1548</id>
		<title>Template:Cite web</title>
		<link rel="alternate" type="text/html" href="https://www.amateur-theatre-wiki.gwi.uni-muenchen.de/index.php?title=Template:Cite_web&amp;diff=1548"/>
		<updated>2025-05-30T11:33:13Z</updated>

		<summary type="html">&lt;p&gt;PCAdmin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:citation/CS1|citation&lt;br /&gt;
|CitationClass=web&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>PCAdmin</name></author>
	</entry>
</feed>