;; -*- coding: utf-8-mcs-er -*-
-(defvar chise-wiki-view-url "../view.cgi")
+(defvar chise-wiki-view-url "view.cgi")
(defvar chise-wiki-edit-url "edit.cgi")
(require 'cwiki-common)
+(require 'est-xml)
-(defun www-edit-display-char-feature-default (char feature-name &optional value
- lang)
- (unless value
- (setq value (char-feature char feature-name)))
- (www-html-display-paragraph
- (format "[[%s|%s?feature=%s]] : %s [[[edit|edit.cgi?char=%s&feature=%s]]]"
- (www-format-feature-name feature-name lang)
- chise-wiki-view-url
- (www-uri-encode-feature-name feature-name)
- (www-format-value value feature-name nil 'without-tags)
- (char-to-string char)
- (www-uri-encode-feature-name feature-name)
- )))
-
-(defun www-edit-display-char-feature-as-ucs (char feature-name &optional value)
- (unless value
- (setq value (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-edit-display-input-box (name value &optional format)
+(defun www-edit-display-input-box (object name value &optional format)
(when (stringp format)
(setq format (intern format)))
(let (prefix)
"
(www-format-encode-string
(format "%s" name) 'without-tags)
- (www-format-apply-value format nil value
+ (www-format-apply-value object name
+ format nil value
nil nil
'without-tags)
))))
-(defun www-edit-display-char-desc (uri-char uri-feature-name
- &optional lang format)
+(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 "<p><input type=\"text\" name=\"feature-name\"
+size=\"32\" maxlength=\"256\" value=\"%s\">"
+ feature-name))
+ (princ (encode-coding-string " \u2190 " 'utf-8-mcs-er))
+ (princ
+ (format "%s<input type=\"text\" name=\"%s\"
+size=\"64\" maxlength=\"256\" value=\"%s\">
+<input type=\"submit\" value=\"set\" /></p>
+"
+ (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 ((char (www-uri-decode-char uri-char))
+ (let ((object (www-uri-decode-object genre uri-object))
(feature-name (www-uri-decode-feature-name uri-feature-name))
base-name metadata-name
- char-spec str)
- (when (characterp char)
+ object-spec str)
+ (when (characterp object)
(princ
(format "<head>
<title>CHISE-wiki character: %s</title>
</head>\n"
(encode-coding-string
- (decode-uri-string uri-char 'utf-8-mcs-er)
+ (decode-uri-string uri-object 'utf-8-mcs-er)
'utf-8-mcs-er)))
(princ "<body>\n")
(princ
(format "<h1>%s</h1>\n"
- (www-format-encode-string (char-to-string char))))
+ (www-format-encode-string (char-to-string object))))
(princ "<form action=\"set.cgi\" method=\"GET\">\n")
(princ
(encode-coding-string
(format "<p>(char : <input type=\"text\" name=\"char\"
size=\"30\" maxlength=\"30\" value=\"%s\">)</p>
"
- (decode-uri-string uri-char 'utf-8-mcs-er))
+ (decode-uri-string uri-object 'utf-8-mcs-er))
'utf-8-mcs-er))
- (setq char-spec (char-attribute-alist char))
+ (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 char-spec)
- (setq char-spec (cons (cons base-name nil)
- char-spec)))
- (dolist (cell (sort char-spec
+ (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-input-box feature-name (cdr cell) format)
- (princ
- (format "<p><input type=\"text\" name=\"feature-name\"
-size=\"30\" maxlength=\"30\" value=\"%s\">"
- feature-name))
- (princ (encode-coding-string " \u2190 " 'utf-8-mcs-er))
- (princ
- (format "%s<input type=\"text\" name=\"%s\"
-size=\"30\" maxlength=\"30\" value=\"%s\">
-<input type=\"submit\" value=\"set\" /></p>
-"
- (if (or (eq format 'HEX)(eq format 'hex))
- "0x"
- "")
- format
- (www-format-value (cdr cell) feature-name
- format 'without-tags)))
+ (www-edit-display-feature-input-box object feature-name format)
)
(t
(princ "<p>")
(www-format-eval-list
(or (char-feature-property (car cell) 'format)
'((name) " : " (value)))
- char (car cell) lang uri-char))
+ object (car cell) lang uri-object))
(princ "</p>\n")
(when (and (eq base-name (car cell)) metadata-name)
(princ "<ul>\n")
(princ "<li>")
- (www-edit-display-input-box feature-name
- (char-feature char feature-name)
- format)
+ (www-edit-display-feature-input-box object feature-name format)
(princ "</li>")
(princ "</ul>"))
))
(defun www-edit-display-feature-desc (uri-feature-name
uri-property-name
- &optional lang uri-char)
+ &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)
(format "<p>(<input type=\"text\" name=\"char\"
size=\"30\" maxlength=\"30\" value=\"%s\">に限\u5B9Aしない)
"
- (decode-uri-string uri-char 'utf-8-mcs-er))
+ (decode-uri-string uri-object 'utf-8-mcs-er))
'utf-8-mcs-er))
(princ "<p>")
(if (eq property-name 'name)
- (www-edit-display-input-box
- property-name
- (or (www-format-feature-name* feature-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) "")
(when lang
(setq name@lang (intern (format "name@%s" lang)))
(if (eq property-name name@lang)
- (www-edit-display-input-box
- name@lang
- (or (char-feature-property feature-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 (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)
(split-string target "&")))
(setq ret (car target))
(cond ((eq (car ret) 'char)
- (www-edit-display-char-desc
+ (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)
;; (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 (format "lang=%S\n" lang))
(princ emacs-version)
(princ " CHISE ")
- (princ xemacs-chise-version)
+ (princ (encode-coding-string xemacs-chise-version 'utf-8-jp-er))
(princ "
</body>
</html>")