pine
pine copied to clipboard
Functional HTML5 and XML library for the Scala platform
Hello all. Please, forgive me if I'm making a wrong move posting this question here. I'm looking for an alternative in Scala for Scrapy for parsing HTML documents for Web...
There is a comment about a global state variable in the Text object of TagRender.scala: ``` // TODO Don't mutate global state private[pine] var lineBreak = false ``` The `lineBreak`...
In pine 0.2 the following was quite unexpected: ``` scala> import pine._ import pine._ scala> html"_".toHtml res0: String = ``` Where did the underscore go to? Is this because of...
The HTML parser in [`InlineHtml`](https://github.com/sparsetech/pine/blob/master/shared/src/main/scala/pine/macros/InlineHtml.scala) inserts placeholders and uses string replacements. We should provide the input as a stream instead. Also, evaluate whether [Scalameta](http://scalameta.org/) could be used.
Implement DOM patching for better rendering performance. See the following projects for inspiration: * https://github.com/localvoid/kivi * https://github.com/livoras/simple-virtual-dom * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/DOM/patching.ts * https://github.com/fomkin/korolev/blob/master/vdom/src/test/scala/VDomSpec.scala
There should be a way to remove redundant spaces and line breaks. See also [this article](http://perfectionkills.com/experimenting-with-html-minifier/) and [htmlcompressor](https://github.com/serg472/htmlcompressor/blob/master/src/main/java/com/googlecode/htmlcompressor/compressor/HtmlCompressor.java#L64).
A `TagRef` can be only resolved when the corresponding node was added to the browser DOM. While this is the most common use case, we could alternatively take an implicit...
We could make nodes with IDs accessible as follows: ``` scala val root = html("test.html") val div = root.ids.text // instead of: tpl.byId[tag.div]("text") ``` [Type providers](http://docs.scala-lang.org/overviews/macros/typeproviders.html) are an option, but...