From c1ff206bac47a3386ceff53cef25963db9735be7 Mon Sep 17 00:00:00 2001 From: Ella Iseulde Van Dorpe <*@iseulde.com> Date: Sun, 6 Nov 2016 23:38:33 +0000 Subject: [PATCH] TinyMCE: wptextpattern: Fix inline patterns. * Allow spaces inside inline pattern text, unless the delimiter stands alone. * Add more unit tests. * Add more inline docs. Part props azaozz. Fixes #37693. Built from https://develop.svn.wordpress.org/trunk@39150 git-svn-id: http://core.svn.wordpress.org/trunk@39090 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../tinymce/plugins/wptextpattern/plugin.js | 87 +++++++++++++----- .../plugins/wptextpattern/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 171801 -> 171820 bytes wp-includes/version.php | 2 +- 4 files changed, 66 insertions(+), 25 deletions(-) diff --git a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js index e85a4857c2..236775034c 100644 --- a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js +++ b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js @@ -3,12 +3,46 @@ * * @since 4.3.0 * - * This plugin can automatically format text patterns as you type. It includes two patterns: + * This plugin can automatically format text patterns as you type. It includes several groups of patterns. + * + * Start of line patterns: + * As-you-type: * - Unordered list (`* ` and `- `). * - Ordered list (`1. ` and `1) `). * + * On enter: + * - h2 (## ). + * - h3 (### ). + * - h4 (#### ). + * - h5 (##### ). + * - h6 (###### ). + * - blockquote (> ). + * - hr (---). + * + * Inline patterns: + * - (`) (backtick). + * * If the transformation in unwanted, the user can undo the change by pressing backspace, * using the undo shortcut, or the undo button in the toolbar. + * + * Setting for the patterns can be overridden by plugins by using the `tiny_mce_before_init` PHP filter. + * The setting name is `wptextpattern` and the value is an object containing override arrays for each + * patterns group. There are three groups: "space", "enter", and "inline". Example (PHP): + * + * add_filter( 'tiny_mce_before_init', 'my_mce_init_wptextpattern' ); + * function my_mce_init_wptextpattern( $init ) { + * $init['wptextpattern'] = wp_json_encode( array( + * 'inline' => array( + * array( 'delimiter' => '**', 'format' => 'bold' ), + * array( 'delimiter' => '__', 'format' => 'italic' ), + * ), + * ) ); + * + * return $init; + * } + * + * Note that setting this will override the default text patterns. You will need to include them + * in your settings array if you want to keep them working. */ ( function( tinymce, setTimeout ) { if ( tinymce.Env.ie && tinymce.Env.ie < 9 ) { @@ -46,19 +80,10 @@ ]; var inlinePatterns = settings.inline || [ - { start: '`', end: '`', format: 'code' } + { delimiter: '`', format: 'code' } ]; var canUndo; - var chars = []; - - tinymce.each( inlinePatterns, function( pattern ) { - tinymce.each( ( pattern.start + pattern.end ).split( '' ), function( c ) { - if ( tinymce.inArray( chars, c ) === -1 ) { - chars.push( c ); - } - } ); - } ); editor.on( 'selectionchange', function() { canUndo = null; @@ -100,28 +125,44 @@ return; } - // The ending character should exist in the patterns registered. - if ( tinymce.inArray( chars, node.data.charAt( offset - 1 ) ) === -1 ) { - return; - } - var string = node.data.slice( 0, offset ); + var lastChar = node.data.charAt( offset - 1 ); tinymce.each( inlinePatterns, function( p ) { - var regExp = new RegExp( escapeRegExp( p.start ) + '\\S+' + escapeRegExp( p.end ) + '$' ); + // Character before selection should be delimiter. + if ( lastChar !== p.delimiter.slice( -1 ) ) { + return; + } + + var escDelimiter = escapeRegExp( p.delimiter ); + var delimiterFirstChar = p.delimiter.charAt( 0 ); + var regExp = new RegExp( '(.*)' + escDelimiter + '.+' + escDelimiter + '$' ); var match = string.match( regExp ); if ( ! match ) { return; } - // Don't allow pattern characters in the text. - if ( node.data.slice( match.index + p.start.length, offset - p.end.length ).indexOf( p.start.slice( 0, 1 ) ) !== -1 ) { + startOffset = match[1].length; + endOffset = offset - p.delimiter.length; + + var before = string.charAt( startOffset - 1 ); + var after = string.charAt( startOffset + p.delimiter.length ); + + // test*test* => format applied + // test *test* => applied + // test* test* => not applied + if ( startOffset && /\S/.test( before ) ) { + if ( /\s/.test( after ) || before === delimiterFirstChar ) { + return; + } + } + + // Do not replace when only whitespace and delimiter characters. + if ( ( new RegExp( '^[\\s' + escapeRegExp( delimiterFirstChar ) + ']+$' ) ).test( string.slice( startOffset, endOffset ) ) ) { return; } - startOffset = match.index; - endOffset = offset - p.end.length; pattern = p; return false; @@ -142,8 +183,8 @@ node = node.splitText( startOffset ); zero = node.splitText( offset - startOffset ); - node.deleteData( 0, pattern.start.length ); - node.deleteData( node.data.length - pattern.end.length, pattern.end.length ); + node.deleteData( 0, pattern.delimiter.length ); + node.deleteData( node.data.length - pattern.delimiter.length, pattern.delimiter.length ); editor.formatter.apply( pattern.format, {}, node ); diff --git a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js index 3622f4d7ab..c4e7cbba50 100644 --- a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js @@ -1 +1 @@ -!function(a,b){function c(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}a.Env.ie&&a.Env.ie<9||a.PluginManager.add("wptextpattern",function(d){function e(){var e,f,g,h,i,k=d.selection.getRng(),l=k.startContainer,m=k.startOffset;if(l&&3===l.nodeType&&l.data.length&&m&&a.inArray(p,l.data.charAt(m-1))!==-1){var n=l.data.slice(0,m);a.each(o,function(a){var b=new RegExp(c(a.start)+"\\S+"+c(a.end)+"$"),d=n.match(b);if(d&&l.data.slice(d.index+a.start.length,m-a.end.length).indexOf(a.start.slice(0,1))===-1)return e=d.index,f=m-a.end.length,g=a,!1}),g&&(h=d.formatter.get(g.format),h&&h[0].inline&&(d.undoManager.add(),d.undoManager.transact(function(){l.insertData(m,"\ufeff"),l=l.splitText(e),i=l.splitText(m-e),l.deleteData(0,g.start.length),l.deleteData(l.data.length-g.end.length,g.end.length),d.formatter.apply(g.format,{},l),d.selection.setCursorLocation(i,1)}),b(function(){j="space",d.once("selectionchange",function(){var a;i&&(a=i.data.indexOf("\ufeff"),a!==-1&&i.deleteData(a,a+1))})})))}}function f(a){var b,c=d.dom.getParent(a,"p");if(c){for(;(b=c.firstChild)&&3!==b.nodeType;)c=b;if(b)return b.data||(b=b.nextSibling&&3===b.nextSibling.nodeType?b.nextSibling:null),b}}function g(){var c,e,g=d.selection.getRng(),h=g.startContainer;h&&f(h)===h&&(c=h.parentNode,e=h.data,a.each(m,function(a){var f=e.match(a.regExp);if(f&&g.startOffset===f[0].length)return d.undoManager.add(),d.undoManager.transact(function(){h.deleteData(0,f[0].length),c.innerHTML||c.appendChild(document.createElement("br")),d.selection.setCursorLocation(c),d.execCommand(a.cmd)}),b(function(){j="space"}),!1}))}function h(){var c,e,g,h=d.selection.getRng(),k=h.startContainer,l=f(k),m=n.length;if(l){for(c=l.data;m--;)if(n[m].start){if(0===c.indexOf(n[m].start)){e=n[m];break}}else if(n[m].regExp&&n[m].regExp.test(c)){e=n[m];break}e&&(l===k&&a.trim(c)===e.start||d.once("keyup",function(){d.undoManager.add(),d.undoManager.transact(function(){e.format?(d.formatter.apply(e.format,{},l),l.replaceData(0,l.data.length,i(l.data.slice(e.start.length)))):e.element&&(g=l.parentNode&&l.parentNode.parentNode,g&&g.replaceChild(document.createElement(e.element),l.parentNode))}),b(function(){j="enter"})}))}}function i(a){return a?a.replace(/^\s+/,""):""}var j,k=a.util.VK,l=d.settings.wptextpattern||{},m=l.space||[{regExp:/^[*-]\s/,cmd:"InsertUnorderedList"},{regExp:/^1[.)]\s/,cmd:"InsertOrderedList"}],n=l.enter||[{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:">",format:"blockquote"},{regExp:/^(-){3,}$/,element:"hr"}],o=l.inline||[{start:"`",end:"`",format:"code"}],p=[];a.each(o,function(b){a.each((b.start+b.end).split(""),function(b){a.inArray(p,b)===-1&&p.push(b)})}),d.on("selectionchange",function(){j=null}),d.on("keydown",function(a){(j&&27===a.keyCode||"space"===j&&a.keyCode===k.BACKSPACE)&&(d.undoManager.undo(),a.preventDefault(),a.stopImmediatePropagation()),k.metaKeyPressed(a)||(a.keyCode===k.ENTER?h():a.keyCode===k.SPACEBAR?b(g):a.keyCode>47&&!(a.keyCode>=91&&a.keyCode<=93)&&b(e))},!0)})}(window.tinymce,window.setTimeout); \ No newline at end of file +!function(a,b){function c(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}a.Env.ie&&a.Env.ie<9||a.PluginManager.add("wptextpattern",function(d){function e(){var e,f,g,h,i,k=d.selection.getRng(),l=k.startContainer,m=k.startOffset;if(l&&3===l.nodeType&&l.data.length&&m){var n=l.data.slice(0,m),p=l.data.charAt(m-1);a.each(o,function(a){if(p===a.delimiter.slice(-1)){var b=c(a.delimiter),d=a.delimiter.charAt(0),h=new RegExp("(.*)"+b+".+"+b+"$"),i=n.match(h);if(i){e=i[1].length,f=m-a.delimiter.length;var j=n.charAt(e-1),k=n.charAt(e+a.delimiter.length);if(!(e&&/\S/.test(j)&&(/\s/.test(k)||j===d)||new RegExp("^[\\s"+c(d)+"]+$").test(n.slice(e,f))))return g=a,!1}}}),g&&(h=d.formatter.get(g.format),h&&h[0].inline&&(d.undoManager.add(),d.undoManager.transact(function(){l.insertData(m,"\ufeff"),l=l.splitText(e),i=l.splitText(m-e),l.deleteData(0,g.delimiter.length),l.deleteData(l.data.length-g.delimiter.length,g.delimiter.length),d.formatter.apply(g.format,{},l),d.selection.setCursorLocation(i,1)}),b(function(){j="space",d.once("selectionchange",function(){var a;i&&(a=i.data.indexOf("\ufeff"),a!==-1&&i.deleteData(a,a+1))})})))}}function f(a){var b,c=d.dom.getParent(a,"p");if(c){for(;(b=c.firstChild)&&3!==b.nodeType;)c=b;if(b)return b.data||(b=b.nextSibling&&3===b.nextSibling.nodeType?b.nextSibling:null),b}}function g(){var c,e,g=d.selection.getRng(),h=g.startContainer;h&&f(h)===h&&(c=h.parentNode,e=h.data,a.each(m,function(a){var f=e.match(a.regExp);if(f&&g.startOffset===f[0].length)return d.undoManager.add(),d.undoManager.transact(function(){h.deleteData(0,f[0].length),c.innerHTML||c.appendChild(document.createElement("br")),d.selection.setCursorLocation(c),d.execCommand(a.cmd)}),b(function(){j="space"}),!1}))}function h(){var c,e,g,h=d.selection.getRng(),k=h.startContainer,l=f(k),m=n.length;if(l){for(c=l.data;m--;)if(n[m].start){if(0===c.indexOf(n[m].start)){e=n[m];break}}else if(n[m].regExp&&n[m].regExp.test(c)){e=n[m];break}e&&(l===k&&a.trim(c)===e.start||d.once("keyup",function(){d.undoManager.add(),d.undoManager.transact(function(){e.format?(d.formatter.apply(e.format,{},l),l.replaceData(0,l.data.length,i(l.data.slice(e.start.length)))):e.element&&(g=l.parentNode&&l.parentNode.parentNode,g&&g.replaceChild(document.createElement(e.element),l.parentNode))}),b(function(){j="enter"})}))}}function i(a){return a?a.replace(/^\s+/,""):""}var j,k=a.util.VK,l=d.settings.wptextpattern||{},m=l.space||[{regExp:/^[*-]\s/,cmd:"InsertUnorderedList"},{regExp:/^1[.)]\s/,cmd:"InsertOrderedList"}],n=l.enter||[{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:">",format:"blockquote"},{regExp:/^(-){3,}$/,element:"hr"}],o=l.inline||[{delimiter:"`",format:"code"}];d.on("selectionchange",function(){j=null}),d.on("keydown",function(a){(j&&27===a.keyCode||"space"===j&&a.keyCode===k.BACKSPACE)&&(d.undoManager.undo(),a.preventDefault(),a.stopImmediatePropagation()),k.metaKeyPressed(a)||(a.keyCode===k.ENTER?h():a.keyCode===k.SPACEBAR?b(g):a.keyCode>47&&!(a.keyCode>=91&&a.keyCode<=93)&&b(e))},!0)})}(window.tinymce,window.setTimeout); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index c212d1feb4b9508c50a78fcc190f62b3efcaaa53..5f02c27425bdf7de49ff0837649703baa9847336 100644 GIT binary patch delta 13429 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 XMvV`xheNmq!TJ9O6(!J+>f{Fix=dnz delta 13410 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 E05$Yz@Bjb+ diff --git a/wp-includes/version.php b/wp-includes/version.php index 6703fe25f9..d934c047ae 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.7-beta2-39149'; +$wp_version = '4.7-beta2-39150'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.