https://www.droidwiki.org/w/index.php?title=Modul:Zitation&feed=atom&action=history
Modul:Zitation - Versionsgeschichte
2024-03-29T07:22:17Z
Versionsgeschichte dieser Seite in Android Wiki
MediaWiki 1.41.0-wmf.5
https://www.droidwiki.org/w/index.php?title=Modul:Zitation&diff=11213&oldid=prev
Florian: 1 Version importiert
2015-10-24T13:18:28Z
<p>1 Version importiert</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 24. Oktober 2015, 14:18 Uhr</td>
</tr>
<!-- diff cache key droidwikiwiki:diff::1.12:old-11212:rev-11213 -->
</table>
Florian
https://www.droidwiki.org/w/index.php?title=Modul:Zitation&diff=11212&oldid=prev
dewiki>Schniggendiller: Schützte „Modul:Zitation“: Häufig eingebundenes Modul ([Bearbeiten=Nur angemeldete, nicht neue Benutzer] (unbeschränkt) [Verschieben=Nur Administratoren] (unbeschränkt))
2014-11-09T22:58:28Z
<p>Schützte „<a href="/wiki/Modul:Zitation" title="Modul:Zitation">Modul:Zitation</a>“: Häufig eingebundenes Modul ([Bearbeiten=Nur angemeldete, nicht neue Benutzer] (unbeschränkt) [Verschieben=Nur Administratoren] (unbeschränkt))</p>
<p><b>Neue Seite</b></p><div> local p = {}<br />
-- Ergänzt bei Titelformatierungen in Abhängigkeit der letzten Zeichen ein Punkt am Ende des Titels hinzu oder nicht. Test für Vorlage:Internetquelle / Vorlage:TitelFormat<br />
-- Aufruf: {{#invoke:Zitation|TitelFormat|titel=IrgendeinTitel}}<br />
function p.TitelFormat(frame)<br />
local titel = frame.args[1] or frame.args.titel<br />
if (titel == '') or (titel == nil) then<br />
return ''<br />
elseif (mw.ustring.find(titel, '[\.!?.!?。…][%]»«›‹‘’”“"\']*$')) or (mw.ustring.find(titel, '[\.!?.!?。…]</[%s%w]*>$')) then<br />
return '<i>' .. titel .. '</i>'<br />
else<br />
return '<i>' .. titel .. '.</i>'<br />
end<br />
end<br />
<br />
-- Entscheidet anhand der letzten Zeichen, ob ein Punkt gesetzt wird oder nicht. Test für Vorlage:Internetquelle<br />
-- Aufruf: {{#invoke:Zitation|Endpunkt|titel=IrgendeinTitel}}<br />
function p.Endpunkt(frame)<br />
local titel = frame.args[1] or frame.args.titel<br />
if (titel == '') or (mw.ustring.find(titel, '[\.!?.!?。…][%]»«›‹‘’”“"\']*$')) or (mw.ustring.find(titel, '[\.!?.!?。…]</[%s%w]*>$')) then<br />
return ''<br />
else<br />
return '.'<br />
end<br />
end<br />
<br />
-- Funktion zum Ersetzen von ausgewählten Elementen der Wiki-Syntax. Wird benötigt, um die durch Vorlage:Coins eingebundnenen Datensätze frei von Wiki-Syntax zu halten.<br />
-- Aufruf: {{#invoke:Zitation|RemoveWikiSyntax|text=IrgendeinTitel}}<br />
-- derzeit funktioniert die Ersetzung nicht, da die eingegeben Zeichenkette statt <math>..</math> einen UNIQ..QINU String enhält, vgl. http://www.mediawiki.org/wiki/QINU_fix<br />
function p.RemoveWikiSyntax(frame)<br />
local text = frame.args[1] or frame.args.text<br />
text = mw.ustring.gsub(text,'(UNIQ.+QINU)',"FEHLER %1")<br />
--text = "Test - Electroweak corrections to the charm quark contribution to <math>K</math>" <br />
-- internen Link entfernen (z. B. bei Autorenartikelverknüpfungen)<br />
text = mw.ustring.gsub(text,'%[%[([^%[%]]*)%]%]',"%1")<br />
-- math-Tag in TeX-Math-Umgebung umwandeln, u.a. weil math-Tags zu fehlenden COinS-Tags führen<br />
text = mw.ustring.gsub(text,'(<%s*/*%s*math[^>]*>)',"$")<br />
return text<br />
end<br />
<br />
-- Funktion zum Bereinigen von ISBN-Angaben. Wird benötigt, um unnötige Fehler durch Bindestriche oder Leerzeichen bei der Nutrzung der Vorlage:bibISBN zu umgehen.<br />
-- Aufruf: {{#invoke:Zitation|CleanISBN|isbn=IrgendeinTitel}}<br />
function p.CleanISBN(frame)<br />
local isbn = frame.args[1] or frame.args.isbn<br />
isbn = mw.ustring.gsub(isbn,'[- ]+',"")<br />
return isbn<br />
end<br />
<br />
-- Test einer Umsetzung von Vorlage:Literatur in Lua, Ziel: Abschätzung des Ressourcenverbrauchs.<br />
-- Aufruf: {{#invoke:Zitation|Literatur|Autor, Herausgeber, Titel, TitelErg, Sammelwerk, WerkErg, Reihe, Band, Nummer, Auflage, Verlag, Ort, Jahr, Monat, Tag, Datum, Kapitel, Seiten, Spalten, ISBN, ISBNistFormalFalsch, ISSN, Kommentar, Originaltitel, Originalsprache, Uebersetzer, DOI, PMID, DB, DBcode, Online, Zugriff, Typ}}<br />
-- Änderungen:<br />
-- 10. April 2013: erste Testversion<br />
-- 11. April 2013: Korrektur der Ausgabe von Band und Nummer<br />
-- 21. April 2013: Flexibilisierung des Parameters-Auflage (Ergänzung von "Auflage" nur bei Bedarf)<br />
-- 22. April 2013: Ausgabe des abschließenden Punktes korrigiert<br />
-- 30. April 2013: Umstellung der Abfrage für Trennzeichen<br />
<br />
function p.Literatur(frame)<br />
function AddDelimiterIfNeeded(text, delimiter)<br />
--local text = frame.args[1] or frame.args.text<br />
if delimiter == nil then<br />
delimiter = '.'<br />
end<br />
<br />
if (text == '') or (mw.ustring.find(text, '[\.:!?.:!?。…][%]»«›‹‘’”“"\']*[%s(&#160;)]*$')) or (mw.ustring.find(text, '[\.:!?.:!?。…]</[%s%w]*>$')) then<br />
return ''<br />
else<br />
return delimiter<br />
end<br />
end<br />
<br />
function FormatDate(Datum)<br />
if not mw.ustring.find(frame:expandTemplate{ title = 'FormatDate', args = {Datum} }, 'Fehler') then<br />
return frame:expandTemplate{ title = 'FormatDate', args = {Datum} } --{{#iferror: {{FormatDate|' .. Datum .. '}}|' .. Datum .. '}}<br />
else<br />
return Datum<br />
end<br />
end<br />
<br />
local args = frame.args<br />
local Autor = args.Autor or ''<br />
local Herausgeber = args.Herausgeber or ''<br />
local Titel = args.Titel or ''<br />
local TitelErg = args.TitelErg or ''<br />
local Sammelwerk = args.Sammelwerk or ''<br />
local WerkErg = args.WerkErg or ''<br />
local Reihe = args.Reihe or ''<br />
local Band = args.Band or ''<br />
local Nummer = args.Nummer or ''<br />
local Auflage = args.Auflage or ''<br />
local Verlag = args.Verlag or ''<br />
local Ort = args.Ort or ''<br />
local Jahr = args.Jahr or ''<br />
local Monat = args.Monat or ''<br />
local Tag = args.Tag or ''<br />
local Datum = args.Datum or ''<br />
local Kapitel = args.Kapitel or ''<br />
local Seiten = args.Seiten or ''<br />
local Spalten = args.Spalten or ''<br />
local ISBN = args.ISBN or ''<br />
local ISBNistFormalFalsch = args.ISBNistFormalFalsch or ''<br />
local ISSN = args.ISSN or ''<br />
local Kommentar = args.Kommentar or ''<br />
local Originaltitel = args.Originaltitel or ''<br />
local Originalsprache = args.Originalsprache or ''<br />
local Uebersetzer = args.Uebersetzer or ''<br />
local DOI = args.DOI or ''<br />
local PMID = args.PMID or ''<br />
local DB = args.DB or ''<br />
local DBcode = args.DBcode or ''<br />
local Online = args.Online or ''<br />
local Zugriff = args.Zugriff or ''<br />
local Typ = args.Typ or ''<br />
<br />
local Ausgabe = ''<br />
<br />
if (Autor ~= '') and (Typ ~= 'wl') then<br />
if (Sammelwerk == '') and (Herausgeber ~= '') then<br />
Ausgabe = Autor .. ', ' .. Herausgeber .. '&#160;(Hrsg.):'<br />
else<br />
Ausgabe = Autor .. ':'<br />
end<br />
elseif (Sammelwerk == '') and (Herausgeber ~= '') then<br />
Ausgabe = Herausgeber .. '&#160;(Hrsg.):'<br />
end<br />
<br />
if Titel ~= '' then<br />
Ausgabe = Ausgabe .. ' <i>' .. Titel .. '</i>'<br />
if TitelErg ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Titel, '.') ..' ' .. TitelErg<br />
end<br />
if (Sammelwerk == '') and (Reihe ~= '') then<br />
Ausgabe = Ausgabe .. ' (=&#160;<i>' .. Reihe .. '</i>'<br />
if (Band ~= '') and (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. ' ' .. Band .. ', Nr.&#160;' .. Nummer <br />
elseif (Band ~= '') then<br />
Ausgabe = Ausgabe .. ' ' .. Band<br />
elseif (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. ' Nr.&#160;' .. Nummer<br />
end<br />
Ausgabe = Ausgabe .. ').'<br />
elseif TitelErg ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(TitelErg, '.')<br />
else<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Titel, '.')<br />
end<br />
end<br />
<br />
if Sammelwerk ~= '' then<br />
if Herausgeber ~= '' then<br />
Ausgabe = Ausgabe .. ' In: ' .. Herausgeber .. '&#160;(Hrsg.): <i>' .. Sammelwerk .. '</i>'<br />
else<br />
Ausgabe = Ausgabe .. ' In: <i>' .. Sammelwerk .. '</i>'<br />
end<br />
<br />
if WerkErg ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Werk, '.') .. ' ' .. WerkErg <br />
end<br />
<br />
if Auflage ~= '' then<br />
Auflage = Auflage:gsub("^%s*(.-)%s*$", "%1"):gsub('Auflage$', 'Aufl.'):gsub('[eE]dition', 'ed.')<br />
if (Auflage:find('Aufl[%.]*$') == nil) and (Auflage:find('[eE]d[%.]*$') == nil) then<br />
Auflage = Auflage .. ' Aufl.'<br />
end<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. Auflage<br />
end<br />
<br />
if (Reihe ~= '') then<br />
Ausgabe = Ausgabe .. ' (=&#160;<i>' .. Reihe .. '</i>'<br />
if (Band ~= '') and (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. ' ' .. Band .. ', Nr.&#160;' .. Nummer <br />
elseif (Band ~= '') then<br />
Ausgabe = Ausgabe .. ' ' .. Band<br />
elseif (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. ' Nr.&#160;' .. Nummer<br />
end<br />
Ausgabe = Ausgabe .. ').'<br />
else<br />
if (Band ~= '') and (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. Band .. ', Nr.&#160;' .. Nummer <br />
elseif (Band ~= '') then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. Band<br />
elseif (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' Nr.&#160;' .. Nummer<br />
end<br />
end<br />
else<br />
if Auflage ~= '' then<br />
Auflage = Auflage:gsub("^%s*(.-)%s*$", "%1"):gsub('Auflage$', 'Aufl.'):gsub('[eE]dition', 'ed.')<br />
if (Auflage:find('Aufl[%.]*$') == nil) and (Auflage:find('[eE]d[%.]*$') == nil) then<br />
Auflage = Auflage .. ' Aufl.'<br />
end<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. Auflage<br />
end<br />
<br />
if (Band ~= '') and (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. ' ' .. Band .. ', Nr.&#160;' .. Nummer <br />
elseif (Band ~= '') then<br />
Ausgabe = Ausgabe .. ' ' .. Band<br />
elseif (Nummer ~= '') then<br />
Ausgabe = Ausgabe .. ' Nr.&#160;' .. Nummer<br />
end <br />
end<br />
<br />
if Verlag ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. Verlag<br />
end<br />
<br />
if Datum ~= '' then<br />
Jahr = '<span style="white-space:nowrap;">' .. FormatDate(Datum) .. '</span>'<br />
else<br />
if Monat ~= '' then<br />
iMonat = tonumber(Monat)<br />
if iMonat then<br />
if (iMonat > 0) and (iMonat <10) then<br />
Monat = '0' .. tonumber(Monat)<br />
end<br />
end<br />
iTag = tonumber(Tag)<br />
if iTag then<br />
if (tonumber(iTag) < 0) or (tonumber(iTag) > 31) then<br />
Tag = '00'<br />
end<br />
end<br />
Jahr = '<span style="white-space:nowrap;">' .. FormatDate(Jahr ..'-' .. Monat .. '-' .. Tag) .. '</span>'<br />
end<br />
end<br />
<br />
if (Ort ~= '') or (Jahr ~= '') then<br />
if (Ort ~= '') and (Jahr ~= '') then <br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',').. ' ' .. Ort .. ' ' .. Jahr<br />
elseif (Ort ~= '') then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',').. ' ' .. Ort<br />
else<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',').. ' ' .. Jahr<br />
end<br />
end<br />
-- ISBN oder ISSN, aber nicht beides<br />
if ISBN ~= '' then<br />
if ISBNistFormalFalsch ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. frame:expandTemplate{ title = 'Falsche ISBN', args = {ISBN} }<br />
else<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ISBN ' .. ISBN<br />
end<br />
elseif ISSN ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. frame:expandTemplate{ title = 'ISSN', args = {ISSN} }<br />
end<br />
<br />
if Kapitel ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' ' .. Kapitel<br />
end<br />
<br />
if (Seiten ~= '') or (Spalten ~= '') then<br />
if (Seiten ~= '') and (Spalten ~= '') then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' S.&#160;' .. Seiten .. ' Sp.&#160;' .. Spalten<br />
elseif Seiten ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' S.&#160;' .. Seiten<br />
else<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' Sp.&#160;' .. Spalten<br />
end<br />
end<br />
<br />
if DOI ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' [[doi:' .. DOI .. ']]'<br />
end<br />
if PMID ~= '' then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') .. ' PMID ' .. PMID .. ''<br />
end<br />
<br />
if (DB ~= '') and (DBcode ~= '') then<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, ',') -- .. ','<br />
if (DB == 'arxiv') or (DB == 'arXiv') then<br />
Ausgabe = Ausgabe .. ' ' .. frame:expandTemplate{ title = 'arxiv', args = {DBcode} }<br />
elseif DB == 'DNB' then<br />
Ausgabe = Ausgabe .. ' <span class="plainlinks-print">[http://d-nb.info/' .. DBcode .. ' DNB:' .. DBcode .. ']'<br />
elseif DB == 'ZDB' then<br />
Ausgabe = Ausgabe .. ' <span class="plainlinks-print">[http://dispatch.opac.d-nb.de/DB=1.1/CMD?ACT=SRCHA&IKT=8506&TRM=' .. DBcode .. ' ZDB-ID:' .. DBcode .. ']'<br />
elseif DB == 'LCCN' then<br />
Ausgabe = Ausgabe .. ' ' .. frame:expandTemplate{ title = 'LCCN', args = {DBcode} }<br />
elseif DB == 'OCLC' then<br />
Ausgabe = Ausgabe .. ' [http://worldcat.org/oclc/' .. DBcode .. ' OCLC:' .. DBcode .. ']'<br />
elseif DB == 'PMC' then<br />
Ausgabe = Ausgabe .. ' [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC'.. DBcode .. ' PMC:' .. DBcode .. ']'<br />
elseif DB == 'Bibcode' then<br />
Ausgabe = Ausgabe .. ' [http://adsabs.harvard.edu/abs/' .. DBcode .. ' Bibcode:' .. DBcode .. ']'<br />
elseif DB == 'JSTOR' then<br />
Ausgabe = Ausgabe .. ' [http://www.jstor.org/stable/' .. DBcode .. ' JSTOR:' .. DBcode .. ']'<br />
else<br />
end<br />
end<br />
<br />
if (Kommentar ~= '') or (Online ~= '') then<br />
Klammerinhalt = ''<br />
if (Kommentar ~= '') and (Online ~= '') then<br />
Klammerinhalt = Klammerinhalt .. Kommentar .. ', '<br />
else<br />
Klammerinhalt = Klammerinhalt .. Kommentar<br />
end<br />
if Online ~= '' then<br />
Klammerinhalt = Klammerinhalt .. Online<br />
if Zugriff ~= '' then<br />
Klammerinhalt = Klammerinhalt .. ', abgerufen am <span style="white-space:nowrap;">' ..FormatDate(Zugriff) .. '</span>'<br />
end<br />
end<br />
Ausgabe = Ausgabe .. ' (' .. Klammerinhalt .. ')'<br />
end<br />
<br />
-- Abschließender Punkt<br />
Ausgabe = Ausgabe .. AddDelimiterIfNeeded(Ausgabe, '.')<br />
<br />
return Ausgabe<br />
<br />
end<br />
<br />
----------<br />
return p</div>
dewiki>Schniggendiller