অন্য পৃষ্ঠায় একটি উপ-শিরোনাম বা অ্যাঙ্করকে ক্রস-রেফারেন্স যুক্ত করা


110

একই ডকুমেন্টেশন সেটে অন্য পৃষ্ঠায় উপ-শিরোনাম বা অ্যাঙ্করকে কোনও পুনর্নির্মাণ / স্পিনিক্স পৃষ্ঠায় একটি ক্রস-রেফারেন্স কীভাবে সন্নিবেশ করবেন?


উত্তর:


207

"রিস্ট / স্পিংস" এক্সপ্রেশনটি প্রশ্নের ক্ষেত্রকে অস্পষ্ট করে তোলে। এটি কি সাধারণ এবং স্পিনিক্সে পুনর্গঠিত পাঠ্য সম্পর্কে , বা কেবল স্পিনিক্সে ব্যবহৃত পুনর্গঠনপ্রবন্ধ সম্পর্কে (এবং সাধারণভাবে পুনর্গঠিত পাঠ্য নয়)? আমি উভয়ই কভার করতে চলেছি যেহেতু আরএসটি ব্যবহার করা লোকেরা কোনও সময়ে উভয় ক্ষেত্রেই চলে যেতে পারে:

স্পিংক্স

ডোমেন-নির্দিষ্ট নির্দেশাবলী ছাড়াও ক্লাসের মতো বিভিন্ন সত্তার সাথে লিঙ্ক করতে ব্যবহার করা যেতে পারে ( :class:) এখানে সাধারণ :ref:নির্দেশ রয়েছে, এখানে নথিভুক্ত । তারা এই উদাহরণ দেয়:

    .. _my-reference-label:

    Section to cross-reference
    --------------------------

    This is the text of the section.

    It refers to the section itself, see :ref:`my-reference-label`.

যদিও আরএসটি দ্বারা প্রদত্ত সাধারণ হাইপারলিংকিং মেকানিজম স্পিনক্সে কাজ করে, স্পিনক্স ব্যবহার করার সময় ডকুমেন্টেশনগুলি এটি ব্যবহার করার বিরুদ্ধে সুপারিশ করে:

রেফ ব্যবহার করার জন্য বিভাগগুলির (যেমন Section title_) স্ট্যান্ডার্ড রিস্ট্রাকচারডটেক্সট লিঙ্কগুলির উপর পরামর্শ দেওয়া হচ্ছে কারণ এটি ফাইলগুলি জুড়ে কাজ করে, যখন বিভাগের শিরোনামগুলি পরিবর্তন করা হয় এবং ক্রস-রেফারেন্স সমর্থন করে এমন সমস্ত বিল্ডারের পক্ষে।

আরএসটি, সাধারণভাবে

যে সরঞ্জামগুলি আরএসটি ফাইলগুলিকে এইচটিএমএলতে রূপান্তরিত করে তাদের সংগ্রহ করার ধারণাটি অগত্যা নয় । আপনি যদি আরএসটি ফাইলগুলিকে এইচটিএমএল রূপান্তর করতে গিথুবের উপর নির্ভর করেন বা আপনি যদি কোনও কমান্ড লাইন সরঞ্জাম ব্যবহার করেন তবে এটি উদাহরণস্বরূপ rst2html। দুর্ভাগ্যক্রমে, কাঙ্ক্ষিত ফলাফল পেতে বিভিন্ন পদ্ধতি ব্যবহার করা হয় আপনি কোন সরঞ্জামটি ব্যবহার করছেন তার উপর নির্ভর করে। উদাহরণস্বরূপ, আপনি যদি rst2htmlফাইলটি ব্যবহার করেন এবং আপনি ফাইলটিতে A.rst"বিভাগ" নামে একটি বিভাগে লিঙ্ক other.rstকরতে চান এবং আপনি কোনও ব্রাউজারে চূড়ান্ত এইচটিএমএল কাজ করতে চান, তবে A.rstএতে অন্তর্ভুক্ত থাকবে:

`This <other.html#section>`__ is a reference to a section in another
file, which works with ``rst2html``. Unfortunately, it does not work
when the HTML is generated through github.

আপনাকে চূড়ান্ত এইচটিএমএল ফাইলের সাথে লিঙ্ক করতে idহবে এবং বিভাগটি প্রদত্ত কী হবে তা আপনাকে জানতে হবে। আপনি যদি গিথুবের মাধ্যমে দেওয়া কোনও ফাইলের জন্য একই করতে চান:

`This <other.rst#section>`__ is a reference to a section in another
file, which works on github. Unfortunately, it does not work when you
use ``rst2html``.

এখানেও আপনাকে idবিভাগটি প্রদত্ত জানতে হবে । তবে আপনি আরএসটি ফাইলের সাথে লিঙ্ক করেছেন কারণ এটি কেবলমাত্র আরএসটি ফাইল অ্যাক্সেস করার পরে যা এইচটিএমএল তৈরি হয়েছিল। (এই উত্তরটি লেখার সময়, সরাসরি এইচটিএমএল অ্যাক্সেসের অনুমতি নেই))

একটি সম্পূর্ণ উদাহরণ এখানে পাওয়া যায়


9
প্রশ্নের মালিক দ্বারা গৃহীত উত্তরটির চেয়ে আরও ভাল উত্তর। (সত্যটি সত্ত্বেও RST, in General, হতাশাব্যঞ্জক খবর!)
dlm

1
স্পিংক্স .. _my-reference-label:পদ্ধতির একটি অসুবিধা হ'ল লিঙ্কের my-reference-labelপরে URL এ প্রদর্শিত হবে in #সুতরাং একটি অবশ্যই সুন্দর লেবেল নাম ব্যবহার করা উচিত। এছাড়াও, টিওসি সর্বদা একটি-লিঙ্ক তৈরি #করে Section to cross-reference, এবং এর ফলে #একই বিভাগে দুটি পৃথক- লিঙ্কগুলি সমাপ্ত হয়।
st12

3
এবং আপনি যদি নিজের লিঙ্কটিকে একটি আলাদা নাম দিতে চান যা আপনি সর্বদা ব্যবহার করতে পারেন:ref:`Link title <lmy-reference-label>`
হাইপারঅ্যাকটিভ

52

নতুন, 2016 এর জন্য আরও ভাল উত্তর!

Autosection এক্সটেনশন আপনি সহজেই এই কাজ করতে দেয়।

=============
Some Document
=============


Internal Headline
=================

তাহলে পরে...

===============
Some Other Doc
===============


A link-  :ref:`Internal Headline`

এই এক্সটেনশনটি অন্তর্নির্মিত, সুতরাং আপনার যা প্রয়োজন তা সম্পাদনা করা conf.py

extensions = [
    .
    . other
    . extensions
    . already
    . listed
    .
    'sphinx.ext.autosectionlabel',
]

আপনাকে কেবলমাত্র সাবধান হওয়া উচিত তা হ'ল আপনি এখন ডক সংগ্রহের অভ্যন্তরে অভ্যন্তরীণ শিরোনামগুলি নকল করতে পারবেন না। (এটা মূল্যবান।)


5
যেহেতু আমি এই উত্তরটি লিখেছি, আমি অনুশীলনে এই পদ্ধতির সাথে কয়েকটি সমস্যা আবিষ্কার করেছি। প্রথমত, বিভাগটির নামকরণ একটি সমস্যা। দ্বিতীয়ত, আপনার প্রায়শই "আরও শিখুন" বা "ওভারভিউ" এর মতো সংক্ষিপ্ত বিভাগের শিরোনাম রয়েছে যা আপনি ব্যবহার করতে চান, যা আপনি যদি এটি করছেন তবে আপনি পারবেন না। সমাধান: বিভাগটির শিরোনাম যুক্ত করুন / আপনি নাম পরিবর্তন করলে; সংক্ষিপ্ত বিভাগ শিরোনাম (যেমন _page-title-learn-more) জন্য একটি বিভাগ শিরোনাম যুক্ত করুন । এটি কিছুটা বিরক্তিকর, তবে আমি এখনও বেশিরভাগই অটোসেকশনের উপর নির্ভর করতে পছন্দ করি।
অ্যাডাম মাইকেল উড

12
স্পিঙ্কস ১.6 autosectionlabel_prefix_documentকনফিগার বিকল্পটি উপস্থাপন করে যা আপনাকে নথির যে নথিটি এসেছে তার নামের সাথে প্রতিটি বিভাগের লেবেল উপসর্গ করে নকল শিরোনাম ইস্যু এড়াতে দেয় lets
27

2
এটিই সেরা সমাধান। এবং লিঙ্ক শিরোনাম দিয়ে সহজেই পরিবর্তন করা যেতে পারে :ref:`Link title <Internal Headline>`। এছাড়াও, আপনি একটি পৃষ্ঠায় সরাসরি লিঙ্ক করতে পারেন (উদাহরণস্বরূপ :doc:`quickstart`
quickstart.rst

5

উদাহরণ:

Hey, read the :ref:`Installation:Homebrew` section.

যেখানে Homebrewআলাদা নথির ভিতরে একটি বিভাগ রয়েছে Installation.rst

এটি অটোসেকশন বৈশিষ্ট্যটি ব্যবহার করে , তাই config.pyনিম্নলিখিতগুলির সাথে সম্পাদনা করতে হবে :

extensions = [
    'sphinx.ext.autosectionlabel'
]
autosectionlabel_prefix_document = True

২.০.০b১ এ তারা যুক্ত করেছে autosectionlabel_maxdepth, সুতরাং অটোসেকশনেবলের কাজ করার জন্য আপনাকে অবশ্যই এই পরিবর্তনশীলটি> = এ সেট করতে হবে 2। এছাড়াও, দস্তাবেজ subdir করার উত্পন্ন হয়, মত html, আপনি তার নামের সঙ্গে refs পূর্বে ভী আবশ্যক: :ref:'html/Installation:Homebrew'। এই কারণে আপনি generatedএইচটিএমএল ব্যতীত অন্য ফর্ম্যাটগুলির সাথে ব্যবহার করার সময় কিছু জেনেরিক ডির নাম পছন্দ করতে পছন্দ করতে পারেন, যেমন রেফগুলি কম অদ্ভুত দেখাচ্ছে। এ কারণে, আপনি 'Homebrew <Installation.html#Homebrew>'__যথাযথ পুনরায় আরএসটি ব্যবহার করতে এবং স্পিনক্সের সাথে আবদ্ধ না হয়ে থাকতে পারেন।
পগসলে

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