web-dev-qa-db-ja.com

ページと目次を作成するための値下げ?

メモを取るためにmardownを使い始めました。

マークダウンノートとその美しい部分を表示するには、とマークされたを使用します。

しかし、私のノートが長くなるにつれて、私が欲しいものを見つけるのは難しいと思います。

私はmarkdownがテーブルを作成できることを知っています、しかしそれは目次を作成することができますか?

あるいは、そのようなことができるマークダウンの読者/編集者がいますか。検索も持っているのが良い機能でしょう。

一言で言えば、私はそれを本などを書くのと同じように私の素晴らしいメモ取りツールと機能にしたいです。

248
resting

MultiMarkdown Composer は、編集中に役立つ目次を生成します。

TOCを生成できるライブラリもあります。 Python Markdown TOC Extension をご覧ください。

24
mxro

これを試してみることができます。

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

## Example
## Example2
## Third Example
277
Rick

これが便利な方法です。任意の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

を生成します。

目次

  1. はじめに
  2. 段落
    1. 小段落
  3. 他の段落

これが紹介です

見出し2スタイルでフォーマットされたいくつかの紹介テキスト

ある段落

最初の段落テキスト

小段落

これは見出し3スタイルでフォーマットされた副段落です。

別の段落

第2段落テキスト

155
Tum

マークダウンファイルから目次を生成するには、 このRubyスクリプト を試してください。

 #!/usr/bin/env Ruby

fileName = ARGV[0]
fileName = "README.md" if !fileName

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

    title = line.gsub("#", "").strip
    href = title.gsub(" ", "-").downcase
    puts "  " * (line.count("#")-1) + "* [#{title}](\##{href})"
  end
end
24
# 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

23
Greg Bosen

Visual Studio Code ユーザーの場合は、 Markdown TOC プラグインを使用することをお勧めします。

インストールするには、VS Code Quick Openを起動します(Ctrl+P)、次のコマンドを貼り付けて、Enterキーを押します。

ext install markdown-toc

目次を生成するには、コマンドパレットを開きます(Ctrl+Shift+PMarkdown TOC:Insert/Update optionを選択するか、 Ctrl+MT

23
coderade

マークダウン文書にTOC(要約)を作成する方法は2つあります。

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.プログラム的に

例えばあなたのために要約を生成するスクリプトを使用することができます、githubで私のプロジェクトを見てみましょう - summaryizeMD -

私は他のscript/npmモジュール(例えば doctoc )も試したことがありますが、作業アンカーを使って目次を再現する人はいません。

18
Luca Davanzo

AtomREADME.mdファイルを作成している私たちの利益のために(私がこのスレッドをどのように見つけたか):

apm install markdown-toc

https://atom.io/packages/markdown-toc

10
msanford

Javascript/node.jsツールを使用したい場合は、 markdown-toc をご覧ください。

7
jonschlinkert

マークダウンファイルを解析して目次をマークダウンリストとして出力するPythonスクリプトを作成しました。 md-to-toc

私が見つけた他のスクリプトとは異なり、md-to-tocは重複したタイトルを正しくサポートします。それはまたインターネット接続を必要としないので、それは公共のレポから入手可能なものだけでなく、どんなmdファイルにも働きます。

5

私はちょうどpython-markdownのための拡張をコーディングしました。それは見出しを検索するためにそのパーサーを使用して、そしてローカルリンクでMarkdownフォーマットの順不同リストとしてTOCを出力します。ファイルは

...そしてそれはマークダウンインストールのmarkdown/extensions/ディレクトリに置かれるべきです。それで、あなたがしなければならないのは、参照として<a>属性を持つ型anchor 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)

...そして、この目次をマークダウン文書に貼り付けることができます(または現在開いている文書のスクリプトを呼び出して、結果の目次を同じ文書に挿入するテキストエディタのショートカットを作成できます)。

古いバージョンのpython-markdownには__main__.pyモジュールがないため、上記のコマンドライン呼び出しはこれらのバージョンでは機能しません。

5
sdaau

このbash one-linerを使って生成することができます。マークダウンファイルの名前は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
Asim Jalis

異なるMarkdownパーサによって生成されたアンカータグは偶数ではありません。

もしあなたがMarkdownパーサーGFM(GitHub Flavored Markdown)やRedcarpetを使っているのなら、私は目次を扱うためのVimプラグインを書きました。

特徴

  1. Markdownファイルの目次を生成します。

    サポートされているMarkdownパーサ:

    • GFM(GitHubフレーバーマークダウン)
    • レッドカーペット
  2. 既存の目次を更新します。

  3. 保存時に既存の目次を自動更新します。

スクリーンショット

vim-markdown-toc

使用法

目次を生成する

目次を追加したい行にカーソルを移動してから、適切なコマンドを入力してください。このコマンドはカーソルの後に目次を作成します。

  1. :GenTocGFM

    GFMリンクスタイルで目次を生成します。

    このコマンドは、README.mdなどのGitHubリポジトリのMarkdownファイル、およびGitBookのMarkdownファイルに適しています。

  2. :GenTocRedcarpet

    Redcarpetリンクスタイルで目次を生成します。

    このコマンドはJekyllに適しているか、または他の場所でそのMarkdownパーサーとしてRedcarpetを使用しています。

    GFMとRedcarpetスタイルの目次リンクの違いを知るためには、 を見てください

既存の目次を手動で更新します

通常これを行う必要はありません。既存の目次はデフォルトで保存時に自動更新されます。手動で実行したい場合は、:UpdateTocコマンドを使用してください。

ダウンロードとドキュメント

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

5
Zhuang Ma

私はちょうど同じことを始めた(Markdownでメモを取ってください)。 Sublime Text 2を MarkdownPreviewプラグイン と共に使用します。組み込みのマークダウンパーサは[TOC]をサポートします。

3
Martin

pandocname__、 "あるマークアップフォーマットを別のマークアップフォーマットに変換するための" swiss-army knife " を使うこともできます。 --toc引数を指定すると、出力ドキュメントに目次を自動的に生成できます。

ヒント:htmlname__の出力に目次が必要な場合は、スタンドアロン文書を生成する-sも指定する必要があります。

シェルコマンドラインの例:

./pandoc -s --toc input.md -o output.html
3
M.Geiger

Typora は、ドキュメントに[TOC]を追加することで目次を生成します。

3
Paul Jurczak

Gitlabでは、markdownがこれをサポートしています:[[_TOC_]]

2
Nicolas Thery

MultiMarkdown 4.7 には、目次を挿入する{{TOC}}マクロがあります。

2
Michael R

私にとって、@Tumによって提案された解決策は、2つのレベルを持つ目次の魅力のように機能します。しかし、3番目のレベルではうまくいきませんでした。最初の2つのレベルに関してはリンクを表示せず、代わりにプレーンテキスト3.5.1. [bla bla bla](#blablabla) <br>を表示します。

私の解決策は、3つ以上のレベルを持つ目次を必要とする人々のための@Tum(これは非常に簡単です)の解決策への追加です。

2番目のレベルでは、単純なタブでインデントが正しく行われます。しかし、それは2つのタブをサポートしません。代わりに、1つのタブを使用して、3番目のレベルを正しく揃えるために必要なだけ&nbsp;を自分で追加する必要があります。

これは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。副副題
    [...] 1.1.1.1。サブサブサブタイトル

タイトル

見出し1

字幕

見出し2

副副題

見出し3

見出し4

2
Gabriel L.

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
dmigous

マークダウン用の目次を生成する小さなpythonスクリプトである toc.py を使用してください。

使用法:

  • Markdownファイルで、目次を配置したい場所に<toc>を追加します。
  • $python toc.py README.mdREADME.mdの代わりにマークダウンファイル名を使用してください)

乾杯!

1
Dhruv Batheja

ワークフローによっては、 ストラップダウンを見たいと思うかもしれません

これは、目次の生成を追加する元のもの( http://strapdownjs.com )のフォークです。

Htmlファイルに書きたくない場合は、リポジトリにApacheの設定ファイルがあります(まだ正しく更新されていない可能性があります)。

1
dgn

私は https://github.com/ekalinin/github-markdown-toc を使用しました。これは、マークダウン文書から目次を自動生成するコマンドラインユーティリティを提供します。

プラグイン、マクロ、その他の依存関係はありません。ユーティリティをインストールした後、単にあなたの目次が欲しいドキュメントの場所にユーティリティの出力を貼り付けてください。使い方はとても簡単です。

$ cat README.md | ./gh-md-toc -
1
mmccabe

よくわかりませんが、値下げの公式文書は何ですか。相互参照は大括弧[Heading]内、または空大括弧[Heading][]内に書くことができます。

どちらも pandoc を使って動作します。そこで、mdファイルの$TOCをその目次で置き換えるクイックbashスクリプトを作成しました。 (あなたはenvsubstを必要とするでしょう、それはあなたのディストリビューションの一部ではないかもしれません)

#!/bin/bash
filename=$1
__TOC__=$(grep "^##" $filename | sed -e 's/ /1. /;s/^##//;s/#/   /g;s/\. \(.*\)$/. [\1][]/')
export __TOC__
envsubst '$__TOC__' < $filename
1
dosmanak

Visual Studio Code(VSCode)では、拡張子 Markdown All in One を使用できます。

インストールしたら、以下の手順に従います。

  1. 押す CTRL+SHIFT+P
  2. 選択マークダウン:目次の作成
1
Marco Lackovic

たまたま使用しているならEclipseあなたは使うことができます Ctrl+O (アウトライン)ショートカット、これは目次に相当するものを表示し、セクションタイトル(オートコンプリート)で検索することを可能にします。

アウトラインビュー(ウィンドウ - >ビューの表示 - >アウトライン)を開くこともできますが、オートコンプリート検索はありません。

1

GFMマークダウン目次を自動生成することができる gen_markdown_toc.rb というRubyスクリプトがありますが、それは他のスクリプトと似ていますが若干異なりますここに投稿しました。

次のような入力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
Alex Harvey

最初の行に[TOC]を使用して、一番下に使用することができます。唯一必要なことは、タイトルが同じ大きなフォントであることを確認することです。目次は自動的に出てきます。 (ただし、これは一部のマークダウンエディタにしか表示されません。全部試したわけではありません)

0
Cecilé

Markdownファイルをbitbucket.orgのレポジトリに表示する場合は、目次が欲しい場所に[TOC]を追加する必要があります。それは自動生成されます。詳細はこちら:

https://confluence.atlassian.com/bitbucket/add-a-table-of-contents-to-a-wiki-221451163.html

0
Jannik

スライド数を追加するだけ!それは値下げioslidesで動作し、プレゼンテーションを公開します

## Table of Contents

 1. [introduction](#3)
 2. [section one](#5)
0
Abdelali Amghar