গিথুব ফ্লেভারড মার্কডাউন ব্যবহার করে কী কোনও স্বয়ংক্রিয় বিষয়বস্তু সারণী তৈরি করা সম্ভব ?
গিথুব ফ্লেভারড মার্কডাউন ব্যবহার করে কী কোনও স্বয়ংক্রিয় বিষয়বস্তু সারণী তৈরি করা সম্ভব ?
উত্তর:
আমি গিথুব-স্বাদযুক্ত মার্কডাউনয়ের জন্য একটি টোক উত্পন্ন করার জন্য দুটি বিকল্প তৈরি করেছি:
npm install doctoc
npx doctoc .
বর্তমান এবং সমস্ত উপ ডিরেক্টরিতে সমস্ত মার্কডাউন ফাইলগুলিতে সামগ্রীর সারণী যুক্ত করতে।
আপনি যদি প্রথমে অনলাইনে চেষ্টা করতে চান তবে যান ডক্টোক সাইটে যান, মার্কডাউন পৃষ্ঠার লিঙ্কটি পেস্ট করুন এবং এটি আপনার চিহ্নডাউন ফাইলের শীর্ষে সন্নিবেশ করতে পারে এমন সামগ্রীর একটি টেবিল তৈরি করবে।
যেমন ম্যাথু ফ্ল্যাশেন নীচের মন্তব্যে উল্লেখ করেছেন, এর উইকি পৃষ্ঠাগুলির জন্য গিটহাব আগে নোঙ্গর তৈরি করে নি doctoc
নির্ভর করে।
আপডেট: তবে, তারা এই সমস্যাটি স্থির করেছে ।
গিটহাব পৃষ্ঠাগুলি (যা মূলত জ্যাকিলের জন্য একটি মোড়ক) ক্র্যামডাউন ব্যবহার করে দেখা যাচ্ছে , যা সমস্ত মারুকু প্রয়োগ করে , এবং তাই একটি বৈশিষ্ট্যের মাধ্যমে স্বয়ংক্রিয়ভাবে উত্পন্ন সামগ্রীর সারণির সমর্থন রয়েছে toc
:
* auto-gen TOC:
{:toc}
প্রথম লাইনটি কেবল একটি নিরবচ্ছিন্ন তালিকা শুরু করে এবং প্রকৃতপক্ষে ফেলে দেওয়া হয়।
দস্তাবেজের শিরোনামগুলি ব্যবহার করে আনর্ডার্ড করা তালিকার নেস্টেড সেট এর ফলাফল।
দ্রষ্টব্য: এটি গিটহাব পৃষ্ঠাগুলির জন্য কাজ করা উচিত, মন্তব্য বা উইকি পৃষ্ঠাগুলিতে ব্যবহৃত গিটহাব ফ্লেভারড মার্কডাউন (জিএফএম) নয়। আফাইক একটি সমাধান এর জন্য বিদ্যমান নেই।
আপনি যদি ভিমের সাথে মার্কডাউন ফাইলগুলি সম্পাদনা করেন তবে আপনি এই প্লাগইনটি ভিএম-মার্কডাউন-টক চেষ্টা করতে পারেন ।
ব্যবহারটি সহজ, আপনার সামগ্রীটি সারণী সংযোজন করতে চান এমন জায়গায় আপনার কর্সারটি সরিয়ে নিয়ে রান করুন :GenTocGFM
!
স্ক্রীনশট:
বৈশিষ্ট্য:
মার্কডাউন ফাইলগুলির জন্য টোক তৈরি করুন। (গিটহাব স্বাদযুক্ত মার্কডাউন এবং রেডকারেট সমর্থন করুন)
বিদ্যমান টোক আপডেট করুন।
সংরক্ষণে অটো আপডেট টোক।
~/.vimrc
: সাথে তালিকার চরিত্রটি পরিবর্তন করুন let g:vmt_list_item_char = "-"
, টিওসি-এর সাথে শিরোনাম অন্তর্ভুক্ত করুন let g:vmt_include_headings_before = 1
। আরও জন্য দস্তাবেজ বিকল্প বিভাগ দেখুন, উদাহরণস্বরূপ কিভাবে বেড়া পাঠ্য পরিবর্তন করতে।
এটি স্বয়ংক্রিয় নয়, তবে এটি নোটপ্যাড ++ নিয়মিত প্রকাশ করে:
প্রথমটি দ্বিতীয় দ্বারা প্রতিস্থাপন করুন (শিরোনাম না থাকা সমস্ত লাইন সরিয়ে দেয়)
^##(#?)(#?)(.*?)$(.|\r|\n)*?(?=^##|\z)
-\1\2 [\3](#\3)\n
তারপরে (শিরোনাম III স্পেসে রূপান্তরিত করে)
-##
-
তারপরে (দ্বিতীয় শিরোলেখগুলিকে স্পেসে রূপান্তরিত করে)
-#
-
তারপরে (লিঙ্ক শিরোনামের শুরুতে এবং শেষে অব্যবহৃত অক্ষরগুলি সরান)
\[ *((?:(?![ .:#!\?;]*\])[^#])*)[ #:!\?;]*\]
[\1]
তারপরে (স্পেসের পরিবর্তে শেষ টোকেন ছোট এবং ড্যাশ রূপান্তর করুন)
\]([^ \r\n]*) ([^\r\n ]*)
]\L\1-\2
অব্যবহৃত চূড়ান্ত পাউন্ড এবং প্রাথমিক ড্যাশগুলি সরান:
(?:()[-:;!\?#]+$|(\]#)-)
\1\2
লিঙ্কগুলিতে অকেজো অক্ষর সরান:
(\].*?)(?:\(|\))
\1
এবং অবশেষে চূড়ান্ত লিঙ্কগুলির চারপাশে বন্ধনী যুক্ত করুন:
\](?!\()(.*?)$
\]\(\1\)
ও ভয়েল! আপনি যদি পর্যাপ্ত সময়টি পুনরুক্ত করেন তবে আপনি এটি বিশ্বব্যাপী ম্যাক্রোতেও রাখতে পারেন।
প্রস্তাবিত কাজের ব্যতীত এটি সম্ভব নয়।
আমি ক্র্যামডাউন টিওসি এক্সটেনশান এবং অন্যান্য সম্ভাবনার প্রস্তাবকে সমর্থন করার জন্য সমর্থন করেছি @ github.com এবং স্টিভেন! রাগনারিক উত্তর দিয়েছিলেন:
পরামর্শ এবং লিঙ্কগুলির জন্য ধন্যবাদ। আমি এটি দেখতে আমাদের দলের অভ্যন্তরীণ বৈশিষ্ট্য অনুরোধ তালিকায় যুক্ত করব।
যতক্ষণ না এটি ঘটে এই প্রশ্নটি উঁচু করে দেখা যাক।
আরেকটি কর্মসূচী হ'ল মার্কডাউনের পরিবর্তে এসকিডোক ব্যবহার করা, যা টিওসি সরবরাহ করে । আমি আজকাল আমার সামগ্রীর জন্য এই পদ্ধতির দিকে চলে এসেছি।
গিথুব স্বাদযুক্ত মার্কডাউন তাদের মার্কডাউন ইঞ্জিন হিসাবে রেডকারেট ব্যবহার করে। থেকে RedCarpet রেপো :
: with_toc_data - প্রতিটি বিভাগের সাথে সংযোগ স্থাপনের জন্য আউটপুট এইচটিএমএলে প্রতিটি শিরোনামে এইচটিএমএল অ্যাঙ্কার যুক্ত করুন।
দেখে মনে হচ্ছে এই পতাকাটি স্থাপনের জন্য আপনাকে রেন্ডারার পর্যায়ে পৌঁছানো দরকার যা গিথুবটিতে স্পষ্টতই সম্ভব নয়। তবে, গিথুব পৃষ্ঠাগুলির সর্বশেষ আপডেট , দেখে মনে হচ্ছে লিডেবল শিরোনাম তৈরি করে শিরোলেখগুলির জন্য স্বয়ংক্রিয় অ্যাঙ্করিং চালু আছে। আপনি যা চান ঠিক তা নয়, তবে এটি আপনাকে আপনার ডকটির জন্য কিছুটা সহজ করার জন্য একটি ম্যানসিফিকেশন তৈরি করতে সহায়তা করতে পারে (ম্যানুয়ালি হলেও)।
ভিজুয়াল স্টুডিও কোডের সাথে কাজ করার সময় মারডাউন ফাইলের জন্য সামগ্রীগুলির একটি সারণী অর্জন করার খুব সুবিধাজনক উপায় হ'ল এক্সটেনশন মার্কডাউন-টোসি ।
এটি বিদ্যমান মার্কডাউন ফাইলগুলিতে একটি টোক যোগ করতে পারে এবং এমনকি সংরক্ষণের ক্ষেত্রে টোককে আপ টু ডেট রাখে।
ফাইল থেকে http://docamentup.com/ দিয়ে স্বয়ংক্রিয়ভাবে একটি ওয়েবপৃষ্ঠা তৈরি করা সম্ভব README.md
। এটি কোনও টিওসি তৈরি করছে না, তবে অনেকের কাছে এটি একটি টিওসি তৈরি করতে চাওয়ার কারণটি সমাধান করতে পারে।
ডকুমেন্টআপের আরেকটি বিকল্প হ'ল ফ্ল্যাডটোক: http://ricostacruz.com/flatdoc/
গিটাডন গিথুবের জন্য একটি মার্কডাউন প্রিপ্রোসেসর ।
গিটডাউন ব্যবহার করে আপনি পারবেন:
গিটডাউন গিটহাব সংগ্রহস্থলের জন্য একটি ডকুমেন্টেশন পৃষ্ঠা রক্ষণাবেক্ষণের সাথে যুক্ত সাধারণ কাজগুলি প্রবাহিত করে।
এটি ব্যবহার করা সহজবোধ্য:
var Gitdown = require('gitdown');
Gitdown
// Gitdown flavored markdown.
.read('.gitdown/README.md')
// GitHub compatible markdown.
.write('README.md');
আপনি এটি আলাদা স্ক্রিপ্ট হিসাবে রাখতে পারেন বা বিল্ড স্ক্রিপ্ট রুটিনের অংশ হিসাবে থাকতে পারেন (যেমন গুল্প )।
ব্যবহারের coryfklein / doctoc , এর একটি কাঁটাচামচ thlorenz / doctoc যে, "যোগ করেন দিয়ে তৈরি DocToc " বিষয়বস্তু প্রতিটি টেবিলে।
npm install -g coryfklein/doctoc
আমার সহকর্মী @ শ্ম্মিয়েডক এবং আমি একটি গ্রিসমোনকি স্ক্রিপ্ট তৈরি করেছি যা TOC
বোতামের বামে একটি নতুন বোতাম ইনস্টল করে h1
যা markdown-js
সামগ্রীর সারণিকে যোগ / রিফ্রেশ করার জন্য দুর্দান্ত লাইব্রেরি ব্যবহার করে ।
ডক্টোকের মতো সমাধানগুলির সুবিধাটি হ'ল এটি গিটহাবের উইকি সম্পাদকের সাথে সংহত হয়েছে এবং তাদের কমান্ড-লাইনে ব্যবহারকারীদের প্রয়োজন নেই (এবং ব্যবহারকারীদের মতো সরঞ্জাম ইনস্টল করার প্রয়োজন হয় না) node.js
)। ক্রোমে, এটি এক্সটেনশানগুলির পৃষ্ঠায় ফেলে 'টেনে নিয়ে কাজ করে, ফায়ারফক্সে আপনাকে গ্রিজমোনকি এক্সটেনশনটি ইনস্টল করতে হবে।
এটি সরল মার্কডাউন দিয়ে কাজ করবে (যেমন এটি কোড ব্লকগুলি সঠিকভাবে পরিচালনা করে না, কারণ এটি মার্কডাউন থেকে গিটহাব এক্সটেনশন। অবদান স্বাগত।
এটি এই প্রশ্নের সরাসরি উত্তর নয় কারণ এত লোকেরা কাজের সীমাবদ্ধতা সরবরাহ করেছে। আমি মনে করি না একটি টিওসি উত্পন্ন করার জন্য আনুষ্ঠানিকভাবে গিথুব এখনও সমর্থন করেছেন। আপনি যদি গিটহাব তাদের জিএফএম পূর্বরূপ পৃষ্ঠাগুলিতে স্বয়ংক্রিয়ভাবে একটি সারণী রেন্ডার করতে চান তবে দয়া করে অফিসিয়াল বৈশিষ্ট্য অনুরোধ ইস্যুতে আলোচনায় অংশ নিন ।
বর্তমানে মার্কডাউন সিনট্যাক্স ব্যবহার করা সম্ভব নয় ( গিটহাবের চলমান আলোচনা দেখুন ) তবে আপনি কিছু বাহ্যিক সরঞ্জাম যেমন ব্যবহার করতে পারেন:
বিকল্পভাবে AsciiDoc
পরিবর্তে (উদাহরণস্বরূপ README.adoc
) ব্যবহার করুন , যেমন
:toc: macro
:toc-title:
:toclevels: 99
# Title
## A
### A2
## B
### B2
জন্য গিটহাব এর Texteditor অ্যাটম এই সন্ত্রস্ত প্লাগইন (বা "প্যাকেজ" এটম-শ্রেণীর বা সম্প্রদায়ের ভাষা মধ্যে), যা উত্পন্ন খুঁজে বার করো "TOC পার্স markdown থেকে শিরোনাম (সূচীপত্র)" ফাইলগুলি:
এটিম-প্যাকেজ হিসাবে ইনস্টল হয়ে গেলে আপনি ctrl-alt-c
বর্তমান কার্সার অবস্থানে আপনার মার্কডাউন-ডক-কাঠামোর উপর ভিত্তি করে একটি TOC সন্নিবেশ করতে শর্টকাটটি ব্যবহার করতে পারেন ...
স্ক্রীনশট:
অ্যাটম কীবাইন্ডিংস
মার্কডাউন-টাক আপনাকে পরমাণুতে প্লাগইন নিয়ন্ত্রণ করতে নিম্নলিখিত ডিফল্ট কী-বাইন্ডিংগুলি দেয়:
ctrl-alt-c
=> কার্সার অবস্থানে টিওসি তৈরি করুন ctrl-alt-u
=> টিওসি আপডেট করুন ctrl-alt-r
=> টিওসি মুছুন প্লাগইন বৈশিষ্ট্যগুলি (প্রকল্পের README থেকে)
# A 1
→ →#a-1
depthFrom:1
এবংdepthTo:6
withLinks:1
updateOnSave:1
orderedList:0
এটির জন্য আমি আজ একসাথে ছুড়েছি এমন একটি শেল স্ক্রিপ্ট। আপনার প্রয়োজনের জন্য এটি টুইট করতে পারে, তবে এটি একটি ভাল সূচনা পয়েন্ট হওয়া উচিত।
cat README.md \
| sed -e '/```/ r pf' -e '/```/,/```/d' \
| grep "^#" \
| tail -n +2 \
| tr -d '`' \
| sed 's/# \([a-zA-Z0-9`. -]\+\)/- [\1](#\L\1)/' \
| awk -F'(' '{for(i=2;i<=NF;i++)if(i==2)gsub(" ","-",$i);}1' OFS='(' \
| sed 's/^####/ /' \
| sed 's/^###/ /' \
| sed 's/^##/ /' \
| sed 's/^#//'
যদি কেউ এই চূড়ান্ত # প্রতিস্থাপনের আরও ভাল উপায় জানেন তবে দয়া করে একটি মন্তব্য যুক্ত করুন। আমি বিভিন্ন জিনিস চেষ্টা করেছিলাম এবং কোনওর সাথেই সন্তুষ্ট নই, তাই আমি কেবল জোর করে এটাকে বাধ্য করেছি।
এটি সম্পাদন করার জন্য এখন একটি গিটহাব অ্যাকশন রয়েছে:
https://github.com/marketplace/actions/toc-generator
README.md
<!-- START doctoc -->
<!-- END doctoc -->
.github/workflows/toc.yml
on: push
name: TOC Generator
jobs:
generateTOC:
name: TOC Generator
runs-on: ubuntu-latest
steps:
- uses: technote-space/toc-generator@v2
অন্যান্য উত্তরগুলির বেশিরভাগটির জন্য কিছু সরঞ্জাম ইনস্টল করা প্রয়োজন। আমি একটি দ্রুত এবং সহজ অনলাইন সমাধান https://imthenachoman.github.io/nGitHubTOC খুঁজে পেয়েছি ।
যে কোনও মার্কডাউন ইনপুটটির জন্য এটি সামগ্রীর আউটপুটের সারণি তৈরি করে। আপনি সর্বনিম্ন এবং সর্বাধিক শিরোনাম স্তর নির্দিষ্ট করতে পারেন।
উত্স কোডটি https://github.com/imithachoman/nGitHubTOC এ অবস্থিত