Markdown для создания страниц и оглавления?

Я начал использовать mardown для заметок.

Я использую отмеченный, чтобы просмотреть заметки о заметке и его красивые.

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

Я знаю, что markdown может создавать таблицы, но может ли он создавать оглавление, которое переходит к разделам или определяет разделы страницы в уценке?

В качестве альтернативы, есть читатели/редакторы уценки, которые могут делать такие вещи. Поиск будет хорошей особенностью, чтобы тоже.

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

4b9b3361

Похоже, что MultiMarkdown Composer генерирует оглавление, помогающее при редактировании.

Также может существовать та или иная библиотека, которая может генерировать оглавления: см. Расширение оглавления Python Markdown.

18
ответ дан 20 авг. '12 в 2:38
источник

Вы можете попробовать.

# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)

## Example
## Example2
## Third Example
236
ответ дан 15 янв. '15 в 1:22
источник

Здесь полезный метод. Должен создавать кликабельные ссылки в любом редакторе MarkDown.

# Table of contents
1. [Introduction](#introduction)
2. [Some paragraph](#paragraph1)
    1. [Sub paragraph](#subparagraph1)
3. [Another paragraph](#paragraph2)

## This is the introduction <a name="introduction"></a>
Some introduction text, formatted in heading 2 style

## Some paragraph <a name="paragraph1"></a>
The first paragraph text

### Sub paragraph <a name="subparagraph1"></a>
This is a sub paragraph, formatted in heading 3 style

## Another paragraph <a name="paragraph2"></a>
The second paragraph text

Выдает:

Содержание

Это введение

Некоторые вводные тексты, отформатированные в стиле заголовка 2

Некоторые параграфы

Текст первого абзаца

Подпункт

Это подпункт, отформатированный в стиле заголовка 3

Другой абзац

Текст второго абзаца

122
ответ дан 30 окт. '15 в 12:53
источник

Вы можете попробовать этот ruby ​​ script для создания TOC из файла уценки.

#!/usr/bin/env ruby

File.open("your_file.md", 'r') do |f|
  f.each_line do |line|
    forbidden_words = ['Table of contents', 'define', 'pragma']
    next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ }

    title = line.gsub("#", "").strip
    href = title.gsub(" ", "-").downcase
    puts "  " * (line.count("#")-1) + "* [#{title}](\##{href})"
  end
end
21
ответ дан 02 марта '14 в 20:45
источник
# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)

## Example [](#){name=example}
## Example2 [](#){name=example2}
## [Third Example](#){name=third-example}

Если вы используете дополнительную уценку, не забудьте добавить специальные атрибуты к ссылкам, заголовкам, кодам и изображениям.
https://michelf.ca/projects/php-markdown/extra/#spe-attr

20
ответ дан 09 сент. '17 в 1:09
источник

Для пользователей Visual Studio Code хорошая идея - использовать Markdown TOC.

Чтобы установить его, запустите быстрый просмотр кода VS (Ctrl + P), вставьте следующую команду и нажмите enter.

ext install markdown-toc

И чтобы сгенерировать TOC, откройте палитру команд (Ctrl + Shift + P) и выберите Markdown TOC:Insert/Update option или используйте Ctrl + M T.

17
ответ дан 10 мая '17 в 21:50
источник

Существует два способа создания TOC (сводка) в документе уценки.

1. Вручную

# My Table of content
- [Section 1](#id-section1)
- [Section 2](#id-section2)

<div id='id-section1'/>
## Section 1
<div id='id-section2'/>
## Section 2

2. Программный

Вы можете использовать, например, script, которые генерируют сводку для вас, посмотрите на мой проект на github - summarizeMD -

Я пробовал и другой модуль script/npm (например doctoc), но никто не воспроизводит TOC с работающими якорями.

16
ответ дан 03 апр. '15 в 16:28
источник

Я только что закодировал расширение для python-markdown, которое использует его синтаксический анализатор для извлечения заголовков и выводит TOC как неупорядоченный список в формате Markdown с локальными ссылками. Файл

... и он должен быть помещен в каталог markdown/extensions/ в установке уценки. Затем все, что вам нужно сделать, это привязать теги <a> с атрибутом id="..." в качестве ссылки, поэтому для входного текста следующим образом:

$ cat test.md 
Hello
=====

## <a id="sect one"></a>SECTION ONE ##

something here

### <a id='sect two'>eh</a>SECTION TWO ###

something else

#### SECTION THREE

nothing here

### <a id="four"></a>SECTION FOUR

also...

... расширение можно вызвать так:

$ python -m markdown -x md_toc test.md 
* Hello
    * [SECTION ONE](#sect one)
        * [SECTION TWO](#sect two)
            * SECTION THREE
        * [SECTION FOUR](#four)

... и затем вы можете вставить этот ток в свой документ с меткой (или иметь ярлык в текстовом редакторе, который вызывает script в текущем открытом документе, а затем вставляет полученный TOC в тот же документ).

Обратите внимание, что более старые версии python-markdown не имеют модуля __main__.py, поэтому вызов командной строки, как указано выше, не будет работать для этих версий.

5
ответ дан 21 мая '13 в 4:37
источник

Якорные теги, генерируемые разными парсерами Markdown, не являются четными.

Если вы работаете с анализаторами Markdown GFM (GitHub Flavored Markdown) или Redcarpet, я написал плагин Vim для обработки оглавления.

Характеристики

  1. Создать оглавление для файлов Markdown.

    Поддерживаемые парсеры Markdown:

    • GFM (GitHub Flavored Markdown)
    • Красный ковер
  2. Обновить существующее оглавление.

  3. Автоматическое обновление существующего оглавления при сохранении.

Скриншоты

vim-markdown-toc

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

Создать оглавление

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

  1. :GenTocGFM

    Создайте оглавление в стиле ссылки GFM.

    Эта команда подходит для файлов Markdown в репозиториях GitHub, таких как README.md, и файлов Markdown для GitBook.

  2. :GenTocRedcarpet

    Создайте оглавление в стиле ссылки Redcarpet.

    Эта команда подходит для Jekyll или где-либо еще, использующего Redcarpet в качестве парсера Markdown.

    Вы можете посмотреть здесь, чтобы узнать различия между токовыми ссылками в стиле GFM и Redcarpet.

Обновить существующее оглавление вручную

Как правило, вам не нужно этого делать, существующее оглавление будет автоматически обновляться при сохранении по умолчанию. Если вы хотите сделать это вручную, просто используйте команду :UpdateToc.

Загрузки и документы

https://github.com/mzlogin/vim-markdown-toc

5
ответ дан 25 окт. '16 в 7:57
источник

Я написал python script, который анализирует файл разметки и выводит оглавление в виде списка меток: md-to-toc

В отличие от других скриптов, которые я нашел, md-to-toc правильно поддерживает дубликаты названий. Он также не требует подключения к Интернету, поэтому он работает с любым md файлом, а не только с публичным репо.

5
ответ дан 05 июня '15 в 7:31
источник

Вы можете сгенерировать его, используя эту строку. Предполагается, что ваш файл уценки называется FILE.md

echo "## Contents" ; echo ; 
cat FILE.md | grep '^## ' | grep -v Contents | sed 's/^## //' | 
  while read -r title ; do 
    link=$(echo $title | tr 'A-Z ' 'a-z-') ; 
    echo "- [$title](#$link)" ; 
    done
5
ответ дан 12 апр. '18 в 16:23
источник

Вы также можете использовать pandoc, "швейцарский армейский нож" для преобразования "одного формата разметки в другой" . Он может автоматически генерировать таблицу содержимого в выходном документе, если вы поставляете аргумент --toc.

Подсказка: Если вы хотите получить оглавление в html вывода, вам также необходимо предоставить -s, который создает отдельный документ.

Пример командной строки оболочки:

./pandoc -s --toc input.md -o output.html
3
ответ дан 15 февр. '17 в 15:32
источник

Я только начал делать то же самое (делать заметки в Markdown). Я использую Sublime Text 2 с плагином MarkdownPreview. Встроенный анализатор разметки поддерживает [TOC].

3
ответ дан 12 нояб. '14 в 8:39
источник

Основанный на ответе albertodebortoli создал функцию с дополнительными проверками и заменой знаков препинания.

# @fn       def generate_table_of_contents markdown # {{{
# @brief    Generates table of contents for given markdown text
#
# @param    [String]  markdown Markdown string e.g. File.read('README.md')
#
# @return   [String]  Table of content in markdown format.
#
def generate_table_of_contents markdown
  table_of_contents = ""
  i_section = 0
  # to track markdown code sections, because e.g. ruby comments also start with #
  inside_code_section = false
  markdown.each_line do |line|
    inside_code_section = !inside_code_section if line.start_with?('```')

    forbidden_words = ['Table of contents', 'define', 'pragma']
    next if !line.start_with?('#') || inside_code_section || forbidden_words.any? { |w| line =~ /#{w}/ }

    title = line.gsub("#", "").strip
    href = title.gsub(/(^[!.?:\(\)]+|[!.?:\(\)]+$)/, '').gsub(/[!.,?:; \(\)-]+/, "-").downcase

    bullet = line.count("#") > 1 ? " *" : "#{i_section += 1}."
    table_of_contents << "  " * (line.count("#") - 1) + "#{bullet} [#{title}](\##{href})\n"
  end
  table_of_contents
end
2
ответ дан 13 февр. '16 в 15:37
источник

Я не уверен, какова официальная документация по уценке. Перекрестная ссылка может быть записана в скобках [Heading] или с пустыми скобками [Heading][].

Оба работают с использованием pandoc. Поэтому я создал быстрый bash script, который заменит $ TOC в файле md своим TOC. (Вам понадобится envsubst, который не может быть частью вашего дистрибутива)

#!/bin/bash
filename=$1
__TOC__=$(grep "^##" $filename | sed -e 's/ /1. /;s/^##//;s/#/   /g;s/\. \(.*\)$/. [\1][]/')
export __TOC__
envsubst '$__TOC__' < $filename
1
ответ дан 26 окт. '16 в 10:39
источник

В зависимости от вашего рабочего процесса вы можете посмотреть strapdown

Это вилка исходного (http://strapdownjs.com), которая добавляет поколение таблицы содержимого.

Там есть файл конфигурации apache в репо (возможно, он не обновляется должным образом), чтобы обернуть простую уценку "на лету", если вы предпочитаете не писать в html файлы.

1
ответ дан 23 сент. '14 в 16:59
источник

Существует скрипт Ruby под названием gen_markdown_toc.rb, который может автоматически генерировать оглавление GFM Markdown, и он похож, но немного отличается от некоторых других скриптов, размещенных здесь.

Имеется входной файл Markdown, например:

# Lorem Ipsum

Lorem ipsum dolor sit amet, mei alienum adipiscing te, has no possit delicata. Te nominavi suavitate sed, quis alia cum no, has an malis dictas explicari. At mel nonumes eloquentiam, eos ea dicat nullam. Sed eirmod gubergren scripserit ne, mei timeam nonumes te. Qui ut tale sonet consul, vix integre oportere an. Duis ullum at ius.

## Et cum

Et cum affert dolorem habemus. Sale malis at mel. Te pri copiosae hendrerit. Cu nec agam iracundia necessitatibus, tibique corpora adipisci qui cu. Et vix causae consetetur deterruisset, ius ea inermis quaerendum.

### His ut

His ut feugait consectetuer, id mollis nominati has, in usu insolens tractatos. Nemore viderer torquatos qui ei, corpora adipiscing ex nec. Debet vivendum ne nec, ipsum zril choro ex sed. Doming probatus euripidis vim cu, habeo apeirian et nec. Ludus pertinacia an pro, in accusam menandri reformidans nam, sed in tantas semper impedit.

### Doctus voluptua

Doctus voluptua his eu, cu ius mazim invidunt incorrupte. Ad maiorum sensibus mea. Eius posse sonet no vim, te paulo postulant salutatus ius, augue persequeris eum cu. Pro omnesque salutandi evertitur ea, an mea fugit gloriatur. Pro ne menandri intellegam, in vis clita recusabo sensibus. Usu atqui scaevola an.

## Id scripta

Id scripta alterum pri, nam audiam labitur reprehendunt at. No alia putent est. Eos diam bonorum oportere ad. Sit ad admodum constituto, vide democritum id eum. Ex singulis laboramus vis, ius no minim libris deleniti, euismod sadipscing vix id.

Он генерирует это оглавление:

$ gen_markdown_toc.rb FILE.md 
#### Table of contents

1. [Et cum](#et-cum)
    * [His ut](#his-ut)
    * [Doctus voluptua](#doctus-voluptua)
2. [Id scripta](#id-scripta)

Смотрите также мой пост в блоге на эту тему.

1
ответ дан 01 сент. '18 в 12:45
источник

Используйте toc.py, который представляет собой крошечный скрипт на python, который генерирует оглавление для вашей уценки.

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

  • В вашем файле Markdown добавьте <toc> где вы хотите разместить оглавление.
  • $python toc.py README.md (используйте имя файла уценки вместо README.md)

Ура!

1
ответ дан 29 авг. '18 в 22:24
источник

Если вы используете Eclipse, вы можете использовать ярлык Ctrl + O (контур), это покажет эквивалент оглавления и позволит искать в заголовках разделов ( автополный).

Вы также можете открыть представление схемы (окно → Показать представление → контур), но он не имеет поиска автозаполнения.

1
ответ дан 06 февр. '17 в 12:53
источник

Вы можете использовать [TOC] в первой строке, а затем внизу, единственное, что вам нужно сделать, это убедиться, что заголовки находятся в одном и том же более крупном шрифте. Таблица содержимого выйдет автоматически. (Но это только появляется в некоторых редакторах разметки, я не пробовал все)

0
ответ дан 15 дек. '17 в 22:27
источник

Для меня решение, предложенное @Tum, работает как брелок для оглавления с 2 уровнями. Однако для 3-го уровня это не сработало. Она не отображает ссылку, как для первых двух уровней, она отображает простой текст 3.5.1. [bla bla bla](#blablabla) <br> 3.5.1. [bla bla bla](#blablabla) <br> вместо.

Мое решение - это дополнение к решению @Tum (которое очень просто) для людей, которым нужно оглавление с 3 уровнями и более.

На втором уровне простая вкладка сделает отступ правильно для вас. Но он не поддерживает 2 вкладки. Вместо этого вам нужно использовать одну вкладку и добавить как можно больше &nbsp; по мере необходимости, чтобы выровнять 3-й уровень правильно.

Вот пример, использующий 4 уровня (выше уровней, ужасно становится):

# Table of Contents
1. [Title](#title) <br>
    1.1. [sub-title](#sub_title) <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.1. [sub-sub-title](#sub_sub_title)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.1.1. [sub-sub-sub-title](#sub_sub_sub_title)

# Title <a name="title"></a>
Heading 1

## Sub-Title <a name="sub_title"></a>
Heading 2

### Sub-Sub-Title <a name="sub_sub_title"></a>
Heading 3

#### Sub-Sub-Sub-Title <a name="sub_sub_sub_title"></a>
Heading 4

Это дает следующий результат, где каждый элемент оглавления является ссылкой на соответствующий раздел. Обратите также внимание на <br>, чтобы добавить новую строку вместо того, чтобы находиться на той же строке.

Оглавление

  1. заглавие
    1.1. Подзаголовке
    1.1.1. Sub-подзаголовок
    1.1.1.1. Sub-Sub-подзаголовок

заглавие

Заголовок 1

Подзаголовке

Заголовок 2

Sub-подзаголовок

Заголовок 3

Sub-Sub-подзаголовок

Заголовок 4

0
ответ дан 28 янв. '19 в 6:02
источник

Просто добавьте номер слайда! это работает с уценкой IOSLIDE и выявить презентацию

## Table of Contents

 1. [introduction](#3)
 2. [section one](#5)
0
ответ дан 16 окт. '18 в 15:17
источник

Я использовал https://github.com/ekalinin/github-markdown-toc, который предоставляет утилиту командной строки, которая автоматически генерирует оглавление из документа уценки.

Нет плагинов, или макросов или других зависимостей. После установки утилиты просто вставьте выходные данные утилиты в то место документа, в котором вы хотите найти оглавление. Очень прост в использовании.

$ cat README.md | ./gh-md-toc -
0
ответ дан 24 янв. '19 в 22:05
источник

Ум... используйте заголовки Markdown!?

То есть:

# Это эквивалент < h1 >

## Это эквивалент < h2 >

### Это эквивалент < h3 >

Многие редакторы покажут вам TOC. Вы также можете использовать grep для тегов заголовков и создавать свои собственные.

Надеюсь, что это поможет!

- JF

-10
ответ дан 19 июня '13 в 21:31
источник