Автоматический TOC в GitHub-ароматизированный-markdown

можно ли создать автоматическое оглавление с помощью GitHub В Markdown Принятый?

14 ответов


Я создал два варианта для создания toc для GitHub-flavored-markdown:

DocToc Инструмент Командной Строки (источник) требует узел.js

Установка:

npm install -g doctoc

Использование:

doctoc . чтобы добавить оглавление ко всем файлам markdown в текущем и всех подкаталогах.

DocToc WebApp

Если вы хотите попробовать его в интернете сначала, перейдите в doctoc сайт, паста ссылка на страницу markdown и она будет генерировать таблицу содержимое, которое можно вставить в верхней части файла markdown.

на GitHub Вики и якоря

как отметил Мэтью Флашен в комментариях ниже, для своих вики-страниц GitHub ранее не создавал якоря, которые doctoc зависит от.

обновление: тем не менее, они исправлены этот вопрос.


GitHub Pages (который в основном является оболочкой для Jekyll) похоже, использует kramdown, который реализует все Maruku, и поэтому имеет поддержку для автоматически сгенерированное оглавление через:

* auto-gen TOC:
{:toc}

первая строка просто запускает неупорядоченный список и фактически выбрасывается.

в результате вложенных неупорядоченных списков, используя заголовки в документ.

Примечание: это должно работать для страниц GitHub, а не GitHub Flavored Markdown (GFM), как используется в комментариях или вики-страницах. AFAIK решения для этого не существует.


это не автоматически, но он использует регулярные выражения Notepad++:

заменить все первые на вторые (удаляет все строки, не имеющие заголовков)

^##(#?)(#?)(.*?)$(.|\r|\n)*?(?=^##|\z)
- [](#)\n

затем (преобразует заголовки III в пробелы)

-##
        -

затем (преобразует заголовки II в помещениях)

-#
    -

затем (удалите неиспользуемые символы в начале и в конце заголовка ссылки)

\[ *((?:(?![ .:#!\?;]*\])[^#])*)[ #:!\?;]*\]
[]

затем (конвертировать последние токены в нижний регистр и тире вместо пробелы)

\]([^ \r\n]*) ([^\r\n ]*)
]\L-

удалить неиспользованные последние фунты и начальные тире:

(?:()[-:;!\?#]+$|(\]#)-)

удалить бесполезные символы в ссылках:

(\].*?)(?:\(|\))

и, наконец, добавьте скобки вокруг конечных ссылок:

\](?!\()(.*?)$
\]\(\)

и вуаля! Вы даже можете поместить это в глобальный макрос, если вы повторите его достаточно времени.


Если вы редактируете файлы Markdown с Vim, вы можете попробовать этот плагин vim-markdown-toc.

использование просто, просто переместите курсор в место, которое вы хотите добавить оглавление и запустите :GenTocGFM, молодец!

скриншоты:

vim-markdown-toc

характеристики:

  1. создать toc для файлов Markdown. (Поддержка GitHub ароматизированный Markdown и Redcarpet)

  2. обновить существующие оглавление.

  3. автоматическое обновление toc при сохранении.


GitHub ароматизированный Markdown использует RedCarpet в качестве своего двигателя Markdown. От РЕПО RedCarpet:

:with_toc_data-добавление HTML-якорей к каждому заголовку в выходном HTML, разрешить привязку к каждому разделу.

кажется, что вам нужно будет добраться до уровня визуализации, чтобы установить этот флаг, что, очевидно, невозможно на Github. Однако обновление для страниц Github кажется, что автоматическая привязка для заголовков, создания заголовков состыковать. Не совсем то, что вы хотите, но это может помочь вам создать TOC для вашего документа немного проще (хотя и вручную).


Это невозможно, за исключением предлагаемого решения.

Я предложил kramdown TOC расширение и другие возможности для support@github.com и Стивен! Рагнарек!--4--> ответил с обычными:

Спасибо за предложение и ссылки. Я добавлю его в наш внутренний список запросов функций для команды.

давайте поднимем этот вопрос, пока это не произойдет.

другое (вообще недопустимо) обходной путь-использовать asciidoc вместо Markdown,что делает рендер TOCs.


можно автоматически создать веб-страницу с помощьюhttp://documentup.com/ из . Это не создание TOC, но для многих это может решить причину желания создать TOC.

Другой альтернативой Documentup является Flatdoc:http://ricostacruz.com/flatdoc/


Gitdown является препроцессором markdown для Github.

используя Gitdown вы можете:

  • создать Оглавление
  • найти мертвые URL и идентификаторы фрагментов
  • включить переменные
  • включаемые файлы
  • получить размер файла
  • Генерировать Знаки
  • Дата Печати
  • печать информации о самом репозитории

Gitdown упрощает общие задачи, связанные с ведением страницы документации для репозитория GitHub.

использование его просто:

var Gitdown = require('gitdown');

Gitdown
    // Gitdown flavored markdown.
    .read('.gitdown/README.md')
    // GitHub compatible markdown.
    .write('README.md');

вы можете иметь его как отдельный скрипт или как часть построения планового сценария (например,залпом).


использовать coryfklein / doctoc, форк thlorenz / doctoc не добавлять "генерируется с помощью DocToc " к каждому оглавлению.

npm install -g coryfklein/doctoc

очень удобный способ получить оглавление для файла mardown при работе с кодом Visual Studio-это расширение Markdown-TOC.

Он может добавить toc к существующим файлам markdown и даже сохранить toc в актуальном состоянии при сохранении.

enter image description here


мой коллега @schmiedc и я создали сценарий GreaseMonkey, который устанавливает новый TOC кнопка слева от h1 кнопка, которая использует отличную markdown-js библиотека для добавления / обновления оглавления.

преимущество перед такими решениями, как doctoc, заключается в том, что он интегрируется в Редактор wiki GitHub и не требует от пользователей работы в командной строке (и требует от пользователей установки таких инструментов, как node.js). В Chrome он работает путем перетаскивания ' n в Страница расширений, в Firefox вам нужно будет установить расширение GreaseMonkey.

он будет работать с простой markdown (т. е. он не обрабатывает блоки кода правильно, так как это расширение GitHub для markdown). Взносы приветствуются.


Это не прямой ответ на этот вопрос, поскольку так много людей предоставили обходные пути. Я не думаю, что создание TOC было официально поддержано Github еще на сегодняшний день. Если вы хотите, чтобы GitHub автоматически отображал оглавление на своих страницах предварительного просмотра GFM, пожалуйста, участвуйте в обсуждении на официальном запрос вопрос.


В настоящее время не возможно использование синтаксиса markdown (см. текущий обсуждение на GitHub), однако вы можете использовать внешние инструменты, такие как:


альтернативно использовать AsciiDoc вместо (например,README.adoc), например,

:toc: macro
:toc-title:
:toclevels: 99
# Title

## A

### A2

## B

### B2

как предложено в этом комментарий. Проверьте демо здесь.


на текстовый редактор Github Атом проверьте этот удивительный плагин (или" пакет " в Atom-lingo), который генерирует "TOC (оглавление) заголовков из разбираемой уценки" файлы:

markdown-toc

после установки в качестве Atom-пакета вы можете использовать ярлык ctrl-alt-c чтобы вставить TOC на основе вашей структуры markdown-doc в текущей позиции курсора...

скриншоты:

enter image description here

Atom Keybindings

markdown-toc дает вам следующие привязки ключей по умолчанию для управления плагином в Atom:

  • ctrl-alt-c => создать TOC в позиции курсора
  • ctrl-alt-u = > обновить TOC
  • ctrl-alt-r => удалить TOC

Плагины (от проект README)

  • автоматическое связывание через якорь теги, например,# A 1#a-1
  • контроль глубины [1-6] С depthFrom:1 и depthTo:6
  • включить или отключить ссылки с withLinks:1
  • обновить список при сохранении с updateOnSave:1
  • использовать упорядоченный список (1. ..., 2. ...) с orderedList:0