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
|
* 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 {
|
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();
|
var $patterns = array();
|
||||||
|
|
||||||
function preConnect() {
|
function preConnect() {
|
||||||
|
@ -857,13 +857,13 @@ class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
|
||||||
$host = $ltrs.$punc;
|
$host = $ltrs.$punc;
|
||||||
$any = $ltrs.$gunk.$punc;
|
$any = $ltrs.$gunk.$punc;
|
||||||
|
|
||||||
|
$this->schemes = getSchemes();
|
||||||
foreach ( $this->schemes as $scheme ) {
|
foreach ( $this->schemes as $scheme ) {
|
||||||
$this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
$this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->patterns[] = '\b(?i)www?(?-i)\.['.$host.']+?\.['.$host.']+?['.$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.'])';
|
$this->patterns[] = '\b(?i)ftp?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function connectTo($mode) {
|
function connectTo($mode) {
|
||||||
|
|
Loading…
Reference in New Issue