Ищете HTML-генератор Toc

Я хочу сгенерировать ток для заголовочных тегов. Есть ли бесплатная программа?

3 ответа

В качестве альтернативы htmltoc скрипт, упомянутый @user5858, есть hypertoc, более мощный переписать то же самое, снова сделано с Perl. Установите его так (на Ubuntu Linux, например):

sudo cpan -f -i HTML::GenToc

Используйте это так:

hypertoc --inline --make_anchors --make_toc --overwrite file.html

Я только что написал сообщение в блоге о создании оглавления для HTML-страницы, используя hypertoc, sed и make. Сценарий оболочки также вставляет объявления Google, используя имя объявления. Я также создал раздел навигации, который можно использовать для перехода на другие страницы веб-сайта.

Пример шаблона веб-страницы, который я использую, выглядит примерно так:

<!-- INCLUDE Navigation -->
<div id="centerDoc">
<h1>Title</h1>
<!-- Insert an ad -->
<!-- INCLUDE GoogleAd1 -->
<!-- Insert the table of contents here -->
<!--toc-->
<h2>More HTML code here</h2>

Я написал скрипт под названием include, который читает файл с именем *.html.in и создал файл *.html. Сценарий выглядит так. Я также использовал make-файл для преобразования файлов *.html.in в файлы *.html.

#!/bin/sh
#This script modifies HTML pages staticly, using something similar 
# to the "#INCLUDE" C preprocessor mechanism
INCLUDE=${1?'Missing include file'}
shift
IFILE=${1?'Missing input file'}
OFILE=`echo $IFILE  | sed 's/\.in$//'`
# get the name without the path
OFILENAME=`echo $OFILE  | sed 's:.*/::'`
if [ "$IFILE" = "$OFILE" ]
then
    echo input file $IFILE same as output file $OFILE - exit
    exit
fi

ARGS="--toc_entry 'H1=1' --toc_end 'H1=/H1' --toc_entry 'H2=2' --toc_end 'H2=/H2'  --toc_entry 'H3=3' --toc_end 'H3=/H3'  --toc_entry 'H4=4' --toc_end 'H4=/H4' --toc_entry 'H5=5' --toc_end 'H5=/H5'"
# The string !--toc-- is used as a marker to insert the new Table of Contents
TOC="--toc_tag '!--toc--' --toc_tag_replace"
eval hypertoc $ARGS $TOC --make_anchors --make_toc --inline --outfile - $IFILE| \
sed "/<!-- INCLUDE [Nn]avigation/ r $INCLUDE
# Quick and dirty way to add a way to get back to the Toc from an Entry
# 1) put a marker in the beginning of the ToC
    s/<h1>Table of Contents/<h1><a name=\"TOC\">Table Of Contents/
# 2) Add a link back to the ToC from each entry
    s:\(<h[1234]>\)<a name=:\1<a href=\"$OFILENAME#TOC\" name=:g
# Include ad named 'GoogleAd1'
    /INCLUDE GoogleAd1/ {
    r Ads/GoogleAd1
    }
" >$OFILE

Плагин samaxesjs TOC jQuery работает довольно хорошо.

Другие вопросы по тегам