X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fest.git;a=blobdiff_plain;f=cwiki-view.el;h=ca965f2517ac12de0edc15c7c33fdbcdfaed47fc;hp=1605d6811cce7c374cc1dca5d7cc7b59bf4b776a;hb=HEAD;hpb=19098062c72923a2b738639148e909989ac9e587 diff --git a/cwiki-view.el b/cwiki-view.el index 1605d68..bf0dd07 100644 --- a/cwiki-view.el +++ b/cwiki-view.el @@ -1,5 +1,7 @@ ;; -*- coding: utf-8-mcs-er -*- (require 'cwiki-format) +(require 'char-db-json) +(require 'concord-turtle-dump) (defvar chise-wiki-view-url "view.cgi") (defvar chise-wiki-edit-url "edit.cgi") @@ -14,6 +16,9 @@ (setq format 'default)) (unless value (setq value (www-get-feature-value char feature-name))) + (if (and (symbolp value) + (eq format 'wiki-text)) + (setq value (list (list value)))) (princ (format "

" @@ -35,22 +40,39 @@ size=\"64\" maxlength=\"256\" value=\"%s\"> ((eq c ?\u0022) """) (t (char-to-string c)))) - (www-format-value char feature-name - value format 'without-tags) + (est-format-list value format nil nil " ") ""))) ) -(defun www-display-object-desc (genre uri-object &optional lang level simple +(defun www-display-object-desc (genre uri-object &optional uri-feature-name + image-selection + lang level simple uri-feature-name-to-edit editing-format) (unless level (setq level 0)) (let ((object (www-uri-decode-object genre uri-object)) - feature-name-to-edit + (est-eval-list-feature-items-limit est-eval-list-feature-items-limit) + (est-view-url-prefix (if uri-feature-name + "../.." + "..")) + (rdf-uri-object (if est-hide-cgi-mode + (if (string-match "=" uri-object) + (concat + (est-uri-decode-feature-name-body + (substring uri-object 0 (match-beginning 0))) + ":" + (est-uri-decode-feature-name-body + (substring uri-object (match-end 0)))) + uri-object))) + feature-name-to-display feature-name-to-edit base-name-to-edit metadata-name-to-edit without-header logical-feature chise-wiki-displayed-features parents - GlyphWiki-id ret object-spec) + GlyphWiki-id HNG-card HNG-card-id HNG-card-cobj ret object-spec + ucs + item-code page char-num glyph-image-id + width height image-cobj base-image x y w h) (if (eq level 0) (setq level 1 without-header nil) @@ -75,6 +97,51 @@ size=\"64\" maxlength=\"256\" value=\"%s\"> (princ (encode-coding-string (format " + + + + EsT %s = %s \n" genre @@ -86,48 +153,294 @@ size=\"64\" maxlength=\"256\" value=\"%s\"> (mount-char-attribute-table (char-feature-name-at-domain feature '$rev=latest)))) (princ - (format - (if simple - "

+ (if simple + (format + (if est-hide-cgi-mode + "
+ + +\n" + "
- - -
-
\n" +\n") + genre rdf-uri-object) + (format "
- + - +\n" + genre + (if (string-match ":" uri-object) + (concat + (est-uri-encode-feature-name-body + (substring uri-object 0 (match-beginning 0))) + "=" + (est-uri-encode-feature-name-body + (substring uri-object (match-end 0)))))))) + (princ + (format " + + + +%s
-
\n") - genre - uri-object)) +
\n" + rdf-uri-object + genre rdf-uri-object + (if (eq genre 'character) + (format " + + +\n%s" + genre rdf-uri-object + (if (and (or (char-feature object '->HNG@CN/manuscript) + (char-feature object '->HNG@CN/printed) + (char-feature object '->HNG@JP/manuscript) + (char-feature object '->HNG@JP/printed) + (char-feature object '->HNG@KR) + (char-feature object '->HNG@MISC)) + (setq ucs (char-ucs object)) + (setq ret (decode-char '=ucs ucs)) + (setq ret + (if (setq ucs (get-char-attribute + ret '=>ucs*)) + (decode-char '=ucs ucs) + ret))) + (format " + + +\n" + (www-uri-encode-object ret)) + "")) + ""))) (when (setq parents (www-get-feature-value object '<-denotational)) + (if (characterp parents) + (setq parents (list parents))) (princ (format "

%s %s

\n
\n" (www-format-value-as-char-list parents) (www-format-feature-name '->denotational lang)))) (when (setq parents (www-get-feature-value object '<-subsumptive)) + (if (characterp parents) + (setq parents (list parents))) (princ (format "

%s %s

\n
\n" (www-format-value-as-char-list parents) (www-format-feature-name '->subsumptive lang)))) (when (eq genre 'character) (setq GlyphWiki-id (char-GlyphWiki-id object))) - (princ (format "%s%s\n" - level - (www-format-encode-string - (est-format-object object) - ;; (if (eq genre 'character) - ;; (char-to-string object) - ;; (format "%s" (concord-object-id object))) - ) - (if GlyphWiki-id - (format - " \"%s\"" - GlyphWiki-id - GlyphWiki-id GlyphWiki-id) - "") - level)) + (cond + ((eq genre 'image-resource) + (princ + (if (setq ret (concord-object-get object '=location@iiif)) + (if (setq base-image + (car (concord-object-get object '<-image-segment))) + (format "\"%s\"" + (www-uri-encode-object base-image) + (concord-object-get object 'image-offset-x) + (concord-object-get object 'image-offset-y) + (concord-object-get object 'image-width) + (concord-object-get object 'image-height) + ret ret) + (if (and image-selection + (string-match "\\([0-9]+\\),\\([0-9]+\\),\\([0-9]+\\),\\([0-9]+\\)" image-selection)) + (progn + (setq x (string-to-int (match-string 1 image-selection)) + y (string-to-int (match-string 2 image-selection)) + w (string-to-int (match-string 3 image-selection)) + h (string-to-int (match-string 4 image-selection))) + (setq width (float + (concord-object-get object 'image-width))) + ;; (setq height (float + ;; (concord-object-get object 'image-height))) + (format "
+ + +" + ret + (/ x width) + (/ y width) + (/ w width) + (/ h width) + )) + (format "
+ + +" + ret))) + (setq ret (concord-object-get object '=location)) + (format "\"%s\"" + ret ret))) + ) + ((and (eq genre 'character) + (not GlyphWiki-id) + (setq ret (or (encode-char object '=chise-hdic-tsj) + (encode-char object '===chise-hdic-tsj))) + (setq ret (decode-char '===chise-hdic-tsj ret)) + (setq ret (get-char-attribute ret 'hdic-tsj-word-id))) + (princ + (format "%s" + ret + (www-format-encode-string + (est-format-object object 'readable)))) + ) + ((and (eq genre 'character) + (not GlyphWiki-id) + (setq ret (or (encode-char object '=chise-hdic-syp) + (encode-char object '===chise-hdic-syp))) + (setq ret (decode-char '===chise-hdic-syp ret)) + (setq ret (get-char-attribute ret '=hdic-syp-entry-id))) + (princ + (format "%s" + ret + (www-format-encode-string + (est-format-object object 'readable)))) + ) + ((or (and (eq genre 'glyph-image) + (setq image-cobj + (car (concord-object-get object '->image-resource)))) + (and (eq genre 'character) + ;; (setq ret (www-format-encode-string + ;; (est-format-object object 'readable))) + ;; (string-match + ;; "\"SW-JIGUGE\\([45]\\)-\\([0-9][0-9][0-9]\\)\\([0-9][0-9]\\)"image-resource))) + )) + (if (and (setq ret (concord-object-get image-cobj '=location@iiif)) + (setq base-image + (car (concord-object-get image-cobj '<-image-segment)))) + (princ + (format "\"%s\"" + (www-uri-encode-object base-image) + (concord-object-get image-cobj 'image-offset-x) + (concord-object-get image-cobj 'image-offset-y) + (concord-object-get image-cobj 'image-width) + (concord-object-get image-cobj 'image-height) + ret ret)) + (setq ret (concord-object-get image-cobj '=location)) + (princ (format "\"%s\"" + ret ret))) + ) + ((and (eq genre 'hng-card) + (setq ret (concord-object-get object '=hng-card)) + (setq ret (symbol-name ret)) + (string-match "\\([0-9]+\\)-\\([0-9]+\\)" ret)) + (setq ret + (format + "\"HNG-card:%s\"" + ret + (string-to-int (match-string 1 ret)) + (string-to-int (match-string 2 ret)))) + (princ + (if (setq image-cobj + (car (concord-object-get object '->image-resource))) + (format "%s" + (www-uri-encode-object image-cobj) + ret) + ret)) + ) + (t + (setq ret (www-format-encode-string + (est-format-object object 'readable))) + (when (string-match + "\"HNG\\([0-9]+\\)-\\([0-9]+\\)[a-z]?\""%s%s\n" + level + (cond + (uri-feature-name + (format "%s" + ;; (if est-hide-cgi-mode + ;; "%s" + ;; "%s") + (www-uri-make-object-url object uri-object) + ret) + ) + (HNG-card + (format + "%s" + HNG-card ret) + ) + (t ret)) + (if GlyphWiki-id + (format + " \"%s\"" + GlyphWiki-id + GlyphWiki-id + chise-wiki-glyphwiki-glyph-image-url + GlyphWiki-id) + "") + level)) + )) (if (> level 1) (princ "