** EDIT: ** इस लेखन के बाद से, ऐसा लगता है कि सुविधाओं के हिस्से को सीधे मार्कडाउन-मोड में लागू किया गया है। इस टिप्पणी की जाँच करें , और उसमें लिंक।
विन्यास
दो दृष्टिकोण हैं जो आप ले सकते हैं।
- आप एक कमांड लिख सकते हैं जो मार्कडाउन कोड (शेल कमांड का उपयोग करके) को संकलित करता है और HTML को बफर में प्रदर्शित करता है।
- आप कुछ अनुकूलन एक-la ऑर्ग मोड बफर बनाने के लिए कर सकते हैं देखो गाया markdown की तरह।
मैं यहां बताता हूं कि नंबर को कैसे लागू किया जाए 2. आप सभी नीचे दिए गए कोड को init फाइल में कॉपी कर लें।
फ़ॉन्ट-लॉक नियम जोड़ें
यह चर नियंत्रित करता है कि आप सूचियों को कैसे देखना चाहते हैं। यह सूची को इंडेंट करने के लिए कुछ स्थान जोड़ता है, और एक सुंदर बुलेट-पॉइंट (यदि आपका फ़ॉन्ट इसे प्रदर्शित कर सकता है) का उपयोग करता है।
(defvar endless/bullet-appearance
(propertize (if (char-displayable-p ?•) " •" " *")
'face 'markdown-list-face)
"String to be displayed as the bullet of markdown list items.")
यह वह आदेश है जो वास्तव में नियमों को जोड़ता है। सूचियों के लिए एक और लिंक के लिए एक है।
(require 'rx)
(defvar endless/markdown-link-regexp
"\\[\\(?1:[^]]+\\)]\\(?:(\\(?2:[^)]+\\))\\|\\[\\(?3:[^]]+\\)]\\)"
"Regexp matching a markdown link.")
(font-lock-add-keywords
'markdown-mode
'(("^ *\\(\\*\\|\\+\\|-\\|\\) "
1 `(face nil display ,endless/bullet-appearance) prepend)
(endless/markdown-link-regexp
1 '(face nil display "") prepend))
'append)
लिंक को संपादन योग्य बनाएं
क्योंकि हम display
लिंक का हिस्सा छिपाने के लिए संपत्ति का उपयोग कर रहे हैं, हमें फॉन्ट-लॉक को यह बताने की आवश्यकता है कि जब भी आप लिंक के हिस्से को हटाते हैं, तो उस संपत्ति को मिटा देना चाहिए (इस तरह से हम अभी भी इसे संपादित कर सकते हैं)।
(add-hook 'markdown-mode-hook #'endless/markdown-font-lock)
(defun endless/markdown-font-lock ()
"Configure aggressive font-locking of `markdown-mode'."
(define-key markdown-mode-map "\C-c\C-l" #'endless/markdown-insert-link)
(add-to-list (make-local-variable 'font-lock-extra-managed-props) 'display))
हम इसे आसानी से संपादित करने के लिए एक कमांड को भी परिभाषित कर सकते हैं C-c C-l
, जैसे कि ऑर्ग-मोड में।
(defun endless/markdown-insert-link ()
"Insert or edit link at point."
(interactive)
(if (or (looking-at endless/markdown-link-regexp)
(and (ignore-errors (backward-up-list) t)
(or (looking-at endless/markdown-link-regexp)
(and (forward-sexp -1)
(looking-at endless/markdown-link-regexp)))))
(let ((data (endless/ask-for-link
(match-string-no-properties 1)
(or (match-string-no-properties 2)
(match-string-no-properties 3)))))
(if (match-string-no-properties 2)
(replace-match (cdr data) :fixedcase :literal nil 2)
(replace-match (cdr data) :fixedcase :literal nil 3))
(replace-match (car data) :fixedcase :literal nil 1))
(let ((data (endless/ask-for-link)))
(insert "[" (car data) "](" (cdr data) ")"))))
(defun endless/ask-for-link (&optional name link)
(cons (read-string "Text of the link: " name)
(read-string "URL of the link: " link)))
(वैकल्पिक) कुछ चेहरे कॉन्फ़िगर करें
आपके द्वारा अनुरोधित बिंदुओं के लिए यह पर्याप्त होना चाहिए। यदि आप चाहते हैं कि आपका बफ़र SE मार्कडाउन की तरह और भी अधिक दिखे, तो कॉल करें
M-x customize-group RET markdown-faces
और जो आप फिट देखते हैं उसे बदल दें। मैंने कुछ अपने आप को कॉन्फ़िगर किया, और यहाँ मुझे क्या मिला।
(custom-set-faces
'(markdown-header-face-1 ((t (:inherit markdown-header-face :height 2.0))))
'(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.7))))
'(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.4))))
'(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.1))))
'(markdown-inline-code-face ((t (:inherit font-lock-constant-face :background "gainsboro"))))
'(markdown-link-face ((t (:inherit link))))
'(markdown-pre-face ((t (:inherit font-lock-constant-face :background "gainsboro")))))
परिणाम
यहाँ विन्यास के पहले 2 सेट के बाद आपको क्या मिलेगा:
यहाँ पर आपको चेहरों को कॉन्फ़िगर करने के बाद क्या मिलेगा। यह तर्कपूर्ण है कि क्या यह बेहतर दिखता है, मैं व्यक्तिगत रूप से ऊपर वाले के साथ रहूँगा।