🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

html-22-md

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

html-22-md

A JS library for convert HTML<String> to markdown<String>, gzip 9kb

latest
Source
npmnpm
Version
0.5.8
Version published
Maintainers
1
Created
Source

一个用于转换HTMLMarkdown的工具。English

Build Status npm codecov npm bundle size David

效果

live-demo

为什么做这个工具

最初的动机是希望将leetcode-cn上的题目和自己的解答搬到github, 但是获取的介绍都是html格式文本,因此有了将html转换为markdown的需求。

找了几个工具,结果并不是很合胃口,有的不支持nodejs,有的并不能很好的转换,最终决定自己写一个来用。

刚开始只是写了一个比较简单的,但已经能够处理我的需求。

但后来偶尔一次使用,面对更复杂的html格式,就会出现混乱,这个库也就是一个重构版, 当然,它可能还存在很多bug没有发现,但希望能在后续不断完善,如果有发现bug,请提issuePR,我会第一时间进行处理。

使用说明

安装

npm -i html-to-md

使用
const html2md=require('html-to-md')

console.log(html2md('<strong><em>strong and italic</em></strong>',options,force))
// ***strong and italic***

参数(可选):

options:

名称数据类型默认值说明
skipTagsArray
[
  'div',
  'html',
  'body',
  'nav',
  'section',
  'footer',
  'main',
  'aside',
  'article',
  'header'
]
需要忽略的标签名
emptyTagsArray[]不仅忽略它本身,它内部所有标签名全部忽略
ignoreTagsArray
[
  '',
  'style',
  'head',
  '!doctype',
  'form',
  'svg',
  'noscript',
  'script',
  'meta'
]
忽视标签及其内部所有内容
aliasTagsObject
{
  figure :'p',
  figcaption:'p',
  dl:'p', 
  dd:'p', 
  dt:'p'
}
为标签定义一个别名(通常作用于一些不常用标签)

优先权:skipTags > emptyTags > ignoreTags > aliasTags

例:

html2md('<><b><i>abc</i></b></>',{ignoreTags:['']})
// ''

html2md('<><b><i>abc</i></b></>',{skipTags:['']})
// ***abc***

html2md('<><b><i>abc</i></b></>',{emptyTags:['']})
// abc

html2md('<><b><i>abc</i></b></>',{skipTags:[''],aliasTags:{b:'ul',i:'li'}})
// *  abc

force(Boolean)(默认false)

说明
true表示强制使用自定义配置
false对自定义配置使用Object.assign操作

例:

// 默认 skipTags 为 ['div','html','body']

// 配置一:
html2md('<div><b><i>abc</i></b></div>',{skipTags :['b']},false)
// skipTags 为 ['div','html','body','b']

// 配置二:
html2md('<div><b><i>abc</i></b></div>',{skipTags :['b']},true)
// 经过配置后 skipTags 为 ['b']

特点

  • 快速,小巧,无任何依赖,gzip 7kb

  • 支持nodeJS,参数(html文本)为字符串

  • 100+单元测试和模块测试,覆盖率98%

注意:只有有效规范的HTML文本才能准确显示结果,如<p>abc<<i>abc</>等都是无效文本

支持标签

  • a
  • b
  • blockquote
  • code
  • del
  • em
  • h1~h6
  • hr
  • i
  • img
  • input
  • li
  • ol
  • p
  • pre
  • s
  • strong
  • table
  • tbody
  • td
  • th
  • thead
  • tr
  • ul

Keywords

html2md

FAQs

Package last updated on 16 May 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts