MediaWiki:Gadget-Rechtschreibpruefung.js und Vorlage:CoordinateSimple: Unterschied zwischen den Seiten

Aus Cowboy’s Wiki
(Unterschied zwischen Seiten)
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „// Minimale Rechtschreibprüfung: Version 2 // Siehe Cowboy’s Wiki:Helferlein/Rechtschreibprüfung // // Der Text eines Artikels (in der normalen Artikelansi…“)
 
(Die Seite wurde neu angelegt: „<!-- Alleszusammengeschrieben für optimale Performance und minimalen Parser-Speicherbedarf. Code-Dokumentation: siehe Vorlage:CoordinateSimple/Doku --> <onlyi…“)
 
Zeile 1: Zeile 1:
// Minimale Rechtschreibprüfung: Version 2
+
<!-- Alleszusammengeschrieben für optimale Performance und minimalen Parser-Speicherbedarf. Code-Dokumentation: siehe Vorlage:CoordinateSimple/Doku -->
// Siehe Cowboy’s Wiki:Helferlein/Rechtschreibprüfung
+
<onlyinclude><includeonly>{{#if:{{{EW|}}}{{{NS|}}}|{{#if:{{#ifexpr:abs({{{NS|0}}})>90|1}}{{#if:{{{NS|}}}||1}}{{#titleparts:{{{NS|}}}|1|2}}|{{CoordinateError|NS|1}}}}{{#if:{{#ifexpr:abs({{{EW|0}}})>180|1}}{{#if:{{{EW|}}}||1}}{{#titleparts:{{{EW|}}}|1|2}}|{{CoordinateError|EW|1}}}}{{#if:{{{name|}}}||{{CoordinateError|name|8|1}}}}{{#if:{{{region|}}}||{{CoordinateError|region|6|1}}}}{{#switch:{{{type|}}}|landmark|waterbody|mountain|city|isle|airport|adm2nd|adm1st|state|country|continent|forest|landscape|event|railwaystation|building=|#default={{CoordinateError|type|3}}}}{{#if:{{{article|}}}{{{map|}}}{{{globe|}}}|{{CoordinateError|article/map/globe|5|0}}}}{{#if:{{{sortkey|}}}|{{CoordinateSort|{{{NS|0}}}|{{{EW|0}}}|key={{{sortkey|}}}}}}}<span id="{{anchorencode:{{{name|}}}}}" class=plainlinks-print title=Koordinate>[https://geohack.toolforge.org/geohack.php?pagename={{FULLPAGENAMEE}}&language=de&params={{{NS|}}}_N_{{{EW|}}}_E_region:{{{region|}}}_type:{{{type|}}}{{#if:{{{dim|}}}|_dim:{{{dim}}}}}&title={{urlencode:{{{name|}}}}} {{#switch:{{{text|}}}|=Lage|DMS|DM|DEC|CH1903|UTM|ICON0|ICON1|ICON2={{CoordinateSimpleText|{{{text|}}}|{{{NS|}}}|{{{EW|}}}}}|#default={{{text|}}}}}]</span>{{#if:{{NAMESPACE}}||{{#coordinates:{{{NS}}}|{{{EW}}}|{{#if:{{{article}}}|primary}}|dim={{{dim}}}|name={{{name}}}|region={{{region}}}|type={{{type}}}}}}}|{{CoordinateNO{{#if:{{NAMESPACE}}|x}}|text=Lage|article=|type={{{type|}}}|region={{{region|}}}|lw={{{lw|}}}|name={{{name|}}}|simple=y}}}}</includeonly><noinclude>{{Dokumentation}}</noinclude></onlyinclude>
//
 
// Der Text eines Artikels (in der normalen Artikelansicht, nicht beim Bearbeiten) wird an den
 
// Toolserver geschickt, gegen eine Wortliste geprüft und fehlerhafte Wörter werden dann im
 
// Text rot hervorgehoben.
 
 
 
function spellcheck()
 
{
 
  // Anfrage an Toolserver senden
 
  var scJS = document.createElement('script');
 
  scJS.type = 'text/javascript';
 
  scJS.src = 'https://spellcheck.toolforge.org/de/checkArticle.php?pageName=' + encodeURIComponent( mw.config.get( 'wgPageName' ) );
 
  document.getElementsByTagName('head')[0].appendChild(scJS);
 
}
 
 
window.markWordStart = function(text, hint)
 
{
 
  markWord(document.getElementById('mw-content-text'), text, hint);
 
};
 
 
function markWord(node, text, hint)
 
{
 
  var pos, len, newnodes = 0;
 
  var newnode, middlenode, endnode;
 
 
  // textnode - search for word
 
  if (node.nodeType == 3)
 
  {  
 
    pos = node.data.search(text);
 
    if(pos >= 0)
 
    {
 
      // create new span-element
 
      newnode = document.createElement("span");
 
      newnode.style.backgroundColor = "#FF9191";
 
      newnode.title = hint;
 
 
      // get length of the matching part
 
      len = node.data.match(text)[0].length;
 
 
      // splits content in three parts: begin, middle and end
 
      middlenode = node.splitText(pos);
 
      endnode = middlenode.splitText(len);
 
 
      // appends a copy of the middle to the new span-node
 
      newnode.appendChild(middlenode.cloneNode(true));
 
      // replace middlenode with the new span-node
 
      middlenode.parentNode.replaceChild(newnode, middlenode);
 
 
      newnodes = 1;
 
    }
 
  }
 
  else if ((node.nodeType == 1)  // element node
 
          && (node.hasChildNodes()) // with child nodes
 
          && (node.tagName.toLowerCase() != "script") // no script, style and form
 
          && (node.tagName.toLowerCase() != "style")
 
          && (node.tagName.toLowerCase() != "form"))
 
  {
 
    var this_child;
 
    for (this_child = 0; this_child < node.childNodes.length; this_child++)
 
    {
 
      this_child = this_child + markWord(node.childNodes[this_child], text, hint);
 
    }
 
  }
 
  return newnodes;
 
}
 
 
function RP_load()
 
{
 
  // Variablenabfrage, ob '''keine''' automatische RP bei jedem Aufruf eines Artikels gewünscht ist.
 
  // wenn automatische RP nicht gewünscht ist, dann einfach "'''var DontAutorunRP = true;'''" vor die Einbindung schreiben
 
  // ansonsten einfach weg lassen.
 
  if ( !window.DontAutorunRP )
 
  {
 
    // Nur beim Betrachten, aber nicht auch unnötigerweise beim Bearbeiten, auf der Versionsgschichte
 
    // etc. laden: spart Wartezeit beim Benutzer und Ressourcen auf dem Toolserver
 
    // Standardmäßig RP nur auf Artikelseiten, wenn RPonAllPages "true" RP in allen Seiten
 
    if ( mw.config.get( 'wgAction' ) == 'view' && ( mw.config.get( 'wgNamespaceNumber' ) == 0 || window.RPonAllPages ))
 
    {
 
      spellcheck();
 
    }
 
  }
 
}
 
 
$( RP_load );
 

Aktuelle Version vom 30. März 2021, 02:16 Uhr

Dokumentation

Stop! Nicht verwenden! Die Vorlage ist ausschließlich für Vorlage:Coordinate bestimmt.
Diese Vorlage ist vielfach eingebunden. Wenn du die Auswirkungen genau kennst, kannst du sie bearbeiten.

Änderungswünsche oder Fragen bitte im WikiProjekt Georeferenzierung ansprechen.

Implementation der schnellen/eingeschränkten Koordinatenvorlage (simple=y), im Gegensatz zur Vollversion {{CoordinateFull}}.

Weitere Erläuterungen unter Vorlage:Coordinate#Vorlage zu langsam?

Diese Vorlage ist in {{Coordinate}} eingebunden und bindet bei Bedarf folgende Untervorlagen ein:



Aufbau des Codes:

  • wenn EW und/oder NS vorhanden ist
    • Prüfung NS
      • Prüfung auf -90..+90; erkennt auch Syntaxfehler außer /
      • Prüfung auf Leereintrag
      • Prüfung auf /
      • ggf. Ausgabe Fehlermeldung
    • Prüfung EW
      • Prüfung auf -180..+180
      • Rest wie bei NS
    • Prüfung, ob name vorhanden ist
    • Prüfung, ob region vorhanden ist
    • Prüfung type
    • Prüfung auf unzulässige Parameter
    • Sortkey erzeugen, falls gewünscht
    • Anker und Tooltip erzeugen
    • Geohack-Link erzeugen
      • Koordinatentext oder Icon erzeugen, falls gewünscht
  • sonst (EW und NS nicht vorhanden)
      • Lagewunsch erzeugen

Werkzeuge

Bei technischen Fragen zu dieser Vorlage kannst du dich auch an die Vorlagenwerkstatt wenden. Inhaltliche Fragen und Vorschläge gehören zunächst auf die Diskussionsseite. Sie können ggf. auch an eine passende Redaktion, Portal usw. gerichtet werden.