Thanks, I will just paste the content description of the *Bruce too* here.
I'd really appreciate if someone could give some option or do a review.
It's the same as the original PR
https://github.com/apache/incubator-weex/pull/2071

*Add a new component to support Html tags which named WxHtmlComponent
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/WxHtmlComponent.java>
.
For now it's support render table,img,video and all textview supported html
tags. And we can config what tags we care, even support header and footer
view add in WxHtmlComponent
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/WxHtmlComponent.java>
.*

*Here is a full example:*

*<html-text :html-text="formatHtml"
           :html-option="htmlOption">
     <div> Any Header View</div>
     <div> Any Footer View</div>
</html-text>
*

*Attributes*

*New component use in js named html-text, there are two attribute*

   -

   *html-text*

   *The origin raw html text, looks like this
   <https://www.yuque.com/tuyong/records/xdb5u8/html>, contains all kinds of
   rich text tags...*
   -

   *html-option*

   *inner configs about how to render specified tag:*

   *htmlOption: {
             image: {
               resize: 'cover'
             },
             table: {
               template: ''
             },
             tags:['img','table','video']
           },
   *

   -

      *image*

      *img tag, how to handle image(like image
      <http://weex-project.io/cn/references/components/image.html#shu-xing>'s
      attribute )*
      -

      *table*

      *table tag's html template to control how to render table,the default
      template can be found here
      
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/HtmlComponent.java#L40>.
      it's wrapped by WRAP_PARENT WebView
      
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/AtMostWebView.java>
default.*
      -

      *tags*

      *tags array that will be handled, what show above is default three
      tags(img,table,video), you can add any specail tag in this array,
      and custom implement
      
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L102>by
      native view.*

*Header&Footer*

*We can add header and footer in html-text, Only the direct first
two subview can be parsed
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/WxHtmlComponent.java#L115>
by WxHtmlComponent
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/WxHtmlComponent.java>
,
which means the first one is Header, and the second one is Footer. but the
header&footer view-self can be any of views as you wish.*
*Tag Click*

*There are default empty click listeners
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L93>,
and can be customed by overide getTagViewClickListener
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L92>
which
contains many useful information*
*Why custom HtmlCompat
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/htmlcompat/HtmlCompat.java>*

   - *For now, the source cod of HtmlCompat have been moved in AndroidX
   <https://developer.android.com/reference/androidx/core/text/HtmlCompat>,where
   there are few projects has integrated*
   - *The default interface HtmlCompat.TagHandler
   
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/htmlcompat/HtmlCompat.java#L83>
do
   not contains Attributes params in positon of start tag*
   - *The default css-style parse rules not support color named as agb,
   which already added here
   
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/htmlcompat/XmlUtils.java#L108>*
   - *The default quote style is extremely ugly,isn't it ? So let's make it
   
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/spans/WxQuoteSpan.java>
as
   MarkDown looks like*
   - *The bullet span can't custom gap, bullet style etc..*
   - *CUSTOM BY USER IS LIMITED, that's the primary cause*

*How this works*

*The key thought of WxHtmlComponent
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/WxHtmlComponent.java>
is
spitting origin raw html text by different tags, and use native view to
render each tag. (That's because i can't find a good way to
render table tag in html, if there exists, please contact me)*

*Can find the source code here
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/HtmlComponent.java#L212>*

*Here is a relation of mapping*
*<img>..</img>,<img .../>**getDefaultImageView*
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L156>
*<table> ..</table>* *getDefaultTabView*
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L106>
*<video ..>..</video>,<video ../>* *getDefaultVideo*
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L131>
*textView supported tag* *getDefaultTextView*
<https://github.com/brucetoo/incubator-weex/blob/10c5576f4d9384967fad67759f2ec2ed39f36530/android/sdk/src/main/java/com/taobao/weex/ui/component/html/adapter/DefaultHtmlTagAdapter.java#L192>
Best Regards,
YorkShen

申远


Jan Piotrowski <[email protected]> 于2019年2月21日周四 下午8:56写道:

> There also seems to be a related documentation PR at
> https://github.com/apache/incubator-weex-site/pull/308
>
> -J
>
> Am Do., 21. Feb. 2019 um 09:41 Uhr schrieb 申远 <[email protected]>:
> >
> > It would be better if you could share your feature with more detail here,
> > like document so that everyone can understand what is happening here.
> >
> > Thanks
> >
> > Best Regards,
> > YorkShen
> >
> > 申远
> >
> >
> > Bruce too <[email protected]> 于2019年2月21日周四 下午3:08写道:
> >
> > > We can check this PR <
> https://github.com/apache/incubator-weex/pull/2071>
> > >
>

Reply via email to