hack のためのネタ帳, etc,,,

HTML 入力支援

;;; HTML input support
(defun search-tag-backward ()
  "search tag backward"
  (if (re-search-backward "<\\(/?\\)\\([0-9a-zA-Z]+\\)" nil t)
      (list (match-string 1) (match-string 2))
    )
  )
(defun search-unterminatedtag-backward ()
  "search unterminated tag backward"
  ()
  (let (
        (tags 0)
        (term t)
        )
    (while (and (<= tags 0) term)
      (setq term (search-tag-backward))
      (if term
          (setq tags (+ tags (if (string-equal "/" (car term)) -1 1)))
        (setq break t)
        )
      )
    term
    ))
(defun insert-end-tag ()
  "insert terminate tag."
  (interactive)
  (let (
        (p0 (point))
        (tag (search-unterminatedtag-backward))
        )
    (goto-char p0)
    (if tag
        (insert (concat "</" (cadr tag) ">")))
    ))

(global-set-key [?\C-1]          '(lambda () (interactive) (insert "<h1>")))
(global-set-key [?\C-2]          '(lambda () (interactive) (insert "<h2>")))
(global-set-key [?\C-3]          '(lambda () (interactive) (insert "<h3>")))
(global-set-key [?\C-.]          '(lambda () (interactive) (insert-end-tag)))
(global-set-key [?\C-<]          '(lambda () (interactive) (re-search-backward "<")))
(global-set-key [?\C->]          '(lambda () (interactive) (re-search-forward  ">")))
(global-unset-key [?\C-0])
(global-set-key [?\C-0 ?\C-p]    '(lambda () (interactive) (insert "<p></p>") (backward-char 4)))
(global-set-key [?\C-0 C-return] '(lambda () (interactive) (insert "<br>")))
while がダサい(- -;;;)
input とか終了タグがない要素が困る

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます