from html.parser import HTMLParser
from pathlib import Path
import json
class Main(HTMLParser):
    def __init__(self): super().__init__(); self.inside=False; self.tags=[]; self.parts=[]
    def handle_starttag(self,tag,attrs):
        if tag=='article':self.inside=True
        if self.inside and tag in ('h2','p'):self.tags.append(tag);self.parts.append('## ' if tag=='h2' else '')
    def handle_endtag(self,tag):
        if tag=='article':self.inside=False
        if self.inside and tag in ('h2','p'):self.parts.append('\n\n')
    def handle_data(self,data):
        if self.inside:self.parts.append(data)
root=Path(__file__).resolve().parent
p=Main();p.feed((root/'source.html').read_text())
out=''.join(p.parts).strip()
assert '先运行类型检查。' in out and '再核对页面与下载文件。' in out
assert '样站导航' not in out
result={'markdown':out,'metadata':{'sourceURL':(root/'source.html').as_uri()},'engine':'Python HTMLParser; not Firecrawl'}
(root/'local-result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2))
(root/'result.md').write_text(out+'\n\nSource: '+(root/'source.html').as_uri())
print(json.dumps(result,ensure_ascii=False,indent=2))
