WordPress.org

Make WordPress Core

Ticket #24263: 24263.patch

File 24263.patch, 2.5 KB (added by a.hoereth, 5 years ago)

tinyMCE style caption-shortcode in revisions

  • wp-admin/css/wp-admin.css

     
    35723572        text-decoration: none;
    35733573}
    35743574
     3575/* prevents user agent stylesheet from messing up */
     3576table.diff .wp-caption-dd {
     3577        margin: 0;
     3578}
     3579
    35753580#revisions-diff {
    35763581        position: relative;
    35773582}
  • wp-admin/js/revisions.js

     
    641641                                        addHtml = this.template( this.model.at( Diff.rightDiff - 1 ).toJSON() );
    642642                                }
    643643                        }
    644                         this.$el.html( addHtml );
     644                        this.$el.html( this._do_shcode( addHtml ) );
    645645
    646646                        if ( this.model.length < 2 ) {
    647647                                $( '#diff-slider' ).hide(); // don't allow compare two if fewer than three revisions
     
    689689
    690690                restore: function() {
    691691                        document.location = $( '#restore-revision' ).data( 'restoreLink' );
     692                },
     693
     694                // from wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin_src.js:124+
     695                _do_shcode: function( html ) {
     696                        return html.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function(a,b,c){
     697                                var id, cls, w, cap, div_cls, img, trim = $.trim; // using jQuery.trim()
     698
     699                                id = b.match(/id=['"]([^'"]*)['"] ?/);
     700                                if ( id )
     701                                        b = b.replace(id[0], '');
     702
     703                                cls = b.match(/align=['"]([^'"]*)['"] ?/);
     704                                if ( cls )
     705                                        b = b.replace(cls[0], '');
     706
     707                                w = b.match(/width=['"]([0-9]*)['"] ?/);
     708                                if ( w )
     709                                        b = b.replace(w[0], '');
     710
     711                                c = trim(c);
     712                                img = c.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i);
     713
     714                                if ( img && img[2] ) {
     715                                        cap = trim( img[2] );
     716                                        img = trim( img[1] );
     717                                } else {
     718                                        // old captions shortcode style
     719                                        cap = trim(b).replace(/caption=['"]/, '').replace(/['"]$/, '');
     720                                        img = c;
     721                                }
     722
     723                                id = ( id && id[1] ) ? id[1] : '';
     724                                cls = ( cls && cls[1] ) ? cls[1] : 'alignnone';
     725                                w = ( w && w[1] ) ? w[1] : '';
     726
     727                                if ( !w || !cap )
     728                                        return c;
     729
     730                                div_cls = 'mceTemp';
     731                                if ( cls == 'aligncenter' )
     732                                        div_cls += ' mceIEcenter';
     733
     734                                // added max-width for revisions view
     735                                return '<div class="'+div_cls+'"><dl id="'+id+'" class="wp-caption '+cls+'" style="width: '+( 10 + parseInt(w) )+
     736                                'px; max-width: 100%;"><dt class="wp-caption-dt">'+img+'</dt><dd class="wp-caption-dd">'+cap+'</dd></dl></div>';
     737                        });
    692738                }
    693739        });
    694740