[[!template id=gitbranch branch=GiuseppeBilotta/inlinestuff author="[[GiuseppeBilotta]]"]] 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. > Applied. --[[Joey]] >> Thanks. 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. > 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]] >> 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. >>> I did not mean to imply that I thought it safe. --[[Joey]] >>>> 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). >> 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. >>> RSS requires the `` 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]] >>>> 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). 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. > Applied. --[[Joey]] >> Thanks. 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. > 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]] >> Maybe something that sanitizes the config value would be better instead? >> What is the policy about automatic changing user config? >>> It's impossible to do for perl-format setup files. --[[Joey]] >>>> 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. 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. > 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]] >> 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.