Merge branch 'master' into fancypodcast

master
Amitai Schlair 2013-06-27 00:50:17 -04:00
commit 844710c0da
41 changed files with 518 additions and 64 deletions

View File

@ -53,6 +53,7 @@ sub checkconfig () {
eval q{
use RPC::XML;
use RPC::XML::Client;
$RPC::XML::ENCODING = 'utf-8';
};
error $@ if $@;
}

View File

@ -195,7 +195,7 @@ sub rcs_add ($) {
sub rcs_remove ($) {
my ($file) = @_;
my @cmdline = ("bzr", "rm", "--force", "--quiet", "$config{srcdir}/$file");
my @cmdline = ("bzr", "rm", "--quiet", "$config{srcdir}/$file");
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}

View File

@ -86,8 +86,10 @@ sub format_month (@) {
my $year = $date[5] + 1900;
my $mtag = sprintf("%02d", $month);
# Only one posting per day is being linked to.
$linkcache{"$year/$mtag/$mday"} = $p;
if (! $linkcache{"$year/$mtag/$mday"}) {
$linkcache{"$year/$mtag/$mday"} = [];
}
push(@{$linkcache{"$year/$mtag/$mday"}}, $p);
}
my $pmonth = $params{month} - 1;
@ -221,11 +223,38 @@ EOF
$tag='month-calendar-day-link';
}
$calendar.=qq{\t\t<td class="$tag $downame{$wday}">};
$calendar.=htmllink($params{page}, $params{destpage},
$linkcache{$key},
noimageinline => 1,
linktext => $day,
title => pagetitle(IkiWiki::basename($linkcache{$key})));
if (scalar(@{$linkcache{$key}}) == 1) {
# Only one posting on this page
my $page = $linkcache{$key}[0];
$calendar.=htmllink($params{page}, $params{destpage},
$page,
noimageinline => 1,
linktext => $day,
title => pagetitle(IkiWiki::basename($page)));
}
else {
$calendar.=qq{<div class='popup'>$day<div class='balloon'>};
# Several postings on this page
$calendar.=qq{<ul>};
foreach my $page (@{$linkcache{$key}}) {
$calendar.= qq{\n\t\t\t<li>};
my $title;
if (exists $pagestate{$page}{meta}{title}) {
$title = "$pagestate{$page}{meta}{title}";
}
else {
$title = pagetitle(IkiWiki::basename($page));
}
$calendar.=htmllink($params{page}, $params{destpage},
$page,
noimageinline => 1,
linktext => $title,
title => $title);
$calendar.= '</li>';
}
$calendar.=qq{\n\t\t</ul>};
$calendar.=qq{</div></div>};
}
$calendar.=qq{</td>\n};
}
else {

View File

@ -90,6 +90,15 @@ sub getsetup () {
safe => 0,
rebuild => 0,
},
comments_allowformats => {
type => 'string',
default => '',
example => 'mdwn txt',
description => 'Restrict formats for comments to (no restriction if empty)',
safe => 1,
rebuild => 0,
},
}
sub checkconfig () {
@ -101,6 +110,8 @@ sub checkconfig () {
unless defined $config{comments_closed_pagespec};
$config{comments_pagename} = 'comment_'
unless defined $config{comments_pagename};
$config{comments_allowformats} = ''
unless defined $config{comments_allowformats};
}
sub htmlize {
@ -128,12 +139,18 @@ sub safeurl ($) {
}
}
sub isallowed ($) {
my $format = shift;
return ! $config{comments_allowformats} || $config{comments_allowformats} =~ /\b$format\b/;
}
sub preprocess {
my %params = @_;
my $page = $params{page};
my $format = $params{format};
if (defined $format && ! exists $IkiWiki::hooks{htmlize}{$format}) {
if (defined $format && (! exists $IkiWiki::hooks{htmlize}{$format} ||
! isallowed($format))) {
error(sprintf(gettext("unsupported page format %s"), $format));
}
@ -332,7 +349,7 @@ sub editcomment ($$) {
my @page_types;
if (exists $IkiWiki::hooks{htmlize}) {
foreach my $key (grep { !/^_/ } keys %{$IkiWiki::hooks{htmlize}}) {
foreach my $key (grep { !/^_/ && isallowed($_) } keys %{$IkiWiki::hooks{htmlize}}) {
push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key];
}
}

View File

@ -78,6 +78,7 @@ sub anonsubscribe ($$) {
sub notify (@) {
my @files=@_;
return unless @files;
return if $config{rebuild};
eval q{use Mail::Sendmail};
error $@ if $@;

View File

@ -192,6 +192,7 @@ sub process_waypoint {
}
}
$icon = urlto($icon, $dest, 1);
$icon =~ s!/*$!!; # hack - urlto shouldn't be appending a slash in the first place
$tag = '' unless $tag;
register_rendered_files($map, $page, $dest);
$pagestate{$page}{'osm'}{$map}{'waypoints'}{$name} = {

View File

@ -9,6 +9,7 @@ sub import {
hook(type => "getsetup", id => "theme", call => \&getsetup);
hook(type => "checkconfig", id => "theme", call => \&checkconfig);
hook(type => "needsbuild", id => "theme", call => \&needsbuild);
hook(type => "pagetemplate", id => "theme", call => \&pagetemplate);
}
sub getsetup () {
@ -63,4 +64,12 @@ sub needsbuild ($) {
return $needsbuild;
}
sub pagetemplate (@) {
my %params=@_;
my $template=$params{template};
if (exists $config{theme} && length $config{theme}) {
$template->param("theme_$config{theme}" => 1);
}
}
1

25
debian/changelog vendored
View File

@ -1,9 +1,30 @@
ikiwiki (3.20130505) UNRELEASED; urgency=low
ikiwiki (3.20130519) UNRELEASED; urgency=low
* blogspam: Fix encoding issue in RPC::XML call.
Thanks, Changaco
* comments: The formats allowed to be used in comments can be configured
using comments_allowformats.
Thanks, Michal Sojka
* calendar: When there are multiple pages for a given day, they're
displayed in a popup on mouseover.
Thanks, Louis
* osm: Remove trailing slash from KML maps icon.
* page.tmpl: omit searchform, trails, sidebar and most metadata in CGI
(smcv)
-- Joey Hess <joeyh@debian.org> Sun, 23 Jun 2013 14:02:01 -0400
ikiwiki (3.20130518) unstable; urgency=low
* Fix test suite to not fail when XML::Twig is not installed.
Closes: #707436
* theme: Now <TMPL_IF THEME_$NAME> can be used in all templates when
a theme is enabled.
* notifyemail: Fix bug that caused duplicate emails to be sent when
site was rebuilt.
* bzr: bzr rm no longer has a --force option, remove
-- Joey Hess <joeyh@debian.org> Thu, 09 May 2013 10:47:18 -0400
-- Joey Hess <joeyh@debian.org> Sat, 18 May 2013 16:28:21 -0400
ikiwiki (3.20130504) unstable; urgency=low

View File

@ -0,0 +1,8 @@
I just got this message trying to post to this wiki:
Error: Sorry, but that looks like spam to blogspam: No reverse DNS entry for 2001:1928:1:9::1
So yeah, it seems I have no reverse DNS for my IPv6 address, which may
be quite common for emerging IPv6 deployments...
This may be related to [[blogspam_options whitelist vs. IPv6?]].

View File

@ -0,0 +1,34 @@
[[!tag patch]]
<pre>
From 5ad35b2805ca50478f07d810e57e7c9b8f4eddea Mon Sep 17 00:00:00 2001
From: Changaco &lt;changaco@changaco.net>
Date: Tue, 4 Jun 2013 02:54:35 +0200
Subject: [PATCH] fix encoding issue in blogspam plugin
RPC::XML uses ascii as default encoding, we have to tell it to use utf8.
Without this, ikiwiki returns "failed to get response from blogspam server"
every time a non-ascii character is used in a content that needs checking.
---
IkiWiki/Plugin/blogspam.pm | 1 +
1 file changed, 1 insertion(+)
diff --git a/IkiWiki/Plugin/blogspam.pm b/IkiWiki/Plugin/blogspam.pm
index d32c2f1..e48ed72 100644
--- a/IkiWiki/Plugin/blogspam.pm
+++ b/IkiWiki/Plugin/blogspam.pm
@@ -53,6 +53,7 @@ sub checkconfig () {
eval q{
use RPC::XML;
use RPC::XML::Client;
+ $RPC::XML::ENCODING = 'utf-8';
};
error $@ if $@;
}
--
1.8.3
</pre>
[[done]] --[[Joey]]

View File

@ -0,0 +1,32 @@
I added a feedpages directive to `blog/index.mdwn` to not pick up anything tagged `tags/random/hidden` yet that still happenend.
~git/richardhartmann.de/blog % grep hidden index.mdwn
\[[!inline pages="./posts/*/*/* and !*/Discussion" feedpages="./posts/*/*/* and !*/Discussion and not tagged(tags/random/hidden)" show="10" actions=yes rootpage="blog"]]
~git/richardhartmann.de/blog % grep hidden posts/2013/05/17-Debian_Release_Critical_Bug_report_for_Week_20.mdwn
\[[!tag tags/tech/floss/debian tags/tech/floss/debian/rc-stats/8.0-jessie tags/random/hidden]]
~git/richardhartmann.de/blog %
If you need more information, please let me know.
Richard
> I don't think this is a bug. You have a syntax error in your pagespec:
> "not" is not a recognised keyword in [[pagespecs|ikiwiki/pagespec]],
> so `and not tagged(...)` should be `and !tagged(...)`. Presumably inline
> falls back to `pages` when `feedpages` doesn't work.
>
> By posting the pagespec here with insufficient escaping (which I've fixed)
> you caused *this* ikiwiki instance's HTML to contain an error message
> illustrating that syntax error :-)
>
> <span class="error">Error: syntax error in pagespec "(./posts/*/*/* and !*/Discussion) and (./posts/*/*/* and !*/Discussion and not tagged(tags/random/hidden))"</span>
>
> [[done]]. --[[smcv]]
> > As per IRC: Thanks. As an aside, shouldn't this ikiwiki instance ignore directives in normal text? The problem may be non-trivial, but still... -- Richard
>>> "Normal text" is exactly where directives go, so, not really.
>>> If you mean verbatim text (e.g. indentation in Markdown): the fact that
>>> directives still expand to HTML, which is then treated as verbatim, is an
>>> unfortunate result of how ikiwiki interacts with pages' markup languages
>>> (directives and wikilinks happen before markup is converted to HTML). --[[smcv]]

View File

@ -30,3 +30,5 @@ index a7baa5f..c9650d0 100644
"""]]
I'm not writing this to a branch out of sheer shame of my misunderstanding. ;) There also may be a workaround that could be done in Nginx too. --[[anarcat]]
> [[applied|done]], but I'm not happy with this either --[[Joey]]

View File

@ -1,3 +1,12 @@
When commenting on, or I think editing, a page that uses the trail
plugin, the trail is displayed across the top of the page. This should not
happen, probably. --[[Joey]]
> [[!template id=gitbranch branch=smcv/ready/no-trails-if-dynamic author="[[smcv]]"]]
> [[!tag patch]]
> Fixed in my branch. --[[smcv]]
>> [[merged|done]], although I am ambivilant about hiding the search box,
>> and unsure about hiding the sidebar. At least the latter fixes an
>> annoying layout problem with the comment page, where the textarea
>> appears below the sidebar due to its width. --[[Joey]]

View File

@ -17,3 +17,5 @@ and a suitable whilst loop looks to be all that's needed...
Any pointers appreciated.
A [[!taglink patch]] has been proposed in [comment](#comment-d6f94e2b779d1c038b6359aad79ed14b)
> This has been applied. --[[Joey]]

View File

@ -0,0 +1,7 @@
All the ikiwiki blogs I have seen have a single user blog. Is it possible to give every user a blog, where they can create their own pages in their own directory = based on their user name?
I feel that a wiki might give more options in the way users share and collaborate when compared to a blog engine (like Word Press in multi user format)
Is this the best place to post a question like this? There doesn't seem to be much traffic in this forum
Thanks for your help
Richard

View File

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawm6gCEo_Z36OJ7x5kyZn52lEVvyjn3zSUc"
nickname="Ángel"
subject="comment 1"
date="2013-05-31T16:03:03Z"
content="""
Simply add the NE (No escape) flag:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.ciffer\.net$
RewriteRule /(.*) http://ciffer.net/$1 [L,R,NE]
"""]]

View File

@ -0,0 +1,17 @@
I am getting continuous spam like this:
discussion 85.25.146.11 web 11:02:19 05/17/13 2rand[0,1,1]
discussion 85.25.146.11 web 11:02:13 05/17/13 2rand[0,1,1]
The bot uses an IP address as the username and puts '2rand[0,1,1]' as comment text.
I do not have a page 'discussion' in use, so I have redirected this page with an apache2
Alias to a static page, just in case anyone stumbles on it. This means it cannot really
be edited via the web. However the bots that post
this spam are evidently not opening the page to edit it, but merely sending a cgi request
as if they had edited the page. The result is that no damage is done on the site and no
benefit is achieved for the spammer since google cannot see the result. However, the
logs are stuffed with spurious entries and a page is constantly recompiled, which wastes
resources.
Is there some way to reject edits that do not arise from an established session?

View File

@ -0,0 +1,19 @@
[[!comment format=mdwn
username="http://joeyh.name/"
nickname="joey"
subject="comment 1"
date="2013-05-17T17:55:46Z"
content="""
Normally ikiwiki requires a valid session cookie of a logged in user to edit pages. It sounds like you may have the opendiscussion or anonok plugins enabled, which allows anyone to edit without logging in. Recommend disabling them.
Since you know the spammer's IP, put it into ikiwiki.setup:
<pre>
banned_users:
- ip(85.25.146.11)
</pre>
If the user was logging in, you could also put their username in the ban list.
You can also try enabling the blogspam plugin.
"""]]

View File

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="http://claimid.com/richard-lyons"
nickname="richard-lyons"
subject="comment 2"
date="2013-05-17T20:56:23Z"
content="""
I did indeed have opendiscussion active. I shall wait to see what happens after disabling it.
The bots seem to make 5 consecutive edits at short intervals (around 2 minutes) using an IP
address as a username. I do not know if the IP is the one from which they work. There are
usually two or three sets of five edits using different IP addresses as username in each hour.
I did try blocking specific IPs but they constantly change.
It would be good if blocking could match a regexp, but as far as I can see this is not an option,
"""]]

View File

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://claimid.com/richard-lyons"
nickname="richard-lyons"
subject="SOLVED -- How can I prevent spam?"
date="2013-05-18T08:13:19Z"
content="""
I can now confirm that this particular attack has stopped after removing the opendiscussion plugin.
"""]]

View File

@ -0,0 +1,2 @@
I am using ikiwiki for a spanish language wiki. I've read the [[translation]] page and [[plugins/po]] plugin page but it is not completely clear to me. As I understand it the po plugin is the recommended way to create translated versions of existing pages in your wiki based on a master language. But I actually don't need that as myself and other users already edit the wiki in spanish. What I would actually like is to have the ikiwiki interface itself translated into spanish.
Is it possible to have my wiki always appear in spanish? I can see that the debian package already includes po files for spanish. How do i activate the spanish translation permanently? Did I miss something obvious?

View File

@ -11,3 +11,8 @@ Anyway - I've realised that a big part of the interactive todo lists stuff is tr
Second, and in a way related, I've been mooting hacking fastcgi support into ikiwiki. Essentially one ikiwiki.cgi process would persist and serve CGI-ish requests on stdin/stdout. The initial content-scanning and dependency generation would happen once and not need to be repeated for future requests. Although, all state-changing operations would need to be careful to ensure the in-memory models were accurate. Also, I don't know how suited the data structures would be for persistence, since the current model is build em up, throw em away, they might not be space-efficient enough for persistence.
If I did attempt this, I would want to avoid restructuring things in a way which would impair ikiwiki's core philosophy of being a static compiler. -- [[Jon]]
> This is quite interesting! There is a related discussion about FastCGI
> support (and therefore better support for Nginx, for example) in
> [[todo/fastcgi_or_modperl_installation_instructions/]]... --
> [[anarcat]]

View File

@ -19,7 +19,7 @@ Projects & Organizations
========================
* [This wiki](http://ikiwiki.info) (of course!)
<!-- * [NetBSD wiki](http://wiki.netbsd.org) -->
* [NetBSD wiki](http://wiki.netbsd.org)
* The [GNU Hurd](http://www.gnu.org/software/hurd/)
* [DragonFly BSD](http://www.dragonflybsd.org/)
* [Monotone](http://wiki.monotone.ca/)
@ -88,6 +88,9 @@ Projects & Organizations
* [The RS-232 Club](http://rs232club.org)
* [FusionInventory project](http://www.fusioninventory.org)
* FabLab Deventer i.o.
* [Börn og tónlist](http://bornogtonlist.net/) - an Icelandic open-content site, primarily for kindergarten teachers, about music and music-related activites with children. Migrated from MediaWiki to IkiWiki in June 2013. Heavily changed appearance with only minimal changes to page.tmpl.
* [Réseaulibre.ca](http://wiki.reseaulibre.ca) - a mesh project in Montréal, most data is stored in the wiki, including IP address allocation and geographic data. Features map ([[plugins/osm]]) integration.
* [Foufem](http://foufem.orangeseeds.org/) - Foufem, a feminist hackerspace
Personal sites and blogs
========================
@ -191,3 +194,5 @@ Personal sites and blogs
* [WikiAtoBR](http://wiki.hi.ato.br) Open, free and annoymous wiki. No need for account registering and login. It is Brazilian so it is in Portuguese.
* [Manifesto](http://manifesto.hi.ato.br) Open, free and annoymous blog. No need for account registering and login. It is Brazilian so it is in Portuguese.
* [Z is for Zombies](http://blog.zouish.org/) — personal blog/site of Francesca Ciceri
* Julien Lefrique's [homepage](http://julien.lefrique.name/), hosted on [GitHub pages](https://github.com/jlefrique/jlefrique.github.com) with CGI disabled
* [Anarcat's homepage](http://anarcat.ath.cx/) - with a custom [[theme|theme_market]]

View File

@ -10,4 +10,4 @@ log back in, try out the OpenID signup process if you don't already have an
OpenID, and see how OpenID works for you. And let me know your feelings about
making such a switch. --[[Joey]]
[[!poll 70 "Accept only OpenID for logins" 21 "Accept only password logins" 46 "Accept both"]]
[[!poll 70 "Accept only OpenID for logins" 21 "Accept only password logins" 47 "Accept both"]]

View File

@ -1,17 +0,0 @@
ikiwiki 3.20121016 released with [[!toggle text="these changes"]]
[[!toggleable text="""
* monochrome: New theme, contributed by Jon Dowland.
* rst: Ported to python 3, while still also being valid python 2.
Thanks, W. Trevor King
* Try to avoid a situation in which so many ikiwiki cgi wrapper programs
are running, all waiting on some long-running thing like a site rebuild,
that it prevents the web server from doing anything else. The current
approach only avoids this problem for GET requests; if multiple cgi's
run GETs on a site at the same time, one will display a "please wait"
page for a configurable number of seconds, which then redirects to retry.
To enable this protection, set cgi\_overload\_delay to the number of
seconds to wait. This is not enabled by default.
* Add back a 1em margin between archivepage divs.
* recentchangesdiff: Correct broken template that resulted in duplicate
diff icons being displayed, and bloated the recentchanges page with
inline diffs when the configuration should have not allowed them."""]]

View File

@ -0,0 +1,9 @@
ikiwiki 3.20130518 released with [[!toggle text="these changes"]]
[[!toggleable text="""
* Fix test suite to not fail when XML::Twig is not installed.
Closes: #[707436](http://bugs.debian.org/707436)
* theme: Now &lt;TMPL\_IF THEME\_$NAME&gt; can be used in all templates when
a theme is enabled.
* notifyemail: Fix bug that caused duplicate emails to be sent when
site was rebuilt.
* bzr: bzr rm no longer has a --force option, remove"""]]

View File

@ -410,3 +410,49 @@ I've integrated the jquery masonry plugin into the albumitem template and it wor
But is there a way to create thumnails of different sizes? I've passed thumnailsize option
and value to album directive and while it does create the new thumbnail sizes it doesn't use them,
The 96x96 thumbnails still appear on the page no matter what I do. - jaime
----
Hi, the plugin looks great, but I am probably too dumb to use it ;( here is what I did:
created page gal.mdwn with just \[\[!album\]\] directive (no arguments) and subdirectory gal/ with images in form img_1234.jpg
when I run ikiwiki, I get something completely wrong though:
generated gal/index.html page contains following code repeated for every image:
<div class="album-viewer">
<div id="album-img">
<div class="album-finish">
<a href="./"><span class="album-arrow">↑</span></a>
</div>
</div>
</div>
So no links to any images, etc.
The pages for individual images are generated though, but also not correct. Trails section is perfect, but the main part is wrong:
<div class="album-prev">
<a><span class="album-arrow">â†<90></span></a><br />
<div class="album-thumbnail">
<span class="selflink">
<img src="./96x96-img_2913.jpg" width="96" height="72" alt="img 2913" title="img 2913" class="img" /></span>
</div>
</div>
This really seems like this should be in the album page and not individul page. It is only thumbnail and not full image. Also the full image is not in the generated html tree at all!
I am using ikiwiki 3.20130518, and got the album sources from the links of [this page](http://ikiwiki.info/plugins/contrib/album/) (part manual installation)
Any hint about what do I do wrong?
Thanks Lukas
> This plugin is not really finished. I probably need to update it for
> current ikiwiki. I'll try to update it (and also update my demo
> and installation instructions) at some point. --[[smcv]]
>> I have to appologize, I accidentally copied the template wrongly and that caused all the issues ;(
>> So now after two days debugging and tracing, I just fixed that and it works. Well, at least a learnt
>> a lot about ikiwiki internal ;-)
>> Thanks for all the work you did on the plugin! --Lukas

View File

@ -0,0 +1,13 @@
[[!template id="plugin" name="mathjax" author="Baldur Kristinsson"]]
The [mathjax plugin](https://github.com/bk/ikiwiki-plugin-mathjax), available on GitHub, provides easy MathJax support for ikiwiki.
Features:
- No change needed to page.tmpl
- Javascript is only loaded on pages which need it.
- Both inline and display math are supported.
- Unlike [[the pandoc plugin|plugins/contrib/pandoc]] or a solution based on editing page.tmpl, no irritating conflicts with the smiley plugin.
- Unlike the pandoc plugin, it is easy to use in shared hosting or other environments where you have difficulty in installing extra software (beyond Perl modules, obviously).
However, if you need the power of Pandoc, such as bibliography support or pdf generation, then that is probably the better option for you.

View File

@ -324,6 +324,7 @@ div.progress-done {
.popup .paren,
.popup .expand {
display: none;
text-align: left;
}
.popup:hover .balloon,
.popup:focus .balloon {

View File

@ -11,6 +11,6 @@
<li>[[TipJar]]</li>
</ul>
<a href="http://flattr.com/thing/39811/ikiwiki">
<img src="http://api.flattr.com/button/flattr-badge-large.png"
<img src="https://api.flattr.com/button/flattr-badge-large.png"
alt="Flattr this" title="Flattr this" /></a>
</div>

View File

@ -9,3 +9,5 @@ Feel free to add your own [[theme|themes]] here, but first consider writing a si
* **[[AntPortal theme|https://github.com/AntPortal/ikiwiked]]**, contributed by Danny, see an example [[on the Antportal wiki|https://antportal.com/wiki/]]
* **[[Night city theme|http://anarcat.ath.cx/night_city/README/]]**, contributed by [[anarcat]], see an example [[on his homepage|http://anarcat.ath.cx/]]
* **[[Bootstrap theme|http://anonscm.debian.org/gitweb/?p=users/jak/website.git;a=summary]]**, contributed by [[JAK LINUX|http://jak-linux.org/about/]], based on [[Twitter Bootstrap|http://twitter.github.com/bootstrap/]]

View File

@ -3,7 +3,9 @@ ikiwiki a nice look and feel. The local.css [[CSS]] file is left
free for you to further customize.
Ikiwiki now comes with several themes contributed by users.
You can enable the [[theme_plugin|plugins/theme]] to use any of these:
You can enable the [[theme_plugin|plugins/theme]] to use any of
these, but you can also deploy custom themes maintained by the
community from the [[theme market]].
[[!img actiontabs_small.png align=left]] The **actiontabs** theme, contributed by
[[svend]]. This style sheet displays the action list

View File

@ -7,3 +7,14 @@ For an example of the theme in action, see: [[https://antportal.com/wiki/]]
> Shouldn't we just make people post their themes in the [[themes]] page? Or maybe we should make a [[theme market]]? --[[anarcat]]
> I did just that. -- [[anarcat]]
What is the process for merging a theme in Ikiwiki? It seems to me the
[[Bootstrap theme|http://www2.tblein.eu/posts/How_to_have_a_nice_design_for_ikiwiki/]]
could improve the options a lot... See the [[theme market]] for the
links to the actual theme. -- [[anarcat]]
> Step 1 is to not need two versions of page.tmpl to be maintained.
> This is, unfortunately, the reason why I have not pulled in the bootstrap
> theme yet. I recently made `<TMPL_IF THEME_$NAME>` be available,
> so the page.tmpl could use that to do different things if the boostrap
> theme was enabled. --[[Joey]]

View File

@ -15,7 +15,10 @@ configuration changes should work anywhere.
## apache 2
* Edit /etc/apache2/apache2.conf and add a line like this:
* Make sure the cgi module is loaded. (Ie, `a2enmod cgi`)
* Edit /etc/apache2/apache2.conf (or /etc/apache2/mods-available/mime.conf)
and add a line like this:
AddHandler cgi-script .cgi
@ -26,8 +29,6 @@ configuration changes should work anywhere.
Or, if you've put it in a `~/public_html`, edit
`/etc/apache2/mods-available/userdir.conf`.
You may also want to install some dependencies to enable CGI in apache2 setup as: `libcgi-formbuilder-perl` and `libcgi-session-perl`.
* If your wiki is in `~/public_html` and does not appear when you enter the URL given by the installer, check that you have
the userdir mod enabled (there should be simlinks to userdir.load and userdir.conf in /etc/apache2/modes-enabled). If not,
run `a2enmod userdir` and reload apache2.

View File

@ -90,3 +90,5 @@ Regards,
}
.popup:hover .balloon,
.popup:focus .balloon {
> [[applied|done]] --[[Joey]]

View File

@ -95,3 +95,5 @@ index 285013e..151e839 100644
</pre>
[[!tag patch]]
> [[done]] --[[Joey]]

View File

@ -22,18 +22,18 @@ critical eyes ([[smcv]]?) raking over my diffs. --[[schmonz]]
[[!table data="""
Feature |iTunes RSS|iTunes Atom|Downcast RSS|Downcast Atom
Feed image |{X} |{X} |{X} |{X}
Feed image | | | |
Feed title |(./) |(./) |(./) |(./)
Feed publisher |{X} |{X} |{X} |{X}
Feed "category" |{X} |{X} |{X} |{X}
Feed publisher | | | |
Feed "category" | | | |
Feed date |(./) |(./) |(./) |(./)
Feed description |(./) |(./) |(./) |{X}
Episode image |{X} |{X} |{X} |{X}
Feed description |(./) |(./) |(./) |
Episode image | | | |
Episode title |(./) |(./) |(./) |(./)
Episode date |(./) |(./) |(./) |(./)
Episode duration |{X} |{X} |{X} |{X}
Episode author |{X} |{X} |{X} |{X}
Episode description|(./) |(./) |(./) |{X}
Episode duration | | | |
Episode author | | | |
Episode description|(./) |(./) |(./) |
Episode enclosure |(./) |(./) |(./) |(./)
"""]]
@ -225,3 +225,106 @@ it with ikiwiki instead.
* Configurably generate additional subscription links (such as
iTunes) alongside the RSS/Atom ones in [[plugins/inline]].
* Support Apple's "enhanced podcasts" (if they're still relevant).
### code review
+ # XXX better way to compute relative to srcdir?
+ my $file = $absurl;
+ $file =~ s|^$config{url}/||;
I don't think ikiwiki offers a better way to do that, because there is
normally no reason to do that. Why does it need an url of this form here?
--[[Joey]]
> In all the popular, production-quality podcast feeds I've looked
> at, enclosure URLs are always absolute (even when they could be
> expressed concisely as relative). [Apple's
> example](http://www.apple.com/itunes/podcasts/specs.html#example)
> does too. So I told \[[!meta]] to call `urlto()` with the third
> parameter true, which means the \[[!inline]] code here gets an
> absolute URL in `$pagestate{$p}{meta}{enclosure}`. To compute the
> enclosure's metadata, though, we of course need it as a local path.
> I didn't see a less
> [ongepotchket](http://www.jewish-languages.org/jewish-english-lexicon/words/1402)
> way at the time. If you have a better idea, I'm happy to hear it;
> if not, I'll add an explanatory comment. --[[schmonz]]
>> I would be more comfortable with this if two two different forms of url
>> you need were both generated by calling urlto. It'd be fine to call
>> it more than once. --[[Joey]]
>>> Heh, it was even easier than that! (Hooray for tests.) Done.
>>> --[[schmonz]]
+<TMPL_IF HTML5><section id="inlineenclosure"><TMPL_ELSE><div id="inlineenclosure"></TMPL_IF>
+<TMPL_IF ENCLOSURE>
Can't we avoid adding this div when there's no enclosure? --[[Joey]]
> Sure, I've moved the `<TMPL_IF ENCLOSURE>` check to outside the
> section-and-div block for `{,inline}page.tmpl`. --[[schmonz]]
+<a href="<TMPL_VAR ENCLOSURE>">Download this episode</a>
"Download this episode" is pretty specific to particular use cases.
Can this be made more generic, perhaps just "Download"? --[[Joey]]
> Yep, I got a little carried away. Done. --[[schmonz]]
-<TMPL_IF AUTHOR>
- <title><TMPL_VAR AUTHOR ESCAPE=HTML>: <TMPL_VAR TITLE></title>
- <dcterms:creator><TMPL_VAR AUTHOR ESCAPE=HTML></dcterms:creator>
This change removes the author name from the title of the rss feed, which
does not seem necessary for fancy podcasts. And it is a change that
could negatively impact eg, Planet style aggregators using ikiwiki. --[[Joey]]
> While comparing how feeds render in podcatchers, I noticed that
> RSS and Atom were inconsistent in a couple ways, of which this was
> one. The way I noticed it: with RSS, valuable title space was being
> spent to display the author. I figured Atom's display was the one
> worth matching. You're right, of course, that planets using the
> default template and somehow relying on the current author-in-the-title
> rendering for RSS feeds (but not Atom feeds!) would be broken by
> this change. I'm having trouble imagining exactly what would break,
> though, since guids and timestamps are unaffected. Would it suffice
> to provide a note in the changelog warning people to be careful
> upgrading their planets, and to customize `rssitem.tmpl` if they
> really prefer the old behavior (or don't want to take any chances)?
> --[[schmonz]]
>> A specific example I know of is updo.debian.net, when used with
>> rss2email. Without the author name there, one cannot see who posted
>> an item. It's worth noting that planet.debian.org does the same thing
>> with its rss feed. (That's probably what I copied.) Atom feeds may
>> not have this problem, don't know. --[[Joey]]
>>> Okay, that's easy to reproduce. It looks like this _might_ be
>>> a simple matter of getting \[[!aggregate]] to populate author in
>>> `add_page()`. I'll see what I can figure out. --[[schmonz]]
+++ b/templates/rsspage.tmpl
+ xmlns:atom="http://www.w3.org/2005/Atom"
+<atom:link href="<TMPL_VAR FEEDURL>" rel="self" type="application/rss+xml" />
Why is it using atom namespace inside an rss feed? What are the chances
every crummy rss reader on earth is going to understand this? I'd put it at
about 0%; I doubt ikiwiki's own rss reader understands such a mashup.
--[[Joey]]
> The validator I used (<http://validator.w3.org/>, I think) told me to.
> Pretty sure it doesn't make anything work better in the podcatchers
> I tried. Hadn't considered that it might break some readers.
> Removed. --[[schmonz]]
+<generator>ikiwiki</generator>
Does this added tag provide any benefits? --[[Joey]]
> Consistency with the Atom feed, and of course it trumpets ikiwiki
> to software and/or curious humans who inspect their feeds. The tag
> arrived only in RSS 2.0, but that's already the version we're
> claiming to be, and it's over a decade old. Seems much less risky
> than the atom namespace bits. --[[schmonz]]
>> Sounds ok then. --[[Joey]]

View File

@ -1,20 +1,32 @@
[Amitai Schlair](http://www.schmonz.com/) uses ikiwiki
for all sorts of things:
* a undergraduate group's university-provided-static-hosted site
(with [[plugins/rsync]] and a [WIND
authentication](http://www.columbia.edu/acis/rad/authmethods/wind/)
plugin)
* a major open-source project's wiki (with the [[rcs/cvs]] plugin)
* team documentation and project planning at work: product and
sprint backlogs, burndown charts, release plans/procedures/announcements,
aggregating feeds of shared interest, etc. (with the
[[plugins/contrib/dynamiccookies]] and [[plugins/contrib/proxies]]
plugins)
* personal to-do and scratch space
ikiwiki contributions:
[Amitai Schlair](http://www.schmonz.com/) has contributed code to ikiwiki...
[[!map
pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs or todo/fancypodcast)"
]]
...and uses ikiwiki for all sorts of things:
## Public
* [A major open-source project's wiki](http://wiki.netbsd.org) (with
the [[rcs/cvs]] plugin)
* [An undergraduate group's university-provided-static-hosted
site](http://www.columbia.edu/cu/philo/) (with [[plugins/rsync]] and a [WIND
authentication](http://www.columbia.edu/acis/rad/authmethods/wind/) plugin)
* [A small personal site](http://www.anglofish.net/) (happily hosted at
[Branchable](http://www.branchable.com/))
## Non-public
* At work, team documentation and project planning: product and sprint
backlogs, burndown charts, release plans/procedures/announcements,
aggregating feeds of shared interest, etc. (with the
[[plugins/contrib/dynamiccookies]] and [[plugins/contrib/proxies]] plugins)
* On my laptop, personal to-do and scratch space
* [A small personal site](http://podcast.schmonz.com/) (happily hosted at
[Branchable](http://www.branchable.com/))
## Non-yet-ikiwiki
* [My personal web site](http://www.schmonz.com/) (pending
[[todo/fancypodcast]] integration)

View File

@ -1,5 +1,5 @@
Name: ikiwiki
Version: 3.20130504
Version: 3.20130518
Release: 1%{?dist}
Summary: A wiki compiler

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-05-04 23:52-0400\n"
"POT-Creation-Date: 2013-05-18 16:34-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -561,11 +561,11 @@ msgstr ""
msgid "Cannot subscribe your email address without logging in."
msgstr ""
#: ../IkiWiki/Plugin/notifyemail.pm:135
#: ../IkiWiki/Plugin/notifyemail.pm:136
msgid "change notification:"
msgstr ""
#: ../IkiWiki/Plugin/notifyemail.pm:137
#: ../IkiWiki/Plugin/notifyemail.pm:138
msgid "comment notification:"
msgstr ""

View File

@ -21,6 +21,8 @@
<TMPL_ELSE>
<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
</TMPL_IF>
<TMPL_UNLESS DYNAMIC>
<TMPL_IF EDITURL>
<link rel="alternate" type="application/x-wiki" title="Edit this page" href="<TMPL_VAR EDITURL>" />
</TMPL_IF>
@ -36,6 +38,8 @@
<link rel="next" href="<TMPL_VAR NEXTURL>" title="<TMPL_VAR NEXTTITLE>" />
</TMPL_IF>
</TMPL_LOOP>
</TMPL_UNLESS>
</head>
<body>
@ -56,9 +60,11 @@
</TMPL_IF>
</span>
</span>
<TMPL_UNLESS DYNAMIC>
<TMPL_IF SEARCHFORM>
<TMPL_VAR SEARCHFORM>
</TMPL_IF>
</TMPL_UNLESS>
<TMPL_IF HTML5></header><TMPL_ELSE></div></TMPL_IF>
<TMPL_IF HAVE_ACTIONS>
@ -112,15 +118,19 @@
<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
<TMPL_UNLESS DYNAMIC>
<TMPL_VAR TRAILS>
</TMPL_UNLESS>
<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
<TMPL_UNLESS DYNAMIC>
<TMPL_IF SIDEBAR>
<TMPL_IF HTML5><aside class="sidebar"><TMPL_ELSE><div class="sidebar"></TMPL_IF>
<TMPL_VAR SIDEBAR>
<TMPL_IF HTML5></aside><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
</TMPL_UNLESS>
<div id="pagebody">