X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=cwiki-view.el;h=570e6e3ee729a09f49926fa203d9a31d0de88eab;hb=8ee7d0997336641c6277262e987ab4c923cd4459;hp=2164d607847efb5db1c2c733d9f9ef246b462321;hpb=6b42da066d33dc61167e0fbae36bc7248170c5e0;p=chise%2Fest.git diff --git a/cwiki-view.el b/cwiki-view.el index 2164d60..570e6e3 100644 --- a/cwiki-view.el +++ b/cwiki-view.el @@ -1,5 +1,6 @@ ;; -*- coding: utf-8-mcs-er -*- (require 'cwiki-format) +(require 'char-db-json) (defvar chise-wiki-view-url "view.cgi") (defvar chise-wiki-edit-url "edit.cgi") @@ -43,6 +44,7 @@ size=\"64\" maxlength=\"256\" value=\"%s\"> ) (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 @@ -66,7 +68,8 @@ size=\"64\" maxlength=\"256\" value=\"%s\"> without-header logical-feature chise-wiki-displayed-features parents - GlyphWiki-id HNG-card ret object-spec) + GlyphWiki-id HNG-card HNG-card-id HNG-card-cobj ret object-spec + width height image-cobj base-image x y w h) (if (eq level 0) (setq level 1 without-header nil) @@ -101,9 +104,40 @@ ul { margin: 0 0; color: black; } li { margin: 0 0 0 2em; } .feature-name { font-family: sans-serif; font-weight: bold; } .feature-name a { color: black; } + +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; +} + +.tooltip .tooltiptext { + visibility: hidden; + width: 120px; + top: 100%%; + left: 50%%; + margin-left: -60px; + background-color: black; + color: #fff; + text-align: center; + padding: 5px 0; + border-radius: 6px; + + position: absolute; + z-index: 1; +} + +.value .image-list img { height: 320px; vertical-align: top; } + +.list .tooltip:hover .tooltiptext { + visibility: visible; +} --> + + EsT %s = %s \n" genre @@ -144,10 +178,17 @@ li { margin: 0 0 0 2em; } (format " - +%s
\n" - genre rdf-uri-object)) + genre rdf-uri-object + (if (eq genre 'character) + (format " + + +\n" + genre rdf-uri-object) + ""))) (when (setq parents (www-get-feature-value object '<-denotational)) (princ (format "

%s %s

\n
\n" (www-format-value-as-char-list parents) @@ -158,34 +199,150 @@ li { margin: 0 0 0 2em; } (www-format-feature-name '->subsumptive lang)))) (when (eq genre 'character) (setq GlyphWiki-id (char-GlyphWiki-id object))) - (setq ret (www-format-encode-string - (est-format-object object 'readable))) - (setq HNG-card - (if (string-match "\"HNG\\([0-9]+\\)-\\([0-9]+\\)\""%s%s\n" - level - (if uri-feature-name - (format "%s" - ;; (if est-hide-cgi-mode - ;; "%s" - ;; "%s") - (www-uri-make-object-url object uri-object) - ret) - (if HNG-card - (format - "%s" - HNG-card ret) - ret)) - (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 'glyph-image) + (setq image-cobj + (car (concord-object-get object '->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)) + (princ + (format + "\"HNG-card:%s\"" + ret + (string-to-int (match-string 1 ret)) + (string-to-int (match-string 2 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 GlyphWiki-id) + "") + level)) + )) (if (> level 1) (princ "