- diff --git IkiWiki/Plugin/link.pm IkiWiki/Plugin/link.pm
- index 1ba28eafd..27427b183 100644
- --- IkiWiki/Plugin/link.pm
- +++ IkiWiki/Plugin/link.pm
+ diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm
+ index 1ba28eafd..61a397bf8 100644
+ --- a/IkiWiki/Plugin/link.pm
+ +++ b/IkiWiki/Plugin/link.pm
@@ -107,7 +107,13 @@ sub linkify (@) {
my $page=$params{page};
my $destpage=$params{destpage};
- - $params{content} =~ s{(\\?)$link_regexp}{
+ - $params{content} =~ s{(\\?)$link_regexp}{
+ my $content;
+ for my $line ( split /\n/, $params{content} ) {
+ if ( $line =~ /^(?:\t| )/ ) {
@@ -122,8 +128,10 @@ sub linkify (@) {
: htmllink($page, $destpage, linkpage($3),
anchor => $4))
- }eg;
+ }eg;
+ $content .= $line . "\n";
+ }
- - return $params{content};
- + return $content;
+ - return $params{content};
+ + return $content;
}
sub scan (@) {
Related to [[bugs/wiki links still processed inside code blocks]] and [[forum/How_to_format___91____91__foobar__93____93___in_code_blocks__63__]].
[[!tag patch]]
+
+> It looks as though this patch would break linkification in any syntactic construct that
+> uses indentation but isn't a code block, for instance a list:
+>
+> * This is a list
+> * So is this
+> * And \[[this is a link|http://example.com]]
+>
+> rendered as:
+>
+> * This is a list
+> * So is this
+> * And [[this is a link|http://example.com]]
+>
+> It's also assuming that Markdown is the only language available (trying to use Markdown
+> rules), and even in Markdown it doesn't support Github-style fenced code blocks if enabled.
+>
+> This is not something that can be done correctly by just patching the link plugin.
+> I'm not sure whether it's something that can be done correctly at all, unfortunately.
+>
+> [[!tag reviewed]] --[[smcv]]