;; -*- coding: utf-8-mcs-er -*- (defvar chise-wiki-view-url "view.cgi") (defvar chise-wiki-edit-url "edit.cgi") (require 'cwiki-common) (require 'est-xml) (defun www-edit-display-input-box (object name value &optional format) (when (stringp format) (setq format (intern format))) (let (prefix) (if (or (eq format 'HEX) (eq format 'hex)) (if (integerp value) (setq prefix "0x"))) (princ (www-format-encode-string (format "%s \u2190 %s" name (or prefix "")))) (princ (format " " (www-format-encode-string (format "%s" name) 'without-tags) (www-format-apply-value object name format nil value nil nil 'without-tags) )))) (defun www-edit-display-feature-input-box (char feature-name &optional format value) (unless format (setq format 'default)) (unless value (setq value (www-get-feature-value char feature-name))) (princ (format "

" feature-name)) (princ (encode-coding-string " \u2190 " 'utf-8-mcs-er)) (princ (format "%s

" (if (or (eq format 'HEX)(eq format 'hex)) "0x" "") format (mapconcat (lambda (c) (cond ;; ((eq c ?<) "&lt;") ;; ((eq c ?>) "&gt;") ((eq c ?\u0022) """) (t (char-to-string c)))) (www-format-value char feature-name value format 'without-tags) ""))) ) (defun www-edit-display-object-desc (genre uri-object uri-feature-name &optional lang format) (when (stringp format) (setq format (intern format))) (let ((object (www-uri-decode-object genre uri-object)) (feature-name (www-uri-decode-feature-name uri-feature-name)) base-name metadata-name object-spec str) (when (characterp object) (princ (format " CHISE-wiki character: %s \n" (encode-coding-string (decode-uri-string uri-object 'utf-8-mcs-er) 'utf-8-mcs-er))) (princ "\n") (princ (format "

%s

\n" (www-format-encode-string (char-to-string object)))) (princ "
\n") (princ (encode-coding-string (format "

(char : )

" (decode-uri-string uri-object 'utf-8-mcs-er)) 'utf-8-mcs-er)) (setq object-spec (char-attribute-alist object)) (if (string-match "\\*" (setq str (symbol-name feature-name))) (setq base-name (intern (substring str 0 (match-beginning 0))) metadata-name (intern (substring str (match-end 0)))) (setq base-name feature-name)) (unless (assq base-name object-spec) (setq object-spec (cons (cons base-name nil) object-spec))) (dolist (cell (sort object-spec (lambda (a b) (char-attribute-name< (car a)(car b))))) (cond ((eq (car cell) feature-name) (www-edit-display-feature-input-box object feature-name format) ) (t (princ "

") (princ (www-format-eval-list (or (char-feature-property (car cell) 'format) '((name) " : " (value))) object (car cell) lang uri-object)) (princ "

\n") (when (and (eq base-name (car cell)) metadata-name) (princ "")) )) ) (princ "
\n") ))) (defun www-edit-display-feature-desc (uri-feature-name uri-property-name &optional lang uri-object) (let ((feature-name (www-uri-decode-feature-name uri-feature-name)) (property-name (www-uri-decode-feature-name uri-property-name)) name@lang) (princ (encode-coding-string (format " CHISE-wiki feature: %s \n" feature-name) 'utf-8-mcs-er)) (princ "\n") (princ "
\n") (princ (encode-coding-string (format "

feature :

\n" feature-name) 'utf-8-mcs-er)) (princ (encode-coding-string (format "

(に限\u5B9Aしない) " (decode-uri-string uri-object 'utf-8-mcs-er)) 'utf-8-mcs-er)) (princ "

") (if (eq property-name 'name) ;; (www-edit-display-input-box ;; feature-name ;; property-name ;; (or (www-format-feature-name* feature-name) "")) (www-edit-display-feature-input-box feature-name property-name 'string (or (www-format-feature-name* feature-name) "")) (www-html-display-paragraph (format "name : %s [[[edit|edit.cgi?feature=%s&property=name]]]" (or (www-format-feature-name* feature-name) "") ;; (char-feature-property feature-name 'name) uri-feature-name ; (www-uri-encode-feature-name feature-name) ))) (when lang (setq name@lang (intern (format "name@%s" lang))) (if (eq property-name name@lang) ;; (www-edit-display-input-box ;; feature-name ;; name@lang ;; (or (char-feature-property feature-name name@lang) "")) (www-edit-display-feature-input-box feature-name name@lang 'string (or (char-feature-property feature-name name@lang) "")) (www-html-display-paragraph (format "%s : %s [[[edit|edit.cgi?feature=%s&property=%s]]]" name@lang (or (char-feature-property feature-name name@lang) "") uri-feature-name name@lang)))) (www-html-display-paragraph (format "type : %s" (or (www-feature-type feature-name) ;; (char-feature-property feature-name 'type) 'generic))) (if (eq property-name 'value-format) (www-edit-display-feature-input-box feature-name property-name 'default ; 'wiki-text (or (www-feature-value-format feature-name) 'default)) (www-html-display-paragraph (format "value-format : %s [[[edit|edit.cgi?feature=%s&property=value-format]]]" (www-xml-format-list (or (www-feature-value-format feature-name) 'default)) uri-feature-name))) (if (eq property-name 'format) (www-edit-display-feature-input-box feature-name property-name 'wiki-text (or (char-feature-property feature-name 'format) '((name) " : " (value)))) (www-html-display-paragraph (format "format : %s [[[edit|edit.cgi?feature=%s&property=format]]]" (www-xml-format-list (char-feature-property feature-name 'format)) uri-feature-name))) (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))) "")))) (princ "

\n") )) (defun www-batch-edit () (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 ") (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-edit-display-object-desc 'character (cdr ret) ; (decode-uri-string (cdr ret) 'utf-8-mcs-er) (decode-uri-string (cdr (assq 'feature target)) 'utf-8-mcs-er) lang (decode-uri-string (cdr (assq 'format target)) 'utf-8-mcs-er)) ) ((eq (car ret) 'feature) (www-edit-display-feature-desc (decode-uri-string (cdr ret) 'utf-8-mcs-er) (decode-uri-string (cdr (assq 'property target)) 'utf-8-mcs-er) lang (cdr (assq 'char target)) ;; (decode-uri-string (cdr (assq 'char target)) ;; 'utf-8-mcs-er) ) ) (t (www-edit-display-object-desc (car ret) (cdr ret) (decode-uri-string (cdr (assq 'feature target)) 'utf-8-mcs-er) lang (decode-uri-string (cdr (assq 'format target)) 'utf-8-mcs-er)) )) (www-html-display-paragraph (format "%S" target)) (princ "\n
\n") (princ (format "user=%s\n" user)) (princ (format "local user=%s\n" (user-login-name))) (princ (format "lang=%S\n" lang)) (princ emacs-version) (princ " CHISE ") (princ (encode-coding-string xemacs-chise-version 'utf-8-jp-er)) (princ " ") ) (error nil (princ (format "%S" err))) ))