org-mode로 작성된 블로그의 <kbd> 태그를 갖고 싶습니다


16

org-mode 및 org-page로 내 블로그를 작성하고 게시합니다. 문제는 Emacs에 대해 쓰고 싶고 Stack Exchange가 <kbd>태그로 수행하는 것처럼 키 입력을 강조 표시하고 싶습니다 . 이것을 얻는 것 : C-x C-f다른 것 대신에!

어떤 방법 또는 방법으로 이것을 달성 할 수 있습니까?

답변:


15

블로그에 사용하는 내용은 다음과 같습니다 .

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

을 호출하여 호출하십시오 C-c k.

  1. 키를 입력하라는 메시지 C-h k가 표시됩니다.
  2. 이스케이프 된 키를 이스케이프 된 <kbd>태그 에 삽입 합니다.
  3. 방금 누르면 RET키를 삽입하는 대신 태그를 삽입하고 내부에 포인트를 남겨 두므로 더 복잡한 키를 입력 할 수 있습니다.
  4. 외부에서도 사용할 수 있도록 코드가 있습니다 org-mode!

1
블로그가 멋지다. 당신은 org-mode에 맞습니까? 어떻게 게시합니까?
shackra

2
@JorgeArayaNavarro 나는 ox-jekyll 의 패치가 많은 패치를 사용합니다 . 나는 그것에 대해 블로그를 의미했지만 패치에는 200 줄의 코드가 있으므로 약간 도전적인 것으로 판명되었습니다.
Malabarba

1
차이 무엇 (define-key org-mode-map (kbd "C-c k") #'endless/insert-key)(define-key org-mode-map (kbd "C-c k") 'endless/insert-key)?
shackra

2
@JorgeArayaNavarro 이 코멘트에
Malabarba

2
좋은. 시퀀스의 각 개별 키를 별도의 태그로 사용 (help-key-description key nil)하려면(mapconcat 'identity (split-string (help-key-description key nil)) "</kbd><kbd>")
phils로
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.