Merge branch 'master' of ssh://git.ikiwiki.info
commit
256dee00f9
|
@ -0,0 +1,32 @@
|
|||
[[!tag patch]]
|
||||
|
||||
<pre>
|
||||
From 5ad35b2805ca50478f07d810e57e7c9b8f4eddea Mon Sep 17 00:00:00 2001
|
||||
From: Changaco <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>
|
|
@ -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]]
|
|
@ -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
|
|
@ -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]
|
||||
"""]]
|
|
@ -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/)
|
||||
|
@ -191,3 +191,4 @@ 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
|
||||
|
|
|
@ -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"]]
|
||||
|
|
|
@ -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 |(./) |(./) |(./) |(./)
|
||||
"""]]
|
||||
|
||||
|
@ -71,23 +71,113 @@ Episode enclosure |(./) |(./) |(./) |(./)
|
|||
* Verify that the feeds validate.
|
||||
* Subscribe to a fancy feed in some common podcatchers and verify
|
||||
display details against a reference podcast.
|
||||
* Verify smooth transitions for two common use cases (see testing
|
||||
details below).
|
||||
|
||||
### Must-have (for [[schmonz]], anyway)
|
||||
|
||||
* Think carefully about...
|
||||
* UTF-8.
|
||||
* Whether [[tips/howto avoid flooding aggregators]] suffices for...
|
||||
* Converting a simple podcast to a fancy one.
|
||||
7. Set up a non-production copy of one of my podcasts.
|
||||
* Manually test that feeds match production.
|
||||
* Subscribe to the copy in `r2e`, iTunes, Downcast.
|
||||
7. Try migrating the copy from simple to fancy.
|
||||
* Document the steps I take.
|
||||
* Make the feed readers update.
|
||||
* Document what happens for each of them.
|
||||
* Migrating a fancy podcast from elsewhere into ikiwiki.
|
||||
* Think carefully about UTF-8.
|
||||
* Verify that _all_ the tests pass (not just my new ones).
|
||||
|
||||
## Migration
|
||||
|
||||
### Upgrading within ikiwiki: from simple to fancy
|
||||
|
||||
#### My test podcast
|
||||
|
||||
For this test, I chose a podcast that tries to work around ikiwiki's
|
||||
current limitations by issuing two separate `inline`s:
|
||||
|
||||
* One with `feedonly=yes` that includes `.mdwn`, `.pdf`, and `.mp3`
|
||||
* One with `feeds=no` that includes only `.mdwn` (and makes a trail)
|
||||
|
||||
This has the following effects:
|
||||
|
||||
* Browser: sees just the articles (each of which has a manually
|
||||
created link to its corresponding media file)
|
||||
* Feedreader: sees all the articles and media in one flat stream
|
||||
* Podcatcher: sees just the media (sans articles)
|
||||
|
||||
I want instead to write one `inline` with these effects:
|
||||
|
||||
* Browser: sees just the articles (each of which automatically links
|
||||
to its enclosure)
|
||||
* Feedreader: sees just the articles (each of which specifies its
|
||||
enclosure)
|
||||
* Podcatcher: sees just the enclosures (each of which has an enclosing
|
||||
article, rendered as the media's "description")
|
||||
|
||||
#### Upgrade steps
|
||||
|
||||
7. Set up a non-production copy of the podcast.
|
||||
7. Visually diff RSS and Atom feeds against production.
|
||||
7. Subscribe to the copy (both feeds) in `r2e`, iTunes, Downcast.
|
||||
7. Apply fancypodcast patch to the installed ikiwiki:
|
||||
7. `cd ~/Documents/trees/ikiwiki && git checkout fancypodcast`
|
||||
7. `git diff --no-prefix master > ~/Documents/trees/localpatches/www/ikiwiki/fancypodcast.diff`
|
||||
7. `cd ~/Documents/trees/pkgsrc-current/www/ikiwiki && make deinstall && make install clean`
|
||||
7. Verify that simple podcasts are unaffected:
|
||||
7. Rerun `ikiwiki --setup`.
|
||||
7. `diff -uB simple-before.rss simple-after.rss`
|
||||
* A few new elements and attributes, as expected.
|
||||
7. `diff -uB simple-before.atom simple-after.atom`
|
||||
* No change.
|
||||
7. Remove the feed-only `inline` and enable feeds on the remaining one.
|
||||
7. Convert articles' manual download links to `\[[!meta enclosure=""]]`.
|
||||
7. I want existing and future podcatchers to get my new fancy
|
||||
episodes, and I know my podcast isn't in any planets, so I'm
|
||||
going to skip [[tips/howto avoid flooding aggregators]].
|
||||
7. Rerun `ikiwiki --setup`.
|
||||
7. Verify browser shows the same stuff.
|
||||
7. `diff -uB simple-after.rss fancy-after.rss # and atom`
|
||||
* MP3s and PDFs are no longer naked enclosures, but belong to
|
||||
articles as they should.
|
||||
* Articles have updated modification times, as they should.
|
||||
7. `r2e run` (both RSS and Atom)
|
||||
* Nothing new with the default `trust-guid = True` (otherwise
|
||||
would expect updated articles).
|
||||
7. iTunes "Update Podcast" (both RSS and Atom)
|
||||
* Added one episode per article, with article text as the episode
|
||||
description.
|
||||
* Kept old naked-enclosure episodes around.
|
||||
7. Downcast refresh (RSS):
|
||||
* Added one episode per article, with article text as the episode
|
||||
description.
|
||||
* Kept old naked-enclosure episodes around.
|
||||
7. Downcast refresh (Atom):
|
||||
* Added one episode per article, with no episode description
|
||||
(expected, see feature table).
|
||||
* Kept old naked-enclosure episodes around.
|
||||
|
||||
Different tradeoffs are possible. These seem okay to me.
|
||||
|
||||
### Importing into ikiwiki: fancy (from another CMS)
|
||||
|
||||
#### My test podcast
|
||||
|
||||
For this test, I chose a podcast currently being published with
|
||||
Textpattern and tru_podcast, because I'd strongly prefer to publish
|
||||
it with ikiwiki instead.
|
||||
|
||||
#### Upgrade steps
|
||||
|
||||
7. Set up a non-production copy of the podcast.
|
||||
7. Visually diff RSS and Atom feeds against production.
|
||||
7. Subscribe to the copy (both feeds) in `r2e`, iTunes, Downcast.
|
||||
7. With a fancypodcast-enabled ikiwiki installed:
|
||||
7. Copy content from Textpattern to ikiwiki:
|
||||
7. Match article paths to preserve `/YYYY/MM/DD/post-title` permalinks.
|
||||
7. Match enclosure paths (or redirect) to preserve Textpattern's URLs.
|
||||
7. Match titles, post dates, and guids with `\[[!meta]]`.
|
||||
7. Match feed paths with permanent redirects from `/atom/` to
|
||||
`/index.atom` (and same for RSS).
|
||||
7. `\[[!inline]]` the articles.
|
||||
7. Rerun `ikiwiki --setup`.
|
||||
7. Stop Textpattern, start ikiwiki.
|
||||
7. Verify that podcatchers see the feeds and don't redownload anything.
|
||||
7. Naively add two new blog posts, one with an enclosure.
|
||||
7. Verify that podcatchers download the new enclosures.
|
||||
|
||||
-----
|
||||
|
||||
## Future improvements
|
||||
|
@ -122,6 +212,8 @@ Episode enclosure |(./) |(./) |(./) |(./)
|
|||
|
||||
### Other ideas
|
||||
|
||||
* Don't render template text (e.g., "Use this template to insert a
|
||||
note into a page") in feeds.
|
||||
* Optionally specify the enclosure's:
|
||||
* MIME type, in case `File::MimeInfo` guesses wrong.
|
||||
* Duration, in case `ffprobe` guesses wrong.
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue