|
|
| Line 22: |
Line 22: |
| } | | } |
| }); | | }); |
| });
| |
|
| |
| mw.loader.using(['jquery'], function() {
| |
| // Listen for new nodes being added to the document
| |
| $(document).on('DOMNodeInserted', function(e) {
| |
| // Check if the inserted node is a Leaflet popup content element.
| |
| if ($(e.target).hasClass('leaflet-popup-content')) {
| |
| processPopup($(e.target));
| |
| }
| |
| });
| |
|
| |
| function processPopup($popup) {
| |
| var content = $popup.html();
| |
| // Replace all instances of Wiki-link syntax [[Page Name]] with an HTML link.
| |
| var newContent = content.replace(/\[\[([^\]]+)\]\]/g, function(match, p1) {
| |
| // Convert spaces to underscores (as is common in wiki URLs)
| |
| var pageName = p1.replace(/ /g, '_');
| |
| return '<a href="/' + encodeURIComponent(pageName) + '" target="_blank">' + p1 + '</a>';
| |
| });
| |
| $popup.html(newContent);
| |
|
| |
| // Additionally, if the title is in a <strong> tag, convert it to a clickable link.
| |
| $popup.find('strong').each(function() {
| |
| var titleText = $(this).text();
| |
| // If it’s not already a link, wrap it in an anchor.
| |
| if ($(this).find('a').length === 0) {
| |
| var link = $('<a>')
| |
| .attr('href', '/wiki/' + encodeURIComponent(titleText.replace(/ /g, '_')))
| |
| .attr('target', '_blank')
| |
| .text(titleText);
| |
| $(this).html(link);
| |
| }
| |
| });
| |
| }
| |
| }); | | }); |