summaryrefslogtreecommitdiff
path: root/inc/parser.php
diff options
context:
space:
mode:
authorjan <jan@jandecaluwe.com>2005-03-26 14:05:57 +0100
committerjan <jan@jandecaluwe.com>2005-03-26 14:05:57 +0100
commita77f584692c01151a33d85c32b23f8866b021c7c (patch)
tree3f50605e6b4a7c4ba916b7884d5e5d6145e137b2 /inc/parser.php
parenteca0e1f9c70d33cd1e944fda5e8c7ac307588eef (diff)
downloadrpg-a77f584692c01151a33d85c32b23f8866b021c7c.tar.gz
rpg-a77f584692c01151a33d85c32b23f8866b021c7c.tar.bz2
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
Diffstat (limited to 'inc/parser.php')
-rw-r--r--inc/parser.php17
1 files changed, 17 insertions, 0 deletions
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 <jan@jandecaluwe.com>
+ */
+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;
+}
+
?>