<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nb">
	<id>https://www.wikisida.no/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWayback</id>
	<title>Modul:Wayback - Sideversjonshistorikk</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikisida.no/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWayback"/>
	<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Modul:Wayback&amp;action=history"/>
	<updated>2026-04-04T04:16:31Z</updated>
	<subtitle>Versjonshistorikk for denne siden på wikien</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.wikisida.no/index.php?title=Modul:Wayback&amp;diff=1363&amp;oldid=prev</id>
		<title>Wikisida: Én sideversjon ble importert</title>
		<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Modul:Wayback&amp;diff=1363&amp;oldid=prev"/>
		<updated>2026-02-08T12:55:21Z</updated>

		<summary type="html">&lt;p&gt;Én sideversjon ble importert&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;nb&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Eldre sideversjon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Sideversjonen fra 8. feb. 2026 kl. 12:55&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;nb&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen forskjell)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key c1wiki:diff:1.41:old-1362:rev-1363 --&gt;
&lt;/table&gt;</summary>
		<author><name>Wikisida</name></author>
	</entry>
	<entry>
		<id>https://www.wikisida.no/index.php?title=Modul:Wayback&amp;diff=1362&amp;oldid=prev</id>
		<title>nb&gt;Kjetil r: Tilbakestilte endring av Russisk ubåtkaptein (bidrag) til siste versjon av Danmichaelo</title>
		<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Modul:Wayback&amp;diff=1362&amp;oldid=prev"/>
		<updated>2019-04-17T11:53:49Z</updated>

		<summary type="html">&lt;p&gt;Tilbakestilte endring av &lt;a href=&quot;/index.php?title=Brukerdiskusjon:Russisk_ub%C3%A5tkaptein&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Brukerdiskusjon:Russisk ubåtkaptein (siden finnes ikke)&quot;&gt;Russisk ubåtkaptein&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Spesial:Bidrag/Russisk_ub%C3%A5tkaptein&quot; title=&quot;Spesial:Bidrag/Russisk ubåtkaptein&quot;&gt;bidrag&lt;/a&gt;) til siste versjon av Danmichaelo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; inline_error &amp;gt;-----------------------&lt;br /&gt;
&lt;br /&gt;
Render red error message inline (as opposed to the system error() in large font)&lt;br /&gt;
Add article to tracking category.&lt;br /&gt;
&lt;br /&gt;
 ]]&lt;br /&gt;
&lt;br /&gt;
function p.inline_error(arg, msg)&lt;br /&gt;
  return &amp;#039;&amp;lt;span style=&amp;quot;font-size:100%&amp;quot; class=&amp;quot;error citation-comment&amp;quot;&amp;gt;Error in wayback template: Check &amp;lt;code style=&amp;quot;color:inherit; border:inherit; padding:inherit;&amp;quot;&amp;gt;&amp;amp;#124;&amp;#039; .. arg .. &amp;#039;=&amp;lt;/code&amp;gt; value. &amp;#039; .. msg .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; trimArg &amp;gt;-----------------------&lt;br /&gt;
&lt;br /&gt;
trimArg returns nil if arg is &amp;quot;&amp;quot; while trimArg2 returns &amp;#039;true&amp;#039; if arg is &amp;quot;&amp;quot; &lt;br /&gt;
trimArg2 is for args that might accept an empty value, as an on/off switch like nolink=&lt;br /&gt;
&lt;br /&gt;
 ]]&lt;br /&gt;
&lt;br /&gt;
function p.trimArg(arg)&lt;br /&gt;
  if arg == &amp;quot;&amp;quot; or arg == nil then&lt;br /&gt;
    return nil&lt;br /&gt;
  else&lt;br /&gt;
    return mw.text.trim(arg)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
function p.trimArg2(arg)&lt;br /&gt;
  if arg == nil then&lt;br /&gt;
    return nil&lt;br /&gt;
  else&lt;br /&gt;
    return mw.text.trim(arg)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; isdf &amp;gt;-----------------------&lt;br /&gt;
&lt;br /&gt;
Given df argument, return &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot; confirming what it is&lt;br /&gt;
Default is &amp;quot;yes&amp;quot;. If df is nil or &amp;quot;&amp;quot;, return &amp;quot;yes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 ]]&lt;br /&gt;
&lt;br /&gt;
function isdf(df)&lt;br /&gt;
&lt;br /&gt;
  if df == &amp;quot;ja&amp;quot; or df == &amp;quot;j&amp;quot; or df == &amp;quot;JA&amp;quot; or df == &amp;quot;yes&amp;quot; or df == &amp;quot;Yes&amp;quot; or df == &amp;quot;YES&amp;quot; or df == &amp;quot;y&amp;quot; or df == &amp;quot;Y&amp;quot; or df == &amp;quot;dmy&amp;quot; or df == &amp;quot;DMY&amp;quot; then&lt;br /&gt;
    return &amp;quot;yes&amp;quot;&lt;br /&gt;
  elseif df == &amp;quot;iso&amp;quot; or df == &amp;quot;ISO&amp;quot; then&lt;br /&gt;
     return &amp;quot;iso&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
  return &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; monthen2no &amp;gt;-----------------------&lt;br /&gt;
&lt;br /&gt;
Convert English month to Norwegian &lt;br /&gt;
&lt;br /&gt;
 ]]&lt;br /&gt;
&lt;br /&gt;
function p.monthen2no(month)&lt;br /&gt;
&lt;br /&gt;
  local nmonth&lt;br /&gt;
&lt;br /&gt;
  month = mw.ustring.lower( month )&lt;br /&gt;
&lt;br /&gt;
  if month == &amp;quot;january&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;januar&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;february&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;februar&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;march&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;mars&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;april&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;april&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;may&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;mai&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;june&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;juni&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;july&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;juli&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;august&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;august&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;september&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;september&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;october&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;oktober&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;november&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;november&amp;quot;&lt;br /&gt;
  elseif month == &amp;quot;december&amp;quot; then&lt;br /&gt;
    nmonth = &amp;quot;desember&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    nmonth = month&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return nmonth&lt;br /&gt;
  &lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; makedate &amp;gt;-----------------------&lt;br /&gt;
&lt;br /&gt;
Given a year, month and day, convert into a full date while respecting df (dmy or mdy)&lt;br /&gt;
&lt;br /&gt;
 ]]&lt;br /&gt;
&lt;br /&gt;
function p.makedate(year, month, day, df)&lt;br /&gt;
&lt;br /&gt;
  local nmonth, zmonth, zday&lt;br /&gt;
&lt;br /&gt;
  if not year or year == &amp;quot;&amp;quot; or not month or month == &amp;quot;&amp;quot; or not day or day == &amp;quot;&amp;quot; then&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  zmonth = month&lt;br /&gt;
  month = month:match(&amp;quot;0*(%d+)&amp;quot;)                                      -- strip leading 0&lt;br /&gt;
  if tonumber(month) &amp;lt; 1 or tonumber(month) &amp;gt; 12 then&lt;br /&gt;
    return year&lt;br /&gt;
  end&lt;br /&gt;
  nmonth = os.date(&amp;quot;%B&amp;quot;, os.time{year=2000, month=month, day=1} )     -- Month in name form   &lt;br /&gt;
  if not nmonth then&lt;br /&gt;
    return year&lt;br /&gt;
  end&lt;br /&gt;
  nmonth = p.monthen2no(nmonth)    &lt;br /&gt;
&lt;br /&gt;
  zday = day&lt;br /&gt;
  day = day:match(&amp;quot;0*(%d+)&amp;quot;)&lt;br /&gt;
  if tonumber(day) &amp;lt; 1 or tonumber(day) &amp;gt; 31 then&lt;br /&gt;
    return nmonth .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
  end                                       &lt;br /&gt;
&lt;br /&gt;
  if df == &amp;quot;yes&amp;quot; then&lt;br /&gt;
    return day .. &amp;quot;. &amp;quot; .. nmonth .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
  elseif df == &amp;quot;iso&amp;quot; then&lt;br /&gt;
    return year .. &amp;quot;-&amp;quot; .. zmonth .. &amp;quot;-&amp;quot; .. zday&lt;br /&gt;
  else&lt;br /&gt;
    return nmonth .. &amp;quot; &amp;quot; .. day .. &amp;quot;, &amp;quot; .. year&lt;br /&gt;
  end&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; wayback &amp;gt;-----------------------&lt;br /&gt;
&lt;br /&gt;
Main function for Template:wayback&lt;br /&gt;
&lt;br /&gt;
 ]]&lt;br /&gt;
&lt;br /&gt;
function p.wayback(frame)&lt;br /&gt;
&lt;br /&gt;
  local pframe = frame:getParent()&lt;br /&gt;
  local args = pframe.args&lt;br /&gt;
&lt;br /&gt;
  local tname = &amp;quot;Wayback&amp;quot;                                 -- name of calling template. Change if template rename.&lt;br /&gt;
&lt;br /&gt;
  local url = nil                                         -- source url (not archive.org url)&lt;br /&gt;
  local title = nil                                       -- title argument&lt;br /&gt;
  local df = nil                                          -- df argument&lt;br /&gt;
  local comma = nil                                       -- &amp;quot;,&amp;quot; for mdy or &amp;quot;&amp;quot; for dmy&lt;br /&gt;
  local snapdate = nil                                    -- eg. &amp;quot;20160520000000&amp;quot;&lt;br /&gt;
  local snapdatelong = nil                                -- 14-digit 0-padded version of snapdate if it is truncated&lt;br /&gt;
  local fulldate = nil                                    -- eg. &amp;quot;May 20, 2016&amp;quot;&lt;br /&gt;
  local currdate = nil                                    -- today&amp;#039;s date&lt;br /&gt;
  local urlhead = &amp;quot;https://web.archive.org/web/&amp;quot;&lt;br /&gt;
  local tail = nil &lt;br /&gt;
  local nolink = nil&lt;br /&gt;
  &lt;br /&gt;
                                                          -- URL argument (positional #1)&lt;br /&gt;
&lt;br /&gt;
  url = p.trimArg(args[1]) or p.trimArg(args.url) or p.trimArg(args.site)                -- &amp;quot;site&amp;quot; for {{waybackdate}}&lt;br /&gt;
  if not url then&lt;br /&gt;
    return p.inline_error(&amp;quot;url&amp;quot;, &amp;quot;Empty.&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  local safe = url&lt;br /&gt;
  local l, count = string.gsub(safe, &amp;quot;archive.org/?w?e?b?/[0-9]+/http&amp;quot;, &amp;quot;&amp;quot;)              -- Count number of &amp;quot;archive.org&amp;quot; &lt;br /&gt;
  if count &amp;gt; 0 then &lt;br /&gt;
    return p.inline_error(&amp;quot;url&amp;quot;, &amp;quot;Should be the original URL not an archive.org URL.&amp;quot;)&lt;br /&gt;
  end &lt;br /&gt;
  local l, count = string.gsub(safe, &amp;quot;archive.org/?w?e?b?/http&amp;quot;, &amp;quot;&amp;quot;)                     -- Count number of &amp;quot;archive.org&amp;quot; &lt;br /&gt;
  if count &amp;gt; 0 then &lt;br /&gt;
    return p.inline_error(&amp;quot;url&amp;quot;, &amp;quot;Should be the original URL not an archive.org URL.&amp;quot;)&lt;br /&gt;
  end &lt;br /&gt;
  &lt;br /&gt;
                                                          -- Title argument (positional #2)&lt;br /&gt;
&lt;br /&gt;
  title = p.trimArg(args[2]) or p.trimArg(args.title)&lt;br /&gt;
&lt;br /&gt;
                                                          -- Date argument (positional #3)&lt;br /&gt;
&lt;br /&gt;
  snapdate = p.trimArg(args[3]) or p.trimArg(args.date)&lt;br /&gt;
  if not snapdate or snapdate == &amp;quot;*&amp;quot; then&lt;br /&gt;
    snapdate = &amp;quot;*&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    local safe = snapdate&lt;br /&gt;
    local starcount = 0&lt;br /&gt;
    snapdate = string.gsub(safe, &amp;quot;[a-z][a-z]_[0-9]?$&amp;quot;, &amp;quot;&amp;quot;)              -- Remove any trailing &amp;quot;re_&amp;quot; from date &lt;br /&gt;
    safe = snapdate&lt;br /&gt;
    snapdate = string.gsub(safe, &amp;quot;[-]&amp;quot;, &amp;quot;&amp;quot;)                             -- Remove dashes from date eg. 2015-01-01 &lt;br /&gt;
    safe = snapdate&lt;br /&gt;
    snapdate, starcount = string.gsub(safe, &amp;quot;[*]$&amp;quot;, &amp;quot;&amp;quot;)                 -- Remove trailing &amp;quot;*&amp;quot; and re-add below after processing&lt;br /&gt;
    if not tonumber(snapdate) then&lt;br /&gt;
      return p.inline_error(&amp;quot;date&amp;quot;, &amp;quot;Should be 14-digit snapshot ID in form YYYYMMDDhhmmss (error code 1)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    local dlen = string.len(snapdate)&lt;br /&gt;
    if dlen &amp;lt; 4 then&lt;br /&gt;
      return p.inline_error(&amp;quot;date&amp;quot;, &amp;quot;Should be 14-digit snapshot ID in form YYYYMMDDhhmmss (error code 2)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    if dlen &amp;lt; 14 then&lt;br /&gt;
      snapdatelong = snapdate .. string.rep(&amp;quot;0&amp;quot;, 14 - dlen)&lt;br /&gt;
    else&lt;br /&gt;
      snapdatelong = snapdate&lt;br /&gt;
    end&lt;br /&gt;
    local year = string.sub(snapdatelong, 1, 4)&lt;br /&gt;
    local month = string.sub(snapdatelong, 5, 6)&lt;br /&gt;
    local day = string.sub(snapdatelong, 7, 8)&lt;br /&gt;
    if not tonumber(year) or not tonumber(month) or not tonumber(day) then&lt;br /&gt;
      return p.inline_error(&amp;quot;date&amp;quot;, &amp;quot;Should be 14-digit snapshot ID in form YYYYMMDDhhmmss (error code 3)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    if tonumber(month) &amp;gt; 12 or tonumber(day) &amp;gt; 31 or tonumber(month) &amp;lt; 1 then&lt;br /&gt;
      return p.inline_error(&amp;quot;date&amp;quot;, &amp;quot;Date has invalid day or month. (error code 4)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    currdate = os.date(&amp;quot;%Y&amp;quot;)&lt;br /&gt;
    if tonumber(year) &amp;gt; tonumber(currdate) or tonumber(year) &amp;lt; 1900 then&lt;br /&gt;
      return p.inline_error(&amp;quot;date&amp;quot;, &amp;quot;Date has invalid year. (error code 5)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if starcount == 1 then&lt;br /&gt;
      snapdate = snapdate .. &amp;quot;*&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    df = isdf( p.trimArg(args.df) )&lt;br /&gt;
    if df == &amp;quot;yes&amp;quot; then&lt;br /&gt;
      comma = &amp;quot;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      comma = &amp;quot;,&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    fulldate = p.makedate(year, month, day, df)&lt;br /&gt;
 &lt;br /&gt;
    if not fulldate then&lt;br /&gt;
      return p.inline_error(&amp;quot;date&amp;quot;, &amp;quot;(error code 6)&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
                                                          -- Nolink argument &lt;br /&gt;
&lt;br /&gt;
  nolink = p.trimArg2(args.nolink)&lt;br /&gt;
  if not nolink then&lt;br /&gt;
    tail = &amp;quot; hos [[Wayback Machine]]&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    tail = &amp;quot; hos Wayback Machine&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
                                                          -- Render &lt;br /&gt;
&lt;br /&gt;
  if not title and not fulldate then  -- No title. No date&lt;br /&gt;
    return &amp;quot;[&amp;quot; .. urlhead .. snapdate .. &amp;quot;/&amp;quot; .. url .. &amp;quot; Arkivkopi]&amp;quot; .. tail .. &amp;quot;.&amp;quot;&lt;br /&gt;
  elseif not title and fulldate then  -- No title. Date.&lt;br /&gt;
    return &amp;quot;[&amp;quot; .. urlhead .. snapdate .. &amp;quot;/&amp;quot; .. url .. &amp;quot; Arkivert] &amp;quot; .. fulldate .. comma ..  tail .. &amp;quot;.&amp;quot;&lt;br /&gt;
  elseif title and not fulldate then  -- Title. No date.&lt;br /&gt;
    return &amp;quot;[&amp;quot; .. urlhead .. snapdate .. &amp;quot;/&amp;quot; .. url .. &amp;quot; &amp;quot; .. title .. &amp;quot;]&amp;quot; .. tail .. &amp;quot;.&amp;quot;&lt;br /&gt;
  elseif title and fulldate then          -- Title. Date.&lt;br /&gt;
    return &amp;quot;[&amp;quot; .. urlhead .. snapdate .. &amp;quot;/&amp;quot; .. url .. &amp;quot; &amp;quot; .. title .. &amp;quot;]&amp;quot; .. tail .. &amp;quot;&amp;amp;#32;(&amp;#039;&amp;#039;arkivert &amp;quot; .. fulldate .. &amp;quot;&amp;#039;&amp;#039;).&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  error(&amp;quot;Error in [[:Template:&amp;quot;..tname..&amp;quot;]]: Unknown problem. Please report on template talk page (code 7)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>nb&gt;Kjetil r</name></author>
	</entry>
</feed>