;; -*- coding: utf-8-mcs-er -*- (require 'cwiki-common) (defvar chise-wiki-view-url "view.cgi") (defvar chise-wiki-edit-url "edit/edit.cgi") (defvar chise-wiki-add-url "edit/add.cgi") (defun www-char-display-feature-default (char feature-name &optional value lang uri-char) (unless value (setq value (www-char-feature char feature-name))) (unless uri-char (setq uri-char (char-to-string char))) (www-html-display-paragraph (format "[[%s|%?feature=%s&char=%s]] : %s [[[edit|%s?char=%s&feature=%s]]]" (www-format-feature-name feature-name lang) chise-wiki-view-url (www-uri-encode-feature-name feature-name) uri-char (www-format-value value feature-name) chise-wiki-edit-url uri-char (www-uri-encode-feature-name feature-name) ))) (defun www-char-display-feature-as-ucs (char feature-name &optional value) (unless value (setq value (www-char-feature char feature-name))) (www-html-display-paragraph (format "= [[U+%s|http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=%s]] (%d)" (www-format-value-as-HEX value) (www-format-value-as-HEX value) value))) (defun www-display-char-desc (uri-char &optional lang level) (unless level (setq level 1)) (let ((char (www-uri-decode-char uri-char)) logical-feature displayed-features) (when (characterp char) (when (= (length uri-char) 1) (setq uri-char (www-uri-encode-char char))) (when (= level 1) (princ (encode-coding-string (format "
\n" "
\n" "
name : %s " (or (www-format-feature-name feature-name) ""))) (www-html-display-text (format "[[[edit|%s?feature=%s&property=name&char=%s]]]" ;; (char-feature-property feature-name 'name) chise-wiki-edit-url uri-feature-name ; (www-uri-encode-feature-name feature-name) uri-char)) (princ "
") (when lang (princ "") (princ (www-format-encode-string (format "%s : %s" name@lang (or (char-feature-property feature-name name@lang) "")))) (www-html-display-text (format " [[[edit|%s?feature=%s&property=%s&char=%s]]]" chise-wiki-edit-url uri-feature-name name@lang uri-char)) (princ "
")) (www-html-display-paragraph (format "type : %s" (or (www-feature-type feature-name) ;; (char-feature-property feature-name 'type) 'generic))) (www-html-display-paragraph (format "description : %s" (or (char-feature-property feature-name 'description) ""))) (when lang (www-html-display-paragraph (format "description@%s : %s" lang (or (char-feature-property feature-name (intern (format "description@%s" lang))) "")))) )) (defun www-batch-view () (setq terminal-coding-system 'binary) (condition-case err (let* ((target (pop command-line-args-left)) (user (pop command-line-args-left)) (accept-language (pop command-line-args-left)) (lang (intern (car (split-string (car (split-string (car (split-string accept-language ",")) ";")) "-")))) ret) (princ "Content-Type: text/html; charset=UTF-8 ") (cond ((stringp target) (setq target (mapcar (lambda (cell) (if (string-match "=" cell) (cons (intern (decode-uri-string (substring cell 0 (match-beginning 0)) 'utf-8-mcs-er)) (substring cell (match-end 0))) (list (decode-uri-string cell 'utf-8-mcs-er)))) (split-string target "&"))) (setq ret (car target)) (cond ((eq (car ret) 'char) (www-display-char-desc (cdr ret) ; (decode-uri-string (cdr ret) 'utf-8-mcs-er) lang) ) ((eq (car ret) 'feature) (www-display-feature-desc (decode-uri-string (cdr ret) 'utf-8-mcs-er) (cdr (assq 'char target)) ;; (decode-uri-string (cdr (assq 'char target))) lang) )) )) (princ "\n