Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
[ikiwiki] / doc / todo / mdwn_preview.mdwn
1 The [StackOverflow](http://stackoverflow.com/) site uses markdown for markup.
2 It has a fancy javascript thing for showing a real-time preview of what the user
3 is editing. It would be nice if ikiwiki could support this, too. The thing they
4 use on StackOverflow is supposed to be free software, so it should be easy to
5 add to ikiwiki.
6
7 > See [[wikiwyg]]. Note that I do not have a copy of the code for that, or
8 > it'd be in ikiwiki already. --[[Joey]] 
9
10 >> I just had a brief look at the [[wikiwyg]] page and the link to the plugin was
11 >> broken.  The StackOverflow site uses the [WMD](http://wmd-editor.com/) editor,
12 >> which seems to be related to the [ShowDown](http://attacklab.net/showdown/)
13 >> javascript port of Markdown.  Interestingly, [WMD source](http://wmd.googlecode.com/)
14 >> is now available under an MIT license, though it is supposedly undergoing heavy
15 >> refactoring.  It looks like there was previous discussion ( [[todo/Add_showdown_GUI_input__47__edit]] )
16 >> about a showdown plugin.  Maybe a WMD plugin would be worthwhile.  I might
17 >> look into it if I have time on the weekend. -- [[Will]]
18
19 [[!tag wishlist]]
20
21 >>> Below is a simple plugin/[[patch]] to make use of the WMD editor.
22
23 >>>> Now added to ikiwiki, thanks! --[[Joey]] 
24
25 >>> Turns out it isn't hard at all to
26 >>> get a basic version going (which doesn't handle directives at all, nor does it swtich itself off when you're
27 >>> editing something other than Markdown source).  I've
28 >>> removed the done tag so this is visible as a patch. -- [[Will]]
29
30 >>>> Hmm, it would be good if it turned off for !mdwn. Although this could
31 >>>> be difficult for a new page, since there is a dropdown selector to
32 >>>> choose the markup language then. But it should be doable for editing an
33 >>>> existing page.
34
35 >>>>> I agree.  I'm working on this for for both new pages and existing pages.
36 >>>>> It shouldn't be hard once I get WMD going through the javascript API.
37 >>>>> At the moment that is inexplicably failing, and I haven't had time to have a good look at why.
38 >>>>> I may not get a chance to look at this again for a few weeks.
39
40 >>>> Can I get a license statement (ie, GPL-2+) ffrom you for the plugin?
41 >>>> --[[Joey]] 
42
43 >>>>> Certainly.  You're free to use the code I posted below under the GPL-2+ license.  You'll note
44 >>>>> however that I haven't said anything about the WMD code itself.  The WMD web page says:
45
46 >>>>>> "I'm refactoring the code, and will be releasing WMD under the MIT license soon. For now you can download the most recent release (wmd-1.0.1.zip) and use it freely."
47
48 >>>>> It might be best to contact <support@attacklab.net> to for an explicit license on that if you want to include it.
49 >>>>> -- [[Will]]
50
51 > So, I wonder if I should add a copy of the WMD source to ikiwiki, or rely
52 > on the user or distribution providing it. It does not seem to be packaged
53 > for Debian yet. Hmm, I also can't find any copyright or license info in
54 > the zip file. --[[Joey]] 
55
56 >> This is a good question.  My thought is that it will probably not be packaged any time soon,
57 >> so you're better off adding it to IkiWiki.  I'd contact the author of WMD and ask them.  They
58 >> may have more insight.  -- [[Will]]
59
60 Note that the WMD plugin does **not** handle directives.  For this reason the normal `preview` button
61 remains.  Some CSS to clean up the display of the live WMD preview would be good.
62
63 > Can you elucidate the CSS comment -- or will it be obvious what you mean
64 > when I try it? Is it what's needed for the live preview? --[[Joey]]
65
66 >> In the version of the plugin below, a new `div` is added just below the form.  WMD
67 >> populates this div with the HTML it generates from the Markdown source.  This is not very
68 >> pretty at the moment - it appears in the same place as the preview used to, but with no
69 >> header or anything.  Any standard IkiWiki preview will appear below the WMD live preview.
70 >> I recommend having a look at <http://wmd-editor.com/examples/splitscreen>
71 >> for what a little CSS could achieve.  -- [[Will]]
72
73 > Hmm, now that I've tried it, I notice that it does live preview by
74 > default, below the edit window. Which is nice, but then if I hit the
75 > preview button, I get two previews.. which is confusing. (Also, minor,
76 > but: the live preview is missing the "Page Preview:" header.) --[[Joey]] 
77
78 > I wonder how annoying it would be to add some kind of simplistic wikilink
79 > support to wmd's preview? And/or a wikilink button? While not supporting
80 > directies is fine, not supporting wikilinks in a wiki seems a bit
81 > lacking. It may also entice novide users to not use wikilinks and instead
82 > use the hyperlinks that wmd does support. --[[Joey]] 
83
84 > Bug: When I preview, all the text in the edit field seems to be
85 > converted from mdwn to html. I think that wmd is converting the mdwn
86 > into html when the form is posted, so it would also save like that.
87 > I assume that is designed for websites that do not use markdown
88 > internally. Doesn't it have a setting to leave it as markdown? --[[Joey]]