Fediverse Links, Update

Da WordPress halt @ username Sachen verhunzt. Hier ist das PHP Script zum Downloaden.

Dank @emaechler wäre der Bug im Explanation Text gefixed. Dann habe ich aber @carstingaxion noch einmal überdacht, und ich denke, er hat recht: Man braucht das fl: gar nicht. Das Pattern @ username @ server.tld (ohne Lehrzeichen) ist ausreichend spezifisch, denke ich.

Also ist hier Version 1.1:

<?php
/*
Plugin Name: Fediverse Linker
Description: Converts a Fediverse username into a link.
Version: 1.1
Changes: Changed the prefix to ⁂ (U+2642) and added a target="_blank" to the links, do not require fl: anymore.
Author: Mikka Luster
*/

function fediverse_linker($content) {
    $pattern = '/(?:fl:)?@(\w+)@([\w.-]+\.[a-z]{2,})/i';
    $replacement = '⁂ <a class="fedilink" target="_blank" href="https://$2/@$1">@$1</a>';
    
    return preg_replace($pattern, $replacement, $content);
}

// Add explanation above comment form
function fediverse_linker_explanation() {
    echo '<p class="fediverse-linker-info">Du kannst auf Fediverse-Profile verlinken, indem du  @benutzername in deinem Kommentar eingibst.</p>';
}

add_filter('the_content', 'fediverse_linker');
add_filter('comment_text', 'fediverse_linker');
add_action('comment_form_top', 'fediverse_linker_explanation');

Zur Rückwärtskompatibilität ist das fl: immer noch möglich, aber nicht mehr nötig.

Außerdem habe ich ein _target=blank (danke @emaechler) in den Link reingenommen, und das Fediverse-Icon (⁂) vor Links angestellt, damit man auch weiß, was dann passiert. Man könnte das auch mit der class=fedilink“ im CSS mit einem before: oder after: stylen, dann nimm das Zeichen einfach raus und mach das so.

Sorry, Eric, musst Du Dein Blogpost anpassen 😛

Mikka
Mikka
Ultrahiker und Ultra-Light Hiker. Technopilger, T1D, Mediziner. Was sonst?

1 Kommentar

Hinterlasse einen Kommentar.

Du kannst auf Fediverse-Profile verlinken, indem du @benutzername@server.tld in deinem Kommentar eingibst.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert