ikiwiki/doc/bugs/permalink_not_set_for_comme...

44 lines
1.5 KiB
Markdown

Changes to comments result in notifyemail sending emails with broken urls like
"http://whatever/foo/comment_1_10a49d69282155c5c3e66dc58f64f956/"
notifyemail uses meta permalink if set, so it must not be set for comment
pages.
In the comments plugin, there's this code, which is supposed to set
permalink:
if ($params{page} =~ m/\/\Q$config{comments_pagename}\E\d+_/) {
$pagestate{$page}{meta}{permalink} = urlto(IkiWiki::dirname($params{page})).
"#".page_to_id($params{page});
}
`comments_pagename` is `comment_` so the above code needs a comment page to contain
two underscores. I think that is the root of the bug. --[[Joey]]
> Removed the trailing underscore in the regexp, so it should be fixed,
> though I have not tested the fix. Leaving this bug open until it's
> confirmed fixed. (I deployed it to branchable.)
>
> This will only fix the stored permalink metadata for a comment when its get
> preprocessed again, not immediately. That's ok for notifyemail,
> but other uses of permalink might need a wiki rebuild to get the bug fix.
> --[[Joey]]
>
>> I'm not sure that I see how the regexp was wrong? It's looking for,
>> for example,
>>
>> foo/comment_1_eaab671848ee6129f6fe9399474eeac0._comment
>> sccccccccdu
>>
>> where
>>
>> * *s* marks the literal `/`
>> * *cccc* marks `comments_pagename`
>> * *d* marks `\d+` (one or more digits)
>> * *u* marks the literal `_`
>>
>> The old regexp would have failed for the older format
>> `foo/comment_1._comment`, though.
>>
>> --[[smcv]]