跳到内容

posthml/posthtml

净现值法 测验 新闻报道 标准代码样式

发布HTML

PostHTML是一个使用JS插件转换HTML/XML的工具。PostHTML本身非常小。它只包括一个HTML解析器、一个HTML节点树API和一个节点树字符串生成器。

所有HTML转换都是由插件完成的。这些插件只是简单的小JS函数,它们接收一个HTML节点树,对其进行转换,并返回一个修改过的树。

有关PostHTML的更多详细信息,请参阅文档.

依赖关系

姓名 状态 描述
posthtml处理器 净现值法 将HTML/XML解析为PostHTMLTree
后html-render 净现值法 将PostHTMLTree渲染为HTML/XML

创建到您的项目

npm初始化posthtml

安装

npm i-D posthtml

用法

美国石油学会

同步

进口 后html  “posthtml”

常数 html格式 = `
<组件>
超级标题
妙不可言的文字
</组件>
`

常数 结果 = posthtml()
  .使用(要求('posthtml-custom-elements')())
  .过程(html格式, { 同步:真的 })
  .html格式

慰问.日志(结果)
<div公司 ="成分">
  <div公司 ="标题">超级标题</div公司>
  <div公司 ="文本">精彩的文字</div公司>
</div公司>

⚠️异步插件无法在同步模式下使用,将引发错误。建议尽可能异步使用PostHTML。

异步

进口 posthtml  “posthtml”

常数 html格式 = `
<html>
<body>
OMG公司</p>
</body>
</html>
`

posthtml(
  [
    要求('发布html-to-svg-tags')(),
    要求(“posthtml-extend-attrs”)({
      attrsTree属性树:{
        “哇!”:{
          身份证件:“wow_id”,
          填满:“#4A83B4”,
          '填充规则':“偶数”,
          '字体家族':“宋体,Verdana”
        }
      }
    })
  ])
  .过程(html格式/*,选项*/)
  .然后((结果) =>  慰问.日志(结果.html格式))
<高级副总裁 圣诞节="http://www.w3.org/2000/svg">
  <文本
    ="真 的"身份证件="wow_id(世界id)"填满="#4A83B4型"圆角规则="偶数"前家族="宋体,Verdana">对象管理组织</文本>
</高级副总裁>

指令

进口 posthtml  “posthtml”

常数 php(电话) = `
<组件>
<title><?php echo$title;?></标题>
<文本><?php-echo$article;?></文本>
</组件>
`

常数 结果 = posthtml()
  .使用(要求('posthtml-custom-elements')())
  .过程(html格式, {
    指令:[
      { 名称:'?php', 开始:'<', 结束:'>' }
    ]
  })
  .html格式

慰问.日志(结果)
<div公司 ="成分">
  <div公司 ="标题"><?php-echo$title?></div公司>
  <div公司 ="文本"><?php-echo$article?></div公司>
</div公司>
npm i posthtml-cli
“脚本”: {“posthtml”:"posthtml-o output.html-i input.html-c配置.json"}
npm运行posthtml
npm i-D gulp-posthtml
进口 水龙头  “吞咽”
进口 posthtml  “gulp-posthtml”
进口 { 任务, 型钢混凝土, 目的地 }  “大口喝”

任务(“html”, () => {
   路径

  常数 插件 = [ 要求('posthtml包含')({ :`${路径}` }) ]
  常数 选项 = {}

  型钢混凝土(“src/**/*.html”)
    .(水龙头((文件) => 路径 = 文件.路径))
    .(posthtml(插件, 选项))
    .(目的地('生成/'))
})

检查项目-子以Gulp为例

npm i-D grunt-posthtml
posthtml:{
  选项:{
    使用:[
      要求('posthtml-doctype')({ 文档类型:“HTML 5” }),
      要求(“包含posthtml”)({ :'./', 编码:“utf-8” })
    ]
  },
  建造:{
    文件夹:[
      {
        :真的,
        无缝线路:'html/',
        型钢混凝土:['*.html'],
        目的地:“tmp/”,
        扩大:真的,
      }
    ]
  }
}
npm i-D html-loader后html-lauder

v1.x版

webpack.config.js

常数 配置 = {
  模块:{
    装载机:[
      {
        测试:/\.html格式$/,
        装载机:'html!posthtml'
      }
    ]
  },
  posthtml:(ctx公司) => ({
    解析器:要求('posthtml-pug'),
    插件:[
      要求(“posthtml-bem”)()
    ]
  })
}

出口 违约 配置

v2.x版

webpack.config.js

进口 { 加载程序选项插件 }  '网络包'

常数 配置 = {
  模块:{
    规则:[
      {
        测试:/\.html格式$/,
        使用:[
          {
            装载机:“html-loader”,
            选项:{ 减少:真的 }
          },
          {
            装载机:'后html-loader'
          }
        ]
      }
    ]
  },
  插件:[
    新的 加载程序选项插件({
      选项:{
        posthtml(ctx公司) {
          返回 {
            解析器:要求('posthtml-pug'),
            插件:[
              要求(“posthtml-bem”)()
            ]
          }
        }
      }
    })
  ]
}

出口 违约 配置
$npm i汇总插件posthtml-D#$npm i汇总-plugin-posthtml-模板-D
进口 { 参加 }  “路径”;

进口 posthtml  “rollup-plugin-posthtml-template”;
//或
//从“rollup-plugin-posthtml”导入posthtml;

进口 糖衣  “posthtml-sugarml”;  //npm i posthtml-蔗糖-D
进口 包括  'posthtml包含';  //npm i posthtml包括-D

出口 违约 {
  进入:参加(__目录名, 'main.js'),
  目的地:参加(__目录名, 'bundle.js'),
  格式:“生活”,
  插件:[
    posthtml({
      解析器:糖衣(),
      插件:[包括()],
      模板:真的  //仅限rollup-plugin-posthtml-template
    })
  ]
};

分析器

进口 哈巴狗  'posthtml-pug'

posthtml().过程(html格式, { 解析器:哈巴狗(选项) }).然后((结果) => 结果.html格式)
姓名 状态 描述
后html-pug 净现值法 帕格分析器
糖衣 净现值法 SugarML解析器

插件

如果你想开发自己的插件,我们建议使用后html-plugin-starter开始吧。

维护者


伊万·德米多夫

伊万·沃伊舍夫

贡献者

支持者

感谢我们所有的支持者!🙏 [成为支持者]