Action
Autour
// version du 20200312-1325
// action de paires
// script à modifier selon vos besoins…
// paires espagnoles, françaises et personnelles
// ATTENTION : dépend de LA typo utilisée
// tous les caractères unicode ne sont pas disponibles dans toutes les typos (ex : double quotation mark)
// Pour créer ou ajouter vos paires de caractères, voir :
// https://www.fileformat.info/info/unicode/category/index.htm
// par catégorie, par exemple :
// https://www.fileformat.info/info/unicode/category/Sm/list.htm
// prendre l'info hexa (\x) mais de préférence unicode (\u)
// based on: greg pierce’s original smart wrap action https://actions.getdrafts.com/a/1Bz
// and Wrapper, https://actions.getdrafts.com/a/1Q8
Steps
-
script
// version du 20200312-1325 // action de paires // script à modifier selon vos besoins… // paires espagnoles, françaises et personnelles // ATTENTION : dépend de LA typo utilisée // tous les caractères unicode ne sont pas disponibles dans toutes les typos (ex : double quotation mark) // Pour créer ou ajouter vos paires de caractères, voir : // https://www.fileformat.info/info/unicode/category/index.htm // par catégorie, par exemple : // https://www.fileformat.info/info/unicode/category/Sm/list.htm // prendre l'info hexa (\x) mais de préférence unicode (\u) // based on: greg pierce's original smart wrap action https://actions.getdrafts.com/a/1Bz // and Wrapper, https://actions.getdrafts.com/a/1Q8 var range = editor.getSelectedRange(); var priorText = editor.getTextInRange(0, range[0]); var p = Prompt.create(); // p. title = "Histoire de Paires…"; // p.message = "Après sélection du texte à envelopper, choisir…"; p.addButton("(text)"); p.addButton("{text}"); p.addButton("Double Quotes"); p.addButton("Single Quotes"); p.addButton("[text]"); p.addButton("<text>"); p.addButton("`code`"); p.addButton("« text »"); // p.addButton("‟text”"); p.addButton("— text with em dash —"); p.addButton("- text with en dash –"); p.addButton("¡text!"); p.addButton("¿text?"); p.addButton("→ *text* →"); p.addButton("| **text** ►"); // Etc. p.show(); if (p.buttonPressed == "(text)") { var open="\x28"; var close="\x29"; } else if (p.buttonPressed == "{text}") { var open = "\x7B"; var close = "\x7D"; } else if (p.buttonPressed == "Double Quotes") { var open = "\x22"; var close = "\x22"; } else if (p.buttonPressed == "Single Quotes") { var open = "\x27"; var close = "\x27"; } else if (p.buttonPressed == "[text]") { var open = "\x5B"; var close = "\x5D"; } else if (p.buttonPressed == "<text>") { var open = "\x3C"; var close = "\x3E"; } else if (p.buttonPressed == "`code`") { var open = "\x60"; var close = "\x60"; } else if (p.buttonPressed == "« text »") { var open = "\u00AB\xA0"; var close = "\xA0\u00BB"; // } else if (p.buttonPressed == "‟text”") { // var open = "\u201F"; // var close = "\u201D"; // exemple typique qui dépend de la typo employée // les guillemets droits sont ok mais pas dans toutes les polices ! } else if (p.buttonPressed == "— text with em dash —") { var open = "\u2014\xA0"; var close = "\xA0\u2014"; } else if (p.buttonPressed == "- text with en dash –") { var open = "\u2013\xA0"; var close = "\xA0\u2013"; } else if (p.buttonPressed == "¡text!") { var open = "\xA1"; var close = "\x21"; } else if (p.buttonPressed == "¿text?") { var open = "\xBF"; var close = "\x3F"; } else if (p.buttonPressed == "→ *text* →") { var open = "\u2192\xA0\u002A"; var close = "\u002A\xA0\u2192"; } else if (p.buttonPressed == "| **text** ►") { var open = "\uFE31\xA0\u002A\u002A"; var close = "\u002A\u002A\xA0\u25BA"; } if (range[1] > 0) { //text selected, wrap it! editor.setSelectedText(open + editor.getSelectedText() + close); editor.setSelectedRange(range[0] + range[1] + open.length + close.length, 0); } else { // no selection, find last var lastOpen = priorText.lastIndexOf(open); var lastClose = priorText.lastIndexOf(close); if (lastOpen == -1 || lastClose > lastOpen) { // no close, use open editor.setSelectedText(open); editor.setSelectedRange(range[0]+open.length, 0); } else { // close last open editor.setSelectedText(close); editor.setSelectedRange(range[0]+close.length, 0); } }
Options
-
After Success Nothing Notification Error Log Level Error
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.