<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://bard-wiki.net/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B</id>
	<title>Модуль:Коллективы - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://bard-wiki.net/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B"/>
	<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;action=history"/>
	<updated>2026-11-14T16:38:23Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37190&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Состав: автоматически создавать заготовки новых персоналий</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37190&amp;oldid=prev"/>
		<updated>2026-10-15T16:11:25Z</updated>

		<summary type="html">&lt;p&gt;Состав: автоматически создавать заготовки новых персоналий&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:11, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l115&quot;&gt;Строка 115:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 115:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local label=person[1] and clean(person[1].Name) or &amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local label=person[1] and clean(person[1].Name) or &amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if label==&amp;#039;&amp;#039; then label=a.Person end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if label==&amp;#039;&amp;#039; then label=a.Person end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;item&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tag&lt;/del&gt;(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;strong&lt;/del&gt;&#039;):&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitext&lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;link&lt;/del&gt;(target,label))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local memberTitle=mw.title.new(target)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    local memberLink=link(target,label)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if memberTitle and memberTitle.namespace==0 and memberTitle.interwiki==&#039;&#039; and not memberTitle.exists then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        local first=target&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;match&lt;/ins&gt;(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;^([^ ]+)&lt;/ins&gt;&#039;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or target&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        local last=target&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;match(&#039;&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[^ ]+)$&#039;) or target&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        local full=target:find&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;,&#039;,1,true) and &lt;/ins&gt;target &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or last..&#039;&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;..first&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        local values=&#039;Persona[Name]=&#039;..mw.uri.encode(&lt;/ins&gt;label&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,&#039;PATH&#039;)..&#039;&amp;amp;Persona[FullName]=&#039;..mw.uri.encode(full,&#039;PATH&#039;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        local args={target=target,form=&#039;Persona&#039;,[&#039;query string&#039;]=values}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        if mw.title.getCurrentTitle(&lt;/ins&gt;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.namespace==0 then args[1]=&#039;create page&#039; end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        memberLink=frame:callParserFunction(&#039;#formredlink&#039;,args)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    item:tag(&#039;strong&#039;):wikitext(memberLink&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local details={}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local details={}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37189&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Состав: привычные имена персоналий вместо полных заголовков</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37189&amp;oldid=prev"/>
		<updated>2026-10-15T16:09:11Z</updated>

		<summary type="html">&lt;p&gt;Состав: привычные имена персоналий вместо полных заголовков&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:09, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l111&quot;&gt;Строка 111:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 111:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then period=period..&amp;#039; по &amp;#039;..date(a.EndDate) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then period=period..&amp;#039; по &amp;#039;..date(a.EndDate) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local item=mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;bw-collective-member&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local item=mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;bw-collective-member&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     item:tag(&#039;strong&#039;):wikitext(link(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;canonical(a.Person)&lt;/del&gt;,&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a.Person&lt;/del&gt;))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    local target=canonical(a.Person)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    local person=mw.ext.cargo.query(&#039;Persona&#039;,&#039;Name&#039;,{where=&#039;_pageName=&#039;..quote(target),limit=1})&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    local label=person[1] and clean(person[1].Name) or &#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if label==&#039;&#039; then label=a.Person end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     item:tag(&#039;strong&#039;):wikitext(link(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;target&lt;/ins&gt;,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label&lt;/ins&gt;))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local details={}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local details={}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37188&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Состав: не выводить статус «Действующий»</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37188&amp;oldid=prev"/>
		<updated>2026-10-15T16:07:10Z</updated>

		<summary type="html">&lt;p&gt;Состав: не выводить статус «Действующий»&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:07, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l106&quot;&gt;Строка 106:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 106:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local status=clean(a.Status)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local status=clean(a.Status)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if status==&#039;Не уточнено&#039; then status=&#039;&#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if status==&#039;Не уточнено&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039; or status==&#039;Действующий&lt;/ins&gt;&#039; then status=&#039;&#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local period=&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local period=&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.StartDate)~=&amp;#039;&amp;#039; then period=&amp;#039;с &amp;#039;..date(a.StartDate) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.StartDate)~=&amp;#039;&amp;#039; then period=&amp;#039;с &amp;#039;..date(a.StartDate) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37184&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Состав: скрыть неуточнённый статус участия</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37184&amp;oldid=prev"/>
		<updated>2026-10-15T14:26:42Z</updated>

		<summary type="html">&lt;p&gt;Состав: скрыть неуточнённый статус участия&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:26, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l106&quot;&gt;Строка 106:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 106:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local status=clean(a.Status)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local status=clean(a.Status)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if status==&#039;&#039; then status=&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Не уточнено&lt;/del&gt;&#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if status==&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Не уточнено&lt;/ins&gt;&#039; then status=&#039;&#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local period=&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local period=&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.StartDate)~=&amp;#039;&amp;#039; then period=&amp;#039;с &amp;#039;..date(a.StartDate) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.StartDate)~=&amp;#039;&amp;#039; then period=&amp;#039;с &amp;#039;..date(a.StartDate) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l113&quot;&gt;Строка 113:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 113:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     item:tag(&amp;#039;strong&amp;#039;):wikitext(link(canonical(a.Person),a.Person))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     item:tag(&amp;#039;strong&amp;#039;):wikitext(link(canonical(a.Person),a.Person))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     item:tag(&#039;span&#039;):addClass(&#039;bw-collective-period&#039;):wikitext(&#039; · &#039;..&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;text(status).&lt;/del&gt;.(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;period~=&#039;&#039; and &lt;/del&gt;&#039; · &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;..period or &#039;&lt;/del&gt;&#039;))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local details={}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if status~=&#039;&#039; then details[#details+1]=text(status) end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if period~=&#039;&#039; then details[#details+1]=period end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if #details&amp;gt;0 then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        &lt;/ins&gt;item:tag(&#039;span&#039;):addClass(&#039;bw-collective-period&#039;):wikitext(&#039; · &#039;..&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;table&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;concat&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;details,&lt;/ins&gt;&#039; · &#039;))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Note)~=&amp;#039;&amp;#039; then item:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;bw-collective-note&amp;#039;):wikitext(text(a.Note)) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Note)~=&amp;#039;&amp;#039; then item:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;bw-collective-note&amp;#039;):wikitext(text(a.Note)) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return out..tostring(item)..&amp;#039;\n&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return out..tostring(item)..&amp;#039;\n&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37168&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Коллективы: карточки, состав и исполнения</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37168&amp;oldid=prev"/>
		<updated>2026-10-15T13:19:08Z</updated>

		<summary type="html">&lt;p&gt;Коллективы: карточки, состав и исполнения&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 16:19, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l155&quot;&gt;Строка 155:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 155:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local form=collective and &amp;#039;Collective&amp;#039; or &amp;#039;Persona&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local form=collective and &amp;#039;Collective&amp;#039; or &amp;#039;Persona&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if collective then values=&#039;Collective[Name]=&#039;..mw.uri.encode(name,&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;QUERY&lt;/del&gt;&#039;)..&#039;&amp;amp;Collective[Type]=&#039;..mw.uri.encode(&#039;Коллектив&#039;,&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;QUERY&lt;/del&gt;&#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    -- PageForms&#039; query decoder preserves literal plus signs. Encode spaces as&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    -- %20 rather than + so auto-created names keep their original spelling.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if collective then values=&#039;Collective[Name]=&#039;..mw.uri.encode(name,&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PATH&lt;/ins&gt;&#039;)..&#039;&amp;amp;Collective[Type]=&#039;..mw.uri.encode(&#039;Коллектив&#039;,&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PATH&lt;/ins&gt;&#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     else&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         local last=name:match(&amp;#039;([^ ]+)$&amp;#039;) or name&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         local last=name:match(&amp;#039;([^ ]+)$&amp;#039;) or name&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         local first=name:match(&amp;#039;^([^ ]+)&amp;#039;) or name&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         local first=name:match(&amp;#039;^([^ ]+)&amp;#039;) or name&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         values=&#039;Persona[Name]=&#039;..mw.uri.encode(name,&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;QUERY&lt;/del&gt;&#039;)..&#039;&amp;amp;Persona[FullName]=&#039;..mw.uri.encode(last..&#039;, &#039;..first,&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;QUERY&lt;/del&gt;&#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         values=&#039;Persona[Name]=&#039;..mw.uri.encode(name,&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PATH&lt;/ins&gt;&#039;)..&#039;&amp;amp;Persona[FullName]=&#039;..mw.uri.encode(last..&#039;, &#039;..first,&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PATH&lt;/ins&gt;&#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return frame:callParserFunction(&amp;#039;#formredlink&amp;#039;,{target=name,form=form,[&amp;#039;query string&amp;#039;]=values,&amp;#039;create page&amp;#039;})&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return frame:callParserFunction(&amp;#039;#formredlink&amp;#039;,{target=name,form=form,[&amp;#039;query string&amp;#039;]=values,&amp;#039;create page&amp;#039;})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37163&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Коллективы: карточки, состав и исполнения</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37163&amp;oldid=prev"/>
		<updated>2026-10-15T13:14:56Z</updated>

		<summary type="html">&lt;p&gt;Коллективы: карточки, состав и исполнения&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 16:14, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot;&gt;Строка 93:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return tostring(box)..&amp;#039;\n\n&amp;#039;..text(a.Description)..&amp;#039;\n&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return tostring(box)..&amp;#039;\n\n&amp;#039;..text(a.Description)..&amp;#039;\n&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;memberHeader&lt;/del&gt;,&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;periodHeader&lt;/del&gt;=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;false&lt;/del&gt;,&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;false&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- Separate #invoke calls do not share Lua globals. Variables keeps this flag&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- within one page parse, including PageForms previews with repeated templates.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function headingOnce(frame&lt;/ins&gt;,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;key,heading)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if frame:callParserFunction(&#039;#var&#039;,{key})&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&#039;1&#039; then return &#039;&#039; end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    frame:callParserFunction(&#039;#vardefine&#039;&lt;/ins&gt;,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{key,&#039;1&#039;})&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return &#039;\n== &#039;..heading..&#039; ==\n&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function p.member(frame)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function p.member(frame)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local a=frame:getParent().args&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local a=frame:getParent().args&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Person)==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.Person)==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local out=&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local out=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;headingOnce(frame,&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bw-collective-member-heading&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,&lt;/ins&gt;&#039;Состав&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if not memberHeader then out=&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\n== &lt;/del&gt;Состав &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==\n&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;memberHeader=true end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local status=clean(a.Status)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local status=clean(a.Status)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l115&quot;&gt;Строка 115:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 120:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local a=frame:getParent().args&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local a=frame:getParent().args&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.StartDate)==&amp;#039;&amp;#039; and clean(a.EndDate)==&amp;#039;&amp;#039; and clean(a.Note)==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if clean(a.StartDate)==&amp;#039;&amp;#039; and clean(a.EndDate)==&amp;#039;&amp;#039; and clean(a.Note)==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local out=&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local out=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;headingOnce(frame,&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bw-collective-period-heading&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,&lt;/ins&gt;&#039;Периоды деятельности&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if not periodHeader then out=&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\n== &lt;/del&gt;Периоды деятельности &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==\n&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;periodHeader=true end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local value=clean(a.StartDate)~=&amp;#039;&amp;#039; and date(a.StartDate) or &amp;#039;Начало не уточнено&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local value=clean(a.StartDate)~=&amp;#039;&amp;#039; and date(a.StartDate) or &amp;#039;Начало не уточнено&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     value=value..(clean(a.EndDate)~=&amp;#039;&amp;#039; and &amp;#039; — &amp;#039;..date(a.EndDate) or &amp;#039;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     value=value..(clean(a.EndDate)~=&amp;#039;&amp;#039; and &amp;#039; — &amp;#039;..date(a.EndDate) or &amp;#039;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37148&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Коллективы: карточки, состав и исполнения</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37148&amp;oldid=prev"/>
		<updated>2026-10-15T13:06:24Z</updated>

		<summary type="html">&lt;p&gt;Коллективы: карточки, состав и исполнения&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 16:06, 15 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l131&quot;&gt;Строка 131:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 131:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local function add(name)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local function add(name)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         local g=findGroup(name); local target=g and g.page or name&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         local g=findGroup(name); local target=g and g.page or name&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        if g and g.Test==&#039;1&#039; then return end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if not seen[target] then out[#out+1]=link(target,g and g.Name or name);seen[target]=true end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if not seen[target] then out[#out+1]=link(target,g and g.Name or name);seen[target]=true end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for _,r in ipairs(found) do add(r.page) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for _,r in ipairs(found) do add(r.page) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    for _,g in ipairs(groups()) do&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        -- Founders are shown separately in the card; membership is the source of reverse participation.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for _,name in ipairs(split(a.legacy,&amp;#039;,&amp;#039;)) do add(name) end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for _,name in ipairs(split(a.legacy,&amp;#039;,&amp;#039;)) do add(name) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return table.concat(out,&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return table.concat(out,&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37135&amp;oldid=prev</id>
		<title>Bard-Wiki Guru: Коллективы: карточки, состав и исполнения</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D1%8B&amp;diff=37135&amp;oldid=prev"/>
		<updated>2026-10-15T13:01:21Z</updated>

		<summary type="html">&lt;p&gt;Коллективы: карточки, состав и исполнения&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Bard-Wiki collective pages. Lua is presentation/read-only; storage is in templates.&lt;br /&gt;
local p = {}&lt;br /&gt;
local groupCache&lt;br /&gt;
local function text(v) return mw.text.nowiki(tostring(v or &amp;#039;&amp;#039;)) end&lt;br /&gt;
local function clean(v) return mw.text.trim(tostring(v or &amp;#039;&amp;#039;)) end&lt;br /&gt;
local function quote(v) return &amp;quot;&amp;#039;&amp;quot; .. tostring(v):gsub(&amp;#039;\\&amp;#039;,&amp;#039;\\\\&amp;#039;):gsub(&amp;quot;&amp;#039;&amp;quot;,&amp;quot;\\&amp;#039;&amp;quot;) .. &amp;quot;&amp;#039;&amp;quot; end&lt;br /&gt;
local function split(v, sep)&lt;br /&gt;
    local out = {}&lt;br /&gt;
    for _, part in ipairs(mw.text.split(v or &amp;#039;&amp;#039;, sep or &amp;#039;;&amp;#039;, true)) do&lt;br /&gt;
        part = clean(part); if part ~= &amp;#039;&amp;#039; then out[#out+1] = part end&lt;br /&gt;
    end&lt;br /&gt;
    return out&lt;br /&gt;
end&lt;br /&gt;
local function link(v,label)&lt;br /&gt;
    local title = mw.title.new(clean(v))&lt;br /&gt;
    if not title then return text(label or v) end&lt;br /&gt;
    return &amp;#039;[[:&amp;#039; .. title.prefixedText .. &amp;#039;|&amp;#039; .. text(label or v) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
local function canonical(v)&lt;br /&gt;
    local t = mw.title.new(clean(v))&lt;br /&gt;
    for i=1,5 do&lt;br /&gt;
        if not t or not t.isRedirect or not t.redirectTarget then break end&lt;br /&gt;
        t=t.redirectTarget&lt;br /&gt;
    end&lt;br /&gt;
    return t and t.prefixedText or clean(v)&lt;br /&gt;
end&lt;br /&gt;
function p.canonicalPerson(frame) return canonical(frame.args[1]) end&lt;br /&gt;
local function date(v)&lt;br /&gt;
    v=clean(v)&lt;br /&gt;
    if v==&amp;#039;&amp;#039; or v:match(&amp;#039;^%d%d%d%d$&amp;#039;) then return text(v) end&lt;br /&gt;
    local ok,result=pcall(function() return mw.getContentLanguage():formatDate(&amp;#039;j xg Y&amp;#039;,v) end)&lt;br /&gt;
    return text(ok and result or v)&lt;br /&gt;
end&lt;br /&gt;
local function query(tables,fields,args)&lt;br /&gt;
    args=args or {}; args.limit=500&lt;br /&gt;
    local rows,offset={},0&lt;br /&gt;
    repeat&lt;br /&gt;
        args.offset=offset&lt;br /&gt;
        local batch=mw.ext.cargo.query(tables,fields,args)&lt;br /&gt;
        for _,r in ipairs(batch) do rows[#rows+1]=r end&lt;br /&gt;
        if #batch&amp;lt;500 then return rows end&lt;br /&gt;
        offset=offset+500&lt;br /&gt;
    until offset&amp;gt;=10000&lt;br /&gt;
    error(&amp;#039;Список слишком велик; требуется постраничный просмотр.&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
local function groups()&lt;br /&gt;
    if not groupCache then&lt;br /&gt;
        groupCache=query(&amp;#039;Collective&amp;#039;,&amp;#039;_pageName=page,Name,Type,OtherNames,Description,Test&amp;#039;, {orderBy=&amp;#039;_pageID&amp;#039;})&lt;br /&gt;
    end&lt;br /&gt;
    return groupCache&lt;br /&gt;
end&lt;br /&gt;
local function aliases(row)&lt;br /&gt;
    local out,seen={},{}&lt;br /&gt;
    for _,name in ipairs({row.page or &amp;#039;&amp;#039;, row.Name or &amp;#039;&amp;#039;, unpack(split(row.OtherNames))}) do&lt;br /&gt;
        if name~=&amp;#039;&amp;#039; and not seen[name] then out[#out+1]=name;seen[name]=true end&lt;br /&gt;
    end&lt;br /&gt;
    return out&lt;br /&gt;
end&lt;br /&gt;
local function findGroup(name)&lt;br /&gt;
    local key=mw.ustring.lower(clean(name):gsub(&amp;#039;_&amp;#039;,&amp;#039; &amp;#039;))&lt;br /&gt;
    for _,g in ipairs(groups()) do&lt;br /&gt;
        for _,a in ipairs(aliases(g)) do&lt;br /&gt;
            if mw.ustring.lower(a:gsub(&amp;#039;_&amp;#039;,&amp;#039; &amp;#039;))==key then return g end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
local function linkedList(value,sep)&lt;br /&gt;
    local out={};for _,v in ipairs(split(value,sep)) do out[#out+1]=link(v) end&lt;br /&gt;
    return table.concat(out,&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
function p.card(frame)&lt;br /&gt;
    local a=frame:getParent().args&lt;br /&gt;
    local box=mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;infobox bw-collective-card&amp;#039;)&lt;br /&gt;
    box:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;):attr(&amp;#039;colspan&amp;#039;,2):wikitext(text(a.Name or mw.title.getCurrentTitle().text))&lt;br /&gt;
    local function row(label,value)&lt;br /&gt;
        if value and value~=&amp;#039;&amp;#039; then&lt;br /&gt;
            local tr=box:tag(&amp;#039;tr&amp;#039;);tr:tag(&amp;#039;th&amp;#039;):wikitext(label);tr:tag(&amp;#039;td&amp;#039;):wikitext(value)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if clean(a.Image)~=&amp;#039;&amp;#039; then&lt;br /&gt;
        local file=mw.title.new(a.Image,6)&lt;br /&gt;
        if file and file.namespace==6 then&lt;br /&gt;
            box:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;):attr(&amp;#039;colspan&amp;#039;,2):addClass(&amp;#039;bw-collective-photo&amp;#039;):wikitext(&amp;#039;[[&amp;#039;..file.prefixedText..&amp;#039;|frameless|280px|&amp;#039;..text(a.ImageDes)..&amp;#039;]]&amp;lt;br /&amp;gt;&amp;#039;..text(a.ImageDes))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    row(&amp;#039;Тип&amp;#039;,text(a.Type));row(&amp;#039;Полное название&amp;#039;,text(a.FullName))&lt;br /&gt;
    row(&amp;#039;Другие названия&amp;#039;,text(a.OtherNames));row(&amp;#039;Основан&amp;#039;,date(a.Founded))&lt;br /&gt;
    row(&amp;#039;Завершение деятельности&amp;#039;,date(a.Ended));row(&amp;#039;Место создания&amp;#039;,linkedList(a.PlaceFounded))&lt;br /&gt;
    row(&amp;#039;Страны&amp;#039;,linkedList(a.Country));row(&amp;#039;Города&amp;#039;,linkedList(a.City))&lt;br /&gt;
    row(&amp;#039;Жанры&amp;#039;,text(a.Genre));row(&amp;#039;Основатели&amp;#039;,linkedList(a.Founders))&lt;br /&gt;
    row(&amp;#039;Клубы и объединения&amp;#039;,linkedList(a.Clubs));row(&amp;#039;Официальные ссылки&amp;#039;,a.Websites)&lt;br /&gt;
    row(&amp;#039;Контакты&amp;#039;,a.Contacts)&lt;br /&gt;
    return tostring(box)..&amp;#039;\n\n&amp;#039;..text(a.Description)..&amp;#039;\n&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
local memberHeader,periodHeader=false,false&lt;br /&gt;
function p.member(frame)&lt;br /&gt;
    local a=frame:getParent().args&lt;br /&gt;
    if clean(a.Person)==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local out=&amp;#039;&amp;#039;&lt;br /&gt;
    if not memberHeader then out=&amp;#039;\n== Состав ==\n&amp;#039;;memberHeader=true end&lt;br /&gt;
    local status=clean(a.Status)&lt;br /&gt;
    if clean(a.EndDate)~=&amp;#039;&amp;#039; then status=&amp;#039;Бывший&amp;#039; end&lt;br /&gt;
    if status==&amp;#039;&amp;#039; then status=&amp;#039;Не уточнено&amp;#039; end&lt;br /&gt;
    local period=&amp;#039;&amp;#039;&lt;br /&gt;
    if clean(a.StartDate)~=&amp;#039;&amp;#039; then period=&amp;#039;с &amp;#039;..date(a.StartDate) end&lt;br /&gt;
    if clean(a.EndDate)~=&amp;#039;&amp;#039; then period=period..&amp;#039; по &amp;#039;..date(a.EndDate) end&lt;br /&gt;
    local item=mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;bw-collective-member&amp;#039;)&lt;br /&gt;
    item:tag(&amp;#039;strong&amp;#039;):wikitext(link(canonical(a.Person),a.Person))&lt;br /&gt;
    if clean(a.Role)~=&amp;#039;&amp;#039; then item:wikitext(&amp;#039; — &amp;#039;..text(a.Role)) end&lt;br /&gt;
    item:tag(&amp;#039;span&amp;#039;):addClass(&amp;#039;bw-collective-period&amp;#039;):wikitext(&amp;#039; · &amp;#039;..text(status)..(period~=&amp;#039;&amp;#039; and &amp;#039; · &amp;#039;..period or &amp;#039;&amp;#039;))&lt;br /&gt;
    if clean(a.Note)~=&amp;#039;&amp;#039; then item:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;bw-collective-note&amp;#039;):wikitext(text(a.Note)) end&lt;br /&gt;
    return out..tostring(item)..&amp;#039;\n&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
function p.period(frame)&lt;br /&gt;
    local a=frame:getParent().args&lt;br /&gt;
    if clean(a.StartDate)==&amp;#039;&amp;#039; and clean(a.EndDate)==&amp;#039;&amp;#039; and clean(a.Note)==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local out=&amp;#039;&amp;#039;&lt;br /&gt;
    if not periodHeader then out=&amp;#039;\n== Периоды деятельности ==\n&amp;#039;;periodHeader=true end&lt;br /&gt;
    local value=clean(a.StartDate)~=&amp;#039;&amp;#039; and date(a.StartDate) or &amp;#039;Начало не уточнено&amp;#039;&lt;br /&gt;
    value=value..(clean(a.EndDate)~=&amp;#039;&amp;#039; and &amp;#039; — &amp;#039;..date(a.EndDate) or &amp;#039;&amp;#039;)&lt;br /&gt;
    if clean(a.Note)~=&amp;#039;&amp;#039; then value=value..&amp;#039; — &amp;#039;..text(a.Note) end&lt;br /&gt;
    return out..&amp;#039;&amp;lt;div class=&amp;quot;bw-collective-period-row&amp;quot;&amp;gt;&amp;#039;..value..&amp;#039;&amp;lt;/div&amp;gt;\n&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
function p.personGroups(frame)&lt;br /&gt;
    local a=frame.args&lt;br /&gt;
    local page=canonical(a.page or mw.title.getCurrentTitle().prefixedText)&lt;br /&gt;
    local terms={page};if clean(a.name)~=&amp;#039;&amp;#039; then terms[#terms+1]=a.name end&lt;br /&gt;
    local conditions={};for _,n in ipairs(terms) do conditions[#conditions+1]=&amp;#039;Person=&amp;#039;..quote(n) end&lt;br /&gt;
    local found=query(&amp;#039;CollectiveMember&amp;#039;,&amp;#039;_pageName=page&amp;#039;, {where=table.concat(conditions,&amp;#039; OR &amp;#039;),orderBy=&amp;#039;_pageID&amp;#039;})&lt;br /&gt;
    local out,seen={},{}&lt;br /&gt;
    local function add(name)&lt;br /&gt;
        local g=findGroup(name); local target=g and g.page or name&lt;br /&gt;
        if not seen[target] then out[#out+1]=link(target,g and g.Name or name);seen[target]=true end&lt;br /&gt;
    end&lt;br /&gt;
    for _,r in ipairs(found) do add(r.page) end&lt;br /&gt;
    for _,g in ipairs(groups()) do&lt;br /&gt;
        -- Founders are shown separately in the card; membership is the source of reverse participation.&lt;br /&gt;
    end&lt;br /&gt;
    for _,name in ipairs(split(a.legacy,&amp;#039;,&amp;#039;)) do add(name) end&lt;br /&gt;
    return table.concat(out,&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
function p.author(frame)&lt;br /&gt;
    local name=clean(frame.args[1]);if name==&amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local g=findGroup(name)&lt;br /&gt;
    if g then return link(g.page,name) end&lt;br /&gt;
    local title=mw.title.new(name)&lt;br /&gt;
    if not title then return text(name) end&lt;br /&gt;
    if title.exists then return link(name) end&lt;br /&gt;
    local collective=false&lt;br /&gt;
    for _,n in ipairs(split(frame.args[2],&amp;#039;,&amp;#039;)) do&lt;br /&gt;
        if mw.ustring.lower(n)==mw.ustring.lower(name) then collective=true end&lt;br /&gt;
    end&lt;br /&gt;
    local form=collective and &amp;#039;Collective&amp;#039; or &amp;#039;Persona&amp;#039;&lt;br /&gt;
    local values&lt;br /&gt;
    if collective then values=&amp;#039;Collective[Name]=&amp;#039;..mw.uri.encode(name,&amp;#039;QUERY&amp;#039;)..&amp;#039;&amp;amp;Collective[Type]=&amp;#039;..mw.uri.encode(&amp;#039;Коллектив&amp;#039;,&amp;#039;QUERY&amp;#039;)&lt;br /&gt;
    else&lt;br /&gt;
        local last=name:match(&amp;#039;([^ ]+)$&amp;#039;) or name&lt;br /&gt;
        local first=name:match(&amp;#039;^([^ ]+)&amp;#039;) or name&lt;br /&gt;
        values=&amp;#039;Persona[Name]=&amp;#039;..mw.uri.encode(name,&amp;#039;QUERY&amp;#039;)..&amp;#039;&amp;amp;Persona[FullName]=&amp;#039;..mw.uri.encode(last..&amp;#039;, &amp;#039;..first,&amp;#039;QUERY&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    return frame:callParserFunction(&amp;#039;#formredlink&amp;#039;,{target=name,form=form,[&amp;#039;query string&amp;#039;]=values,&amp;#039;create page&amp;#039;})&lt;br /&gt;
end&lt;br /&gt;
function p.performerValues()&lt;br /&gt;
    local values,seen={},{}&lt;br /&gt;
    local function add(n)&lt;br /&gt;
        n=clean(n)&lt;br /&gt;
        if n~=&amp;#039;&amp;#039; and not n:find(&amp;#039;,&amp;#039;,1,true) and not seen[n] then values[#values+1]=n;seen[n]=true end&lt;br /&gt;
    end&lt;br /&gt;
    for _,r in ipairs(query(&amp;#039;Persona&amp;#039;,&amp;#039;Name&amp;#039;,{orderBy=&amp;#039;_pageID&amp;#039;})) do add(r.Name) end&lt;br /&gt;
    for _,g in ipairs(groups()) do if g.Test~=&amp;#039;1&amp;#039; then add(g.Name) end end&lt;br /&gt;
    table.sort(values)&lt;br /&gt;
    return table.concat(values,&amp;#039;,&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
local function tableStart(headers)&lt;br /&gt;
    local t=mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;wikitable bw-collective-table&amp;#039;)&lt;br /&gt;
    local tr=t:tag(&amp;#039;tr&amp;#039;);for _,h in ipairs(headers) do tr:tag(&amp;#039;th&amp;#039;):wikitext(h) end&lt;br /&gt;
    return t&lt;br /&gt;
end&lt;br /&gt;
local function cell(tr,value) tr:tag(&amp;#039;td&amp;#039;):wikitext(value or &amp;#039;&amp;#039;) end&lt;br /&gt;
function p.repertoire(frame)&lt;br /&gt;
    local page=mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
    local g=findGroup(page)&lt;br /&gt;
    if not g then return &amp;#039;\n== Исполнения песен ==\nПока нет добавленных исполнений.\n&amp;#039; end&lt;br /&gt;
    local where={}&lt;br /&gt;
    for _,name in ipairs(aliases(g)) do where[#where+1]=&amp;#039;p.performer HOLDS &amp;#039;..quote(name) end&lt;br /&gt;
    local rows=query(&amp;#039;Performance=p,song=s&amp;#039;,&amp;#039;p._ID=id,p._pageName=page,p.performer=performers,p.link=url,p.type=kind,p.comm=note,s.Name=name,s.Composer=composer,s.Lyric=lyric,s.FirstString=first&amp;#039;,&lt;br /&gt;
        {where=&amp;#039;(&amp;#039;..table.concat(where,&amp;#039; OR &amp;#039;)..&amp;#039;)&amp;#039;,[&amp;#039;join&amp;#039;]=&amp;#039;p._pageID=s._pageID&amp;#039;,orderBy=&amp;#039;s.Name,p._ID&amp;#039;})&lt;br /&gt;
    local out=&amp;#039;\n== Исполнения песен ==\n&amp;#039;&lt;br /&gt;
    if #rows==0 then out=out..&amp;#039;Пока нет добавленных исполнений. Их можно указать в разделе «Исполнение» на страницах песен.\n&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        local t=tableStart({&amp;#039;Песня&amp;#039;,&amp;#039;Авторы&amp;#039;,&amp;#039;Первая строка&amp;#039;,&amp;#039;Запись&amp;#039;,&amp;#039;Исполнители / комментарий&amp;#039;})&lt;br /&gt;
        local seen={}&lt;br /&gt;
        for _,r in ipairs(rows) do&lt;br /&gt;
            if not seen[r.id] then&lt;br /&gt;
                seen[r.id]=true;local tr=t:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                cell(tr,link(r.page,r.name or r.page))&lt;br /&gt;
                cell(tr,text(r.composer==r.lyric and r.composer or table.concat({r.composer or &amp;#039;&amp;#039;,r.lyric or &amp;#039;&amp;#039;},&amp;#039; / &amp;#039;)))&lt;br /&gt;
                cell(tr,text(r.first))&lt;br /&gt;
                local url=r.url or &amp;#039;&amp;#039;&lt;br /&gt;
                cell(tr,url:match(&amp;#039;^https?://&amp;#039;) and not url:find(&amp;#039;[%s&amp;lt;&amp;gt;%[%]{}|]&amp;#039;) and &amp;#039;[&amp;#039;..url..&amp;#039; &amp;#039;..text(r.kind or &amp;#039;Запись&amp;#039;)..&amp;#039;]&amp;#039; or text(r.kind))&lt;br /&gt;
                cell(tr,text(r.performers)..(clean(r.note)~=&amp;#039;&amp;#039; and &amp;#039;&amp;lt;br /&amp;gt;&amp;#039;..text(r.note) or &amp;#039;&amp;#039;))&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        out=out..&amp;#039;&amp;lt;div class=&amp;quot;bw-collective-scroll&amp;quot;&amp;gt;&amp;#039;..tostring(t)..&amp;#039;&amp;lt;/div&amp;gt;\n&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    where={}&lt;br /&gt;
    for _,name in ipairs(aliases(g)) do&lt;br /&gt;
        for _,field in ipairs({&amp;#039;Composer&amp;#039;,&amp;#039;Lyric&amp;#039;,&amp;#039;Translation&amp;#039;}) do where[#where+1]=field..&amp;#039; HOLDS &amp;#039;..quote(name) end&lt;br /&gt;
    end&lt;br /&gt;
    local songs=query(&amp;#039;song&amp;#039;,&amp;#039;_pageName=page,Name,FirstString&amp;#039;,{where=table.concat(where,&amp;#039; OR &amp;#039;),orderBy=&amp;#039;Name,_pageID&amp;#039;})&lt;br /&gt;
    if #songs&amp;gt;0 then&lt;br /&gt;
        out=out..&amp;#039;\n== Авторские песни ==\n&amp;#039;&lt;br /&gt;
        local t=tableStart({&amp;#039;Песня&amp;#039;,&amp;#039;Первая строка&amp;#039;});local seen={}&lt;br /&gt;
        for _,r in ipairs(songs) do if not seen[r.page] then local tr=t:tag(&amp;#039;tr&amp;#039;);cell(tr,link(r.page,r.Name));cell(tr,text(r.FirstString));seen[r.page]=true end end&lt;br /&gt;
        out=out..&amp;#039;&amp;lt;div class=&amp;quot;bw-collective-scroll&amp;quot;&amp;gt;&amp;#039;..tostring(t)..&amp;#039;&amp;lt;/div&amp;gt;\n&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    return out&lt;br /&gt;
end&lt;br /&gt;
function p.catalog()&lt;br /&gt;
    local out={};local buckets={}&lt;br /&gt;
    for _,g in ipairs(groups()) do&lt;br /&gt;
        if g.Test~=&amp;#039;1&amp;#039; then local kind=clean(g.Type);if kind==&amp;#039;&amp;#039; then kind=&amp;#039;Коллектив&amp;#039; end&lt;br /&gt;
            buckets[kind]=buckets[kind] or {};table.insert(buckets[kind],g)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    for _,kind in ipairs({&amp;#039;Дуэт&amp;#039;,&amp;#039;Трио&amp;#039;,&amp;#039;Ансамбль&amp;#039;,&amp;#039;Группа&amp;#039;,&amp;#039;Творческий проект&amp;#039;,&amp;#039;Коллектив&amp;#039;}) do&lt;br /&gt;
        if buckets[kind] then&lt;br /&gt;
            out[#out+1]=&amp;#039;\n== &amp;#039;..kind..&amp;#039; ==\n&amp;#039;&lt;br /&gt;
            table.sort(buckets[kind],function(a,b)return a.Name&amp;lt;b.Name end)&lt;br /&gt;
            for _,g in ipairs(buckets[kind]) do out[#out+1]=&amp;#039;* &amp;#039;..link(g.page,g.Name)..(clean(g.Description)~=&amp;#039;&amp;#039; and &amp;#039; — &amp;#039;..text(g.Description) or &amp;#039;&amp;#039;)..&amp;#039;\n&amp;#039; end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return #out&amp;gt;0 and table.concat(out) or &amp;#039;Пока нет заполненных страниц коллективов.&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Bard-Wiki Guru</name></author>
	</entry>
</feed>