This page shows a very simple example of writing a major mode for emacs.
Here's the HTML 6 spec: HTML6: Your JSON and SXML Simplified.
Here's html6 mode source code:
;;-*- coding: utf-8 -*- ;; xah-html6-mode.el -- Major mode for editing html6. ;; http://xahlee.org/comp/html6.html ;;; HISTORY ;; version 0.2, 2011-05-27 ;; version 0.1, 2010-12-17 (defvar html6-font-lock-defaults nil "Value for font-lock-defaults.") (setq html6-font-lock-defaults '(("〔\\([^ ]+?\\) " . (1 font-lock-function-name-face)) ("“\\([^ ]+?\\)”" . (1 font-lock-string-face)) ("「\\([^」]+\\)」" . (1 font-lock-variable-name-face)) ) ) (define-derived-mode xah-html6-mode fundamental-mode (setq font-lock-defaults '(html6-font-lock-defaults)) (setq mode-name "HTML6") ) (provide 'html6)
Here's how it colors:
〔?xml 「version “1.0” encoding “utf-8”」〕 〔feed 「xmlns “http://www.w3.org/2005/Atom” xml:base “http://xahlee.org/emacs/”」 〔title Xah's Emacs Blog〕 〔subtitle Emacs, Emacs, Emacs〕 〔link 「rel “self” href “http://xahlee.org/emacs/blog.xml”」〕 〔link 「rel “alternate” href “http://xahlee.org/emacs/blog.html”」〕 〔updated 2010-09-19T14:53:08-07:00〕 〔author 〔name Xah Lee〕 〔uri http://xahlee.org/〕 〕 〔id http://xahlee.org/emacs/blog.html〕 〔icon http://xahlee.org/ics/sum.png〕 〔rights © 2009, 2010 Xah Lee〕 〔entry 〔title Using Emacs Abbrev Mode for Abbreviation〕 〔id tag:xahlee.org,2010-09-19:215308〕 〔updated 2010-09-19T14:53:08-07:00〕 〔summary tutorial〕 〔link 「rel “alternate” href “http://xahlee.org/emacs/emacs_abbrev_mode.html”」〕 〕 〕
Latest version: http://code.google.com/p/ergoemacs/source/browse/packages/xah-html6-mode.el
For a detailed tutorial, see: How to Write a Emacs Major Mode for Syntax Coloring.