Make recognized URL schemes customizable via conf/scheme.conf (FS#797)
darcs-hash:20081012155022-2b4f5-177571b9b176bb822015623b62b4d35b98a93d7b.gz
This commit is contained in:
parent
c55fac478d
commit
36f2d7c159
|
@ -0,0 +1,11 @@
|
|||
#Add URL schemes you want to be recognized as links here
|
||||
|
||||
http
|
||||
https
|
||||
telnet
|
||||
gopher
|
||||
wais
|
||||
ftp
|
||||
ed2k
|
||||
irc
|
||||
ldap
|
|
@ -132,6 +132,21 @@ function getWordblocks() {
|
|||
}
|
||||
|
||||
|
||||
function getSchemes() {
|
||||
static $schemes = NULL;
|
||||
if ( !$schemes ) {
|
||||
$schemes = file(DOKU_CONF.'scheme.conf');
|
||||
if (@file_exists(DOKU_CONF.'scheme.local.conf')) {
|
||||
$local = file(DOKU_CONF.'scheme.local.conf');
|
||||
$schemes = array_merge($schemes, $local);
|
||||
}
|
||||
}
|
||||
$schemes = array_map('trim', $schemes);
|
||||
$schemes = preg_replace('/^#.*/', '', $schemes);
|
||||
$schemes = array_filter($schemes);
|
||||
return $schemes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a hash from a configfile
|
||||
*
|
||||
|
|
|
@ -845,7 +845,7 @@ class Doku_Parser_Mode_rss extends Doku_Parser_Mode {
|
|||
|
||||
//-------------------------------------------------------------------
|
||||
class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
|
||||
var $schemes = array('http','https','telnet','gopher','wais','ftp','ed2k','irc','ldap');
|
||||
var $schemes = array();
|
||||
var $patterns = array();
|
||||
|
||||
function preConnect() {
|
||||
|
@ -857,13 +857,13 @@ class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
|
|||
$host = $ltrs.$punc;
|
||||
$any = $ltrs.$gunk.$punc;
|
||||
|
||||
$this->schemes = getSchemes();
|
||||
foreach ( $this->schemes as $scheme ) {
|
||||
$this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||
}
|
||||
|
||||
$this->patterns[] = '\b(?i)www?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||
$this->patterns[] = '\b(?i)ftp?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||
|
||||
}
|
||||
|
||||
function connectTo($mode) {
|
||||
|
|
Loading…
Reference in New Issue