X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fest.git;a=blobdiff_plain;f=cwiki-common.el;h=a5fc345fb72782dc5b957b3b4d217c6349919c19;hp=2579d22089e70721649af2ae95cd60e14a00f22e;hb=1676f6df6efd7fb0c9cb19805c2f3370aa71f395;hpb=b9262126891799cc1a7a65d89a40aea07336cc84 diff --git a/cwiki-common.el b/cwiki-common.el index 2579d22..a5fc345 100644 --- a/cwiki-common.el +++ b/cwiki-common.el @@ -1,8 +1,16 @@ ;; -*- coding: utf-8-mcs-er -*- (require 'char-db-util) +(require 'chiset-common) +;; (require 'concord-images) (setq file-name-coding-system 'utf-8-mcs-er) +(concord-assign-genre 'code-point "/usr/local/var/chise-ipld/db") +(concord-assign-genre 'coded-character "/usr/local/var/chise-ipld/db") +(concord-assign-genre 'glyph "/usr/local/var/chise-ipld/db") + +(concord-assign-genre 'image-resource "/usr/local/var/photo/db") +(concord-assign-genre 'glyph-image "/usr/local/var/photo/db") (concord-assign-genre 'creator@ruimoku "/usr/local/var/ruimoku/db") (concord-assign-genre 'person-name@ruimoku "/usr/local/var/ruimoku/db") @@ -32,9 +40,28 @@ (mount-char-attribute-table '*instance@morpheme-entry/zh-classical) +(concord-assign-genre 'ud@zh-classical "/usr/local/var/kanbun/db") + + +(concord-assign-genre 'hng-card "/usr/local/var/hng-card/db") (mount-char-attribute-table '->HNG) (mount-char-attribute-table '<-HNG) +(mount-char-attribute-table '->HNG@CN/manuscript) +(mount-char-attribute-table '<-HNG@CN/manuscript) +(mount-char-attribute-table '->HNG@CN/printed) +(mount-char-attribute-table '<-HNG@CN/printed) +(mount-char-attribute-table '->HNG@JP/manuscript) +(mount-char-attribute-table '<-HNG@JP/manuscript) +(mount-char-attribute-table '->HNG@JP/printed) +(mount-char-attribute-table '<-HNG@JP/printed) +(mount-char-attribute-table '->HNG@KR) +(mount-char-attribute-table '<-HNG@KR) +(mount-char-attribute-table '->HNG@MISC) +(mount-char-attribute-table '<-HNG@MISC) + +(mount-char-attribute-table 'abstract-glyph@iwds-1) +(mount-char-attribute-table 'abstract-glyph@iwds-1/confluented) (defvar est-hide-cgi-mode nil) @@ -42,14 +69,23 @@ (defvar chise-wiki-view-url "view.cgi") (defvar chise-wiki-edit-url "edit.cgi") -(defvar chise-wiki-bitmap-glyphs-url - "http://www.chise.org/glyphs") +(defvar chise-wiki-bitmap-glyph-image-url + "https://image.chise.org/glyphs") + +(defvar chise-wiki-legacy-bitmap-glyphs-url + "https://www.chise.org/glyphs") (defvar chise-wiki-hng-bitmap-glyphs-url - "http://hng.chise.org/glyphs/HNG") + "https://image.hng-data.org/glyphs/HNG") + +(defvar chise-wiki-daijiten-bitmap-glyphs-url + "https://image.hng-data.org/glyphs/daijiten") + +(defvar chise-wiki-glyphwiki-glyph-image-url + "https://glyphwiki.org/glyph") (defvar chise-wiki-glyph-cgi-url - "http://www.chise.org/chisewiki/glyph.cgi") + "https://www.chise.org/chisewiki/glyph.cgi") (defvar chise-wiki-displayed-features nil) @@ -68,8 +104,8 @@ =zinbun-oracle =>zinbun-oracle =daikanwa =gt =gt-k - =>>>adobe-japan1 - =>>>jis-x0208 =>>>jis-x0213-1 =>>>jis-x0213-2 + ==adobe-japan1 + ==jis-x0208 ==jis-x0213-1 ==jis-x0213-2 =>>jis-x0208 =>>jis-x0213-1 =>>jis-x0213-2 =>>adobe-japan1 =+>jis-x0208 =+>jis-x0213-1 =+>jis-x0213-2 @@ -79,10 +115,11 @@ =>>gt =>ucs@iso =>ucs@unicode =>ucs@jis =>ucs@cns =>ucs@ks + =+>ucs@iso =+>ucs@unicode =>>ucs@iso =>>ucs@unicode =>>ucs@jis =>>ucs@cns =>>ucs@ks - =>>>ucs@iso =>>>ucs@unicode - =>>>ucs@jis =>>>ucs@cns =>>>ucs@ks + ==ucs@iso ==ucs@unicode + ==ucs@jis ==ucs@cns ==ucs@ks ===ucs@iso =ruimoku-v6 =big5 @@ -93,7 +130,43 @@ ===mj =ucs-itaiji-001 =ucs-itaiji-002 - =ucs-itaiji-003)) + =ucs-itaiji-003 + =ucs-itaiji-004 + =ucs-itaiji-005 + =ucs-itaiji-006 + =ucs-itaiji-007 + =ucs-itaiji-008 + =ucs-itaiji-009 + =ucs-itaiji-010 + =ucs-itaiji-011 + =ucs-itaiji-084 + =ucs-var-001 + =ucs-var-002 + =ucs-var-003 + =ucs-var-004 + =ucs-var-010 + =ucs@unicode + ==ucs@unicode + ===ucs@unicode + ==>daijiten + ==>ucs@bucs + ===daikanwa/+p + ===gt + =>ucs@iwds-1 + =>ucs@component + =>ucs@cognate + =>ucs-itaiji-001 + =>ucs-itaiji-002 + =>ucs-itaiji-003 + =>ucs-itaiji-004 + =>ucs-itaiji-005 + =>ucs-itaiji-006 + =>ucs-itaiji-007 + =>ucs-itaiji-008 + ===adobe-japan1 + ===cns11643-1 ===cns11643-2 ===cns11643-3 + ===cns11643-4 ===cns11643-5 ===cns11643-6 ===cns11643-7 + )) (defun decode-uri-string (string &optional coding-system) (if (> (length string) 0) @@ -353,179 +426,183 @@ ;;; @ URI representation ;;; -(defun est-uri-decode-feature-name-body (uri-feature) - (let ((len (length uri-feature)) - (i 0) - ch dest) - (while (< i len) - (setq dest - (concat - dest - (if (eq (aref uri-feature i) ?\.) - (if (and (< (+ i 2) len) - (eq (aref uri-feature (+ i 2)) ?\.)) - (prog1 - (cond - ((eq (setq ch (aref uri-feature (1+ i))) ?\.) - "/") - ((eq ch ?-) - "*") - (t - (substring uri-feature i (+ i 3)) - )) - (setq i (+ i 3))) - (setq i (1+ i)) - ".") - (prog1 - (char-to-string (aref uri-feature i)) - (setq i (1+ i))))))) - dest)) - -(defun est-uri-encode-feature-name-body (feature) - (mapconcat (lambda (c) - (cond ((eq c ?*) - ".-.") - ((eq c ?/) - "...") - (t (char-to-string c)))) - feature "")) - -(defun www-uri-decode-feature-name (uri-feature) - (let (feature) - (setq uri-feature (decode-uri-string uri-feature 'utf-8-mcs-er)) - (cond - ((string-match "^from\\." uri-feature) - (intern (format "<-%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^to\\." uri-feature) - (intern (format "->%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^rep\\." uri-feature) - (intern (format "=%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^rep[2i]\\." uri-feature) - (intern (format "===%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^g\\." uri-feature) - (intern (format "=>>%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^g[i2]\\." uri-feature) - (intern (format "==%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^gi\\([0-9]+\\)\\." uri-feature) - (intern (format "=>>%s%s" - (make-string (string-to-int - (match-string 1 uri-feature)) - ?>) - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^o\\." uri-feature) - (intern (format "=+>%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^a\\." uri-feature) - (intern (format "=>%s" - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((string-match "^a\\([0-9]+\\)\\." uri-feature) - (intern (format "%s>%s" - (make-string (string-to-int - (match-string 1 uri-feature)) - ?=) - (est-uri-decode-feature-name-body - (substring uri-feature (match-end 0))))) - ) - ((and (setq uri-feature (est-uri-decode-feature-name-body uri-feature)) - (setq feature (intern (format "=>%s" uri-feature))) - (find-charset feature)) - feature) - ((and (setq feature (intern (format "=>>%s" uri-feature))) - (find-charset feature)) - feature) - ((and (setq feature (intern (format "=>>>%s" uri-feature))) - (find-charset feature)) - feature) - ((and (setq feature (intern (format "=%s" uri-feature))) - (find-charset feature)) - feature) - (t (intern uri-feature))))) - -(defun www-uri-encode-feature-name (feature-name) - (setq feature-name (symbol-name feature-name)) - (cond - ((string-match "^=\\+>\\([^=>]+\\)" feature-name) - (concat "o." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^=\\([^=>]+\\)" feature-name) - (concat "rep." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^==\\([^=>]+\\)" feature-name) - (concat "g2." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^===\\([^=>]+\\)" feature-name) - (concat "repi." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^=>>\\([^=>]+\\)" feature-name) - (concat "g." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^=>>>\\([^=>]+\\)" feature-name) - (concat "gi." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^=>>\\(>+\\)" feature-name) - (format "gi%d.%s" - (length (match-string 1 feature-name)) - (est-uri-encode-feature-name-body - (substring feature-name (match-end 1)))) - ) - ((string-match "^=>\\([^=>]+\\)" feature-name) - (concat "a." - (est-uri-encode-feature-name-body - (substring feature-name (match-beginning 1)))) - ) - ((string-match "^\\(=+\\)>" feature-name) - (format "a%d.%s" - (length (match-string 1 feature-name)) - (est-uri-encode-feature-name-body - (substring feature-name (match-end 0)))) - ) - ((string-match "^->" feature-name) - (concat "to." - (est-uri-encode-feature-name-body - (substring feature-name (match-end 0)))) - ) - ((string-match "^<-" feature-name) - (concat "from." - (est-uri-encode-feature-name-body - (substring feature-name (match-end 0)))) - ) - (t (est-uri-encode-feature-name-body feature-name)))) +;; (defun est-uri-decode-feature-name-body (uri-feature) +;; (let ((len (length uri-feature)) +;; (i 0) +;; ch dest) +;; (while (< i len) +;; (setq dest +;; (concat +;; dest +;; (if (eq (aref uri-feature i) ?\.) +;; (if (and (< (+ i 2) len) +;; (eq (aref uri-feature (+ i 2)) ?\.)) +;; (prog1 +;; (cond +;; ((eq (setq ch (aref uri-feature (1+ i))) ?\.) +;; "/") +;; ((eq ch ?-) +;; "*") +;; ((eq ch ?_) +;; "+") +;; (t +;; (substring uri-feature i (+ i 3)) +;; )) +;; (setq i (+ i 3))) +;; (setq i (1+ i)) +;; ".") +;; (prog1 +;; (char-to-string (aref uri-feature i)) +;; (setq i (1+ i))))))) +;; dest)) + +;; (defun est-uri-encode-feature-name-body (feature) +;; (mapconcat (lambda (c) +;; (cond ((eq c ?*) +;; ".-.") +;; ((eq c ?/) +;; "...") +;; ((eq c ?+) +;; "._.") +;; (t (char-to-string c)))) +;; feature "")) + +;; (defun www-uri-decode-feature-name (uri-feature) +;; (let (feature) +;; (setq uri-feature (decode-uri-string uri-feature 'utf-8-mcs-er)) +;; (cond +;; ((string-match "^from\\." uri-feature) +;; (intern (format "<-%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^to\\." uri-feature) +;; (intern (format "->%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^rep\\." uri-feature) +;; (intern (format "=%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^rep[2i]\\." uri-feature) +;; (intern (format "===%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^g\\." uri-feature) +;; (intern (format "=>>%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^g[i2]\\." uri-feature) +;; (intern (format "==%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^gi\\([0-9]+\\)\\." uri-feature) +;; (intern (format "=>>%s%s" +;; (make-string (string-to-int +;; (match-string 1 uri-feature)) +;; ?>) +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^o\\." uri-feature) +;; (intern (format "=+>%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^a\\." uri-feature) +;; (intern (format "=>%s" +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((string-match "^a\\([0-9]+\\)\\." uri-feature) +;; (intern (format "%s>%s" +;; (make-string (string-to-int +;; (match-string 1 uri-feature)) +;; ?=) +;; (est-uri-decode-feature-name-body +;; (substring uri-feature (match-end 0))))) +;; ) +;; ((and (setq uri-feature (est-uri-decode-feature-name-body uri-feature)) +;; (setq feature (intern (format "=>%s" uri-feature))) +;; (find-charset feature)) +;; feature) +;; ((and (setq feature (intern (format "=>>%s" uri-feature))) +;; (find-charset feature)) +;; feature) +;; ((and (setq feature (intern (format "=>>>%s" uri-feature))) +;; (find-charset feature)) +;; feature) +;; ((and (setq feature (intern (format "=%s" uri-feature))) +;; (find-charset feature)) +;; feature) +;; (t (intern uri-feature))))) + +;; (defun www-uri-encode-feature-name (feature-name) +;; (setq feature-name (symbol-name feature-name)) +;; (cond +;; ((string-match "^=\\+>\\([^=>]+\\)" feature-name) +;; (concat "o." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^=\\([^=>]+\\)" feature-name) +;; (concat "rep." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^==\\([^=>]+\\)" feature-name) +;; (concat "g2." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^===\\([^=>]+\\)" feature-name) +;; (concat "repi." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^=>>\\([^=>]+\\)" feature-name) +;; (concat "g." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^=>>>\\([^=>]+\\)" feature-name) +;; (concat "gi." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^=>>\\(>+\\)" feature-name) +;; (format "gi%d.%s" +;; (length (match-string 1 feature-name)) +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-end 1)))) +;; ) +;; ((string-match "^=>\\([^=>]+\\)" feature-name) +;; (concat "a." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-beginning 1)))) +;; ) +;; ((string-match "^\\(=+\\)>" feature-name) +;; (format "a%d.%s" +;; (length (match-string 1 feature-name)) +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-end 0)))) +;; ) +;; ((string-match "^->" feature-name) +;; (concat "to." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-end 0)))) +;; ) +;; ((string-match "^<-" feature-name) +;; (concat "from." +;; (est-uri-encode-feature-name-body +;; (substring feature-name (match-end 0)))) +;; ) +;; (t (est-uri-encode-feature-name-body feature-name)))) (defun www-uri-make-feature-name-url (uri-genre uri-feature-name uri-object) (if est-hide-cgi-mode @@ -610,8 +687,8 @@ (format (if est-hide-cgi-mode "rep.id=%s" "rep.id:%s") - (est-uri-encode-feature-name-body - (format "%s" (concord-object-id object)))))) + (www-uri-encode-feature-name + (concord-object-id object))))) (defun est-format-object (object &optional readable) (if (characterp object) @@ -754,6 +831,7 @@ (let ((coded-charset-entity-reference-alist (list* '(=gt "GT-" 5 d) + '(=mj "MJ" 6 d) '(=hanyo-denshi/ja "HD-JA-" 4 X) '(=hanyo-denshi/jb "HD-JB-" 4 X) '(=hanyo-denshi/jc "HD-JC-" 4 X) @@ -776,6 +854,7 @@ '(=>>hanyo-denshi/ip "G-HD-IP-" 4 X) '(=>>hanyo-denshi/jt "G-HD-JT-" 4 X) '(=>>hanyo-denshi/ks "G-HD-KS-" 6 d) + '(==mj "g2-MJ" 6 d) '(==hanyo-denshi/ja "g2-HD-JA-" 4 X) '(==hanyo-denshi/jb "g2-HD-JB-" 4 X) '(==hanyo-denshi/jc "g2-HD-JC-" 4 X) @@ -787,6 +866,7 @@ '(==hanyo-denshi/ip "g2-HD-IP-" 4 X) '(==hanyo-denshi/jt "g2-HD-JT-" 4 X) '(==hanyo-denshi/ks "g2-HD-KS-" 6 d) + '(==daijiten "g2-DJT-" 5 d) '(=cns11643-1 "C1-" 4 X) '(=cns11643-2 "C2-" 4 X) '(=cns11643-3 "C3-" 4 X) @@ -796,6 +876,7 @@ '(=cns11643-7 "C7-" 4 X) '(=adobe-japan1-6 "AJ1-" 5 d) '(=big5-cdp "CDP-" 4 X) + '(=>big5-cdp "A-CDP-" 4 X) '(=gb2312 "G0-" 4 X) '(=gb12345 "G1-" 4 X) '(=jis-x0208@1990 "J90-" 4 X) @@ -806,10 +887,10 @@ '(=jis-x0208@1983 "J83-" 4 X) '(=ruimoku-v6 "RUI6-" 4 X) '(=zinbun-oracle "ZOB-" 4 d) + '(=daijiten "DJT-" 5 d) '(=jef-china3 "JC3-" 4 X) '(=ucs@unicode "UU+" 4 X) '(=ucs@JP/hanazono "hanaJU+" 4 X) - '(=daikanwa "M-" 5 d) '(==cns11643-1 "R-C1-" 4 X) '(==cns11643-2 "R-C2-" 4 X) '(==cns11643-3 "R-C3-" 4 X) @@ -817,17 +898,35 @@ '(==cns11643-5 "R-C5-" 4 X) '(==cns11643-6 "R-C6-" 4 X) '(==cns11643-7 "R-C7-" 4 X) + '(=hanziku-1 "HZK01-" 4 X) + '(=hanziku-2 "HZK02-" 4 X) + '(=hanziku-3 "HZK03-" 4 X) + '(=hanziku-4 "HZK04-" 4 X) + '(=hanziku-5 "HZK05-" 4 X) + '(=hanziku-6 "HZK06-" 4 X) + '(=hanziku-7 "HZK07-" 4 X) + '(=hanziku-8 "HZK08-" 4 X) + '(=hanziku-9 "HZK09-" 4 X) + '(=hanziku-10 "HZK10-" 4 X) + '(=hanziku-11 "HZK11-" 4 X) + '(=hanziku-12 "HZK12-" 4 X) + '(==>daijiten "A2-DJT-" 5 d) + '(==cbeta "CB" 5 d) + '(=big5 "B-" 4 X) + '(=daikanwa "M-" 5 d) + '(=>>daikanwa "G-M-" 5 d) + '(===ucs@ks "R-KU+" 4 X) coded-charset-entity-reference-alist))) (encode-coding-region (point-min)(point-max) 'utf-8-mcs-er) (goto-char (point-min)) - (while (re-search-forward "&\\(A-\\)?CB\\([0-9]+\\);" nil t) + (while (re-search-forward "&\\(A-\\|G-\\|g2-\\|R-\\)?CB\\([0-9]+\\);" nil t) (setq code (string-to-int (match-string 2))) (replace-match (format "\"CB%05d\"" code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url (/ code 1000) code www-format-char-img-style) t 'literal)) @@ -840,7 +939,7 @@ style=\"%s\">" (format "\"J%s-%04X\"" plane code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url plane (- (lsh code -8) 32) (- (logand code 255) 32) @@ -854,7 +953,7 @@ style=\"%s\">" (format "\"J0-%04X\"" code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url (- (lsh code -8) 32) (- (logand code 255) 32) www-format-char-img-style) @@ -868,7 +967,7 @@ style=\"%s\">" (format "\"HD-%s-%04X\"" plane code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url plane (- (lsh code -8) 32) (- (logand code 255) 32) @@ -883,7 +982,7 @@ style=\"%s\">" (format "\"HD-%s-%04X\"" plane code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url plane code www-format-char-img-style) t 'literal)) @@ -895,7 +994,19 @@ style=\"%s\">" (format "\"HD-KS%06d\"" code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward "&\\(o-\\|G-\\|g2-\\|R-\\)?HD-TK-\\([0-9]+\\);" nil t) + (setq code (string-to-int (match-string 2))) + (replace-match + (format "\"HD-KS%06d\"" + code + chise-wiki-legacy-bitmap-glyphs-url code www-format-char-img-style) t 'literal)) @@ -908,7 +1019,7 @@ style=\"vertical-align:middle\">" (format "\"GB%d-%04X\"" plane code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url plane (- (lsh code -8) 32) (- (logand code 255) 32) @@ -923,7 +1034,7 @@ style=\"%s\">" (format "\"CNS%d-%04X\"" plane code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url plane code www-format-char-img-style) t 'literal)) @@ -932,8 +1043,8 @@ style=\"%s\">" (while (re-search-forward "&\\(R-\\)?JC3-\\([0-9A-F][0-9A-F][0-9A-F][0-9A-F]\\);" nil t) (setq code (string-to-int (match-string 2) 16)) (replace-match - (format "\"JC3-%04X\"" - code code) + (format "\"JC3-%04X\"" + code chise-wiki-bitmap-glyph-image-url code) t 'literal)) (goto-char (point-min)) @@ -943,12 +1054,45 @@ style=\"%s\">" (format "\"ZOB-%04d\"" code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url code www-format-char-img-style) t 'literal)) (goto-char (point-min)) + (while (re-search-forward "&\\(A2-\\|g2-\\|R-\\)?DJT-\\([0-9]+\\);" nil t) + (setq code (string-to-int (match-string 2))) + (replace-match + (format "\"DJT-%05d\"" + code + chise-wiki-daijiten-bitmap-glyphs-url + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward "&SW-JIGUGE\\([45]?\\)-\\([0-9]+\\);" nil t) + (setq subcode (match-string 1) + code (string-to-int (match-string 2))) + (setq plane + (if (string= subcode "") + "5" + subcode)) + (replace-match + (format "
\"SW-JIGUGE%s-%05d\"%s
" + plane code + chise-wiki-legacy-bitmap-glyphs-url + plane code + (charset-description + (if (string= subcode "") + '=shuowen-jiguge + (intern (format "===shuowen-jiguge%s" subcode))))) + t 'literal)) + + (goto-char (point-min)) (while (re-search-forward "&HNG\\([0-9]+\\)-\\([0-9][0-9][0-9][0-9]\\)\\([0-9]\\);" nil t) (setq plane (match-string 1) code (string-to-int (match-string 2)) @@ -959,12 +1103,18 @@ style=\"vertical-align:middle\">" (char-to-string (decode-char 'ascii (+ 96 subcode))))) (replace-match (format - "\"HNG%s-%04d%s\"" + "
\"HNG%s-%04d%s\"%s
" plane code subcode chise-wiki-hng-bitmap-glyphs-url plane code subcode - www-format-char-img-style) + (charset-description + (car (find (format "HNG%s-" plane) + coded-charset-entity-reference-alist + :test (lambda (key cell) + (string= key (nth 1 cell)))))) + ) t 'literal)) (goto-char (point-min)) @@ -974,49 +1124,152 @@ style=\"vertical-align:middle; width: 48px; height: 48px\">" (format "\"AJ1-%05d\"" code - chise-wiki-bitmap-glyphs-url + chise-wiki-legacy-bitmap-glyphs-url code www-format-char-img-style) t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&\\(o-\\|G-\\|g2-\\|R-\\)?MJ\\([0-9]+\\);" nil t) + (while (re-search-forward "&\\(A-\\|o-\\|G-\\|g2-\\|R-\\)?MJ\\([0-9]+\\);" nil t) (setq code (string-to-int (match-string 2))) (replace-match - (format "\"MJ%06d\"" + code + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward "&\\(o-\\|G-\\|g2-\\)?IU[+-]\\([0-9A-F]+\\);" nil t) + (setq code (string-to-int (match-string 2) 16)) + (replace-match + (format "\"u%04x\"" + code + chise-wiki-glyphwiki-glyph-image-url + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward "&\\(o-\\|G-\\|g2-\\|R-\\)?KU[+-]\\([0-9A-F]+\\);" nil t) + (setq code (string-to-int (match-string 2) 16)) + (replace-match + (format "\"u%04x-k\"" code + chise-wiki-glyphwiki-glyph-image-url code www-format-char-img-style) t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&\\(o-\\|G-\\|g2-\\)?IU-\\([0-9A-F]+\\);" nil t) + (while (re-search-forward "&A-\\(comp\\|cgn\\)U[+-]\\([0-9A-F]+\\);" nil t) (setq code (string-to-int (match-string 2) 16)) (replace-match - (format "\"u%04x\"" + code + chise-wiki-glyphwiki-glyph-image-url + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward + "&\\(A-\\|g2-\\)?U-i\\([0-9]+\\)\\+\\([0-9A-F]+\\);" + nil t) + (setq plane (string-to-int (match-string 2)) + code (string-to-int (match-string 3) 16)) + (replace-match + (format "\"u%04x-itaiji-%03d\"" + code + plane + chise-wiki-glyphwiki-glyph-image-url + code + plane + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward "&A-IWDSU\\+\\([0-9A-F]+\\);" nil t) + (setq code (string-to-int (match-string 1) 16)) + (replace-match + (format "\"A-IWDSU+%04x\"" + code + chise-wiki-glyphwiki-glyph-image-url + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward + "&\\(A-\\)?CDP-i\\([0-9]+\\)-\\([0-9A-F]+\\);" + nil t) + (setq plane (string-to-int (match-string 2)) + code (string-to-int (match-string 3) 16)) + (replace-match + (format "\"cdp-%04x-itaiji-%03d\"" + code + plane + chise-wiki-glyphwiki-glyph-image-url + code + plane + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward + "&\\(A-\\)?CDP-v\\([0-9]+\\)-\\([0-9A-F]+\\);" + nil t) + (setq plane (string-to-int (match-string 2)) + code (string-to-int (match-string 3) 16)) + (replace-match + (format "\"cdp-%04x-var-%03d\"" + code + plane + chise-wiki-glyphwiki-glyph-image-url + code + plane + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward + "&\\(A-\\|G-\\|g2-\\|R-\\)?M-\\([0-9]+\\);" + nil t) + (setq code (string-to-int (match-string 2))) + (replace-match + (format "\"dkw-%05d\"" code + chise-wiki-glyphwiki-glyph-image-url code www-format-char-img-style) t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&\\(o-\\|G-\\|g2-\\|R-\\)?U-i\\([0-9]+\\)\\+\\([0-9A-F]+\\);" nil t) + (while (re-search-forward "&\\(g2-\\)?U-v\\([0-9]+\\)\\+\\([0-9A-F]+\\);" nil t) (setq plane (string-to-int (match-string 2)) code (string-to-int (match-string 3) 16)) (replace-match - (format "\"u%04x-itaiji-%03d\"" code plane + chise-wiki-glyphwiki-glyph-image-url code plane www-format-char-img-style) t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&\\(G-\\|R-\\|g2-\\)?GT-\\([0-9]+\\);" nil t) + (while (re-search-forward "&\\(A-\\|G-\\|R-\\|g2-\\)?GT-\\([0-9]+\\);" nil t) (setq code (string-to-int (match-string 2))) (replace-match (format "\"GT-%05d\"" t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&\\(G-\\)?GT-K\\([0-9]+\\);" nil t) + (while (re-search-forward "&\\(A-\\|G-\\|g2-\\)?GT-K\\([0-9]+\\);" nil t) (setq code (string-to-int (match-string 2))) (replace-match (format "\"GT-K%05d\"" t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&\\(G-\\|g2-\\|R-\\)?CDP-\\([0-9A-F]+\\);" nil t) + (while (re-search-forward + "&\\(A-\\|G-\\|g2-\\|R-\\)?CDP-\\([0-9A-F]+\\);" nil t) (setq code (string-to-int (match-string 2) 16)) (replace-match (format "\"CDP-%04X\"" t 'literal)) (goto-char (point-min)) - (while (re-search-forward "&RUI6-\\([0-9A-F]+\\);" nil t) - (setq code (string-to-int (match-string 1) 16)) + (while (re-search-forward + "&\\(I-\\)?HZK\\(0[1-9]\\|1[0-2]\\)-\\([0-9A-F]+\\);" nil t) + (setq plane (match-string 2) + code (string-to-int (match-string 3) 16)) + (replace-match + (format "\"HZK%s-%04X\"" + plane + code + chise-wiki-glyph-cgi-url + plane + code + www-format-char-img-style) + t 'literal)) + + (goto-char (point-min)) + (while (re-search-forward "&\\(A-\\|G-\\|g2-\\|R-\\)?RUI6-\\([0-9A-F]+\\);" nil t) + (setq code (string-to-int (match-string 2) 16)) (replace-match (format "\"RUI6-%04X\"" @@ -1091,7 +1361,7 @@ style=\"vertical-align:middle\">" (while (re-search-forward "&\\(A-\\|G-\\|g2-\\|R-\\)?\\(UU\\+\\|U-\\)\\([0-9A-F]+\\);" nil t) (setq code (string-to-int (match-string 3) 16)) (replace-match - (format "\"UU+%04X\"" code code @@ -1109,7 +1379,9 @@ style=\"vertical-align:middle\">" (or (www-get-feature-value char '->subsumptive) (www-get-feature-value char '->denotational))) (progn - (while (and variants + (if (characterp variants) + (setq variants (list variants))) + (while (and variants (setq ret (www-format-encode-string (char-to-string (car variants)))) (string-match "&MCS-\\([0-9A-F]+\\);" ret)) @@ -1178,21 +1450,42 @@ style=\"vertical-align:middle\">" ;;; (defvar coded-charset-GlyphWiki-id-alist - '((=ucs-var-001 "u" 4 x "-var-001") + '((===adobe-japan1-0 "aj1-" 5 d nil) + (===adobe-japan1-1 "aj1-" 5 d nil) + (===adobe-japan1-2 "aj1-" 5 d nil) + (===adobe-japan1-3 "aj1-" 5 d nil) + (===adobe-japan1-4 "aj1-" 5 d nil) + (===adobe-japan1-5 "aj1-" 5 d nil) + (===adobe-japan1-6 "aj1-" 5 d nil) + (===mj "jmj-" 6 d nil) + (===ucs@jis "u" 4 x "-j") + (===daikanwa "dkw-" 5 d nil) + (===ucs@ks "u" 4 x "-k") + (===jis-x0208@1978 "j78-" 4 x nil) + (==ucs-itaiji-005 "u" 4 x "-itaiji-005") + (=ucs-var-001 "u" 4 x "-var-001") (=ucs-var-002 "u" 4 x "-var-002") (=ucs-var-003 "u" 4 x "-var-003") + (=ucs-var-004 "u" 4 x "-var-004") + (=ucs-var-006 "u" 4 x "-var-006") + (=ucs-var-010 "u" 4 x "-var-010") (=ucs-itaiji-001 "u" 4 x "-itaiji-001") (=ucs-itaiji-002 "u" 4 x "-itaiji-002") (=ucs-itaiji-003 "u" 4 x "-itaiji-003") + (=ucs-itaiji-004 "u" 4 x "-itaiji-004") + (=ucs-itaiji-005 "u" 4 x "-itaiji-005") + (=ucs-itaiji-006 "u" 4 x "-itaiji-006") + (=ucs-itaiji-007 "u" 4 x "-itaiji-007") + (=ucs-itaiji-008 "u" 4 x "-itaiji-008") (=ucs-itaiji-084 "u" 4 x "-itaiji-084") - (=ucs "u" 4 x nil) - (=adobe-japan1-0 "aj1-" 5 d nil) - (=adobe-japan1-1 "aj1-" 5 d nil) - (=adobe-japan1-2 "aj1-" 5 d nil) - (=adobe-japan1-3 "aj1-" 5 d nil) - (=adobe-japan1-4 "aj1-" 5 d nil) - (=adobe-japan1-5 "aj1-" 5 d nil) - (=adobe-japan1-6 "aj1-" 5 d nil) + (=>ucs-itaiji-001 "u" 4 x "-itaiji-001") + (=>ucs-itaiji-002 "u" 4 x "-itaiji-002") + (=>ucs-itaiji-003 "u" 4 x "-itaiji-003") + (=>ucs-itaiji-004 "u" 4 x "-itaiji-004") + (=>ucs-itaiji-005 "u" 4 x "-itaiji-005") + (=>ucs-itaiji-006 "u" 4 x "-itaiji-006") + (=>ucs-itaiji-007 "u" 4 x "-itaiji-007") + (=>ucs-itaiji-008 "u" 4 x "-itaiji-008") (==adobe-japan1-0 "aj1-" 5 d nil) (==adobe-japan1-1 "aj1-" 5 d nil) (==adobe-japan1-2 "aj1-" 5 d nil) @@ -1200,74 +1493,102 @@ style=\"vertical-align:middle\">" (==adobe-japan1-4 "aj1-" 5 d nil) (==adobe-japan1-5 "aj1-" 5 d nil) (==adobe-japan1-6 "aj1-" 5 d nil) - (===adobe-japan1-0 "aj1-" 5 d nil) - (===adobe-japan1-1 "aj1-" 5 d nil) - (===adobe-japan1-2 "aj1-" 5 d nil) - (===adobe-japan1-3 "aj1-" 5 d nil) - (===adobe-japan1-4 "aj1-" 5 d nil) - (===adobe-japan1-5 "aj1-" 5 d nil) - (===adobe-japan1-6 "aj1-" 5 d nil) + (==mj "jmj-" 6 d nil) + (==ucs@jis "u" 4 x "-j") + (==ucs@iso "u" 4 x nil) + ;; (==ucs@cns "u" 4 x "-t") + (==ucs@unicode "u" 4 x "-us") + (==ucs@JP/hanazono "u" 4 x "-jv") + (==gt "gt-" 5 d nil) + (==gt-k "gt-k" 5 d nil) + (==daikanwa "dkw-" 5 d nil) + (==ucs@ks "u" 4 x "-k") + (==jis-x0208@1978 "j78-" 4 x nil) + (==jis-x0208 "j90-" 4 x nil) + (==jis-x0208@1990 "j90-" 4 x nil) + (==jis-x0208@1983 "j83-" 4 x nil) + (==cbeta "cbeta-" 5 d nil) + (=>>hanyo-denshi/ks "koseki-" 6 d nil) + (=>>jis-x0208@1978 "j78-" 4 x nil) + (=>>big5-cdp "cdp-" 4 x nil) + (=>>adobe-japan1-0 "aj1-" 5 d nil) + (=>>adobe-japan1-1 "aj1-" 5 d nil) + (=>>adobe-japan1-2 "aj1-" 5 d nil) + (=>>adobe-japan1-3 "aj1-" 5 d nil) + (=>>adobe-japan1-4 "aj1-" 5 d nil) + (=>>adobe-japan1-5 "aj1-" 5 d nil) + (=>>adobe-japan1-6 "aj1-" 5 d nil) + (=>>jis-x0208 "j90-" 4 x nil) + (=>>jis-x0208@1990 "j90-" 4 x nil) + (=>>jis-x0208@1983 "j83-" 4 x nil) + (=>>daikanwa "dkw-" 5 d nil) + (=adobe-japan1-0 "aj1-" 5 d nil) + (=adobe-japan1-1 "aj1-" 5 d nil) + (=adobe-japan1-2 "aj1-" 5 d nil) + (=adobe-japan1-3 "aj1-" 5 d nil) + (=adobe-japan1-4 "aj1-" 5 d nil) + (=adobe-japan1-5 "aj1-" 5 d nil) + (=adobe-japan1-6 "aj1-" 5 d nil) + (=hanyo-denshi/ks "koseki-" 6 d nil) + (=mj "jmj-" 6 d nil) (=decomposition@cid) (=decomposition@hanyo-denshi) - (=hanyo-denshi/ks "koseki-" 6 d nil) - (=>>hanyo-denshi/ks "koseki-" 6 d nil) (=koseki "koseki-" 6 d nil) - (=ucs@jis "u" 4 x nil) - (==ucs@jis "u" 4 x nil) - (==ucs@iso "u" 4 x nil) - (===ucs@jis "u" 4 x nil) - (=ucs@cns "u" 4 x "-t") - (==ucs@cns "u" 4 x "-t") + (=hanyo-denshi/tk "toki-" 8 d nil) + (=ucs@jis "u" 4 x "-j") + ;; (=ucs@cns "u" 4 x "-t") + (=ucs@ks "u" 4 x "-k") + (=ucs@JP "u" 4 x "-jv") + (=ucs@JP/hanazono "u" 4 x "-jv") + (=ucs@gb "u" 4 x "-g") + (=big5-cdp "cdp-" 4 x nil) + (=>big5-cdp "cdp-" 4 x nil) + (=+>big5-cdp "cdp-" 4 x nil) + (=>big5-cdp@iwds-1 "cdp-" 4 x nil) + (=cbeta "cbeta-" 5 d nil) + (=>cbeta "cbeta-" 5 d nil) + (=big5-cdp-var-001 "cdp-" 4 x "-var-001") + (=big5-cdp-var-003 "cdp-" 4 x "-var-003") + (=big5-cdp-var-005 "cdp-" 4 x "-var-005") + (=big5-cdp-itaiji-001 "cdp-" 4 x "-itaiji-001") + (=big5-cdp-itaiji-002 "cdp-" 4 x "-itaiji-002") + (=big5-cdp-itaiji-003 "cdp-" 4 x "-itaiji-003") + (=>big5-cdp-itaiji-001 "cdp-" 4 x "-itaiji-001") + (=>big5-cdp-itaiji-002 "cdp-" 4 x "-itaiji-002") + (=>big5-cdp-itaiji-003 "cdp-" 4 x "-itaiji-003") + (=jef-china3 "jc3-" 4 x nil) (=jis-x0212 "jsp-" 4 x nil) (=jis-x0213-1@2000 "jx1-2000-" 4 x nil) (=jis-x0213-1@2004 "jx1-2004-" 4 x nil) (=jis-x0213-2 "jx2-" 4 x nil) (=gt "gt-" 5 d nil) - (=daikanwa "dkw-" 5 d nil) - (==daikanwa "dkw-" 5 d nil) - (===daikanwa "dkw-" 5 d nil) (=gt-k "gt-k" 5 d nil) - (=jef-china3 "jc3-" 4 x nil) - (=big5 "b-" 4 x nil) - (=ucs@ks "u" 4 x "-k") - (==ucs@ks "u" 4 x "-k") - (===ucs@ks "u" 4 x "-k") - (=ks-x1001 "k0-" 4 x nil) + (=>gt-k "gt-k" 5 d nil) + (=daikanwa "dkw-" 5 d nil) + (=ruimoku-v6 "rui6-" 4 x nil) + (=>ruimoku-v6 "rui6-" 4 x nil) + (=ucs@iso "u" 4 x "-u") + (=ucs@unicode "u" 4 x "-us") (=jis-x0208@1978/1pr "j78-" 4 x nil) (=jis-x0208@1978/-4pr "j78-" 4 x nil) (=jis-x0208@1978 "j78-" 4 x nil) - (=>>>jis-x0208@1978 "j78-" 4 x nil) - (=>>jis-x0208@1978 "j78-" 4 x nil) (=+>jis-x0208@1978 "j78-" 4 x nil) - (=ucs@JP "u" 4 x nil) - (=ucs@gb "u" 4 x "-g") - (=ucs@iso "u" 4 x "-u") - (=ucs@unicode "u" 4 x "-us") - (=big5-cdp "cdp-" 4 x nil) - (=>>big5-cdp "cdp-" 4 x nil) - (=cns11643-1 "c1-" 4 x nil) - (=cns11643-2 "c2-" 4 x nil) - (=cns11643-3 "c3-" 4 x nil) - (=cns11643-4 "c4-" 4 x nil) - (=cns11643-5 "c5-" 4 x nil) - (=cns11643-6 "c6-" 4 x nil) - (=cns11643-7 "c7-" 4 x nil) - (=jis-x0208 "j90-" 4 x nil) - (=>>>jis-x0208 "j90-" 4 x nil) - (=>>jis-x0208 "j90-" 4 x nil) (=+>jis-x0208 "j90-" 4 x nil) - (=jis-x0208@1990 "j90-" 4 x nil) - (=>>>jis-x0208@1990 "j90-" 4 x nil) - (=>>jis-x0208@1990 "j90-" 4 x nil) (=+>jis-x0208@1990 "j90-" 4 x nil) - (=jis-x0208@1983 "j83-" 4 x nil) - (=>>>jis-x0208@1983 "j83-" 4 x nil) - (=>>jis-x0208@1983 "j83-" 4 x nil) (=+>jis-x0208@1983 "j83-" 4 x nil) - (=cbeta "cb" 5 d nil) - (=>>daikanwa "dkw-" 5 d nil) - (=big5-cdp-var-3 "cdp-" 4 x "-var-3") - (=big5-cdp-var-5 "cdp-" 4 x "-var-5") + (=ucs "u" 4 x nil) + (=big5 "b-" 4 x nil) + (=ks-x1001 "k0-" 4 x nil) + ;; (=cns11643-1 "c1-" 4 x nil) + ;; (=cns11643-2 "c2-" 4 x nil) + ;; (=cns11643-3 "c3-" 4 x nil) + ;; (=cns11643-4 "c4-" 4 x nil) + ;; (=cns11643-5 "c5-" 4 x nil) + ;; (=cns11643-6 "c6-" 4 x nil) + ;; (=cns11643-7 "c7-" 4 x nil) + (=jis-x0208 "j90-" 4 x nil) + (=jis-x0208@1990 "j90-" 4 x nil) + (=jis-x0208@1983 "j83-" 4 x nil) )) (defun char-GlyphWiki-id (char) @@ -1275,7 +1596,7 @@ style=\"vertical-align:middle\">" spec ret code) (while (and rest (setq spec (pop rest)) - (null (setq ret (char-feature char (car spec)))))) + (null (setq ret (get-char-attribute char (car spec)))))) (when ret (or (and (listp ret) @@ -1287,23 +1608,23 @@ style=\"vertical-align:middle\">" (encode-char char '=jis-x0213-1) (encode-char char '=jis-x0213-2)) (setq code (encode-char char '=ucs@jis))) - (format "u%04x" code) + (format "u%04x-j" code) ) ((and (or (encode-char char '=gb2312) (encode-char char '=gb12345)) (setq code (encode-char char '=ucs@gb))) (format "u%04x-g" code) ) - ((and (or (encode-char char '=cns11643-1) - (encode-char char '=cns11643-2) - (encode-char char '=cns11643-3) - (encode-char char '=cns11643-4) - (encode-char char '=cns11643-5) - (encode-char char '=cns11643-6) - (encode-char char '=cns11643-7)) - (setq code (encode-char char '=ucs@cns))) - (format "u%04x-t" code) - ) + ;; ((and (or (encode-char char '=cns11643-1) + ;; (encode-char char '=cns11643-2) + ;; (encode-char char '=cns11643-3) + ;; (encode-char char '=cns11643-4) + ;; (encode-char char '=cns11643-5) + ;; (encode-char char '=cns11643-6) + ;; (encode-char char '=cns11643-7)) + ;; (setq code (encode-char char '=ucs@cns))) + ;; (format "u%04x-t" code) + ;; ) ((and (encode-char char '=ks-x1001) (setq code (encode-char char '=ucs@ks))) (format "u%04x-k" code)