1 (17.04.2015 09:47:22 отредактировано BaNru)

Тема: Скрипт похожий на TableOfContents

Предлагаю простенький скрипт, похожий на плагин TableOfContents, только генерирует содержание с ссылками автоматически в режиме "просмотра".

Скрипт написан только что "на коленке" под собственные нужды, поэтому он простой и без красивых стилей (думаю это не проблема).
Можно было бы доработать напильником и сделать по фен-шую через списки, но это не имеет смысла.
По хорошему конечно подобное внедрить в виде плагина.

Плюсы и его же минусы:
- Автоматически генерирует оглавление с ссылками каждый раз открывая вкладку просмотр, не требует нажатия каких либо кнопок. Но неизвестно как себя поведет на оооочень больших файлах при оооочень слабом железе. Хотя в таких условиях мало что себя хорошо поведет big_smile
- Не отображается в режимах редактирования, не мешает, но и исправить нельзя.
- Автоматически генерирует ID и ссылки. Возможны проблемы с другими оглавлениями и именно с (:toc). Я не знаю что это такое и как оно работает, ибо оно мне пока не надо, но думаю данную проблему легко исправить.
- Так как это не плагин, работает только на страницах, где вы сами этот скрипт разместите. !!!Скрипт, разумеется, можно использовать не только в программ OutWiker, но и на любом сайте.

Сам код:

<script>
    setTimeout(function() {
        var h = document.querySelectorAll('h1,h2,h3,h4,h5,h6'),
            hl = h.length,
            list = '';
        for(i = 0; i < hl; i++){
            h[i].id = '_h'+i;
            list += '<a href="#'+'_h'+i+'" class="_'+h[i].tagName.toLowerCase()
                 +  '" title="'+h[i].innerHTML+'">'+h[i].innerHTML+'</a>';
        }
        document.body.insertAdjacentHTML('afterbegin', list);
    }, 200);
</script>
<style>
    a._h1, a._h2, a._h3, a._h4, a._h5, a._h6 {
        display: block;
    }
    ._h1 {
        padding-left: 10px;
    }
    ._h2 {
        padding-left: 20px;
    }
    ._h3 {
        padding-left: 30px;
    }
    ._h4 {
        padding-left: 40px;
    }
    ._h5 {
        padding-left: 50px;
    }
    ._h6 {
        padding-left: 60px;
    }
</style>

Вставлять на вкладке HTML перед закрывающим тегом </HEAD>

Post's attachments

Attachment icon 1429253063765.png 34.31 kb, 87 downloads since 2015-04-17 

2 (17.04.2015 21:30:02 отредактировано BaNru)

Re: Скрипт похожий на TableOfContents

Сразу не проверил, небольшая корректировка.

Если создана вики страница, то HTML режим находится в READ ONLY, поэтому править не получится.
Чтобы внедрить данный код, необходимо зайти в папку с исходниками страницы и добавить в файл __style.html , как написано в предыдущем сообщение.
Но такой файл, наверное, будет доступен только после подключения плагина стилей.

Либо создать HTML страницу и вставить в неё. Но в данном режиме работоспособность не проверена.

3

Re: Скрипт похожий на TableOfContents

Спасибо за скрипт, интересная идея. Наверное, на викистраницах его можно использовать вместе с плагином HtmlHeads.

4

Re: Скрипт похожий на TableOfContents

Если его использовать в вики страницах в том плагине, то стоит допилить.
Сейчас точно есть конфликт с (:toc).
Как я писал, я не знаю что это такое и с чем его едят.

Но если есть желание внедрить этот скрипт в плагин, то готов доработать.

5

Re: Скрипт похожий на TableOfContents

А, или предложение добавлять внутри тега (:htmlhead:)?
Ну да, можно и так.