((eq spec 02) (concat value "巻"))
((eq spec 03) (concat value "号"))
((eq spec 04) (concat value "編"))
- ((eq spec 05) (concat value "&HD-JA-4A53;"))
+ ((eq spec 05) (concat value "&MJ019590;"))
((eq spec 06) (concat value "集"))
((eq spec 07) (concat value "輯"))
((eq spec 08) (concat value "部"))
;; ((string= spec "02") `((decimal (:feature ,feature)) "巻"))
;; ((string= spec "03") `((decimal (:feature ,feature)) "号"))
;; ((string= spec "04") `((decimal (:feature ,feature)) "&AJ1-03620;"))
-;; ((string= spec "05") `((decimal (:feature ,feature)) "&HD-JA-4A53;"))
+;; ((string= spec "05") `((decimal (:feature ,feature)) "&MJ019590;"))
;; ((string= spec "06") `((decimal (:feature ,feature)) "集"))
;; ((string= spec "07") `((decimal (:feature ,feature)) "輯"))
;; ((string= spec "08") `((decimal (:feature ,feature)) "部"))
(format "%c" (ideographic-radical value)))
(est-eval-value-as-S-exp value)))
+(defun est-eval-value-as-shuowen-radical (value)
+ (if (and (integerp value)
+ (<= 0 value)
+ (<= value 540))
+ (list 'shuowen-radical
+ nil
+ (format "%c" (shuowen-radical value)))
+ (est-eval-value-as-S-exp value)))
+
+(defun daijiten-page-number-to-ndl-950498 (page)
+ (+ (/ page 2)
+ (cond ((< page 229)
+ 23)
+ ((< page 261)
+ 24)
+ ((< page 263)
+ 25)
+ ((< page 516) ; 284=285
+ 26)
+ (t
+ 27))))
+
+(defun est-eval-value-as-daijiten-page (value)
+ (if (integerp value)
+ (list 'link
+ (list :ref
+ (format "http://image.chise.org/tify/?manifest=https://www.dl.ndl.go.jp/api/iiif/950498/manifest.json&tify={%%22pages%%22:[%d]}"
+ (daijiten-page-number-to-ndl-950498 value)))
+ value)))
+
+(defun est-eval-value-as-Web-yunzi-char (value)
+ (if (char-or-char-int-p value)
+ (list 'link
+ (list :ref
+ (format "http://suzukish.s252.xrea.com/search/inkyo/yunzi/%c"
+ value))
+ (format "/%s/" (char-to-string value)))))
+
(defun est-eval-value-as-object-list (value &optional separator subtype)
(if (and (listp value)
(listp (cdr value)))
value)))
(est-eval-value-default value)))
+(defun est-eval-value-as-daijiten-page-list (value &optional separator subtype)
+ (if (and (listp value)
+ (listp (cdr value)))
+ (condition-case nil
+ (let (props)
+ (if separator
+ (setq props (list :separator separator)))
+ (if subtype
+ (setq props (list* :subtype subtype props)))
+ (list* 'list props
+ (mapcar #'est-eval-value-as-daijiten-page value)))
+ (error (format "%s" value)))
+ (format "%s" value)))
+
+(defun est-eval-value-as-Web-yunzi-char-list (value &optional separator subtype)
+ (if (and (listp value)
+ (listp (cdr value)))
+ (condition-case nil
+ (let (props)
+ (if separator
+ (setq props (list :separator separator)))
+ (if subtype
+ (setq props (list* :subtype subtype props)))
+ (list* 'list props
+ (mapcar #'est-eval-value-as-Web-yunzi-char value)))
+ (error (format "%s" value)))
+ (format "%s" value)))
+
(defun est-eval-value-as-creators-names (value &optional subtype)
(if (listp value)
(let (role-name)
'(:subtype unordered-list)
'(:separator " "))
(mapcar (lambda (creator)
- (est-eval-list
- '((value (:feature <-creator)))
- creator nil))
+ (if (concord-object-p creator)
+ (est-eval-list
+ '((value (:feature <-creator)))
+ creator nil)
+ (est-eval-value-default creator)))
value))
(est-eval-value-default value)))
((eq format 'wiki-text)
(est-eval-list value object feature-name nil uri-object)
)
+ ((eq format 'unordered-link-list)
+ (est-eval-list value object feature-name nil uri-object
+ '(:subtype unordered-list :separator " "))
+ )
((eq format 'S-exp)
(est-eval-value-as-S-exp value)
)
(est-eval-value-as-kuten value))
((eq format 'kangxi-radical)
(est-eval-value-as-kangxi-radical value))
+ ((eq format 'shuowen-radical)
+ (est-eval-value-as-shuowen-radical value))
((eq format 'ids)
(est-eval-value-as-ids value))
((eq format 'decomposition)
(est-eval-value-as-created-works value 'unordered-list))
((eq format 'journal-volume-list)
(est-eval-value-as-journal-volumes value))
+ ((eq format 'space-separated-daijiten-page-list)
+ (est-eval-value-as-daijiten-page-list value " "))
+ ((eq format 'space-separated-Web-yunzi-char-list)
+ (est-eval-value-as-Web-yunzi-char-list value " "))
(t
(est-eval-value-default value)
))
((null exp) "")
((consp exp)
(cond
- ((memq (car exp) '(value decimal hex HEX ku-ten kangxi-radical
+ ((memq (car exp) '(value decimal hex HEX ku-ten
+ kangxi-radical shuowen-radical
S-exp string default))
(let ((fn (plist-get (nth 1 exp) :feature))
domain domain-fn ret)
exp)))))
(defun est-eval-list (format-list object feature-name
- &optional lang uri-object)
+ &optional lang uri-object list-props)
(if (consp format-list)
(let ((ret
(mapcar
(est-eval-unit exp object feature-name lang uri-object nil))
format-list)))
(if (cdr ret)
- (list* 'list nil ret)
+ (list* 'list list-props ret)
(car ret)))
(est-eval-unit format-list object feature-name lang uri-object nil)))