From 34726343bc67e29c1776d845910d0574a43116c2 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 20 Jan 2008 21:06:27 +0100 Subject: Sync with ikiwiki 2.20 part I: Move a bunch of pages to ikiwiki/ subsir. --- ikiwiki/blog.mdwn | 95 ++++++++++++++++++++++++++++++++++++++ ikiwiki/formatting.mdwn | 94 +++++++++++++++++++++++++++++++++++++ ikiwiki/markdown.mdwn | 13 ++++++ ikiwiki/openid.mdwn | 32 +++++++++++++ ikiwiki/pagespec.mdwn | 79 +++++++++++++++++++++++++++++++ ikiwiki/preprocessordirective.mdwn | 33 +++++++++++++ ikiwiki/subpage.mdwn | 11 +++++ ikiwiki/subpage/linkingrules.mdwn | 32 +++++++++++++ ikiwiki/wikilink.mdwn | 27 +++++++++++ 9 files changed, 416 insertions(+) create mode 100644 ikiwiki/blog.mdwn create mode 100644 ikiwiki/formatting.mdwn create mode 100644 ikiwiki/markdown.mdwn create mode 100644 ikiwiki/openid.mdwn create mode 100644 ikiwiki/pagespec.mdwn create mode 100644 ikiwiki/preprocessordirective.mdwn create mode 100644 ikiwiki/subpage.mdwn create mode 100644 ikiwiki/subpage/linkingrules.mdwn create mode 100644 ikiwiki/wikilink.mdwn (limited to 'ikiwiki') diff --git a/ikiwiki/blog.mdwn b/ikiwiki/blog.mdwn new file mode 100644 index 0000000..fe83977 --- /dev/null +++ b/ikiwiki/blog.mdwn @@ -0,0 +1,95 @@ +[[if test="enabled(inline)" + then="This wiki has the inline plugin **enabled**." + else="This wiki has the inline plugin **disabled**."]] + +[[if test="enabled(inline)" + then="You can" + else="If this wiki had the inline plugin enabled, you could"]] +turn any page on this wiki into a weblog by using the `inline` +[[PreProcessorDirective]]. For example: + + \[[inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]] + +Any pages that match the specified [[PageSpec]] (in the example, any +[[SubPage]] of "blog") will be part of the blog, and the newest 10 +of them will appear in the page. Note that if files that are not pages +match the [[PageSpec]], they will be included in the feed using RSS +enclosures, which is useful for podcasting. + +The optional `rootpage` parameter tells the wiki that new posts to this blog +should default to being [[SubPage]]s of "blog", and enables a form at the +top of the blog that can be used to add new items. + +If you want your blog to have an archive page listing every post ever made +to it, you can accomplish that like this: + + \[[inline pages="blog/* and !*/Discussion" archive="yes"]] + +You can even create an automatically generated list of all the pages on the +wiki, with the most recently added at the top, like this: + + \[[inline pages="* and !*/Discussion" archive="yes"]] + +If you want to be able to add pages to a given blog feed by tagging them, +you can do that too. To tag a page, just make it link to a page or pages +that represent its tags. Then use the special `link()` [[PageSpec]] to match +all pages that have a given tag: + + \[[inline pages="link(life)"]] + +Or include some tags and exclude others: + + \[[inline pages="link(debian) and !link(social)"]] + +## usage + +Here are descriptions of all the supported parameters to the `inline` +directive: + +* `pages` - A [[PageSpec]] of the pages to inline. +* `show` - Specify the maximum number of matching pages to inline. + Default is 10, unless archiving, when the default is to show all. + Set to 0 to show all matching pages. +* `skip` - Specify a number of pages to skip displaying. Can be useful + to produce a feed that only shows archived pages. +* `rss` - controls generation of an rss feed. On by default if the wiki is + configured to use rss feeds, set to "no" to disable. +* `atom` - controls generation of an atom feed. On by default if the wiki is + configured to use atom feeds, set to "no" to disable. +* `feeds` - controls generation of all types of feeds. Set to "no" to + disable generating any feeds. +* `postform` - Set to "yes" to enables a form to post new pages to a [[blog]]. +* `postformtext` - Set to specify text that is displayed in a postform. +* `rootpage` - Also enables a form to post new pages to a [[blog]], and + allows specifying of a page that is used as the parent page for new pages. +* `archive` - If set to "yes", only list page titles and some metadata, not + full controls. +* `quick` - Build archives in quick mode, without reading page contents for + metadata. By default, this also turns off generation of any feeds. +* `template` - Specifies the template to fill out to display each inlined + page. By default the `inlinepage` template is used, while + the `archivepage` template is used for archives. Set this parameter to + use some other, custom template, such as the `titlepage` template that + only shows post titles. Note that you should still set `archive=yes` if + your custom template does not include the page content. +* `raw` - Rather than the default behavior of creating a [[blog]], + if raw is set to "yes", the page will be included raw, without additional + markup around it, as if it were a literal part of the source of the + inlining page. +* `description` - Sets the description of the rss feed if one is generated. + Defaults to the name of the wiki. +* `actions` - If set to "yes" add links to the bottom of the inlined pages + for editing and discussion (if they would be shown at the top of the page + itself). +* `sort` - Controls how inlined pages are sorted. The default, "age" is to + sort newest created pages first. Setting it to "title" will sort pages by + title, and "mtime" sorts most recently modified pages first. +* `reverse` - If set to "yes", causes the sort order to be reversed. +* `feedpages` - A [[PageSpec]] of inlined pages to include in the rss/atom + feeds. The default is the same as the `pages` value above, and only pages + matches by that value are included, but some of those can be excluded by + specifying a tighter [[PageSpec]] here. +* `feedshow` - Specify the maximum number of matching pages to include in + the rss/atom feeds. The default is the same as the `show` value above. +* `feedonly` - Only generate the feed, do not display the pages inline on + the page. diff --git a/ikiwiki/formatting.mdwn b/ikiwiki/formatting.mdwn new file mode 100644 index 0000000..4e8760c --- /dev/null +++ b/ikiwiki/formatting.mdwn @@ -0,0 +1,94 @@ +[[meta title="Help on 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 +called [[MarkDown]], and it works like this: + +Leave blank lines between paragraphs. + +You can \**emphasise*\* or \*\***strongly emphasise**\*\* text by placing it +in single or double asterisks. + +To create a list, start each line with an asterisk: + +* "* this is my list" +* "* another item" + +To make a numbered list, start each line with a number (any number will +do) followed by a period: + +1. "1. first line" +2. "2. second line" +2. "2. third line" + +To create a header, start a line with one or more `#` characters followed +by a space and the header text. The number of `#` characters controls the +size of the header: + +# # h1 +## ## h2 +### ### h3 +#### #### h4 +##### ##### h5 +###### ###### h6 + +To create a horizontal rule, just write three or more dashes or stars on +their own line: + +---- + +To quote someone, prefix the quote with ">": + +> To be or not to be, +> that is the question. + +To write a code block, indent each line with a tab or 4 spaces: + + 10 PRINT "Hello, world!" + 20 GOTO 10 + +To link to an url or email address, you can just put the +url in angle brackets: <>, or you can use the +form \[link text\]\(url\) + +---- + +In addition to basic html formatting using [[MarkDown]], this wiki lets +you use the following additional features: + +* To link to another page on the wiki, place the page's name inside double + square brackets. So you would use `\[[WikiLink]]` to link to [[WikiLink]]. + +[[if test="enabled(smiley) and smileys" then=""" +* Insert [[smileys]] and some other useful symbols. :-) +"""]] + +[[if test="enabled(shortcut) and shortcuts" then=""" +* Use [[shortcuts]] to link to common resources. + + \[[wikipedia War\_of\_1812]] +"""]] + +[[if test="enabled(toc)" then=""" +* Add a table of contents to a page: + + \[[toc ]] +"""]] + + +[[if test="enabled(meta)" then=""" +* Change the title of a page: + + \[[meta title="full page title"]] +"""]] + +[[if test="enabled(inline) and blog" then=""" +* Create a [[blog]] by inlining a set of pages: + + \[[inline pages="blog/*"]] +"""]] + +[[if test="enabled(template) and templates" then=""" +* Create and fill out [[templates]] for repeated chunks of + parameterized wiki text. +"""]] diff --git a/ikiwiki/markdown.mdwn b/ikiwiki/markdown.mdwn new file mode 100644 index 0000000..e7823bb --- /dev/null +++ b/ikiwiki/markdown.mdwn @@ -0,0 +1,13 @@ +[Markdown](http://daringfireball.net/projects/markdown/) +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 +[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. + diff --git a/ikiwiki/openid.mdwn b/ikiwiki/openid.mdwn new file mode 100644 index 0000000..f02a0a6 --- /dev/null +++ b/ikiwiki/openid.mdwn @@ -0,0 +1,32 @@ +[[meta title="OpenID"]] + +[[if test="enabled(openid)" + then="This wiki has OpenID **enabled**." + else="This wiki has OpenID **disabled**."]] + +[OpenID](http://openid.net) is a decentralized authentication mechanism +that allows you to have one login that you can use on a growing number of +websites. + +To sign up for an OpenID, visit one of the following identity providers: + +* [MyOpenID](https://www.myopenid.com/) +* [GetOpenID](https://getopenid.com/) +* [Videntity](http://videntity.org/) +* [LiveJournal](http://www.livejournal.com/openid/) +* or any of the [many others out there](http://openiddirectory.com/index.php?dir=1).. + +Your OpenID is the URL that you are given when you sign up. +[[if test="enabled(openid)" then=""" +To sign in to this wiki using OpenID, just enter it in the OpenID field in the +signin form. You do not need to give this wiki a password or go through any +registration process when using OpenID. +"""]] + +--- + +It's also possible to make a page in the wiki usable as an OpenID url, +by delegating it to an openid server. Here's an example of how to do that: + + \[[meta openid="http://yourid.myopenid.com/" + server="http://www.myopenid.com/server"]] diff --git a/ikiwiki/pagespec.mdwn b/ikiwiki/pagespec.mdwn new file mode 100644 index 0000000..5c6433e --- /dev/null +++ b/ikiwiki/pagespec.mdwn @@ -0,0 +1,79 @@ +To select a set of pages, such as pages that are locked, pages +whose commit emails you want subscribe to, or pages to combine into a +blog, the wiki uses a PageSpec. This is an expression that matches +a set of pages. + +The simplest PageSpec is a simple list of pages. For example, this matches +any of the three listed pages: + + foo or bar or baz + +More often you will want to match any pages that have a particular thing in +their name. You can do this using a glob pattern. "`*`" stands for any part +of a page name, and "`?`" for any single letter of a page name. So this +matches all pages about music, and any [[SubPage]]s of the SandBox, but does +not match the SandBox itself: + + *music* or SandBox/* + +You can also prefix an item with "`!`" to skip pages that match it. So to +match all pages except for Discussion pages and the SandBox: + + * and !SandBox and !*/Discussion + +Some more elaborate limits can be added to what matches using any of these +functions: + +* "`link(page)`" - match only pages that link to a given page (or glob) +* "`backlink(page)`" - match only pages that a given page links to +* "`creation_month(month)`" - match only pages created on the given month +* "`creation_day(mday)`" - or day of the month +* "`creation_year(year)`" - or year +* "`created_after(page)`" - match only pages created after the given page + was created +* "`created_before(page)`" - match only pages created before the given page + was created +* "`user(name)`" - only available in page subscription preferences, match + only changes made by this user + +For example, to match all pages in a blog that link to the page about music +and were written in 2005: + + blog/* and link(music) and creation_year(2005) + +Note the use of "and" in the above example, that means that only pages that +match each of the three expressions match the whole. Use "and" when you +want to combine expression like that; "or" when it's enough for a page to +match one expression. Note that it doesn't make sense to say "index and +SandBox", since no page can match both expressions. + +More complex expressions can also be created, by using parentheses for +grouping. For example, to match pages in a blog that are tagged with either +of two tags, use: + + blog/* and (link(tag/foo) or link(tag/bar)) + +Note that page names in PageSpecs are matched against the absolute +filenames of the pages in the wiki, so a pagespec "foo" used on page +"a/b" will not match a page named "a/foo" or "a/b/foo". To match +relative to the directory of the page containing the pagespec, you can +use "./". For example, "./foo" on page "a/b" matches page "a/foo". + +## Old syntax + +The old PageSpec syntax was called a "GlobList", and worked differently in +two ways: + +1. "and" and "or" were not used; any page matching any item from the list + matched. +2. If an item was prefixed with "`!`", then no page matching that item + matched, even if it matched an earlier list item. + +For example, here is the old way to match all pages except for the SandBox +and Discussion pages: + + * !SandBox !*/Discussion + +Using this old syntax is still supported. However, the old syntax is +deprecated and will be removed at some point, and using the new syntax is +recommended. diff --git a/ikiwiki/preprocessordirective.mdwn b/ikiwiki/preprocessordirective.mdwn new file mode 100644 index 0000000..1e2332c --- /dev/null +++ b/ikiwiki/preprocessordirective.mdwn @@ -0,0 +1,33 @@ +Preprocessor directives are similar to a [[WikiLink]] in form, except they +contain spaces and parameters. The general form is: + + \[[directive param="value" param="value"]] + +This gets expanded before the rest of the page is processed, and can be used +to transform the page in various ways. + +The quotes around values can be omitted if the value is a simple word. +Also, some directives may use parameters without values, for example: + + \[[tag foo]] + +Note that if a preprocessor directive has no parameters, a space still must +be put after its name, to avoid confusion with a [[WikiLink]]. For example: + + \[[pagecount ]] + +A preprocessor directive does not need to all be on one line, it can be +wrapped to multiple lines if you like: + + \[[directive foo="baldersnatch" + bar="supercalifragalisticexpealadocious" baz=11]] + +Also, multiple lines of *quoted* text can be used for a value. +To allow quote marks inside the quoted text, delimit the block +of text with triple-quotes: + + \[[directive text=""" + 1. "foo" + 2. "bar" + 3. "baz" + """]] diff --git a/ikiwiki/subpage.mdwn b/ikiwiki/subpage.mdwn new file mode 100644 index 0000000..4366920 --- /dev/null +++ b/ikiwiki/subpage.mdwn @@ -0,0 +1,11 @@ +ikiwiki supports placing pages in a directory hierarchy. For example, +this page, [[SubPage]] has some related pages placed under it, like +[[SubPage/LinkingRules]]. This is a useful way to add some order to your +wiki rather than just having a great big directory full of pages. + +To add a SubPage, just make a subdirectory and put pages in it. For +example, this page is SubPage.mdwn in this wiki's source, and there is also +a SubPage subdirectory, which contains SubPage/LinkingRules.mdwn. Subpages +can be nested as deeply as you'd like. + +Linking to and from a SubPage is explained in [[LinkingRules]]. diff --git a/ikiwiki/subpage/linkingrules.mdwn b/ikiwiki/subpage/linkingrules.mdwn new file mode 100644 index 0000000..c106230 --- /dev/null +++ b/ikiwiki/subpage/linkingrules.mdwn @@ -0,0 +1,32 @@ +To link to or from a [[SubPage]], you can normally use a regular +[[WikiLink]] that does not contain the name of the parent directory of +the [[SubPage]]. Ikiwiki descends the directory hierarchy looking for a +page that matches your link. + +For example, if FooBar/SubPage links to "OtherPage", ikiwiki will first +prefer pointing the link to FooBar/SubPage/OtherPage if it exists, next +to FooBar/OtherPage and finally to OtherPage in the root of the wiki. + +Note that this means that if a link on FooBar/SomePage to "OtherPage" +currently links to OtherPage, in the root of the wiki, and FooBar/OtherPage +is created, the link will _change_ to point to FooBar/OtherPage. On the +other hand, a link from BazBar to "OtherPage" would be unchanged by this +creation of a [[SubPage]] of FooBar. + +You can also specify a link that contains a directory name, like +"FooBar/OtherPage" to more exactly specify what page to link to. This is +the only way to link to an unrelated [[SubPage]]. + +You can use this to, for example, to link from BazBar to "FooBar/SubPage", +or from BazBar/SubPage to "FooBar/SubPage". + +You can also use "/" at the start of a link, to specify exactly which page +to link to, when there are multiple pages with similar names and the link +goes to the wrong page by default. For example, linking from +"FooBar/SubPage" to "/OtherPage" will link to the "OtherPage" in the root +of the wiki, even if there is a "FooBar/OtherPage". + +Also, if the wiki is configured with a userdir, you can link to pages +within the userdir without specifying a path to them. This is to allow for +easy linking to a user's page in the userdir, to sign a comment. These +links are checked for last of all. diff --git a/ikiwiki/wikilink.mdwn b/ikiwiki/wikilink.mdwn new file mode 100644 index 0000000..38df00f --- /dev/null +++ b/ikiwiki/wikilink.mdwn @@ -0,0 +1,27 @@ +WikiLinks provide easy linking between pages of the wiki. To create a +[[WikiLink]], just put the name of the page to link to in double brackets. +For example `\[[WikiLink]]`. + +If you ever need to write something like `\[[WikiLink]]` without creating a +wikilink, just prefix it with a `\`, like `\\[[WikiLink]]`. + +There are some special [[SubPage/LinkingRules]] that come into play when +linking between [[SubPages|SubPage]]. + +Also, if the file linked to by a WikiLink looks like an image, it will +be displayed inline on the page. + +WikiLinks are matched with page names in a case-insensitive manner, so you +don't need to worry about getting the case the same, and can capitalise +links at the start of a sentence, and so on. + +It's also possible to write a WikiLink that uses something other than the page +name as the link text. For example `\[[foo_bar|SandBox]]` links to the SandBox +page, but the link will appear like this: [[foo_bar|SandBox]]. + +To link to an anchor inside a page, you can use something like +`\[[WikiLink#foo]]` + +**Note that you cannot use spaces in WikiLinks**. Replace spaces with +underscores. The presence of spaces is used to distinguish between a +[[PreprocessorDirective]] and a WikiLink. -- cgit v1.2.3