- fields: {name: "Nag\u0142\xF3wki", position: 0, slug: naglowki} model: toolbar.buttongroup pk: 1 - fields: {name: Autokorekta, position: 0, slug: autokorekta} model: toolbar.buttongroup pk: 2 - fields: {name: Mastery, position: 0, slug: mastery} model: toolbar.buttongroup pk: 11 - fields: {name: 'Dramat ', position: 0, slug: dramat} model: toolbar.buttongroup pk: 12 - fields: {name: "Elementy pocz\u0105tkowe", position: 0, slug: elementy-poczatkowe} model: toolbar.buttongroup pk: 13 - fields: {name: Akapity, position: 0, slug: akapity} model: toolbar.buttongroup pk: 14 - fields: {name: Style znakowe, position: 0, slug: style-znakowe} model: toolbar.buttongroup pk: 15 - fields: {name: Separatory, position: 0, slug: separatory} model: toolbar.buttongroup pk: 16 - fields: {name: Wersy, position: 0, slug: wersy} model: toolbar.buttongroup pk: 17 - fields: {name: Bloki, position: 0, slug: bloki} model: toolbar.buttongroup pk: 21 - fields: {name: "Pocz\u0105tek dramatu", position: 0, slug: poczatek-dramatu} model: toolbar.buttongroup pk: 22 - fields: {name: Przypisy, position: 0, slug: przypisy} model: toolbar.buttongroup pk: 26 - fields: {name: Autotagowanie, position: 0, slug: autotagowanie} model: toolbar.buttongroup pk: 28 - fields: {name: Uwaga, position: 0, slug: uwaga} model: toolbar.buttongroup pk: 29 - fields: accesskey: '' group: [2] label: ",,\u2026\" na \xAB\u2026\xBB" link: '' params: '{"exprs": [[",,", "\u00ab"], ["\"", "\u00bb"]]}' scriptlet: fulltextregexp slug: na-francuskie tooltip: "Zamienia cudzys\u0142owy podw\xF3jne na francuskie" model: toolbar.button pk: 2 - fields: accesskey: '' group: [2] label: ",,\u2026\" na \xBB\u2026\xAB" link: '' params: '{"exprs": [[",,", "\u00bb"], ["\"", "\u00ab"]]}' scriptlet: fulltextregexp slug: na-niemieckie tooltip: "Zamienia cudzys\u0142owy podw\xF3jne na niemieckie" model: toolbar.button pk: 3 - fields: accesskey: '' group: [2] label: Podstawowa link: '' params: '[["fulltextregexp", {"exprs": [["\ufeff", ""], ["$[\\s]*\\d+[\\s]*^", ""], ["-\\s*^", ""], ["\\,\\.\\.|\\.\\,\\.|\\.\\.\\,", "..."], ["<(/?)P([aert])", "<$1p$2"], ["[\u2014\u2013\u2010-]{2,}|[\u2014\u2013\u2010]+", "---"], ["(\\s)-([^-])", "$1---$2"], ["([^-])-(\\s)", "$1---$2"], ["(\\d)-+(\\d)", "$1--$2"], ["---(\\S)", "--- $1"], ["(\\S)---", "$1 ---"], ["\\s*-+\\s*", "--- "]]}], ["lineregexp", {"exprs": [["^\\s+|\\s+$", ""], ["\\s+", " "], ["(,,)\\s+", "$1"], ["\\s+(\")", "$1"], ["([^\\.])(\\s*)\u2193" link: '' params: '[]' scriptlet: lowercase slug: tolowercase tooltip: "Zamie\u0144 wielkie litery na ma\u0142e" model: toolbar.button pk: 76 - fields: accesskey: '' group: [2] label: "zamiana cudzys\u0142ow\xF3w 2" link: '' params: '{"exprs": [["\u00bb|\u201e", ",,"], ["\u00ab", "\""], ["([^=])\"([\u0104\u0118\u00d3\u0141\u017b\u0179\u0106\u0143\u0105\u017c\u017a\u015b\u0144\u00f3\u0142\u0107\\w])", "$1,,$2"], ["^\"([\u0104\u0118\u00d3\u0141\u017b\u0179\u0106\u0143\u0105\u017c\u017a\u015b\u0144\u00f3\u0142\u0107\\w])", ",,$1"], ["(,,)\\s+|\\s+(\")", "$1"]]}' scriptlet: lineregexp slug: cudzyslow-niemiecki tooltip: "zamienia \" na ,, oraz \xBBa\xAB na ,,a\"" model: toolbar.button pk: 77 - fields: accesskey: '' group: [22] label: 'typ osoby ' link: '' params: '{"padding_top": 1, "padding_bottom": 1, "tag": "lista_osoba", "attrs": {"typ": ""}}' scriptlet: insert_tag slug: lista-osob-pole tooltip: osoby z takim samym opisem model: toolbar.button pk: 78 - fields: accesskey: '' group: [22] label: "didaskalia pocz\u0105tkowe" link: '' params: '{"padding_top": 1, "padding_bottom": 3, "tag": "miejsce_czas"}' scriptlet: insert_tag slug: didaskalia-poczatkowe tooltip: "komentarze wprowadzaj\u0105ce przed tekstem dramatu" model: toolbar.button pk: 79 - fields: accesskey: s group: [12, 17] label: strofa link: '' params: '{"padding_top": 1, "padding_bottom": 3, "tag": "strofa"}' scriptlet: insert_stanza slug: strofa tooltip: "wstawia strof\u0119" model: toolbar.button pk: 81 - fields: accesskey: k group: [12] label: kwestia link: '' params: '{"padding_top": 1, "padding_bottom": 1, "tag": "kwestia"}' scriptlet: insert_tag slug: kwestia tooltip: "wstawia kwesti\u0119" model: toolbar.button pk: 82 - fields: accesskey: w group: [12, 17] label: "wers mocno wci\u0119ty" link: '' params: '{"tag": "wers_wciety", "attrs": {"typ": ""}}' scriptlet: insert_tag slug: wers-mocno-wciety tooltip: "argumenty wersu wci\u0119tego: od 2 do 6" model: toolbar.button pk: 84 - fields: accesskey: '' group: [12, 17] label: wers cd. link: '' params: '{"tag": "wers_cd"}' scriptlet: insert_tag slug: wers-cd tooltip: "cz\u0119\u015B\u0107 wersu przeniesiona do innego wiersza" model: toolbar.button pk: 85 - fields: accesskey: '' group: [12, 17] label: wers do prawej link: '' params: '{"tag": "wers_do_prawej"}' scriptlet: insert_tag slug: wers-do-prawej tooltip: "wers wyr\xf3wnany do prawej" model: toolbar.button pk: 109 - fields: accesskey: '' group: [] label: Wydrukuj link: print/xml params: '[]' scriptlet: insert_tag slug: print-xml tooltip: '' model: toolbar.button pk: 86 - fields: accesskey: '' group: [] label: Wydrukuj link: print/html params: '[]' scriptlet: insert_tag slug: htmleditor-print tooltip: '' model: toolbar.button pk: 87 - fields: accesskey: '' group: [2] label: "zamiana cudzys\u0142ow\xF3w 1" link: '' params: '{"exprs": [["\u00ab|\u201e", ",,"], ["\u00bb", "\""], ["([^=])\"([\u0104\u0118\u00d3\u0141\u017b\u0179\u0106\u0143\u0105\u017c\u017a\u015b\u0144\u00f3\u0142\u0107\\w])", "$1,,$2"], ["^\"([\u0104\u0118\u00d3\u0141\u017b\u0179\u0106\u0143\u0105\u017c\u017a\u015b\u0144\u00f3\u0142\u0107\\w])", ",,$1"], ["(,,)\\s+|\\s+(\")", "$1"]]}' scriptlet: lineregexp slug: cudzyslow-francuski tooltip: "zamiana \" na ,, oraz \xABa\xBB na ,,a\"" model: toolbar.button pk: 89 - fields: accesskey: q group: [12, 17] label: "wers wci\u0119ty" link: '' params: '{"tag": "wers_wciety", "attrs": {"typ": "1"}}' scriptlet: insert_tag slug: wers-wciety tooltip: "wstawia wers wci\u0119ty" model: toolbar.button pk: 91 - fields: accesskey: r group: [15] label: "tytu\u0142 dzie\u0142a" link: '' params: '{"tag": "tytul_dziela"}' scriptlet: insert_tag slug: tytul-dziela tooltip: '' model: toolbar.button pk: 92 - fields: accesskey: '' group: [22] label: "lista os\xF3b" link: '' params: '{"padding_top": 1, "padding_bottom": 4, "tag": "lista_osob"}' scriptlet: insert_tag slug: lista-osob tooltip: "lista os\xF3b poprzedzaj\u0105ca tekst dramatu" model: toolbar.button pk: 93 - fields: accesskey: '' group: [22] label: "nag\u0142\xF3wek listy" link: '' params: '{"padding_top": 1, "padding_bottom": 2, "tag": "naglowek_listy"}' scriptlet: insert_tag slug: naglowek-listy tooltip: "nag\u0142\xF3wek listy os\xF3b" model: toolbar.button pk: 94 - fields: accesskey: '' group: [22] label: osoba na liscie link: '' params: '{"padding_top": 1, "padding_bottom": 1, "tag": "lista_osoba"}' scriptlet: insert_tag slug: osoba-na-liscie tooltip: "nazwa osoby na liscie os\xF3b" model: toolbar.button pk: 95 - fields: accesskey: '' group: [] label: extra link: '' params: '{"tag": "extra"}' scriptlet: insert_tag slug: extra tooltip: "uwagi dotycz\u0105ce sk\u0142adu" model: toolbar.button pk: 96 - fields: accesskey: '' group: [28] label: akapity link: '' params: '{"tag": "akap"}' scriptlet: autotag slug: akapity tooltip: "autotagowanie akapit\xF3w" model: toolbar.button pk: 97 - fields: accesskey: '' group: [28] label: strofy link: '' params: '{"tag": "strofa"}' scriptlet: autotag slug: strofy tooltip: autotagowanie strof model: toolbar.button pk: 99 - fields: accesskey: '' group: [28] label: "wersy wci\u0119te" link: '' params: '{"padding": 1, "tag": "wers_wciety", "split": 1}' scriptlet: autotag slug: wersy-wciete tooltip: "autotagowanie wers\xF3w wci\u0119tych" model: toolbar.button pk: 100 - fields: accesskey: g group: [12] label: kwestioakapit link: '' params: '[["insert_tag", {"tag": "akap"}], ["insert_tag", {"padding_top": 1, "padding_bottom": 1, "tag": "kwestia"}]]' scriptlet: macro slug: kwestioakapit tooltip: '' model: toolbar.button pk: 101 - fields: accesskey: '' group: [12] label: kwestiostrofa link: '' params: '[["insert_stanza", {"tag": "strofa"}], ["insert_tag", {"padding_top": 1, "padding_bottom": 1, "tag": "kwestia"}]]' scriptlet: macro slug: kwestiostrofa tooltip: '' model: toolbar.button pk: 102 - fields: accesskey: '' group: [28] label: "nag\u0142. dramatu" link: '' params: '{"exprs": [["^AKT(\\s\\w*)$", "AKT$1"], ["^SCENA(\\s\\w*)$", "SCENA$1"], ["([A-Z\u0104\u0106\u0118\u0141\u0143\u00d3\u015a\u017b\u0179]{2}[A-Z\u0104\u0106\u0118\u0141\u0143\u00d3\u015a\u017b\u0179\\s]+)$", "$1"]]}' scriptlet: lineregexp slug: nagl-dramatu tooltip: "autotagowanie akt\xF3w, scen, nag\u0142\xF3wk\xF3w os\xF3b" model: toolbar.button pk: 103 - fields: accesskey: x group: [13] label: nota red. link: '' params: '{"padding_top": 1, "padding_bottom": 3, "tag": "nota_red"}' scriptlet: insert_tag slug: nota-red tooltip: nota redakcyjna model: toolbar.button pk: 104 - fields: accesskey: '' group: [2] label: slug link: '' params: '[]' scriptlet: slugify slug: slug tooltip: slugifikacja model: toolbar.button pk: 105 - fields: accesskey: '' group: [11] label: trim begin link: '' params: '{"text": "\n\n"}' scriptlet: insert_text slug: trim-begin tooltip: "Wstawia pocz\u0105tkowy znacznik ci\u0119cia cz\u0119\u015Bci" model: toolbar.button pk: 106 - fields: accesskey: '' group: [11] label: trim end link: '' params: '{"text": "\n\n"}' scriptlet: insert_text slug: trim-end tooltip: "Wstawia ko\u0144cowy znacznik ci\u0119cia cz\u0119\u015Bci" model: toolbar.button pk: 107 - fields: accesskey: '' group: [11] label: etap link: '' params: '{"tag": "developmentStage"}' scriptlet: insert_tag slug: etap tooltip: "wymaga uwsp\xF3\u0142czesnienia: 0.3" model: toolbar.button pk: 108 - fields: {code: '-'} model: toolbar.scriptlet pk: autotag - fields: {code: "editor.showPopup('generic-info', 'Przetwarzanie zaznaczonego tekstu...',\ \ '', -1);\n$.log(editor, panel, params);\nvar cm = panel.texteditor;\n\ var exprs = $.map(params.exprs, function(expr) {\n var opts = \"mg\"\ ;\n if(expr.length > 2)\n opts = expr[2];\n\n return {rx:\ \ new RegExp(expr[0], opts), repl: expr[1]};\n});\n\nvar partial = true;\n\ var text = cm.selection();\n\nif(!text) {\n var cpos = cm.cursorPosition();\n\ \ cpos.line = cm.lineNumber(cpos.line)\n cm.selectLines(cm.firstLine(),\ \ 0, cm.lastLine(), 0);\n\n text = cm.selection();\n partial = false;\n\ }\n\nvar original = text;\n$(exprs).each(function() { \n text = text.replace(this.rx,\ \ this.repl);\n});\n\nif( original != text) \n{ \n cm.replaceSelection(text);\n\ \ panel.fireEvent('contentChanged');\n editor.showPopup('generic-yes',\ \ 'Zmieniono tekst' );\n editor.advancePopupQueue();\n}\nelse {\n \ \ editor.showPopup('generic-info', 'Brak zmian w tek\u015Bcie.');\n\ \ editor.advancePopupQueue();\n}\n\nif(!partial) {\n cm.selectLines(\ \ cm.nthLine(cpos.line), cpos.character );\n}"} model: toolbar.scriptlet pk: fulltextregexp - fields: {code: "var texteditor = panel.texteditor;\r\nvar text = texteditor.selection();\r\ \n\r\nif(text) {\r\n var verses = text.split('\\n');\r\n var text =\ \ ''; var buf = ''; var ebuf = '';\r\n var first = true;\r\n\r\n for(var\ \ i=0; i < verses.length; i++) {\r\n verse = verses[i].replace(/^\\\ s+/, \"\").replace(/\\s+$/, \"\"); \r\n if(verse) {\r\n text\ \ += (buf ? buf + '/\\n' : '') + ebuf;\r\n buf = (first ? '\\\ n' : '') + verses[i];\r\n ebuf = '';\r\n first = false;\r\n\ \ } else { \r\n ebuf += '\\n' + verses[i];\r\n }\r\n };\r\ \n text = text + buf + '\\n' + ebuf; \r\n texteditor.replaceSelection(text);\r\ \n}\r\n\r\nif (!text) {\r\n var pos = texteditor.cursorPosition();\r\ \n texteditor.selectLines(pos.line, pos.character + 6 + 2);\r\n}\r\n\ \r\n\r\n\r\n\r\n\r\n\r\n\r\npanel.fireEvent('contentChanged');"} model: toolbar.scriptlet pk: insert_stanza - fields: {code: "var texteditor = panel.texteditor;\nvar text = texteditor.selection();\n\ var start_tag = '<'+params.tag;\nfor (var attr in params.attrs) {\n \ \ start_tag += ' '+attr+'=\"' + params.attrs[attr] + '\"';\n};\nstart_tag\ \ += '>';\nvar end_tag = '';\n\nif(text.length > 0) {\n\ // tokenize\nvar output = ''\nvar token = ''\nfor(var index=0; index <\ \ text.length; index++)\n{\n if (text[index].match(/\\s/)) { // whitespace\n\ \ token += text[index];\n }\n else { // character\n \ \ output += token;\n if(output == token) output += start_tag;\n\ \ token = ''\n output += text[index];\n }\n}\n\nif( output[output.length-1]\ \ == '\\\\' ) {\n output = output.substr(0, output.length-1) + end_tag\ \ + '\\\\';\n} else {\n output += end_tag;\n}\noutput += token;\n}\n\ else {\n output = start_tag + end_tag;\n}\n\ntexteditor.replaceSelection(output);\n\ \nif (text.length == 0) {\n var pos = texteditor.cursorPosition();\n\ \ texteditor.selectLines(pos.line, pos.character + params.tag.length\ \ + 2);\n}\n\npanel.fireEvent('contentChanged');"} model: toolbar.scriptlet pk: insert_tag - fields: {code: '-'} model: toolbar.scriptlet pk: insert_text - fields: {code: "editor.showPopup('generic-info', 'Przetwarzanie zaznaczonego tekstu...',\ \ '', -1);\n\nvar cm = panel.texteditor;\nvar exprs = $.map(params.exprs,\ \ function(expr) {\n\n var opts = \"g\";\n\n if(expr.length > 2)\n\ \n opts = expr[2];\n\n return {rx: new RegExp(expr[0], opts),\ \ repl: expr[1]};\n\n});\n\n\n\nvar partial = true;\n\nvar text = cm.selection();\n\ \n\n\nif(!text) {\n\n var cpos = cm.cursorPosition();\n\n cpos.line\ \ = cm.lineNumber(cpos.line)\n\n cm.selectLines(cm.firstLine(), 0,\ \ cm.lastLine(), 0);\n\n text = cm.selection();\n\n partial = false;\n\ \n}\n\n\n\nvar changed = 0;\nvar lines = text.split('\\n');\nvar lines\ \ = $.map(lines, function(line) { \n var old_line = line;\n $(exprs).each(function()\ \ { \n var expr = this;\n line = line.replace(expr.rx, expr.repl);\n\ \ });\n\n if(old_line != line) changed += 1;\n return line;\n\ });\n\nif(changed > 0) \n{\n cm.replaceSelection( lines.join('\\n')\ \ );\n panel.fireEvent('contentChanged');\n editor.showPopup('generic-yes',\ \ 'Zmieniono ' + changed + ' linii.', 1500);\n editor.advancePopupQueue();\n\ }\nelse {\n editor.showPopup('generic-info', 'Brak zmian w tek\u015B\ cie', 1500);\n editor.advancePopupQueue();\n}\n\nif(!partial)\n \ \ cm.selectLines( cm.nthLine(cpos.line), cpos.character )"} model: toolbar.scriptlet pk: lineregexp - fields: {code: "var cm = panel.texteditor;\r\nvar text = cm.selection();\r\n\r\ \nif(!text) return;\r\nvar repl = '';\r\nvar lcase = text.toLowerCase();\r\ \nvar ucase = text.toUpperCase();\r\n\r\nif(lcase == text) repl = ucase;\ \ /* was lowercase */\r\nelse if(ucase != text) repl = lcase; /* neither\ \ lower- or upper-case */\r\nelse { /* upper case -> title-case */\r\n\ \ var words = $(lcase.split(/\\s/)).map(function() { \r\n if(this.length\ \ > 0) { return this[0].toUpperCase() + this.slice(1); } else { return\ \ ''}\r\n }); \r\n repl = words.join(' ');\r\n} \r\n\r\nif(repl !=\ \ text) {\r\n cm.replaceSelection(repl);\r\n panel.fireEvent('contentChanged');\r\ \n};"} model: toolbar.scriptlet pk: lowercase - fields: {code: "$(params).each(function() {\n $.log(this[0], this[1]);\n \ \ editor.callScriptlet(this[0], panel, this[1]);\n\n});"} model: toolbar.scriptlet pk: macro - fields: {code: '-'} model: toolbar.scriptlet pk: slugify