<?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=Wikipedia%3ATechnik%2FText%2FEdit%2FMwJed</id>
	<title>Wikipedia:Technik/Text/Edit/MwJed - 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=Wikipedia%3ATechnik%2FText%2FEdit%2FMwJed"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Technik/Text/Edit/MwJed&amp;action=history"/>
	<updated>2026-06-12T09:21:29Z</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=Wikipedia:Technik/Text/Edit/MwJed&amp;diff=433934&amp;oldid=prev</id>
		<title>imported&gt;Lómelinde: veraltete Tags &lt;tt&gt;→&lt;code&gt;</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Technik/Text/Edit/MwJed&amp;diff=433934&amp;oldid=prev"/>
		<updated>2022-11-05T18:04:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php/Spezial:LintErrors/obsolete-tag&quot; class=&quot;new&quot; title=&quot;Spezial:LintErrors/obsolete-tag (Seite nicht vorhanden)&quot;&gt;veraltete Tags&lt;/a&gt; &amp;lt;tt&amp;gt;→&amp;lt;code&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{../../../Linkbox}}&lt;br /&gt;
Mit dem Texteditor &amp;#039;&amp;#039;&amp;#039;[[jEdit]]&amp;#039;&amp;#039;&amp;#039; und dem &amp;#039;&amp;#039;&amp;#039;[http://www.djini.de/software/mwjed/ mwjed-Plugin]&amp;#039;&amp;#039;&amp;#039; lassen sich mehrere Artikel parallel direkt in den Editor laden, bearbeiten und direkt aus ihm heraus wieder im Wiki abspeichern.&lt;br /&gt;
&lt;br /&gt;
{{Achtung|1=&lt;br /&gt;
Derzeit ist die Nutzung nicht möglich, da die Login-Sequenz geändert wurde, und das Tool noch nicht angepasst wurde. Im Übrigen sind die URL nicht mehr gültig.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Diese Methode eignet sich vor allem dazu, um gleiche Änderungen mit Suchen und Ersetzen parallel in vielen Artikeln gleichzeitig zu machen und dann in einem Rutsch wieder abzuspeichern. Eine Möglichkeit, die sonst per Handarbeit stupide und langwierig wäre, ist beispielsweise das automatische Konvertieren von &amp;quot;-Gänsefüßchen in  „“-Gänsefüßchen (siehe [[Wikipedia:Typografie]]).&lt;br /&gt;
&lt;br /&gt;
== Installation von jEdit ==&lt;br /&gt;
# Voraussetzung: Java (Minimum 1.4) installiert; wenn nicht von [http://www.java.com/ Sun-Java] herunterladen und installieren.&lt;br /&gt;
# jEdit von [http://www.jedit.org/index.php?page=download download jEdit] runterladen (passenden Installer nehmen) und den Installationsanweisungen von dort folgen.&lt;br /&gt;
# Auf [http://www.djini.de/software/mwjed/ mwjed home] gehen und die Instruktionen im Abschnitt &amp;#039;&amp;#039;INSTALLATION&amp;#039;&amp;#039; abarbeiten, um das mwjed-Plugin (das MediaWiki-Plugin) zu installieren. Unter Windows dabei nach dem Ordner &amp;#039;&amp;#039;.jedit&amp;#039;&amp;#039; suchen (Punkt ist wichtig) dann entsprechend der dortigen Anweisung dort weitermachen.&lt;br /&gt;
# jEdit starten.&lt;br /&gt;
&lt;br /&gt;
== Tipps und Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung von Gänsefüßchen von Hand ===&lt;br /&gt;
# Zunächst jEdit starten und dann sich über den Texteditor im Wiki einloggen im Menü &amp;#039;&amp;#039;Plugins -&amp;gt; MwJed -&amp;gt; Log in&amp;#039;&amp;#039; und im folgenden Dialog im Auswahlmenü das gewünschte Wiki auswählen und seinen Benutzernamen und Passwort von diesem Wiki eingeben. Wenn das Login geklappt hat erscheint unten rechts im Activity-Fenster eine entsprechende Meldung.&lt;br /&gt;
# Dann in &amp;#039;&amp;#039;Plugins -&amp;gt; MwJed -&amp;gt; Open Page&amp;#039;&amp;#039; das Inhaltsverzeichnis seiner Artikel, die man bearbeiten möchte, laden (Artikellemma mit Namespacenamen, aber keinen vollständigen Weblink). Wenn das alles geklappt hatte sollte im Activity-Fenster einiges stehen und der Quelltext des Inhaltsverzeichnisses im Editor nach ein paar Sekunden zu sehen sein.&lt;br /&gt;
# Dann mit der Maus die Wikilinks der Artikel die man bearbeiten möchte einfach markieren und dann in &amp;#039;&amp;#039;Plugins -&amp;gt; MwJed -&amp;gt; Open linked pages&amp;#039;&amp;#039; anklicken. Nun sollte der Editor alle Artikel deren Lemma im Inhaltsverzeichnis markiert ist laden (links unten sieht man alle geöffneten Artikel).&lt;br /&gt;
# Dann im Menü &amp;#039;&amp;#039;Search -&amp;gt; Search in Open Buffers&amp;#039;&amp;#039; auswählen und im erscheinenden Dialogfenster &amp;#039;&amp;#039;All Buffers&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Regular expressions&amp;#039;&amp;#039; auswählen und unten bei &amp;#039;&amp;#039;Filter&amp;#039;&amp;#039; den Filter &amp;#039;&amp;#039;*.wpk&amp;#039;&amp;#039; einstellen.&lt;br /&gt;
# Nun folgt 4 Mal ein Suchen-Ersetzen-Arbeitsschritt mit verschiedenen Suchen-Ersetzen-Ausdrücken, deren Reihenfolge &amp;#039;&amp;#039;&amp;#039;unbedingt&amp;#039;&amp;#039;&amp;#039; eingehalten werden muss (jedesmal &amp;#039;&amp;#039;Replace All&amp;#039;&amp;#039; anklicken). Dabei unbedingt auch die Gleichheitszeichen mitkopieren, aber keine führenden oder endenden Leerzeichen (siehe unten).&lt;br /&gt;
# Danach im Menü &amp;#039;&amp;#039;Plugins -&amp;gt; MwJed -&amp;gt; Save all dirty pages&amp;#039;&amp;#039; auswählen, im erscheinenden Fenster einen Änderungskommentar angeben (erscheint in der Artikelhistory) und den Haken für die Watchlist (Beobachten) &amp;#039;&amp;#039;&amp;#039;unbedingt&amp;#039;&amp;#039;&amp;#039; setzen (sonst sind die Artikel nicht mehr auf der Watchlist und man kann sie nicht mehr nachchecken, was jetzt geändert wurde und ob es richtig war).&lt;br /&gt;
# Wenn der Editor fertig mit Speichern ist, im Browser die Beobachtungsliste aufrufen und im Diff schauen, ob alles richtig war, ansonsten einzeln manuell nacharbeiten und falsch gesetzte Gänsefüßchen rückgängig machen, was vielleicht bei 1 von 10 Artikeln der Fall ist. Diese Routine ist nicht fehlerfrei (sie setzt eher zu viele als zu wenige Gänsefüßchen. Sie vergisst nur sehr selten welche und wenn, dann nur einzelne, so dass man das dazugehörige zweite Gänsefüßchen trotzden dank Diff-Markierung findet).&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
suchen:                                     ersetzen:&lt;br /&gt;
=&amp;quot;([^&amp;quot;]*)&amp;quot;                                  =§§§$1§§§&lt;br /&gt;
(^\**|^:*|^;*|\s|[\(\[\|&amp;#039;&amp;gt;])&amp;quot;(&amp;#039;*\[*\w)      $1„$2&lt;br /&gt;
(\w\]*&amp;#039;*.?)&amp;quot;($|\s|[\)\]\|&amp;#039;,;.:&amp;lt;-])          $1“$2&lt;br /&gt;
=§§§([^§]*)§§§                              =&amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entlinken ===&lt;br /&gt;
Bestimmte Wikilinks im Text werden wie folgt entfernt; hier am Beispiel Antarktis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
suchen:                      ersetzen:&lt;br /&gt;
\[\[Antarktis\|([^]]+)\]\]   $1&lt;br /&gt;
\[\[Antarktis\]\]            Antarktis&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einen Text komplett entlinken (Bilder und alle anderen Links die „:“ enthalten bleiben erhalten):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
suchen:                      ersetzen:&lt;br /&gt;
\[\[([^|\]:]+)\]\]           $1&lt;br /&gt;
\[\[[^|\]:]+\|([^]]+)\]\]    $1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Direkte Hinweislinks wie „siehe [[Antarktis]]“ im Text schauen dann natürlich hinterher merkwürdig aus, aber das lässt sich nur per Hand lösen.&lt;br /&gt;
&lt;br /&gt;
=== Entfernen mehrfacher Leerzeichen ===&lt;br /&gt;
Entfernen mehrfacher Leerzeichen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
suchen:                      ersetzen:&lt;br /&gt;
\ +                          \ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Bitte unbedingt das Leerzeichen beim Ersetzen &amp;#039;&amp;#039;&amp;#039;nach&amp;#039;&amp;#039;&amp;#039; dem \ nicht vergessen! Also der Ausdruck fürs Ersetzen lautet mit Gänsefüßchen: „\ “.&lt;br /&gt;
&lt;br /&gt;
=== Entfernen aller Navileisten ===&lt;br /&gt;
Zum Entfernen von Navileisten suche nach &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;\{\{Navigationsleiste[^}]+\}\}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; und ersetze es (&amp;#039;&amp;#039;Replace All&amp;#039;&amp;#039;) durch nichts.&lt;br /&gt;
&lt;br /&gt;
== Makros ==&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung von Gänsefüßchen mittels Makro ===&lt;br /&gt;
# Speichere das unten stehende Script in &amp;#039;&amp;#039;~/.jedit/macros/WikiFuessegaenschen.bsh&amp;#039;&amp;#039;.&lt;br /&gt;
# Führe &amp;#039;&amp;#039;Macros -&amp;gt; Rescan macros&amp;#039;&amp;#039; aus, um das Makro zu laden.&lt;br /&gt;
# Über &amp;#039;&amp;#039;Utilities -&amp;gt; Global options -&amp;gt; Shortcuts -&amp;gt; Macros&amp;#039;&amp;#039; bindest du es an eine Tastenkombination .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;&lt;br /&gt;
String modify(String text) {&lt;br /&gt;
    // DOTALL, MULTILINE&lt;br /&gt;
    return text.replaceAll(&lt;br /&gt;
        // save HTML attributes&lt;br /&gt;
        &amp;quot;(?s)(?m)&amp;quot; +&lt;br /&gt;
        &amp;quot;=\&amp;quot;([^\&amp;quot;]*)\&amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;=§§§$1§§§&amp;quot;&lt;br /&gt;
    ).replaceAll(&lt;br /&gt;
        // replace starting quotes&lt;br /&gt;
        &amp;quot;(?s)(?m)&amp;quot; + &lt;br /&gt;
        &amp;quot;(^\\**|^:*|^;*|\\s|[\\(\\[\\|&amp;#039;&amp;gt;])\&amp;quot;(&amp;#039;*\\[*\\w)&amp;quot;,&lt;br /&gt;
        &amp;quot;$1\u201e$2&amp;quot;&lt;br /&gt;
    ).replaceAll(&lt;br /&gt;
        // replace ending quotes&lt;br /&gt;
        &amp;quot;(?s)(?m)&amp;quot; + &lt;br /&gt;
        &amp;quot;(\\w\\]*&amp;#039;*.?)\&amp;quot;($|\\s|[\\)\\]\\|&amp;#039;,;.:&amp;lt;-])&amp;quot;,&lt;br /&gt;
        &amp;quot;$1\u201c$2&amp;quot;&lt;br /&gt;
    ).replaceAll(&lt;br /&gt;
        // rebuild HTML attributes&lt;br /&gt;
        &amp;quot;(?s)(?m)&amp;quot; +&lt;br /&gt;
        &amp;quot;=§§§([^§]*)§§§&amp;quot;,&lt;br /&gt;
        &amp;quot;=\&amp;quot;$1\&amp;quot;&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
global.mwjed.modifyAll(view.EditPane.TextArea, this);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konvertierung von HTML-Tabellen in MediaWiki-Markup ===&lt;br /&gt;
# Speichere das unten stehende Script in &amp;#039;&amp;#039;~/.jedit/macros/WikiConvertHtmlTable.bsh&amp;#039;&amp;#039;.&lt;br /&gt;
# Führe &amp;#039;&amp;#039;Macros -&amp;gt; Rescan macros&amp;#039;&amp;#039; aus, um das Makro zu laden.&lt;br /&gt;
# Über &amp;#039;&amp;#039;Utilities -&amp;gt; Global options -&amp;gt; Shortcuts -&amp;gt; Macros&amp;#039;&amp;#039; bindest du es an eine Tastenkombination &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;&lt;br /&gt;
import au.id.jericho.lib.html.*;&lt;br /&gt;
&lt;br /&gt;
/** convert one table after another */&lt;br /&gt;
String modify(String text) {&lt;br /&gt;
    String  original    = text;&lt;br /&gt;
    for (;;) {&lt;br /&gt;
        var source  = new Source(text);&lt;br /&gt;
        var output  = new OutputDocument(source);&lt;br /&gt;
        var tables  = source.findAllElements(&amp;quot;table&amp;quot;);&lt;br /&gt;
        if (tables.size() == 0) break;&lt;br /&gt;
        var table   = tables.get(0);&lt;br /&gt;
        var buffer  = table(table);&lt;br /&gt;
        output.replace(table, buffer);&lt;br /&gt;
        text    = output.toString();&lt;br /&gt;
    }&lt;br /&gt;
    return fixLinefeeds(text);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** change linefeeds before and after tables */&lt;br /&gt;
String fixLinefeeds(text) {&lt;br /&gt;
    return text&lt;br /&gt;
            // remove unnecessary linefeeds after tables&lt;br /&gt;
            .replaceAll(&amp;quot;(?m)^\\|\\}\n\n+&amp;quot;,                 &amp;quot;|}\n\n&amp;quot;)&lt;br /&gt;
            // insert linefeed before nested tables &lt;br /&gt;
            .replaceAll(&amp;quot;(?m)^(\\|[^|\\n]*)?\\| *\\{\\|&amp;quot;,   &amp;quot;$1|\n{|&amp;quot;)&lt;br /&gt;
            // remove linefeed after nested tables&lt;br /&gt;
            .replaceAll(&amp;quot;(?m)^\\|\\}\n+\\|&amp;quot;,                &amp;quot;|}\n|&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** convert a table */&lt;br /&gt;
String table(var table) {&lt;br /&gt;
    String  buffer  = &amp;quot;{|&amp;quot; + attrs(table) + &amp;quot;\n&amp;quot;;&lt;br /&gt;
    for (var row : table.ChildElements) {&lt;br /&gt;
        buffer  += row(row);&lt;br /&gt;
    }&lt;br /&gt;
    buffer  += &amp;quot;|}&amp;quot; + &amp;quot;\n&amp;quot;;&lt;br /&gt;
    return buffer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** convert a table row */&lt;br /&gt;
String row(var row) {&lt;br /&gt;
    String  buffer  = &amp;quot;&amp;quot;;&lt;br /&gt;
    if (row.StartTag.Name.equals(&amp;quot;caption&amp;quot;)) {&lt;br /&gt;
        buffer  += &amp;quot;|+ &amp;quot; + row.Content.toString().trim() + &amp;quot;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else if (row.StartTag.Name.equals(&amp;quot;tr&amp;quot;)) {&lt;br /&gt;
        buffer  += &amp;quot;|-&amp;quot; + attrs(row) + &amp;quot;\n&amp;quot;;&lt;br /&gt;
        for (var cell : row.ChildElements) {&lt;br /&gt;
            buffer  += cell(cell);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        Macros.error(view, &amp;quot;expected tr, got: &amp;quot; + row);&lt;br /&gt;
        return fixUnexpected(row);&lt;br /&gt;
    }&lt;br /&gt;
    return buffer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** convert a table cell */&lt;br /&gt;
String cell(var cell) {&lt;br /&gt;
    String  buffer  = &amp;quot;&amp;quot;;&lt;br /&gt;
    if (cell.StartTag.Name.equals(&amp;quot;th&amp;quot;)) {&lt;br /&gt;
        buffer  += &amp;quot;!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else if (cell.StartTag.Name.equals(&amp;quot;td&amp;quot;)) {&lt;br /&gt;
        buffer  += &amp;quot;|&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        Macros.error(view, &amp;quot;expected th or td, got: &amp;quot; + cell);&lt;br /&gt;
        return fixUnexpected(cell);&lt;br /&gt;
    }&lt;br /&gt;
    buffer  += attrs(cell);&lt;br /&gt;
    buffer  += cell.StartTag.Attributes.Count != 0 ? &amp;quot; | &amp;quot; : &amp;quot; &amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    var content = cell.Content.toString();&lt;br /&gt;
    if (content.matches(&amp;quot;(?s)\\s*\n[ *#=:;].*&amp;quot;))    buffer  += &amp;quot;\n&amp;quot;;&lt;br /&gt;
    buffer  += content.trim() + &amp;quot;\n&amp;quot;;&lt;br /&gt;
    return buffer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** helper function to compile attributes of an element */&lt;br /&gt;
String attrs(var element) {&lt;br /&gt;
    var attrs   = element.StartTag.Attributes;&lt;br /&gt;
    if (attrs.Count == 0)   return &amp;quot;&amp;quot;;&lt;br /&gt;
    String  raw = attrs.toString().replace(&amp;quot;\n&amp;quot;, &amp;quot; &amp;quot;).trim();&lt;br /&gt;
    for (var key : FIXED_ATTRS) {&lt;br /&gt;
        raw = fixAttr(raw, key);&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot; &amp;quot; + raw;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
String[] FIXED_ATTRS = new String[] {&lt;br /&gt;
    &amp;quot;valign&amp;quot;, &amp;quot;align&amp;quot;, &lt;br /&gt;
    &amp;quot;bgcolor&amp;quot;, &amp;quot;color&amp;quot;, &lt;br /&gt;
    &amp;quot;border&amp;quot;, &amp;quot;cellpadding&amp;quot;, &amp;quot;cellspacing&amp;quot;, &lt;br /&gt;
    &amp;quot;colspan&amp;quot;, &amp;quot;rowspan&amp;quot;, &lt;br /&gt;
    &amp;quot;width&amp;quot;, &amp;quot;height&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/** fix syntax of a single attribute */&lt;br /&gt;
String fixAttr(String attrs, String key) {&lt;br /&gt;
    return attrs.replaceAll(&lt;br /&gt;
        &amp;quot;(?i)&amp;quot; + key + &amp;quot; *= *\&amp;quot;?([#%a-z0-9]+)\&amp;quot;?&amp;quot;,&lt;br /&gt;
        key + &amp;quot;=\&amp;quot;$1\&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** make a String representation for unexpected content */&lt;br /&gt;
String fixUnexpected(var element) {&lt;br /&gt;
    return element.toString().replaceAll(&amp;quot;\\s+$&amp;quot;, &amp;quot;&amp;quot;) + &amp;quot;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
global.mwjed.modifyAll(view.EditPane.TextArea, this);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Wikipedia:Technik/Text/Edit|MwJed]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Lómelinde</name></author>
	</entry>
</feed>