2012-05-10 18:42:21 +02:00
|
|
|
|
[[!template id=gitbranch branch=GiuseppeBilotta/inlinestuff author="[[GiuseppeBilotta]]"]]
|
2011-01-04 15:40:30 +01:00
|
|
|
|
|
2011-01-25 22:24:32 +01:00
|
|
|
|
I rearranged my patchset once again, to clearly identify the origin and
|
|
|
|
|
motivation of each patch, which is explained in the following.
|
|
|
|
|
|
|
|
|
|
In my ikiwiki-based website I have the following situation:
|
|
|
|
|
|
|
|
|
|
* `$config{usedirs}` is 1
|
|
|
|
|
* there are a number of subdirectories (A/, B/, C/, etc)
|
|
|
|
|
with pages under each of them (A/page1, A/page2, B/page3, etc)
|
|
|
|
|
* 'index pages' for each subdirectory: A.mdwn, B.mdwn, C.mdwn;
|
|
|
|
|
these are rather barebone, only contain an inline directive for their
|
|
|
|
|
respective subpages and become A/index.html, etc
|
|
|
|
|
* there is also the main index.mdwn, which inlines A.mdwn, B.mdwn, C.mdwn,
|
|
|
|
|
etc (i.e. the top-level index files are also inlined on the homepage)
|
|
|
|
|
|
|
|
|
|
With the upstream `inline` plugin, the feeds for A, B, C etc are located
|
|
|
|
|
in `A/index.atom`, `B/index.atom`, etc; their title is the wiki name and
|
|
|
|
|
their main link goes to the wiki homepage rather than to their
|
|
|
|
|
respective subdir (e.g. I would expect `A/index.atom` to have a link to
|
|
|
|
|
`http://website/A` but it actually points to `http://website/`).
|
|
|
|
|
|
|
|
|
|
This is due to them being generated from the main index page, and is
|
|
|
|
|
fixed by the first patch: ‘inline: base feed urls on included page
|
|
|
|
|
name’. As explained in the commit message for the patch itself, this is
|
|
|
|
|
a ‘forgotten part’ from a previous page vs destpage fix which has
|
|
|
|
|
already been included upstream.
|
|
|
|
|
|
2011-02-22 22:25:53 +01:00
|
|
|
|
> Applied. --[[Joey]]
|
|
|
|
|
|
2011-02-22 23:20:35 +01:00
|
|
|
|
>> Thanks.
|
|
|
|
|
|
2011-01-25 22:24:32 +01:00
|
|
|
|
The second patch, ‘inline: improve feed title and description
|
|
|
|
|
management’, aligns feed title and description management by introducing
|
|
|
|
|
a `title` option to complement `description`, and by basing the
|
|
|
|
|
description on the page description if the entry is missing. If no
|
|
|
|
|
description is provided by either the directive parameter or the page
|
|
|
|
|
metadata, we use a user-configurable default based on both the page
|
|
|
|
|
title and wiki name rather than hard-coding the wiki name as description.
|
|
|
|
|
|
2011-02-22 22:32:01 +01:00
|
|
|
|
> Reviewing, this seems ok, but I don't like that
|
|
|
|
|
> `feed_desc_fmt` is "safe => 0". And I question if that needs
|
|
|
|
|
> to be configurable at all. I say, drop that configurable, and
|
|
|
|
|
> only use the page meta description (or wikiname for index).
|
|
|
|
|
>
|
|
|
|
|
> Oh, and could you indent your `elsif` the same as I? --[[Joey]]
|
|
|
|
|
|
2011-02-22 23:20:35 +01:00
|
|
|
|
>> I hadn't even realized that I was nesting ifs inside else clauses,
|
|
|
|
|
>> sorry. I think you're also right about the safety of the key, after
|
|
|
|
|
>> all it only gets interpolated with known, safe strings.
|
|
|
|
|
|
2011-02-25 22:15:35 +01:00
|
|
|
|
>>> I did not mean to imply that I thought it safe. --[[Joey]]
|
|
|
|
|
|
2011-02-28 16:29:12 +01:00
|
|
|
|
>>>> Sorry for assuming you implied that. I do think it is safe, though
|
|
|
|
|
>>>> (I defaulted to not safe just to err on the safe side).
|
|
|
|
|
|
2011-02-22 23:20:35 +01:00
|
|
|
|
>> The question is what to do for pages that do not have a description
|
|
|
|
|
>> (and are not the index). With your proposal, the Atom feed subtitle
|
|
|
|
|
>> would turn up empty. We could make it conditional in the default
|
|
|
|
|
>> template, or we could have `$desc` default to `$title` if nothing
|
|
|
|
|
>> else is provided, but at this point I see no reason to _not_ allow
|
|
|
|
|
>> the user to choose a way to build a default description.
|
|
|
|
|
|
2011-02-25 22:15:35 +01:00
|
|
|
|
>>> RSS requires the `<description>` element be present, it can't
|
|
|
|
|
>>> be conditionalized away. But I see no reason to add the complexity
|
|
|
|
|
>>> of an option to configure a default value for a field that
|
|
|
|
|
>>> few RSS consumers likely even use. That's about 3 levels below useful.
|
|
|
|
|
>>> --[[Joey]]
|
|
|
|
|
|
2011-02-28 16:29:12 +01:00
|
|
|
|
>>>> The way I see it, there are three possibilities for non-index pages
|
|
|
|
|
>>>> which have no description meta: (1) we leave the
|
|
|
|
|
>>>> description/subtitle in feed blank, per your current proposal here
|
|
|
|
|
>>>> (2) we hard-code some string to put there and (3) we make the
|
|
|
|
|
>>>> string to put there configurable. Honestly, I think option #1 sucks
|
|
|
|
|
>>>> aesthetically and option #2 is conceptually wrong (I'm against
|
|
|
|
|
>>>> hard-coding stuff in general), which leaves option #3: however
|
|
|
|
|
>>>> rarely used it would be, I still think it'd be better than #2 and
|
|
|
|
|
>>>> less unaesthetical than #1.
|
|
|
|
|
|
|
|
|
|
>>>> I'm also not sure what's ‘complex’ about having such an option:
|
|
|
|
|
>>>> it's definitely not going to get much use, but does it hurt to have
|
|
|
|
|
>>>> it? I could understand not wasting time putting it in, but since
|
|
|
|
|
>>>> the code is written already … (but then again I'm known for being a
|
|
|
|
|
>>>> guy who loves options).
|
|
|
|
|
|
2011-01-25 22:24:32 +01:00
|
|
|
|
The third patch, ‘inline: allow assigning an id to postform/feedlink’,
|
|
|
|
|
does just that. I don't currently use it, but it can be particularly
|
|
|
|
|
useful in the postform case for example for scriptable management of
|
|
|
|
|
multiple postforms in the same page.
|
|
|
|
|
|
2011-02-22 22:34:19 +01:00
|
|
|
|
> Applied. --[[Joey]]
|
|
|
|
|
|
2011-02-22 23:20:35 +01:00
|
|
|
|
>> Thanks.
|
|
|
|
|
|
2011-01-25 22:24:32 +01:00
|
|
|
|
In one of my wiki setups I had a terminating '/' in `$config{url}`. You
|
|
|
|
|
mention that it should not be present, but I have not seen this
|
|
|
|
|
requirement described anywhere. Rather than restricting the user input,
|
|
|
|
|
I propose a patch that prevents double slashes from appearing in links
|
|
|
|
|
created by `urlto()` by fixing the routine itself.
|
|
|
|
|
|
2011-02-22 22:37:38 +01:00
|
|
|
|
> If this is fixed I would rather not put the overhead of fixing it in
|
|
|
|
|
> every call to `urlto`. And I'm not sure this is a comprehensive
|
|
|
|
|
> fix to every problem a trailing slash in the url could cause. --[[Joey]]
|
|
|
|
|
|
2011-02-22 23:20:35 +01:00
|
|
|
|
>> Maybe something that sanitizes the config value would be better instead?
|
|
|
|
|
>> What is the policy about automatic changing user config?
|
|
|
|
|
|
2011-02-25 22:15:35 +01:00
|
|
|
|
>>> It's impossible to do for perl-format setup files. --[[Joey]]
|
|
|
|
|
|
2011-02-28 16:29:12 +01:00
|
|
|
|
>>>> Ok. In that case I think that we should document that it must be
|
|
|
|
|
>>>> slash-less. I'll cook up a patch in that sense.
|
|
|
|
|
|
2011-01-25 22:24:32 +01:00
|
|
|
|
The inline plugin is also updated (in a separate patch) to use `urlto()`
|
|
|
|
|
rather than hand-coding the feed urls. You might want to keep this
|
|
|
|
|
change even if you discard the urlto patch.
|
2011-01-14 22:42:54 +01:00
|
|
|
|
|
2011-02-22 22:37:38 +01:00
|
|
|
|
> IIRC, I was missing a proof that this always resulted in identical urls,
|
|
|
|
|
> which is necessary to prevent flooding. I need such a proof before I can
|
|
|
|
|
> apply that. --[[Joey]]
|
2011-02-22 23:20:35 +01:00
|
|
|
|
|
|
|
|
|
>> Well, the URL would obviously change if the `$config{url}` ended in
|
|
|
|
|
>> slash and the `urlto` patch (or other equivalent) went into effect.
|
|
|
|
|
|
|
|
|
|
>> Aside from that, if I read the code correctly, the only other extra
|
|
|
|
|
>> thing that `urlto` does is to `beautify_url_path` the `"/".$to` part,
|
|
|
|
|
>> and the only way this would cause the url to be altered is if the
|
|
|
|
|
>> feed name was "index" (which can easily happen) and
|
|
|
|
|
>> `$config{htmlext}` was set to something like `.rss` or
|
|
|
|
|
>> `.rss.1`.
|
|
|
|
|
|
|
|
|
|
>> So there is a remote possibility that a different URL would be
|
|
|
|
|
>> produced.
|