ELisp: html6-mode

By Xah Lee. Date: . Last updated: .

This page shows a very simple example of writing a major mode for emacs.

Suppose you are designing HTML6, and it looks like this:

?xml 「version “1.0” encoding “utf-8”」〕
〔feed 「xmlns “http://www.w3.org/2005/Atom” xml:base “http://xahlee.info/emacs/emacs/”」

  〔title Xah Emacs Blog〕
  〔subtitle Emacs, Emacs, Emacs〕
  〔link 「rel “self” href “http://xahlee.info/emacs/emacs/blog.xml”」〕
  〔link 「rel “alternate” href “http://xahlee.info/emacs/emacs/blog.html”」〕
  〔updated 2017-12-21T11:14:52-08:00〕
  〔author
name Xah Lee〕
   〔uri http://xahlee.info/〕
  〕

  〔id http://xahlee.info/emacs/emacs/blog.html〕
  〔icon http://xahlee.info/favicon.svg〕
  〔rights © 2009 to 2017, Xah Lee〕

  〔entry
title Emacs: Abbrev Mode Tutorial〕
   〔id tag:xahlee.org,2010-09-19:215308〕
   〔updated 2010-09-19T14:53:08-07:00〕
   〔summary tutorial〕
   〔link 「rel “alternate” href “http://xahlee.info/emacs/emacs/emacs_abbrev_mode.html”」〕
  〕
〕

You want to write a emacs major mode to syntax color it.

Here's the code.

;;; xah-html6-mode.el --- Major mode for editing html6. -*- coding: utf-8 -*-

;; http://xahlee.info/comp/html6.html

;;; HISTORY
;; version 0.3, 2016-09-08
;; version 0.1, 2010-12-17

(defvar xah-html6-font-lock-defaults nil "Value for font-lock-defaults.")

(setq xah-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 "HTML6"
  "sample simple mode for html6"
  (setq font-lock-defaults '(xah-html6-font-lock-defaults)))

(provide 'xah-html6)

For a detailed tutorial, see: ELisp: Write a Major Mode for Syntax Coloring.

[see ELisp: Regex Tutorial]