web commit by JeremyReed: followup on broken 2.6.1 -- needed CGI-FormBuilder update.
[ikiwiki] / doc / index / discussion.mdwn
1 Seems like there should be a page for you to post your thoughts about
2 ikiwiki, both pro and con, anything that didn't work, ideas, or whatever.
3 Do so here..
4
5 Note that for more formal bug reports or todo items, you can also edit the
6 [[bugs]] and [[todo]] pages.
7
8 [[toc ]]
9
10 # Installation/Setup questions
11
12 Ikiwiki creates a .ikiwiki directory in my wikiwc working directory. Should I
13 "svn add .ikiwiki" or add it to svn:ignore?
14
15 > `.ikiwiki` is used by ikiwiki to store internal state. You can add it to
16 > svn:ignore. --[[Joey]]
17 > > Thanks a lot.
18
19 Is there an easy way to log via e-mail to some webmaster address, instead
20 of via syslog?
21
22 > Not sure why you'd want to do that, but couldn't you use a tool like
23 > logwatch to mail selected lines from the syslog? --[[Joey]]
24
25 > > The reason is that I'm not logged in on the web server regularly to
26 > > check the log files. I'll see whether I can install a logwatch instance.
27
28 ----
29
30 # Upgrade steps
31
32 I upgrades from 1.40  to 2.6.1. I ran "ikiwiki --setup" using my existing ikiwiki.setup configuration.
33 I had many errors like:
34
35     /home/bsdwiki/www/wiki/wikilink/index.html independently created, not overwriting with version from wikilink
36     BEGIN failed--compilation aborted at (eval 5) line 129.
37
38 and:
39
40     failed renaming /home/bsdwiki/www/wiki/smileys.ikiwiki-new to /home/bsdwiki/www/wiki/smileys: Is a directory
41     BEGIN failed--compilation aborted at (eval 5) line 129.
42
43 Probably about six errors like this. I worked around this by removing the files and directories it complained about.
44 Finally it finished.
45
46 > As of version 2.0, ikiwiki enables usedirs by default. See
47 > [[tips/switching_to_usedirs]] for details. --[[Joey]]
48
49 >> I read the config wrong. I was thinking that it showed the defaults even though commented out
50 >> (like ssh configs do). I fixed that part. --JeremyReed
51
52 My next problem was that ikiwiki start letting me edit without any password authentication. It used to prompt
53 me for a password but now just goes right into the "editing" mode.
54 The release notes for 2.0 say password auth is still on by default.
55
56 > It sounds like you have the anonok plugin enabled?
57
58 >> Where is the default documented? My config doesn't have it uncommented.
59
60 The third problem is that when editing my textbox is empty -- no content.
61
62 This is using my custom rcs.pm which has been used thousands of times.
63
64 > Have you rebuilt the cgi wrapper since you upgraded ikiwiki? AFAIK I
65 > fixed a bug that could result in the edit box always being empty back in
66 > version 2.3. The only other way it could happen is if ikiwiki does not
67 > have saved state about the page that it's editing (in .ikiwiki/index).
68
69 >> Rebuilt it several times. Now that I think of it, I think my early problem of having
70 >> no content in the textbox was before I rebuilt the cgi. And after I rebuilt the whole webpage was empty.
71
72 Now I regenerated my ikiwiki.cgi again (no change to my configuration,
73 and I just get an empty HTML page when attempting editing or "create".
74
75 > If the page is completly empty then ikiwiki is crashing before it can
76 > output anything, though this seems unlikely. Check the webserver logs.
77
78 Now I see it created directories for my data. I fixed that by setting 
79 usedirs (I see that is in the release notes for 2.0) and rerunning ikiwiki --setup
80 but I still have empty pages for editing (no textbox no html at all).
81
82 > Is IkiWiki crashing? If so, it would probably leave error text in the apache logs. --[[TaylorKillian]]
83
84 >> Not using apache. Nothing useful in logs other thn the HTTP return codes are "0" and bytes is "-"
85 >> on the empty ikiwiki.cgi output (should say " 200 " followed by bytes).
86
87 >>> You need to either figure out what your web server does with stderr
88 >>> from cgi programs, or run ikiwiki.cgi at the command line with an
89 >>> appropriate environment so it thinks it's being called from a web
90 >>> server, so you can see how it's failing. --[[Joey]]
91
92 (I am posting this now, but will do some research and post some more.)
93
94 Is there any webpage with upgrade steps?
95
96 > Users are expected to read [[news]], which points out any incompatible
97 > changes or cases where manual action is needed.
98
99 >> I read it but read the usedirs option wrong :(.
100 >> Also it appears to be missing the news from between 1.40 to 2.0 unless they dont' exist.
101 >> If they do exist maybe they have release notes I need?
102
103 >>> All the old ones are in the NEWS file. --[[Joey]]
104
105 --JeremyReed
106
107 My followup: I used a new ikiwiki.setup based on the latest version. But no changes for me.
108
109 Also I forgot to mention that do=recentchanges works good for me. It uses my 
110 rcs_recentchanges in my rcs perl module.
111
112 The do=prefs does nothing though -- just a blank webpage.
113
114 > You need to figure out why ikiwiki is crashing. The webserver logs should
115 > tell you.
116
117 I also set verbose => 1 and running ikiwiki --setup was verbose, but no changes in running CGI.
118 I was hoping for some output.
119
120 I am guessing that my rcs perl module stopped working on the upgrade. I didn't notice any release notes
121 on changes to revision control modules. Has something changed? I will also look.
122
123 > No, the rcs interface has not needed to change in a long time. Also,
124 > nothing is done with the rcs for do=prefs.
125
126 >> Thanks. I also checked differences between 1.40 Rcs plugins and didn't notice anything significant.
127
128 --JeremyReed
129
130 Another Followup: I created a new ikiwiki configuration and did the --setup to 
131 create an entirely different website. I have same problem there. No prompt for password
132 and empty webpage when using the cgi.
133 I never upgraded any perl modules so maybe a new perl module is required but I don't see any errors so I don't know.
134
135 The only errors I see when building and installing ikiwiki are:
136
137     Can't exec "otl2html": No such file or directory at IkiWiki/Plugin/otl.pm line 66.
138
139     gettext 0.14 too old, not updating the pot file
140
141 I don't use GNU gettext on here.
142
143 I may need to revert back to my old ikiwiki install which has been used to thousands of times (with around
144 1000 rcs commits via ikiwiki).
145
146 --JeremyReed
147
148 I downgraded to version 1.40 (that was what I had before I wrote wrong above).
149 Now ikiwiki is working for me again (but using 1.40). I shouldn't have tested on production system :)
150
151 --JeremyReed
152
153 I am back. On a different system, I installed ikiwiki 2.6.1. Same problem -- blank CGI webpage.
154
155 So I manually ran with:
156
157     REQUEST_METHOD=GET QUERY_STRING='do=create&page=jcr' kiwiki.cgi
158
159 And clearly saw the error:
160
161     [IkiWiki::main] Fatal: Bad template engine CGI::FormBuilder::Template::div: Can't locate CGI/FormBuilder/Template/div.pm
162
163 So I found my version was too old and 3.05 is the first to provide "Div" support. I upgraded my p5-CGI-FormBuilder to 3.0501.
164 And ikiwiki CGI started working for me.
165
166 The Ikiwiki docs about this requirement got removed in Revision 4367. There should be a page that lists the requirements.
167 (I guess I could have used the debian/control file.)
168
169 I am now using ikiwiki 2.6.1 on my testing system.
170
171 --JeremyReed
172
173 ----
174 # Excellent - how do I translate a TWiki site?
175
176 I just discovered ikiwiki quite by chance, I was looking for a console/terminal
177 menu system and found pdmenu.  So pdmenu brought me to here and I've found ikiwiki!
178 It looks as if it's just what I've been wanting for a long time.  I wanted something
179 to create mostly text web pages which, as far as possible, have source which is human 
180 readable or at least in a standard format.  ikiwiki does this twice over by using 
181 markdown for the source and producing static HTML from it.
182
183 I'm currently using TWiki and have a fair number of pages in that format, does
184 anyone have any bright ideas for translating?  I can knock up awk scripts fairly
185 easily, perl is possible (but I'm not strong in perl).
186
187 > Let us know if you come up with something to transition from the other
188 > format. Another option would be writing a ikiwiki plugin to support the
189 > TWiki format. --[[Joey]]
190
191 > Jamey Sharp and I have a set of scripts in progress to convert other wikis to ikiwiki, including history, so that we can migrate a few of our wikis.  We already have support for migrating MoinMoin wikis to ikiwiki, including conversion of the entire history to Git.  We used this to convert the [XCB wiki](http://xcb.freedesktop.org/wiki/) to ikiwiki; until we finalize the conversion and put the new wiki in place of the old one, you can browse the converted result at <http://xcb.freedesktop.org/ikiwiki>.  We already plan to add support for TWiki (including history, since you can just run parsecvs on the TWiki RCS files to get Git), so that we can convert the [Portland State Aerospace Society wiki](http://psas.pdx.edu) (currently in Moin, but with much of its history in TWiki, and with many of its pages still in TWiki format using Jamey's TWiki format for MoinMoin).
192 >
193 > Our scripts convert by way of HTML, using portions of the source wiki's code to render as HTML (with some additional code to do things like translate MoinMoin's `\[[TableOfContents]]` to ikiwiki's `\[[toc ]]`), and then using a modified [[cpan HTML::WikiConverter]] to turn this into markdown and ikiwiki.  This produces quite satisfactory results, apart from things that don't have any markdown equivalent and thus remain HTML, such as tables and definition lists.  Conversion of the history occurs by first using another script we wrote to translate MoinMoin history to Git, then using our git-map script to map a transformation over the Git history.
194 >
195 > We will post the scripts as soon as we have them complete enough to convert our wikis.
196 >
197 > -- [[JoshTriplett]]
198
199 >> Thanks for an excellent Xmas present, I will appreciate the additional 
200 >> users this will help switch to ikiwiki! --[[Joey]]
201
202 ----
203
204 # LaTeX support?
205
206 Moved to [[todo/latex]] --[[Joey]]
207
208 ----
209
210 # Using with CVS?
211
212 Moved to a [[todo_item|todo/CVS_backend]]. --[[JoshTriplett]]
213
214 ----
215
216 # Show differences before saving page?
217
218 Moved to the existing [[todo_item|todo/preview_changes]]. --[[JoshTriplett]]
219
220 ----
221
222 # Max submit size?
223
224 Any setting for limiting how many kilobytes can be submitted via the "edit" form?
225 -- [[JeremyReed]]
226
227 >>> See [[todo/fileupload]] for an idea on limiting page size. --[[Joey]]
228
229 ----
230
231 # Access Keys
232
233 Would anyone else find this a valuable addition.  In oddmuse and instiki (the only other
234 wiki engines I am currently using, the edit, home, and submit link tags have an
235 accesskey attribute.  I find it nice not to have to resort to the mouse for those
236 actions.  However, it may not be something everyone appreciates.  Any thoughts?
237 --[Mazirian](http://mazirian.com)
238
239 > Maybe, although it would need to take the critisism at
240 > <http://www.cs.tut.fi/~jkorpela/forms/accesskey.html> into account.
241
242 >> Thank you for that link. Given that the edit link is the first thing you tab to
243 >> in the current layout, I guess it isn't all that necessary. I have had a 
244 >> a user complaint recently that Alt-e in oddmuse was overriding his access
245 >> to the browser menu.
246
247 ----
248
249 # Editing the style sheet.
250
251 It would be nice to be able to edit the stylesheet by means of the cgi.  Or is this possible?  I wasn't able to achieve it.
252 Ok, that's my last 2 cents for a while. --[Mazirian](http://mazirian.com)
253
254 > I don't support editing it, but if/when ikiwiki gets [[todo/fileupload]] support,
255 > it'll be possible to upload a style sheet. (If .css is in the allowed
256 > extensions list.. no idea how safe that would be, a style sheet is
257 > probably a great place to put XSS attacks and evil javascript that would
258 > be filtered out of any regular page in ikiwiki). --[[Joey]]
259
260 >> I hadn't thought of that at all.  It's a common feature and one I've
261 >> relied on safely, because the wikis I am maintaining at the moment
262 >> are all private and restricted to trusted users. Given that the whole
263 >> point of ikiwiki is to be able to access and edit via the shell as
264 >> well as the web, I suppose the features doesn't add a lot.  By the
265 >> way, the w3m mode is brilliant.  I haven't tried it yet, but the idea
266 >> is great.
267
268 ----
269
270 # Should not create an existing page
271
272 This might be a bug, but will discuss it here first.
273 Clicking on an old "?" or going to a create link but new Markdown content exists, should not go into "create" mode, but should do a regular "edit".
274
275 > I belive that currently it does a redirect to the new static web page.
276 > At least that's the intent of the code. --[[Joey]]
277
278 >> Try at your site: `?page=discussion&from=index&do=create`
279 >> It brings up an empty textarea to start a new webpage -- even though it already exists here. --reed
280
281 >>> Ah, right. Notice that the resulting form allows saving the page as
282 >>> discussion, or users/discussion, but not index/discussion, since this
283 >>> page already exists. If all the pages existed, it would do the redirect
284 >>> thing. --[[Joey]]
285
286 ----
287
288 # User database tools?
289
290 Any tool to view user database?
291
292 Any tool to edit the user database?
293
294 > No, but it's fairly easy to write such tools in perl. For example, to
295 > list all users in the user database:
296
297         joey@kodama:~/src/joeywiki/.ikiwiki>perl -le 'use Storable; my $userinfo=Storable::retrieve("userdb"); print $_ foreach keys %$userinfo'         
298         http://joey.kitenet.net/
299         foo
300
301 > To list each user's email address:
302
303         joey@kodama:~/src/joeywiki/.ikiwiki>perl -le 'use Storable; my $userinfo=Storable::retrieve("userdb"); print $userinfo->{$_}->{email} foreach keys %$userinfo'
304         
305         joey@kitenet.net
306
307 > Editing is simply a matter of changing values and calling Storable::store().
308 > I've not written actual utilities to do this yet because I've only needed
309 > to do it rarely, and the data I've wanted has been different each time.
310 > --[[Joey]]
311
312 ----
313
314 # Spaces in WikiLinks?
315
316 Hello Joey,
317
318 I've just switched from ikiwiki 2.0 to ikiwiki 2.2 and I'm really surprised
319 that I can't use the spaces in WikiLinks. Could you please tell me why the spaces
320 aren't allowed in WikiLinks now?
321
322 My best regards,
323
324 --[[Paweł|ptecza]]
325
326 > See [[bugs/Spaces_in_link_text_for_ikiwiki_links]]
327
328 ----
329
330 # Build in OpenSolaris?
331
332 Moved to [[bugs/build_in_opensolaris]] --[[Joey]]
333
334 ----
335
336 # Various ways to use Subversion with ikiwiki
337
338 I'm playing around with various ways that I can use subversion with ikiwiki.
339
340 * Is it possible to have ikiwiki point to a subversion repository which is on a different server?  The basic checkin/checkout functionality seems to work but there doesn't seem to be any way to make the post-commit hook work for a non-local server?
341
342 > This is difficult to do since ikiwiki's post-commit wrapper expects to
343 > run on a machine that contains both the svn repository and the .ikiwiki
344 > state directory. However, with recent versions of ikiwiki, you can get
345 > away without running the post-commit wrapper on commit, and all you lose
346 > is the ability to send commit notification emails.
347
348 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.
349
350 --[[AdamShand]]
351
352 > Sure, see ikiwiki's subversion repository for example of non-wiki files
353 > in the same repo. If you have two wikis in one repository, you will need
354 > to write a post-commit script that calls the post-commit wrappers for each
355 > wiki.