aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/transient_autocreated_tagbase_is_not_transient_autoindexed.mdwn
blob: a52b31c252dc23747ee5fab87c45f1f0332eb607 (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
    mkdir -p ikiwiki-tag-test/raw/a_dir/ ikiwiki-tag-test/rendered/
    echo '\[[!taglink a_tag]]' > ikiwiki-tag-test/raw/a_dir/a_page.mdwn
    ikiwiki --verbose --plugin tag --plugin autoindex --plugin mdwn --set autoindex_commit=0 --set tagbase=tag --set tag_autocreate=1 --set tag_autocreate_commit=0 ikiwiki-tag-test/raw/ ikiwiki-tag-test/rendered/
    ls -al ikiwiki-tag-test/raw/.ikiwiki/transient/
    ls -al ikiwiki-tag-test/rendered/tag/

Shouldn't `ikiwiki-tag-test/raw/.ikiwiki/transient/tag.mdwn` and `ikiwiki-tag-test/rendered/tag/index.html` exist?

[[!tag patch users/smcv/ready]]
[[!template id=gitbranch branch=smcv/ready/autoindex author=smcv
  browse=http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/autoindex]]
[[!template id=gitbranch branch=smcv/ready/autoindex-more-often author=smcv
  browse=http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/autoindex-more-often]]

> To have a starting point to (maybe) change this, my `ready/autoindex`
> branch adds a regression test for the current behaviour, both with
> and without `autoindex_commit` enabled. It also fixes an unnecessary
> and potentially harmful special case for the transient directory.
>
> The fact that files in underlays (including transient files) don't
> trigger autoindexing is deliberate. However, this is the second
> request to change this behaviour: the first was
> [[!debbug 611068]], which has a patch from Tuomas Jormola.
> On that bug report, Joey explains why it's undesirable
> for the original behaviour of autoindex (when the
> index isn't transient).
>
> I'm not sure whether the same reasoning still applies when the
> index is transient, though (`autoindex_commit => 0`),
> because the index pages won't be cluttering up people's
> git repositories any more? My `autoindex-more` branch changes
> the logic so it will do what you want in the `autoindex_commit => 0`
> case, and amends the appropriate regression test. --[[smcv]]

>> the autoindex-more-often branch looks good to me in general.
>>
>> i do have doubts about the 3ba2ef1a patch ("remove unnecessary special case
>> for transient underlay"): now that we consider the complete transient
>> directory as well, the sequence in which the refresh hooks are called starts
>> to matter, and pages created by other plugins in a similar fashion as by
>> autoindex will only be included the next time refresh gets called.
>>
>> *addendum:* i just found where i discussed the issue of fighting transient
>> pages last, it was on [[todo/alias directive]]. the example cited there
>> (conflicts with autotag) would probably work here as well. (imagine a
>> `tags/project/completed` and a `tags/project/inprogress` exist, and a page
>> is tagge `tags/project`. will that be an autoindex or an autotag?)
>>
>> --[[chrysn]]

>>> That's a fair point. I think what happens is down to commit vs. refresh
>>> timing.
>>>
>>> If pages tagged t/p/c, t/p/i and t/p are all created between one
>>> refresh and the next, with none of those tag pages existing, I think the
>>> answer is that they would all be autotags, because until t/p/c and
>>> t/p/i are created, there's no reason to need t/p as an autoindex.
>>>
>>> If there were already pages tagged t/p/c and t/p/i at the previous
>>> refresh, then t/p would already be an autoindex, and that's a
>>> valid page, so autotagging wouldn't touch it.
>>>
>>> I can't see much reason to prefer one over the other; the ideal answer
>>> is probably to have a tag-cloud *and* a list of child pages, but this
>>> seems a weird enough thing to do that I'd be OK with a wiki user
>>> having to disambiguate it themselves. "Whichever automatic process
>>> happens first, happens" is at least easy to explain, and I consider
>>> both autoindices and autotags to be time-saving conveniences rather
>>> than something fundamental. --s

>>>> i think a behavior that does the right thing when there is a right thing
>>>> and *something* when there is ambiguity is ok for now; especially, it's
>>>> not up to the autoindex branch to come up with a solution to the general
>>>> problem. --[[chrysn]]

>>>>> [[Merged|done]] --[[smcv]]