Ich möchte, dass die <kbd> -Tags für mein Blog im Organisationsmodus geschrieben werden

16

Ich schreibe und veröffentliche mein Blog mit org-mode und org-page. Die Sache ist, dass ich über Emacs schreiben möchte und ich möchte, dass die Tastenanschläge hervorgehoben werden, wie dies bei Stack Exchange mit dem <kbd>Tag der Fall ist . Erhalten dieses: C-x C-fanstelle von noch etwas!

Auf welche Weise oder wie könnte ich das erreichen?

shackra
quelle

Antworten:

15

Folgendes verwende ich für meinen 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)))))

Rufen Sie es auf, indem Sie anrufen C-c k.

  1. Es fordert Sie zur Eingabe eines Schlüssels auf, wie C-h kdies auch der Fall ist.
  2. Es fügt den Schlüssel ein, der in Escape- <kbd>Tags eingeschlossen ist.
  3. Wenn Sie nur drücken RET, werden die Tags eingefügt, und der Punkt bleibt innen (anstatt einen Schlüssel einzufügen), sodass Sie kompliziertere Schlüssel eingeben können.
  4. Es hat sogar einen Code, um es außerhalb von nutzbar zu machen org-mode!
Malabarba
quelle
1
Ihr Blog scheint übrigens cool. Du schreibst es im Org-Modus oder? Wie veröffentlichen Sie es?
Shackra
2
@JorgeArayaNavarro Ich benutze eine stark gepatchte Version von Ochsen-Jekyll . Ich hatte vor, darüber zu bloggen, aber der Patch enthält 200 Codezeilen, was sich als Herausforderung herausgestellt hat.
Malabarba
1
Was ist der Unterschied zwischen (define-key org-mode-map (kbd "C-c k") #'endless/insert-key)und (define-key org-mode-map (kbd "C-c k") 'endless/insert-key)?
Shackra
2
@JorgeArayaNavarro Siehe meine Antwort auf diesen Kommentar
Malabarba
2
Nett. Und wenn Sie möchten, dass jeder einzelne Schlüssel in der Sequenz als separates Tag (help-key-description key nil)(mapconcat 'identity (split-string (help-key-description key nil)) "</kbd><kbd>")
angezeigt wird