Programing

페이지와 목차를 만들기위한 마크 다운?

lottogame 2020. 3. 21. 10:09
반응형

페이지와 목차를 만들기위한 마크 다운?


마크 다운을 사용하여 메모를 시작했습니다.

마크 다운사용하여 마크 다운 노트와 그 아름다운 노트를 봅니다.

그러나 내 노트가 길어지면 원하는 것을 찾기가 어렵습니다.

markdown이 테이블을 만들 수는 있지만 목차를 만들거나 섹션으로 이동하거나 markdown에서 페이지 섹션을 정의 할 수 있습니까?

또는 그러한 일을 할 수있는 마크 다운 리더 / 편집기가 있습니까? 검색도 좋은 기능입니다.

요컨대, 나는 책을 쓰는 것과 같은 도구와 기능을 멋진 메모로 만들고 싶습니다.


MultiMarkdown Composer 는 편집 중에 도움이되는 목차를 생성하는 것 같습니다.

TOC를 생성 할 수있는 라이브러리가있을 수도 있습니다 ( Python Markdown TOC Extension 참조) .


이것을 시도해 볼 수 있습니다.

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


## Example
## Example2
## Third Example
## [Fourth Example](http://www.fourthexample.com) 

유용한 방법이 있습니다. 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 스타일로 된 하위 단락입니다.

다른 단락

두 번째 단락 텍스트


를 들어 비주얼 스튜디오 코드 사용자, 좋은 아이디어를 사용하는 것입니다 마크 다운 TOC의 플러그인을.

설치하려면 VS Code Quick Open ( Ctrl+ P)을 시작 하고 다음 명령을 붙여 넣고 Enter 키를 누릅니다.

ext install markdown-toc

그리고 TOC를 생성하는 명령 팔레트를 엽니 다 ( Control/⌘+ Shift+ P)와 선택 Markdown TOC:Insert/Update option또는 사용 Ctrl+를 MT.


이 루비 스크립트사용해 마크 다운 파일에서 TOC를 생성 할 수 있습니다.

 #!/usr/bin/env ruby

require 'uri'

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

# 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}

markdown extra를 사용하는 경우 링크, 헤더, 코드 펜스 및 이미지에 특수 속성을 추가 할 수 있습니다.
https://michelf.ca/projects/php-markdown/extra/#spe-attr


마크 다운 문서에서 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. 프로그래밍 방식으로

- 당신은 github에 내 프로젝트에 살펴보고, 예를 들어 당신을 위해 요약을 생성하는 스크립트를 사용할 수 summarizeMD을 -

다른 script / npm 모듈 (예 : doctoc )도 시도했지만 아무도 앵커가 작동하는 TOC를 재생산하지 않습니다.


AtomREADME.md 에서 파일을 만드는 사람들을 위해 (이 스레드를 찾은 방법) :

apm install markdown-toc

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


다른 마크 다운 파서에 의해 생성 된 앵커 태그는 짝수입니다.

Markdown 파서 GFM (GitHub Flavored Markdown) 또는 Redcarpet을 사용하는 경우 목차를 처리하기 위해 Vim 플러그인을 작성했습니다.

풍모

  1. 마크 다운 파일의 목차를 생성하십시오.

    지원되는 마크 다운 파서 :

    • GFM (GitHub Flavored Markdown)
    • 레드 카펫
  2. 기존 목차를 업데이트하십시오.

  3. 저장시 기존 목차를 자동 업데이트합니다.

스크린 샷

vim-markdown-toc

용법

목차 생성

목차를 추가 할 행으로 커서를 이동 한 다음 아래에 적합한 명령을 입력하십시오. 이 명령은 커서 다음에 목차로 표제를 생성합니다.

  1. :GenTocGFM

    GFM 링크 스타일로 목차를 생성하십시오.

    이 명령은 README.md와 같은 GitHub 리포지토리의 Markdown 파일과 GitBook의 Markdown 파일에 적합합니다.

  2. :GenTocRedcarpet

    Redcarpet 링크 스타일로 목차를 생성하십시오.

    이 명령은 Jekyll 또는 Redcarpet을 Markdown 파서로 사용하는 다른 곳에서 적합합니다.

    여기 에서 GFM과 Redcarpet 스타일의 toc 링크의 차이점을 알 수 있습니다 .

기존 목차를 수동으로 업데이트

일반적으로이 작업을 수행 할 필요는 없습니다. 기존 목차는 기본적으로 저장시 자동 업데이트됩니다. 수동으로 수행하려면 :UpdateToc명령을 사용하십시오 .

다운로드 및 문서

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


javascript / node.js 도구를 사용하려면 markdown-toc를보십시오 .


이 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

마크 다운 파일을 구문 분석하고 목차를 마크 다운 목록으로 출력하는 파이썬 스크립트를 작성했습니다 .md-to-toc

내가 찾은 다른 스크립트와 달리 md-to-toc는 중복 제목을 올바르게 지원합니다. 또한 인터넷 연결이 필요하지 않으므로 공용 리포지토리에서 제공되는 파일뿐만 아니라 모든 md 파일에서 작동합니다.


방금 확장자를 코딩하여 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)

... 그리고이 목차를 마크 다운 문서에 다시 붙여 넣을 수 있습니다 (또는 텍스트 편집기에 현재 열려있는 문서에서 스크립트를 호출 한 다음 동일한 문서에 TOC를 삽입하는 바로 가기가 있음).

이전 버전 python-markdown에는 __main__.py모듈이 없으므로 위와 같은 명령 줄 호출은 해당 버전에서 작동하지 않습니다.


당신은 또한 사용할 수 pandoc"다른에 하나의 마크 업 형식을"변환 "스위스 군용 칼"을 . --toc인수 를 제공하면 출력 문서에 목차를 자동으로 생성 할 수 있습니다 .

힌트 : 목차를 html출력하려면 -s독립형 문서를 생성하는 내용 도 제공해야합니다 .

쉘 명령 행 예 :

./pandoc -s --toc input.md -o output.html

방금 같은 일을 시작했습니다 (Markdown에서 메모하십시오). Sublime Text 2를 MarkdownPreview 플러그인 과 함께 사용합니다 . 내장 마크 다운 파서는을 지원합니다 [TOC].


Typora가 발생 내용의 테이블을 추가하여 [TOC]문서에.


Gitlab에서 markdown은 다음을 지원합니다. [[_TOC_]]


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

MultiMarkdown 4.7 에는 목차를 삽입하는 {{TOC}} 매크로가 있습니다.


나에게 @Tum이 제안한 솔루션은 2 레벨의 목차에 대한 매력처럼 작동합니다. 그러나 3 레벨에서는 작동하지 않았습니다. 처음 2 단계와 같이 링크를 표시하지 않고 3.5.1. [bla bla bla](#blablabla) <br>대신 일반 텍스트 표시합니다 .

내 솔루션은 3 레벨 이상의 목차가 필요한 사람들을 위해 @Tum 솔루션에 추가되었습니다 (매우 간단합니다).

두 번째 수준에서는 간단한 탭이 들여 쓰기를 올바르게 수행합니다. 그러나 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. 소제목 제목
                     1.1.1.1. 하위 하위 하위 제목

표제

제목 1

부제

제목 2

하위 제목

제목 3

하위 하위 하위 제목

제목 4


Visual Studio Code (VSCode)에서는 Markdown All in One 확장을 사용할 수 있습니다 .

설치가 완료되면 아래 단계를 따르십시오.

  1. CTRL+ SHIFT+를 누릅니다P
  2. 마크 다운 선택 : 목차 만들기

워크 플로에 따라 스트랩 다운 을보고 싶을 수 있습니다.

그것은 목차 생성을 추가하는 원래 포크 ( http://strapdownjs.com ) 의 포크입니다 .

HTML 파일로 작성하지 않으려는 경우 repo에 아파치 구성 파일이 있습니다 (아직 올바르게 업데이트되지 않았을 수 있음) 일반 마크 다운을 즉시 래핑합니다.


확실하지 않습니다. markdown에 대한 공식 문서는 무엇입니까? 상호 참조는 대괄호 [Heading]또는 빈 대괄호 로만 작성할 수 있습니다 [Heading][].

둘 다 pandoc 사용 합니다 . 그래서 빠른 bash 스크립트를 만들었습니다.이 스크립트 는 md 파일의 $ TOC를 TOC 로 바꿉니다. (당신은 배포판의 일부가 아닌 envsubst가 필요할 것입니다)

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

사용 일이되면 Eclipse를 당신이 사용할 수있는 Ctrl+ O(개요) 바로 가기를,이 목차에 해당을 보여 섹션 제목 (자동 완성)에서 검색 할 수 있습니다.

아웃 라인보기 (윈도우->보기 표시-> 아웃 라인)를 열 수도 있지만 자동 완성 검색이 없습니다.


마크 다운을위한 목차를 생성하는 작은 파이썬 스크립트 인 toc.py사용하십시오 .

용법:

  • Markdown 파일 <toc>에서 목차를 배치 할 위치를 추가하십시오.
  • $python toc.py README.md( README.md 대신 markdown 파일 이름을 사용하십시오 )

건배!


GFM Markdown 목차를 자동 생성 할 수있는 gen_markdown_toc.rb 라는 Ruby 스크립트가 있으며 여기에 게시 된 다른 스크립트와 비슷하지만 약간 다릅니다.

다음과 같은 입력 마크 다운 파일이 제공됩니다.

# 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)

이 주제에 대한 내 블로그 게시물참조하십시오 .


https://github.com/ekalinin/github-markdown-toc사용 하여 마크 다운 문서에서 목차를 자동 생성하는 명령 줄 유틸리티를 제공합니다.

플러그인이나 매크로 또는 기타 종속성이 없습니다. 유틸리티를 설치 한 후 유틸리티 출력을 목차를 원하는 문서의 위치에 붙여 넣으십시오. 사용하기 매우 간단합니다.

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

첫 번째 줄에서 맨 아래에 [TOC]를 사용할 수 있습니다. 제목 만 같은 글꼴로 설정해야합니다. 목차가 자동으로 나옵니다. (그러나 이것은 일부 마크 다운 편집기에만 표시되며 모든 것을 시도하지는 않았습니다)


슬라이드 수를 추가하십시오! 그것은 markdown ioslides 및 revealjs presentation과 함께 작동합니다.

## Table of Contents

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

markdown 파일을 bitbucket.org의 저장소에 표시 [TOC]하려면 목차를 원하는 위치에 추가해야합니다 . 그런 다음 자동 생성됩니다. 더 많은 정보는 여기에 :

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

참고 URL : https://stackoverflow.com/questions/11948245/markdown-to-create-pages-and-table-of-contents

반응형