From: Csaba S. <san...@te...> - 2008-07-24 20:26:13
|
Dear All! A while ago now I realized that TW didn?t have any footnote/reference functions and so I made some small enhancements to ANAME and ALINK with two new plugins: QUICKREF and QUICKNOTE. They work the same way as ALINK and ANAME except that they automatically create the superscript version of the footnote number and allow the user to jump back and forth between the footnote number and the reference at the end of the page using anchors. Like I said, these are just first drafts that don?t take into consideration page breaks (?page?) and things like that. I?ve copied the codes at the end of the e-mail. Anyhoop, I also talked to Marc who suggested that we continue brainstorming in this forum about creating a ?proper? reference mechanism. Let me start by making clear that I am new to TW and I have a VERY limited understanding of the inner workings of the system - or even how the different programming languages interact - so please bear with me! I would suggest the following solution ? which shouldn?t be too hard to implement. I think that the easiest way to achieve a footnote solution is to use something similar to what {maketoc} does. If I understand correctly, {maketoc} is a part of the function parse_data in tikilib.php. (Alternatively, this may be done through a plugin as well, but I don?t know if a plugin would have access to the data the same way that the parse_data function would) I believe we can expand the parse_data function (or plugin) to handle the footnotes as well. The function would consist of two parts. The first part searches through the main-text field to search for the syntax which denotes a footnote and collects these into an array (for example) and adds the footnote number. I would suggest that the syntax could look something like this: {footnote ref=[mypage.com/page.htm|my reference site]} (fyi tikiwiki uses the syntax <ref>...</ref>) The second part would take the collection of footnotes (already ordered according to their appearance on the page) and simply create list from these with the appropriate anchor (to the original footnotes) and url links. Then, it converts this to an html list and displays it automatically at the end of the text or if there is a special syntax ? such as {references} ? it displays the list there. One aspect to consider is whether to use the same system as wikipedia uses whereby a footnote pointing to the same reference will get the same number assigned to it. In the reference list it will then look like: 1. ^a b c mypage.com/page.htm|my reference site ? where each letter ?a? ?b? or ?c? are anchored to the same footnote number but in different sections of the text. I am not particularly fond of this system ? as in classical referencing you simply use an increasing number of footnotes regardless of what their reference is. So I think, you could simply let the occurrence of the footnote in the text decide which number it should be ? and this would be easily calculated in the second part described above. -Csaba (zorp) ------------- <?php /* * Tiki-Wiki QUICKNOTE plugin. Go to http://www.TikiMODS.com for more Tikiwiki Plugins. * * DESCRIPTION: Dislpays a footnote in list format used to collect footnotes at the end of the page. Creates an ancor back to the refering footnote. * Use in conjunction with the QUICKREF plugin, which creates the original footnote with an anchor to the note. * * INSTALLATION: Just put this file into your Tikiwiki site's lib/wiki-plugins folder. * * USAGE SYNTAX: * * {QUICKNOTE( * footnote=>the number of the refering footnote from QUICKREF * )} => the reference itself * {QUICKNOTE} * * EXAMPLE: {QUICKNOTE(footnote=1)}from [http://tikiwiki.org|tikiwiki] {QUICKNOTE} * will display the number of footnote in a list format. The footnote will be the anchorpoint of the footnote and * link back to the refering footnote's ID. * */ function wikiplugin_quicknote($data, $params) { global $tikilib; extract ($params, EXTR_SKIP); return "<small> <a id=quicknote$footnote href=\"#quickref$footnote\" title=\" \">" . $footnote . '.' . "</a> $data</small>"; } ?> ---------------- <?php /* * Tiki-Wiki QUICKREF plugin. Go to http://www.TikiMODS.com for more Tikiwiki Plugins. * * DESCRIPTION: Insersts a footnote with an anchor. Use in conjunction with the QUICKNOTE plugin, which puts the footnote in a list and links to it through an anchor. * * INSTALLATION: Just put this file into your Tikiwiki site's lib/wiki-plugins folder. * * USAGE SYNTAX: * * {QUICKREF( * footnote=>the number of the footnote will be the same number as the one used in QUICKNOTE (could be letters/words/whatever as well)! * )} * {QUICKREF} * * EXAMPLE: {QUICKREF(footnote=1)}{QUICKREF} will create the footnote and anchor to "quicknote1". * The anchor "quicknote1" will then anchor back to the footnote - more precisely to "quickref1". * */ function wikiplugin_quickref($data, $params) { global $tikilib; extract ($params, EXTR_SKIP); $footnote = ereg_replace('[^a-zA-Z0-9]+', '_', $footnote); if (!isset($footnote)) { return ("<b>missing parameter for footnote</b><br />"); } return "<sup id=\"quickref$footnote\"><a href=\"#quicknote$footnote\"> [[$footnote]</a></sup>"; } ?> |