Merge branch 'master' of ssh://git.ikiwiki.info

master
Joey Hess 2014-02-23 14:05:36 -04:00
commit 278036ef45
22 changed files with 244 additions and 10 deletions

View File

@ -0,0 +1,16 @@
[[!template id=gitbranch branch=smcv/ready/git-push-origin-master
browse="http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/git-push-origin-master"
author="[[smcv]]"]]
[[!tag patch]]
git's behaviour when doing "git push origin" is configurable, and the
default is going to change in 2.0. In particular, if you've set
push.default to "nothing" (the "explicit is better than implicit" option),
the regression test will warn:
fatal: You didn't specify any refspecs to push, and push.default
is "nothing".
'git push origin' failed: at .../lib/IkiWiki/Plugin/git.pm line 220.
The solution is to do "git push origin master" instead (but with the
configured remote and branch names). --[[smcv]]

View File

@ -55,3 +55,20 @@ Weird... --[[anarcat]]
> > I have a stupid [[patch]] in my git repo which just appends a semicolon to the `::magic()` output, but maybe this should be done in another way...
> >
> > --[[anarcat]]
> > > If the regex match isn't necessary and it's just about deleting the
> > > parameters, I think I'd prefer something like
> > >
> > > if (! defined $mimetype) {
> > > ...
> > > }
> > > $mimetype =~ s/;.*//;
> > >
> > > but I'd be hesitant to do that without knowing why Joey implemented it
> > > the way it is. If it's about catching a result from file(1) that
> > > is not, in fact, a MIME type at all (empty string or error message
> > > or something), maybe something more like this?
> > >
> > > if (! defined $mimetype || $mimetype !~ s{[-\w]+/[-\w]+(?:;.*)?}{})
> > >
> > > (or whatever the allowed characters in MIME types are). --[[smcv]]

View File

@ -65,3 +65,6 @@ error: ikiwiki failed
> > > Right, I know that. The trick is to find the rabbit hole. :P
> > >
> > > And I found it. With my dev/proxy-utf8-fail, this doesn't fail anymore. Yay, a [[patch]] ready for commit! --[[anarcat]]
> > > > I don't see that branch in your git repo, could you repost it please?
> > > > (I'm trying to review some of the pending patches.) --[[smcv]]

View File

@ -0,0 +1,17 @@
On this wiki, editing `templates/gitbranch.mdwn` causes a really slow
refresh, orders of magnitude slower than a full rebuild: a large number of
pages depend on that template, or link to a page that embeds that template,
and so on.
I suspect that, as with my optimization pass for `album`'s benefit, the
costly thing is evaluating lots of pagespecs. I'm profiling it to see
whether the problem is there are any low-hanging fruit.
Easy to reproduce offline:
* comment out the `exclude` option in `docwiki.setup`
* `/usr/bin/perl -Iblib/lib ikiwiki.in -setup docwiki.setup -rebuild`
* `touch templates/gitbranch.mdwn`
* `/usr/bin/perl -Iblib/lib ikiwiki.in -setup docwiki.setup -refresh`
--[[smcv]]

View File

@ -0,0 +1,27 @@
[[!template id=gitbranch branch=smcv/ready/careful-eval author="[[smcv]]"
browse="http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/careful-eval"]]
[[!tag patch]]
As noted in the [[!cpan Try::Tiny]] man page, eval/$@ can be quite
awkward in corner cases, because $@ has the same properties and problems
as C's errno. While writing a regression test for definetemplate
in which it couldn't find an appropriate template, I received
<span class="error">Error: failed to process template
<span class="createlink">deftmpl</span> </span>
instead of the intended
<span class="error">Error: failed to process template
<span class="createlink">deftmpl</span> template deftmpl not
found</span>
which turned out to be because the "catch"-analogous block called
gettext before it used $@, and gettext can call define_gettext,
which uses eval.
Fixed in my branch smcv/ready/careful-eval. Another possibility
for fixing this would be to depend on something like Try::Tiny,
which is already indirectly recommended by ikiwiki, because
[[!cpan RPC::XML]], [[!cpan XML::Feed]], etc., depend on it.
--[[smcv]]

View File

@ -34,4 +34,63 @@ The [[ikiwiki/directive/listdirectives]]` directive doesn't register a link betw
> --[[smcv]]
> No follow-up or objection for a while, so considering this to
> be [[working as designed|done]]. --[[smcv]]
> be working as designed. --[[smcv]]
> > Seems I'm a bit late to butt in, but would it be possible to have two
> > further phases after the scan phase, the first running map and inline
> > and the second orphan? Then map and inline could log or register their
> > links (obviously somewhere were it won't change the result of the link function)
> > and orphan could take them into account. This logging could be
> > turned on by parameter to not waste time for users not needing this and
> > make it tunable (i.e. so that the user can decide which map directives count and which don't)
> >
> > For someone using map and especially autoindex the output of the orphans directive
> > is simply wrong/useless (at least it is for me). And there is no easy workaround like for listdirectives
> > -- [[holger]]
>>> Hmm. I think this can be done without introducing any "phases",
>>> even, but it would require each plugin that generates links according
>>> to a pagespec to have either a conditional call into the orphans plugin,
>>> or a call to a new core function in ikiwiki that exists solely to
>>> support the orphans plugin. Something like this, maybe:
>>>
>>> # in map.pm, inline.pm, pagestats.pm etc., at scan time
>>> if (IkiWiki::Plugin::orphans->can("add_reachable")) {
>>> IkiWiki::Plugin::orphans::add_reachable($page, $pagespec);
>>> }
>>>
>>> # in orphans.pm (pseudocode; note that this does not *evaluate*
>>> # $pagespec, only stores it, so it's OK to do this at scan time)
>>> sub needsbuild ($pages)
>>> for each page in $pages
>>> clear $pagestate{location}{orphans}{reachable}
>>> sub reachable ($location, $pagespec)
>>> add $pagespec to @{$pagestate{location}{orphans}{reachable}}
>>>
>>> # in preprocess function in orphans.pm (pseudocode)
>>> # executed at build time, not at scan time, so pagespecs work
>>>
>>> for each maybe_orphan with no links to it
>>> for each location with a list of reachable pagespecs
>>> make the page with the orphans directive depend on \
>>> the page that is the location
>>> for each of those pagespecs
>>> if pagespec matches orphan
>>> take orphan off the list
>>> go to next orphan
>>> output list of orphans
>>>
>>> (Maybe parentlinks should also annotate the parent/ancestors of
>>> each page as reachable from that page.)
>>>
>>> Do other people (mainly Joey) think that'd be acceptable, or
>>> too intrusive?
>>>
>>> Taking this off the list of resolved bugs again while we think about it.
>>>
>>> I suspect that in the presence of autoindex, what you really want might
>>> be less "there's a link to it" and more "there's a path to it from
>>> the root of the wiki", which is why I called the proposed function
>>> "add_reachable". On the other hand, maybe that's too computationally
>>> intensive to actually do; I haven't tried it.
>>> --[[smcv]]

View File

@ -14,3 +14,6 @@ Maybe just encode all &lt; and &gt; when compling pages within the templates fol
> I never noticed this bug, since it only happens if the htmlscrubber is
> disabled. --[[Joey]]
>> My `templatebody` branch on [[template creation error]] fixes this.
>> --[[smcv]]

View File

@ -17,3 +17,5 @@ index 75c9579..ad0f8b0 100644
</pre></code>
[[!tag patch]]
> [[Seems reasonable|users/smcv/yesplease]] --smcv

View File

@ -21,3 +21,5 @@ Yet I am not sure how to fix that kind of problem in Perl... --[[anarcat]]
> I have improved a little the error handling in log_message() so that we see *something* when syslog fails, see the branch documented above. I can also confirm that reverting [[todo/syslog_should_show_wiki_name]] fixes the bug. Finally, I have a unit test that reproduces the problem in git, and a working [[!taglink patch]] for the bug, again in git.
>
> > One last note: I noticed that this problem also happens elsewhere in ikiwiki. For example, the [[plugins/notifyemail]] plugin will silently fail to send notifications if the pages contain unicode. The [[plugins/notifychanges]] plugin I am working on (in [[todo/option to send only the diff in notifyemail]]) seems to be working around the issue so far, but there's no telling which similar problem are out there.
>> [[I'd merge it|/users/smcv/yesplease]]. --[[smcv]]

View File

@ -0,0 +1,8 @@
[[!template id=gitbranch branch=smcv/ready/template-syntax-test
browse="http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/template-syntax-test"
author="[[smcv]]"]]
[[!tag patch]]
`t/template_syntax.t` looks as though it's meant to check the syntax of
`doc/templates/*.mdwn` as well as `templates/*.tmpl`, but it doesn't.
Patch in my git repository. --[[smcv]]

View File

@ -110,8 +110,6 @@ Please, let me know what to do to avoid this kind of error.
>
> --[[smcv]]
>> [[!template id=gitbranch author="[[smcv]]" branch=smcv/definetemplate]]
>> [[!tag patch]]
>> OK, here is a branch implementing what I said. It adds the `definetemplate`
>> directive to [[plugins/goodstuff]] as its last commit.
>>
@ -195,3 +193,14 @@ Please, let me know what to do to avoid this kind of error.
>>>>> the right thing to do in this situation.
>>>>>
>>>>> --[[chrysn]]
>>>>>> [[!template id=gitbranch author="[[smcv]]" branch=smcv/ready/templatebody
browse=http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/templatebody]]
>>>>>> [[!tag patch]]
>>>>>> Branch and directive renamed to `ready/templatebody` as chrysn suggested.
>>>>>> It's on-by-default now (or will be if that branch is merged).
>>>>>> Joey, any chance you could review this?
>>>>>>
>>>>>> There is one known buglet: `template_syntax.t` asserts that the entire
>>>>>> file is a valid HTML::Template, whereas it would ideally be doing the
>>>>>> same logic as IkiWiki itself. I don't think that's serious. --[[smcv]]

View File

@ -2,7 +2,7 @@ The `edittemplate` directive is supplied by the [[!iki plugins/edittemplate desc
This directive allows registering template pages, that provide default
content for new pages created using the web frontend. To register a
template, insert a [[ikiwiki/directive/template]] directive on some other
template, insert an [[ikiwiki/directive/edittemplate]] directive on some other
page.
\[[!edittemplate template="bugtemplate" match="bugs/*"]]

View File

@ -88,7 +88,7 @@ Projects & Organizations
* [[Nos oignons|http://nos-oignons.net]] - Tor exit nodes funded by the community.
* [[CAS Libres|http://cas-libres.poivron.org]] - A French feminist radio program.
* [[Les Barricades|http://barricades.int.eu.org]] - A French socialist choir (CSS has been adapted from the one of [[Grésille|http://www.gresille.org]]).
* [[DKØTU Amateur Radio Station]](http://www.dk0tu.de), TU Berlin
* [DKØTU Amateur Radio Station](http://www.dk0tu.de), TU Berlin
Personal sites and blogs
========================

View File

@ -1,8 +1,8 @@
<span class="infobox">
<div class="infobox">
Available in a [[!taglink /git]] repository [[!taglink branch|/branches]].<br />
Branch: <TMPL_VAR branch><br />
Author: <TMPL_VAR author><br />
</span>
Branch: <TMPL_IF browse><a href="<TMPL_VAR browse>"></TMPL_IF><TMPL_VAR branch><TMPL_IF browse></a></TMPL_IF><br />
<TMPL_IF author>Author: <TMPL_VAR author><br /></TMPL_IF>
</div>
<TMPL_UNLESS branch>
This template is used to create an infobox for a git branch. It uses
these parameters:

View File

@ -182,3 +182,15 @@ Here is a [[patch]] that adds an option `disp` for the [[ikiwiki/directive/pages
Regards,
-- [[Louis|spalax]]
> Saved to my git repository as `contrib/spalax/pagestats-disp`.
> I'd rather find a better name than `disp` for the parameter.
> I think `display` would be an improvement, but that doesn't solve the
> problem of "it's a synonym for show, and non-obvious which is which".
> Maybe `linktext`?
>
> It's unfortunate that `map` and `pagestats` have different meanings for
> the `show` parameter. I'm tempted to propose a patch that adds something
> like `limit` (by analogy with SQL) or `max` as the canonical name for the
> "number of things to match" parameter, at which point a non-numeric
> `show` could mean this thing. --[[smcv]]

View File

@ -1,3 +1,4 @@
[[!template id=gitbranch branch=anderbubble/edittemplate author="Jonathon Anderson"]]
[[!tag wishlist patch]]
I use a default template for all new pages:
@ -17,3 +18,31 @@ I've already made these changes in my installation, and have made my patches ava
Changes to the structure of `$pagestate{$registering_page}{edittemplate}{$pagespec}` mean that a `cgi` rebuild is necessary (for reasons I don't entirely understand); but I think that's preferable to creating an entirely separate `$pagestate` namespace for storing parameters. That said, I'm not really a perl programmer, so corrections are welcome.
> I like this patch. I hate seeing things I've already read get marked as unread in my rss feed. -- [[JoshBBall]]
>> (I don't have commit access so take this with a pinch of salt -
>> I'm just trying to help deal with the code-review backlog.)
>>
>> I mostly like the first and third patches in the branch (adding v4
>> (random) UUIDs, and adding the timestamps). I'd be tempted to rename
>> `time` and `formatted_time` to `iso_time` and `time`, but that's
>> a matter of taste, and perhaps people with commit access have
>> stronger opinions one way or another. I haven't researched
>> whether there's precendent for any particular naming style
>> elsewhere in ikiwiki.
>>
>> The UUID bit would require adding some reference to libuuid-tiny-perl
>> to the Debian packaging - I think a `Recommends` is too strong
>> but a `Suggests` seems OK.
>>
>> I don't like the second patch (adding URL-namespaced UUID support).
>> I'm having a hard time thinking of any situation in which a v4 UUID
>> would be unsuitable, which means it's unnecessary complexity.
>> FYI, the reason that it makes a rebuild is necessary is that
>> you've restructured `$pagestate`, which is carried over from one
>> refresh to the next (that's its purpose), and you haven't
>> built in any migration or backwards-compatibility code that will
>> cope with it being in the old format. My inclination would be to
>> drop that patch. If there's a really good reason to prefer
>> v3/v5 UUIDs, please describe it and I'll try to suggest some
>> better way based on that, maybe global configuration in `$config`.
>> --[[smcv]]

View File

@ -8,3 +8,6 @@ This means:
2. Content can correctly be tagged with the language code, to enable screenreaders and other accessibility providers to render/speak the text in the correct language.
The [[patch]] is currently being used on http://addons.nvda-project.org and seems to work well. --[[mhameed]]
> I don't have commit access, but it [[seems reasonable|/users/smcv/yesplease]].
> --[[smcv]]

View File

@ -30,6 +30,12 @@ This patch, or one like it, would enable better blogging support, by adding
the ability to hierarchically organize blog posts and automatically generate
structural pages for year, month, or day. Please apply. --Ethan
> This looks a lot like [[plugins/autoindex]], except limited to a subset
> of pages, and with different templates according to the page it's used
> on. Perhaps it could become several enhancements for autoindex? --[[smcv]]
----
<pre>
Index: IkiWiki/Render.pm
===================================================================

View File

@ -27,6 +27,17 @@ the substitution of `\[[file]]` in `diffurl` and `historyurl`?
>>>> Ping? --[[intrigeri]]
>>>> Normally, my tendency towards pedantic preservation of existing APIs
>>>> would make me implement a new token \[[file_less_escaped]] or
>>>> something, analogous to `%s` vs. `%S` in [[shortcuts]]; but
>>>> gitweb and cgit are both OK with `/` not being escaped, whereas
>>>> only gitweb allows it to be escaped as `%2F`, so I think your
>>>> solution is fine. Also, it would need a much better name than
>>>> \[[file_less_escaped]], and I can't think of one.
>>>>
>>>> I don't have commit access to ikiwiki.info, but if I did,
>>>> [[I'd merge this|/users/smcv/yesplease]]. --[[smcv]]
[[wishlist]]
[[!tag patch]]

View File

@ -0,0 +1,3 @@
I'm sysadmin at a german university.
I'm using ikiwiki as personal wiki at work and at home.

View File

@ -7,4 +7,4 @@ My repository containing ikiwiki branches:
* gitweb: http://git.pseudorandom.co.uk/smcv/ikiwiki.git
* anongit: git://git.pseudorandom.co.uk/git/smcv/ikiwiki.git
Currently thinking about a [[users/smcv/gallery]] plugin.
Recently tried to [[help with the review backlog|yesplease]].

View File

@ -0,0 +1,7 @@
A tag for patches that I would merge if I had commit access to ikiwiki,
in the hope that it's a useful shortlist for committers to look at.
They're mirrored in my git repository under the `ready/*` namespace.
[[!inline pages="(todo/* or bugs/*) and link(patch) and !link(bugs/done) and
!link(todo/done) and link(users/smcv/yesplease) and !*/Discussion"
archive="yes"]]