Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// derived from [[User:Enterprisey/copy-section-link.js]]// <nowiki>$.when(    $.ready,    mw.loader.using( [ "mediawiki.util", "oojs-ui-core", "oojs-ui-widgets" ] )).then( function () {//    $( "span.mw-headline" ).each( function () {    $( "div.mw-heading :header" ).each( function () {        var popup = null;        $( this ).after( " ", $( "<a>", { "class": "copy-section-link-pilcrow" } )                .text( "¶" )                .click( function () {                    if( popup === null ) {                        var hash = $( this ).prev().attr( "id" );                        var oldid = mw.util.getParamValue( "oldid" );                        var popupContent;                        function makeContent( pageName, id ) {                            var wikitext = (pageName + "#" + hash).replace( /_/g, " " );                            if( !window.copySectionLinkNoSquareBrackets ) {                               wikitext = '[[' + wikitext + ']]';                            }                            return $( '<p>', { "class": "copy-section-link-content" } ).append(                                $( "<code>", { "id": "copy-section-wikilink" + id } ).text( wikitext ),                                $( "<button>" )                                    .text( "Copy" )                                    .css( { "padding": "0.5em", "cursor": "pointer", "margin-left": "0.5em" } )                                    .click( function () {                                        var textField = $( this ).prev();                                        try {                                            navigator.clipboard.writeText( textField.text() );                                        } catch( e ) {                                            textField.select();                                            document.execCommand( "copy" );                                        }                                    } ),                                $( "<br>" ),                                $( "<a>" )                                .attr( "href", mw.util.getUrl( pageName ) + "#" + encodeURIComponent( hash ) )                                .text( "external" )                            );                        }                        var generalCss = { 'font-size': '0.9rem', 'font-family': 'sans-serif' };                        var index;                        if( oldid ) {                            popupContent = makeContent( "Special:Permalink/" + oldid );                            popupContent.css( generalCss );                            popupContent.css( { 'padding-top': '0.5em', 'font-weight': 'normal' } );                        } else {                            var normalPanel = new OO.ui.TabPanelLayout( 'normal', {                                label: 'Link',                                $content: makeContent( mw.config.get( 'wgPageName' ), 'normal' )                            } );                            var permalinkPanel = new OO.ui.TabPanelLayout( 'permalink', {                                label: 'Permalink',                                $content: makeContent( 'Special:Permalink/' + mw.config.get( 'wgCurRevisionId' ), 'permalink' )                            } );                            index = new OO.ui.IndexLayout();                            index.addTabPanels( [ normalPanel, permalinkPanel ] );                            popupContent = index.$element;                        }                        popup = new OO.ui.PopupWidget( {                            $content: popupContent,                            $floatableContainer: $( this ),                            padded: true,                            width: 400,                            height: 190,                            align: 'forwards',                        } );                        $( this ).after( popup.$element );                        if( index ) {                            index.$menu.find( 'span.oo-ui-labelElement-label' ).css( generalCss );                            index.$content.css( generalCss );                        }                        popup.toggle( true );                    } else {                        popup.toggle();                    }                } ) );    } );    mw.util.addCSS( "h2 .copy-section-link-pilcrow," +                    "h3 .copy-section-link-pilcrow," +                    "h4 .copy-section-link-pilcrow," +                    "h5 .copy-section-link-pilcrow," +                    "h6 .copy-section-link-pilcrow" +                        "{ display: none }" +                    "h2:hover .copy-section-link-pilcrow," +                    "h3:hover .copy-section-link-pilcrow," +                    "h4:hover .copy-section-link-pilcrow," +                    "h5:hover .copy-section-link-pilcrow," +                    "h6:hover .copy-section-link-pilcrow" +                        "{ display: inline }" );} );// </nowiki>