Skip to content

Commit

Permalink
Merge branch 'master' into cvs
Browse files Browse the repository at this point in the history
  • Loading branch information
schmonz committed Feb 23, 2013
2 parents b584657 + f82bcfc commit 48c82a9
Show file tree
Hide file tree
Showing 11 changed files with 214 additions and 5 deletions.
6 changes: 3 additions & 3 deletions IkiWiki.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1433,7 +1433,7 @@ sub preprocess ($$$;$$) {
# consider it significant.
my @params;
while ($params =~ m{
(?:([-\w]+)=)? # 1: named parameter key?
(?:([-.\w]+)=)? # 1: named parameter key?
(?:
"""(.*?)""" # 2: triple-quoted value
|
Expand Down Expand Up @@ -1530,7 +1530,7 @@ sub preprocess ($$$;$$) {
( # 4: the parameters..
\s+ # Must have space if parameters present
(?:
(?:[-\w]+=)? # named parameter key?
(?:[-.\w]+=)? # named parameter key?
(?:
""".*?""" # triple-quoted value
|
Expand Down Expand Up @@ -1558,7 +1558,7 @@ sub preprocess ($$$;$$) {
\s+
( # 4: the parameters..
(?:
(?:[-\w]+=)? # named parameter key?
(?:[-.\w]+=)? # named parameter key?
(?:
""".*?""" # triple-quoted value
|
Expand Down
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
ikiwiki (3.20130213) UNRELEASED; urgency=low

* Allow dots in directive parameter names. (tango)

-- Joey Hess <joeyh@debian.org> Fri, 15 Feb 2013 17:23:12 -0400

ikiwiki (3.20130212) unstable; urgency=low

* htmlscrubber: Allow the bitcoin URI scheme.
Expand Down
9 changes: 9 additions & 0 deletions doc/bugs/sidebar_not_updated_in_unedited_subpages.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
I turned on the sidebar plugin, with global_sidebars on (in the web setup page), created a sidebar page in the root, and edited the sidebar a few times.

I then noticed that all pages on the root had been updated with a sidebar, but no subpages (i.e. a/b). Only after editing a subpage did it get a sidebar. Editing sidebar itself only updated subpages with sidebars, the other subpages had not been refreshed (proven by their unchanged filesystem date)

After calling ikiwiki --setup on the command line all pages were updated. So this seems to be a difference between web-started --setup and command-line --setup. Or it just doesn't work the first time --setup is called after sidebars are enabled.




36 changes: 36 additions & 0 deletions doc/bugs/template_creation_error.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Hi,
I am trying to build a template. The compilation of this template results in a weird exception. I have isolated the cause of the exception to the following point:

If i have this in the template code:

\[[!inline<br/>
pages="\<TMPL_VAR SEL_PAGES\>"<br/>
template=extract-entry<br/>
\]]<br/>

There is no problem at all. I can use the template with the desired result. But if I try to use this (just adding the "show" parameter):

\[[!inline <br/>
pages="\<TMPL_VAR SEL_PAGES>"<br/>
template=extract-entry<br/>
show=\<TMPL_VAR CNTPG><br/>
\]]<br/>

I get this exception on the Git bash console:

<pre>
$ git push
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 410 bytes, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: From /home/b-odelama-com/source
remote: eb1421e..5e1bac5 master -> origin/master
remote: Argument "\x{3c}\x{54}..." isn't numeric in numeric lt (<) at /usr/share/perl5/IkiWiki/Plugin/inline.pm line 231.
remote: Argument "\x{3c}\x{54}..." isn't numeric in numeric lt (<) at /usr/share/perl5/IkiWiki/Plugin/inline.pm line 231.
To ssh://b-odelama-com@odelama-com.branchable.com/
eb1421e..5e1bac5 master -> master
</pre>

Please, let me know what to do to avoid this kind of error.
3 changes: 3 additions & 0 deletions doc/forum/Email_notifications_for_comment_moderation.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
I use both [[plugins/moderatedcomments/]] and [[plugins/anonok]] on my [blog](http://feeding.cloud.geek.nz) but having to remember to visit the comment moderation page manually is not ideal.

Is there a way to get an email notification (or maybe even just an RSS feed) whenever a new comment enters the moderation queue?
13 changes: 13 additions & 0 deletions doc/plugins/contrib/proxies.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[[!template id=plugin name=proxies author="[[schmonz]]"]]
[[!template id=gitbranch branch=schmonz/proxies author="[[schmonz]]"]]
[[!tag type/format]]

This plugin enables ikiwiki to open outbound connections (such as
found in [[plugins/aggregate]], [[plugins/openid]], and [[plugins/pinger]])
via a proxy. The proxy can be configurably avoided for connections
to certain domains.

### To do

* Move duplicated user-agent setup out of other plugins into this one.
* While I'm at it, fix [[bugs/http_proxy_for_openid]].
22 changes: 22 additions & 0 deletions doc/plugins/contrib/wc.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[[!template id=plugin name=wc author="[[schmonz]]"]]
[[!template id=gitbranch branch=schmonz/wc author="[[schmonz]]"]]
[[!tag type/meta]]
[[!tag patch]]

This plugin counts words in a page. For a single page, write a
`\[[!wc]]` directive and the word count will be interpolated there.
For a site, add `<TMPL_VAR WORDCOUNT>` to your [[templates]].

If [[!cpan HTML::Strip]] is installed, the wordcount will be slightly
more accurate.

Possible enhancements:

* Optimize: count words iff the result will be displayed. `sanitize()`
seems like the right place to count. Since it's called well after
`preprocess()`, I can tell whether a directive needs the result,
but since it appears to be called before `pagetemplate()`, I can't
tell whether a template wants to know and possibly skip the
computation. (In other words, if I add `$needed_for_template`
like `$needed_for_directive`, it gets set too late for `sanitize()`
to see.)
8 changes: 7 additions & 1 deletion doc/setup/byhand.mdwn
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,15 @@ will set everything up.

## Turn on additional features.

[[!template id="note" text="""
CGI configuration is heavily dependent on webserver. Figure out (or
configure) the location and/or filename extension your webserver
needs to execute a CGI, then set `cgi_wrapper` to a suitable path.
"""]]

Now you have a basic wiki with a setup file. Time to experiment
with ikiwiki's many features.

Let's first enable a key wiki feature and set up [[CGI]] to allow
editing the wiki from the web. Just edit ikiwiki.setup, uncomment the
settings for the `cgi_wrapper`, make sure the filename for the cgi wrapper
Expand Down
113 changes: 113 additions & 0 deletions doc/todo/fancypodcast.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
ikiwiki's simple podcasting, while elegant and minimal, doesn't (as
mentioned in [[todo/blogging]]) produce full-featured feeds. In
fancy podcasts, episodes are accompanied by text content. The feeds
also have lots more metadata.

[[!toc]]

## Design

7. For each fancy podcast episode, write a blog post containing
`\[[!meta enclosure="WikiLink/to/media.mp3"]]`. (Don't specify
more than one enclosure -- but if you do, last one wins.)
7. When rendering to HTML (single-page or inlined), append a link
to the media file.
7. When rendering to RSS/Atom, the text is the entry's content and
the media file is its enclosure.
7. Don't break simple podcasts in pursuit of fancy podcasts.

## Implementation

[[!template id=gitbranch branch=schmonz/fancypodcast author="[[schmonz]]"]]
[[!tag patch]]

### Completed

* Cover the existing simple podcast behavior with tests.
* Add an `enclosure` field to [[plugins/meta]] that expands the
given [[ikiwiki/WikiLink]] to an absolute URL (feed enclosures
pretty much need to be, and the reference feeds I've looked at
all do this).
* Write failing tests for the desired single-page and inlined
HTML behavior, then make them pass by adding enclosure stanzas
to `{,inline}page.tmpl`.
* Write failing tests for the desired RSS/Atom behavior, then make
them pass via changes to `{atom,rss}item.tmpl` and [[plugins/inline]].
* Match feature-for-feature with
[tru_podcast](http://www.rainskit.com/blog/542/tru_podcast-a-podcasting-plugin-for-textpattern)
(what [[schmonz]] will be migrating from).
* Enrich [feed metadata](http://cyber.law.harvard.edu/rss/rss.html)
by catching up `rsspage.tmpl` to `atompage.tmpl`.
* Verify that [[plugins/more]] plays well with fancy podcasts.
* Verify that the feeds validate.
* Subscribe to a fancy feed in some common podcatchers and verify
display details against a reference podcast.

### Status

[[!table data="""
Feature |iTunes RSS|iTunes Atom|Downcast RSS|Downcast Atom
Feed image | | | |
Feed title |(./) |(./) |(./) |(./)
Feed publisher | | | |
Feed "category" | | | |
Feed date |(./) |(./) |(./) |(./)
Feed description | | | |
Episode image | | | |
Episode title |(./) |(./) |(./) |(./)
Episode date |(./) |(./) |(./) |(./)
Episode duration | | | |
Episode author |(./) |(./) |(./) |(./)
Episode description|(./) |(./) |(./) |
Episode enclosure |(./) |(./) |(./) |(./)
"""]]

### Must-have (for [[schmonz]], anyway)

* Think carefully about...
* UTF-8.
* Other templates with `CONTENT` and whether they want to learn
about `ENCLOSURE` (maybe `aggregatepost.tmpl`?).
* Whether [[tips/howto avoid flooding aggregators]] suffices for
migrating a fancy podcast into ikiwiki.
* Verify that _all_ the tests pass (not just my new ones).

-----

## Future improvements

### iTunes fancy podcasting

* [iTunes-specific tags](https://www.apple.com/itunes/podcasts/specs.html)
appear to be RSS-only
* If they work in Atom, teach `inline` to optionally iTunesify RSS/Atom.
* Else, add `itunes` as a third kind of feed (RSS plus more stuff).
* Notable tags for feeds:
* `itunes:subtitle`
* `itunes:author`
* `itunes:summary` (same as `description`)
* `itunes:owner` (includes `itunes:name` and `itunes:email`)
* `itunes:image href=''`
* `itunes:publisher`
* `itunes:category text=''` (can contain subcategories)
* `itunes:keywords`
* Notable tags for entries:
* `itunes:duration`
* [[!cpan Audio::TagLib]] might be fastest, if present and applicable
* [ffprobe](http://ffmpeg.org/ffprobe.html) is reasonably fast
* [mediainfo](http://mediainfo.sourceforge.net/) is way slower
* Cache computed durations as pagestate

### Other ideas

* Optionally specify the enclosure's:
* MIME type, in case `File::MimeInfo` guesses wrong.
* Duration, in case `ffprobe` guesses wrong.
* Optionally specify enclosures outside the wiki:
* Some people don't want to store big unchanging files in the VCS.
* Other people like [podcasting found media](http://huffduffer.com/about).
* We'd have to download the file just to compute some metadata
about it, and then somehow not frequently re-download it.
* 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).
1 change: 1 addition & 0 deletions doc/todo/hook_to_detect_markdown_links_to_wiki_pages.mdwn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
For an internal wiki, we occasionally get patches that link to internal wiki pages using the Markdown link syntax. I'd love to see an optional git hook to detect that and complain.
2 changes: 1 addition & 1 deletion doc/users/schmonz.mdwn
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
for all sorts of things. His attempts at contributing:

[[!map
pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs)"
pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs or todo/fancypodcast)"
]]

He's also written a plugin for [WIND
Expand Down

0 comments on commit 48c82a9

Please sign in to comment.