আরএসটি এর পরিবর্তে মার্কডডনের সাথে স্পিংক্স ব্যবহার করা


212

আমি আরএসটিকে ঘৃণা করি তবে স্ফিংসকে ভালবাসি। রিফ্রাকচারডটেক্সটের পরিবর্তে স্পিংস মার্কডাউন পড়ার কোনও উপায় আছে?


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

2
আরএসটি-র একটি উপসেট রয়েছে যা বেশিরভাগ বৈধ মার্কডাউন । আপনি যদি স্পিনেক্স ফিল্ড তালিকাগুলি ( :param path:ইত্যাদি) ঘৃণা করেন তবে নেপোলিয়ন এক্সটেনশন দেখুন
বেনি চেরনিয়াভস্কি-পাসকিন

3
আপনি যদি স্পিঞ্জের সাথে মার্কডাউনে আপনার পাইথন প্রকল্পটি নথিভুক্ত করতে চান তবে বিটবুককেট.আর.বিবারকেনফিল্ড / স্পিনেক্স / বিসুই
কর্নেল প্যানিক

1
এই মন্তব্যটি দেখে মনে হচ্ছে আপনি দুটি মিশ্রিত করতে পারেন: পড়ুন- ডটস.ড্রেডহেডসকস.আর
স্টিফান ভ্যান ডার ওয়াল্ট

2
বেসিক মার্কডাউন সমর্থন অবশেষে স্পিনক্সে প্রবেশ করেছে: নতুন উত্তর দেখুন
অলিভার বেস্টওয়াল্টার

উত্তর:


97

এটি করার "যথাযথ" উপায়টি হ'ল মার্কডাউন করার জন্য একটি ডকুমেন্টাল পার্সার লেখা । (পার্সারটি বেছে নেওয়ার জন্য একটি স্পিংস বিকল্পটি প্লাস করুন all) এর সৌন্দর্যটি সমস্ত ডকুমেন্টাল আউটপুট ফর্ম্যাটগুলির তাত্ক্ষণিক সমর্থন হবে (তবে আপনি সম্ভবত এটির যত্ন নেবেন না, কারণ বেশিরভাগ ক্ষেত্রে অনুরূপ মার্কডাউন সরঞ্জাম ইতিমধ্যে বিদ্যমান)। স্ক্র্যাচ থেকে কোনও পার্সার তৈরি না করেই এগুলির কাছে যাওয়ার উপায়:

  1. আপনি প্রতারণা করে এমন একটি "পার্সার" লিখতে পারেন যা পানডোক ব্যবহার করে মার্কডাউনকে আরএসটিতে রূপান্তর করতে এবং সেটি আরএসটি পার্সার :-) এ যেতে পারে।

  2. আপনি একটি বিদ্যমান মার্কডাউন-> এক্সএমএল পার্সার ব্যবহার করতে পারেন এবং ফলাফলটি (এক্সএসএলটি? ব্যবহার করে) ডকুমেন্টিল স্কিমে রূপান্তর করতে পারেন।

  3. আপনি কিছু বিদ্যমান পাইথন মার্কডাউন পার্সার নিতে পারেন যা আপনাকে একটি কাস্টম রেন্ডারারের সংজ্ঞা দিতে এবং এটি ডকুমেন্টিল নোড ট্রি তৈরি করতে দেয়।

  4. আপনি বিদ্যমান আরএসটি পাঠককে কাঁটাচামচ করতে পারেন, মার্কডাউন থেকে অপ্রাসঙ্গিক সবকিছু ছড়িয়ে দিতে এবং বিভিন্ন সিনট্যাক্সগুলি পরিবর্তন করতে পারেন ( এই তুলনাটি সাহায্য করতে পারে) ...
    সম্পাদনা: আপনি যদি এটিকে পরীক্ষা করার জন্য প্রস্তুত না হন তবে আমি এই রুটের প্রস্তাব দিই না। মার্কডাউন ইতিমধ্যে অনেকগুলি সাবটলি বিভিন্ন উপভাষা রয়েছে এবং এর ফলস্বরূপ এখনও আরও একটি-এর ফলাফল হবে ...

আপডেট: https://github.com/sgenoud/remarkdown ডকুমেন্টের জন্য একটি মার্কডাউন রিডার। এটি উপরের শর্টকাটগুলির কোনও নেয় নি তবে পেগ -মার্কডাউন দ্বারা অনুপ্রাণিত একটি পার্সলে পিইজি ব্যাকরণ ব্যবহার করে ।

আপডেট: https://github.com/readthedocs/recommonmark এবং অন্য দস্তাবেজ পাঠক, স্থানীয়ভাবে ReadDocs এ সমর্থিত। মন্তব্য থেকে উত্পন্ন কিন্তু কমনমার্ক-পাই পার্সার ব্যবহার করে ।

  • এটি নির্দিষ্ট কম-বেশি প্রাকৃতিক মার্কডাউন সিনট্যাক্সগুলিকে উপযুক্ত কাঠামোর মধ্যে রূপান্তর করতে পারে যেমন টোক্রিতে লিঙ্কের তালিকা। * ভূমিকার জন্য জেনেরিক নেটিভ সিনট্যাক্স নেই।
  • একটি বেড়া ব্লক সহ নির্দেশাবলী সহ যে কোনও আরএসটি সামগ্রী এম্বেডিং সমর্থন করে```eval_rst জন্য একটি শর্টহ্যান্ডDIRECTIVE_NAME:: ...

আপডেট : মাইএসটি হ'ল আরও একটি ডকুটিন / স্পিনক্স পাঠক। মার্কডাউন-ইট-পাই, কমনমার্কের সাথে সামঞ্জস্যপূর্ণ Based

  • জেনেরিক আছে {ROLE_NAME}`...`ভূমিকার জন্য সিনট্যাক্স রয়েছে।
  • ```{DIRECTIVE_NAME} ...বেড়া ব্লক সহ নির্দেশের জন্য জেনেরিক সিনট্যাক্স রয়েছে ।

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

বাস্তবায়ন অনুসারে, সবচেয়ে সহজ জিনিসটি কোনও ডকুমেন্টিলের ভূমিকা / নির্দেশকে প্রকাশ করার জন্য একটি জেনেরিক নির্মাণ যুক্ত করছে। সিনট্যাক্স অনুপ্রেরণার সুস্পষ্ট প্রার্থীরা হলেন:

  • অ্যাট্রিবিউট সিনট্যাক্স, যা প্যানডোক এবং অন্যান্য কিছু বাস্তবায়ন ইতিমধ্যে অনেকগুলি ইনলাইন এবং ব্লক নির্মাণগুলিতে অনুমতি দেয়। উদাহরণ স্বরূপ`foo`{.method} -> `foo`:method:
  • এইচটিএমএল / এক্সএমএল। থেকে<span class="method">foo</span> মাত্র docutils অভ্যন্তরীণ এক্সএমএল ঢোকাতে kludgiest পদ্ধতির করুন!
  • নির্দেশের জন্য কোনও প্রকার YAML?

তবে এ জাতীয় জেনেরিক ম্যাপিং সর্বাধিক মার্কডাউন-ইশ সমাধান হতে পারে না ... বর্তমানে মার্কডাউন এক্সটেনশানগুলি নিয়ে আলোচনার সর্বাধিক সক্রিয় স্থানগুলি হ'ল https://groups.google.com/forum/#!topic/pandoc-discuss , https: // github.com/scholmd/scholmd/

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


বিকল্প পাগল ধারণা: স্পিনিক্স পরিচালনা করার জন্য মার্কডাউন প্রসারিত করার পরিবর্তে, মার্কডাউন সুপারসেটকে সমর্থন করার জন্য পুনর্গঠনপ্রযুক্তি প্রসারিত করুন (বেশিরভাগ) মার্কডাউনের সুপারসেট! সৌন্দর্যটি হ'ল আপনি যে কোনও স্পিঙ্কস বৈশিষ্ট্যটিকে যেমন রয়েছে তেমন ব্যবহার করতে সক্ষম হবেন, তবুও মার্কডাউনে বেশিরভাগ সামগ্রী লিখতে সক্ষম হবেন।

ইতিমধ্যে যথেষ্ট সিনট্যাক্স ওভারল্যাপ রয়েছে ; উল্লেখযোগ্যভাবে লিঙ্ক সিনট্যাক্সটি বেমানান। আমি মনে করি আপনি যদি মার্কডাউন লিঙ্ক এবং ###স্টাইল শিরোনামগুলির জন্য আরএসটি সমর্থন যোগ করেন এবং ডিফল্ট `backticks`ভূমিকাটিকে আক্ষরিকরূপে পরিবর্তন করেন এবং সম্ভবত ইন্টেন্টেড ব্লকগুলিকে আক্ষরিকরূপে পরিবর্তন করেন (আরএসটি > ...আজকাল উদ্ধৃতিগুলির জন্য সমর্থন করে ), আপনি বেশিরভাগ মার্কডাউনকে সমর্থন করে এমন ব্যবহারযোগ্য কিছু পাবেন ।


17
আমি এই ক্ষেত্রের অগ্রগতির অভাব থেকে উপসংহারে পৌঁছেছি, আরএসএসটি কেবলমাত্র যথেষ্ট ভাল এবং পর্যাপ্ত ভিন্ন নয় তাই মার্কডাউন যেমন একটি উদ্যোগ গ্রহণের পক্ষে তা যোগ্য হয়ে উঠতে পারে।
অধ্যাপক ফ্যালকেন

5
টিএলডিআর: মার্কডাউন ব্যবহার করে স্পিঙ্কস ডকুমেন্টেশন লিখতে পুনঃনির্দেশ ব্যবহার করুন।
ostrokach

myst-parserএই উত্তরে নতুন যুক্ত করার পরামর্শ দিন । এটা জিতে যাচ্ছে।
রিক

92

আপনি একই স্পিনক্স প্রকল্পে মার্কডাউন এবং পুনর্গঠনপ্রযুক্তি ব্যবহার করতে পারেন। কিভাবে এই কাজ করতে succinctly নথিভুক্ত করা পড়ুন দ্য ডক্স

পুনঃনির্ধারণ ( pip install recommonmark) ইনস্টল করুন এবং তারপরে সম্পাদনা করুন conf.py:

from recommonmark.parser import CommonMarkParser

source_parsers = {
    '.md': CommonMarkParser,
}

source_suffix = ['.rst', '.md']

আমি গিথুবে একটি ছোট উদাহরণ প্রকল্প তৈরি করেছি (সেররা / স্পিংস-মার্কডাউন-সহ ) এটি কীভাবে (এবং তা) কীভাবে কাজ করে তা প্রদর্শন করে। এটি কমনমার্ক ০.০.৪ এবং পুনঃনির্মাণ 0.4.0 ব্যবহার করে।


4
বেনি উপরের তার খুব বিস্তৃত উত্তরে এই পদ্ধতির উল্লেখ করেছেন । যাইহোক, আমি মনে করি এই প্রশ্নটি এই সহজ উত্তরটির প্রাপ্য।
মারিজন

2
Recommonmark.readthedocs.org/en/latest/auto_structify.html পড়া গুরুত্বপূর্ণ , বিশেষত কীভাবে ট্যাক্ট্রি তৈরি করা যায় এবং কোনও আরএসটি নির্মাণ / নির্দেশিকা সন্নিবেশ করতে কীভাবে eval_rstবেড়া ব্লক ব্যবহার করা যায় ।
বেনি চেরনিয়াভস্কি-পাসকিন

এটি পুনর্নির্মাণ এবং কমনমার্ক ইনস্টল করতে প্রয়োজন
জাভিয়েরসিএলএল

1
আমি ImportError: cannot import name 'DocParser'পাইথন ৩.৪.৩ এর অধীনে স্পিনিক্স ১.৪.১ এ পেয়েছি ।
অবশেষে

2
@ তাত্পর্যপূর্ণভাবে: ইম্পোর্টেররার সর্বশেষ সংস্করণ (0.6.0) রিকমনোমার্কের সাথে সামঞ্জস্যতা ভঙ্গ করার কারণে: github.com/rtfd/recommonmark/issues/24 দেখুন । সমাধান:pip install commonmark==0.5.5 --upgrade
kadee

30

এটি স্পিনক্স ব্যবহার করে না, তবে এমকেডকস মার্কডাউন ব্যবহার করে আপনার ডকুমেন্টেশন তৈরি করবে। আমি প্রথমটি ঘৃণা করি, এবং এখনও পর্যন্ত এমকেডোকস উপভোগ করেছি।


5
শেষ-ব্যবহারকারীর ডকুমেন্টেশনের জন্য এমকেডোকস এখানে খুব ভাল কাজ করেছে। এখনও ডকাস্ট্রিংয়ের মধ্যে মার্কডাউন ব্যবহার করতে চাইছেন ..
মার্কাস

2
এই জন্য অনেক হ্যাঁ।
jkmacc

1
আরে, ধন্যবাদ - MkDocs দুর্দান্ত! আমি স্পিনিক্স এবং আরএসটিয়ের তুলনায় প্রচুর শক্তি এবং বৈশিষ্ট্যগুলি looseিলা করেছি, এটি নিশ্চিতভাবেই… তবে এটি দুর্দান্তভাবে জটিল, প্রবাহিত এবং এত সহজ এবং দ্রুত ব্যবহারযোগ্য। আমার প্রায় সমস্ত ব্যবহারের ক্ষেত্রে উপযুক্ত - যেমন সংক্ষিপ্ত ইনস্টল নির্দেশাবলী এবং কয়েকটি উদাহরণ সহ দ্রুত শুরুর টিউটোরিয়াল। কয়েকটি ক্ষেত্রে, যেখানে আমার প্রচুর উত্স কোড ব্যাখ্যা করা দরকার - আইগ ক্লাস এবং ফাংশন কল ডকুমেন্টেশন - আমি স্পিনক্সের সাথে থাকি।
ব্রুটাস

এটি লেখার সময়, এটি যদিও মাত্র 2 টিওসি টোয়েন্টি ইনডেন্টেশন সমর্থন করে।
রাইগেল

@ রাইগিয়েল আপনি একেবারেই ঠিক নন - আপনি যে থিমটি ব্যবহার করছেন তার উপর রেন্ডার করা টিওসি স্তরের সংখ্যা নির্ভর করে।
আলে

27

আপডেট: এটি এখন সরকারীভাবে স্ফিংক্স ডক্সে সমর্থিত এবং নথিভুক্ত ।

দেখে মনে হচ্ছে কোনও মৌলিক বাস্তবায়ন স্পিনক্সে প্রবেশ করেছে তবে শব্দটি এখনও পায় নি। গিথুব ইস্যু মন্তব্য দেখুন

নির্ভরতা ইনস্টল করুন:

pip install commonmark recommonmark

সামঞ্জস্য করুন conf.py:

source_parsers = {
    '.md': 'recommonmark.parser.CommonMarkParser',
}
source_suffix = ['.rst', '.md']

1
যদি আপনি পান cannot import name DocParser, চেষ্টা করুন pip install commonmark==0.5.5
রজার ডাহল

1
স্ফিংক্স ডক্সের লিঙ্কটি স্পিংক্স- ডক.অর্গ.অন.ইউ
পল

21

মার্কডাউন এবং রিএসটি বিভিন্ন জিনিস করে।

আরএসটি নথিগুলির সাথে কাজ করার জন্য একটি অবজেক্ট মডেল সরবরাহ করে।

মার্কডাউন পাঠ্যের বিটগুলি খোদাই করার একটি উপায় সরবরাহ করে।

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

কোনও মার্কডাউন ডোমেইনকে রেফারেন্স দেওয়ার কোনও উপায় আছে, কেবল যেমন সামগ্রীটি খোদাই করা আছে? আরএসটি / স্ফিংসগুলি toctreeমার্কডাউনে নকল না করে যেমন বৈশিষ্ট্যগুলির যত্ন নিয়েছে বলে মনে হয় ।


5
"আপনার স্পিংক্স প্রকল্প থেকে আপনার মার্কডাউন সামগ্রীর বিটগুলি উল্লেখ করা যুক্তিসঙ্গত মনে হয়" - এটি আসলে আমি করতে চাই; আমি README.mdআমার আরও বিস্তৃত স্পিংক্স ডকুমেন্টেশনে কিছু মার্কডাউন সামগ্রী (আমার ) অন্তর্ভুক্ত করতে চাই । আপনি কি জানেন এটা সম্ভব কিনা?
স্পষ্টভাবে


8

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

#!/usr/bin/env python
import os
import subprocess

DOCUMENTATION_SOURCE_DIR = 'documentation/source/'
SOURCE_EXTENSION = '.md'
OUTPUT_EXTENSION = '.rst'

for _, __, filenames in os.walk(DOCUMENTATION_SOURCE_DIR):
    for filename in filenames:
        if filename.endswith('.md'):
            filename_stem = filename.split('.')[0]
            source_file = DOCUMENTATION_SOURCE_DIR + filename_stem + SOURCE_EXTENSION
            output_file = DOCUMENTATION_SOURCE_DIR + filename_stem + OUTPUT_EXTENSION
            command = 'pandoc -s {0} -o {1}'.format(source_file, output_file)
            print(command)
            subprocess.call(command.split(' '))

1

একটি workaround আছে।
স্ফিংক্স-কুইকস্টার্ট.পি স্ক্রিপ্ট একটি মেকফাইল উত্পন্ন করে।
মার্কডাউনটিকে পুনর্গঠিত পাঠ্য রূপে রূপান্তর করতে আপনি যতবার ডকুমেন্টেশন তৈরি করতে চান প্রতিবার সহজেই আপনি মেকফিল থেকে পান্ডোককে আহ্বান করতে পারেন।


3
আমি যদি কিছু ভুল করে না করি তবে মার্কডাউনের সাথে আরইএসটি প্রতিস্থাপন করা এত সহজ নয়। আপনি যদি মার্কডাউন উত্স ফাইলে ট্যাক্ট্রি জাতীয় নির্দেশনা ব্যবহার করেন , তবে পান্ডোক তাদের একক লাইনে পরিবর্তন করবেন: .. toctree:: :maxdepth: 2 :glob:রূপান্তরের সময় এবং তারা কাজ করা বন্ধ করে দেবে। অন্য কথায়, এইভাবে নির্দেশিকা ব্যবহার করা অসম্ভব।
উইক্টর ওয়ালক

@ উইক্টরওয়ালাক আমি প্যান্ডোকের সাথে খুব বেশি পরিচিত নই এবং আমি সত্যিই এটি চেষ্টা করে দেখিনি তবে এটি অনুমান করে তোলে। আচ্ছা ভালো. আমি চেষ্টা করেছিলাম. আমার ধারণা আপনি একটি বাগ রিপোর্ট ফাইল করতে পারেন?
the_drow

@ উইক্টরওয়াল্ক: ..toctreeবৈধ মার্কডাউন সিনট্যাক্স নয়। আপনি হয় পুরো ডাউন ডকুমেন্টটি মার্কডাউনে লিখুন (এবং রিস্টের চমত্কার জিনিসগুলি আলগা করুন), বা আপনি আরএসটি ব্যবহার করুন। আপনি আপনার পিষ্টক রাখতে এবং এটি খেতে পারবেন না।
আদিত্য

1
কেবল একটি ইঙ্গিত: একটি সমাধান হ'ল প্যান্ডোক ফিল্টারগুলি সেই বিশেষ নির্দেশাবলী এড়াতে এবং আউটপুট জেনারেশনের মতো রেখে দেওয়া। আমি যদিও প্যান্ডোক ফিল্টারগুলির উইজার্ড নই এবং এটি স্কিমটিতে অতিরিক্ত জটিলতা যুক্ত করে।
zmo

1

এখানে একটি নতুন বিকল্প। মাইএসটি মার্কডাউনতে কিছু বৈশিষ্ট্য যুক্ত করেছে যা স্পিনিক্সকে আরস্টের মতো ডক্স তৈরি করতে দেয়। https://myst-parser.readthedocs.io/en/latest/


সবেমাত্র এটি ব্যবহার শুরু হয়েছে এবং এটি দুর্দান্ত is
রিক

0

লক্ষ্য করুন নির্মাণের ডকুমেন্টেশন ব্যবহার ম্যাভেন এবং এমবেডেড স্পিংক্স + + MarkDown সমর্থন সম্পূর্ণরূপে নিম্নলিখিত ম্যাভেন প্লাগইন দ্বারা সমর্থিত হয়:

https://trustin.github.io/sphinx-maven-plugin/index.html

<plugin>
  <groupId>kr.motd.maven</groupId>
  <artifactId>sphinx-maven-plugin</artifactId>
  <version>1.6.1</version>
  <configuration>
    <outputDirectory>${project.build.directory}/docs</outputDirectory>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>generate</goal>
      </goals>
    </execution>
  </executions>
</plugin>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.