CNode

做了一个 html 转 markdown 的工具 h2m

精华
分享
Iisland205发布于11 年前最后回复8 年前22 回复17695 浏览0 收藏

https://raw.githubusercontent.com/island205/h2m/master/design/logo@0.5.png

在线试用: http://island205.github.io/h2m/

https://raw.githubusercontent.com/island205/h2m/master/images/online-converter.png

安装

$npm install h2m

使用

var h2m = require('h2m')
 
var md = h2m('<h1>Hello World</h1>')
// md = '# Hello World' 

支持

h2m 现在支持 Markdown 标准 : CommonMark

查看回复

回复 (22)

W
waybi#1·8 年前

打包时用UglifyJs无法压缩

F
Freen247#2·8 年前

还在持续维护嘛

来自酷炫的 CNodeMD

I
island205#3·11 年前

求喷,求 issue,求 PR。

L
luoyjx#4·11 年前

来的好晚啊啊啊... 之前用的html2markdown模块转换有点坑...

I
island205#5·11 年前

npm install h2m -g 可以在命令行使用了,详情 https://github.com/island205/h2m#cli

I
island205#6·11 年前

@i5ting 好的

I
island205#7·11 年前

@i5ting data image 是支持的,只是 ! [alt] (src) 在没有给定 alt 的情况下,alt 会取 src,相对太长了点。

I
island205#9·11 年前
引用 i5ting@island205 哈哈,能fix么?

@i5ting 可以对 alt 限制一个长度,但是 src 就是那么长。在 v0.5.0 版本修复。

I
island205#10·11 年前

@i5ting v0.5.0 也会提供一些自定义的配置项,你也可以根据需要自定义。

C
chard1024#12·10 年前

mark

I
island205#13·11 年前
引用 luoyjx来的好晚啊啊啊... 之前用的html2markdown模块转换有点坑...

@luoyjx 那可以试试,你是在前端用,还是在后端用?

L
luoyjx#14·11 年前
引用 island205@luoyjx 那可以试试,你是在前端用,还是在后端用?

@island205 额,后端,把早期的富文本处理成md

J
jsonxu#15·11 年前

能不能m2h

I
island205#16·11 年前
引用 jsonxu能不能m2h

@jsonxu 这个已经有做的很好的类库了 https://github.com/evilstreak/markdown-js

I
island205#18·11 年前
I
i5ting#19·11 年前
![data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJDQzA1MTVGNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJDQzA1MTYwNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkNDMDUxNUQ2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkNDMDUxNUU2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6p+a6fAAAAD0lEQVR42mJ89/Y1QIABAAWXAsgVS/hWAAAAAElFTkSuQmCC](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJDQzA1MTVGNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJDQzA1MTYwNkE2MjExRTRBRjEzODVCM0Q0NEVFMjFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkNDMDUxNUQ2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkNDMDUxNUU2QTYyMTFFNEFGMTM4NUIzRDQ0RUUyMUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6p+a6fAAAAD0lEQVR42mJ89/Y1QIABAAWXAsgVS/hWAAAAAElFTkSuQmCC)

I
i5ting#20·11 年前

这个需要转一些 @island205

I
island205#21·11 年前

@i5ting v0.5.0 已经更新,现在如果图片没有 alt 或者 title,就让 [] 为空,不在取 src 值了。也可以自定义转换了:

h2m('<a href="http://island205.github.io/h2m/">h2m</a>', {
	overides: {
		a: function(node) {
		  /**
		  node is an object as the a tag:
		  {
			name: "a",
			attrs: {
			  href: 'http://island205.github.io/h2m/'
			},
			md: 'h2m'
		  }
		  */
		  return `[This is an link element](${node.attrs.href})`
		}
	}
}
// output [This is an link element](http://island205.github.io/h2m/)
D
DevinXian#22·10 年前

mark好工具

参与回复
登录后即可参与回复。登录