HTML文件在浏览器中呈现时令人赏心悦目,并且易于阅读,要理解它的原始内容真是个地狱。
是否可以从HTML片段中提取文本并将其转换为具有基本格式的简单文本文件?
我的意思是一种混乱的方法。删除CSS,删除上标和下标。仅保留必要的信息,文本和格式,以便人类以理解原始提取的HTML片段的方式理解新提取的文本。
P.S:我尝试使用正则表达式,使用包容性方法仅选择一些标签,并且由于HTML文件可能会变得非常棘手,因此两者都很快被证明是不切实际的。
答案 0 :(得分:1)
一个选项是Turndown JS library,它可以与Node一起使用或用作JS库。它将HTML转换为MarkDown。它还有一个demo page,可在其中进行测试。
我使用该库创建了一个简单的示例,该示例在textarea中显示输出并下载文件(请参见this answer):
// See https://github.com/domchristie/turndown#usage
var turndownService = new TurndownService();
var markdown = turndownService.turndown(document.getElementById('content'));
// Output to textarea for preview
var textarea = document.getElementById('out');
textarea.value = markdown;
// Download function from https://stackoverflow.com/a/18197341/5845085
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
// Download the file
download('text.md', markdown);
<div id="content" hidden>
<h1>Title</h1>
<p>Text text text text</p>
<ul>
<li>Text</li>
<li>Text</li>
</ul>
</div>
<textarea id="out" style="width: 80%; height: 200px;"></textarea>
<script src="https://unpkg.com/turndown/dist/turndown.js"></script>