মার্কডাউন সিনট্যাক্সে ডিরেক্টরি এবং ফাইল কাঠামোর প্রতিনিধিত্ব করছে


213

আমি আমার কিছু জ্যাকিল ব্লগ পোস্টে ডিরেক্টরি ও ফাইলের কাঠামো বর্ণনা করতে চাই, মার্কডাউন কি এ জাতীয় কোনও আউটপুট দেওয়ার একটি ঝরঝরে উপায় সরবরাহ করে?

উদাহরণস্বরূপ, আপনি জেকিল ওয়েবসাইটে এই লিঙ্কটিতে দেখতে পারেন যে ডিরেক্টরি এবং ফাইলের কাঠামো পৃষ্ঠায় খুব ঝরঝরে আউটপুট রয়েছে:

.
├── _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

আমি বিশ্বাস করি উপরের লাইন ব্লকের অক্ষরগুলি ইউনিকোড ( এখানে এই উত্তরে বর্ণিত ), তবে আমি নিশ্চিত না যে মার্কডাউন বা বিভিন্ন ব্রাউজারগুলি কীভাবে তাদের পরিচালনা করবে। আমি আশা করছিলাম যে মার্কডাউন এটি করার কিছু উপায় অন্তর্ভুক্ত করেছে যা সম্ভবত ইউনিকোডের চরিত্রগুলির উপরের হিসাবে প্রদর্শিত হতে পারে।



1
যেহেতু আপনি জেকিলকে বিশেষভাবে উল্লেখ করেছেন, এই নো-ফ্লাফ উদাহরণ এবং এর উত্সটি বিলটি ফিট করতে পারে
ব্যবহারকারী 3276552

উত্তর:


142

আপনি যদি ইউনিকোড অক্ষর সম্পর্কে উদ্বিগ্ন হন তবে আপনি কাঠামো তৈরি করতে 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আউটপুট নির্বাচন করেন তবে এটি বিন্যাসের অনুরূপ ।


1
এর জন্য ধন্যবাদ. ইউনিকোড চরিত্রগুলি ব্যবহার করার বিষয়ে কি কোনও উদ্বেগ থাকা উচিত? যেমন পুরানো ব্রাউজারগুলির সাথে পরিচিত সমস্যাগুলি, মার্কডাউন ভুলভাবে উপস্থাপনা ইত্যাদি
ম্যাট রোলস

2
মার্কডাউন নিয়ে কোনও সমস্যা হওয়া উচিত নয়, এটি আপনার জ্যাকিল টেম্পলেট এবং ব্যবহারকারীদের ওয়েব ব্রাউজারগুলিতে চলেছে।
রবার্টকেনি

1
এই পছন্দটির আর একটি সুবিধা হ'ল অন্যান্য পছন্দগুলির সাথে তুলনায় ছোট ডিফস যা কেবলমাত্র কসমেটিক কারণে বিভিন্ন চিহ্ন ব্যবহার করে (যেমন আউটপুট যেমন tree)।
ভিলাসভ

1
এই আনসারটি ব্যবহার করার সময় গাছটি কেবল কয়েকটি পাঠ্য লাইন হিসাবে রেন্ডার হয়। এমডি প্লাগইন সহ ভিএসকোড এবং ভিজ্যুয়াল স্টুডিওতে পরীক্ষিত। এছাড়াও গিটহাব এ এটি কাজ করছে না
ড্যানি

237

আমি অন্য সংগ্রহস্থলের একটি উদাহরণ অনুসরণ করেছি এবং ট্রিপল ব্যাকটিক্সের জুড়ি ( ```) এর মধ্যে ডিরেক্টরি কাঠামোটি গুটিয়ে রেখেছি :

```
project
│   README.md
│   file001.txt    
│
└───folder1
│   │   file011.txt
│   │   file012.txt
│   │
│   └───subfolder1
│       │   file111.txt
│       │   file112.txt
│       │   ...
│   
└───folder2
    │   file021.txt
    │   file022.txt
```

5
স্ট্যাক ওভারফ্লো নতুন ট্রিপল-ব্যাকটিক সিনট্যাক্স সমর্থন করে না; এটি তাদের একক ব্যাকটিক হিসাবে ব্যাখ্যা করে। একক ব্যাকটিক্স চিহ্ন কোডটি ইনলাইন পাঠ্য হিসাবে কেবল একক লাইনের মধ্যে; এজন্য আপনার উদাহরণটিতে প্রতিটি লাইনের মাঝে সাদা ফিতে রয়েছে। মাল্টি-লাইন কোড চিহ্নিত করার জন্য একটি উপযুক্ত উপায়ে, চারটি স্পেস দ্বারা পাঠ্যকে ইনডেন্ট করুন।
ররি ও'কেনে

3
যদিও এসও ট্রিপল-ব্যাকটিককে সমর্থন করে না, বেশিরভাগ এমডি বাস্তবায়নগুলি (যেমন গিথুব / বিটবাকেটের মতো) করেন এবং এটি এমন একমাত্র উপায় ছিল যা আমি প্রতিটি গাছের প্রবেশদ্বারটি সম্পর্কে ইনলাইন মন্তব্য করে এমন একটি বৃক্ষের কাজ করতাম। তো .. এখান থেকে +1!
স্কট বায়ার্স

1
এই উত্তরের জন্য থাম্বস আপ। ট্রিপল ব্যাকটিক্স মার্কডাউন ওয়ার্ডপ্রেসেও আমার জন্য কাজ করে।
বিনিতা ভারতী

ট্রিপল-ব্যাকটিক সমর্থন এখন এসও তে কাজ করে।
স্ট্রিপলিং ওয়ারিয়র

41

আপনার উদাহরণের সাথে খুব মিল কিছু তৈরি করতে আপনি গাছ ব্যবহার করতে পারেন । আপনার আউটপুটটি একবার হয়ে গেলে, আপনি <pre>প্লেইন পাঠ্য বিন্যাস সংরক্ষণের জন্য এটি কোনও ট্যাগে মুড়িয়ে রাখতে পারেন ।


দুর্দান্ত, এটি সহায়ক মনে হচ্ছে! কিন্তু তাত্ত্বিক ফাইল স্ট্রাকচার সম্পর্কে কি? এই মুহুর্তে যদি এটিই একমাত্র সমাধান হয় তবে আমি অনুমান করি যে আমাকে কেবল আমার প্রয়োজনীয় অক্ষরগুলি অনুলিপি করে কপি করতে হবে। চিয়ার্স আবার।
ম্যাট রাওলস

আমি এই সমাধানটি পছন্দ করি। মার্কডাউনতে ঝরঝরে চেহারা
আন তুয়ান

27

আপনি যদি ভিএস কোড ব্যবহার করছেন তবে ফাইল গাছ উত্পন্ন করার জন্য এটি দুর্দান্ত একটি এক্সটেনশন। https://marketplace.visualstudio.com/items?itemName=Shinotatwu-DS.file-tree-generator

মার্কডাউন এ সরাসরি যুক্ত করা হয়েছে ...

📦quakehunter
 ┣ 📂client
 ┣ 📂node_modules
 ┣ 📂server
 ┃ ┗ 📜index.js
 ┣ 📜.gitignore
 ┣ 📜package-lock.json
 ┗ 📜package.json

22

আমি এই কাজটি স্বয়ংক্রিয় করার জন্য একটি নোড মডিউল তৈরি করেছি: এমডিডিআর

ব্যবহার

নোড এমডিডির ".. / সম্পর্কিত / পাথ /"

ইনস্টল করতে: এনডিএম ইনস্টল করুন mddir -g

বর্তমান ডিরেক্টরিতে মার্কডাউন উত্পন্ন করতে: mddir ir

যে কোনও পরম পাথের জন্য উত্পন্ন করতে: এমডিডিআর / পরম / পথ

আপেক্ষিক পাথ তৈরি করতে: এমডিডিআর / ডকুমেন্টস / যাই হোক না কেন।

এমডি ফাইলটি আপনার কার্যক্ষম ডিরেক্টরিতে উত্পন্ন হয়।

বর্তমানে নোড_মডিউলগুলি এবং .git ফোল্ডারগুলি উপেক্ষা করে।

সমস্যা সমাধান

আপনি যদি 'নোড \ r: ত্রুটিযুক্ত কোনও ফাইল বা ডিরেক্টরি' ত্রুটিটি পেয়ে থাকেন তবে সমস্যাটি হ'ল আপনার অপারেটিং সিস্টেমটি বিভিন্ন লাইন সমাপ্তি ব্যবহার করে এবং এমডিডিআর আপনি স্পষ্টভাবে ইউনিক্সে লাইন শেষের স্টাইল সেট না করে পার্স করতে পারবেন না। এটি সাধারণত উইন্ডোজকে প্রভাবিত করে, তবে লিনাক্সের কয়েকটি সংস্করণও affects ইউনিক্স শৈলীতে লাইন এন্ডিং সেট করা mddir এনপিএম গ্লোবাল বিন ফোল্ডারের মধ্যে সঞ্চালন করতে হবে।

লাইন শেষ সংশোধন

এর সাথে এনপিএম বিন ফোল্ডার পাথ পান:

npm config get prefix

সেই ফোল্ডারে সিডি করুন

ব্রেইন ইনস্টল ডস 2 ইউনিক্স

ডস 2 ইউনিক্স লাইব / নোড_মডিউলস / এমডিডিআর / এসসিআর / এমডিডিআর.জেএস

এটি ডসের পরিবর্তে লাইন এন্ডিংকে ইউনিক্সে রূপান্তর করে

তারপরে স্বাভাবিক হিসাবে চালান: নোড এমডিডির ".. / সম্পর্কিত / পাথ /"।

উত্পন্ন মার্কডাউন ফাইল কাঠামো 'ডিরেক্টরীলিস্ট.এমডি' উদাহরণ

    |-- .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

1
দুঃখের বিষয়, আমি এটি চেষ্টা করেছিলাম, এবং এটি আমার উইন্ডোজ 10 মেশিনে কাজ করে না এবং মনে হয় যে প্রকল্পটি পরিত্যাগ করা হয়েছে।
ধনী হপকিন্স

1
হাই, লাইব্রেরি চেষ্টা করার জন্য ধন্যবাদ। আমি অন্যান্য প্রকল্পগুলিতে ব্যস্ত ছিলাম এবং প্রতিলিপি করতে পারি না তবে একটি সম্ভাব্য সমাধান খুঁজে পেয়েছি। এর সাথে এনপিএম বিন ফোল্ডার পাথ পান: 'এনপিএম কনফিগার করুন উপসর্গ'। সেই ফোল্ডারে সিডি করুন, তারপরে 'ব্রিউ ইনস্টল ডস 2 ইউনিক্স' চালান, 'ডস 2 ইউনিক্স লাইব / নোড_মডিউলস / এমডিডিআর / এসসিআর / এমডিডিআর.জেস' চালান। এটি ডসের পরিবর্তে লাইন এন্ডিংকে ইউনিক্সে রূপান্তর করে। তারপরে স্বাভাবিক হিসাবে চালান: নোড এমডিডির ".. / সম্পর্কিত / পাথ /"।
জন বাইরেন

আমার উইন্ডোজ 10 মেশিনে কাজ করা, ঝরঝরে সামান্য ইউটিলিটি - ধন্যবাদ!
জন কাটেনহর্ন

19

ইতিমধ্যে প্রস্তাবিত হিসাবে, আপনি ব্যবহার করতে পারেন tree। তবে এটি পুনর্গঠিত পাঠ্যের সাথে একসাথে ব্যবহারের জন্য কিছু অতিরিক্ত পরামিতি প্রয়োজন হয়েছিল।

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

8

আমি আমার ড্রপবক্স ফাইল তালিকার জন্য এটি স্ক্রিপ্ট করেছি।

sed পরে আসা সিমলিঙ্কযুক্ত ফাইল / ফোল্ডার পাথের সম্পূর্ণ পাথগুলি সরাতে ব্যবহৃত হয় ->

দুর্ভাগ্যক্রমে, ট্যাবগুলি হারিয়ে গেছে। ব্যবহার করে zshআমি ট্যাব সংরক্ষণ করতে সক্ষম।

! / usr / বিন / এনভ বাশ

#!/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

7

আপনি যদি অ্যাটম সম্পাদক ব্যবহার করছেন তবে আপনি এটি অসি-ট্রি প্যাকেজ দ্বারা সম্পন্ন করতে পারেন ।

আপনি নিম্নলিখিত গাছটি লিখতে পারেন:

root
+-- dir1
    +--file1
+-- dir2
    +-- file2

এবং এটি নির্বাচন করে টিপে নীচে রূপান্তর করুন ctrl-alt-t:

root
├── dir1
│   └── file1
└── dir2
    └── file2

5

ওএসএক্সের অধীনে, reveal.jsআমি কেবল ব্যবহারকারী treeএবং তারপরে আউটপুটটি অনুলিপি / আটকানো হলে রেন্ডারিং ইস্যু পেয়েছি : অদ্ভুত চিহ্নগুলি উপস্থিত হয়।

আমি 2 সম্ভাব্য সমাধান খুঁজে পেয়েছি।

1) চরসেট আসকি ব্যবহার করুন এবং মার্কডাউন ফাইলটিতে আউটপুট অনুলিপি করে অনুলিপি করুন / আটকান

tree -L 1 --charset=ascii

2) মার্কডাউন ফাইলটিতে সরাসরি এইচটিএমএল এবং ইউনিকোড ব্যবহার করুন

<pre>
.
&#8866; README.md
&#8866; docs
&#8866; e2e
&#8866; karma.conf.js
&#8866; node_modules
&#8866; package.json
&#8866; protractor.conf.js
&#8866; src
&#8866; tsconfig.json
&#8985; tslint.json
</pre>

আশা করি এটা সাহায্য করবে.


4

আমি ওয়াসাবি ব্যবহারের পরামর্শ দিই তবে আপনি হয় মার্কডাউন-ইশটি অনুভব করতে পারেন

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 গ্রন্থাগারে যে সঠিক বাক্য গঠন নিক্ষেপ এই

ওয়াসাবির উদাহরণ



1

এর জন্য একটি এনপিএম মডিউল রয়েছে:

এনপিএম ড্রি

এটি আপনাকে স্ট্রিং বা কোনও অবজেক্ট হিসাবে ডিরেক্টরি গাছের উপস্থাপনের অনুমতি দেয়। কমান্ড লাইনের সাহায্যে এটি ব্যবহার করা আপনাকে একটি টেক্সট ফাইলে উপস্থাপনা সংরক্ষণ করতে দেয়।

উদাহরণ:

$ npm dree parse myDirectory --dest ./generated --name tree
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.