aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/permalink_not_set_for_comments.mdwn
blob: d41da9c354efd87dc5408b47d364c14cdcd1c365 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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]]