linked video, added vcard topic
[ikiwiki.git] / doc / forum / debconf13_ikiwiki_bof.mdwn
1 There has been a meeting of people interested in ikiwiki
2 [[during debconf13|http://penta.debconf.org/dc13_schedule/events/1060.en.html]]
3 on 2013-08-11. Videos of the event are linked there for download, or
4 [[can be viewed online|http://www.irill.org/videos/debconf13/ikiwiki_BoF.webm]].
5
6 Summary
7 =======
8
9 Ikiwiki's state and development
10 -------------------------------
11
12 Ikiwiki has reached a stable state with a working ecosystem, with the majority
13 of changes being minor adaptions and bugfixes these days.
14
15 It is unlikely that there will be a major overhaul any time soon.
16
17 If incompatible changes are to be made, that might warrant a 4.$DATE
18 transition, especially given that the [[ikiwiki-transition]] mechanism has not
19 been used for some time. Potential changes for such a transition will be
20 discussed (see below).
21
22 Names of pages and links
23 ------------------------
24
25 Several of [[the issues chrysn deals with|users/chrysn]] revolve about the
26 differences betwen a page's name, its title, the name of source and destination
27 page, how they are converted, and which is used when.
28
29 chrysn has starting to draft a page on [[plugins/write/names]], and
30 would appreciate review and comments.
31
32 Themability
33 -----------
34
35 The default theme of ikiwiki is more appealing to the people who are expected
36 to run an ikiwiki setup; end users with Web 2.$current_minor_version
37 expectations often don't have there tastes served well.
38
39 [[Recently|version 3.20130518]], templates have become more theming friendly,
40 but for the general case still require the theme to be known to mainline
41 ikiwiki, lest generic templates diverge. A planned feature is generalized
42 sidebars, where more places inside the template can be filled using the same
43 mechanism as currently used in the [[pluginssidebar]] pluin, but changes there
44 require a complete rebuild. (Not worse than the rebuilds required when changing
45 the main templates, but it would be more tempting to frequently change them.)
46
47 Examples of fancy ikiwiki themes have been brought up:
48
49   * https://www.gresille.org/
50   * https://nos-oignons.net/
51   * http://www.rezine.org/accueil/association/
52   * https://cas-libres.poivron.org/
53
54 A generalized version of the [[bootstrap|http://twitter.github.com/bootstrap/]]
55 [[theme|theme market]] would be appreciated, as the current one is targeted
56 towards a particular installation.
57
58 Performance
59 -----------
60
61 Rebuilding many pages takes considerable time, especially when sidebars are
62 changed.
63
64 A faster way to use the page index (eg. sqlite) would help speeding up the
65 usual rebuilds, but would not help speeding up massive rebuilds.
66
67 RDF backend
68 -----------
69
70 On the priority level "crazy ideas", it was discussed to augment or finally
71 change the index to an RDF triple collection. Statements would be extracted
72 from the source pages in the scan hook, and form a triple store. Pagespecs
73 would be resolved to SPARQL queries against that database; also the
74 [[todo/structured page data]] fields could be addressed with this.
75
76 Optimizations are still possible, even more generally, for example with
77 dependencies on other pages' title:
78
79 * page A sets its own title with `\[[!meta title="the A page"]]`, which results
80   in the statement '`<./page_A> dc:title "the A page" .`'.
81
82 * page B uses some kind of auto-titling link to page A: `\[[~|page A]]`, which
83   queries for '`<./page_A> dc:title ?a`'.
84
85 * When page B is built, it is stored that it depends on statements involving
86   the term `<./page_A>`, and the current hash value of all statements about
87   that term. (Those will be computed for all observed statements at scan time.
88   Pages that use more complex queries might not be able to list all their
89   dependencies.)
90
91   Also, the queries and query results executing during building page B are
92   stored in a separate cache.
93
94 * When some other page starts linking to page A, the first cache is
95   invalidated, as now there are more statements on the subject of
96   '`<./page_A>`', so page B might need to be rebuilt. Before that is done, its
97   cached queries are executed. If their results did not change, page B does not
98   need any further action.
99
100 vCard support
101 -------------
102
103 The topic of combining ikiwiki with
104 [[calypso|http://keithp.com/blogs/calypso/]] was brought up
105 [[in another event|http://penta.debconf.org/dc13_schedule/events/1087.en.html]]
106 during the same DebConf.
107
108 Short outline: Calypso's collection of vCards can go into an ikiwiki underlay,
109 and be rendered with a yet-to-be-completed `.vcf` rendering plugin.
110
111 Remaining questions:
112
113 * It would be nice to have all contacts inside a group. Should they all be
114   tagged 'Contact'? / How can that be localized?
115
116   Using plugin options in the VCF plugin would be an option. Also, another
117   option could contain a string to be prefixed to the categories defined inside
118   the vCard.
119
120 * Linking vCards is not trivial, as they don't have friendly names. This calls
121   for the [[todo/alias directive]].
122
123 * Would the same thing be useful with contacts too?
124
125 A partial implementation is pending publication.