2006-11-08 21:43:36 +01:00
|
|
|
Feature idea: I'd like to be able to tag pages in an ikiwiki blog with a
|
|
|
|
publication date, and have the option of building a blog that excludes
|
|
|
|
publication dates in the future. (meta pubdate= ?)
|
2008-09-11 22:15:22 +02:00
|
|
|
|
2006-11-08 21:43:36 +01:00
|
|
|
I'm using ikiwiki on git for a "tip of the day" RSS feed, and I'd like to
|
|
|
|
be able to queue up a bunch of items instead of literally putting in one
|
|
|
|
tip per day. In the future I think this will come in handy for other
|
|
|
|
Mainstream Media-oriented requirements such as "embargo dates" and "editor
|
|
|
|
on vacation".
|
|
|
|
|
|
|
|
> The problem with implementing a feature like this is that, since ikwiiki
|
|
|
|
> is a wiki compiler, if something causes content to change based on the
|
|
|
|
> date, then the wiki needs to be rebuilt periodically. So you'd need a
|
|
|
|
> cron job or something.
|
2008-09-11 22:15:22 +02:00
|
|
|
>
|
|
|
|
> Thinking about this some more, if you're going to have a cron job, you
|
|
|
|
> could just set up a branch containing the future post. The branch could
|
|
|
|
> have a name like 20080911. Then have the cron job git merge the day's
|
|
|
|
> branch, if any, into master each day. And voila, post is completly hidden
|
|
|
|
> until published. You'd want to avoid merge conflicts in your cron job ..
|
|
|
|
> but they'd be unlikely if you limited yourself to just adding new
|
|
|
|
> pages. Alternatively, for larger organisations wishing to deploy more
|
|
|
|
> sweeping changes on a given date, replace cron job with intern.. ;-)
|
|
|
|
> --[[Joey]]
|
2008-09-12 14:50:13 +02:00
|
|
|
|
|
|
|
> > Good approach if you have one day on which a big change goes through, but
|
|
|
|
> > often the reason for tagging with a publication date is so that you can
|
|
|
|
> > dribble out articles one per day when you're gone for a week. Branches are easy
|
|
|
|
> > in git, but it would still be an extra step to switch branches every time
|
|
|
|
> > you edit a different day's article.
|
|
|
|
> >
|
|
|
|
> > And just to make it a little harder, some sites might want an internal
|
|
|
|
> > copy of the wiki that _does_ build the future pages, just tags them with the publication
|
|
|
|
> > date, for previewing.
|
2008-09-12 14:56:25 +02:00
|
|
|
> >
|
|
|
|
> > One more reason to have publication date: if you move a page from your old CMS to ikiwiki
|
|
|
|
> > and want to have it show up in the right order in RSS feeds.
|
2008-09-12 14:50:13 +02:00
|
|
|
> >
|
|
|
|
> > I no longer have the original wiki for which I wanted this feature, but I can
|
|
|
|
> > see using it on future ones. -- [[DonMarti]]
|
2009-12-28 19:14:54 +01:00
|
|
|
|
|
|
|
>>> FWIW, for the case where one wants to update a site offline,
|
|
|
|
>>> using an ikiwiki instance on a laptop, and include some deffered
|
|
|
|
>>> posts in the push, the ad-hoc cron job type approach will be annoying.
|
|
|
|
>>>
|
|
|
|
>>> In modern ikiwiki, I guess the way to accomplish this would be to
|
|
|
|
>>> add a pagespec that matches only pages posted in the present or past.
|
|
|
|
>>> Then a page can have its post date set to the future, using meta date,
|
|
|
|
>>> and only show up when its post date rolls around.
|
|
|
|
>>>
|
|
|
|
>>> Ikiwiki will need to somehow notice that a pagespec began matching
|
|
|
|
>>> a page it did not match previously, despite said page not actually
|
|
|
|
>>> changing. I'm not sure what the best way is.
|
|
|
|
>>>
|
|
|
|
>>> * One way could be to
|
|
|
|
>>> use a needsbuild hook and some stored data about which pagespecs
|
|
|
|
>>> exclude pages in the future. (But I'm not sure how evaluating the
|
|
|
|
>>> pagespec could lead to that metadata and hook being set up.)
|
|
|
|
>>> * Another way would be to use an explicit directive to delay a
|
|
|
|
>>> page being posted. Then the directive stores the metadata and
|
|
|
|
>>> sets up the needsbuild hook.
|
|
|
|
>>> * Another way would be for ikiwiki to remember the last
|
|
|
|
>>> time it ran. It could then easily find pages that have a post
|
|
|
|
>>> date after that time, and treat them the same as it treats actually
|
|
|
|
>>> modified files. Or a plugin could do this via a needsbuild hook,
|
|
|
|
>>> probably. (Only downside to this is it would probably need to do
|
|
|
|
>>> a O(n) walk of the list of pages -- but only running an integer
|
|
|
|
>>> compare per page.)
|
|
|
|
>>>
|
|
|
|
>>> You'd still need a cron job to run ikiwiki -refresh every hour, or
|
|
|
|
>>> whatever, so it can update. --[[Joey]]
|