fix for autolinking
[wiki.git] / ikiwiki.mdwn
1 Note: The information below about running this wiki on CentOS is out of date. It's now running on Ubuntu using the standard package.
2
3 To get autolink working using ikiwiki 3.20180228-1 on Ubuntu 18.04:
4
5 - add `$flags |= Text::Markdown::Discount::MKD_AUTOLINK();` to /usr/share/perl5/IkiWiki/Plugin/mdwn.pm
6 - `cd /srv/wiki-srcdir && ikiwiki --setup wiki.setup`
7
8 This wiki is running [ikiwiki](http://ikiwiki.info) on CentOS 6 with an [RPM](http://yum.greptilian.com/RPMS/noarch/ikiwiki-3.20120202-1.el6.noarch.rpm) I rebuild from a [ikiwiki Fedora spec file](https://admin.fedoraproject.org/pkgdb/acls/name/ikiwiki).  I also had to rebuild a number of dependencies, which you can find at http://yum.greptilian.com
9
10 After installing the RPMs, I ran `ikiwiki --setup wiki.setup` on [[/wiki.setup]].
11
12 The source of this wiki ([[markdown]], mostly) is available at http://git.greptilian.com/?p=wiki.git
13
14 That's where you can find my tweaks to the default page template, for example: http://git.greptilian.com/?p=wiki.git;a=history;f=templates/page.tmpl
15
16 In order to get autolinking working (MKD_AUTOLINK per http://www.pell.portland.or.us/~orc/Code/discount/ ), I made this change to http://cpansearch.perl.org/src/SEKIMURA/Text-Markdown-Discount-0.02/Discount.xs before running `make`:
17
18     [pdurbin@server1 Text-Markdown-Discount-0.02]$ diff -u Discount.xs.orig Discount.xs
19     --- Discount.xs.orig    2012-01-01 20:51:51.000000000 -0500
20     +++ Discount.xs 2012-04-21 23:12:45.376580002 -0400
21     @@ -46,7 +46,7 @@
22              char *text;
23          PREINIT:
24              SV* r = &PL_sv_undef;
25     -        int flags = MKD_NOHEADER|MKD_NOPANTS;
26     +        int flags = MKD_NOHEADER|MKD_NOPANTS|MKD_AUTOLINK;
27              char *html = NULL;
28              int szhtml;
29              Document *doc;
30     [pdurbin@server1 Text-Markdown-Discount-0.02]$ 
31
32 As http://ikiwiki.info/plugins/mdwn/ says, ikiwiki prefers to use Text::Markdown::Discount, if it's available.
33
34 You can subscribe to a feed of updates to this wiki at http://git.greptilian.com/?p=wiki.git;a=atom
35
36 ## Installing ikiwiki on Mac OS X with local::lib
37
38 I'm using `perl Makefile.PL INSTALL_BASE= PREFIX=$HOME/perl5` as suggested at http://ikiwiki.info/install/discussion/
39
40 I installed dependencies with `cpanm`.
41
42 `make` worked fine but `make install` showed...
43
44     /bin/sh: msgmerge: command not found
45     unable to run msgmerge
46     /bin/sh: msgfmt: command not found
47     unable to run msgfmt
48
49 ... so I ran `brew link gettext` per https://github.com/mxcl/homebrew/issues/7621
50
51 ## Previewing changes to this wiki locally before a git push
52
53     vim path/to/page.mdwn
54     ikiwiki --setup local.setup
55     cd _site
56     python -m SimpleHTTPServer
57
58 Browse to http://localhost:8000
59
60 ## Hack on table plugin
61
62 TODO: start discussion at http://ikiwiki.info/plugins/table/ about how having data that starts with "#" such as an IRC channel or hashtag gets turned into h1 tags. :(
63
64     root@server2:~# diff -u /usr/share/perl5/IkiWiki/Plugin/table.pm.orig /usr/share/perl5/IkiWiki/Plugin/table.pm
65     --- /usr/share/perl5/IkiWiki/Plugin/table.pm.orig       2013-09-04 18:11:12.000000000 -0400
66     +++ /usr/share/perl5/IkiWiki/Plugin/table.pm    2016-05-29 14:00:50.218858999 -0400
67     @@ -179,8 +179,12 @@
68             my @ret;
69             push @ret, "\t\t<tr>";
70             for (my $x=0; $x < @data; $x++) {
71     +               # hack by pdurbin to avoid #sourcefu becoming <h1>sourcefu</h1>
72     +               my $hack = $data[$x];
73     +               $hack =~ s/#/&#x23;/g;
74                     my $cell=IkiWiki::htmlize($page, $destpage, $type,
75     -                        IkiWiki::preprocess($page, $destpage, $data[$x]));
76     +                        IkiWiki::preprocess($page, $destpage, $hack));
77     +                        #IkiWiki::preprocess($page, $destpage, $data[$x]));
78      
79                     # automatic colspan for empty cells
80                     my $colspan=1;
81     root@server2:~# 
82