summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.templates/editpage.tmpl47
-rw-r--r--.templates/newsitem.tmpl6
-rw-r--r--.templates/page.tmpl29
-rw-r--r--ikiwiki.setup105
-rw-r--r--local.css6
-rw-r--r--public_hurd_boxen/installation/darnassus.mdwn2
-rw-r--r--shortcuts.mdwn50
7 files changed, 193 insertions, 52 deletions
diff --git a/.templates/editpage.tmpl b/.templates/editpage.tmpl
index 1ecbd0a9..f43d7232 100644
--- a/.templates/editpage.tmpl
+++ b/.templates/editpage.tmpl
@@ -18,7 +18,7 @@
<TMPL_VAR FIELD-EDITCONTENT><br />
</div>
<TMPL_IF NAME="CAN_COMMIT">
-<label for="editmessage" class="block">Optional comment about this change:</label>
+<label for="editmessage" class="block">Optional description of this change:</label>
<TMPL_VAR FIELD-EDITMESSAGE><br />
</TMPL_IF>
@@ -43,21 +43,52 @@ if there are questions.</p>
<TMPL_VAR HELPONFORMATTINGLINK>
<TMPL_IF NAME="FIELD-ATTACHMENT">
<a class="toggle" href="#attachments">Attachments</a>
+</TMPL_IF>
+<TMPL_VAR FIELD-SUBSCRIBE>
+<TMPL_IF NAME="FIELD-ATTACHMENT">
<div class="<TMPL_VAR ATTACHMENTS-CLASS>" id="attachments">
-<table>
-<tr><td colspan="5"><TMPL_VAR FIELD-ATTACHMENT><TMPL_VAR FIELD-UPLOAD></td></tr>
+<div id="fileupload">
+<script>
+$(function () { $('#fileupload').fileupload(); }); // initialize upload widget
+</script>
+<script id="template-upload" type="text/x-jquery-tmpl">
+ <tr class="template-upload{{if error}} ui-state-error{{/if}}">
+ <td><input type="checkbox" name="attachment_select" value="${name}" />${name}</td>
+ {{if error}}
+ <td class="error" colspan="2">failed!</td>
+ {{else}}
+ <td class="progress" colspan="2"><div></div></td>
+ <td class="start"><button>Start</button></td>
+ {{/if}}
+ <td class="cancel"><button>Cancel</button></td>
+ </tr>
+</script>
+<script id="template-download" type="text/x-jquery-tmpl">
+ <tr class="template-download{{if error}} ui-state-error{{/if}}">
+ <td><input type="checkbox" checked name="attachment_select" value="${name}" />${name}</td>
+ <td>${humansize}</td>
+ {{if error}}
+ <td class="error" colspan="2">failed!</td>
+ {{else}}
+ <td>${stored_msg}</td>
+ {{/if}}
+ </tr>
+</script>
+<div class="fileupload-content">
+<table class="files">
<TMPL_LOOP NAME="ATTACHMENT_LIST">
-<tr><td><TMPL_VAR FIELD-SELECT><TMPL_VAR LINK></td><td><TMPL_VAR SIZE></td><td><TMPL_VAR MTIME></td></tr>
+<tr><td><input type="checkbox" name="attachment_select" value="<TMPL_VAR NAME ESCAPE="HTML">" /><TMPL_VAR LINK></td><td><TMPL_VAR SIZE></td><td><TMPL_VAR MTIME></td></tr>
</TMPL_LOOP>
-<TMPL_IF NAME="ATTACHMENT_LIST">
-<tr><td colspan="2"><TMPL_VAR FIELD-LINK><TMPL_VAR FIELD-RENAME><TMPL_VAR FIELD-REMOVE></td></tr>
-</TMPL_IF>
</table>
</div>
+<TMPL_VAR FIELD-ATTACHMENT>
+<noscript><TMPL_VAR FIELD-UPLOAD></noscript>
+<TMPL_VAR FIELD-LINK><TMPL_VAR FIELD-RENAME><TMPL_VAR FIELD-REMOVE>
+</div>
+</div>
</TMPL_IF>
<TMPL_VAR FORM-END>
<TMPL_VAR WMD_PREVIEW>
-
<TMPL_IF NAME="PAGE_PREVIEW">
<hr />
<div class="header">
diff --git a/.templates/newsitem.tmpl b/.templates/newsitem.tmpl
index e8a9c861..919200bb 100644
--- a/.templates/newsitem.tmpl
+++ b/.templates/newsitem.tmpl
@@ -41,6 +41,12 @@
<TMPL_VAR CONTENT>
<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+<TMPL_IF ENCLOSURE>
+<TMPL_IF HTML5><section id="newsitemenclosure"><TMPL_ELSE><div id="newsitemenclosure"></TMPL_IF>
+<a href="<TMPL_VAR ENCLOSURE>">Download</a>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+</TMPL_IF>
+
<TMPL_IF HTML5><footer class="newsitemfooter"><TMPL_ELSE><div class="newsitemfooter"></TMPL_IF>
<!-- The saved space is more important that the information this provides.
diff --git a/.templates/page.tmpl b/.templates/page.tmpl
index 5192138a..44939cb5 100644
--- a/.templates/page.tmpl
+++ b/.templates/page.tmpl
@@ -21,12 +21,25 @@
<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>
<TMPL_IF FEEDLINKS><TMPL_VAR FEEDLINKS></TMPL_IF>
<TMPL_IF RELVCS><TMPL_VAR RELVCS></TMPL_IF>
<TMPL_IF META><TMPL_VAR META></TMPL_IF>
+<TMPL_LOOP TRAILLOOP>
+<TMPL_IF PREVPAGE>
+<link rel="prev" href="<TMPL_VAR PREVURL>" title="<TMPL_VAR PREVTITLE>" />
+</TMPL_IF>
+<link rel="up" href="<TMPL_VAR TRAILURL>" title="<TMPL_VAR TRAILTITLE>" />
+<TMPL_IF NEXTPAGE>
+<link rel="next" href="<TMPL_VAR NEXTURL>" title="<TMPL_VAR NEXTTITLE>" />
+</TMPL_IF>
+</TMPL_LOOP>
+</TMPL_UNLESS>
+
</head>
<body>
@@ -47,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>
@@ -109,13 +124,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">
@@ -123,6 +144,12 @@
<TMPL_VAR CONTENT>
<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+<TMPL_IF ENCLOSURE>
+<TMPL_IF HTML5><section id="enclosure"><TMPL_ELSE><div id="enclosure"></TMPL_IF>
+<a href="<TMPL_VAR ENCLOSURE>">Download</a>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
+</TMPL_IF>
+
<TMPL_UNLESS DYNAMIC>
<TMPL_IF COMMENTS>
<TMPL_IF HTML5><section id="comments"><TMPL_ELSE><div id="comments"></TMPL_IF>
@@ -144,6 +171,8 @@
<TMPL_UNLESS DYNAMIC>
<TMPL_IF HTML5><nav id="pageinfo"><TMPL_ELSE><div id="pageinfo"></TMPL_IF>
+<TMPL_VAR TRAILS>
+
<TMPL_IF TAGS>
<TMPL_IF HTML5><nav class="tags"><TMPL_ELSE><div class="tags"></TMPL_IF>
Tags:
diff --git a/ikiwiki.setup b/ikiwiki.setup
index b07c582c..27aad971 100644
--- a/ikiwiki.setup
+++ b/ikiwiki.setup
@@ -56,6 +56,12 @@ IkiWiki::Setup::Standard->import({
cgi_wrapper => $cgi_wrapper,
# mode for cgi_wrapper (can safely be made suid)
cgi_wrappermode => '06755',
+ # number of seconds to delay CGI requests when overloaded
+ #cgi_overload_delay => '',
+ # message to display when overloaded (may contain html)
+ #cgi_overload_message => '',
+ # enable optimization of only refreshing committed changes?
+ #only_committed_changes => 0,
# rcs backend to use
rcs => 'git',
# plugins to add to the default configuration
@@ -84,7 +90,7 @@ IkiWiki::Setup::Standard->import({
discussion => 1,
# name of Discussion pages
discussionpage => 'Discussion',
- # generate HTML5? (experimental)
+ # generate HTML5?
html5 => 0,
# only send cookies over SSL connections?
sslcookie => 0,
@@ -102,14 +108,16 @@ IkiWiki::Setup::Standard->import({
numbacklinks => 10,
# attempt to hardlink source files? (optimisation for large files)
hardlink => 1,
- # force ikiwiki to use a particular umask
- #umask => 022,
+ # force ikiwiki to use a particular umask (keywords public, group or private, or a number)
+ #umask => 'public',
# group for wrappers to run in
#wrappergroup => 'ikiwiki',
# extra library and plugin directory
libdir => $srcdir.'/.library',
# environment variables
ENV => {},
+ # time zone name
+ #timezone => 'Europe/Berlin',
# regexp of normally excluded files to include
#include => '^\\.htaccess$',
# regexp of files that should be skipped
@@ -118,6 +126,12 @@ IkiWiki::Setup::Standard->import({
wiki_file_chars => '-[:alnum:]+/.:_',
# allow symlinks in the path leading to the srcdir (potentially insecure)
#allow_symlinks_before_srcdir => 0,
+ # cookie control
+ #cookiejar => {
+ # file => ''
+ #},
+ # set custom user agent string for outbound HTTP requests e.g. when fetching aggregated RSS feeds
+ #useragent => 'Wget/1.13.4 (linux-gnu)',
######################################################################
# core plugins
@@ -207,7 +221,8 @@ IkiWiki::Setup::Standard->import({
######################################################################
# format plugins
- # (creole, highlight, hnb, html, mdwn, otl, rawhtml, textile, txt)
+ # (creole, highlight, hnb, html, mdwn, otl, po, rawhtml, rst,
+ # textile, txt)
######################################################################
# highlight plugin
@@ -221,17 +236,58 @@ IkiWiki::Setup::Standard->import({
# mdwn plugin
# enable multimarkdown features?
#multimarkdown => 0,
+ # disable use of markdown discount?
+ # Testing on Ubuntu raring with libtext-markdown-discount-perl 0.04-1,
+ # libmarkdown2 2.1.5a-1, using libtext-markdown-discount-perl instead
+ # of libtext-markdown-perl introduces quite some (visible) differences
+ # in how certains things are being rendered, and I'm not interested in
+ # auditing all our *.mdwn files, so keep using libtext-markdown-perl.
+ nodiscount => 1,
+
+ # po plugin
+ # master language (non-PO files)
+ #po_master_language => 'en|English',
+ # slave languages (translated via PO files) format: ll|Langname
+ #po_slave_languages => [qw{fr|Français es|Español de|Deutsch}],
+ # PageSpec controlling which pages are translatable
+ #po_translatable_pages => '* and !*/Discussion',
+ # internal linking behavior (default/current/negotiated)
+ #po_link_to => 'current',
######################################################################
- # misc plugins
- # (filecheck)
+ # special-purpose plugins
+ # (osm, underlay)
######################################################################
+ # osm plugin
+ # the default zoom when you click on the map link
+ #osm_default_zoom => 15,
+ # the icon shown on links and on the main map
+ #osm_default_icon => 'ikiwiki/images/osm.png',
+ # the alt tag of links, defaults to empty
+ #osm_alt => '',
+ # the output format for waypoints, can be KML, GeoJSON or CSV (one or many, comma-separated)
+ #osm_format => 'KML',
+ # the icon attached to a tag, displayed on the map for tagged pages
+ #osm_tag_default_icon => 'icon.png',
+ # Url for the OpenLayers.js file
+ #osm_openlayers_url => 'http://www.openlayers.org/api/OpenLayers.js',
+ # Layers to use in the map. Can be either the 'OSM' string or a type option for Google maps (GoogleNormal, GoogleSatellite, GoogleHybrid or GooglePhysical). It can also be an arbitrary URL in a syntax acceptable for OpenLayers.Layer.OSM.url parameter.
+ #osm_layers => {
+ # OSM => 'GoogleSatellite'
+ #},
+ # Google maps API key, Google layer not used if missing, see https://code.google.com/apis/console/ to get an API key
+ #osm_google_apikey => '',
+
+ # underlay plugin
+ # extra underlay directories to add
+ #add_underlays => [qw{}],
+
######################################################################
# web plugins
# (404, attachment, comments, editdiff, edittemplate, getsource,
# google, goto, mirrorlist, remove, rename, repolist, search,
- # theme, websetup, wmd)
+ # theme, userlist, websetup, wmd)
######################################################################
# attachment plugin
@@ -253,6 +309,8 @@ IkiWiki::Setup::Standard->import({
#comments_allowauthor => 0,
# commit comments to the VCS
#comments_commit => 1,
+ # Restrict formats for comments to (no restriction if empty)
+ #comments_allowformats => 'mdwn txt',
# getsource plugin
# Mime type for returned source.
@@ -261,6 +319,8 @@ IkiWiki::Setup::Standard->import({
# mirrorlist plugin
# list of mirrors
#mirrorlist => {},
+ # generate links that point to the mirrors' ikiwiki CGI
+ #mirrorlist_use_cgi => 1,
# repolist plugin
# URIs of repositories containing the wiki's source
@@ -272,6 +332,8 @@ IkiWiki::Setup::Standard->import({
# search plugin
# path to the omega cgi program
#omega_cgi => '/usr/lib/cgi-bin/omega/omega',
+ # use google site search rather than internal xapian index?
+ #google_search => 1,
# theme plugin
# name of theme to enable
@@ -288,10 +350,10 @@ IkiWiki::Setup::Standard->import({
######################################################################
# widget plugins
# (calendar, color, conditional, cutpaste, date, format, fortune,
- # graphviz, haiku, img, linkmap, listdirectives, map, more,
- # orphans, pagecount, pagestats, poll, polygen, postsparkline,
- # progress, shortcut, sparkline, table, template, teximg, toc,
- # toggle, version)
+ # graphviz, haiku, headinganchors, img, linkmap, listdirectives,
+ # map, more, orphans, pagecount, pagestats, poll, polygen,
+ # postsparkline, progress, shortcut, sparkline, table, template,
+ # teximg, toc, toggle, version)
######################################################################
# calendar plugin
@@ -309,6 +371,7 @@ IkiWiki::Setup::Standard->import({
#teximg_dvipng => '',
# LaTeX prefix for teximg plugin
#teximg_prefix => '\\documentclass{article}
+ #\\usepackage[utf8]{inputenc}
#\\usepackage{amsmath}
#\\usepackage{amsfonts}
#\\usepackage{amssymb}
@@ -321,11 +384,11 @@ IkiWiki::Setup::Standard->import({
######################################################################
# other plugins
# (aggregate, autoindex, brokenlinks, camelcase, ddate, embed,
- # favicon, field, flattr, getfield, goodstuff, htmlbalance,
- # localstyle, pagetemplate, pingee, pinger, prettydate,
- # recentchanges, recentchangesdiff, relativedate, rsync,
- # sidebar, smiley, sortnaturally, tag, testpagespec, underlay,
- # ymlfront)
+ # favicon, field, filecheck, flattr, getfield, goodstuff,
+ # htmlbalance, localstyle, notifyemail, pagetemplate, pingee,
+ # pinger, prettydate, recentchanges, recentchangesdiff,
+ # relativedate, rsync, sidebar, smiley, sortnaturally, tag,
+ # testpagespec, trail, transient, ymlfront)
######################################################################
# aggregate plugin
@@ -334,6 +397,10 @@ IkiWiki::Setup::Standard->import({
# allow aggregation to be triggered via the web?
#aggregate_webtrigger => 0,
+ # autoindex plugin
+ # commit autocreated index pages
+ #autoindex_commit => 1,
+
# camelcase plugin
# list of words to not turn into links
#camelcase_ignore => [],
@@ -377,10 +444,8 @@ IkiWiki::Setup::Standard->import({
tagbase => 'tag',
# autocreate new tag pages?
#tag_autocreate => 1,
-
- # underlay plugin
- # extra underlay directories to add
- #add_underlays => '',
+ # commit autocreated tag pages
+ #tag_autocreate_commit => 1,
# ymlfront plugin
# delimiters of YAML data
diff --git a/local.css b/local.css
index 1249dfc7..ef2ce64f 100644
--- a/local.css
+++ b/local.css
@@ -216,13 +216,15 @@ a:hover
padding: 0.5em 0em;
line-height: 1;
}
-.newsitemcontent
+.newsitemcontent,
+.newsitemenclosure
{
padding-left: 0.2em;
padding-top: 0.1em;
}
-.newsitemcontent p
+.newsitemcontent p,
+.newsitemenclosure p
{
margin: 0.3em;
}
diff --git a/public_hurd_boxen/installation/darnassus.mdwn b/public_hurd_boxen/installation/darnassus.mdwn
index 6424df71..2d967a78 100644
--- a/public_hurd_boxen/installation/darnassus.mdwn
+++ b/public_hurd_boxen/installation/darnassus.mdwn
@@ -27,6 +27,8 @@ License|/fdl]]."]]"""]]
* libyaml-perl libyaml-syck-perl (for ikiwiki's YAML field plugins)
+ * libtext-markdown-perl (used instead of libtext-markdown-discount-perl)
+
* gitweb highlight
sudo ln -s ~hurd-web/hurd-web.git /var/lib/git/
diff --git a/shortcuts.mdwn b/shortcuts.mdwn
index 1347e853..978cca6c 100644
--- a/shortcuts.mdwn
+++ b/shortcuts.mdwn
@@ -7,33 +7,33 @@ Some examples of using shortcuts include:
\[[!google foo]]
\[[!wikipedia War_of_1812]]
\[[!debbug 12345]]
- Check the \[[!cia ikiwiki desc="CIA page for %s"]].
+ Check the \[[!google ikiwiki desc="google search for %s"]].
This page controls what shortcut links the wiki supports.
-* [[!shortcut name=google url="http://www.google.com/search?q=%s"]]
+* [[!shortcut name=google url="https://encrypted.google.com/search?q=%s"]]
* [[!shortcut name=archive url="http://web.archive.org/*/%S"]]
-* [[!shortcut name=gmap url="http://maps.google.com/maps?q=%s"]]
-* [[!shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
-* [[!shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%S"]]
-* [[!shortcut name=wikitravel url="http://wikitravel.org/en/%s"]]
-* [[!shortcut name=wiktionary url="http://en.wiktionary.org/wiki/%s"]]
+* [[!shortcut name=gmap url="https://maps.google.com/maps?q=%s"]]
+* [[!shortcut name=gmsg url="https://groups.google.com/groups?selm=%s"]]
+* [[!shortcut name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]
+* [[!shortcut name=wikitravel url="https://wikitravel.org/en/%s"]]
+* [[!shortcut name=wiktionary url="https://en.wiktionary.org/wiki/%s"]]
* [[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]
-* [[!shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
+* [[!shortcut name=deblist url="https://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
* [[!shortcut name=debpkg url="http://packages.debian.org/%s"]]
* [[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]
* [[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
-* [[!shortcut name=debmsg url="http://lists.debian.org/msgid-search/%s"]]
+* [[!shortcut name=debmsg url="https://lists.debian.org/msgid-search/%s"]]
* [[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
* [[!shortcut name=debss url="http://snapshot.debian.org/package/%s/"]]
- * Usage: `\[[!debss package]]` or `\[[!debss package/version]]`. See http://snapshot.debian.org for details.
-* [[!shortcut name=debwiki url="http://wiki.debian.org/%s"]]
+ * Usage: `\[[!debss package]]` or `\[[!debss package/version]]`. See <http://snapshot.debian.org/> for details.
+* [[!shortcut name=debwiki url="https://wiki.debian.org/%s"]]
* [[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
* [[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
-* [[!shortcut name=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
-* [[!shortcut name=linuxbug url="http://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
+* [[!shortcut name=gnomebug url="https://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
+* [[!shortcut name=linuxbug url="https://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
* [[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
-* [[!shortcut name=gnulist url="http://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
+* [[!shortcut name=gnulist url="https://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
* [[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]
* [[!shortcut name=marclist url="http://marc.info/?l=%s"]]
* [[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
@@ -43,7 +43,7 @@ This page controls what shortcut links the wiki supports.
* [[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
* [[!shortcut name=iki url="http://ikiwiki.info/%S/"]]
* [[!shortcut name=ljuser url="http://%s.livejournal.com/"]]
-* [[!shortcut name=rfc url="http://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
+* [[!shortcut name=rfc url="https://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
* [[!shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
* [[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
* [[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
@@ -53,18 +53,24 @@ This page controls what shortcut links the wiki supports.
* [[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
* [[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
* [[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
-* [[!shortcut name=cve url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
-* [[!shortcut name=cia url="http://cia.vc/stats/project/%s"]]
-* [[!shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
-* [[!shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
+* [[!shortcut name=cve url="https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
+* [[!shortcut name=flickr url="https://secure.flickr.com/photos/%s"]]
* [[!shortcut name=man url="http://linux.die.net/man/%s"]]
-* [[!shortcut name=ohloh url="http://www.ohloh.net/projects/%s"]]
+* [[!shortcut name=ohloh url="https://www.ohloh.net/p/%s"]]
+* [[!shortcut name=cpanrt url="https://rt.cpan.org/Ticket/Display.html?id=%s" desc="CPAN RT#%s"]]
+* [[!shortcut name=novellbug url="https://bugzilla.novell.com/show_bug.cgi?id=%s" desc="bug %s"]]
+* [[!shortcut name=ubupkg url="http://packages.ubuntu.com/%s"]]
+* [[!shortcut name=mozillazinekb url="http://kb.mozillazine.org/%s"]]
+* [[!shortcut name=freebsdwiki url="http://wiki.freebsd.org/%s"]]
+* [[!shortcut name=hackage url="http://hackage.haskell.org/package/%s"]]
To add a new shortcut, use the `shortcut`
[[ikiwiki/directive]]. In the url, "%s" is replaced with the
text passed to the named shortcut, after [[!wikipedia url_encoding]]
-it, and '%S' is replaced with the raw, non-encoded text. The optional
-`desc` parameter controls the description of the link.
+it, and '%S' is replaced with the raw, non-encoded text.
+Additionally, `%W` is replaced with the text encoded just right for
+Wikipedia. The optional `desc` parameter controls the description of
+the link.
Remember that the `name` you give the shortcut will become a new
[[ikiwiki/directive]]. Avoid using a `name` that conflicts