I am using ikiwiki 2.6.1.
I can't figure out the locked pages.
As an admin in preferences, I put in my Locked Pages:
index and downloads
I don't want anyone to be able to edit the front page or my downloads page.
That didn't work. I am using a different web browser as a different non-ikiwiki-admin user.
So I changed it to
/index and /downloads
That stopped me from editing the front page. It didn't say it was locked just repeatedly gave me the ikiwiki login. (How can I get it to tell me it is locked instead?)
I also tried
/index and /downloads/index
But I could still edit my downloads page.
Can someone share some hints on how to lock these two pages?
My source pages for the lock are:
source/downloads.mdwn source/index.mdwn
My webpages to lock are:
public_html/downloads/index.html public_html/index.html
So I tried again with using "or" instead of "and":
index or downloads
And that worked. I now get a message saying it is locked and cannot be edited. To me saying "lock both 'index and downloads'" made sense while now it reads like: "lock either 'index or downloads'". Maybe the PageSpec should define "and" and "or" (beyond the examples it has).
Also why did my "/index and /downloads" prevent editing the index by repeatedly showing login webpage?
-JeremyReed
I've clarified and/or in PageSpec.
I can't reproduce "/index and /downloads" causing the login webpage to be shown repeatedly. Sure you weren't having some independent issue with logging in? --Joey
I have a page for a tag. On that page I want to list every page on my wiki that has been so tagged. Easy enough, right?
[[!inline pages="link(Categories/Ikiwiki_Plugins)" feeds=no archive=yes sort=title template=titlepage]]
(I'm using tagbase => "Categories" because I'm converting from Mediawiki)
This works beautifully in my sandbox: http://iki.u32.net/sandbox But it is totally blank on the page where I actually do want output! http://iki.u32.net/Categories/Ikiwiki_Plugins
How can I fix this? --sabr
I don't see why that wouldn't work. Can I download the source to your wiki from somewhere to investigate? --Joey
Should negation work with user(), with locked_pages in setup? I experimented with setting locked_pages => 'user(someuser)' and was able to edit as a different user. However, setting locked_pages => '!user(someuser)' doesn't seem to allow edits for only 'someuser' - it locks out all users.
Negation works with anything in any PageSpec. I tested the case you describe, and a negated pagespec worked for me; all users except the listed user (and except wiki admins of course) were locked out. --Joey
It must be a local problem, then, cause I've tried it with two separate machines. Both are running the most recent release of ikiwiki in pkgsrc - 2.66. Perhaps an update to a newer version would solve the issue.
Is there a way to refer to all subpages of the current page, if the name of the current page is not known (i.e. the pagespec is used in a template)? The ./ syntax does not seem suitable for this, as
[[!map pages="./*"]]
also lists the current page and all its siblings.
I am a little lost. I want to match the start page /index.mdwn
. So I use
[[!inline pages="/index"]]
which does not work though. I also tried it in this Wiki. Just take a look at the end of the SandBox. --?PaulePanter
Unlike wikilinks, pagespecs match relative to the top of the wiki by default. So lose the "/" and it will work. --Joey
I'd like to create a collapsable tree with a map, eg
top level item
- second level item1
- content 1
- content 2
- content 3
- second level item2
- second level item3
but I can't work out how to specify "all items at this level, and all directories at ../ and all the other directories to the root
any ideas?
I don't think pagespecs currently support that. How would such a made-up pagespec look? I can imagine it supporting something like
glob(../*) and not glob(../*/*)
to match all "directories" of the parent page, and so on up to the root. --JoeyI don't know, perhaps some way of nesting pagespecs
glob(../ unless $_ eq 'second level item'{ glob 'second level item'/})
but that could get messy, perhaps a new cmd 'pagetree' or something might be better? --Colin
You could probably do a lot worse than stealing terminology from XPath Axes, passing the "argument" through
bestlink
if there is one, and treating an empty argument as "this page", something like:
ancestor(/plugins/contrib/album)
matchesplugins
orplugins/contrib
but notplugins/map
orplugins/contrib/album
(does it matchindex
? answers on a postcard)descendant(/plugins)
is basicallyplugins/*
child(/plugins)
is basicallyplugins/* and !plugins/*/*
self(/plugins)
is justplugins
but without interpreting globsancestor-or-self(/plugins)
,descendant-or-self(/plugins)
are syntactic sugar for e.g.ancestor(/plugins) or self(/plugins)
self()
always matches the current page (not destpage)ancestor-or-self()
always matches the current pages and all pages that would go in its parentlinksXPath has
following-sibling
andpreceding-sibling
axes for siblings, but pagespecs are unordered, so we'd probably want to inventsibling()
- sosibling(/plugins/map)
matchesplugins/inline
but notplugins/map
orplugins/contrib/album
.Then, the requested functionality would be
sibling() or ancestor()
, or possiblysibling() or ancestor() or self()
? --smcvI like that idea! --KathrynAndersen