I am still customizing a theme and trying to get perhaps some functionality added.
Unfortunately, not only is my health not very good these days, or suited for this kind of stuff...
It is also rather hard to customize DokuWiki, it seems. CSS is easy. But writing plugins is not really that straightforward. PHP is easy, or an easy language, but the knowhow required is not really apparent or obvious, so the only recourse really would be to look at another plugin author's code.
Which is not all that bad, but writing PHP for such customization is rather hard. There is another Javascript wiki called TiddlyWiki in which such a thing was very obvious because the code would execute in the user's browser. You couldn't edit the file directly, so adding or changing or writing plugins was just part of the normal operation of the thing. As such, a plugin was in itself just another tiddler (I believe).
Now that whole self-contained thing was also a perfect drawback. So much for data safety etc. Also it required Java to save, which became more and more problematic. Personally I love a MySQL database best but it requires a good implementation (on the level of WordPress, or preferably better). But the "writing inline javascript" thing was definitely an advantage. I cannot really code
in DokuWiki, I have to get on the server and do dark and unknown stuff. A server in which the editing is constantly hindered by the defaults for safety (on Debian) in the sense of security and file permissions that require often root to do anything.
I haven't come down yet to installing the latest version and get that working in a way that I can just, as my regular user, control everything. My system is a personal system anyway. At this point, certainly, at least.
I really hate it actually that the thing is system-wide.
Anyway, since adding new code is relatively hard, thinking in advance about it becomes relatively more important.
This is a current small thing I'm working on. I guess the term "working on" is an exaggeration in itself. Let's just say I spent a few hours on it today.
You can see it is the Roundbox Evening theme. This is an entirely manually edited page at this point.
I want the dates to left-align, which will probably require a table. I think the default tables in DokuWiki is hideous. I can adjust that default table CSS but I may run into a different situation where I want a different table design/layout.
So the obvious thing is to create CSS for a table and then syntax for adding it. That is the semi-manual route. The problem with DokuWiki is that there are many plugins that *TRY* to do something like it. And they are never fully developed enough, or rather, you can't customize them like that because what you want may be something different, so you have all these half-baked plugins that never create the experience you want. You need a bigger vision, and in this case that means writing your own code.
Of course the issue is twofold:
* originally and normally the way to add a wiki page is to first create a link (manually) and then follow the link to create the page
* manual links do not perform as well as index tables if additional markup or data/info is required.
And then:
* If you want something else, you need two things again:
** A quick way to add a page without a link
** A metadata structure that can e.g. give a category to a page
The only categories we have in DW are namespaces. So the organisation you see above in the image would require a subnamespace of tech:linux and one of tech:windows, and then a plugin that can aggregrate these according to the wishes of the platform/user (me). Other types of metadata might be rather volatile as the files are just files on disk and you can manually add/remove these files at will and dokuwiki will respond accordingly.
So what you get currently is this:
* I have to add my pages somewhere and the best way to do it still seems to be through a link since there is no "create new page in this namespace" thing (thoughts?)
* generating indexes kinda interferes with manual links since usually a link is going to be within an index.
* what is left is
transforming an index page that was/is manually created/edited by adding formatting and styling and extra information/data retrieval to "embellish" the thing. In WordPress that would be dreadfully easy. You'd just create a filter, look for a certain code tag (shortcode/whatever), take the html that comes out of it (or even the plain text, depending on where you place your filter) and do something fancy with it using regexps and other methods. I have no idea if this is common practice in DokuWiki. It is the most excellent way to do things though.
There are just two alternatives:
* Create a way in which namespaces are more feature-rich in the sense of "create new page here" or "right click to add new page" to a certain namespace --- after that you can have your own index generating thing that doesn't have to agree with anything else, but which can simply read from a namespace and show what's in there (à la all those other plugins)
* Keep using syntax plugins/plugin to create your index, the plugin would accept a list of manual links and apply formatting to them -- this seems to be the current DokuWiki way.
If you go the feature-rich route:
* You need to integrate the "begin" or "start" page into the namespace as the single unique page that is accessed in a standard way and not listed as one of the common pages of that namespace
* In addition each namespace must either have a button on that common page / overview / view to create a new page there or a form of popup/dropdown thing that will do the same when clicked on it from a standard accessor element (index of namespaces).
Any such feature-rich function will imply a more integrated
default index listing of some sort; after all "create new" and "list current" are part of the same level of expertise/functionality. It is the same amount of "developed" thing.
Naturally at this point already there is a tool or component like that, whatever it is called, I don't remember but took out some of the text:
Maybe I should record my changes to DokuWiki in my DokuWiki lol. I might remember something then ;-).
It's just the tool doesn't offer any additional namespace functionality and also doesn't integrate the "begin" or "start" pages into its own thing. If it did, "create new page here" would probably also already have been implemented.