Org-মোডের জন্য রফতানি করা এইচটিএমএল ফাইলে উত্স কোড ব্লকের সিনট্যাক্স হাইলাইট এবং ইন্ডেন্টেশন


9

যখন আমি একটি org- মোড ফাইলের মধ্যে সি কোড ব্লক sertোকি, উত্স কোডের সিনট্যাক্স হাইলাইট এবং ইন্ডেন্টেশনটি আমি যেমন চাইতাম তেমন কাস্টমাইজ করা হয়।

  1. আমি যখন এটি কোনও এইচটিএমএল ফাইলে রফতানি করি তখন এইচটিএমএল ফাইলে সিনট্যাক্স হাইলাইটটি ইমাসের মতো হয় is তবে সিনট্যাক্স হাইলাইটটি আমার ইমাসের রঙ-থিমের সাথে আরও ভাল কাজ করে। উদাহরণস্বরূপ, {আমার সি কোড ব্লকে প্রতীকটি সাদা, তবে আমার রঙ-থিমটি অন্ধকার, যদি আমি এটি এইচটিএমএলে রফতানি করি তবে এইচটিএমএল ফাইলের পটভূমিটিও সাদা, এর অর্থ, আপনি {উত্স কোড ব্লকে দেখতে পাচ্ছেন না এক্সপোর্ট করা এইচটিএমএল এমনকি ভেবেছিল এটি সেখানে রয়েছে।

  2. উত্স কোডের ইন্ডেন্টেশনটি আমার ইমাসগুলিতে স্বাভাবিক (যেমন আমি এটি কাস্টমাইজ করেছি) তবে এক্সপোর্ট করা এইচটিএমএল ফাইলে উত্স কোডের ইন্ডেন্টেশন আলাদা হবে, এটি ইনডেন্টেশনের জন্য আরও স্পেস যুক্ত করে

  3. যদি আমি একই org ফাইলটি রফতানি করি তবে emacs -qতারা রফতানি করা এইচটিএমএল ফাইলে স্বাভাবিক, তবে উত্স কোডের সিনট্যাক্স হাইলাইট এবং ইনডেন্টেশন হবে defaultইমাক্সের কনফিগারেশন। সুতরাং এর অর্থ হ'ল ফন্ট-ফেস কনফিগারেশনগুলি init.elপ্রভাবিত করবে org-export

সুতরাং আমার প্রশ্নটি হ'ল: আমি যখন একটি org- মোড ফাইল রফতানি করি যেখানে সোর্স কোড ব্লক এইচটিএমএল ফাইলের মধ্যে থাকে (বা সম্ভবত অন্যান্য ফর্ম্যাট যেমন পিডিএফ হিসাবেও থাকে), তখন কি ফন্ট-ফেসগুলির নিজস্ব নিজস্ব কনফিগারেশন থেকে মুক্তি পাওয়া সম্ভব? উত্স কোড এবং এটি হিসাবে হিসাবে না emacs -q?

আপডেট :

দ্বিতীয় সমস্যাটি (setq org-src-preserve-indentation t)হয় init ফাইলটিতে সেট করে অথবা M-:( eval-expression) এর মাধ্যমে চালিয়ে সমাধান করা হবে ।

আপডেট 2 :

থিম অনুযায়ী org- রফতানি <কোড> ব্লকের ব্যাকগ্রাউন্ড সেট করে প্রথম সমস্যাটি সমাধান করা হবে ।

তৃতীয় সমস্যাটি গুরুত্বপূর্ণ নয় যদি প্রথম এবং দ্বিতীয় সমস্যাগুলি সমাধান করা হয়।

উত্তর:


10

এই স্প্যানস এলিজ্প, org- মোড এবং CSS কাস্টমাইজেশনের জন্য সমাধান The

elisp

ডিফল্টরূপে, ফন্টিফিকেশন তথ্য রফতানি করা HTML ফাইলটিতে এম্বেড করা থাকে e আমাদের এটি অক্ষম করতে হবে এবং org- মোডটি বলতে হবে যে আমরা একটি বাহ্যিক CSS ফাইল ব্যবহার করে ফন্ট ফর্ম্যাট করার তথ্য নির্দিষ্ট করার পরিকল্পনা করছি।

আমি org-স্ট্রিং সহ এইচটিএমএল শ্রেণীর নাম উপসর্গ করা বেছে নিয়েছি ।

;; (setq org-html-htmlize-output-type 'inline-css) ;; default
(setq org-html-htmlize-output-type 'css)
;; (setq org-html-htmlize-font-prefix "") ;; default
(setq org-html-htmlize-font-prefix "org-")

সংস্থা-মোড

Org-file এ আপনি কোন সিএসএস ফাইল ব্যবহার করবেন তা নির্দিষ্ট করে দিন। এই ফাইলটিতে আপনি প্রতিটি org-শ্রেণিকে কীভাবে ফর্ম্যাট করতে চান সে সম্পর্কিত তথ্য থাকবে ।

# My custom fontification theme
#+HTML_HEAD: <link href="path/to/your/custom/theme.css" rel="stylesheet">

CSS

এখানে আমার কাস্টম থিম সিএসএস ফাইল যাতে আমি রঙিন কোডগুলি কপি করেছি leuven-theme। আপনি আমার গিট থেকে নীচের সিএসএসের সর্বশেষতম সংস্করণটি পেতে পারেন ।

/* Set the colors in <pre> blocks from the Leuven theme */
pre                                      {background-color:#FFFFFF;}
pre span.org-builtin                     {color:#006FE0;font-weight:bold;}
pre span.org-string                      {color:#008000;}
pre span.org-keyword                     {color:#0000FF;}
pre span.org-variable-name               {color:#BA36A5;}
pre span.org-function-name               {color:#006699;}
pre span.org-type                        {color:#6434A3;}
pre span.org-preprocessor                {color:#808080;font-weight:bold;}
pre span.org-constant                    {color:#D0372D;}
pre span.org-comment-delimiter           {color:#8D8D84;}
pre span.org-comment                     {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-1            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-2            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-3            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-4            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-5            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-6            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-7            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-8            {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-9            {color:#8D8D84;font-style:italic}
pre span.org-rainbow-delimiters-depth-1  {color:#707183;}
pre span.org-rainbow-delimiters-depth-2  {color:#7388d6;}
pre span.org-rainbow-delimiters-depth-3  {color:#909183;}
pre span.org-rainbow-delimiters-depth-4  {color:#709870;}
pre span.org-rainbow-delimiters-depth-5  {color:#907373;}
pre span.org-rainbow-delimiters-depth-6  {color:#6276ba;}
pre span.org-rainbow-delimiters-depth-7  {color:#858580;}
pre span.org-rainbow-delimiters-depth-8  {color:#80a880;}
pre span.org-rainbow-delimiters-depth-9  {color:#887070;}
pre span.org-sh-quoted-exec              {color:#FF1493;}

আমি কি emacs -qপরিবর্তে ডিফল্ট স্টাইলটি ব্যবহার করতে পারি custom/theme.css?
কোডিচান

ডিফল্ট স্টাইলটি হ'ল বর্তমান ইমাস থিমটি ব্যবহার করা। আপনি ডিফল্ট emacs_default_theme.css
কুশাল মোদী

1
আমি এটি চেষ্টা করি নি তবে আপনি সম্ভবত org-html-fontify-codeএটির পুনরায় সংজ্ঞা দিতে পারেন যে এটি ফন্টিফিকেশনের আগে ডিফল্ট থিম সেট করে এবং তারপরে পূর্ববর্তী থিমটি পুনরুদ্ধার করে।
কুশল মোদী

এটি org মোড no-theme-inherit# + BEGIN_SRC- তে কোনও যুক্তি স্বীকার করে নিলে এটি সত্যিই কার্যকর হবে , উদাহরণস্বরূপ #+BEGIN_SRC haskell no-theme-inherit .. #+END_SRC, এই ক্ষেত্রে হ্যাস্কেলের ক্ষেত্রে কোডটির জন্য কেবল ইমাস ডিফল্ট ফন্টিফিকেশন তথ্য ব্যবহার করা হয়েছে।
রব স্টুয়ার্ট

আমি উল্লেখ করতে চাই যে উপরের সিএসএসের নিয়মিত কোড পাঠ্যের কোনও প্রবেশ নেই এবং এটি কেবল কালো প্রদর্শিত হচ্ছে। এটি প্রবেশদ্বারটি পেয়ে ভাল লাগবে। আমি প্রতিটি এন্ট্রি কাস্টমাইজ করতে সক্ষম, উদাহরণস্বরূপ প্রাক span.org- ফাংশন-নাম {রঙ: rgb (255,000,255);} তবে আমি বেশিরভাগ কোডের কালো রঙ পরিবর্তন করতে পারি না। কি span.org - ??? তা কি হবে?
স্টিভ

2

রঙিন ইস্যুটির জন্য আমি একটি সহজ সমাধান / কার্যকারিতা পেয়েছি। রফতানির আগে, থিমটি টাইপ করুন M-x customize-themesএবং চালু করুন leuven। এটি হালকা ব্যাকগ্রাউন্ড সহ একটি থিম যা সাদা কাগজে মুদ্রণ কোডের জন্য উপযুক্ত বলে মনে হয়। রফতানির পরে, থিমটি আবার বন্ধ করুন, এবং আপনি আপনার মূল রঙগুলি নিয়ে ফিরে আসবেন।

আমি একরকম ধরে নিয়েছিলাম যে রফতানির জন্য আমাকে কিছু জটিল পদ্ধতিতে স্যুইচিং কনফিগারেশন নিয়ে আসতে হবে, তাই আমি স্বস্তি পেয়েছি যে এটি এত সহজ ছিল!

আপনি যদি এটি প্রায়শই করেন তবে এইচটিএমএল রফতানি ফাংশনটি স্বয়ংক্রিয়ভাবে এটি করার পরামর্শ দেওয়া উচিত:

(defvar my-org-html-export-theme 'tsdh-light)

(defun my-with-theme (orig-fun &rest args)
  (load-theme my-org-html-export-theme)
  (unwind-protect
      (apply orig-fun args)
    (disable-theme my-org-html-export-theme)))

(with-eval-after-load "ox-html"
  (advice-add 'org-export-to-buffer :around 'my-with-theme))

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

1
হ্যাঁ, আমি রফতানি ফাংশনটি পরামর্শ দিয়ে শেষ করেছি: github.com/legoscia/dotemacs/blob/master/…
লেগোস্কিয়া

ঠিক আছে - এছাড়াও একটি সমাধান। তবে, কেন উপরের রুটগুলি অনুসরণ করে কিছু হালকা থিমের ভিত্তিতে একটি কাস্টম সিএসএস ব্যবহার করবেন না?
ক্রিশ্চিয়ান হেরেনজ

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