Voglio avere i tag <kbd> per il mio blog scritti in modalità org


16

Scrivo e pubblico il mio blog con org-mode e org-page. Il fatto è che voglio scrivere su Emacs e vorrei che i tasti premuti fossero evidenziati come fa Stack Exchange con il <kbd>tag. Ottenere questo: C-x C-finvece di qualcos'altro!

In che modo o come posso raggiungere questo obiettivo?

Risposte:


15

Ecco cosa uso per il mio blog .

(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)))))

Invocalo chiamando C-c k.

  1. Ti chiederà una chiave proprio come C-h kfarebbe.
  2. Inserisce quella chiave racchiusa tra <kbd>tag di escape .
  3. Se hai appena premuto RET, inserirà i tag e lascerà il punto all'interno (invece di inserire qualsiasi chiave), in modo da poter digitare chiavi più complicate.
  4. Ha anche del codice per renderlo utilizzabile al di fuori org-mode!

1
il tuo blog sembra bello, a proposito. Lo scrivi in ​​modalità org vero? come lo pubblichi?
Shackra,

2
@JorgeArayaNavarro Uso una versione pesantemente modificata di bue-jekyll . Ho intenzione di blog su questo, ma la patch ha 200 righe di codice, quindi si è rivelata una sfida.
Malabarba,

1
Qual è la differenza tra (define-key org-mode-map (kbd "C-c k") #'endless/insert-key)e (define-key org-mode-map (kbd "C-c k") 'endless/insert-key)?
shackra,

2
@JorgeArayaNavarro Vedi la mia risposta a questo commento
Malabarba,

2
Bello. E se vuoi ogni singola chiave della sequenza come tag separato, cambia (help-key-description key nil)in(mapconcat 'identity (split-string (help-key-description key nil)) "</kbd><kbd>")
phils
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.