From a77f584692c01151a33d85c32b23f8866b021c7c Mon Sep 17 00:00:00 2001 From: jan Date: Sat, 26 Mar 2005 14:05:57 +0100 Subject: Use first heading as page name in links. I just read "Don't make me think!" by Steve Krug, about web usability, and I liked its common sense a lot. One message was that every page should have a title, and that it should literally match what you click to get there. This patch tries to automate that for Dokuwiki. In wiki page links, it will fetch the first heading (the title) and use it as the name in links (unless an explicit other name is defined in the link). The same is done for the breadcrumbs (at least the default ones). I believe all this should make navigation easier. The feature is enabled/disabled with a configuration variable called $conf['useheading']. TO DO: more testing. Check whether the first heading is at a unique high level (probably easier when true parsing will be used.) Check hierarchical breadcrumbs. Perhaps omit the title from the automatic table of contents, and perhaps adapt the toc intentation of the lower level headings. darcs-hash:20050326130557-45605-bf7fdaf29e61924f2631af1bb95177ee0415c24d.gz --- inc/parser.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'inc/parser.php') diff --git a/inc/parser.php b/inc/parser.php index 0fe04afba..e14c5bcd5 100644 --- a/inc/parser.php +++ b/inc/parser.php @@ -838,4 +838,21 @@ function mediaformat($text){ return format_link_build($link); } +/** + * Get first heading, to be used as a page title + * + * @author Jan Decaluwe + */ +function getFirstHeading($text){ + $title = ''; + $lines = split("\n",$text); + foreach($lines as $line){ + if(preg_match('/^\s*==+(.+?)==+\s*$/',$line,$matches)){ + $title = $matches[1]; + break; + } + } + return $title; +} + ?> -- cgit v1.2.3