Mon plugin : LinkId

Inspiré du plugin anchor

Permet de faire des liens sur des parties du document autres que les titres. Compatible html 5 puisqu'utilise les “id” au lieu de “a name”.

Utilisation

Lien vers lequel on veut aller :

{{linkid:debut_linkid:Par ici la bonne soupe !}}

Lien normal pour y accéder :

[[#debut_linkid|lien vers la soupe]]

Code

A mettre dans : lib/plugins/anchor/syntax.php

lib/plugins/anchor/syntax.php
<?php
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');  
 
class syntax_plugin_linkid extends DokuWiki_Syntax_Plugin {
    function getType() {return 'substition';}
    function getPType() {return 'block';}
    function getSort() {return 167;}
    function getInfo() {return array('author' => 'Taka Strophe', 'name' => 'LinkId Plugin', 'url' => 'http://hungryworlds.fr');}
    function connectTo($mode){
        $this->Lexer->addSpecialPattern('\{\{linkid:[^}]*\}\}', $mode, 'plugin_linkid');
    }
 
    function handle($match, $state, $pos, &$handler) {
        return explode(':', substr($match, strlen('{{linkid:'), -2));
    }
 
    function render($mode, &$renderer, $data) {
        $renderer->doc .= '<span id="' .htmlspecialchars($data[0]) . '">' .htmlspecialchars($data[1]) . '</span>';
    }
}
?>

A ajouter aussi dans lib/plugins/anchor :

plugin.info.txt
base   linkid
author Taka Strophe
date   2016-07-12
name   LinkId Plugin
desc   Allow to add span id, to be able to link to any text in html 5
url    http://hungryworlds.fr
plugins/linkid.txt · Last modified: 2016/07/12 18:11 by admin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki