Merge pull request #2433 from splitbrain/issue2399
Fixed broken link rendering for external links at start of line
This commit is contained in:
commit
206d3a69f5
|
@ -153,6 +153,35 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
|
||||||
$this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
|
$this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testExternalWWWLinkStartOfLine() {
|
||||||
|
// Regression test for issue #2399
|
||||||
|
$calls = array (
|
||||||
|
array('document_start',array()),
|
||||||
|
array('p_open',array()),
|
||||||
|
array('externallink',array('http://www.google.com', 'www.google.com')),
|
||||||
|
array('cdata',array(' Bar')),
|
||||||
|
array('p_close',array()),
|
||||||
|
array('document_end',array()),
|
||||||
|
);
|
||||||
|
$instructions = p_get_instructions("www.google.com Bar");
|
||||||
|
$this->assertEquals(array_map('stripByteIndex',$instructions),$calls);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testExternalWWWLinkInRoundBrackets() {
|
||||||
|
$this->P->addMode('externallink',new ExternalLink());
|
||||||
|
$this->P->parse("Foo (www.google.com) Bar");
|
||||||
|
$calls = array (
|
||||||
|
array('document_start',array()),
|
||||||
|
array('p_open',array()),
|
||||||
|
array('cdata',array("\n".'Foo (')),
|
||||||
|
array('externallink',array('http://www.google.com', 'www.google.com')),
|
||||||
|
array('cdata',array(') Bar')),
|
||||||
|
array('p_close',array()),
|
||||||
|
array('document_end',array()),
|
||||||
|
);
|
||||||
|
$this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
|
||||||
|
}
|
||||||
|
|
||||||
function testExternalWWWLinkInPath() {
|
function testExternalWWWLinkInPath() {
|
||||||
$this->P->addMode('externallink',new Externallink());
|
$this->P->addMode('externallink',new Externallink());
|
||||||
// See issue #936. Should NOT generate a link!
|
// See issue #936. Should NOT generate a link!
|
||||||
|
|
|
@ -23,8 +23,10 @@ class Externallink extends AbstractMode
|
||||||
$this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
$this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->patterns[] = '(?<=\s)(?i)www?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
$this->patterns[] = '(?<![/\\\\])\b(?i)www?(?-i)\.['.$host.']+?\.'.
|
||||||
$this->patterns[] = '(?<=\s)(?i)ftp?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
'['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||||
|
$this->patterns[] = '(?<![/\\\\])\b(?i)ftp?(?-i)\.['.$host.']+?\.'.
|
||||||
|
'['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @inheritdoc */
|
/** @inheritdoc */
|
||||||
|
|
Loading…
Reference in New Issue