গিথুব-স্বাদযুক্ত-মার্কাউনডে স্বয়ংক্রিয় টিওসি


215

গিথুব ফ্লেভারড মার্কডাউন ব্যবহার করে কী কোনও স্বয়ংক্রিয় বিষয়বস্তু সারণী তৈরি করা সম্ভব ?


2
চিহ্নিত-টোক চেষ্টা করুন , এটি খুব সহজ পেতে পারে না।
jonschlinkert

1
আপনি যদি লিনাক্স ব্যবহার করেন এবং কোনও অতিরিক্ত সফ্টওয়্যার ইনস্টল করতে চান না তবে গিথুব-মার্কডাউন-ট্যাক চেষ্টা করুন (কেবলমাত্র হুডের নীচে খালি)।
সংক্ষিপ্তসার

আমি জেড টেম্পলেটগুলির মধ্যে একাধিক মার্কডাউন ফাইলগুলি এইচটিএমএলে রেন্ডার করছি। সুতরাং আমার টিওসিটিতে একটি মার্কডাউন ফাইলের চেয়ে আরও বেশি তথ্য থাকতে হবে। আমার সমাধানটি হ'ল এইচডিএমএল কোড থেকে নোড.জেএস লাইব্রেরি দিয়ে টিওসি উত্পন্ন করাtoc
প্লেটো

2
আমি উপরে চিহ্নিত তালিকাভুক্ত টোক সহ "এটি ঠিক করার জন্য" চেষ্টা করে তিনটি আলাদা মার্কডাউন টিওসি জেনারেটর তৈরি করেছি। মার্কডাউন-টাকটি আমার প্রিয়, এটি একটি সত্যিকারের মার্কডাউন পার্সার ব্যবহার করেছে ( উল্লেখযোগ্য যা [কমনমার্ক] (কমনমার্ক.অর্গ) অনুমিতি অনুসরণ করে, টিওসিগুলিকে আপডেট করার অনুমতি দেয়, একটি সিএলআই এবং এপিআই রয়েছে, এবং এখন হাজার হাজার প্রকল্পে ব্যবহার করা হয়
jonschlinkert

উত্তর:


141

আমি গিথুব-স্বাদযুক্ত মার্কডাউনয়ের জন্য একটি টোক উত্পন্ন করার জন্য দুটি বিকল্প তৈরি করেছি:

DocToc কমান্ড লাইন টুল ( উৎস ) প্রয়োজন Node.js

স্থাপন:

npm install doctoc

ব্যবহার:

npx doctoc . বর্তমান এবং সমস্ত উপ ডিরেক্টরিতে সমস্ত মার্কডাউন ফাইলগুলিতে সামগ্রীর সারণী যুক্ত করতে।

ডকটোক ওয়েব অ্যাপ

আপনি যদি প্রথমে অনলাইনে চেষ্টা করতে চান তবে যান ডক্টোক সাইটে যান, মার্কডাউন পৃষ্ঠার লিঙ্কটি পেস্ট করুন এবং এটি আপনার চিহ্নডাউন ফাইলের শীর্ষে সন্নিবেশ করতে পারে এমন সামগ্রীর একটি টেবিল তৈরি করবে।

গিথুব উইকিস ও অ্যাঙ্কারস

যেমন ম্যাথু ফ্ল্যাশেন নীচের মন্তব্যে উল্লেখ করেছেন, এর উইকি পৃষ্ঠাগুলির জন্য গিটহাব আগে নোঙ্গর তৈরি করে নি doctoc নির্ভর করে।

আপডেট: তবে, তারা এই সমস্যাটি স্থির করেছে


3
টিওসি দেখতে দুর্দান্ত দেখায়, তবে গিটহাব প্রকৃত বিভাগগুলির জন্য অ্যাঙ্কর জেনারেট করে না, তাই লিঙ্কগুলি ব্রেক break আমি আপাতত এগুলি ম্যানুয়ালি যুক্ত করব। এটি একটি গিটহাব উইকি।
ম্যাথু ফ্ল্যাশেন


1
যদি আপনি এটি আমার মতো বিরক্তিকর মনে করেন তবে দয়া করে @ ম্যাথুফ্ল্যাশেনের মন্তব্যে লিঙ্ক করতে যান এবং এই সমস্যাটি +1 করেন।
blak3r


3
ডকটোক ওয়েব অ্যাপ্লিকেশনটি কাজ করে না। আমি
মার্কডাউন

23

গিটহাব পৃষ্ঠাগুলি (যা মূলত জ্যাকিলের জন্য একটি মোড়ক) ক্র্যামডাউন ব্যবহার করে দেখা যাচ্ছে , যা সমস্ত মারুকু প্রয়োগ করে , এবং তাই একটি বৈশিষ্ট্যের মাধ্যমে স্বয়ংক্রিয়ভাবে উত্পন্ন সামগ্রীর সারণির সমর্থন রয়েছে toc:

* auto-gen TOC:
{:toc}

প্রথম লাইনটি কেবল একটি নিরবচ্ছিন্ন তালিকা শুরু করে এবং প্রকৃতপক্ষে ফেলে দেওয়া হয়।

দস্তাবেজের শিরোনামগুলি ব্যবহার করে আনর্ডার্ড করা তালিকার নেস্টেড সেট এর ফলাফল।

দ্রষ্টব্য: এটি গিটহাব পৃষ্ঠাগুলির জন্য কাজ করা উচিত, মন্তব্য বা উইকি পৃষ্ঠাগুলিতে ব্যবহৃত গিটহাব ফ্লেভারড মার্কডাউন (জিএফএম) নয়। আফাইক একটি সমাধান এর জন্য বিদ্যমান নেই।


1
এটি কাজ করে না। এটি যে পাঠ্যটিকে রেন্ডার করে তা সমর্থন করে। আপনি কি এমন কোনও ফাইল লিঙ্ক করতে পারেন যা এই জাতীয় একটি টিওসি ব্যবহার করে?
জেফ্রি ডি স্মেট


2
দ্রষ্টব্য যে এটি একটি মারুকু বৈশিষ্ট্য, প্রতি সেড মার্কডাউন নয় এবং সম্ভবত জিএইচ স্বাদযুক্ত মার্কডাউনও নয়। GH- পৃষ্ঠাগুলি যদিও Maruku ব্যবহার করে।
রেবেকা স্কট

@ কেভিনসটল আপনি কি নিশ্চিত? জিকিলে রেডকারেট অন্তর্ভুক্ত রয়েছে তবে মারুকু এখনও ডিফল্ট দেখাচ্ছে (যদি না জিএইচ ভিন্ন জেকিল কনফিগারেশন ব্যবহার করে) github.com/mojombo/jekyll/blob/master/lib/jekyll.rb#L66
রেবেকা স্কট

10
@ বেনস্কট দেখে মনে হচ্ছে আপনার সমাধানটি কেবল গিথাব পৃষ্ঠাগুলির জন্যই কাজ করে। আপনি কি গিথুব উইকির কোনও সমাধান জানেন?
পুনরায় প্রোগ্রাম করুন

13

আপনি যদি ভিমের সাথে মার্কডাউন ফাইলগুলি সম্পাদনা করেন তবে আপনি এই প্লাগইনটি ভিএম-মার্কডাউন-টক চেষ্টা করতে পারেন ।

ব্যবহারটি সহজ, আপনার সামগ্রীটি সারণী সংযোজন করতে চান এমন জায়গায় আপনার কর্সারটি সরিয়ে নিয়ে রান করুন :GenTocGFM!

স্ক্রীনশট:

তেজ-markdown-TOC

বৈশিষ্ট্য:

  1. মার্কডাউন ফাইলগুলির জন্য টোক তৈরি করুন। (গিটহাব স্বাদযুক্ত মার্কডাউন এবং রেডকারেট সমর্থন করুন)

  2. বিদ্যমান টোক আপডেট করুন।

  3. সংরক্ষণে অটো আপডেট টোক।


আপনি .md ফাইলগুলিতে সহযোগিতা করার ক্ষেত্রে এবং অন্য সম্পাদকের / প্লাগইনগুলিতে অন্য প্রতিটি প্রতিশ্রুতিতে TOC এ পরিবর্তন না পাওয়ার জন্য জড়িত থাকার ক্ষেত্রে একটি সাধারণ TOC শৈলী সন্ধান করার বিষয়টি নিশ্চিত করুন। এর জন্য সম্ভাব্য সংযোজন ~/.vimrc: সাথে তালিকার চরিত্রটি পরিবর্তন করুন let g:vmt_list_item_char = "-", টিওসি-এর সাথে শিরোনাম অন্তর্ভুক্ত করুন let g:vmt_include_headings_before = 1। আরও জন্য দস্তাবেজ বিকল্প বিভাগ দেখুন, উদাহরণস্বরূপ কিভাবে বেড়া পাঠ্য পরিবর্তন করতে।
ওল্ফসন

9

এটি স্বয়ংক্রিয় নয়, তবে এটি নোটপ্যাড ++ নিয়মিত প্রকাশ করে:

প্রথমটি দ্বিতীয় দ্বারা প্রতিস্থাপন করুন (শিরোনাম না থাকা সমস্ত লাইন সরিয়ে দেয়)

^##(#?)(#?)(.*?)$(.|\r|\n)*?(?=^##|\z)
-\1\2 [\3](#\3)\n

তারপরে (শিরোনাম III স্পেসে রূপান্তরিত করে)

-##
        -

তারপরে (দ্বিতীয় শিরোলেখগুলিকে স্পেসে রূপান্তরিত করে)

-#
    -

তারপরে (লিঙ্ক শিরোনামের শুরুতে এবং শেষে অব্যবহৃত অক্ষরগুলি সরান)

\[ *((?:(?![ .:#!\?;]*\])[^#])*)[ #:!\?;]*\]
[\1]

তারপরে (স্পেসের পরিবর্তে শেষ টোকেন ছোট এবং ড্যাশ রূপান্তর করুন)

\]([^ \r\n]*) ([^\r\n ]*)
]\L\1-\2

অব্যবহৃত চূড়ান্ত পাউন্ড এবং প্রাথমিক ড্যাশগুলি সরান:

(?:()[-:;!\?#]+$|(\]#)-)
\1\2

লিঙ্কগুলিতে অকেজো অক্ষর সরান:

(\].*?)(?:\(|\))
\1

এবং অবশেষে চূড়ান্ত লিঙ্কগুলির চারপাশে বন্ধনী যুক্ত করুন:

\](?!\()(.*?)$
\]\(\1\)

ও ভয়েল! আপনি যদি পর্যাপ্ত সময়টি পুনরুক্ত করেন তবে আপনি এটি বিশ্বব্যাপী ম্যাক্রোতেও রাখতে পারেন।


9

প্রস্তাবিত কাজের ব্যতীত এটি সম্ভব নয়।

আমি ক্র্যামডাউন টিওসি এক্সটেনশান এবং অন্যান্য সম্ভাবনার প্রস্তাবকে সমর্থন করার জন্য সমর্থন করেছি @ github.com এবং স্টিভেন! রাগনারিক উত্তর দিয়েছিলেন:

পরামর্শ এবং লিঙ্কগুলির জন্য ধন্যবাদ। আমি এটি দেখতে আমাদের দলের অভ্যন্তরীণ বৈশিষ্ট্য অনুরোধ তালিকায় যুক্ত করব।

যতক্ষণ না এটি ঘটে এই প্রশ্নটি উঁচু করে দেখা যাক।

আরেকটি কর্মসূচী হ'ল মার্কডাউনের পরিবর্তে এসকিডোক ব্যবহার করা, যা টিওসি সরবরাহ করে । আমি আজকাল আমার সামগ্রীর জন্য এই পদ্ধতির দিকে চলে এসেছি।


আমি বরং আশা করি জিএফএম এটি কোনও দিন সরবরাহ করবে। এটি সত্যই আমার পক্ষে একটি কুরিয়াস জিনিস, যখন সোর্সফর্সের মার্কডাউনের ডিফল্টরূপে এই টিওসি উত্পন্ন করার বাক্য গঠন রয়েছে ।
চিতাবহানা

8

গিথুব স্বাদযুক্ত মার্কডাউন তাদের মার্কডাউন ইঞ্জিন হিসাবে রেডকারেট ব্যবহার করে। থেকে RedCarpet রেপো :

: with_toc_data - প্রতিটি বিভাগের সাথে সংযোগ স্থাপনের জন্য আউটপুট এইচটিএমএলে প্রতিটি শিরোনামে এইচটিএমএল অ্যাঙ্কার যুক্ত করুন।

দেখে মনে হচ্ছে এই পতাকাটি স্থাপনের জন্য আপনাকে রেন্ডারার পর্যায়ে পৌঁছানো দরকার যা গিথুবটিতে স্পষ্টতই সম্ভব নয়। তবে, গিথুব পৃষ্ঠাগুলির সর্বশেষ আপডেট , দেখে মনে হচ্ছে লিডেবল শিরোনাম তৈরি করে শিরোলেখগুলির জন্য স্বয়ংক্রিয় অ্যাঙ্করিং চালু আছে। আপনি যা চান ঠিক তা নয়, তবে এটি আপনাকে আপনার ডকটির জন্য কিছুটা সহজ করার জন্য একটি ম্যানসিফিকেশন তৈরি করতে সহায়তা করতে পারে (ম্যানুয়ালি হলেও)।


5

ভিজুয়াল স্টুডিও কোডের সাথে কাজ করার সময় মারডাউন ফাইলের জন্য সামগ্রীগুলির একটি সারণী অর্জন করার খুব সুবিধাজনক উপায় হ'ল এক্সটেনশন মার্কডাউন-টোসি

এটি বিদ্যমান মার্কডাউন ফাইলগুলিতে একটি টোক যোগ করতে পারে এবং এমনকি সংরক্ষণের ক্ষেত্রে টোককে আপ টু ডেট রাখে।

এখানে চিত্র বর্ণনা লিখুন


আর একটি দুর্দান্ত ভিএস কোড প্লাগইন (গিটহাব ও গিটল্যাব স্বাদযুক্ত টিওসি সহ দুর্দান্ত বৈশিষ্ট্যগুলির সাথে দুর্দান্ত .এমডি সমর্থন) হ'ল মার্কাউন-অল-ইন-ওয়ান
ওল্ফসন

4

ফাইল থেকে http://docamentup.com/ দিয়ে স্বয়ংক্রিয়ভাবে একটি ওয়েবপৃষ্ঠা তৈরি করা সম্ভব README.md। এটি কোনও টিওসি তৈরি করছে না, তবে অনেকের কাছে এটি একটি টিওসি তৈরি করতে চাওয়ার কারণটি সমাধান করতে পারে।

ডকুমেন্টআপের আরেকটি বিকল্প হ'ল ফ্ল্যাডটোক: http://ricostacruz.com/flatdoc/


3

গিটাডন গিথুবের জন্য একটি মার্কডাউন প্রিপ্রোসেসর

গিটডাউন ব্যবহার করে আপনি পারবেন:

  • সামগ্রীগুলির সারণী তৈরি করুন
  • মৃত ইউআরএল এবং খণ্ড সনাক্তকারীদের সন্ধান করুন
  • ভেরিয়েবল অন্তর্ভুক্ত করুন
  • ফাইল অন্তর্ভুক্ত করুন
  • ফাইলের আকার পান
  • ব্যাজ তৈরি করুন
  • মুদ্রণ তারিখ
  • সংগ্রহস্থল সম্পর্কে নিজেই তথ্য মুদ্রণ করুন

গিটডাউন গিটহাব সংগ্রহস্থলের জন্য একটি ডকুমেন্টেশন পৃষ্ঠা রক্ষণাবেক্ষণের সাথে যুক্ত সাধারণ কাজগুলি প্রবাহিত করে।

এটি ব্যবহার করা সহজবোধ্য:

var Gitdown = require('gitdown');

Gitdown
    // Gitdown flavored markdown.
    .read('.gitdown/README.md')
    // GitHub compatible markdown.
    .write('README.md');

আপনি এটি আলাদা স্ক্রিপ্ট হিসাবে রাখতে পারেন বা বিল্ড স্ক্রিপ্ট রুটিনের অংশ হিসাবে থাকতে পারেন (যেমন গুল্প )।



1

আমার সহকর্মী @ শ্ম্মিয়েডক এবং আমি একটি গ্রিসমোনকি স্ক্রিপ্ট তৈরি করেছি যা TOCবোতামের বামে একটি নতুন বোতাম ইনস্টল করে h1যা markdown-jsসামগ্রীর সারণিকে যোগ / রিফ্রেশ করার জন্য দুর্দান্ত লাইব্রেরি ব্যবহার করে ।

ডক্টোকের মতো সমাধানগুলির সুবিধাটি হ'ল এটি গিটহাবের উইকি সম্পাদকের সাথে সংহত হয়েছে এবং তাদের কমান্ড-লাইনে ব্যবহারকারীদের প্রয়োজন নেই (এবং ব্যবহারকারীদের মতো সরঞ্জাম ইনস্টল করার প্রয়োজন হয় না) node.js )। ক্রোমে, এটি এক্সটেনশানগুলির পৃষ্ঠায় ফেলে 'টেনে নিয়ে কাজ করে, ফায়ারফক্সে আপনাকে গ্রিজমোনকি এক্সটেনশনটি ইনস্টল করতে হবে।

এটি সরল মার্কডাউন দিয়ে কাজ করবে (যেমন এটি কোড ব্লকগুলি সঠিকভাবে পরিচালনা করে না, কারণ এটি মার্কডাউন থেকে গিটহাব এক্সটেনশন। অবদান স্বাগত।


অনেক ধন্যবাদ! এটি ক্রোমে ইনস্টল করতে এই উত্তরটির পরামর্শ অনুসারে আমাকে ট্যাম্পারমনকি ব্যবহার করতে হয়েছিল, এবং এটি কার্যকর হয়েছিল! আপনার স্ক্রিপ্টটি গিথুব রেপোতে সাধারণ মার্কডাউন ফাইলগুলির জন্য টিওসি তৈরি করতে কী লাগবে?
লাইফব্লেন্স

1

এটি এই প্রশ্নের সরাসরি উত্তর নয় কারণ এত লোকেরা কাজের সীমাবদ্ধতা সরবরাহ করেছে। আমি মনে করি না একটি টিওসি উত্পন্ন করার জন্য আনুষ্ঠানিকভাবে গিথুব এখনও সমর্থন করেছেন। আপনি যদি গিটহাব তাদের জিএফএম পূর্বরূপ পৃষ্ঠাগুলিতে স্বয়ংক্রিয়ভাবে একটি সারণী রেন্ডার করতে চান তবে দয়া করে অফিসিয়াল বৈশিষ্ট্য অনুরোধ ইস্যুতে আলোচনায় অংশ নিন ।


0

বর্তমানে মার্কডাউন সিনট্যাক্স ব্যবহার করা সম্ভব নয় ( গিটহাবের চলমান আলোচনা দেখুন ) তবে আপনি কিছু বাহ্যিক সরঞ্জাম যেমন ব্যবহার করতে পারেন:


বিকল্পভাবে AsciiDocপরিবর্তে (উদাহরণস্বরূপ README.adoc) ব্যবহার করুন , যেমন

:toc: macro
:toc-title:
:toclevels: 99
# Title

## A

### A2

## B

### B2

হিসাবে এই মন্তব্য প্রস্তাবিত । এখানে ডেমো পরীক্ষা করুন


টেবিলফন্টেন্ট.ইইউ-তে অনলাইন টেবিল অফ কন্টেন্ট জেনারেটরের (রেচেনন / প্লে-টেবিল-অফ-সামগ্রী) হোস্টিং " এডাব্লুএসের ব্যয়ের কারণে বন্ধ হয়ে গেছে।
মাইকেল ফ্রিজিম

0

জন্য গিটহাব এর Texteditor অ্যাটম এই সন্ত্রস্ত প্লাগইন (বা "প্যাকেজ" এটম-শ্রেণীর বা সম্প্রদায়ের ভাষা মধ্যে), যা উত্পন্ন খুঁজে বার করো "TOC পার্স markdown থেকে শিরোনাম (সূচীপত্র)" ফাইলগুলি:

markdown-TOC

এটিম-প্যাকেজ হিসাবে ইনস্টল হয়ে গেলে আপনি ctrl-alt-cবর্তমান কার্সার অবস্থানে আপনার মার্কডাউন-ডক-কাঠামোর উপর ভিত্তি করে একটি TOC সন্নিবেশ করতে শর্টকাটটি ব্যবহার করতে পারেন ...

স্ক্রীনশট:

এখানে চিত্র বর্ণনা লিখুন

অ্যাটম কীবাইন্ডিংস

মার্কডাউন-টাক আপনাকে পরমাণুতে প্লাগইন নিয়ন্ত্রণ করতে নিম্নলিখিত ডিফল্ট কী-বাইন্ডিংগুলি দেয়:

  • ctrl-alt-c => কার্সার অবস্থানে টিওসি তৈরি করুন
  • ctrl-alt-u => টিওসি আপডেট করুন
  • ctrl-alt-r => টিওসি মুছুন

প্লাগইন বৈশিষ্ট্যগুলি (প্রকল্পের README থেকে)

  • অ্যাঙ্কর ট্যাগগুলির মাধ্যমে অটো লিঙ্কিং, যেমন # A 1→ →#a-1
  • গভীরতা নিয়ন্ত্রণ [1-6] এর সাথে depthFrom:1এবংdepthTo:6
  • এর সাথে লিঙ্কগুলি সক্ষম বা অক্ষম করুন withLinks:1
  • এর সাথে সংরক্ষণে তালিকা রিফ্রেশ করুন updateOnSave:1
  • আদেশযুক্ত তালিকা (1. ..., 2. ...) ব্যবহার করুন orderedList:0

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/^#//'

যদি কেউ এই চূড়ান্ত # প্রতিস্থাপনের আরও ভাল উপায় জানেন তবে দয়া করে একটি মন্তব্য যুক্ত করুন। আমি বিভিন্ন জিনিস চেষ্টা করেছিলাম এবং কোনওর সাথেই সন্তুষ্ট নই, তাই আমি কেবল জোর করে এটাকে বাধ্য করেছি।


0

এটি সম্পাদন করার জন্য এখন একটি গিটহাব অ্যাকশন রয়েছে:

https://github.com/marketplace/actions/toc-generator

  1. TOC এর অবস্থান নির্দিষ্ট করুন (বিকল্প) যেমন README.md
<!-- START doctoc -->
<!-- END doctoc -->
  1. ওয়ার্কফ্লো সেটআপ করুন যেমন .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

0

অন্যান্য উত্তরগুলির বেশিরভাগটির জন্য কিছু সরঞ্জাম ইনস্টল করা প্রয়োজন। আমি একটি দ্রুত এবং সহজ অনলাইন সমাধান https://imthenachoman.github.io/nGitHubTOC খুঁজে পেয়েছি

যে কোনও মার্কডাউন ইনপুটটির জন্য এটি সামগ্রীর আউটপুটের সারণি তৈরি করে। আপনি সর্বনিম্ন এবং সর্বাধিক শিরোনাম স্তর নির্দিষ্ট করতে পারেন।

উত্স কোডটি https://github.com/imithachoman/nGitHubTOC এ অবস্থিত

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