MediaWiki:Gadget-AddProgrammingToolbar.js: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(fix \")
({{Textfarbe:rot}})
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
//<pre>
 
//<pre>
/*
 
o ptions: { *
 
pre:'{|'+classStr+"\n",//<pre>
 
 
/*
 
/*
 
  o ptions: { *
 
  o ptions: { *
Zeile 25: Zeile 22:
  
  
//<source lang="javascript">
+
// language messages
 
var thismessages = {
 
var thismessages = {
 
   de : {
 
   de : {
Zeile 35: Zeile 32:
 
     "programmingtoolbar-label-underline":          "unterstrichen",
 
     "programmingtoolbar-label-underline":          "unterstrichen",
 
     "programmingtoolbar-peri-comment":            "Kommentar:",
 
     "programmingtoolbar-peri-comment":            "Kommentar:",
 +
    "programmingtoolbar-peri-collapsible-content": "Textinhalt zusammengeklappten Bereichs",
 
     "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
     "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
     "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
 
     "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
Zeile 54: Zeile 52:
 
     "programmingtoolbar-label-underline":          "unterstrichen",
 
     "programmingtoolbar-label-underline":          "unterstrichen",
 
     "programmingtoolbar-peri-comment":            "Kommentar:",
 
     "programmingtoolbar-peri-comment":            "Kommentar:",
 +
    "programmingtoolbar-peri-collapsible-content": "Textinhalt zusammengeklappten Bereichs",
 
     "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
     "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
     "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
 
     "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
Zeile 73: Zeile 72:
 
     "programmingtoolbar-label-underline":          "underlined",
 
     "programmingtoolbar-label-underline":          "underlined",
 
     "programmingtoolbar-peri-comment":            "comment:",
 
     "programmingtoolbar-peri-comment":            "comment:",
 +
    "programmingtoolbar-peri-collapsible-content": "content of collapsible part",
 
     "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
     "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
     "programmingtoolbar-peri-defInlineDefinition": "Explanations",
 
     "programmingtoolbar-peri-defInlineDefinition": "Explanations",
Zeile 172: Zeile 172:
 
           labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
 
           labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
 
           action: {
 
           action: {
             type: "encapsulate", options: {pre: "{{nnbsp}}", post: ""}
+
             type: "encapsulate", options: {pre: "&#8239;", post: ""}
 +
          }
 +
        },{
 +
          label: '"…"',
 +
          action: {
 +
            type: 'encapsulate', options: {pre: '"', post: '"'}
 +
          }
 +
        },{
 +
          label: "'…'",
 +
          action: {
 +
            type: "encapsulate", options: {pre: "'", post: "'"}
 
           }
 
           }
 
         }, {
 
         }, {
Zeile 254: Zeile 264:
 
         "__TOC__",
 
         "__TOC__",
 
         {
 
         {
 +
          label: "abbr",
 +
          action: {
 +
            type: "encapsulate", options: {pre: '<abbr title="">', post: "</abbr>"}
 +
          }
 +
        }, {
 
           label: "code",
 
           label: "code",
 
           action: {
 
           action: {
Zeile 335: Zeile 350:
 
           action: {
 
           action: {
 
             type: "encapsulate", options: {pre: '<span style="">', post: "</span>"}
 
             type: "encapsulate", options: {pre: '<span style="">', post: "</span>"}
 +
          }
 +
        },{
 +
          label: "span#id",
 +
          action: {
 +
            type: "encapsulate", options: {pre: '<span id="">', post: "</span>"}
 
           }
 
           }
 
         }, {
 
         }, {
Zeile 340: Zeile 360:
 
           action: {
 
           action: {
 
             type: "encapsulate", options: {pre: '<div style="">', post: "</div>"}
 
             type: "encapsulate", options: {pre: '<div style="">', post: "</div>"}
 +
          }
 +
        }, {
 +
          label: "div.mw-collapsible",
 +
          action: {
 +
            type: "encapsulate",
 +
            options: {
 +
              pre: '\n<div class="mw-collapsible mw-collapsed">\nTextzeile Vorspann\n<div class="mw-collapsible-content">',
 +
              peri: mw.message("programmingtoolbar-peri-collapsible-content"),
 +
              post: "</div>\n</div>"
 +
            }
 
           }
 
           }
 
         }, {
 
         }, {
Zeile 479: Zeile 509:
 
         "characters": [
 
         "characters": [
 
           {
 
           {
             label: "{{Keyboard}}",
+
             label: "{{Kapitälchen}}",
 
             action: {
 
             action: {
               type: "encapsulate", options: {pre: "{{Keyboard |", post: "}}"}
+
               type: "encapsulate", options: {pre: "{{Kapitälchen|", post: "}}"}
 
             }
 
             }
 
           },{
 
           },{
             label: "{{Tastatur}}",
+
             label: "{{Textfarbe:rot}}",
 
             action: {
 
             action: {
               type: "encapsulate", options: {pre: "{{Tastatur |", post: "}}"}
+
               type: "encapsulate", options: {pre: "{{Textfarbe|red|", post: "}}"}
            }
 
          },/*{
 
            label: "Zitat",
 
            action: {
 
              type: "encapsulate", options: {pre: "{{Zitat |", post: "}}"}
 
            }
 
          }, {
 
            label: "Zitat versteckt",
 
            action: {
 
              type: "encapsulate", options: {pre: "{{Zitat versteckt|", post: "}}"}
 
            }
 
          },
 
          */
 
          {
 
            label: "nbsp;",
 
            labelMsg: mw.message("programmingtoolbar-label-nbsp"),
 
            action: {
 
              type: "encapsulate", options: {pre: "&nbsp;", post: ""}
 
 
             }
 
             }
 
           },{
 
           },{
             label: "{{nnbsp}}",
+
             label: "{{Tastatur}}",
            labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
 
            action: {
 
              type: "encapsulate", options: {pre: "{{nnbsp}}", post: ""}
 
            }
 
          }, {
 
            label: "()",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "(", post: ")"}
 
            }
 
          }, {
 
            label: "[]",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "[", post: "]"}
 
            }
 
          }, {
 
            label: "[[]]",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "[[", post: "]]"}
 
            }
 
          }, {
 
            label: "{{}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{", post: "}}"}
 
            }
 
          }, {
 
            label: "{{{}}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{{", post: "}}}"}
 
            }
 
          }, {
 
            label: "{{{|}}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{{", post: "|}}}"}
 
            }
 
          }, {
 
            label: "noinclude",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<noinclude>", post: "</noinclude>"}
 
            }
 
          }, {
 
            label: "includeonly",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<includeonly>", post: "</includeonly>"}
 
            }
 
          }, {
 
            label: "onlyinclude",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<onlyinclude>", post: "</onlyinclude>"}
 
            }
 
          }, {
 
            label: "nowiki",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<nowiki>", post: "</nowiki>"}
 
            }
 
          }, {
 
            label: "comment",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<!-- ", post: " -->"}
 
            }
 
          }, {
 
            label: "{{#arraymap:}} long",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "{{#arraymap: ",
 
                peri: "{{{field|}}}",
 
                post: "<!--\n-->|;<!-- sep\n-->|§<!-- assign temporary var\n-->|[[My property::§]] <!--output\n-->|&#32;•&#32;<!--output sep\n-->}}<!-- end arraymap \n-->"
 
              }
 
            }
 
          }, {
 
            label: "{{#arraymap:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#arraymap: ", peri: "{{{field|}}}", post: "|;|§|[[My property::§]] |&#32;•&#32;}}"}
 
            }
 
          }, {
 
            label: "{{#ask:table}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "{{#ask: ",
 
                peri: "[[PAGE]] [[property::+]]",
 
                post: " | ?displayprop |? | mainlabel=- | link=none | format = table | limit = 500}}"
 
              }
 
            }
 
          }, {
 
            label: "{{#ask:list}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "{{#ask: ",
 
                peri: "[[PAGE]] [[property::+]]",
 
                post: " | ?displayprop | mainlabel=- | link=none | format = list | sep=&#32;•&#32; | limit = 500}}"
 
              }
 
            }
 
          }, {
 
            label: "{{#vardefine:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#vardefine: ", peri: "myVar", post: "| }}"}
 
            }
 
          }, {
 
            label: "{{#varexist:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#varexist: ", peri: "myVar", post: "}}"}
 
            }
 
          }, {
 
            label: "{{#var:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#var: ", peri: "myVar", post: "}}"}
 
            }
 
          }, {
 
            label: "if",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#if: ", post: "| | }}"}
 
            }
 
          }, {
 
            label: "if long",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<!--\n-->{{#if: ", post: "<!--\nthen-->|<!--\nelse-->|<!--\n-->}}<!-- end if\n-->"}
 
            }
 
          }, {
 
            label: "ifexist",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#ifexist: ", post: "| | }}"}
 
            }
 
          }, {
 
            label: "ifexist long",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "<!--\n-->{{#ifexist: ",
 
                post: "<!--\nthen-->|<!--\nelse-->|<!--\n-->}}<!-- end ifexist\n-->"
 
              }
 
            }
 
          }, {
 
            label: "{{#expr:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{#expr: ", peri: "1 + 6", post: "}}"}
 
            }
 
          }, {
 
            label: "switch",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "{{#switch: ",
 
                post: "<!--\n-->| one | two = <!--\n-->| #default = <!--\n-->}}<!-- end switch\n-->"
 
              }
 
            }
 
          }, {
 
            label: "{{DEFAULTSORT:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{DEFAULTSORT:", post: "}}"}
 
            }
 
          }, {
 
            label: "{{DISPLAYTITLE:}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{DISPLAYTITLE:", post: "}}"}
 
            }
 
          },
 
          "{{PAGENAME}}",
 
          "{{PAGENAMEE}}",
 
          "{{FULLPAGENAME}}",
 
          "{{FULLPAGENAMEE}}"
 
        ]
 
      },
 
      "translate": {
 
        "layout": "characters",
 
        label: mw.message("programmingtoolbar-pagelabel-translate"),
 
        "characters": [
 
          {
 
            label: "{{Multilingual}}",
 
            action: {
 
              type: "encapsulate", options: {pre: "{{Multilingual\n|de=", peri: "deutscher Text", post: "\n|en=english text\n}}"}
 
            }
 
          }, {
 
            label: "languages",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<languages/>", post: ""}
 
            }
 
          }, {
 
            label: "translate",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "\u003Ctranslate\u003E", post: "\u003C/translate\u003E"}
 
            }
 
          }, {
 
            label: "tvar",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<tvar|name>", peri: mw.message("programmingtoolbar-peri-tvar"), post: "</>"}
 
            }
 
          },{
 
            label: "{{Andere Sprachenseite aufklappen}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "{{Andere Sprachenseite aufklappen\n|diese Sprache=de\n|en=",
 
                peri: mw.message("programmingtoolbar-peri-page-dropdown-en-page"),
 
                post: "}}"}
 
            }
 
          },{
 
            label: "{{Other language page dropdown}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {
 
                pre: "{{Other language page dropdown\n|this language=en\n|de=",
 
                peri: mw.message("programmingtoolbar-peri-page-dropdown-de-page"),
 
                post: "}}"}
 
            }
 
          },{
 
            label: "nbsp;",
 
            labelMsg: mw.message("programmingtoolbar-label-nbsp"),
 
 
             action: {
 
             action: {
               type: "encapsulate", options: {pre: "&nbsp;", post: ""}
+
               type: "encapsulate", options: {pre: "{{Tastatur|", post: "}}"}
 
             }
 
             }
 
           },{
 
           },{
            label: "{{nnbsp}}",
 
            labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
 
            action: {
 
              type: "encapsulate", options: {pre: "{{nnbsp}}", post: ""}
 
            }
 
          }, {
 
            label: "()",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "(", post: ")"}
 
            }
 
          }, {
 
            label: "[]",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "[", post: "]"}
 
            }
 
          }, {
 
            label: "[[]]",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "[[", post: "]]"}
 
            }
 
          }, {
 
            label: "{{}}",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "{{", post: "}}"}
 
            }
 
          }, {
 
            label: "nowiki",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<nowiki>", post: "</nowiki>"}
 
            }
 
          }, {
 
            label: "comment",
 
            action: {
 
              type: "encapsulate",
 
              options: {pre: "<!-- ", post: " -->"}
 
            }
 
          },
 
          "{{PAGENAME}}",
 
          "{{PAGENAMEE}}",
 
          "{{FULLPAGENAME}}",
 
          "{{FULLPAGENAMEE}}"
 
        ]
 
      }
 
    }
 
  });
 
};
 
 
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
 
if ($.inArray(mw.config.get("wgAction"), ["edit", "submit"]) !== -1) {
 
  mw.loader.using("user.options", function () {
 
    if (mw.user.options.get("usebetatoolbar")) {
 
      mw.loader.using("ext.wikiEditor", function () {
 
        $(document).ready(customizeThisUserWikiEditorToolbar);
 
      });
 
    }
 
  });
 
}
 
// </source>
 
// </pre>
 
 
peri:table,
 
post:'|}',
 
ownline:true
 
 
type:                          "booklet"
 
label string:                  non-localizable label string
 
labelMsg string:              key for localizable message string
 
deferLoad                      boolean
 
pages object:                  map of name keys to further objects:
 
layout string required:      'table' or 'characters'
 
label string:                  non-localizable label string
 
labelMsg string:              key for localizable message string
 
headings string[]:            array of objects? {textMsg: key} ??
 
rows object[] optional?:      array of objects? {'row key name': {message object?}}
 
characters string[] optional?: array of strings of little character bits for insertion (???!)
 
 
*/
 
 
 
//<source lang="javascript">
 
thismessages = {
 
  de : {
 
    "programmingtoolbar-label-blockquote":        "Zitat-Block",
 
    "programmingtoolbar-label-nbsp":              "trenngeschütztes Leerzeichen",
 
    "programmingtoolbar-label-nnbsp-template":    "enges trenngeschütztes Leerzeichen (Vorlage)",
 
    "programmingtoolbar-label-strikethrough":      "durchgestrichen",
 
    "programmingtoolbar-label-syntaxhighlight":    "Syntax Hervorhebung",
 
    "programmingtoolbar-label-underline":          "unterstrichen",
 
    "programmingtoolbar-peri-comment":            "Kommentar:",
 
    "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
    "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
 
    "programmingtoolbar-peri-ref":                "Referenz/Zitat",
 
    "programmingtoolbar-peri-tvar":                "variabler Inhalt, Text, Link o.ä.",
 
    "programmingtoolbar-peri-page-dropdown-en-page":    "English Wiki Page",
 
    "programmingtoolbar-peri-page-dropdown-de-page":    "Deutsche Wiki Seite",
 
    "programmingtoolbar-sectionlabel-programming": "Programmierung",
 
    "programmingtoolbar-pagelabel-templates":      "Vorlagen",
 
    "programmingtoolbar-pagelabel-translate":      "Übersetzen",
 
    "programmingtoolbar-pagelabel-wikitags":      "Wiki/HTML Tags"
 
  },
 
  "de-formal" : {
 
    "programmingtoolbar-label-blockquote":        "Zitat-Block",
 
    "programmingtoolbar-label-nbsp":              "trenngeschütztes Leerzeichen",
 
    "programmingtoolbar-label-nnbsp-template":    "enges trenngeschütztes Leerzeichen (Vorlage)",
 
    "programmingtoolbar-label-strikethrough":      "durchgestrichen",
 
    "programmingtoolbar-label-syntaxhighlight":    "Syntax Hervorhebung",
 
    "programmingtoolbar-label-underline":          "unterstrichen",
 
    "programmingtoolbar-peri-comment":            "Kommentar:",
 
    "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
    "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
 
    "programmingtoolbar-peri-ref":                "Referenz/Zitat",
 
    "programmingtoolbar-peri-tvar":                "variabler Inhalt, Text, Link o.ä.",
 
    "programmingtoolbar-peri-page-dropdown-en-page":    "English Wiki Page",
 
    "programmingtoolbar-peri-page-dropdown-de-page":    "Deutsche Wiki Seite",
 
    "programmingtoolbar-sectionlabel-programming": "Programmierung",
 
    "programmingtoolbar-pagelabel-templates":      "Vorlagen",
 
    "programmingtoolbar-pagelabel-translate":      "Übersetzen",
 
    "programmingtoolbar-pagelabel-wikitags":      "Wiki/HTML Tags"
 
  },
 
  en : {
 
    "programmingtoolbar-label-blockquote":        "block quote",
 
    "programmingtoolbar-label-nbsp":              "non-breaking space",
 
    "programmingtoolbar-label-nnbsp-template":    "narrow non-breaking space (template)",
 
    "programmingtoolbar-label-strikethrough":      "strike through",
 
    "programmingtoolbar-label-syntaxhighlight":    "syntax highlighting",
 
    "programmingtoolbar-label-underline":          "underlined",
 
    "programmingtoolbar-peri-comment":            "comment:",
 
    "programmingtoolbar-peri-defInlineTerm":      "Parameter",
 
    "programmingtoolbar-peri-defInlineDefinition": "Explanations",
 
    "programmingtoolbar-peri-ref":                "Reference/Citation",
 
    "programmingtoolbar-peri-tvar":                "variable content, text, link etc.",
 
    "programmingtoolbar-peri-page-dropdown-en-page":    "English Wiki Page",
 
    "programmingtoolbar-peri-page-dropdown-de-page":    "Deutsche Wiki Seite",
 
    "programmingtoolbar-sectionlabel-programming": "Programming",
 
    "programmingtoolbar-pagelabel-templates":      "Templates",
 
    "programmingtoolbar-pagelabel-translate":      "Translate",
 
    "programmingtoolbar-pagelabel-wikitags":      "Wiki/HTML tags"
 
  }
 
}
 
 
mw.messages.set(thismessages["en"]);
 
var lang = mw.config.get("wgUserLanguage");
 
if (lang && lang !== "en" && lang in thismessages) {
 
  mw.messages.set(thismessages[lang]);
 
}
 
 
var customizeThisUserWikiEditorToolbar = function () {
 
  $("#wpTextbox1").wikiEditor("addToToolbar", {
 
    "section": "advanced",
 
    "group": "format",
 
    "tools": {
 
      "strikethrough": {
 
        label: mw.message("programmingtoolbar-label-strikethrough"),
 
        type: "button",
 
        icon: "https://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png",
 
        action: {
 
          type: "encapsulate",
 
          options: {
 
            pre: "<s>",
 
            post: "</s>"
 
          }
 
        }
 
      },
 
      "underline": {
 
        label: mw.message("programmingtoolbar-label-underline"),
 
        type: "button",
 
        icon: "https://upload.wikimedia.org/wikipedia/commons/f/fd/Button_underline.png",
 
        action: {
 
          type: "encapsulate",
 
          options: {
 
            pre: "<u>",
 
            post: "</u>"
 
          }
 
        }
 
      },
 
      "syntaxhighlight": {
 
        label: mw.message("programmingtoolbar-label-syntaxhighlight"),
 
        type: "button",
 
        icon: "https://upload.wikimedia.org/wikipedia/commons/d/d2/Button_source.png",
 
        action: {
 
          type: "encapsulate",
 
          options: {
 
            pre: '<syntaxhighlight lang="html4strict">\n',
 
            post: "\n</syntaxhighlight>"
 
          }
 
        }
 
      },
 
      "blockquote": {
 
        label: mw.message("programmingtoolbar-label-blockquote"),
 
        type: "button",
 
        icon: "https://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
 
        action: {
 
          type: "encapsulate",
 
          options: {
 
            pre: "<blockquote>\n",
 
            post: "\n</blockquote>"
 
          }
 
        }
 
      }
 
    }
 
  })
 
  $("#wpTextbox1").wikiEditor("addToToolbar", {
 
    "sections": {
 
      "programming": {
 
        type: "booklet",
 
        label: mw.message("programmingtoolbar-sectionlabel-programming")
 
      }
 
    }
 
  })
 
 
  $("#wpTextbox1").wikiEditor("addToToolbar", {
 
    "section": "programming",
 
    "pages": {
 
      "tags": {
 
        "layout": "characters",
 
        label: mw.message("programmingtoolbar-pagelabel-wikitags"),
 
        "characters": [{
 
          label: "nbsp;",
 
          labelMsg: mw.message("programmingtoolbar-label-nbsp"),
 
          action: {
 
            type: "encapsulate", options: {pre: "&nbsp;", post: ""}
 
          }
 
        },{
 
          label: "{{nnbsp}}",
 
          labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
 
          action: {
 
            type: "encapsulate", options: {pre: "{{nnbsp}}", post: ""}
 
          }
 
        }, {
 
          label: "()",
 
          action: {
 
            type: "encapsulate", options: {pre: "(", post: ")"}
 
          }
 
        }, {
 
          label: "[]",
 
          action: {
 
            type: "encapsulate", options: {pre: "[", post: "]"}
 
          }
 
        }, {
 
          label: "[[]]",
 
          action: {
 
            type: "encapsulate", options: {pre: "[[", post: "]]"}
 
          }
 
        }, {
 
          label: "{{}}",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{", post: "}}"}
 
          }
 
        }, {
 
          label: "{{{}}}",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{{", "peri": "1", post: "}}}"}
 
          }
 
        }, {
 
          label: "{{{|}}}",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{{|", "peri": "1", post: "}}}"}
 
          }
 
        }, {
 
          label: "[[Kategorie:]]",
 
          action: {
 
            type: "encapsulate", options: {pre: "[[Kategorie: ", post: "]]"}
 
          }
 
        }, {
 
          label: "[[Category:]]",
 
          action: {
 
            type: "encapsulate", options: {pre: "[[Category: ", post: "]]"}
 
          }
 
        }, {
 
          label: "[[Attribut:]]",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              /* no selection */
 
              pre: "[[Attribut: ",
 
              post: "]]",
 
              /* a selection */
 
              regex: /\s*(.+)\s*/,
 
              regexReplace: "[[Attribut: \$1 |\$1]]"
 
            }
 
          }
 
        }, {
 
          label: "[[property:]]",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              /* no selection */
 
              pre: "[[property: ",
 
              post: "]]",
 
              /* a selection */
 
              regex: /\s*(.+)\s*/,
 
              regexReplace: "[[property: \$1 |\$1]]"
 
            }
 
          }
 
        }, {
 
          label: "#WEITERLEITUNG [[]]",
 
          action: {
 
            type: "encapsulate", options: {pre: "#WEITERLEITUNG [[", post: "]]"}
 
          }
 
        }, {
 
          label: "#REDIRECT [[]]",
 
          action: {
 
            type: "encapsulate", options: {pre: "#REDIRECT [[", post: "]]"}
 
          }
 
        },
 
        "__INHALTSVERZEICHNIS__",
 
        "__TOC__",
 
        {
 
          label: "code",
 
          action: {
 
            type: "encapsulate", options: {pre: "<code>", post: "</code>"}
 
          }
 
        }, {
 
          label: "code nowiki code",
 
          action: {
 
            type: "encapsulate", options: {pre: "<code><nowiki>", post: "</nowiki></code>"}
 
          }
 
        }, {
 
          label: "nowiki",
 
          action: {
 
            type: "encapsulate", options: {pre: "<nowiki>", post: "</nowiki>"}
 
          }
 
        }, {
 
          label: "includeonly",
 
          action: {
 
            type: "encapsulate", options: {pre: "<includeonly>", post: "</includeonly>"}
 
          }
 
        }, {
 
          label: "noinclude",
 
          action: {
 
            type: "encapsulate", options: {pre: "<noinclude>", post: "</noinclude>"}
 
          }
 
        }, {
 
          label: "onlyinclude",
 
          action: {
 
            type: "encapsulate", options: {pre: "<onlyinclude>", post: "</onlyinclude>"}
 
          }
 
        },{
 
          label: "math",
 
          action: {
 
            type: "encapsulate", options: {pre: "<math>", peri: "\begin{align}\n\begin{align}\n", post: "</math>"}
 
          }
 
        },{
 
          label: "ref",
 
          action: {
 
            type: "encapsulate", options: {pre: '<ref name="">', peri: mw.message("programmingtoolbar-peri-ref"), post: "</ref>"}
 
          }
 
        }, {
 
          label: "references",
 
          action: {
 
            type: "encapsulate", options: {pre: "<references/>", post: ''}
 
          }
 
        }, {
 
          label: "languages",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "<languages/>", post: ""}
 
          }
 
        }, {
 
          label: "translate",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "\u003Ctranslate\u003E", post: "\u003C/translate\u003E"}
 
          }
 
        }, {
 
          label: "tvar",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "<tvar|name>", peri: mw.message("programmingtoolbar-peri-tvar"), post: "</>"}
 
          }
 
        }, {
 
          label: "tt",
 
          action: {
 
            type: "encapsulate", options: {pre: "<tt>", post: "</tt>"}
 
          }
 
        }, {
 
          label: "comment",
 
          action: {
 
            type: "encapsulate", options: {pre: "<!-- ", "peri": mw.message("programmingtoolbar-peri-comment"), post: " -->"}
 
          }
 
        }, {
 
          label: "comment lt--gt",
 
          action: {
 
            type: "encapsulate", options: {pre: "&lt;!-- ", "peri": mw.message("programmingtoolbar-peri-comment"), post: " -->"}
 
          }
 
        }, {
 
          label: "span",
 
          action: {
 
            type: "encapsulate", options: {pre: '<span style="">', post: "</span>"}
 
          }
 
        }, {
 
          label: "div",
 
          action: {
 
            type: "encapsulate", options: {pre: '<div style="">', post: "</div>"}
 
          }
 
        }, {
 
          label: "{{SORTIERUNG:}}",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{SORTIERUNG: ", post: "}}"}
 
          }
 
        }, {
 
          label: "{{DEFAULTSORT:}}",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{DEFAULTSORT: ", post: "}}"}
 
          }
 
        }, {
 
          "label": "div.definition-inline",
 
          "action": {
 
            "type": "encapsulate",
 
            "options": {
 
              "pre": "<div class="definition-inline">\n; ",
 
              "peri": mw.message("programmingtoolbar-peri-defInlineTerm"),
 
              "post": " : " + mw.message("programmingtoolbar-peri-defInlineDefinition") + "\n</div>"
 
            }
 
          }
 
        }, {
 
          label: "{{#arraymap:}}",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "{{#arraymap: ", peri: "{{{field|}}}", post: "|;|§|[[My property::§]] |&#32;•&#32;}}"}
 
          }
 
        }, {
 
          label: "{{#arraymap:long}}",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              pre: "{{#arraymap: ",
 
              peri: "{{{field|}}}",
 
              post: "<!-- values\n-->|;<!-- split on ;\n-->|§<!-- assign temporary variable\n-->|[[My property::§]] <!-- output\n-->|&#32;•&#32;<!-- new output separator\n-->}}"
 
            }
 
          }
 
        }, {
 
          label: "if",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{#if: ", post: "| | }}"}
 
          }
 
        }, {
 
          label: "if-trim",
 
          action: {
 
            type: "encapsulate", options: {pre: "{{#if: ", post: "trim-text|{{{parameter|}}} }}"}
 
          }
 
        }, {
 
          label: "if long",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "<!--\n-->{{#if: ", post: "<!--\nthen-->|<!--\nelse-->|<!--\n-->}}<!-- if end\n-->"}
 
          }
 
        }, {
 
          label: "switch CONTENTLANGUAGE",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              pre: "{{#switch: {{CONTENTLANGUAGE}}",
 
              post: "<!--\n-->|de|de-formal= deutsch <!--\n-->| #default = english<!--\n-->}}<!-- switch end\n-->"
 
            }
 
          }
 
        }, {
 
          label: "switch",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              pre: "{{#switch: ",
 
              post: "<!--\n-->| one | two = <!--\n-->| #default = <!--\n-->}}<!-- switch end\n-->"
 
            }
 
          }
 
        }, {
 
          label: "ol",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              pre: "<ol>",
 
              peri: "<!--\n--><li></li><!--\n-->",
 
              post: "</ol>"
 
            }
 
          }
 
        }, {
 
          label: "ul",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              pre: "<ul>",
 
              peri: "<!--\n--><li></li><!--\n-->",
 
              post: "</ul>"
 
            }
 
          }
 
        }, {
 
          label: "table",
 
          action: {
 
            type: "encapsulate",
 
            options: {
 
              pre: "<table>",
 
              peri: "<!--\n--><tr><!--\n  --><td></td><!--\n--></tr><!--\n-->",
 
              post: "</table>"
 
            }
 
          }
 
        }, {
 
          label: "tr",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "<tr>", peri: "<!--\n  --><td></td><!--\n-->", post: "</tr>"}
 
          }
 
        }, {
 
          label: "th",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "<th>", post: "</th>"}
 
          }
 
        }, {
 
          label: "td",
 
          action: {
 
            type: "encapsulate",
 
            options: {pre: "<td>", post: "</td>"}
 
          }
 
        },
 
          "┌",
 
          "┬",
 
          "┐",
 
          "└",
 
          "┴",
 
          "┘",
 
          "│",
 
          "─",
 
          "├",
 
          "┼",
 
          "┤"
 
          /*  <s></s>  <sup></sup>  <sub></sub>  */
 
        ]
 
      },
 
      "templates": {
 
        "layout": "characters",
 
        label: mw.message("programmingtoolbar-pagelabel-templates"),
 
        "characters": [
 
          {
 
 
             label: "{{Keyboard}}",
 
             label: "{{Keyboard}}",
 
             action: {
 
             action: {
               type: "encapsulate", options: {pre: "{{Keyboard |", post: "}}"}
+
               type: "encapsulate", options: {pre: "{{Keyboard|", post: "}}"}
 
             }
 
             }
 
           },{
 
           },{
             label: "{{Tastatur}}",
+
             label: "Zitat",
 
             action: {
 
             action: {
               type: "encapsulate", options: {pre: "{{Tastatur |", post: "}}"}
+
               type: "encapsulate", options: {pre: "{{Zitat|", post: "}}"}
 
             }
 
             }
 
           },/*{
 
           },/*{
            label: "Zitat",
 
            action: {
 
              type: "encapsulate", options: {pre: "{{Zitat |", post: "}}"}
 
            }
 
          }, {
 
 
             label: "Zitat versteckt",
 
             label: "Zitat versteckt",
 
             action: {
 
             action: {
Zeile 1.598: Zeile 834:
 
       }
 
       }
 
     }
 
     }
   })
+
   });
 
};
 
};
  
Zeile 1.607: Zeile 843:
 
       mw.loader.using("ext.wikiEditor", function () {
 
       mw.loader.using("ext.wikiEditor", function () {
 
         $(document).ready(customizeThisUserWikiEditorToolbar);
 
         $(document).ready(customizeThisUserWikiEditorToolbar);
       })
+
       });
 
     }
 
     }
   })
+
   });
 
}
 
}
// </source>
 
 
// </pre>
 
// </pre>

Aktuelle Version vom 27. August 2022, 14:59 Uhr

//<pre>
/*
 o ptions: { *
 pre:'{|'+classStr+"\n",
 peri:table,
 post:'|}',
 ownline:true

 type:                          "booklet"
 label string:                  non-localizable label string
 labelMsg string:               key for localizable message string
 deferLoad                      boolean
 pages object:                  map of name keys to further objects:
 layout string required:       'table' or 'characters'
 label string:                  non-localizable label string
 labelMsg string:               key for localizable message string
 headings string[]:             array of objects? {textMsg: key} ??
 rows object[] optional?:       array of objects? {'row key name': {message object?}}
 characters string[] optional?: array of strings of little character bits for insertion (???!)

 */


// language messages
var thismessages = {
  de : {
    "programmingtoolbar-label-blockquote":         "Zitat-Block",
    "programmingtoolbar-label-nbsp":               "trenngeschütztes Leerzeichen",
    "programmingtoolbar-label-nnbsp-template":     "enges trenngeschütztes Leerzeichen (Vorlage)",
    "programmingtoolbar-label-strikethrough":      "durchgestrichen",
    "programmingtoolbar-label-syntaxhighlight":    "Syntax Hervorhebung",
    "programmingtoolbar-label-underline":          "unterstrichen",
    "programmingtoolbar-peri-comment":             "Kommentar:",
    "programmingtoolbar-peri-collapsible-content": "Textinhalt zusammengeklappten Bereichs",
    "programmingtoolbar-peri-defInlineTerm":       "Parameter",
    "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
    "programmingtoolbar-peri-ref":                 "Referenz/Zitat",
    "programmingtoolbar-peri-tvar":                "variabler Inhalt, Text, Link o.ä.",
    "programmingtoolbar-peri-page-dropdown-en-page":    "English Wiki Page",
    "programmingtoolbar-peri-page-dropdown-de-page":    "Deutsche Wiki Seite",
    "programmingtoolbar-sectionlabel-programming": "Programmierung",
    "programmingtoolbar-pagelabel-templates":      "Vorlagen",
    "programmingtoolbar-pagelabel-translate":      "Übersetzen",
    "programmingtoolbar-pagelabel-wikitags":       "Wiki/HTML Tags"
  },
  "de-formal" : {
    "programmingtoolbar-label-blockquote":         "Zitat-Block",
    "programmingtoolbar-label-nbsp":               "trenngeschütztes Leerzeichen",
    "programmingtoolbar-label-nnbsp-template":     "enges trenngeschütztes Leerzeichen (Vorlage)",
    "programmingtoolbar-label-strikethrough":      "durchgestrichen",
    "programmingtoolbar-label-syntaxhighlight":    "Syntax Hervorhebung",
    "programmingtoolbar-label-underline":          "unterstrichen",
    "programmingtoolbar-peri-comment":             "Kommentar:",
    "programmingtoolbar-peri-collapsible-content": "Textinhalt zusammengeklappten Bereichs",
    "programmingtoolbar-peri-defInlineTerm":       "Parameter",
    "programmingtoolbar-peri-defInlineDefinition": "Erläuterungen",
    "programmingtoolbar-peri-ref":                 "Referenz/Zitat",
    "programmingtoolbar-peri-tvar":                "variabler Inhalt, Text, Link o.ä.",
    "programmingtoolbar-peri-page-dropdown-en-page":    "English Wiki Page",
    "programmingtoolbar-peri-page-dropdown-de-page":    "Deutsche Wiki Seite",
    "programmingtoolbar-sectionlabel-programming": "Programmierung",
    "programmingtoolbar-pagelabel-templates":      "Vorlagen",
    "programmingtoolbar-pagelabel-translate":      "Übersetzen",
    "programmingtoolbar-pagelabel-wikitags":       "Wiki/HTML Tags"
  },
  en : {
    "programmingtoolbar-label-blockquote":         "block quote",
    "programmingtoolbar-label-nbsp":               "non-breaking space",
    "programmingtoolbar-label-nnbsp-template":     "narrow non-breaking space (template)",
    "programmingtoolbar-label-strikethrough":      "strike through",
    "programmingtoolbar-label-syntaxhighlight":    "syntax highlighting",
    "programmingtoolbar-label-underline":          "underlined",
    "programmingtoolbar-peri-comment":             "comment:",
    "programmingtoolbar-peri-collapsible-content": "content of collapsible part",
    "programmingtoolbar-peri-defInlineTerm":       "Parameter",
    "programmingtoolbar-peri-defInlineDefinition": "Explanations",
    "programmingtoolbar-peri-ref":                 "Reference/Citation",
    "programmingtoolbar-peri-tvar":                "variable content, text, link etc.",
    "programmingtoolbar-peri-page-dropdown-en-page":    "English Wiki Page",
    "programmingtoolbar-peri-page-dropdown-de-page":    "Deutsche Wiki Seite",
    "programmingtoolbar-sectionlabel-programming": "Programming",
    "programmingtoolbar-pagelabel-templates":      "Templates",
    "programmingtoolbar-pagelabel-translate":      "Translate",
    "programmingtoolbar-pagelabel-wikitags":       "Wiki/HTML tags"
  }
};

mw.messages.set(thismessages["en"]);
var lang = mw.config.get("wgUserLanguage");
if (lang && lang !== "en" && lang in thismessages) {
  mw.messages.set(thismessages[lang]);
}

var customizeThisUserWikiEditorToolbar = function () {
  $("#wpTextbox1").wikiEditor("addToToolbar", {
    "section": "advanced",
    "group": "format",
    "tools": {
      "strikethrough": {
        label: mw.message("programmingtoolbar-label-strikethrough"),
        type: "button",
        icon: "https://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png",
        action: {
          type: "encapsulate",
          options: {
            pre: "<s>",
            post: "</s>"
          }
        }
      },
      "underline": {
        label: mw.message("programmingtoolbar-label-underline"),
        type: "button",
        icon: "https://upload.wikimedia.org/wikipedia/commons/f/fd/Button_underline.png",
        action: {
          type: "encapsulate",
          options: {
            pre: "<u>",
            post: "</u>"
          }
        }
      },
      "syntaxhighlight": {
        label: mw.message("programmingtoolbar-label-syntaxhighlight"),
        type: "button",
        icon: "https://upload.wikimedia.org/wikipedia/commons/d/d2/Button_source.png",
        action: {
          type: "encapsulate",
          options: {
            pre: '<syntaxhighlight lang="html4strict">\n',
            post: "\n</syntaxhighlight>"
          }
        }
      },
      "blockquote": {
        label: mw.message("programmingtoolbar-label-blockquote"),
        type: "button",
        icon: "https://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
        action: {
          type: "encapsulate",
          options: {
            pre: "<blockquote>\n",
            post: "\n</blockquote>"
          }
        }
      }
    }
  });
  $("#wpTextbox1").wikiEditor("addToToolbar", {
    "sections": {
      "programming": {
        type: "booklet",
        label: mw.message("programmingtoolbar-sectionlabel-programming")
      }
    }
  });

  $("#wpTextbox1").wikiEditor("addToToolbar", {
    "section": "programming",
    "pages": {
      "tags": {
        "layout": "characters",
        label: mw.message("programmingtoolbar-pagelabel-wikitags"),
        "characters": [{
          label: "nbsp;",
          labelMsg: mw.message("programmingtoolbar-label-nbsp"),
          action: {
            type: "encapsulate", options: {pre: "&nbsp;", post: ""}
          }
        },{
          label: "{{nnbsp}}",
          labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
          action: {
            type: "encapsulate", options: {pre: "&#8239;", post: ""}
          }
        },{
          label: '"…"',
          action: {
            type: 'encapsulate', options: {pre: '"', post: '"'}
          }
        },{
          label: "'…'",
          action: {
            type: "encapsulate", options: {pre: "'", post: "'"}
          }
        }, {
          label: "()",
          action: {
            type: "encapsulate", options: {pre: "(", post: ")"}
          }
        }, {
          label: "[]",
          action: {
            type: "encapsulate", options: {pre: "[", post: "]"}
          }
        }, {
          label: "[[]]",
          action: {
            type: "encapsulate", options: {pre: "[[", post: "]]"}
          }
        }, {
          label: "{{}}",
          action: {
            type: "encapsulate", options: {pre: "{{", post: "}}"}
          }
        }, {
          label: "{{{}}}",
          action: {
            type: "encapsulate", options: {pre: "{{{", "peri": "1", post: "}}}"}
          }
        }, {
          label: "{{{|}}}",
          action: {
            type: "encapsulate", options: {pre: "{{{|", "peri": "1", post: "}}}"}
          }
        }, {
          label: "[[Kategorie:]]",
          action: {
            type: "encapsulate", options: {pre: "[[Kategorie: ", post: "]]"}
          }
        }, {
          label: "[[Category:]]",
          action: {
            type: "encapsulate", options: {pre: "[[Category: ", post: "]]"}
          }
        }, {
          label: "[[Attribut:]]",
          action: {
            type: "encapsulate",
            options: {
              /* no selection */
              pre: "[[Attribut: ",
              post: "]]",
              /* a selection */
              regex: /\s*(.+)\s*/,
              regexReplace: "[[Attribut: \$1 |\$1]]"
            }
          }
        }, {
          label: "[[property:]]",
          action: {
            type: "encapsulate",
            options: {
              /* no selection */
              pre: "[[property: ",
              post: "]]",
              /* a selection */
              regex: /\s*(.+)\s*/,
              regexReplace: "[[property: \$1 |\$1]]"
            }
          }
        }, {
          label: "#WEITERLEITUNG [[]]",
          action: {
            type: "encapsulate", options: {pre: "#WEITERLEITUNG [[", post: "]]"}
          }
        }, {
          label: "#REDIRECT [[]]",
          action: {
            type: "encapsulate", options: {pre: "#REDIRECT [[", post: "]]"}
          }
        },
        "__INHALTSVERZEICHNIS__",
        "__TOC__",
        {
          label: "abbr",
          action: {
            type: "encapsulate", options: {pre: '<abbr title="">', post: "</abbr>"}
          }
        }, {
          label: "code",
          action: {
            type: "encapsulate", options: {pre: "<code>", post: "</code>"}
          }
        }, {
          label: "code nowiki code",
          action: {
            type: "encapsulate", options: {pre: "<code><nowiki>", post: "</nowiki></code>"}
          }
        }, {
          label: "nowiki",
          action: {
            type: "encapsulate", options: {pre: "<nowiki>", post: "</nowiki>"}
          }
        }, {
          label: "includeonly",
          action: {
            type: "encapsulate", options: {pre: "<includeonly>", post: "</includeonly>"}
          }
        }, {
          label: "noinclude",
          action: {
            type: "encapsulate", options: {pre: "<noinclude>", post: "</noinclude>"}
          }
        }, {
          label: "onlyinclude",
          action: {
            type: "encapsulate", options: {pre: "<onlyinclude>", post: "</onlyinclude>"}
          }
        },{
          label: "math",
          action: {
            type: "encapsulate", options: {pre: "<math>", peri: "\begin{align}\n\begin{align}\n", post: "</math>"}
          }
        },{
          label: "ref",
          action: {
            type: "encapsulate", options: {pre: '<ref name="">', peri: mw.message("programmingtoolbar-peri-ref"), post: "</ref>"}
          }
        }, {
          label: "references",
          action: {
            type: "encapsulate", options: {pre: "<references/>", post: ''}
          }
        }, {
          label: "languages",
          action: {
            type: "encapsulate",
            options: {pre: "<languages/>", post: ""}
          }
        }, {
          label: "translate",
          action: {
            type: "encapsulate",
            options: {pre: "\u003Ctranslate\u003E", post: "\u003C/translate\u003E"}
          }
        }, {
          label: "tvar",
          action: {
            type: "encapsulate",
            options: {pre: "<tvar|name>", peri: mw.message("programmingtoolbar-peri-tvar"), post: "</>"}
          }
        }, {
          label: "tt",
          action: {
            type: "encapsulate", options: {pre: "<tt>", post: "</tt>"}
          }
        }, {
          label: "comment",
          action: {
            type: "encapsulate", options: {pre: "<!-- ", "peri": mw.message("programmingtoolbar-peri-comment"), post: " -->"}
          }
        }, {
          label: "comment lt--gt",
          action: {
            type: "encapsulate", options: {pre: "&lt;!-- ", "peri": mw.message("programmingtoolbar-peri-comment"), post: " -->"}
          }
        }, {
          label: "span",
          action: {
            type: "encapsulate", options: {pre: '<span style="">', post: "</span>"}
          }
        },{
          label: "span#id",
          action: {
            type: "encapsulate", options: {pre: '<span id="">', post: "</span>"}
          }
        }, {
          label: "div",
          action: {
            type: "encapsulate", options: {pre: '<div style="">', post: "</div>"}
          }
        }, {
          label: "div.mw-collapsible",
          action: {
            type: "encapsulate", 
            options: {
              pre: '\n<div class="mw-collapsible mw-collapsed">\nTextzeile Vorspann\n<div class="mw-collapsible-content">',
              peri: mw.message("programmingtoolbar-peri-collapsible-content"),
              post: "</div>\n</div>"
            }
          }
        }, {
          label: "{{SORTIERUNG:}}",
          action: {
            type: "encapsulate", options: {pre: "{{SORTIERUNG: ", post: "}}"}
          }
        }, {
          label: "{{DEFAULTSORT:}}",
          action: {
            type: "encapsulate", options: {pre: "{{DEFAULTSORT: ", post: "}}"}
          }
        }, {
          "label": "div.definition-inline",
          "action": {
            "type": "encapsulate",
            "options": {
              "pre": '<div class="definition-inline">\n; ',
              "peri": mw.message("programmingtoolbar-peri-defInlineTerm"),
              "post": " : " + mw.message("programmingtoolbar-peri-defInlineDefinition") + "\n</div>"
            }
          }
        }, {
          label: "{{#arraymap:}}",
          action: {
            type: "encapsulate",
            options: {pre: "{{#arraymap: ", peri: "{{{field|}}}", post: "|;|§|[[My property::§]] |&#32;•&#32;}}"}
          }
        }, {
          label: "{{#arraymap:long}}",
          action: {
            type: "encapsulate",
            options: {
              pre: "{{#arraymap: ",
              peri: "{{{field|}}}",
              post: "<!-- values\n-->|;<!-- split on ;\n-->|§<!-- assign temporary variable\n-->|[[My property::§]] <!-- output\n-->|&#32;•&#32;<!-- new output separator\n-->}}"
            }
          }
        }, {
          label: "if",
          action: {
            type: "encapsulate", options: {pre: "{{#if: ", post: "| | }}"}
          }
        }, {
          label: "if-trim",
          action: {
            type: "encapsulate", options: {pre: "{{#if: ", post: "trim-text|{{{parameter|}}} }}"}
          }
        }, {
          label: "if long",
          action: {
            type: "encapsulate",
            options: {pre: "<!--\n-->{{#if: ", post: "<!--\nthen-->|<!--\nelse-->|<!--\n-->}}<!-- if end\n-->"}
          }
        }, {
          label: "switch CONTENTLANGUAGE",
          action: {
            type: "encapsulate",
            options: {
              pre: "{{#switch: {{CONTENTLANGUAGE}}",
              post: "<!--\n-->|de|de-formal= deutsch <!--\n-->| #default = english<!--\n-->}}<!-- switch end\n-->"
            }
          }
        }, {
          label: "switch",
          action: {
            type: "encapsulate",
            options: {
              pre: "{{#switch: ",
              post: "<!--\n-->| one | two = <!--\n-->| #default = <!--\n-->}}<!-- switch end\n-->"
            }
          }
        }, {
          label: "ol",
          action: {
            type: "encapsulate",
            options: {
              pre: "<ol>",
              peri: "<!--\n--><li></li><!--\n-->",
              post: "</ol>"
            }
          }
        }, {
          label: "ul",
          action: {
            type: "encapsulate",
            options: {
              pre: "<ul>",
              peri: "<!--\n--><li></li><!--\n-->",
              post: "</ul>"
            }
          }
        }, {
          label: "table",
          action: {
            type: "encapsulate",
            options: {
              pre: "<table>",
              peri: "<!--\n--><tr><!--\n  --><td></td><!--\n--></tr><!--\n-->",
              post: "</table>"
            }
          }
        }, {
          label: "tr",
          action: {
            type: "encapsulate",
            options: {pre: "<tr>", peri: "<!--\n  --><td></td><!--\n-->", post: "</tr>"}
          }
        }, {
          label: "th",
          action: {
            type: "encapsulate",
            options: {pre: "<th>", post: "</th>"}
          }
        }, {
          label: "td",
          action: {
            type: "encapsulate",
            options: {pre: "<td>", post: "</td>"}
          }
        },
          "┌",
          "┬",
          "┐",
          "└",
          "┴",
          "┘",
          "│",
          "─",
          "├",
          "┼",
          "┤"
          /*  <s></s>   <sup></sup>   <sub></sub>  */
        ]
      },
      "templates": {
        "layout": "characters",
        label: mw.message("programmingtoolbar-pagelabel-templates"),
        "characters": [
          {
            label: "{{Kapitälchen}}",
            action: {
              type: "encapsulate", options: {pre: "{{Kapitälchen|", post: "}}"}
            }
          },{
            label: "{{Textfarbe:rot}}",
            action: {
              type: "encapsulate", options: {pre: "{{Textfarbe|red|", post: "}}"}
            }
          },{
            label: "{{Tastatur}}",
            action: {
              type: "encapsulate", options: {pre: "{{Tastatur|", post: "}}"}
            }
          },{
            label: "{{Keyboard}}",
            action: {
              type: "encapsulate", options: {pre: "{{Keyboard|", post: "}}"}
            }
          },{
            label: "Zitat",
            action: {
              type: "encapsulate", options: {pre: "{{Zitat|", post: "}}"}
            }
          },/*{
            label: "Zitat versteckt",
            action: {
              type: "encapsulate", options: {pre: "{{Zitat versteckt|", post: "}}"}
            }
          },
           */
          {
            label: "nbsp;",
            labelMsg: mw.message("programmingtoolbar-label-nbsp"),
            action: {
              type: "encapsulate", options: {pre: "&nbsp;", post: ""}
            }
          },{
            label: "{{nnbsp}}",
            labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
            action: {
              type: "encapsulate", options: {pre: "{{nnbsp}}", post: ""}
            }
          }, {
            label: "()",
            action: {
              type: "encapsulate",
              options: {pre: "(", post: ")"}
            }
          }, {
            label: "[]",
            action: {
              type: "encapsulate",
              options: {pre: "[", post: "]"}
            }
          }, {
            label: "[[]]",
            action: {
              type: "encapsulate",
              options: {pre: "[[", post: "]]"}
            }
          }, {
            label: "{{}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{", post: "}}"}
            }
          }, {
            label: "{{{}}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{{", post: "}}}"}
            }
          }, {
            label: "{{{|}}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{{", post: "|}}}"}
            }
          }, {
            label: "noinclude",
            action: {
              type: "encapsulate",
              options: {pre: "<noinclude>", post: "</noinclude>"}
            }
          }, {
            label: "includeonly",
            action: {
              type: "encapsulate",
              options: {pre: "<includeonly>", post: "</includeonly>"}
            }
          }, {
            label: "onlyinclude",
            action: {
              type: "encapsulate",
              options: {pre: "<onlyinclude>", post: "</onlyinclude>"}
            }
          }, {
            label: "nowiki",
            action: {
              type: "encapsulate",
              options: {pre: "<nowiki>", post: "</nowiki>"}
            }
          }, {
            label: "comment",
            action: {
              type: "encapsulate",
              options: {pre: "<!-- ", post: " -->"}
            }
          }, {
            label: "{{#arraymap:}} long",
            action: {
              type: "encapsulate",
              options: {
                pre: "{{#arraymap: ",
                peri: "{{{field|}}}",
                post: "<!--\n-->|;<!-- sep\n-->|§<!-- assign temporary var\n-->|[[My property::§]] <!--output\n-->|&#32;•&#32;<!--output sep\n-->}}<!-- end arraymap \n-->"
              }
            }
          }, {
            label: "{{#arraymap:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{#arraymap: ", peri: "{{{field|}}}", post: "|;|§|[[My property::§]] |&#32;•&#32;}}"}
            }
          }, {
            label: "{{#ask:table}}",
            action: {
              type: "encapsulate",
              options: {
                pre: "{{#ask: ",
                peri: "[[PAGE]] [[property::+]]",
                post: " | ?displayprop |? | mainlabel=- | link=none | format = table | limit = 500}}"
              }
            }
          }, {
            label: "{{#ask:list}}",
            action: {
              type: "encapsulate",
              options: {
                pre: "{{#ask: ",
                peri: "[[PAGE]] [[property::+]]",
                post: " | ?displayprop | mainlabel=- | link=none | format = list | sep=&#32;•&#32; | limit = 500}}"
              }
            }
          }, {
            label: "{{#vardefine:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{#vardefine: ", peri: "myVar", post: "| }}"}
            }
          }, {
            label: "{{#varexist:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{#varexist: ", peri: "myVar", post: "}}"}
            }
          }, {
            label: "{{#var:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{#var: ", peri: "myVar", post: "}}"}
            }
          }, {
            label: "if",
            action: {
              type: "encapsulate",
              options: {pre: "{{#if: ", post: "| | }}"}
            }
          }, {
            label: "if long",
            action: {
              type: "encapsulate",
              options: {pre: "<!--\n-->{{#if: ", post: "<!--\nthen-->|<!--\nelse-->|<!--\n-->}}<!-- end if\n-->"}
            }
          }, {
            label: "ifexist",
            action: {
              type: "encapsulate",
              options: {pre: "{{#ifexist: ", post: "| | }}"}
            }
          }, {
            label: "ifexist long",
            action: {
              type: "encapsulate",
              options: {
                pre: "<!--\n-->{{#ifexist: ",
                post: "<!--\nthen-->|<!--\nelse-->|<!--\n-->}}<!-- end ifexist\n-->"
              }
            }
          }, {
            label: "{{#expr:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{#expr: ", peri: "1 + 6", post: "}}"}
            }
          }, {
            label: "switch",
            action: {
              type: "encapsulate",
              options: {
                pre: "{{#switch: ",
                post: "<!--\n-->| one | two = <!--\n-->| #default = <!--\n-->}}<!-- end switch\n-->"
              }
            }
          }, {
            label: "{{DEFAULTSORT:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{DEFAULTSORT:", post: "}}"}
            }
          }, {
            label: "{{DISPLAYTITLE:}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{DISPLAYTITLE:", post: "}}"}
            }
          },
          "{{PAGENAME}}",
          "{{PAGENAMEE}}",
          "{{FULLPAGENAME}}",
          "{{FULLPAGENAMEE}}"
        ]
      },
      "translate": {
        "layout": "characters",
        label: mw.message("programmingtoolbar-pagelabel-translate"),
        "characters": [
          {
            label: "{{Multilingual}}",
            action: {
              type: "encapsulate", options: {pre: "{{Multilingual\n|de=", peri: "deutscher Text", post: "\n|en=english text\n}}"}
            }
          }, {
            label: "languages",
            action: {
              type: "encapsulate",
              options: {pre: "<languages/>", post: ""}
            }
          }, {
            label: "translate",
            action: {
              type: "encapsulate",
              options: {pre: "\u003Ctranslate\u003E", post: "\u003C/translate\u003E"}
            }
          }, {
            label: "tvar",
            action: {
              type: "encapsulate",
              options: {pre: "<tvar|name>", peri: mw.message("programmingtoolbar-peri-tvar"), post: "</>"}
            }
          },{
            label: "{{Andere Sprachenseite aufklappen}}",
            action: {
              type: "encapsulate",
              options: {
                pre: "{{Andere Sprachenseite aufklappen\n|diese Sprache=de\n|en=", 
                peri: mw.message("programmingtoolbar-peri-page-dropdown-en-page"), 
                post: "}}"}
            }
          },{
            label: "{{Other language page dropdown}}",
            action: {
              type: "encapsulate",
              options: {
                pre: "{{Other language page dropdown\n|this language=en\n|de=", 
                peri: mw.message("programmingtoolbar-peri-page-dropdown-de-page"), 
                post: "}}"}
            }
          },{
            label: "nbsp;",
            labelMsg: mw.message("programmingtoolbar-label-nbsp"),
            action: {
              type: "encapsulate", options: {pre: "&nbsp;", post: ""}
            }
          },{
            label: "{{nnbsp}}",
            labelMsg: mw.message("programmingtoolbar-label-nnbsp-template"),
            action: {
              type: "encapsulate", options: {pre: "{{nnbsp}}", post: ""}
            }
          }, {
            label: "()",
            action: {
              type: "encapsulate",
              options: {pre: "(", post: ")"}
            }
          }, {
            label: "[]",
            action: {
              type: "encapsulate",
              options: {pre: "[", post: "]"}
            }
          }, {
            label: "[[]]",
            action: {
              type: "encapsulate",
              options: {pre: "[[", post: "]]"}
            }
          }, {
            label: "{{}}",
            action: {
              type: "encapsulate",
              options: {pre: "{{", post: "}}"}
            }
          }, {
            label: "nowiki",
            action: {
              type: "encapsulate",
              options: {pre: "<nowiki>", post: "</nowiki>"}
            }
          }, {
            label: "comment",
            action: {
              type: "encapsulate",
              options: {pre: "<!-- ", post: " -->"}
            }
          },
          "{{PAGENAME}}",
          "{{PAGENAMEE}}",
          "{{FULLPAGENAME}}",
          "{{FULLPAGENAMEE}}"
        ]
      }
    }
  });
};

/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
if ($.inArray(mw.config.get("wgAction"), ["edit", "submit"]) !== -1) {
  mw.loader.using("user.options", function () {
    if (mw.user.options.get("usebetatoolbar")) {
      mw.loader.using("ext.wikiEditor", function () {
        $(document).ready(customizeThisUserWikiEditorToolbar);
      });
    }
  });
}
// </pre>