Jekyll 블로그 게시물 중 일부에서 디렉토리 및 파일 구조를 설명하고 싶습니다. Markdown은 그러한 것을 출력하는 깔끔한 방법을 제공합니까?
예를 들어, Jekyll 웹 사이트 의이 링크 에서 디렉토리 및 파일 구조가 페이지에서 매우 깔끔하게 출력되는 것을 볼 수 있습니다.
.
├── _config.yml
├── _drafts
│ ├── begin-with-the-crazy-ideas.textile
│ └── on-simplicity-in-technology.markdown
├── _includes
│ ├── footer.html
│ └── header.html
├── _layouts
│ ├── default.html
│ └── post.html
├── _posts
│ ├── 2007-10-29-why-every-programmer-should-play-nethack.textile
│ └── 2009-04-26-barcamp-boston-4-roundup.textile
├── _data
│ └── members.yml
├── _site
└── index.html
위의 라인 블록 문자는 유니 코드 ( 이 답변에 설명되어 있음 )라고 생각하지만 Markdown 또는 다른 브라우저에서 처리하는 방법을 잘 모르겠습니다. Markdown에 위의 유니 코드 문자로 출력되는 방법이 포함되기를 바랐습니다.
답변
유니 코드 문자에 관심이있는 경우 ASCII를 사용하여 구조를 작성할 수 있으므로 예제 구조가됩니다.
.
+-- _config.yml
+-- _drafts
| +-- begin-with-the-crazy-ideas.textile
| +-- on-simplicity-in-technology.markdown
+-- _includes
| +-- footer.html
| +-- header.html
+-- _layouts
| +-- default.html
| +-- post.html
+-- _posts
| +-- 2007-10-29-why-every-programmer-should-play-nethack.textile
| +-- 2009-04-26-barcamp-boston-4-roundup.textile
+-- _data
| +-- members.yml
+-- _site
+-- index.html
출력 tree
을 선택할 때 사용 하는 형식과 유사한 것입니다 ANSI
.
답변
다른 저장소 의 예를 따라 디렉토리 구조를 한 쌍의 삼중 백틱 ( ```
)으로 묶었습니다 .
```
project
│ README.md
│ file001.txt
│
└───folder1
│ │ file011.txt
│ │ file012.txt
│ │
│ └───subfolder1
│ │ file111.txt
│ │ file112.txt
│ │ ...
│
└───folder2
│ file021.txt
│ file022.txt
```
답변
트리 를 사용 하여 예제와 매우 유사한 것을 생성 할 수 있습니다 . 출력이 있으면 <pre>
일반 텍스트 형식을 유지하기 위해 태그로 묶을 수 있습니다.
답변
VS 코드를 사용하는 경우 파일 트리 생성을위한 멋진 확장입니다.
https://marketplace.visualstudio.com/items?itemName=Shinotatwu-DS.file-tree-generator
마크 다운에 직접 추가됨 …
?quakehunter
┣ ?client
┣ ?node_modules
┣ ?server
┃ ┗ ?index.js
┣ ?.gitignore
┣ ?package-lock.json
┗ ?package.json
답변
이 작업을 자동화하기 위해 노드 모듈을 만들었습니다. mddir
용법
노드 mddir “../relative/path/”
설치하려면 다음을 수행하십시오. npm install mddir -g
현재 디렉토리에 대한 마크 다운을 생성하려면 : mddir
절대 경로를 생성하려면 다음을 수행하십시오. mddir / absolute / path
상대 경로를 생성하려면 : mddir ~ / Documents / whatever.
md 파일은 작업 디렉토리에 생성됩니다.
현재 node_modules 및 .git 폴더는 무시합니다.
문제 해결
‘node \ r : No such file or directory’오류가 표시되면 운영 체제에서 다른 줄 끝을 사용하고 줄 끝 스타일을 Unix로 명시 적으로 설정하지 않으면 mddir에서 구문을 분석 할 수 없다는 것입니다. 이것은 일반적으로 Windows뿐만 아니라 일부 Linux 버전에도 영향을 미칩니다. 줄 끝을 Unix 스타일로 설정하려면 mddir npm 전역 bin 폴더 내에서 수행해야합니다.
줄 끝 수정
다음을 사용하여 npm bin 폴더 경로를 가져옵니다.
npm config get prefix
해당 폴더에 CD
brew install dos2unix
dos2unix lib / node_modules / mddir / src / mddir.js
이것은 줄 끝을 Dos 대신 Unix로 변환합니다.
그런 다음 node mddir “../relative/path/”를 사용하여 정상적으로 실행하십시오.
생성 된 마크 다운 파일 구조 ‘directoryList.md’
|-- .bowerrc
|-- .jshintrc
|-- .jshintrc2
|-- Gruntfile.js
|-- README.md
|-- bower.json
|-- karma.conf.js
|-- package.json
|-- app
|-- app.js
|-- db.js
|-- directoryList.md
|-- index.html
|-- mddir.js
|-- routing.js
|-- server.js
|-- _api
|-- api.groups.js
|-- api.posts.js
|-- api.users.js
|-- api.widgets.js
|-- _components
|-- directives
|-- directives.module.js
|-- vendor
|-- directive.draganddrop.js
|-- helpers
|-- helpers.module.js
|-- proprietary
|-- factory.actionDispatcher.js
|-- services
|-- services.cardTemplates.js
|-- services.cards.js
|-- services.groups.js
|-- services.posts.js
|-- services.users.js
|-- services.widgets.js
|-- _mocks
|-- mocks.groups.js
|-- mocks.posts.js
|-- mocks.users.js
|-- mocks.widgets.js
답변
이미 권장 한대로을 사용할 수 있습니다 tree
. 그러나 텍스트를 재구성 된 텍스트와 함께 사용하려면 몇 가지 추가 매개 변수가 필요했습니다.
pdf 제작에 tree
사용 pandoc
하는 경우 표준 출력이 인쇄되지 않습니다 .
tree --dirsfirst --charset=ascii /path/to/directory
ASCII
다음과 같이 문서에 통합 할 수 있는 멋진 트리를 생성합니다 .
.. code::
.
|-- ContentStore
| |-- de-DE
| | |-- art.mshc
| | |-- artnoloc.mshc
| | |-- clientserver.mshc
| | |-- noarm.mshc
| | |-- resources.mshc
| | `-- windowsclient.mshc
| `-- en-US
| |-- art.mshc
| |-- artnoloc.mshc
| |-- clientserver.mshc
| |-- noarm.mshc
| |-- resources.mshc
| `-- windowsclient.mshc
`-- IndexStore
|-- de-DE
| |-- art.mshi
| |-- artnoloc.mshi
| |-- clientserver.mshi
| |-- noarm.mshi
| |-- resources.mshi
| `-- windowsclient.mshi
`-- en-US
|-- art.mshi
|-- artnoloc.mshi
|-- clientserver.mshi
|-- noarm.mshi
|-- resources.mshi
`-- windowsclient.mshi
답변
Dropbox 파일 목록을 위해이 스크립트를 작성했습니다.
sed
다음에 오는 심볼릭 링크 된 파일 / 폴더 경로의 전체 경로를 제거하는 데 사용됩니다 ->
불행히도 탭이 손실됩니다. 사용 zsh
탭을 보존 할 수 있습니다.
! / usr / bin / env bash
#!/usr/bin/env zsh
F1='index-2.md' #With hyperlinks
F2='index.md'
if [ -e $F1 ];then
rm $F1
fi
if [ -e $F2 ];then
rm $F2
fi
DATA=`tree --dirsfirst -t -Rl --noreport | \
sed 's/->.*$//g'` # Remove symlink adress and ->
echo -e '```\n' ${DATA} '\n```' > $F1 # Markdown needs triple back ticks for <pre>
# With the power of piping, creating HTML tree than pipe it
# to html2markdown program, creates cool markdown file with hyperlinks.
DATA=`tree --dirsfirst -t -Rl --noreport -H http://guneysu.pancakeapps.com`
echo $DATA | \
sed 's/\r\r/\n/g' | \
html2markdown | \
sed '/^\s*$/d' | \
sed 's/\# Directory Tree//g' | \
> $F2
다음과 같은 출력이 있습니다.
```
.
├── 2013
│ └── index.markdown
├── 2014
│ └── index.markdown
├── 2015
│ └── index.markdown
├── _posts
│ └── 2014-12-27-2014-yili-degerlendirmesi.markdown
├── _stash
└── update.sh
```
[BASE_URL/](BASE_URL/)
├── [2013](BASE_URL/2013/)
│ └── [index.markdown](BASE_URL/2013/index.markdown)
├── [2014](BASE_URL/2014/)
│ └── [index.markdown](BASE_URL/2014/index.markdown)
├── [2015](BASE_URL/2015/)
│ └── [index.markdown](BASE_URL/2015/index.markdown)
├── [_posts](BASE_URL/_posts/)
│ └── [2014-12-27-2014-yili-degerlendirmesi.markdown](_posts/2014-12-27-2014-yili-degerlendirmesi.markdown)
├── [_stash](BASE_URL/_stash/)
├── [index-2.md](BASE_URL/index-2.md)
└── [update.sh](BASE_URL/update.sh)
* * *
tree v1.6.0 © 1996 - 2011 by Steve Baker and Thomas Moore
HTML output hacked and copyleft © 1998 by Francesc Rocher
Charsets / OS/2 support © 2001 by Kyosuke Tokoro