elquery icon indicating copy to clipboard operation
elquery copied to clipboard

Optionally keep whitespace in elquery-read-string

Open mihaiolteanu opened this issue 6 years ago • 1 comments

Is it possible to implement elquery-read-string to optionally keep the whitespace when reading the string?

-(defun elquery-read-string (string)
+(defun elquery-read-string (string &optional keep-whitespace)
   "Return the AST of the HTML string STRING as a plist."
   (with-temp-buffer
     (set-buffer-multibyte nil) ; ref debbugs.gnu.org/cgi/bugreport.cgi?bug=31427
     (insert string)
     (let ((tree (libxml-parse-html-region (point-min) (point-max))))
       (thread-last tree
-        (--tree-map (if (stringp it) (s-trim (s-collapse-whitespace it)) it))
+        (--tree-map (if (and (stringp it)
+                             (not keep-whitespace))
+                        (s-trim (s-collapse-whitespace it)) it))
         (elquery--parse-libxml-tree nil)))))

My use case scenario is parsing a lyrics html page. With the current implementation and the whitespace stripped, the newlines are removed resulting in a big one-liner string. I'm left guessing where one line ends and another one begins.

mihaiolteanu avatar Sep 18 '19 11:09 mihaiolteanu

Hello :)

mihaiolteanu avatar Dec 13 '19 13:12 mihaiolteanu