নিম্নলিখিত কমান্ডটি আপনাকে একটি ব্যাক-এন্ড চয়ন করতে দেয় এবং তারপরে প্রতিটি শীর্ষ স্তরের সাবট্রিকে একটি পৃথক ফাইলে রফতানি করে:
(defun org-export-all (backend)
"Export all subtrees that are *not* tagged with :noexport: to
separate files.
Note that subtrees must have the :EXPORT_FILE_NAME: property set
to a unique value for this to work properly."
(interactive "sEnter backend: ")
(let ((fn (cond ((equal backend "html") 'org-html-export-to-html)
((equal backend "latex") 'org-latex-export-to-latex)
((equal backend "pdf") 'org-latex-export-to-pdf))))
(save-excursion
(set-mark (point-min))
(goto-char (point-max))
(org-map-entries (lambda () (funcall fn nil t)) "-noexport" 'region-start-level))))
এটি বর্তমানে এইচটিএমএল ( html
), লটেক্স ( latex
) এবং পিডিএফ ( pdf
) এক্সপোর্ট সমর্থন করে। আপনি আরও ক্লজ যুক্ত করে আরও ব্যাক-এন্ডের জন্য সমর্থন যুক্ত করতে পারেন cond
।
যেহেতু ডক্টরিং বলেছেন, প্রতিটি সাবট্রির জন্য আপনার :EXPORT_FILE_NAME:
যে ফাইলটি রফতানি করতে চান তার জন্য সম্পত্তি সেট করতে হবে। (অন্যান্য বিকল্পের জন্য নীচে দেখুন।)
শিরোনাম পাঠ্য থেকে রফতানি ফাইলের নাম স্বয়ংক্রিয়ভাবে উত্পন্ন হচ্ছে
আপনি যদি :EXPORT_FILE_NAME:
প্রতিটি শীর্ষ-স্তরের শিরোনামে বৈশিষ্ট্য যুক্ত করতে না চান তবে আপনি org-export-all
স্বয়ংক্রিয়ভাবে ফাইলের নাম উত্পাদন করতে সংশোধন করতে পারেন যেমন শিরোনাম পাঠ্য, :EXPORT_FILE_NAME:
রফতানির সময় অস্থায়ীভাবে সেট করে:
(defun org-export-all (backend)
"Export all subtrees that are *not* tagged with :noexport: to
separate files.
Subtrees that do not have the :EXPORT_FILE_NAME: property set
are exported to a filename derived from the headline text."
(interactive "sEnter backend: ")
(let ((fn (cond ((equal backend "html") 'org-html-export-to-html)
((equal backend "latex") 'org-latex-export-to-latex)
((equal backend "pdf") 'org-latex-export-to-pdf)))
(modifiedp (buffer-modified-p)))
(save-excursion
(set-mark (point-min))
(goto-char (point-max))
(org-map-entries
(lambda ()
(let ((export-file (org-entry-get (point) "EXPORT_FILE_NAME")))
(unless export-file
(org-set-property
"EXPORT_FILE_NAME"
(replace-regexp-in-string " " "_" (nth 4 (org-heading-components)))))
(funcall fn nil t)
(unless export-file (org-delete-property "EXPORT_FILE_NAME"))
(set-buffer-modified-p modifiedp)))
"-noexport" 'region-start-level))))
এই ফাংশনটি শিরোনাম পাঠ্যে "_" দিয়ে স্পেস প্রতিস্থাপন করে রফতানীর ফাইলের নাম তৈরি করে। আপনি যদি ফাইলের replace-regexp-in-string
নামটি অন্য কোনও উপায়ে উত্পন্ন করতে চান তবে সেক্সপকে নিজের পছন্দমতো পরিবর্তন করুন ।
:EXPORT_FILE_NAME:
সেট করার সময় উত্পন্ন হচ্ছে:CUSTOM_ID:
নিম্নলিখিত পরামর্শ সহ, আপনি সেট করার সময় org-set-property
স্বয়ংক্রিয়ভাবে একটি উপযুক্ত মান :EXPORT_FILE_NAME:
সেট করবে :CUSTOM_ID:
:
(defadvice org-set-property (after set-export-file-name
(property value) activate compile)
(when (equal org-last-set-property "CUSTOM_ID")
(let ((export-file-name
(concat (org-entry-get nil "CUSTOM_ID")
"-"
(replace-regexp-in-string " " "-" (downcase (org-get-heading t t))))))
(org-entry-put nil "EXPORT_FILE_NAME" export-file-name))))
নোট করুন :EXPORT_FILE_NAME:
যে এটির সাথে কোনও ফাইল এক্সটেনশান যুক্ত হবে না তবে এটি বিবেচ্য নয় কারণ নির্দিষ্ট ব্যাক-এন্ডে রফতানি করার org-mode
সময় ফলাফল প্রাপ্ত ফাইলগুলির জন্য স্বয়ংক্রিয়ভাবে সঠিক এক্সটেনশনটি বেছে নেবে ।
অতিরিক্ত তথ্য
বিদ্যমান সাবট্রিজগুলি বাল্কে আপডেট করা
আপনার কাছে :EXPORT_FILE_NAME:
সম্পত্তি সংস্থান করতে হবে এমন প্রচুর বিদ্যমান সাবট্রিজগুলি যদি থাকে তবে আপনি একটি কীবোর্ড ম্যাক্রো ব্যবহার করতে পারেন । প্রথম সাবট্রির উপর অবস্থান পয়েন্ট, তারপরে নিম্নলিখিতটি করুন:
F3
... রেকর্ডিং শুরু করতে
C-c C-x p CUSTOM_ID
RET RET
... :EXPORT_FILE_NAME:
ভিত্তিক ইম্যাকস সেট করতে :CUSTOM_ID:
।
C-c C-f
... পরবর্তী শীর্ষ স্তরের শিরোনামে যেতে।
F4
... রেকর্ডিং বন্ধ
পরবর্তী সাবট্রির জন্য ম্যাক্রোর পুনরাবৃত্তি করতে টিপুন F4। সমস্ত অবশিষ্ট সাবট্রির জন্য ম্যাক্রোর পুনরাবৃত্তি করতে টিপুন M-0 F4(এটি একটি শূন্য)।
ভবিষ্যতের সেশনের জন্য ম্যাক্রোগুলি সংরক্ষণ করা হচ্ছে
ডিফল্টরূপে, কীবোর্ড ম্যাক্রোগুলি সেশনে জুড়ে সংরক্ষণ করা হয় না। পরে আপনার ব্যবহারের জন্য আপনার init-ফাইলটিতে ম্যাক্রো সঞ্চয় করতে, এটি করুন:
ম্যাক্রোর নাম দিন:
M-x name-last-kbd-macro
RET org-set-export-file-name
RET
আপনার আর-ফাইলটি সন্ধান করুন এবং এমন কোনও জায়গায় যান যেখানে আপনি ম্যাক্রো roোকাতে চান।
ম্যাক্রো Inোকান:
M-x insert-kbd-macro
RET org-set-export-file-name
RET
ইমাসগুলি নিম্নলিখিত কোডটি বিন্দুতে প্রবেশ করবে:
(fset 'org-set-export-file-name
"\C-c\C-xpCUSTOM_ID\C-m\C-m\C-c\C-f")
যদি আপনি যথেষ্ট পরিমাণে স্ক্রিন্ট করে থাকেন তবে আপনি দেখতে পাচ্ছেন যে দ্বিতীয় তর্কটিতে fset
কীগুলির ক্রম রয়েছে যা আপনি ম্যাক্রো রেকর্ড করার সময় চাপিয়েছিলেন :)
(Alচ্ছিক) সেরা ফলাফলের জন্য, আপনি org-set-export-file-name
কোনও কীতে বাঁধতে চাইতে পারেন :
(define-key org-mode-map (kbd "<f6>") 'org-set-export-file-name)
সংরক্ষণ.
:EXPORT_FILE_NAME:
সম্পত্তি সেট করবেন সে সম্পর্কে আপনি আমাকে একটি ইঙ্গিত দিতে পারেন:CUSTOM_ID:+heading-title-lowercased
?