X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=cwiki-view.el;h=669f5bf9f35d071a74ca9346b396a7d92fe6db7c;hb=ff1dae13d988279765f1f77c81c62b71224ed946;hp=23f6469e23cd7b8e020dfc51effc3dc14530afbe;hpb=600491dd3cef170306832c8a029931480dd5dd85;p=chise%2Fest.git diff --git a/cwiki-view.el b/cwiki-view.el index 23f6469..669f5bf 100644 --- a/cwiki-view.el +++ b/cwiki-view.el @@ -1,136 +1,210 @@ ;; -*- coding: utf-8-mcs-er -*- -(require 'cwiki-common) +(require 'cwiki-format) (defvar chise-wiki-view-url "view.cgi") -(defvar chise-wiki-edit-url "edit/edit.cgi") -(defvar chise-wiki-add-url "edit/add.cgi") +(defvar chise-wiki-edit-url "edit.cgi") +(defvar chise-wiki-add-url "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) +(defun www-display-object-desc (genre uri-object &optional lang level simple) (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))) + (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-object object))) (when (= level 1) (princ (encode-coding-string (format "
-%s %s
\n%s %s
\n\n" + "
\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 "
") + (unless simple + (princ + (format + " " + chise-wiki-edit-url + uri-feature-name + genre + uri-object)) + (princ "\n")) + (princ "\n") (when lang (princ "") (princ @@ -138,18 +212,59 @@ (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 "
")) + (unless simple + (princ + (format + " " + chise-wiki-edit-url + uri-feature-name + name@lang + genre + 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 + genre + 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 + genre + uri-object)) + (princ "\n")) + (princ "
\n") + (www-html-display-paragraph (format "description : %s" (or (char-feature-property feature-name 'description) @@ -170,6 +285,7 @@ (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 @@ -186,6 +302,14 @@ ") (cond ((stringp target) + (when (string-match "^char=\\(&[^&;]+;\\)" target) + (setq ret (match-end 0)) + (setq target + (concat "char=" + (www-uri-encode-object + (www-uri-decode-object + 'character (match-string 1 target))) + (substring target ret)))) (setq target (mapcar (lambda (cell) (if (string-match "=" cell) @@ -199,25 +323,36 @@ (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) + (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)) - ;; (decode-uri-string (cdr (assq 'char target))) - lang) + (car ret) + (cdr (assq 'char target)) + lang + (eq mode 'simple)) + ) + (t + (www-display-object-desc + (car ret) + (cdr ret) + lang nil + (eq mode 'simple)) )) )) (princ "\n