aboutsummaryrefslogtreecommitdiff
path: root/doc/forum/debconf13_ikiwiki_bof.mdwn
blob: 8659da7c3db35c9d400d5051273e996f1ef773bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
There has been a meeting of people interested in ikiwiki
[[during debconf13|http://penta.debconf.org/dc13_schedule/events/1060.en.html]]
on 2013-08-11. Videos of the event are linked there for download, or
[[can be viewed online|http://www.irill.org/videos/debconf13/ikiwiki_BoF.webm]].

Summary
=======

Ikiwiki's state and development
-------------------------------

Ikiwiki has reached a stable state with a working ecosystem, with the majority
of changes being minor adaptions and bugfixes these days.

It is unlikely that there will be a major overhaul any time soon.

If incompatible changes are to be made, that might warrant a 4.$DATE
transition, especially given that the [[ikiwiki-transition]] mechanism has not
been used for some time. Potential changes for such a transition will be
discussed (see below).

Names of pages and links
------------------------

Several of [[the issues chrysn deals with|users/chrysn]] revolve about the
differences betwen a page's name, its title, the name of source and destination
page, how they are converted, and which is used when.

chrysn has starting to draft a page on [[plugins/write/names]], and
would appreciate review and comments.

Themability
-----------

The default theme of ikiwiki is more appealing to the people who are expected
to run an ikiwiki setup; end users with Web 2.$current_minor_version
expectations often don't have there tastes served well.

[[Recently|version 3.20130518]], templates have become more theming friendly,
but for the general case still require the theme to be known to mainline
ikiwiki, lest generic templates diverge. A planned feature is generalized
sidebars, where more places inside the template can be filled using the same
mechanism as currently used in the [[pluginssidebar]] pluin, but changes there
require a complete rebuild. (Not worse than the rebuilds required when changing
the main templates, but it would be more tempting to frequently change them.)

Examples of fancy ikiwiki themes have been brought up:

  * https://www.gresille.org/
  * https://nos-oignons.net/
  * http://www.rezine.org/accueil/association/
  * https://cas-libres.poivron.org/

A generalized version of the [[bootstrap|http://twitter.github.com/bootstrap/]]
[[theme|theme market]] would be appreciated, as the current one is targeted
towards a particular installation.

Performance
-----------

Rebuilding many pages takes considerable time, especially when sidebars are
changed.

A faster way to use the page index (eg. sqlite) would help speeding up the
usual rebuilds, but would not help speeding up massive rebuilds.

RDF backend
-----------

On the priority level "crazy ideas", it was discussed to augment or finally
change the index to an RDF triple collection. Statements would be extracted
from the source pages in the scan hook, and form a triple store. Pagespecs
would be resolved to SPARQL queries against that database; also the
[[todo/structured page data]] fields could be addressed with this.

Optimizations are still possible, even more generally, for example with
dependencies on other pages' title:

* page A sets its own title with `\[[!meta title="the A page"]]`, which results
  in the statement '`<./page_A> dc:title "the A page" .`'.

* page B uses some kind of auto-titling link to page A: `\[[~|page A]]`, which
  queries for '`<./page_A> dc:title ?a`'.

* When page B is built, it is stored that it depends on statements involving
  the term `<./page_A>`, and the current hash value of all statements about
  that term. (Those will be computed for all observed statements at scan time.
  Pages that use more complex queries might not be able to list all their
  dependencies.)

  Also, the queries and query results executing during building page B are
  stored in a separate cache.

* When some other page starts linking to page A, the first cache is
  invalidated, as now there are more statements on the subject of
  '`<./page_A>`', so page B might need to be rebuilt. Before that is done, its
  cached queries are executed. If their results did not change, page B does not
  need any further action.

vCard support
-------------

The topic of combining ikiwiki with
[[calypso|http://keithp.com/blogs/calypso/]] was brought up
[[in another event|http://penta.debconf.org/dc13_schedule/events/1087.en.html]]
during the same DebConf.

For further details, see [[todo/vCard rendering]].