(require 'cwiki-view)
+;;; @ stext parser
+;;;
+
+(defun www-xml-parse-string (string)
+ (require 'xml)
+ (nthcdr
+ 2
+ (car
+ (with-temp-buffer
+ (insert "<top>")
+ (insert string)
+ (insert "</top>")
+ (xml-parse-region (point-min)(point-max))))))
+
+(defun www-xml-to-stext-props (props)
+ (let (dest)
+ (dolist (cell props)
+ (setq dest (cons (cdr cell)
+ (cons (intern (format ":%s" (car cell)))
+ dest))))
+ (nreverse dest)))
+
+(defun www-xml-to-stext-unit (unit)
+ (let (name props children)
+ (cond
+ ((stringp unit)
+ unit)
+ ((consp unit)
+ (setq name (car unit))
+ (if (stringp name)
+ nil
+ (setq props (nth 1 unit)
+ children (nthcdr 2 unit))
+ (if children
+ (setq children (www-xml-to-stext-list children)))
+ (if children
+ (list* name
+ (www-xml-to-stext-props props)
+ children)
+ (if props
+ (list name (www-xml-to-stext-props props))
+ (list name))))
+ )
+ (t
+ (format "%S" unit)))))
+
+(defun www-xml-to-stext-list (trees)
+ (cond
+ ((atom trees)
+ (www-xml-to-stext-unit trees)
+ )
+ ((equal trees '(("")))
+ nil)
+ (t
+ (mapcar #'www-xml-to-stext-unit
+ trees))))
+
+(defun www-stext-parse-xml-string (string)
+ (www-xml-to-stext-list
+ (www-xml-parse-string string)))
+
+
+;;; @ parser
+;;;
+
(defun www-parse-string-default (string)
(setq string (decode-uri-string string 'utf-8-mcs-er))
(condition-case nil
ten 32)))))
(defun www-parse-string-as-wiki-text (string)
- (list (decode-uri-string string 'utf-8-mcs-er)))
+ (www-stext-parse-xml-string
+ (decode-uri-string string 'utf-8-mcs-er))
+ ;; (list (decode-uri-string string 'utf-8-mcs-er))
+ )
(defun www-feature-parse-string (feature-name string &optional format)
(unless format
(www-parse-string-default string)
)))
+
+;;; @ display
+;;;
+
(defun www-set-display-char-desc (uri-char feature value format &optional lang)
(when (stringp feature)
(setq feature (intern feature)))
(if (equal (www-char-feature char feature) value)
(www-html-display-paragraph
"Feature-value is not changed.")
- (www-html-display-paragraph
- (format "New feature-value = %S is different from old value %S"
- value
- (www-char-feature char feature)))
+ ;; (www-html-display-paragraph
+ ;; (format "New feature-value = %S is different from old value %S"
+ ;; value
+ ;; (www-char-feature char feature)))
(put-char-attribute char latest-feature value)
(save-char-attribute-table latest-feature)
(setq ret (char-feature-property '$object 'additional-features))