two problems

master
Joey Hess 2009-04-22 16:12:54 -04:00
parent 5e1b3c0c36
commit 86d6b40070
1 changed files with 22 additions and 5 deletions

View File

@ -43,8 +43,25 @@ NicolasLimare
> could just be dumped into the page by the pagetemplate hook. Current code > could just be dumped into the page by the pagetemplate hook. Current code
> re-loads and renders the same sidebar file for every page built! > re-loads and renders the same sidebar file for every page built!
> >
> The sticky part is relative links on the sidebar. These would need to > The sticky part is (relative) links on the sidebar. These would need to
> be modified somehow depending on the page that the sidebar is placed on. > be modified somehow depending on the page that the sidebar is placed on,
> Doing that seems hard/tricky. Maybe it would not be worth the optimisation > to not break the link.
> of using the stored rendering after all, and instead still re-render it for >
> each page? --[[Joey]] > Another wrinkle is changing subpage links on a sidebar. Suppose a sidebar
> links to page `foo`. If page `bar/foo` exists, the sidebar on page bar will,
> currently, link to that page, in preference to a toplevel `foo`.
> If `bar/foo` is removed, it will update to link to `foo`. With the new
> scheme, the stored sidebar rendering is not for page `foo`, and so
> the change of the `bar/foo` link will not be noticed or acted on.
> Granted, it's unlikely that anyone relies on the current behavior. You
> generally want links on a sidebar to link to the same place on every page
> that displays it. So finding some way to force all links on a sidebar to
> be handled absolutely and documenting that would avoid this problem.
>
> So, one way to handle both the above problems would be to use the
> pre-rendered sidebar for each page, but use a html parser to look for
> links in it, and munge them to work as relative links on the page the
> sidebar is being added to. Or, if the wiki's url is known, just do this
> once when rendering the sidebar, adding the full url to the links.
> (Maybe require `url` be set when using sidebar?)
> --[[Joey]]