;;; qq-mode.el --- Modes for creating valid XHTML 1.0 Transitional pages. ;; Author: Rhoderick Espineda ;; Version: 1.0.3 ;; Keywords: XHTML ;; URL: http://www.emacswiki.org/elisp/qq-mode.el ;; Date: March 22, 2004 ;; This file is not part of GNU Emacs. ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; Makes for creating valid XHTML 1.0 Transitional web pages. ;;; Acknowledgement: ;; This code is derived from NCSA html-mode.el made by MarcAndreessen ;; Use M-x qq-mode RET ;; Check the code below for available keybindings. ;;; Code: (defvar qq-mode-map nil) (if qq-mode-map() (setq qq-mode-map (make-sparse-keymap)) (define-key qq-mode-map "\t" 'tab-to-tab-stop) (define-key qq-mode-map "\C-ca" 'qq-skeleton) (define-key qq-mode-map "\C-cs" 'qq-style) (define-key qq-mode-map "\C-cp" 'qq-p) (define-key qq-mode-map "\C-cb" 'qq-b) (define-key qq-mode-map "\C-cn" 'qq-br) (define-key qq-mode-map "\C-cl" 'qq-hl) (define-key qq-mode-map "\C-ci" 'qq-img) (define-key qq-mode-map "\C-cf" 'qq-font) (define-key qq-mode-map "\C-ch" 'qq-href) (define-key qq-mode-map "\C-ct" 'qq-table) (define-key qq-mode-map "\C-cm" 'qq-tm) (define-key qq-mode-map "\C-c&" 'qq-amp) (define-key qq-mode-map "\C-cc" 'qq-copy) (define-key qq-mode-map "\C-c*" 'qq-bullet) (define-key qq-mode-map "\C-c<" 'qq-less-than) (define-key qq-mode-map "\C-c>" 'qq-greater-than) (define-key qq-mode-map "\C-cr" 'qq-referer) (define-key qq-mode-map "\C-cv" 'qq-validator)) (defun qq-skeleton(title) (interactive "sTITLE: ") (let ((start (point))) (insert "\n\n") (insert "\n\n\n\t") (insert "" title "\n\t") (insert "") (insert "\n\t") (insert "\n\t") (insert "\n\t") (insert "\n\t\n") (insert "\n\n\n\t\n") (insert "\n\n"))) (defun qq-style() (interactive) (insert "")) (defun qq-open-field (tag) (let ((start (point))) (insert "<" tag ">") (setq start (point)) (insert "") (push-mark) (goto-char start))) (defun qq-p() (interactive) (qq-open-field "p")) (defun qq-b() (interactive) (qq-open-field "b")) (defun qq-br() (interactive) (insert "
")) (defun qq-hl() (interactive) (insert "")) (defun qq-img (href) (interactive "sURL-img: ") (let ((start (point))) (insert "\"\""))) (defun qq-font() (interactive) (insert "YOUR-TEXT")) (defun qq-href (href title) (interactive "sURL-href: \nsURL-title: ") (let ((start (point))) (insert "" title ""))) (defun qq-table() (interactive) (insert "\n") (insert "\n\n\t\n\t\n\n\n\t") (insert "\n\t\n\n\n
A-1A-2
B-1B-2
")) (defun qq-bullet() (interactive) (insert "•")) (defun qq-amp() (interactive) (insert "&")) (defun qq-copy() (interactive) (insert "©")) (defun qq-tm() (interactive) (insert "™")) (defun qq-less-than() (interactive) (insert "<")) (defun qq-greater-than() (interactive) (insert ">")) (defun qq-referer() (interactive) (insert "

\n\t") (insert "\n

")) (defun qq-validator() (interactive) (insert "")) (defun qq-mode() (interactive) (kill-all-local-variables) (use-local-map qq-mode-map) (setq mode-name "XHTML 1.0 Transitional")) (provide 'qq-mode) ;;; qq-mode.el ends here