jarontai / html2md

A library for converting HTML to Markdown in Dart. It supports CommonMark, simple table and custom converting rules. 将html转换为markdown的Dart库,支持CommonMark、简单表格以及自定义转换规则。
https://pub.dev/packages/html2md
BSD 2-Clause "Simplified" License
58 stars 25 forks source link

The getter 'localName' was called on null. #4

Closed ponnamkarthik closed 6 years ago

ponnamkarthik commented 6 years ago
String html = ''''<div class="postArticle-content js-postField js-notesSource js-trackedPost" data-post-id="ac7a012b7a25" data-source="post_page" data-tracking-context="postPage" data-scroll="native"><section name="1ef3" class="section section--body section--first"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><h1 name="0b3a" id="0b3a" class="graf graf--h3 graf--leading graf--title">Rtmp Player Android using Exo-Media Player</h1><p name="12c9" id="12c9" class="graf graf--p graf-after--h3">Hello Reader’s, before we start</p><h3 name="e452" id="e452" class="graf graf--h3 graf-after--p">Lets see What is RTMP&nbsp;?</h3><p name="61c0" id="61c0" class="graf graf--p graf-after--h3">RTMP stands for <strong class="markup--strong markup--p-strong">real-time messaging protocol</strong>. It provides for high-performance transmission of audio, video, and data from an encoder to a server, which distributes the signal across the Internet. Many streaming providers and encoder developers support RTMP streaming, including Livestream.</p><p name="54ad" id="54ad" class="graf graf--p graf-after--p">read more about rtmp <a href="https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol" data-href="https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">here</a>.</p><p name="72b6" id="72b6" class="graf graf--p graf-after--p">No more Theory lets start coding&nbsp;:-)</p><h4 name="8eb6" id="8eb6" class="graf graf--h4 graf-after--p">Step 1:</h4><p name="b87c" id="b87c" class="graf graf--p graf-after--h4">change minimum SDK version</p><pre name="5d83" id="5d83" class="graf graf--pre graf-after--p">defaultConfig{<br>...<br>minSdkVersion 15<br>...<br>}</pre><p name="48bb" id="48bb" class="graf graf--p graf-after--pre">because in order to use this extension-rtmp library the minimum sdk needed is 15</p><p name="fc41" id="fc41" class="graf graf--p graf-after--p">edit your <strong class="markup--strong markup--p-strong"><em class="markup--em markup--p-em">build.gradle</em></strong> file and add the following two dependencies</p><pre name="6919" id="6919" class="graf graf--pre graf-after--p"><span class="markup--quote markup--pre-quote is-other" name="9a0b2939de14" data-creator-ids="c1efa5b3e3d9">compile 'com.google.android.exoplayer:exoplayer:r2.5.1' compile 'com.google.android.exoplayer:extension-rtmp:r2.5.1'</span></pre><p name="6218" id="6218" class="graf graf--p graf-after--pre">then sync your project</p><h4 name="a3ca" id="a3ca" class="graf graf--h4 graf-after--p">Step 2:</h4><p name="738c" id="738c" class="graf graf--p graf-after--h4">Create a simple exoplayer view in your layout file</p><pre name="b4b2" id="b4b2" class="graf graf--pre graf-after--p">&lt;com.google.android.exoplayer2.ui.SimpleExoPlayerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/simple_player"&gt; &lt;/com.google.android.exoplayer2.ui.SimpleExoPlayerView&gt;</pre><h4 name="ddc0" id="ddc0" class="graf graf--h4 graf-after--pre">Step 3:</h4><p name="3682" id="3682" class="graf graf--p graf-after--h4">Now in your player activity add the lines to prepare the player</p><figure name="7f2e" id="7f2e" class="graf graf--figure graf--iframe graf-after--p"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 77.286%;"></div><div class="progressiveMedia js-progressiveMedia is-canvasLoaded is-imageLoaded" data-scroll="native"><img src="https://i.embed.ly/1/display/resize?url=https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F19759716%3Fv%3D4%26s%3D400&amp;key=4fce0568f2ce49e8b54624ef71a8a5bd&amp;width=40" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="75"></canvas><div class="iframeContainer"><iframe data-src="/media/4e35a514ae391514736c81a899e52ac6?postId=ac7a012b7a25" data-media-id="4e35a514ae391514736c81a899e52ac6" data-thumbnail="https://i.embed.ly/1/image?url=https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F19759716%3Fv%3D4%26s%3D400&amp;key=4fce0568f2ce49e8b54624ef71a8a5bd" class="progressiveMedia-iframe js-progressiveMedia-iframe" allowfullscreen="" src="/media/4e35a514ae391514736c81a899e52ac6?postId=ac7a012b7a25" __idm_frm__="10737418307" width="700" height="250" frameborder="0"></iframe></div><noscript class="js-progressiveMedia-inner"><div class="iframeContainer"><IFRAME width="700" height="250" src="/media/4e35a514ae391514736c81a899e52ac6?postId=ac7a012b7a25" data-media-id="4e35a514ae391514736c81a899e52ac6" data-thumbnail="https://i.embed.ly/1/image?url=https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F19759716%3Fv%3D4%26s%3D400&amp;key=4fce0568f2ce49e8b54624ef71a8a5bd" allowfullscreen frameborder="0"></IFRAME></div></noscript></div></div></figure><p name="2e47" id="2e47" class="graf graf--p graf-after--figure">Run your code and the rtmp stream will be playing in your app and the size of is approx ~2.5Mb</p><p name="e2ae" id="e2ae" class="graf graf--p graf-after--p graf--trailing">download the project <a href="https://github.com/PonnamKarthik/RTMP-Exo-Player-Demo" data-href="https://github.com/PonnamKarthik/RTMP-Exo-Player-Demo" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">here</a>.</p></div></div></section><section name="49a5" class="section section--body section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><blockquote name="a575" id="a575" class="graf graf--pullquote graf--leading graf--trailing">If you find this article useful please recommend and&nbsp;share.</blockquote></div></div></section></div>''';

i got the below error when i am trying with the above html code

I/flutter (24544): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (24544): The following NoSuchMethodError was thrown building PostDetails(dirty, state:
I/flutter (24544): _PostDetailsState#fb885):
I/flutter (24544): The getter 'localName' was called on null.
I/flutter (24544): Receiver: null
I/flutter (24544): Tried calling: localName
I/flutter (24544): 
I/flutter (24544): When the exception was thrown, this was the stack:
I/flutter (24544): #0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:46:5)
I/flutter (24544): #1      Node.nodeName (package:html2md/src/node.dart:58:30)
I/flutter (24544): #2      Rules.indentedCodeBlock.<anonymous closure> (package:html2md/src/rules.dart:165:25)
I/flutter (24544): #3      Rule._check (package:html2md/src/rules.dart:49:61)
I/flutter (24544): #4      Rule.findRule.<anonymous closure> (package:html2md/src/rules.dart:59:55)
I/flutter (24544): #5      _ListBase&Object&ListMixin.firstWhere (dart:collection/list.dart:142:15)
I/flutter (24544): #6      Rule.findRule (package:html2md/src/rules.dart:59:29)
I/flutter (24544): #7      _replacementForNode (package:html2md/src/converter.dart:79:19)
I/flutter (24544): #8      _process (package:html2md/src/converter.dart:71:21)
I/flutter (24544): #9      _replacementForNode (package:html2md/src/converter.dart:83:17)
I/flutter (24544): #10     _process (package:html2md/src/converter.dart:71:21)
I/flutter (24544): #11     convert (package:html2md/src/converter.dart:44:16)
I/flutter (24544): #12     _PostDetailsState.getPostContent (package:bloggerapp/screens/post_details.dart:129:23)
I/flutter (24544): #13     _PostDetailsState.build (package:bloggerapp/screens/post_details.dart:96:19)
I/flutter (24544): #14     StatefulElement.build (package:flutter/src/widgets/framework.dart:3713:27)
I/flutter (24544): #15     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3625:15)
I/flutter (24544): #16     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #17     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #18     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter (24544): #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #23     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #24     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #25     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #27     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #28     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #30     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #31     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #32     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #33     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #34     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #36     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #37     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #38     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #39     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #41     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #43     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter (24544): #44     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #45     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #46     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #47     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #48     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #49     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #50     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #51     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #52     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #53     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #54     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #55     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #56     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter (24544): #57     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #58     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #59     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #60     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #62     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #63     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #64     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #65     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #66     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #68     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #69     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #70     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #71     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #73     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #74     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #75     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter (24544): #76     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #77     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #78     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #79     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #80     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #81     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #82     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #83     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #84     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #85     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
I/flutter (24544): #86     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #87     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #88     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #89     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #90     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #91     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #92     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #93     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #94     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #95     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #96     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #97     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter (24544): #98     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #99     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #100    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #101    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #102    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #103    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
I/flutter (24544): #104    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
I/flutter (24544): #105    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
I/flutter (24544): #106    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
I/flutter (24544): #107    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
I/flutter (24544): #108    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4420:32)
I/flutter (24544): #109    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4752:17)
I/flutter (24544): #110    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #111    _TheatreElement.update (package:flutter/src/widgets/overlay.dart:507:16)
I/flutter (24544): #112    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #113    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #114    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #115    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
I/flutter (24544): #116    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #117    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #118    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #119    ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
I/flutter (24544): #120    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #121    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
I/flutter (24544): #122    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #123    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #124    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #125    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
I/flutter (24544): #126    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #127    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
I/flutter (24544): #128    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #129    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
I/flutter (24544): #130    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
I/flutter (24544): #131    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
I/flutter (24544): #132    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
I/flutter (24544): #133    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2225:33)
I/flutter (24544): #134    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:621:20)
I/flutter (24544): #135    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
I/flutter (24544): #136    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter (24544): #137    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter (24544): #138    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
I/flutter (24544): [{ID: 1, url: https://android-developers.googleblog.com, blogid: 6755709643044947179, blogname: Android Developers Blog}]
I/flutter (24544): #139    _invoke (dart:ui/hooks.dart:120:13)
I/flutter (24544): #140    _drawFrame (dart:ui/hooks.dart:109:3)
I/flutter (24544): ════════════════════════════════════════════════════════════════════════════════════════════════════
jarontai commented 6 years ago

Thank you for reporting. I will fix this issue in version 0.1.6

jarontai commented 6 years ago

Version 0.1.6 published, I think this issue is fixed.

ponnamkarthik commented 6 years ago

@jarontai its working

jarontai commented 6 years ago

Close this issue because it's fixed.