<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3AArmFrGrandeGuerre</id>
	<title>Modul:Vorlage:ArmFrGrandeGuerre - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3AArmFrGrandeGuerre"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:Vorlage:ArmFrGrandeGuerre&amp;action=history"/>
	<updated>2026-06-23T08:10:31Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:Vorlage:ArmFrGrandeGuerre&amp;diff=2929569&amp;oldid=prev</id>
		<title>imported&gt;Prüm am 19. Januar 2026 um 06:16 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:Vorlage:ArmFrGrandeGuerre&amp;diff=2929569&amp;oldid=prev"/>
		<updated>2026-01-19T06:16:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local ok, tomes = pcall(require, &amp;quot;Module:Vorlage:ArmFrGrandeGuerre/data&amp;quot;)&lt;br /&gt;
if (not ok) then return debug.traceback(&amp;quot;Module:Vorlage:ArmFrGrandeGuerre/data fehlt!&amp;quot;) end&lt;br /&gt;
&lt;br /&gt;
function linkbook(frame, book, text)&lt;br /&gt;
  if (type(book) ~= &amp;quot;table&amp;quot;) then return end&lt;br /&gt;
  if (type(text) ~= &amp;quot;string&amp;quot;) then return end&lt;br /&gt;
  if (not book.id or book.id == &amp;quot;#&amp;quot;) then return text end&lt;br /&gt;
&lt;br /&gt;
  local ok, ret = pcall(frame.expandTemplate, frame, { title = &amp;#039;Gallica&amp;#039;, args = { ID = book.id, Text = text, KeinText = 1 } })&lt;br /&gt;
  if ok then return ret else return text end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function precisAndAnnexes(frame, refobj)&lt;br /&gt;
  local k, v&lt;br /&gt;
  local r = &amp;quot;&amp;quot;&lt;br /&gt;
  for k, v in ipairs(refobj.precis) do&lt;br /&gt;
    if (k == 1) then if (#refobj.precis &amp;gt; 1) then r = r .. &amp;quot; Précis editions &amp;quot; .. linkbook(frame, v, v.year) else r = r .. &amp;quot; Précis &amp;quot; .. linkbook(frame, v, v.year) end&lt;br /&gt;
    else r = r .. &amp;quot; und &amp;quot; .. linkbook(frame, v, v.year)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  if (refobj.annexes) then&lt;br /&gt;
    for k, v in ipairs(refobj.annexes) do&lt;br /&gt;
      if (k == 1) then&lt;br /&gt;
        if (string.sub(v.code, 1, 1) == &amp;quot;A&amp;quot;) then r = r .. &amp;quot;; Annexes &amp;quot; .. linkbook(frame, v, string.sub(v.code, 2))&lt;br /&gt;
        else r = r .. &amp;quot;; Cartes &amp;quot; .. linkbook(frame, v, string.sub(v.code, 2))&lt;br /&gt;
        end&lt;br /&gt;
        if (string.sub(v.code, 1, 1) == &amp;quot;A&amp;quot; and k &amp;lt; #refobj.annexes and string.sub(refobj.annexes[k + 1].code, 1, 1) == &amp;quot;C&amp;quot;) then&lt;br /&gt;
          r = r .. &amp;quot;; Cartes &amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
      elseif (string.sub(v.code, 1, 1) == &amp;quot;A&amp;quot; and k &amp;lt; #refobj.annexes and string.sub(refobj.annexes[k + 1].code, 1, 1) == &amp;quot;C&amp;quot;) then&lt;br /&gt;
        r = r .. &amp;quot; und &amp;quot; .. linkbook(frame, v, string.sub(v.code, 2)) .. &amp;quot;; Cartes &amp;quot;&lt;br /&gt;
      elseif (k == #refobj.annexes and string.sub(v.code, 1, 1) == string.sub(refobj.annexes[k - 1].code, 1, 1)) then&lt;br /&gt;
        r = r .. &amp;quot; und &amp;quot; .. linkbook(frame, v, string.sub(v.code, 2))&lt;br /&gt;
      elseif (string.sub(v.code, 1, 1) == &amp;quot;C&amp;quot; and string.sub(refobj.annexes[k - 1].code, 1, 1) == &amp;quot;A&amp;quot;) then&lt;br /&gt;
        r = r .. linkbook(frame, v, string.sub(v.code, 2))&lt;br /&gt;
      else&lt;br /&gt;
        r = r .. &amp;quot;, &amp;quot; .. linkbook(frame, v, string.sub(v.code, 2))&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.formattome(frame)&lt;br /&gt;
  local tome = tonumber(frame.args[&amp;quot;tome&amp;quot;]) or 0&lt;br /&gt;
  local format = frame.args.format or &amp;quot;semi&amp;quot;&lt;br /&gt;
  local prefix = frame.args.prefix or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  if (tome &amp;lt; 1 or tome &amp;gt; #tomes) then return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für den Band fehlt oder ist fehlerhaft!&amp;lt;/span&amp;gt;&amp;quot; end&lt;br /&gt;
  local reftome = tomes[tome]&lt;br /&gt;
&lt;br /&gt;
  if (format == &amp;quot;lang&amp;quot;) then&lt;br /&gt;
    prefix = prefix .. &amp;quot;Ministère de la guerre – État-major de l’armée – service historique (Hrsg.): &amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local r = prefix .. &amp;quot;&amp;lt;cite&amp;gt;&amp;#039;&amp;#039;Les Armées françaises dans la Grande guerre&amp;#039;&amp;#039;&amp;lt;/cite&amp;gt;, Tome &amp;quot; .. reftome.nr .. &amp;quot;: &amp;#039;&amp;#039;&amp;quot; .. reftome.title .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
  if (reftome.years and reftome.years ~= &amp;quot;&amp;quot;) then r = r .. &amp;quot; (&amp;quot; .. reftome.years .. &amp;quot;).&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  local k, v&lt;br /&gt;
  if (not reftome.volumes) then r = r .. precisAndAnnexes(frame, reftome) .. &amp;quot;.&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    for k, v in ipairs(reftome.volumes) do&lt;br /&gt;
      r = r .. &amp;quot;\n&amp;quot; .. prefix .. &amp;quot;* Vol. &amp;quot; .. k&lt;br /&gt;
      if (v.title) then r = r .. &amp;quot;: &amp;#039;&amp;#039;&amp;quot; .. v.title .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; end&lt;br /&gt;
      if (v.years and v.years ~= &amp;quot;&amp;quot;) then r = r .. &amp;quot; (&amp;quot; .. v.years .. &amp;quot;).&amp;quot; end&lt;br /&gt;
      r = r .. precisAndAnnexes(frame, v) .. &amp;quot;.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatvolume(frame)&lt;br /&gt;
  local tome    = tonumber(frame.args[&amp;quot;tome&amp;quot;]) or 0&lt;br /&gt;
  local volume  = tonumber(frame.args[&amp;quot;vol&amp;quot;]) or 0&lt;br /&gt;
&lt;br /&gt;
  local reftome = {}&lt;br /&gt;
  local refvolume = {}&lt;br /&gt;
  local refobj = {}&lt;br /&gt;
&lt;br /&gt;
  if (tome &amp;lt; 1 or tome &amp;gt; #tomes) then return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für den Band fehlt oder ist fehlerhaft!&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    reftome = tomes[tome]&lt;br /&gt;
    refobj = reftome&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if (reftome.volumes) then&lt;br /&gt;
    if (#reftome.volumes &amp;gt; 1 and (volume &amp;lt; 1 or volume &amp;gt; #reftome.volumes)) then&lt;br /&gt;
      return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für den Teilband fehlt oder ist fehlerhaft!&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      refvolume = reftome.volumes[volume]&lt;br /&gt;
      refobj = refvolume&lt;br /&gt;
    end&lt;br /&gt;
  else -- Don&amp;#039;t care?&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local r = &amp;quot;&amp;#039;&amp;#039;Les Armées françaises dans la Grande guerre&amp;#039;&amp;#039; (AFGG), Tome &amp;quot; .. reftome.nr&lt;br /&gt;
  r = r .. &amp;quot;, Volume &amp;quot; .. volume .. &amp;quot;: &amp;#039;&amp;#039;&amp;quot; .. refobj.title .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
  if (refobj.years) then r = r .. &amp;quot; (&amp;quot; .. refobj.years .. &amp;quot;)&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
  r = r .. precisAndAnnexes(frame, refobj)&lt;br /&gt;
&lt;br /&gt;
  return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatbook(frame)&lt;br /&gt;
  local tome        = tonumber(frame.args[&amp;quot;tome&amp;quot;]) or 0&lt;br /&gt;
  local volume      = tonumber(frame.args[&amp;quot;vol&amp;quot;]) or 0&lt;br /&gt;
  local edition     = tonumber(frame.args[&amp;quot;ed&amp;quot;]) or 0&lt;br /&gt;
  local annex       = frame.args[&amp;quot;annex&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
  local pages       = frame.args[&amp;quot;pages&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
  local chapter     = frame.args[&amp;quot;chapter&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
  local format      = frame.args[&amp;quot;format&amp;quot;] or &amp;quot;semi&amp;quot;&lt;br /&gt;
  local gallicapage = frame.args[&amp;quot;gallicapage&amp;quot;] or nil&lt;br /&gt;
&lt;br /&gt;
  local refobj = {}&lt;br /&gt;
  local reftome = {}&lt;br /&gt;
  local refvolume = {}&lt;br /&gt;
  local annextitle = &amp;quot;&amp;quot;&lt;br /&gt;
  local refyear = &amp;quot;&amp;quot;&lt;br /&gt;
  local refid = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  if (tome &amp;lt; 1 or tome &amp;gt; #tomes) then return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für den Band fehlt oder ist inkorrekt!&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    reftome = tomes[tome]&lt;br /&gt;
    refobj = reftome&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if (reftome.volumes) then&lt;br /&gt;
    if (#reftome.volumes == 1) then&lt;br /&gt;
      volume = 1&lt;br /&gt;
      refvolume = reftome.volumes[1]&lt;br /&gt;
      refobj = refvolume&lt;br /&gt;
    elseif (#reftome.volumes &amp;gt; 1 and (volume &amp;lt; 1 or volume &amp;gt; #reftome.volumes)) then&lt;br /&gt;
      return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für den Teilband fehlt oder ist inkorrekt!&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      refvolume = reftome.volumes[volume]&lt;br /&gt;
      refobj = refvolume&lt;br /&gt;
    end&lt;br /&gt;
  else -- Don&amp;#039;t care?&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if (#refobj.precis &amp;gt; 1 and string.len(annex) == 0) then&lt;br /&gt;
    if (edition &amp;lt; 1 or edition &amp;gt; #refobj.precis) then return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für die Auflage fehlt oder ist inkorrekt!&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      Auflage = edition&lt;br /&gt;
      refyear = refobj.precis[edition].year&lt;br /&gt;
      refid = refobj.precis[edition].id&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    refyear = refobj.precis[1].year&lt;br /&gt;
    refid = refobj.precis[1].id&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if (string.len(annex) &amp;gt; 0) then&lt;br /&gt;
    if (tonumber(string.sub(annex, 1, 1)) ~= nil) then annex = &amp;quot;A&amp;quot; .. annex end -- annex volume by default, map volume only explicitly&lt;br /&gt;
    local cur&lt;br /&gt;
    if (not refobj.annexes) then return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für die Anlage ist fehlerhaft!&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      for k, v in ipairs(refobj.annexes) do&lt;br /&gt;
        if (tostring(annex) == v.code) then&lt;br /&gt;
          cur = v.code&lt;br /&gt;
          refid = v.id&lt;br /&gt;
          if (v.year and string.len(v.year) &amp;gt; 0) then refyear = v.year end&lt;br /&gt;
&lt;br /&gt;
          if (string.sub(annex, 1, 1) == &amp;quot;A&amp;quot;) then annextitle = &amp;quot;Annexes&amp;quot;&lt;br /&gt;
          elseif (string.sub(annex, 1, 1) == &amp;quot;C&amp;quot;) then annextitle = &amp;quot;Cartes&amp;quot;&lt;br /&gt;
          end&lt;br /&gt;
&lt;br /&gt;
          if (string.sub(annex, 2)) then annextitle = annextitle .. &amp;quot;, vol. &amp;quot; .. string.sub(annex, 2) end&lt;br /&gt;
          break&lt;br /&gt;
        end&lt;br /&gt;
      end --for&lt;br /&gt;
      if (annex ~= tostring(cur)) then return &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Parameter für die Anlage ist fehlerhaft!&amp;lt;/span&amp;gt;&amp;quot; end&lt;br /&gt;
    end --else&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if ((not refyear) or string.len(refyear) &amp;lt; 4) then refyear = refobj.year end&lt;br /&gt;
  if ((not refyear) or string.len(refyear) &amp;lt; 4) then refyear = refobj.years end&lt;br /&gt;
&lt;br /&gt;
  if ((not refid) or string.len(refid) &amp;lt; 13) then refid = refobj.id end&lt;br /&gt;
&lt;br /&gt;
  if format == &amp;quot;kurz&amp;quot; then&lt;br /&gt;
    local r = &amp;quot;&amp;lt;cite&amp;gt;&amp;lt;abbr title=&amp;#039;Les Armées françaises dans la Grande guerre&amp;#039;&amp;gt;AFGG&amp;lt;/abbr&amp;gt;&amp;lt;/cite&amp;gt; &amp;quot; .. reftome.nr&lt;br /&gt;
    if (refvolume.title) then r = r .. &amp;quot;/&amp;quot; .. volume end&lt;br /&gt;
    if (string.len(annextitle) &amp;gt; 0) then r = r .. &amp;quot;, &amp;quot; .. annextitle end&lt;br /&gt;
    if (string.len(refyear) &amp;gt; 0) then r = r .. &amp;quot; (&amp;quot; .. refyear .. &amp;quot;)&amp;quot; end&lt;br /&gt;
    if (string.len(chapter) &amp;gt; 0) then r = r .. &amp;quot;, Kapitel &amp;quot; .. chapter end&lt;br /&gt;
    if (string.len(pages) &amp;gt; 0) then r = r .. &amp;quot;, S. &amp;quot; .. pages end&lt;br /&gt;
    if (type(refid) == &amp;quot;string&amp;quot; and refid ~= &amp;quot;#&amp;quot;) then&lt;br /&gt;
      local ret = mw.getCurrentFrame():expandTemplate( { title = &amp;#039;Gallica&amp;#039;, args = { ID = refid, Seite = gallicapage } })&lt;br /&gt;
      r = r .. &amp;quot;, &amp;quot; .. ret&lt;br /&gt;
    end&lt;br /&gt;
    return r .. &amp;quot;.&amp;quot;&lt;br /&gt;
  elseif format == &amp;quot;semi&amp;quot; then&lt;br /&gt;
    local r = &amp;quot;&amp;lt;cite&amp;gt;&amp;#039;&amp;#039;Les Armées françaises dans la Grande guerre&amp;#039;&amp;#039; (&amp;lt;abbr&amp;gt;AFGG&amp;lt;/abbr&amp;gt;)&amp;lt;/cite&amp;gt;, Tome &amp;quot; .. reftome.nr&lt;br /&gt;
    if (refvolume.title) then r = r .. &amp;quot;/Vol. &amp;quot; .. volume .. &amp;quot;: &amp;#039;&amp;#039;&amp;lt;cite&amp;gt;&amp;quot; .. refvolume.title .. &amp;quot;&amp;lt;/cite&amp;gt;&amp;#039;&amp;#039;&amp;quot; end&lt;br /&gt;
    if (string.len(annextitle) &amp;gt; 0) then r = r .. &amp;quot;, &amp;quot; .. annextitle end&lt;br /&gt;
    if (string.len(refyear) &amp;gt; 0) then r = r .. &amp;quot;, Paris &amp;quot; .. refyear end&lt;br /&gt;
    if (string.len(chapter) &amp;gt; 0) then r = r .. &amp;quot;, Kapitel &amp;quot; .. chapter end&lt;br /&gt;
    if (string.len(pages) &amp;gt; 0) then r = r .. &amp;quot;, S. &amp;quot; .. pages end&lt;br /&gt;
    if (type(refid) == &amp;quot;string&amp;quot; and refid ~= &amp;quot;#&amp;quot;) then&lt;br /&gt;
      local ret = mw.getCurrentFrame():expandTemplate( { title = &amp;#039;Gallica&amp;#039;, args = { ID = refid, Seite = gallicapage } })&lt;br /&gt;
      r = r .. &amp;quot;, &amp;quot; .. ret&lt;br /&gt;
    end&lt;br /&gt;
    return r .. &amp;quot;.&amp;quot;&lt;br /&gt;
  elseif format == &amp;quot;lang&amp;quot; then&lt;br /&gt;
    local litargs = {&lt;br /&gt;
      HrsgReihe=&amp;quot;Ministère de la guerre – État-major de l’armée – service historique&amp;quot;,&lt;br /&gt;
      Reihe=&amp;quot;Les Armées françaises dans la Grande guerre [AFGG]&amp;quot;,&lt;br /&gt;
      Verlag=&amp;quot;Imprimerie nationale&amp;quot;,&lt;br /&gt;
      Ort=&amp;quot;Paris&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    local Band = reftome.nr&lt;br /&gt;
    local Titel = reftome.title&lt;br /&gt;
    if (refvolume.title) then&lt;br /&gt;
      Titel = Titel .. &amp;quot; / &amp;quot; .. refvolume.title&lt;br /&gt;
    end&lt;br /&gt;
    if (volume &amp;gt; 0) then&lt;br /&gt;
      Band = Band .. &amp;quot;/&amp;quot; .. volume&lt;br /&gt;
    end&lt;br /&gt;
    if (string.len(annextitle) &amp;gt; 0) then&lt;br /&gt;
      Band = Band .. &amp;quot;, &amp;quot; .. annextitle&lt;br /&gt;
    end&lt;br /&gt;
    if (type(refid) == &amp;quot;string&amp;quot; and refid ~= &amp;quot;#&amp;quot;) then&lt;br /&gt;
      local ret = mw.getCurrentFrame():expandTemplate( { title = &amp;#039;Gallica&amp;#039;, args = { ID = refid, Seite = gallicapage } })&lt;br /&gt;
      if (ok) then litargs[&amp;quot;Online&amp;quot;] = ret end&lt;br /&gt;
    end&lt;br /&gt;
    litargs[&amp;quot;Titel&amp;quot;] = Titel&lt;br /&gt;
    litargs[&amp;quot;BandReihe&amp;quot;] = Band&lt;br /&gt;
    if (refyear and string.len(refyear) &amp;gt; 0) then litargs[&amp;quot;Datum&amp;quot;] = refyear end&lt;br /&gt;
    if (edition &amp;gt; 0) then litargs[&amp;quot;Auflage&amp;quot;] = edition end&lt;br /&gt;
    if (string.len(chapter) &amp;gt; 0) then litargs[&amp;quot;Kapitel&amp;quot;] = chapter end&lt;br /&gt;
    if (string.len(pages) &amp;gt; 0) then litargs[&amp;quot;Seiten&amp;quot;] = pages end&lt;br /&gt;
    ret = mw.getCurrentFrame():expandTemplate({ title = &amp;#039;Literatur&amp;#039;, args = litargs })&lt;br /&gt;
    return ret&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Prüm</name></author>
	</entry>
</feed>