From 9f9a92d2a7a26fd2413b5751f94af218d70e67d1 Mon Sep 17 00:00:00 2001 From: rich Date: Mon, 20 Sep 2004 11:11:15 +0000 Subject: [PATCH] Link names () now W3C compliant. Bumped release number. --- debian/changelog | 2 +- scripts/page.ml | 16 +++++++++++++++- templates/page.html | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index ff1b47b..6f82905 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -cocanwiki (1.1.0-5) unstable; urgency=low +cocanwiki (1.1.0-6) unstable; urgency=low * Initial Release. diff --git a/scripts/page.ml b/scripts/page.ml index b219afa..366d34e 100644 --- a/scripts/page.ml +++ b/scripts/page.ml @@ -1,7 +1,7 @@ (* COCANWIKI - a wiki written in Objective CAML. * Written by Richard W.M. Jones . * Copyright (C) 2004 Merjis Ltd. - * $Id: page.ml,v 1.13 2004/09/20 10:56:47 rich Exp $ + * $Id: page.ml,v 1.14 2004/09/20 11:11:15 rich Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ open Cocanwiki open Cocanwiki_template open Cocanwiki_ok open Cocanwiki_date +open Cocanwiki_strings (* Maximum level of redirection. *) let max_redirect = 4 @@ -59,6 +60,17 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user = let can_manage_users = can_manage_users user in let can_manage_contacts = can_manage_contacts user in + (* Convert a section name into something valid for use in + * XXX This breaks horribly for non-7-bit strings. + *) + let linkname_of_sectionname str = + let str = String.copy str in + for i = 0 to String.length str - 1 do + if not (isalnum str.[i]) then str.[i] <- '_' + done; + str + in + (* This code generates ordinary pages. *) let make_page title description pageid last_modified_date has_page_css version page page' = @@ -106,9 +118,11 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid {edit_anon=edit_anon} user = match sectionname with `Null -> "", false | `String sectionname -> sectionname, true in + let linkname = linkname_of_sectionname sectionname in [ "ordering", Template.VarString (string_of_int ordering); "has_sectionname", Template.VarConditional has_sectionname; "sectionname", Template.VarString sectionname; + "linkname", Template.VarString linkname; "content", Template.VarString (Wikilib.xhtml_of_content dbh hostid content); diff --git a/templates/page.html b/templates/page.html index ece2787..1a5fb71 100644 --- a/templates/page.html +++ b/templates/page.html @@ -31,7 +31,7 @@ ::end:: ::table(sections):: -::if(has_divname)::
::end::::if(can_edit)::::end::::if(has_sectionname)::

::sectionname_html::

::end:: +::if(has_divname)::
::end::::if(can_edit)::::end::::if(has_sectionname)::

::sectionname_html::

::end:: ::content:: ::if(has_divname)::
::end::::end:: -- 1.8.3.1