aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/About___37__2F_problem.mdwn
blob: d4532571133e9a4478fe8d0de0c354be2b0ec3eb (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
I use inline to create a blog like the below:

    \[[!inline pages="./bugs/* and !./bugs/done and !./bugs/discussion and 
    !link(patch) and !link(./bugs/done) and !./bugs/*/*"
    actions=yes rootpage="./bugs" postform="yes" postformtext="请用一句话简述问题,然后点击 Edit 按钮添加具体细节" show=0]]


When I use posform to add a new page, it show:

> Error: bad page name 

Its url include a %2F, like below:

> http://172.16.0.109/ikiwiki.cgi?do=blog&from=.%2Fbugs&subpage=1&title=aaa

I use ikiwiki 3.20180311

----

I have found that it is not "%2F"'s problem, it just that inline directive can
not deal with Chinese char, the below link can work

    http://172.16.0.109/ikiwiki.cgi?do=blog&from=aaa%2Fbugs&subpage=1&title=aaa

---

> I don't think this is actually caused by the Chinese text. The problem is that
> you used `rootpage="./bugs"`, which leads to the `blog` request handler
> generating an invalid page name. If you change it to `rootpage="bugs"` does
> that fix the error?
>
> Ideally either the `inline` directive or the `blog` request handler would
> understand and remove `./`, if it's something that makes sense in this context.
> --[[smcv]]

---

> I have found the problem, it is inline plugin can not decode_utf8 "from", the below is patch:

    From f79dde20b275707f70df2d481919a079abec6c19 Mon Sep 17 00:00:00 2001
    From: Feng Shu <tumashu@163.com>
    Date: Sun, 2 Dec 2018 08:38:34 +0800
    Subject: [PATCH 1/2] Fix inline plugin can no set rootpage to a UTF-8 page
    
    ---
     IkiWiki/Plugin/inline.pm | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
    index a85cd5d2f..f40956821 100644
    --- a/IkiWiki/Plugin/inline.pm
    +++ b/IkiWiki/Plugin/inline.pm
    @@ -125,7 +125,7 @@ sub sessioncgi ($$) {
     			error(gettext("please enter a page title"));
     		}
     		# if the page already exists, munge it to be unique
    -		my $from=$q->param('from');
    +		my $from=decode_utf8($q->param('from'));
     		my $add="";
     		while (exists $IkiWiki::pagecase{lc($from."/".$page.$add)}) {
     			$add=1 unless length $add;
    -- 
    2.19.0
    
---

> [Request for clarification removed]
>
> I've now been able to reproduce this bug, and confirmed that your patch
> fixes it. [[Patch now applied|done]].
>
> (For other maintainers' reference: when testing Unicode bugs that
> relate to page titles, using Unicode that is considered to be
> punctuation, like ¬ or emoji, will probably not work; page titles
> treat `[:alnum:]` and `^[:alnum:]` differently.)
>
> In future bug reports it would be useful if you could provide a minimal
> example or test, perhaps on the [[sandbox]] on this wiki or as a unit
> test in `t/*.t` in the ikiwiki source code, that demonstrates this bug
> and would be fixed by the patch. If you've found multiple bugs, a
> separate example or test for each one would be easiest to deal with.
>
> You can run all the tests with:
>
>     ./Makefile.PL
>     make
>     make test
>
> or a single test with something like:
>
>     ./Makefile.PL
>     make
>     PERL5LIB=. ./t/git-cgi.t
>
> --[[smcv]]