;; -*- coding: utf-8-mcs-er -*- (require 'cwiki-common) (defvar chise-wiki-view-url "view.cgi") (defvar chise-wiki-edit-url "edit.cgi") (defvar chise-wiki-add-url "add.cgi") (defun www-display-object-desc (genre uri-object &optional lang level simple) (unless level (setq level 1)) (let ((object (www-uri-decode-object genre uri-object)) logical-feature chise-wiki-displayed-features parents GlyphWiki-id) (when object (when (and (eq genre 'character) (= (length uri-object) 1)) (setq uri-object (www-uri-encode-char object))) (when (= level 1) (princ (encode-coding-string (format "
%s %s
\n%s %s
\n\n" "
\n" "
name : %s " (or (www-format-feature-name feature-name) ""))) (unless simple (princ (format " " chise-wiki-edit-url uri-feature-name uri-object)) (princ "\n")) (princ "
\n") (when lang (princ "") (princ (www-format-encode-string (format "%s : %s" name@lang (or (char-feature-property feature-name name@lang) "")))) (unless simple (princ (format " " chise-wiki-edit-url uri-feature-name name@lang uri-object)) (princ "\n")) (princ "
\n")) (www-html-display-paragraph (format "type : %s" (or (www-feature-type feature-name) ;; (char-feature-property feature-name 'type) 'generic))) (princ (format "value-format : %s " (www-format-value nil 'value-format (or (www-feature-value-format feature-name) 'default) 'default 'without-tags))) (unless simple (princ (format " " chise-wiki-edit-url uri-feature-name uri-object)) (princ "\n")) (princ "
\n") (princ "format : ") (www-html-display-text (decode-coding-string (www-xml-format-list (www-feature-format feature-name)) 'utf-8-mcs-er)) (unless simple (princ (format " " chise-wiki-edit-url uri-feature-name uri-object)) (princ "\n")) (princ "
\n") (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)) (mode (intern (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) (when (string-match "^char=\\(&[^&;]+;\\)" target) (setq ret (match-end 0)) (setq target (concat "char=" (www-uri-encode-char (www-uri-decode-object 'character (match-string 1 target))) (substring target ret)))) (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-object-desc 'character (cdr ret) lang nil (eq mode 'simple)) ) ((eq (car ret) 'feature) (www-display-feature-desc (decode-uri-string (cdr ret) 'utf-8-mcs-er) (cdr (assq 'char target)) lang (eq mode 'simple)) ) (t (www-display-object-desc (car ret) (cdr ret) lang nil (eq mode 'simple)) )) )) (princ "\n