$form->field(name => "email", size => 50, fieldset => "preferences");
$form->field(name => "subscriptions", size => 50,
fieldset => "preferences",
- comment => "(".htmllink("", "", "PageSpec", noimageinline => 1).")");
+ comment => "(".htmllink("", "", "ikiwiki/PageSpec", noimageinline => 1).")");
$form->field(name => "banned_users", size => 50,
fieldset => "admin");
$form->tmpl_param("can_commit", $config{rcs});
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
- htmllink("", "", "HelpOnFormatting", noimageinline => 1));
+ htmllink("", "", "ikiwiki/formatting",
+ noimageinline => 1,
+ linktext => "FormattingHelp"));
$form->tmpl_param("baseurl", baseurl());
if ($form->submitted eq "Cancel") {
if ($form->title eq "preferences") {
$form->field(name => "locked_pages", size => 50,
fieldset => "admin",
- comment => "(".htmllink("", "", "PageSpec", noimageinline => 1).")");
+ comment => "(".htmllink("", "", "ikiwiki/PageSpec", noimageinline => 1).")");
if (! IkiWiki::is_admin($user_name)) {
$form->field(name => "locked_pages", type => "hidden");
}
$form->field(
name => "openid_url",
- label => gettext("Log in with")." ".htmllink("", "", "OpenID", noimageinline => 1),
+ label => gettext("Log in with")." ".htmllink("", "", "ikiwiki/OpenID", noimageinline => 1),
fieldset => "OpenID",
size => 30,
comment => ($config{openidsignup} ? " | <a href=\"$config{openidsignup}\">".gettext("Get an OpenID")."</a>" : "")
ikiwiki (2.16) UNRELEASED; urgency=low
- * Remove .otl file from sandbox to avoid build ugliness. Closes: #454181
+ * Major basewiki reorganisation. Most pages moved into ikiwiki/ subdirectory
+ to avoid polluting the main namespace, and some were further renamed.
* meta: Add redir support, based on a patch by Thomas Schwinge.
+ * Redirs added for moved basewiki pages. These will be removed in a future
+ release.
+ * Remove .otl file from sandbox to avoid build ugliness. Closes: #454181
-- Joey Hess <joeyh@debian.org> Mon, 03 Dec 2007 14:47:36 -0500
* Rather than inventing yet another simplistic, linear version control system, ikiwiki uses a standard version control system such as [[Subversion|rcs/svn]] or [[rcs/Git]]. You can edit a wiki by committing to your repository, as well as through a traditional web interface. This makes ikiwiki ideal for collaborative software development; just keep your wiki in version control next to your software. You can also take full advantage of the features of these systems; for instance, you can keep a local branch of your wiki via [[rcs/Git]].
-* You can turn any set of pages into a [[blog]] or similar news feed,
+* You can turn any set of pages into a [[ikiwiki/blog]] or similar news feed,
* complete with RSS and Atom support. You can run your weblog on ikiwiki (and [[many_people_do|ikiwikiusers]]), run a Planet-like [[aggregator|plugins/aggregate]] for external feeds, or keep a [[TODO]] and [[bug|bugs]] list with tags for completed items.
* ikiwiki provides a wiki compiler, designed to transform your wiki content into a set of static pages. You can then serve these pages as static content. ikiwiki will not fall over during a Slashdotting, because page views don't require the ikiwiki CGI; as long as your web server can keep up, your site will survive. Furthermore, you can choose whether you want to run the ikiwiki CGI for web edits or only handle commits to the underlying version control system; you can even run ikiwiki privately and just manually copy the content to another server. So if you want to put a wiki up on a server without installing any software on that server, try ikiwiki.
* [[index]]
* [[sandbox]]
-* [[blog]]
-* [[HelpOnFormatting]]
-* [[markdown]]
-* [[openid]]
-* [[pagespec]]
-* [[PreprocessorDirective]]
* [[shortcuts]]
-* [[subpage]]
-* [[wikilink]]
+* [[templates]]
+* [[ikiwiki/blog]]
+* [[ikiwiki/formatting]]
+* [[ikiwiki/markdown]]
+* [[ikiwiki/openid]]
+* [[ikiwiki/pagespec]]
+* [[ikiwiki/PreprocessorDirective]]
+* [[ikiwiki/subpage]]
+* [[ikiwiki/wikilink]]
As well as a few other files, like [[favicon.ico]], [[local.css]],
[[style.css]], and some icons.
> want multiple words.
>
> This was a decision I made a long time ago due to the ambiguity between a
-> WikiLink and a [[PreProcessorDirective]]. Is "\[[foo bar|baz]]" a wikilink to
+> WikiLink and a [[ikiwiki/PreProcessorDirective]]. Is "\[[foo bar|baz]]" a wikilink to
> baz with a link text of "foo bar", or an instance of preprocessor
> directive "foo" with a parameter of "bar|baz"? If it's interpreted as a
> wikilink today, that could change tomorrow if a new preprocessor directive
The [[plugins/brokenlinks]] plugin falsely complains that
-[[helponformatting]] has a broken link to [[smileys]], if the smiley plgin
-is disabled. While the helponformatting page links to it inside a
+[[ikiwiki/formatting]] has a broken link to [[smileys]], if the smiley plgin
+is disabled. While the page links to it inside a
conditional, and so doesn't show the link in this case, ikiwiki scans for
links w/o looking at conditionals and so still thinks the page contains the
link.
-The [[linking_rules|subpage/linkingrules]] should document how to link to a page at the root of the wiki when a normal, unadorned link would use a page of the same name further down the hierarchy. For example, how should [[todo/latex]] link to [[logo]] rather than [[todo/logo|todo/logo]]?
+The [[linking_rules|ikiwiki/subpage/linkingrules]] should document how to
+link to a page at the root of the wiki when a normal, unadorned link would
+use a page of the same name further down the hierarchy. For example, how
+should [[todo/latex]] link to [[logo]] rather than [[todo/logo|todo/logo]]?
> [[bugs/done]].. the syntax to use is "/logo" --[[Joey]]
-In [[markdown]] syntax, none of the other special characters get processed
+In [[ikiwiki/markdown]] syntax, none of the other special characters get processed
inside a code block. However, in ikiwiki, [[wiki_links|wikilink]] and
-[[preprocessor_directives|preprocessordirective]] still get processed
+[[preprocessor_directives|ikiwiki/preprocessordirective]] still get processed
inside a code block, requiring additional escaping. For example, `[links
don't work](#here)`, but `a [[wikilink]] becomes HTML`. --[[JoshTriplett]]
## Supports many markup languages
-By default, pages in the wiki are written using the [[MarkDown]] format.
+By default, pages in the wiki are written using the [[ikiwiki/MarkDown]] format.
Any page with a filename ending in ".mdwn" is converted from markdown to html
by ikiwiki. Markdown understands text formatted as it would be in an email,
and is quite smart about converting it to html. The only additional markup
-provided by ikiwiki on top of regular markdown is the [[WikiLink]] and
-[[PreprocessorDirective]].
+provided by ikiwiki on top of regular markdown is the [[ikiwiki/WikiLink]] and
+[[ikiwiki/PreprocessorDirective]].
If you prefer to use some other markup language, ikiwiki allows others to
easily be added by [[plugins]]. For example it also supports traditional
## Blogging
-You can turn any page in the wiki into a [[blog]]. Pages matching a
-specified [[PageSpec]] will be displayed as a weblog within the blog
+You can turn any page in the wiki into a [[ikiwiki/blog]]. Pages matching a
+specified [[ikiwiki/PageSpec]] will be displayed as a weblog within the blog
page. And RSS or Atom feeds can be generated to follow the blog.
Ikiwiki's own [[TODO]], [[news]], and [[plugins]] pages are good examples
Plugins can be used to add additional features to ikiwiki. The interface
is quite flexible, allowing plugins to implement additional markup
-languages, register [[PreProcessorDirective]]s, hook into [[CGI]] mode,
+languages, register [[ikiwiki/PreProcessorDirective]]s, hook into [[CGI]] mode,
and more. Most of ikiwiki's features are actually provided by plugins.
Ikiwiki's backend RCS support is also pluggable, so support for new
revision control systems can be added to ikiwiki.
up in the ways you'd expect, like at the bottom of pages, in blogs, and
in RSS and Atom feeds.
-### [[SubPages|SubPage]]
+### [[SubPages|ikiwiki/SubPage]]
Arbitrarily deep hierarchies of pages with fairly simple and useful
-[[SubPage/LinkingRules]]
+[[ikiwiki/SubPage/LinkingRules]]
### [[BackLinks]]
-[[meta title="Help on formatting wiki pages"]]
+[[meta title="Formatting wiki pages"]]
Text on this wiki is, by default, written in a form very close to how you
might write text for an email message. This style of text formatting is
is a minimal markup language that resembles plain text as used in
email messages. It is the markup language used by this wiki by default.
-For documentation about the markdown syntax, see [[HelpOnFormatting]] and
+For documentation about the markdown syntax, see [[formatting]] and
[Markdown: syntax](http://daringfireball.net/projects/markdown/syntax). A
[markdown mode](http://jrblevin.freeshell.org/software/markdown-mode/) for
emacs can help in editing.
Note that [[WikiLink]]s and [[PreProcessorDirective]]s are not part of the
markdown syntax, and are the only bit of markup that this wiki handles
internally.
-
Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages
suitable for publishing on a website. Ikiwiki stores pages and history in a
[[revision_control_system|rcs]] such as [[Subversion|rcs/svn]] or [[rcs/Git]].
-There are many other [[features]], including support for [[blogging|blog]],
-as well as a large array of [[plugins]].
+There are many other [[features]], including support for
+[[blogging|ikiwiki/blog]], as well as a large array of [[plugins]].
[[template id=links]]
To lock a page, log into the wiki as whatever user is configured as the
admin, and in your Preferences page, you'll find a field listing locked
-pages. This is a [[PageSpec]], so you have a fair bit of control over what
-kinds of pages to lock. For example, you could choose to lock all pages
-created before 2006, or all pages that are linked to from the page named
-"locked". More usually though, you'll just list some names of pages to lock.
+pages. This is a [[ikiwiki/PageSpec]], so you have a fair bit of control
+over what kinds of pages to lock. For example, you could choose to lock all
+pages created before 2006, or all pages that are linked to from the page
+named "locked". More usually though, you'll just list some names of pages
+to lock.
One handy thing to do if you're using ikiwiki for your blog is to lock
"* and !*/Discussion". This prevents others from adding to or modifying
more frequently than once every 15 minutes, and puts a page per post under
the example/ directory in the wiki.
-You can then use ikiwiki's [[blog]] support to create a blog of one or more
-aggregated feeds.
+You can then use ikiwiki's [[ikiwiki/blog]] support to create a blog of one or
+more aggregated feeds.
## setup
a useful way to find pages that still need to be written, or links that
are written wrong.
-The optional parameter "pages" can be a [[PageSpec]] specifying the pages
-to search for broken links, default is search them all.
+The optional parameter "pages" can be a [[ikiwiki/PageSpec]] specifying the
+pages to search for broken links, default is search them all.
If this plugin is turned on, here's a list of broken links on this wiki:
* `type` - Used to specify the type of calendar wanted. Can be one of
"month" or "year". The default is a month view calendar.
-* `pages` - Specifies the [[PageSpec]] of pages to link to from the
+* `pages` - Specifies the [[ikiwiki/PageSpec]] of pages to link to from the
month calendar. Defaults to "*".
* `archivebase` - Configures the base of the archives hierarchy. The
default is "archives". Note that this default can also be overridden
in the wiki page outside the template. Triple-quoting the values even allows
quotes to be included.
-The `test` is a [[PageSpec]]; if it matches any page in the wiki then it
-succeeds. So you can do things like testing for the existence of a page or
-pages, testing to see if any pages were created in a given month, and so
-on.
+The `test` is a [[ikiwiki/PageSpec]]; if it matches any page in the wiki
+then it succeeds. So you can do things like testing for the existence of a
+page or pages, testing to see if any pages were created in a given month,
+and so on.
-If you want the [[PageSpec]] to only match against the page that
+If you want the [[ikiwiki/PageSpec]] to only match against the page that
contains the conditional, rather than matching against all pages in the
wiki, set the "all" parameter to "no".
-The regular [[PageSpec]] syntax is expanded with the following additional
-tests:
+The regular [[ikiwiki/PageSpec]] syntax is expanded with the following
+additional tests:
* enabled(plugin)
[[template id=plugin name=inline core=1 author="[[Joey]]"]]
-This is a [[PreProcessorDirective]] that allows including one wiki page
+This is a [[ikiwiki/PreProcessorDirective]] that allows including one wiki page
inside another. For example:
\[[inline pages="blog/*"]]
The most common use of inlining is generating blogs and RSS or Atom feeds.
-See [[blog]] for details.
+See [[ikiwiki/blog]] for details.
Here are descriptions of all the supported parameters to the `linkmap`
directive:
-* `pages` - A [[PageSpec]] of the pages to map.
+* `pages` - A [[ikiwiki/PageSpec]] of the pages to map.
* `height`, `width` - Limit the size of the map to a given height and width,
in inches. Both must be specified for the limiting to take effect, otherwise
the map's size is not limited.
the wiki are mapped.
Hint: To limit the map to displaying pages less than a certain level deep,
-use a [[PageSpec]] like this: `pages="* and !*/*/*"`
+use a [[ikiwiki/PageSpec]] like this: `pages="* and !*/*/*"`
[[if test="enabled(map)" then="""
Here's an example map, for the plugins section of this wiki:
[[tag type/format]]
This plugin lets ikwiki convert files with names ending in ".mdwn" to html.
-It uses the [[markdown]] minimal markup language.
+It uses the [[ikiwiki/markdown]] minimal markup language.
This is the standard markup language used by ikiwiki, although some others
are also available in other plugins.
This plugin generates a list of possibly orphaned pages -- pages that no
other page links to.
-The optional parameter "pages" can be a [[PageSpec]] specifying the pages
-to check for orphans, default is search them all.
+The optional parameter "pages" can be a [[ikiwiki/PageSpec]] specifying the
+pages to check for orphans, default is search them all.
Note that it takes [[BackLinks]] into account, but does not count inlining a
page as linking to it, so will generally count many blog-type pages as
[[template id=plugin name=pagecount author="[[Joey]]"]]
[[tag type/meta]]
-Provides a \\[[pagecount ]] [[PreProcessorDirective]] that is replaced with
-the total number of pages currently in the wiki.
+Provides a \\[[pagecount ]] [[ikiwiki/PreProcessorDirective]] that is
+replaced with the total number of pages currently in the wiki.
-The optional parameter "pages" can be a [[PageSpec]] specifying the pages
-to count, default is to count them all.
+The optional parameter "pages" can be a [[ikiwiki/PageSpec]] specifying the
+pages to count, default is to count them all.
This plugin is included in ikiwiki, but is not enabled by default.
You don't need to specify any data points (though you can if you want to).
Instead, data points are automatically generated based on the creation
-times of pages matched by the specified `pages` [[PageSpec]]. A maximum of
-`max` data points will be generated.
+times of pages matched by the specified `pages` [[ikiwiki/PageSpec]]. A
+maximum of `max` data points will be generated.
The `formula` parameter controls the formula used to generate data points.
Available forumlae:
* There are issues with inserting raw html into documents, as ikiwiki
does with [[WikiLinks|WikiLink]] and many
- [[PreprocessorDirectives|PreprocessorDirective]].
+ [[PreprocessorDirectives|ikiwiki/PreprocessorDirective]].
So while you may find this useful for importing old files into your wiki,
using this as your main markup language in ikiwiki isn't recommended at
"sidebar" (ie, create a "sidebar.mdwn").
Typically this will be a page in the root of the wiki, but it can also be a
-[[SubPage]]. In fact, this page, [[plugins/sidebar|plugins/sidebar]], will
-be treated as a sidebar for the [[plugins]] page, and of all of its
-SubPages, if the plugin is enabled.
+[[ikiwiki/SubPage]]. In fact, this page,
+[[plugins/sidebar|plugins/sidebar]], will be treated as a sidebar for the
+[[plugins]] page, and of all of its SubPages, if the plugin is enabled.
-Note that to disable a sidebar for a [[SubPage]] of a page that has a sidebar,
-you can create a sidebar page that is completely empty. This will turn off
-the sidebar altogether.
+Note that to disable a sidebar for a [[ikiwiki/SubPage]] of a page that has
+a sidebar, you can create a sidebar page that is completely empty. This
+will turn off the sidebar altogether.
Warning: Any change to the sidebar will cause a rebuild of the whole wiki,
since every page includes a copy that has to be updates. This can
\[[tag tech life linux]]
The tags work the same as if you had put a (hidden) [[WikiLink]] on the page
-for each tag, so you can use a [[PageSpec]] match all pages that are
+for each tag, so you can use a [[ikiwiki/PageSpec]] match all pages that are
tagged with a given tag, for example. The tags will also show up on blog
entries and at the bottom of the tagged pages, as well as in RSS and Atom
feeds.
[[template id=plugin name=testpagespec author="[[Joey]]"]]
[[tag type/useful]]
-This plugin allows testing a [[PageSpec]] to see if it matches a page, and
-to see the part that matches, or causes the match to fail.
+This plugin allows testing a [[ikiwiki/PageSpec]] to see if it matches a
+page, and to see the part that matches, or causes the match to fail.
Example uses:
\[[testpagespec pagespec="foopage and barpage" match="foopage"]]
-This will print out something like "no match: barpage does not match foopage",
-highlighting which part of the [[PageSpec]] is causing the match to fail.
+This will print out something like "no match: barpage does not match
+foopage", highlighting which part of the [[ikiwiki/PageSpec]] is causing
+the match to fail.
\[[testpagespec pagespec="foopage or !bar*" match="barpage"]]
This will print out something like "no match: bar* matches barpage", since
-the part of the [[PageSpec]] that fails is this negated match.
+the part of the [[ikiwiki/PageSpec]] that fails is this negated match.
\[[testpagespec pagespec="foopage or barpage" match="barpage"]]
This will print out something like "match: barpage matches barpage",
-indicating the part of the [[PageSpec]] that caused it to match.
+indicating the part of the [[ikiwiki/PageSpec]] that caused it to match.
### preprocess
-Adding a [[PreProcessorDirective]] is probably the most common use of a
-plugin.
+Adding a [[ikiwiki/PreProcessorDirective]] is probably the most common use
+of a plugin.
hook(type => "preprocess", id => "foo", call => \&preprocess);
be run twice per page build, so avoid doing it for expensive hooks.
Note that if the [[htmlscrubber]] is enabled, html in
-[[PreProcessorDirective]] output is sanitised, which may limit what your
-plugin can do. Also, the rest of the page content is not in html format at
-preprocessor time. Text output by a preprocessor directive will be
-linkified and passed through markdown (or whatever engine is used to htmlize
-the page) along with the rest of the page.
+[[ikiwiki/PreProcessorDirective]] output is sanitised, which may limit what
+your plugin can do. Also, the rest of the page content is not in html
+format at preprocessor time. Text output by a preprocessor directive will
+be linkified and passed through markdown (or whatever engine is used to
+htmlize the page) along with the rest of the page.
### htmlize
Note that while any plugin can use this for a fatal error, plugins should
try to avoid dying on bad input, as that will halt the entire wiki build
-and make the wiki unusable. So for example, if a [[PreProcessorDirective]]
-is passed bad parameters, it's better to return an error message, which can
-appear on the wiki page, rather than calling error().
+and make the wiki unusable. So for example, if a
+[[ikiwiki/PreProcessorDirective]] is passed bad parameters, it's better to
+return an error message, which can appear on the wiki page, rather than
+calling error().
#### `template($;@)`
#### `add_depends($$)`
-Makes the specified page depend on the specified [[PageSpec]].
+Makes the specified page depend on the specified [[ikiwiki/PageSpec]].
#### `pagespec_match($$;@)`
-Passed a page name, and [[PageSpec]], returns true if the [[PageSpec]]
-matches the page.
+Passed a page name, and [[ikiwiki/PageSpec]], returns true if the
+[[ikiwiki/PageSpec]] matches the page.
Additional named parameters can be passed, to further limit the match.
The most often used is "location", which specifies the location the
existing page that link best points to. Prefers pages under a
subdirectory with the same name as the source page, failing that
goes down the directory tree to the base looking for matching
-pages, as described in [[SubPage/LinkingRules]].
+pages, as described in [[ikiwiki/SubPage/LinkingRules]].
#### `htmllink($$$;@)`
## PageSpec plugins
It's also possible to write plugins that add new functions to
-[[PageSpecs|PageSpec]]. Such a plugin should add a function to the
+[[PageSpecs|ikiwiki/PageSpec]]. Such a plugin should add a function to the
IkiWiki::PageSpec package, that is named `match_foo`, where "foo()" is
-how it will be accessed in a [[PageSpec]]. The function will be passed
+how it will be accessed in a [[ikiwiki/PageSpec]]. The function will be passed
two parameters: The name of the page being matched, and the thing to match
against. It may also be passed additional, named parameters. It should return
a IkiWiki::SuccessReason object if the match succeeds, or an
}
This has hooked our plugin into the preprocess hook, which ikiwiki uses to
-expand [[PreprocessorDirectives|preprocessordirective]]. Notice that "fib"
-has shown up again. It doesn't actually have to match the module name this
-time, but it generally will. This "fib" is telling ikiwiki what kind of
-PreprocessorDirective to handle, namely one that looks like this:
+expand [[PreprocessorDirectives|ikiwiki/preprocessordirective]]. Notice
+that "fib" has shown up again. It doesn't actually have to match the module
+name this time, but it generally will. This "fib" is telling ikiwiki what
+kind of PreprocessorDirective to handle, namely one that looks like this:
[[fib ]]
----
-This sandbox is also a [[blog]]!
+This sandbox is also a [[ikiwiki/blog]]!
[[inline pages="sandbox/* and !*/Discussion" rootpage="sandbox" show="4" archive="yes"]]
-[[blubb]]
\ No newline at end of file
+[[blubb]]
This wiki is powered by [ikiwiki](http://ikiwiki.info).
"""]]
-See [[HelpOnFormatting]] for details about the markup language.
+See [[ikiwiki/formatting]] for details about the markup language.
Note that several [[standard_wiki_pages|basewiki]] will be added to your
wiki, from files in `/usr/share/ikiwiki/basewiki/`, so your wiki will
* [[shortcut name=zooomr url="http://www.zooomr.com/photos/%s"]]
* Note: You have to include the username and number in here, such as `bob/123455`.
-To add a new shortcut, use the `shortcut` [[PreprocessorDirective]]. "%s" is
-replaced with the text passed to the named shortcut. The optional `desc`
-parameter controls the description of the link.
+To add a new shortcut, use the `shortcut`
+[[ikiwiki/PreprocessorDirective]]. In the url, "%s" is replaced with the
+text passed to the named shortcut. The optional `desc` parameter controls
+the description of the link.
Remember that the `name` you give the shortcut will become a new
-[[PreprocessorDirective]]. Avoid using a `name` that conflicts with an
-existing directive.
+[[ikiwiki/PreprocessorDirective]]. Avoid using a `name` that conflicts
+with an existing directive.
If you come up with a shortcut that you think others might find useful,
consider contributing it to the [[iki shortcuts]] page on the ikiwiki
While ikiwiki supports hierarchically categorising pages by creating
-[[SubPage]]s, that's often not flexible enough, and it can also be useful
-to tag pages in various non-hierarchical ways.
+[[SubPages|ikiwiki/SubPage]], that's often not flexible enough, and it can also be
+useful to tag pages in various non-hierarchical ways.
Since this is a wiki, tagging is just a form of linking. The general rule
is that all tags are links, but not all links are tags. So a tag is a
This tag will be displayed just like a regular [[WikiLink]].
-One way to use these tags is to create a [[blog]] of pages that have a
+One way to use these tags is to create a [[ikiwiki/blog]] of pages that have a
particular set of tags. Or just look at the [[BackLinks]] to a tag page to
see all the pages that are tagged with it. [[Plugins]] can be written to do
anything else with tags that you might desire.
-If you have a [[blog]] that is aggregated, either on a site like Planet
+If you have a [[ikiwiki/blog]] that is aggregated, either on a site like Planet
Debian, or just through user subscriptions, one common problem is that
changes to the guids of items in the blog can "flood" the aggregator,
causing all recent blog entries to be posted to the top of it.
since these pages can be included from a subdir. Ditto, links from \[[ inline ..]] or \[[map ..]].
> You can make a wikilink absolute by prefixing it with a /, see
-> [[subpage/linkingrules/]]. Pagespecs match absolute by default. But what do
+> [[ikiwiki/subpage/linkingrules/]]. Pagespecs match absolute by default. But what do
> you mean "included from a subdir"? If you inline a page, its links shouldn't
> change. --Ethan
-[[Wishlist]]: optionally use the [[plugins/contrib/syntax]] plugin automatically on source code files in the repository with recognized extensions or shebangs, and render them as though they consisted of an [[.mdwn|markdown]] page containing nothing but a single call to the syntax plugin with the file contents as the text argument and the recognized type as the type argument.
+[[Wishlist]]: optionally use the [[plugins/contrib/syntax]] plugin
+automatically on source code files in the repository with recognized
+extensions or shebangs, and render them as though they consisted of an
+[[.mdwn|ikiwiki/markdown]] page containing nothing but a single call to the syntax
+plugin with the file contents as the text argument and the recognized type
+as the type argument.
-Together with the ability to have [[wiki-formatted_comments|wiki-formatted_comments_with_syntax_plugin]], this would allow the use of ikiwiki for [[wikipedia literate programming]].
+Together with the ability to have
+[[wiki-formatted_comments|wiki-formatted_comments_with_syntax_plugin]],
+this would allow the use of ikiwiki for [[wikipedia literate programming]].
The pages in the basewiki should be fully self-documenting as far as what
-users need to know to edit pages in the wiki. [[HelpOnFormatting]]
+users need to know to edit pages in the wiki. [[ikiwiki/Formatting]]
documents the basics, but doesn't include every preprocessor directive.
Note that there's a disctinction between being self-documenting for users,
Meta is another one.
-The holdup on documenting these in full in the basewiki is that I'm not sure
-where to put the docs. [[HelpOnFormatting]] should stay as simple as possible
-and just give examples, not full lists of availavle parameters, etc. And
-it's bad enough that [[blog]] uses that toplevel namespace, without adding
-lots more toplevel pages to the basewiki. ([[blog]] really needs to be moved..
-I have several wikis that override it with their actual blog content).
-
-Maybe the thing to do would be to make a meta/ or usage/ or wiki/ or something
-directory in the basewiki, and put new pages documenting how to use preprocesor
-directives in there.
-
-Actually, if we look at the basewiki contents:
-
- blog.mdwn@ pagespec.mdwn@ subpage@
- favicon.ico@ preprocessordirective.mdwn@ subpage.mdwn@
- helponformatting.mdwn@ sandbox.mdwn@ templates/
- index.mdwn@ shortcuts.mdwn@ templates.mdwn@
- local.css@ smileys@ wikiicons@
- markdown.mdwn@ smileys.mdwn@ wikilink.mdwn@
- openid.mdwn@ style.css@
-
-Most of this is meta stuff. Only index.mdwn, local.css, favicon.ico,
-smileys, wikiicons, shortcuts, and templates are really content/configs that
-are used as the base of a wiki. The rest is documentation.
-
-Moving a lot of these pages could be hard though.. Lots of wikis probably
-link to them. Maybe the directory they're moved to could be in the search
-path, like the userdir is, so that simple links keep working.
-
See also: [[Conditional_Underlay_Files]]
I'd like to see some way to conditionally include wiki text based on
whether the wiki enables or disables certain features. For example,
-[[helponformatting]], could use `\[[if (enabled smiley) """Also, because
+[[ikiwiki/formatting]], could use `\[[if (enabled smiley) """Also, because
this wiki has the smiley plugin enabled, you can insert \[[smileys]] and
some other useful symbols."""]]`, and a standard template for [[plugins]]
pages could check for the given plugin name to print "enabled" or
* `enabled pluginname`
* `disabled pluginname`
-* `any pagespec`: true if any of the pages in the [[PageSpec]] exist
-* `all pagespec`: true if all of the pages in the [[PageSpec]] exist
-* `no pagespec` or `none pagespec`: true if none of the pages in the [[PageSpec]] exist
+* `any pagespec`: true if any of the pages in the [[ikiwiki/PageSpec]] exist
+* `all pagespec`: true if all of the pages in the [[ikiwiki/PageSpec]] exist
+* `no pagespec` or `none pagespec`: true if none of the pages in the [[ikiwiki/PageSpec]] exist
* `thispage pagespec`: true if pagespec includes the page getting rendered (possibly one including the page with this content on it).
* `sourcepage pagespec`: true if pagespec includes the page corresponding to the file actually containing this content, rather than a page including it.
* `included`: true if included on another page, via [[plugins/inline]], [[plugins/sidebar]], [[plugins/contrib/navbar]], etc.
include an `else` clause; if so, you could label the text used if true as
`then`.
-Syntax could vary greatly here, both for the [[PreprocessorDirective]] and
-for the condition itself.
+Syntax could vary greatly here, both for the
+[[ikiwiki/PreprocessorDirective]] and for the condition itself.
> I think this is a good thing to consider, although conditionals tend to
> make everything a lot more complicated, so I also want to KISS, and not
>
> --[[Joey]]
->> [[PageSpec]] syntax seems perfect, and your proposed syntax for the `if`
->> [[PreprocessorDirective]] looks fine to me.
+>> [[ikiwiki/PageSpec]] syntax seems perfect, and your proposed syntax for the `if`
+>> [[ikiwiki/PreprocessorDirective]] looks fine to me.
>>
->> [[PageSpec]]s don't give you `none` for free, since `!foo/*` as a boolean
+>> [[ikiwiki/PageSpec]]s don't give you `none` for free, since `!foo/*` as a boolean
>> would mean "does any page not matching `foo/*` exist", not "does `foo/*`
>> match nothing"; however, I don't really care much about `none`, since I
>> just threw it in while brainstorming, and I don't know any compelling use
>> pages."""]]. The help text would then only appear on the sidebar page
>> itself, not the sidebar included on all pages.
>>
->> * On [[blog]] entries, you could use `included` to implement a cut.
+>> * On [[ikiwiki/blog]] entries, you could use `included` to implement a cut.
>> (Please don't take that as an argument against. :) ) For instance, you
>> could use included rather than [[plugins/toggle]] for the detailed
>> changelogs of ikiwiki, or to embed an image as a link in the feed rather
--[[Joey]]
-> You rock mightily. --[[JoshTriplett]]
\ No newline at end of file
+> You rock mightily. --[[JoshTriplett]]
+1
</pre>
-This works (although accessing `%IkiWiki::pagectime` is not too clever), but it would be far more useful if the date pages were automatically created and populated with the relevant posts. A [[Pagespec]] works perfectly for displaying the relevant content, but we're still left with the issue of actually creating the page. What's the Right Way to do this? We could create them in the RCS working copy and check them in, or create them directly in the output directory... (I'd also like to create an option for the tags plugin to auto-create its targets in the same way). Any opinions? :-)
+This works (although accessing `%IkiWiki::pagectime` is not too clever),
+but it would be far more useful if the date pages were automatically
+created and populated with the relevant posts. A [[ikiwiki/Pagespec]] works perfectly for displaying the relevant content, but we're still left with the issue of actually creating the page. What's the Right Way to do this? We could create them in the RCS working copy and check them in, or create them directly in the output directory... (I'd also like to create an option for the tags plugin to auto-create its targets in the same way). Any opinions? :-)
> Ok, first, I don't understand what your plugin does. Maybe I need to get
> some sleep, but a better explanation might help. :-) It seems to make
Or any plugin to add a feedback form (and maybe threads) to extend a Wiki webpage?
Or is there per-page access control that can be fine-tuned to lock some users or groups for specific pages?
-(The [[pagespec]] does show a way to lock all pages except for Discussion pages, but I want some users to also be able to edit other pages.)
+(The [[ikiwiki/pagespec]] does show a way to lock all pages except for Discussion pages, but I want some users to also be able to edit other pages.)
I want a way for website visitors to be able to give feedback on the wiki pages without having to sign up or log in.
I don't want them to be able to edit the exiting wiki pages except maybe Discussion page.
-* reStructuredText does not allow raw html to be inserted into
- documents, but ikiwiki does so in many cases, including
- [[WikiLinks|WikiLink]] and many
-- [[PreprocessorDirectives|PreprocessorDirective]].
+- [[PreprocessorDirectives|ikiwiki/PreprocessorDirective]].
+* Some bits of ikiwiki may still assume that markdown is used or embed html
+ in ways that break reStructuredText. (Report bugs if you find any.)
* It's slow; it forks a copy of python for each page. While there is a
-How about a plugin providing a [[preprocessor_directive|preprocessordirective]] to render a [[debpkg graphviz]] file as an image via one of the graphviz programs ("dot" by default) and include the resulting image on the page, using the "cmapx" image map format? graphviz files themselves could also render the same way into an HTML file with the same basename as the graphviz file; format and program could come either from an ikiwiki configuration option or comments/directives in the file. (For example, "digraph" could imply "dot", and "graph" could imply "neato".)
+How about a plugin providing a
+[[preprocessor_directive|ikiwiki/preprocessordirective]] to render a
+[[debpkg graphviz]] file as an image via one of the graphviz programs
+("dot" by default) and include the resulting image on the page, using the
+"cmapx" image map format? graphviz files themselves could also render the
+same way into an HTML file with the same basename as the graphviz file;
+format and program could come either from an ikiwiki configuration option
+or comments/directives in the file. (For example, "digraph" could imply
+"dot", and "graph" could imply "neato".)
To complement this, ikiwiki could support creating and editing graphviz files through the CGI interface, as a new page type; preview could render the file. It would also help to have some sort of graphviz extension attribute for linking to a wiki page, which would become a standard href or URL attribute in the input passed to the particular graphviz program.
Ah didn't realize you meant it fixed it at the markdown level. I'll
think about making postprocessordirectives into
- [[preprocessordirective]]s instead, then I could use that fix (but I'm not
+ [[ikiwiki/preprocessordirective]]s instead, then I could use that fix (but I'm not
sure how feasible it is to do that). --[[Joey]]
Done.. inlining is now a preprocessor directive, happens before
How about a plugin adding a
-[[preprocessor_directive|preprocessordirective]] to render some given LaTeX
+[[preprocessor_directive|ikiwiki/preprocessordirective]] to render some given LaTeX
and include it in the page? This could either render the LaTeX as a PNG via
[[debpkg dvipng]] and include the resulting image in the page, or perhaps
render via [HeVeA](http://pauillac.inria.fr/~maranget/hevea/index.html),
Pages could have a `linktitle` (perhaps via [[plugins/meta]]), and
[[wikilinks|wikilink]] could use that title by default when linking to the
-page. That would allow pages to have a simple, easily linkable name (without
-spaces, for instance), but use the proper title for links. For example,
-[[PreprocessorDirective]] could use the `linktitle` "preprocessor directive",
-and pages for [[users]] could have `linktitle`s that put spaces in their
-names.
+page. That would allow pages to have a simple, easily linkable name
+(without spaces, for instance), but use the proper title for links. For
+example, [[ikiwiki/PreprocessorDirective]] could use the `linktitle`
+"preprocessor directive", and pages for [[users]] could have `linktitle`s
+that put spaces in their names.
-Ideally, perhaps two versions of the title could exist, one for general use,
-and an optional one for if the case in the actual link starts with an
-uppercase letter. That would allow [[preprocessordirective]] to use the link
-text "preprocessor directive", but [[PreprocessorDirective]] to use the link
-text "Preprocessor Directive", for use at the beginnings of sentences. If the
-second version did not exist, the first version would apply to both cases.
-However, that also seems like potential overkill, and less important than the
-basic functionality of `linktitle`.
---[[JoshTriplett]]
+Ideally, perhaps two versions of the title could exist, one for general
+use, and an optional one for if the case in the actual link starts with an
+uppercase letter. That would allow [[ikiwiki/preprocessordirective]] to
+use the link text "preprocessor directive", but
+[[ikiwiki/PreprocessorDirective]] to use the link text "Preprocessor
+Directive", for use at the beginnings of sentences. If the second version
+did not exist, the first version would apply to both cases. However, that
+also seems like potential overkill, and less important than the basic
+functionality of `linktitle`. --[[JoshTriplett]]
[[wishlist]]
Of course in these cases, you can add your request to a discussion page
and wait for someone with the access/confidence to apply them.
-Maybe this can be enhanced with a [[PreprocessorDirective]]:
+Maybe this can be enhanced with a [[ikiwiki/PreprocessorDirective]]:
<pre>
\[[suggest op=merge dstfile=trunk srcfile=branches/jk oldrev=1234 newrev=1342]]
A generic "change queue" mechanism could be used for translations or other stuff as well.
Each change would have its own wiki page under changes/revNNNN.
Change queues would be wiki pages as well (probably using [[inlines|plugins/inline]]);
-[[Pagespecs|Pagespec]] and [[tags]] would be used to control the queues to which a given change would belong.
+[[Pagespecs|ikiwiki/Pagespec]] and [[tags]] would be used to control the queues to which a given change would belong.
--[[JeremieKoenig]]
> Now, the description field currently defaults to the wiki name,
> and that could indeed stand to be made configurable. Since the
> current (svn) version of ikiwiki supports long, word-wrapped
-> blocks of text as parameters to [[PreProcessorDirective]]s, seems
+> blocks of text as parameters to [[ikiwiki/PreProcessorDirective]]s, seems
> to me the best way would be to simple modify inline.pm to make the
> descripion configurable by such parameter, with a fallback to the
> wiki name. You'll need to modify rsspage.tmpl to use whatever new
-[[plugins/shortcut]] creates link shortcut [[PreprocessorDirective]]s,
+[[plugins/shortcut]] creates link shortcut [[ikiwiki/PreprocessorDirective]]s,
which substitute their argument into the specified shortcut URL to generate
the link target, and use the argument as the link text. For example, given
the example [[shortcuts]], `\[[wikipedia ikiwiki]]` generates a link to
-Several [[PreprocessorDirective]]s take ikiwiki-formatted text as arguments,
+Several [[ikiwiki/PreprocessorDirective]]s take ikiwiki-formatted text as arguments,
such as the `then` and `else` arguments of the new `if` directive, or the
`desc` argument of the `shortcut` directive. However, smileys do not work in
these arguments.
-Since the arguments to [[PreprocessorDirective]]s might use the same syntax as
+Since the arguments to [[ikiwiki/PreprocessorDirective]]s might use the same syntax as
smileys for a different meaning, smiley substitution should not happen until
-after [[PreprocessorDirective]]s.
+after [[ikiwiki/PreprocessorDirective]]s.
--[[JoshTriplett]]
# DESCRIPTION
`ikiwiki` is a wiki compiler. It builds static HTML pages for a wiki, from
-`source` in the [[Markdown]] language (or others), and writes it out to
+`source` in the [[ikiwiki/Markdown]] language (or others), and writes it out to
`destination`.
Note that most options can be shortened to single letters, and boolean
* --rss, --norss
If rss is set, ikiwiki will generate RSS feeds for pages that inline
- a [[blog]].
+ a [[ikiwiki/blog]].
* --atom, --noatom
If atom is set, ikiwiki will generate Atom feeds for pages that inline
- a [[blog]].
+ a [[ikiwiki/blog]].
* --pingurl URL
changes to a page.
* `passwordmail.tmpl` - Not a html template, this is used to
generate the mail with the user's password in it.
-* `rsspage.tmpl` - Used for generating rss feeds for [[blog]]s.
+* `rsspage.tmpl` - Used for generating rss feeds for [blogs|[ikiwiki/blog]].
* `rssitem.tmpl` - Used for generating individual items on rss feeds.
-* `atompage.tmpl` - Used for generating atom feeds for [[blog]]s.
+* `atompage.tmpl` - Used for generating atom feeds for blogs.
* `atomitem.tmpl` - Used for generating individual items on atom feeds.
* `inlinepage.tmpl` - Used for adding a page inline in a blog
page.
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-12-08 15:22-0500\n"
+"POT-Creation-Date: 2007-12-08 15:44-0500\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"
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/CGI.pm:441 ../IkiWiki/Plugin/brokenlinks.pm:24
+#: ../IkiWiki/CGI.pm:443 ../IkiWiki/Plugin/brokenlinks.pm:24
#: ../IkiWiki/Plugin/inline.pm:230 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:99
#: ../IkiWiki/Render.pm:179
msgid "discussion"
msgstr ""
-#: ../IkiWiki/CGI.pm:487
+#: ../IkiWiki/CGI.pm:489
#, perl-format
msgid "creating %s"
msgstr ""
-#: ../IkiWiki/CGI.pm:505 ../IkiWiki/CGI.pm:524 ../IkiWiki/CGI.pm:534
-#: ../IkiWiki/CGI.pm:567 ../IkiWiki/CGI.pm:615
+#: ../IkiWiki/CGI.pm:507 ../IkiWiki/CGI.pm:526 ../IkiWiki/CGI.pm:536
+#: ../IkiWiki/CGI.pm:569 ../IkiWiki/CGI.pm:617
#, perl-format
msgid "editing %s"
msgstr ""
-#: ../IkiWiki/CGI.pm:709
+#: ../IkiWiki/CGI.pm:711
msgid "You are banned."
msgstr ""
-#: ../IkiWiki/CGI.pm:729
+#: ../IkiWiki/CGI.pm:731
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
+++ /dev/null
-../../doc/blog.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/blog delay=10]]
+
+This page has moved to [[ikiwiki/blog|ikiwiki/blog]]. Please update your
+links, as this redirection page will be removed in a future ikiwiki
+release.
+++ /dev/null
-../../doc/helponformatting.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/formatting delay=10]]
+
+This page has moved to [[ikiwiki/formatting|ikiwiki/formatting]]. Please
+update your links, as this redirection page will be removed in a future
+ikiwiki release.
--- /dev/null
+../../../doc/ikiwiki/blog.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/formatting.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/markdown.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/openid.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/pagespec.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/preprocessordirective.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/subpage
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/subpage.mdwn
\ No newline at end of file
--- /dev/null
+../../../doc/ikiwiki/wikilink.mdwn
\ No newline at end of file
+++ /dev/null
-../../doc/markdown.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/markdown delay=10]]
+
+This page has moved to [[ikiwiki/markdown|ikiwiki/markdown]]. Please update
+your links, as this redirection page will be removed in a future ikiwiki
+release.
+++ /dev/null
-../../doc/openid.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/openid delay=10]]
+
+This page has moved to [[ikiwiki/openid|ikiwiki/openid]]. Please update your
+links, as this redirection page will be removed in a future ikiwiki
+release.
+++ /dev/null
-../../doc/pagespec.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/pagespec delay=10]]
+
+This page has moved to [[ikiwiki/pagespec|ikiwiki/pagespec]]. Please update
+your links, as this redirection page will be removed in a future ikiwiki
+release.
+++ /dev/null
-../../doc/preprocessordirective.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/preprocessordirective delay=10]]
+
+This page has moved to
+[[ikiwiki/preprocessordirective|ikiwiki/preprocessordirective]]. Please
+update your links, as this redirection page will be removed in a future
+ikiwiki release.
+++ /dev/null
-../../doc/subpage
\ No newline at end of file
+++ /dev/null
-../../doc/subpage.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/subpage delay=10]]
+
+This page has moved to [[ikiwiki/subpage|ikiwiki/subpage]]. Please update your
+links, as this redirection page will be removed in a future ikiwiki
+release.
+++ /dev/null
-../../doc/wikilink.mdwn
\ No newline at end of file
--- /dev/null
+[[meta redir=ikiwiki/wikilink delay=10]]
+
+This page has moved to [[ikiwiki/wikilink|ikiwiki/wikilink]]. Please update
+your links, as this redirection page will be removed in a future ikiwiki
+release.