<?php if (!defined('PmWiki')) exit(); /* * Copyright 2006 Kathryn Andersen * * This program is free software; you can redistribute it and/or modify it * under the Gnu Public Licence or the Artistic Licence. */ /** \file handytoc.php * \brief JavaScript Table of Contents * * See Also: http://www.pmwiki.org/wiki/Cookbook/HandyToc */ $RecipeInfo['HandyTableOfContents']['Version'] = '20180417'; SDV($HandyTocPubDirUrl, '$FarmPubDirUrl/handytoc'); SDV($HandyTocStartAt, 1); SDV($HandyTocEndAt, 6); SDV($HandyTocIgnoreSoleH1, 'true'); Markup("handytoc", "directives", "/\\(:htoc\s*(.*):\\)/", "HandyTocProcessMarkup"); $HTMLHeaderFmt['handytoc'] = "<link rel='stylesheet' href='\$HandyTocPubDirUrl/handytoc.css' type='text/css' />\n"; function HandyTocProcessMarkup($m) { $argstr = $m[1]; global $HandyTocEndAt, $HandyTocStartAt, $HandyTocIgnoreSoleH1; global $HTMLFooterFmt; $args = ParseArgs($argstr); $title = ($args[''] ? implode(' ', $args['']) : ''); $start = ($args['start'] ? $args['start'] : $HandyTocStartAt); $end = ($args['end'] ? $args['end'] : $HandyTocEndAt); $ignoreh1 = ($args['ignoreh1'] ? $args['ignoreh1'] : $HandyTocIgnoreSoleH1); $class = ($args['class'] ? ' class="' . $args['class'] . '" ' : ''); $HTMLFooterFmt['handytoc'] = " <script language='javascript' type='text/javascript' src='\$HandyTocPubDirUrl/handytoc.js'></script> <script language='javascript' type='text/javascript'>TOC.set_args({start:$start, end:$end, ignoreh1:$ignoreh1});</script> "; if ($title) { return Keep("<div ${class}id='htoc'><h3>$title</h3></div>"); } else { return Keep("<div ${class}id='htoc'></div>"); } }