Org- মোডে মার্কডাউন স্টাইলের লিঙ্ক আইডি কীভাবে প্রয়োগ করবেন?


22

অনেক সময়, আমাকে দীর্ঘ দস্তাবেজের একাধিক জায়গায় একই লিঙ্কটি ব্যবহার করতে হবে।

এই ক্ষেত্রেগুলিতে মার্কডাউনের মতো লিঙ্ক আইডি থাকা কার্যকর হবে। থেকে markdown সিনট্যাক্স সুত্র ,

বন্ধনীগুলির সেট পৃথক করতে আপনি বিকল্পভাবে একটি স্থান ব্যবহার করতে পারেন:

This is [an example] [id] reference-style link. 

তারপরে, নথির যে কোনও জায়গায় আপনি নিজের লিঙ্কের লেবেলটি নিজের দ্বারা একটি লাইনে সংজ্ঞায়িত করুন:

[id]: http://example.com/ "Optional Title Here"

আমার বিশ্বাস ছিল যে org-মোডে লিংক সংক্ষিপ্তকরণ একইভাবে কাজ করবে (ট্যাগ ছাড়াই) তবে তা হয় না।

লিঙ্ক আইডিগুলির উদ্দেশ্য লিঙ্কগুলি সম্পাদনা করার জন্য একটি কেন্দ্রীয় জায়গা থাকা। একটি ভাল অবস্থান নথির শেষে হবে। সম্পূর্ণ লিঙ্কগুলি আইডিতে সংজ্ঞায়িত করা হয় তবে কেবলমাত্র আইডিটি নথির অন্যত্র ব্যবহৃত হয় যেখানে আমাদের হাইপারলিঙ্কগুলি রাখতে হবে। রফতানি করার সময়, আইডিগুলি প্রকৃত হাইপারলিংকের সাথে প্রতিস্থাপন করা হয়।

এই পদ্ধতির সুবিধা হ'ল,

  • লিঙ্কগুলি পরিবর্তিত হলে, আমাদের কেবল আইডি সংজ্ঞাটি সংশোধন করতে হবে। রফতানির সময়, দস্তাবেজের হাইপারলিঙ্কগুলি এতে আপডেট হবে।
  • দস্তাবেজটি লেখার সময় দ্রুত হাইপারলিংক সন্নিবেশ প্রতিবারের জন্য সম্পূর্ণ লিঙ্কগুলি পেতে এবং পেস্ট করতে হয় না। আপনি নথিতে আইডি টাইপ করুন এবং নথির শেষে একটি ব্লকে এগুলি সংজ্ঞায়িত করুন।

এটি কি ব্যবহারের জন্য বা রফতানির জন্য?
মালাবারবা

ব্যবহার রফতানির জন্য। লক্ষ্যটি হ'ল লিঙ্কটি সম্পাদনা করার জন্য একটি জায়গা রয়েছে এবং আমি আইপিটি যেখানে হাইপারলিংকগুলি রাখতে চাই সেগুলি ব্যবহার করি। আপাতত আমি কেবল org মোড ম্যাক্রোগুলি ব্যবহার করি যা প্রসারিত হয় [[Link][Link Name]]। তবে মার্কডাউনের মতো আইডি অ্যাপ্রোচ ক্লিনার হবে।
দক্ষ মোদী 10

এটি আমার কাছে অনেকটা পাদটীকার মতো দেখাচ্ছে। কিছু অন্যান্য সম্ভাব্যতা যা কাজ করতে পারে তা হ'ল রেডিও টার্গেটগুলি ( orgmode.org/manual/Radio-targets.html#Radio-targets ) বা <<targets>> orgmode.org/manual/Intern-links.html# অভ্যন্তরীণ-লিঙ্কগুলির অভ্যন্তরীণ লিঙ্কগুলি ।
জন কিচিন

উত্তর:


20

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

#+LINK-ID: wiki http://www.emacswiki.org

এবং এই মত আহ্বান

[[lid:wiki][You should check out the wiki]]

প্রথমে আপনাকে org কে কীভাবে অনুসরণ করতে হয় এবং কীভাবে আপনার লিঙ্কটি রফতানি করতে হয় তা জানান।

(org-add-link-type "lid" 'endless/open-id-link 'endless/export-id-link)

(defun endless/open-id-link (path)
  "Follow an ID link to PATH."
  (browse-url (endless/find-id-link path)))

(defun endless/export-id-link (path desc format)
  "Create the export version of an ID link specified by PATH and DESC.
FORMATs understood are 'latex and 'html."
  (setq path (endless/find-id-link path))
  (cond
   ((eq format 'html) (format "<a href=\"%s\">%s</a>" path desc))
   ((eq format 'latex) (format "\\href{%s}{%s}" path desc))
   (t desc)))

তারপরে, আপনাকে কীভাবে এই লিঙ্কটি পরিচালনা করতে চান তা ঠিক করতে হবে ।

(defun endless/find-id-link (id &optional noerror)
  "Find \"#+LINK-ID: ID\" in current buffer and return the link.
Unless NOERROR is non-nil, throw an error if link not found."
  (save-excursion
    (goto-char (point-min))
    (let ((case-fold-search t))
      (when (search-forward-regexp 
             (format "^#\\+LINK-ID: \\b%s\\b +\\(.*\\) *$" id)
             nil noerror)
        (match-string-no-properties 1)))))

আপনি যে শিরোনামটি ব্যবহার করেছেন তাতে কী ব্যবহৃত হবে তা আমি নিশ্চিত নই। আপনি যদি আমাকে জানান তবে আমি এটিতে যুক্ত করতে পারি
মালাবরবা

1
আমি লক্ষ্য করেছি যে বিদ্যমান রফতানি ফাংশনের উদাহরণগুলির জন্য: ডকভিউ, বিবিডিবি, org-add-link-typeফাংশন কল সহ তারাও করে (add-hook 'org-store-link-functions 'org-LINKTYPE-store-link)
कौशल মোদী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.