私のJekyllブログ記事のいくつかでディレクトリとファイル構造を説明したいのですが、Markdownはそのようなことを出力するためのきちんとした方法を提供しますか?
例えば、JekyllのWebサイトでこのリンクでを見ると、ディレクトリとファイルの構造が非常によくページに出力されていることがわかります。きちんと:
.
├── _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
上記の行ブロック文字はUnicode(ここでの回答で説明されているように)であると思いますが、マークダウンや違いがわからないブラウザがそれらを処理します。 Markdownがこれを行う何らかの方法を含み、それがおそらく上記のUnicode文字として出力されることを望んでいました。
Unicode文字が気になる場合は、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
```
あなたの例に非常に似たものを生成するために tree を使うことができます。出力が得られたら、それを<pre>
タグでラップしてプレーンテキスト形式を維持できます。
この作業を自動化するためのノードモジュールを作りました。 mddir
ノードmddir "../relative/path/"
インストールするには:npm install mddir -g
現在のディレクトリにマークダウンを生成するには:mddir
絶対パス用に生成するには、次のように入力します。mddir/absolute/path
相対パス用に生成するには:mddir〜/ Documents/whatever。
Mdファイルが作業ディレクトリに生成されます。
現在、node_modules、および.gitフォルダは無視されます。
'node\r:そのようなファイルまたはディレクトリがありません'というエラーが表示された場合、問題はオペレーティングシステムが異なる行末を使用していて、mddirが明示的に行末スタイルをUnixに設定しないと解析できないことです。これは通常Windowsだけでなく、Linuxのいくつかのバージョンにも影響します。改行コードをUNIX形式に設定するには、mddir npmグローバルbinフォルダ内で実行する必要があります。
Npm binフォルダのパスを取得します。
npm config get prefix
そのフォルダにCd
インストールdos2unixを醸造しなさい
dos2unix lib/node_modules/mddir/src/mddir.js
これは、行末をDOSではなくUnixに変換します。
それから:node mddir "../relative/path/"で通常通りに実行してください。
|-- .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
を使用できます。しかし、それを再構成されたテキストと一緒に使うためには、いくつかの追加パラメータが必要でした。
標準のtree
の出力は、あなたがpandoc
を使ってpdfを作成している場合には印刷されません。
tree --dirsfirst --charset=ascii /path/to/directory
は、次のようにあなたの文書に統合できるNice 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
OSXの下で、reveal.js
を使用して、私はちょうどtree
を使用してそれから出力をコピー/ペーストするならば、私はレンダリング問題を抱えています:奇妙なシンボルは現われます。
私は2つの可能な解決策を見つけました。
1)charset asciiを使用して、出力をコピーしてマークダウンファイルに貼り付ける
tree -L 1 --charset=ascii
2)マークダウンファイルで直接HTMLとUnicodeを使用する
<pre>
.
⊢ README.md
⊢ docs
⊢ e2e
⊢ karma.conf.js
⊢ node_modules
⊢ package.json
⊢ protractor.conf.js
⊢ src
⊢ tsconfig.json
⌙ tslint.json
</pre>
それが役に立てば幸い。
Atomエディタを使用している場合は、 ascii-tree パッケージでこれを実現できます。
次の木を書くことができます。
root
+-- dir1
+--file1
+-- dir2
+-- file2
それを選択してctrl-alt-t
を押すことで次のように変換できます。
root
├── dir1
│ └── file1
└── dir2
└── file2
wasabi を使用することをお勧めします。その後、マークダウン風を使用することもできます。
root/ # entry comments can be inline after a '#'
# or on their own line, also after a '#'
readme.md # a child of, 'root/', it's indented
# under its parent.
usage.md # indented syntax is Nice for small projects
# and short comments.
src/ # directories MUST be identified with a '/'
fileOne.txt # files don't need any notation
fileTwo* # '*' can identify executables
fileThree@ # '@' can identify symlinks
その正確な構文をjsライブラリで this に設定してください。
VS Codeを使用している場合、これはファイルツリーを生成するための素晴らしい拡張機能です。 https://marketplace.visualstudio.com/items?itemName=Shinotatwu-DS.file-tree-generator
マークダウンに直接追加...
????quakehunter
┣ ????client
┣ ????node_modules
┣ ????server
┃ ┗ ????index.js
┣ ????.gitignore
┣ ????package-lock.json
┗ ????package.json
動的に生成したい場合は、 Frontend-md を使用することをお勧めします。使い方は簡単です。