Benutzer:JakobVoss/Zotero
Mit dem dem Zotero Export-Format "Wikipedia Vorlage:Literatur" für die Literaturverwaltung Zotero können (alternativ zum Vorlagenmeister und Vorlage:Literatur/XML) auf einfache Weise Literaturangaben gemäß der Vorlage:Literatur erstellt werden. Mit Zotero können Literaturangaben aus vielen verschiedenen bibliographischen Quellen (unter Anderem der englischsprachigen Wikipedia) gesammelt und mit dem Export "Wikipedia Vorlage:Literatur" einfach in Wikipedia-Artikel eingetragen werden.
Installation
Momentan ist das Export-Format noch sehr experimentell und nur im Quellcode vorhanden. Zur Installation müssen Zotero und das dazugehörige Scaffold-Plugin installiert sein (dafür reichen vier Mausklicks und ein Neustart des Firefox-Browsers). Anschließend öffnest du Scaffold (im Browser-Menu unter "Extras") und legst einen neuen Translator an. Das geht so:
- Im Feld "Label" den Namen "Wikipedia Vorlage:Literatur" eintragen.
- Unter "Translator Type" nur das Feld "Export" auswählen
- Zum Karteireiter "Code" wechseln und dort den Quelltext einfügen
- Auf "Save to database" Klicken (das zweite Icon)
- Ggf. Firefox neu Starten
Nun können in Zotero gesammelte Literaturangaben mit der rechten Maustaste als Wikipedia-Vorlage:Literatur in eine Datei exportiert werden. Es geht aber noch einfacher. In den Einstellungen von Zotero unter "Export" unter "Quick-Copy" stellst du als Standardausgabeformat "Wikipedia Vorlage:Literatur" ein. Nun lassen sich Literaturangaben aus Zotero per Drag and Drop direkt in ein geöffnetes Wikipedia-Bearbeitungsfenster ziehen und erscheinen dort mit der Vorlage:Literatur formatiert!
So einfach geht es
Mit Zotero und dem Export-Format "Wikipedia Vorlage:Literatur" reichen vier Schritte, um Literatur in einen Wikipedia-Artikel zu bekommen:
- In einer Quelle, die von Zotero unterstützt wird nach Literatur suchen (z.B. http://gso.gbv.de/DB=2.1/)
- Literatur in Zotero übernehmen (oben rechts in der Browser-Adressleiste erscheint ein Icon zum draufklicken)
- Zotero öffnen (Strg+Alt+Z)
- Literatur aus Zotero ins Bearbeitungsfenser des gewünschten Wikipedia-Artikels ziehen
Natürlich ist das der Idealfall - da das ganze noch sehr neu ist, gibt es sicherlich Fälle, in denen zusätzliche Handarbeit notwendig ist. Der Quellcode steht für Verbesserungen frei zur Verfügung.
Quelltext
/**
* Wikipedia Literaturvorlage - Export-Translator für Zotero
* Version: 0.1a
* Autor: Jakob Voß
*
* Ursprünglich basierend auf dem Export-Translator
* "Wikipedia Citation Templates" von Simon Kornblith.
* Weitere Informationen siehe am Ende dieses Skriptes.
**/
// internen Zotero-Datensatz mit exportieren (zum debuggen)
var exportZoteroRecord = false;
// Mögliche Vorlegen-Parameter in üblicher Reihenfolge
// siehe http://de.wikipedia.org/wiki/Vorlage:Literatur
var parameterNamen = [
"Autor", "Herausgeber", "Titel","Verlag", "Ort",
"ISBN", "ISSN", "Sammelwerk","Band","Nummer",
"Auflage", "Jahr", "Monat", "Tag",
"Seiten", "Spalten", "Kommentar", "DOI", "Online", "Zugriff"
];
// Monatsnamen
var monatsNamen = {
"1":"Januar",
"2":"Februar",
"3":"März",
"4":"April",
"5":"Mai",
"6":"Juni",
"7":"Juli",
"8":"August",
"9":"September",
"10":"Oktober",
"11":"November",
"12":"Dezember"
};
// Zotero-Felder, die sich direkt auf Vorlagen-Parameter abbilden lassen
var fieldMap = {
edition:"Auflage",
publisher:"Verlag",
DOI:"DOI",
ISBN:"ISBN",
issn:"ISSN",
conference:"Sammelwerk",
volume:"Band",
issue:"Nummer",
pages:"Seiten",
number:"Nummer",
publicationTitle:"Sammelwerk",
title:"Titel",
place:"Ort"
};
// Erstellt die Autorenliste
function formatAuthors(authors, useTypes) {
var text = "";
for each(var author in authors) {
text += ", "+author.firstName;
if(author.firstName && author.lastName) text += " ";
text += author.lastName;
if(useTypes && creatorType != "author")
text += " ("+Zotero.Utilities.getLocalizedCreatorType(author.creatorType)+")";
}
return text.substr(2);
}
// Datum in ISO-Format
function formatDate(date) {
var date = date.substr(0, date.indexOf(" "));
if(date.substr(4, 3) == "-00") {
date = date.substr(0, 4);
} else if(date.substr(7, 3) == "-00") {
date = date.substr(0, 7);
}
return date;
}
// Dies ist die Hauptfunktion für den Export
function doExport() {
var fehler = ""; // bisher nicht genutzt
var first = true;
while(item = Zotero.nextItem()) {
var literatur = new Object();
for(var zoteroField in fieldMap) {
var parameter = fieldMap[zoteroField];
if(item[zoteroField])
literatur[parameter] = item[zoteroField];
}
literatur.Autor = formatAuthors(item.creators);
if (item.url) {
var type = "";
if (item.url.match(/\.pdf$/i)) type = "PDF";
literatur.Online = "[" + item.url + (type ? " " + type : "") + "]";
}
if(item.accessDate) {
literatur.Zugriff = formatDate(item.accessDate);
}
if(item.date) {
var date = Zotero.Utilities.strToDate(item.date);
if (date["year"] != undefined){
literatur.Tag = date["day"];
literatur.Monat = monatsNamen[ date["month"] ];
literatur.Jahr = date["year"];
}
}
// TODO: Auflage: z.B. 1., 2. (Punkt am Ende nicht vergessen!)
// Bisher nicht getestet
if(item.runningTime) {
if(item.itemType == "tvBroadcast" ||
item.itemType == "radioBroadcast") {
literatur.Kommentar += item.runningTime + " Minuten";
} else {
literatur.Kommentar += item.runningTime;
}
}
// Weitere noch fehlende Felder u.A. item.series, seriesTitle, seriesText ...
// Literatur ausgeben
// TODO: Nichts ausgegeben wenn alle Felder leer
Zotero.write((first ? "" : "\r\n\r\n") + "{{Literatur");
for(var i in parameterNamen) {
var parameter = parameterNamen[i];
if(literatur[parameter]) {
Zotero.write("\r\n|"+parameter+"="+literatur[parameter]);
}
}
Zotero.write("\r\n}}");
// Internen Zotero-Datensatz anzeigen
if (exportZoteroRecord) {
var zoteroRecord = "\r\n{{ZoteroRecord";
for(var field in item) {
if (item[field]) {
zoteroRecord += "\r\n|" + field + "=" + item[field];
}
}
zoteroRecord += "\r\n}}";
Zotero.write(zoteroRecord);
}
first = false;
}
if (fehler) {
alert("Beim Exportieren ist ein Fehler aufgetreten:\n" + fehler);
}
}
Weitere Pläne
Mal sehen. Sicherlich gibt es noch viele Verbesserungsmöglichkeiten. Als nächstes steht der umgekehrte Weg (von Wikipedia-Literaturangaben nach Zotero) an. Dazu müsste ein Parser geschrieben werden, der das Format der Literaturangaben weiterverarbeiten kann.