Blogum için <kbd> etiketlerinin kuruluş modunda yazılmasını istiyorum


16

Blogumu org-mode ve org-page ile yazıyorum ve yayınlıyorum. Şey Emacs hakkında yazmak istiyorum ve, Stack Exchange <kbd>etiketi ile yaptığı gibi tuş vuruşlarını vurgulamak istiyorum . Bunu almak: C-x C-fbaşka bir şey yerine!

Bunu hangi yolla veya nasıl başarabilirim?

Yanıtlar:


15

İşte blogum için kullandığım şeyler .

(define-key org-mode-map "\C-ck" #'endless/insert-key)
(defun endless/insert-key (key)
  "Ask for a key then insert its description.
Will work on both org-mode and any mode that accepts plain html."
  (interactive "kType key sequence: ")
  (let* ((is-org-mode (derived-mode-p 'org-mode))
         (tag (if is-org-mode
                  "@@html:<kbd>%s</kbd>@@"
                "<kbd>%s</kbd>")))
    (if (null (equal key "\r"))
        (insert
         (format tag (help-key-description key nil)))
      (insert (format tag ""))
      (forward-char (if is-org-mode -8 -6)))))

Arayarak çağırın C-c k.

  1. Tıpkı yaptığınız gibi bir anahtar C-h kisteyecektir.
  2. Bu anahtarı çıkış <kbd>etiketlerine eklenmiş olarak ekler .
  3. Sadece vurursanız RET, etiketleri ekler ve noktayı içeride bırakır (herhangi bir anahtar eklemek yerine), böylece daha karmaşık anahtarlar yazabilirsiniz.
  4. Dışında kullanılabilir hale getirmek için bile bazı kodları var org-mode!

1
blogunuz harika görünüyor, btw. Org modunda yazıyorsunuz değil mi? nasıl yayınlıyorsun
shackra

2
@JorgeArayaNavarro Çok yamalı bir öküz-jekyll sürümü kullanıyorum . Bu konuda blog yazmak için anlam ifade ettim, ancak yama 200 satır kod içeriyor, bu yüzden biraz meydan okuma olduğu kanıtlandı.
Malabarba

1
Arasındaki fark nedir (define-key org-mode-map (kbd "C-c k") #'endless/insert-key)ve (define-key org-mode-map (kbd "C-c k") 'endless/insert-key)?
shackra

2
@JorgeArayaNavarro Bu yoruma
Malabarba

2
Güzel. Ve ayrı bir etiket olarak sırayla her bir anahtar istiyorsanız, sadece değiştirmek (help-key-description key nil)için(mapconcat 'identity (split-string (help-key-description key nil)) "</kbd><kbd>")
Phil'ler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.