Benutzer:Cepheiden/Zotero

aus Wikipedia, der freien Enzyklopädie
Hinweis: Du darfst diese Seite editieren!
Ja, wirklich. Es ist schön, wenn jemand vorbeikommt und Fehler oder Links korrigiert und diese Seite verbessert. Sollten deine Änderungen aber der innehabenden Person dieser Benutzerseite nicht gefallen, sei bitte nicht traurig oder verärgert, wenn sie rückgängig gemacht werden.
Wikipedia ist ein Wiki, sei mutig!

Diese Seite wurde auf Grundlage der Benutzerseite Benutzer:JakobVoss/Zotero erstellt, sie umfasst die ursprünglichen Beschreibung zur Nutzung von Zotero und der Bereitstellung des Export-Skriptes.

Mit dem dem CSL-Style „de.Wikipedia (Literatur-Vorlagen)“ (Empfehlung) bzw. dem (älteren) 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 „Vorlage:Literatur“ (sowie „Vorlage:Internetquelle“ und „Vorlage:Patent“) einfach in Wikipedia-Artikel eingetragen werden.

So einfach geht es

Mit Zotero und einem der beiden Export-Formaten reichen vier Schritte, um Literatur in einen Wikipedia-Artikel zu bekommen:

  1. In einer Quelle, die von Zotero unterstützt wird nach Literatur suchen (z. B. http://gso.gbv.de/DB=2.1/ oder den gängigen Websites diverser Fachverlage)
  2. Literatur in Zotero übernehmen (oben rechts in der Browser-Adressleiste erscheint ein Icon zum Draufklicken)
  3. Zotero öffnen (Strg+Alt+Z)
  4. Literatur aus Zotero ins Bearbeitungsfenster 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.

CSL-Skript (Empfehlung)

Installation

Für die Installation der CSL-Vorlage „de.Wikipedia (Literatur-Vorlagen)“ kann wie folgend beschrieben vorgegangen werden:

  1. Abspeichern des unten aufgeführten Quelltextes in eine Textdatei mit der Dateiendung „.csl“
  2. Hinzufügen des Styles in Zotero → Einstellungen → Cite → Style → Button mit +-Symbol neben "Weitere Styles hinzufügen"
  3. Gespeicherte CSL-Datei auswählen

Um den Style für den Export zu nutzen, muss er unter Zotero → Einstellungen → Cite → Export als „Standardausgabeformat“ oder „Website-spezifische Einstellung“ (Domain/Pfad: „de.wikipedia.org“) ausgewählt sein. 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, Vorlage:Internetquelle und Vorlage:Patent formatiert!

Da CSL leider noch nicht alle Parameterwerte unterstützt, beispielsweise Land und Anmeldedatum bei Patenten, ist aber in einigen Fällen weiterhin ein Teil der Angaben manuell zu ergänzen.

Quelltext

 
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0.1" demote-non-dropping-particle="sort-only" default-locale="de-DE">
  <info>
    <title>de.Wikipedia (Literatur-Vorlagen)</title>
    <id>http://www.zotero.org/styles/de.Wikipedia(Literatur-Vorlagen)</id>
    <!--<link href="http://www.zotero.org/styles/?" rel="self"/>-->
    <link href="http://de.wikipedia.org/wiki/Benutzer:Cepheiden/Zotero" rel="documentation"/>
    <author>
      <name>Cepheiden</name>
      <email>Cepheiden at de.Wikipedia</email>
    </author>
    <!--<contributor>
      <name>?</name>
      <email>?</email>
    </contributor>-->
    <category field="generic-base"/>
    <category citation-format="author-date"/>
    <updated>2019-11-12T12:00:00+00:00</updated>
    <summary>Style following de.Wikipedia WP:Zitierregeln</summary>
<!--
* CSL-Skipt zum Export von Datenbankeinträgen in Zotero in eine Vorlage (Literatur, Internetquelle und Patent) der deutschsprachigen Wikipedia
* Version: 0.23
* Datum: 2019-11-12
* Autor: Cepheiden
 
-->
    <rights>This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/</rights>
  </info>
 
  <locale xml:lang="de">
    <terms>
      <term name="anonymous" form="short">o.&#160;A.</term>
      <term name="no date" form="short">o.&#160;J.</term>
      <term name="collection-editor" form="short">Hrsg.</term>
      <term name="and others" form="short">u.#160;a.</term>
    </terms>
  </locale>

  <macro name="author" >
    <names variable="author composer" delimiter=", ">
      <name sort-separator=", "  delimiter-precedes-last="always"/>
      <label form="long" prefix=" (" suffix=")"/>
    </names>
  </macro>
 
  <macro name="author-container">
    <names variable="container-author" delimiter=", ">
      <name sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
      <label form="long" prefix=" (" suffix=")"/>
    </names>
  </macro>
 
  <macro name="editor">
    <names variable="editor" delimiter=", ">
      <name sort-separator=", " delimiter-precedes-last="always"/>
    </names>
  </macro>
 
  <macro name="editor-collection">
    <names variable="collection-editor" delimiter=", ">
      <name sort-separator=", " delimiter-precedes-last="always"/>
    </names>
  </macro>
 
  <macro name="translator">
    <names variable="translator" delimiter=", ">
      <name name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
      <label form="short" prefix=" (" suffix=")"/>
    </names>
  </macro>
 
  <macro name="access">
      <date variable="accessed">
        <date-part name="year" form="long"/>
        <date-part name="month" form="numeric-leading-zeros" prefix="-"/>
        <date-part name="day" form="numeric-leading-zeros" prefix="-"/>
      </date>
  </macro>
 
  <macro name="issued">
	<date variable="issued"  prefix="Datum = " >
		<date-part name="year" form="long"/>
		<date-part name="month" form="numeric-leading-zeros" prefix="-"/>
		<date-part name="day" form="numeric-leading-zeros" prefix="-"/>
	</date>
  </macro>
 
  <macro name="volumes">
    <group>
      <number variable="volume" form="numeric"/>
      <number variable="number-of-volumes" form="numeric" prefix=" v.&#160;"/>
    </group>
  </macro>
 
  <macro name="edition">
    <group>
      <number variable="edition" form="numeric"/>
    </group>
  </macro>

<macro name="author-short">
    <names variable="author">
      <name form="short" and="symbol" delimiter=", " initialize-with=". " delimiter-precedes-last="never" font-variant="small-caps"/>
      <et-al font-variant="normal"/>
      <substitute>
        <names variable="editor" font-variant="small-caps"/>
        <names variable="translator" font-variant="small-caps"/>
         <text variable="title" form="short" quotes="true"/>
      </substitute>
    </names>
  </macro>

  <macro name="cite-year">
    <group>
          <date variable="issued" prefix="_">
            <date-part name="year"/>
          </date>
          <text variable="year-suffix"/>
    </group>
  </macro>

  <macro name="locator">
    <group>
      <choose>
        <if type="bill legislation" match="any">
          <text variable="locator" prefix=" "/>
        </if>
        <else>
          <label variable="locator" form="short" prefix=", "/>
          <text variable="locator" prefix=" "/>
        </else>
      </choose>
    </group>
  </macro>
 
  <bibliography hanging-indent="true" et-al-min="7" et-al-use-first="1">
    <sort>
      <!--<key variable="type"/>-->
      <key macro="author"/>
      <key variable="issued"/>
    </sort>
    <layout>
    <choose>
    <!-- Patente -->
    <if type="patent">
        <group prefix="{{Patent | " suffix="}}" delimiter=" | ">
            <text variable="country" prefix="Land = "/> <!-- Zotero parameter,  http://gsl-nagoya-u.net/http/pub/csl-fields/patent.html-->
            <text variable="jurisdiction" prefix="Land = "/> <!-- Zotero parameter-->
            <text variable="number" prefix="V-Nr= "/>
            <text macro="author" prefix="Erfinder = "/>
            <text macro="editor" prefix="Anmelder = "/>
            <text variable="title" prefix="Titel = "/>
              <date variable="issued"  prefix="V-Datum = " >
                    <date-part name="year"/>
                    <date-part name="month" form="numeric-leading-zeros"  prefix="-"/>
                   <date-part name="day" form="numeric-leading-zeros"  prefix="-"/>
              </date>
              <date variable="submitted"  prefix="A-Datum = " >
                    <date-part name="year"/>
                    <date-part name="month" form="numeric-leading-zeros"  prefix="-"/>
                   <date-part name="day" form="numeric-leading-zeros"  prefix="-"/>
              </date>
			  <text variable="URL" prefix="Online = " />
        </group>
    </if>
    <!-- Internetquellen & Websites -->
    <else-if type="webpage post-weblog post">
        <group prefix="{{Internetquelle | " suffix="}}" delimiter=" | ">
            <text macro="author" prefix="autor = "/>
            <text macro="editor" prefix="hrsg = "/>
            <text variable="title" prefix="titel = "/>
            <text variable="URL" prefix="url = "/>
            <text variable="container-title"  prefix="werk = " />
              <date variable="issued"  prefix="datum = " >
                    <date-part name="year"/>
                    <date-part name="month" form="numeric-leading-zeros"  prefix="-"/>
                   <date-part name="day" form="numeric-leading-zeros"  prefix="-"/>
              </date>
            <text macro="access" prefix="zugriff = "/>
        </group>
    </else-if>
    <!-- Alle anderen Typen für als Literatur ausgeben -->
    <!-- keiner der oben genannten Fälle -->
    <else>
        <group prefix="{{Literatur | " suffix="}}" delimiter=" | ">
        <group delimiter=" | ">
            <text macro="author" prefix="Autor = "/>
            <choose>
				<if type="book" match="any">
	   				<text macro="editor-collection" prefix="HrsgReihe= "/>
				</if>
				<!-- keine Ausgabe des Herausgebers bei Artikeln -->
				<else-if type="article article-journal article-magazine article-newspaper" match="none">
					<text macro="editor" prefix="Herausgeber = "/>
				</else-if>
		</choose>
		<!-- <text macro="contributor"/> -->
		<text macro="translator"/>
            </group>
            <text variable="title"  prefix="Titel = " />
 
            <choose>
            <!-- Bücher etc. -->
            <if type="bill book thesis legal_case manuscript report song map map" match="any">
				<text macro="volumes"  prefix="Band = " />
				<text macro="edition"  prefix="Auflage = " />
				
				<text variable="collection-title" prefix="Reihe=  "/>
				<text variable="collection-number" prefix="BandReihe=  "/>
				<text variable="publisher-place"  prefix="Ort = " />
				<text variable="publisher"  prefix="Verlag = " />
				<date variable="issued"  prefix="Jahr = " >
					<date-part name="year"/>
				</date>
				<text variable="ISBN" prefix="ISBN = "/>
				<!--<text variable="LCCN" prefix="LCCN = "/> not supported by CSL 1.01-->
				<!--<text variable="OCLC" prefix="OCLC = "/> not supported by CSL 1.01-->
				<!--<text variable="DNB" prefix="DNB = "/> not supported by CSL 1.01-->
				<!--<text variable="ZDB" prefix="ZDB = "/> not supported by CSL 1.01-->
				<text variable="DOI" prefix="DOI = "/>
            </if>
            <!-- Kapitel, Schriften von Tagungen, Konferenzen, Symposien, ...-->
            <else-if type="chapter paper-conference entry-dictionary entry-encyclopedia" match="any">
				<text variable="container-title" prefix="Sammelwerk = "/>

				<text macro="volumes"  prefix="Band = " />
				<text macro="edition"  prefix="Auflage = " />

				<text variable="collection-title" prefix="Reihe=  "/>
				<text variable="collection-number" prefix="BandReihe=  "/>
				
				<text variable="publisher-place"  prefix="Ort = " />
				<text variable="publisher"  prefix="Verlag = " />
				<date variable="issued">
					<date-part name="year" prefix="Jahr = "/>
				</date>
				<text variable="ISBN" prefix="ISBN = "/>
				<text variable="page" prefix="Seiten = "/>
				<!--<text variable="LCCN" prefix="LCCN = "/> not supported by CSL 1.01-->
				<!--<text variable="OCLC" prefix="OCLC = "/> not supported by CSL 1.01-->
				<!--<text variable="DNB" prefix="DNB = "/> not supported by CSL 1.01-->
				<!--<text variable="ZDB" prefix="ZDB = "/> not supported by CSL 1.01-->
				<text variable="DOI" prefix="DOI= "/>
            </else-if>
 
            <!-- Nichtselbständige Artikel -->
            <else-if type="article article-journal article-magazine article-newspaper" match="any">
                                <group delimiter=" | ">
				<group delimiter=" | ">
					<text variable="container-title"  prefix="Sammelwerk = " />
					<text macro="volumes"  prefix="Band = " />
					<text macro="edition"  prefix="Auflage = " />
					<!--<date variable="issued">
						<date-part name="year" prefix="Jahr = "/>
					</date>-->
					<text macro="issued" />
				</group>
				
				<text variable="issue" prefix="Nummer = "/>
				<!--<text variable="ISSN" prefix="ISSN = "/>-->
				<text variable="page" prefix="Seiten = "/>
				<text variable="DOI" prefix="DOI= "/>
				<!--<text variable="arxiv" prefix="arxiv = "/> not supported by CSL 1.01-->
				<text variable="PMID" prefix="PMID = "/>
				<!--<text variable="ZDB" prefix="ZDB = "/> not supported by CSL 1.01-->
				</group>
            </else-if>
            </choose>
        <choose>
	<if variable="DOI">
	    <!-- empty -->
	</if>
        <else>
           <text variable="URL" prefix="Online = " />
       </else>
       </choose>
        </group>
    </else>
    </choose>
    </layout>
  </bibliography>


  <citation et-al-min="3" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="false" disambiguate-add-givenname="false" collapse="year">
    <sort>
      <key macro="author"/>
      <key variable="issued"/>
    </sort>
    <layout prefix="" suffix="" delimiter="; ">
      <group>
        <text macro="author-short"/>
        <text macro="cite-year"/>
        <text macro="locator"/>
      </group>
    </layout>
  </citation>
</style>

Export-Translator

Hinweis: Statt des älteren Export-Translators wird die Verwendung des CSL-Skriptes empfohlen.

Installation

Zotero v1.x (veraltet)

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:

  1. Im Feld "Label" den Namen "Wikipedia Vorlage:Literatur" eintragen.
  2. Unter "Translator Type" nur das Feld "Export" auswählen
  3. Zum Karteireiter "Code" wechseln und dort den Quelltext einfügen
  4. Auf "Save to database" Klicken (das zweite Icon)
  5. 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!

Zotero v2.x (veraltet)

Seit Zotero 2.0 können die Übersetzer (Translator) direkt bearbeitet werden. Aus diesem Grund wurde das Scaffold-Plugin lange Zeit nicht weiterentwickelt und war nur mit Scaffold Zotero 1.0.x. kompatibel. Für Nutzer von Zotero 2.x (Preview für Zotero 3.x) gibt es mittlerweile eine neue Version für Export der Wikipedia-Vorlage:Literatur, die allerdings nicht mit der neusten Version von Firefox (7.x) oder anderen Browsern kompatibel ist. Damit man auf die Funktion nicht verzichten muss, gibt es einen weiteren Installationsweg. Zur Installation müssen Zotero installiert sein. Anschließend wird der Übersetzer im Zotero-Verzeichnis angelegt. Das geht so:

  1. Zotero-Translator-Verzeichnis ermitteln
  2. Den Quelltext in einer Datei im Zotero-Translator-Verzeichnis als JavaScript-Datei speichern, beispielsweise "de-Wikipedia Vorlage-Literatur.js"
  3. Am Anfang der neuen JavaScript-Datei folgende Zeile einfügen
    •  {"translatorID":"abdd7610-7712-4a01-bd2e-b4e9104ac6d2","translatorType":2,"label":"de-Wikipedia Vorlage-Literatur","creator":"JakobVoss","target":null,"minVersion":"1.0","maxVersion":"","priority":100,"inRepository":false,"lastUpdated":"2009-11-18 07:44:13"}
      
  4. Zotero-Einstellungen öffnen
  5. Zum Karteireiter "Export" wechseln und das "Standardausgabeformat" "de-Wikipedia Vorlage-Literatur" auswählen
  6. 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 "Website-spezifische Einstellung" stellst du als „Standardausgabeformat“ oder „Website-spezifische Einstellung“ (Domain/Pfad: „de.wikipedia.org“) „de-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!

Quelltext

 
/**
* Wikipedia Literaturvorlage - Export-Translator für Zotero
* Version: 0.1b
* Autor: Jakob Voß
* Mitabeiter: Cepheiden
*
* 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 = {
    "0":"Januar",
    "1":"Februar",
    "2":"März",
    "3":"April",
    "4":"Mai",
    "5":"Juni",
    "6":"Juli",
    "7":"August",
    "8":"September",
    "9":"Oktober",
    "10":"November",
    "11":"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);
    }
}