美文网首页我爱编程Hexo(+NexT)
Hexo NexT:在文章中嵌入 CodePen或 jsFidd

Hexo NexT:在文章中嵌入 CodePen或 jsFidd

作者: 恬雅过客 | 来源:发表于2018-05-29 09:50 被阅读6次

建议直接去博客网站原文看效果,因为简书的markdown不支持此语法的。
搞 IT 技术的人,写博客有时候需要在博文中展示一些实施的 demo 代码效果,这就涉及到需要在博文中嵌入 CodePen 或 jsFiddle,jsFiddle 有个国内版 jsrun,我就做了上面两种尝试,也就不讲其他的了。至于这两款需要翻墙,对于搞 IT 技术的你不算事儿吧。

提一句:需要拿出来做嵌入用的代码,你去你的 demo 页面找Embed,中文版的好像叫嵌入,里面有下面的嵌入代码的语法需要的参数。

在文章中嵌入 CodePen

Hexo 官方插件页搜索codepen,然后找到hexo-codepen,点过去。
或者直接点击此处
里面有文档和示例,大致讲解一下。

1.安装

npm 安装:
$ npm install hexo-codepen --save
或 yarn 安装:
$ yarn add hexo-codepen

2.用法

语法结构:

{% codepen userId|anonymous|anon slugHash theme [defaultTab [height [width]]] %}

deme 链接:

https://codepen.io/CiTA/pen/bgjKKE

在 CodePen 里面 Embed 出来的html代码:

<p data-height="265" data-theme-id="dark" data-slug-hash="bgjKKE" data-default-tab="css,result" data-user="CiTA" data-embed-version="2" data-pen-title="CSS sidebar toggle" class="codepen">See the Pen <a href="https://codepen.io/CiTA/pen/bgjKKE/">CSS sidebar toggle</a> by Silvestar Bistrović (<a href="https://codepen.io/CiTA">@CiTA</a>) on <a href="https://codepen.io">CodePen</a>.</p>
<script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>

参数对应关系:

字段
userId CiTA
slugHash bgjKKE
theme dark
defaultTab css,result
height 265
width 默认为:100%,此值应根据您的博客主题进行调整

示例效果:

#替换参数后的语法:(*设置宽高时不要用%,会导致编译错误*)
{% codepen CiTA bgjKKE dark [css,result [265]] %}

运行后的:
{% codepen CiTA bgjKKE dark [css,result [265]] %}

当然也可以直接嵌入源码(CodePen 中 Embed 出来的代码支持3种格式:WordPress Shortcode、iFrame、HTML) ,也能看到效果,只是这个会带有源码,体验不太好。
效果如下:
<p data-height="265" data-theme-id="dark" data-slug-hash="bgjKKE" data-default-tab="css,result" data-user="CiTA" data-embed-version="2" data-pen-title="CSS sidebar toggle" class="codepen">See the Pen <a href="https://codepen.io/CiTA/pen/bgjKKE/">CSS sidebar toggle</a> by Silvestar Bistrović (<a href="https://codepen.io/CiTA">@CiTA</a>) on <a href="https://codepen.io">CodePen</a>.</p>
<script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>

在文章中嵌入 jsFiddle

这个就省掉了安装依赖包的步骤了,本来官网也提供了语法,只是没有具体的示例,网上找了半天没资料。就自己参考 CodePen 的方式做了一个逆向推理出来的。

用法

语法结构(官网也就只提供了这个):(设置宽高时不要用%,会导致编译错误)

{% jsfiddle shorttag [tabs] [skin] [width] [height] %}

demo 链接:

http://jsfiddle.net/AntBody/138zf8kk/?utm_source=website&utm_medium=embed&utm_campaign=138zf8kk

在文章中嵌入 jsfiddle 。
{% jsfiddle shorttag [tabs] [skin] [width] [height] %}

然后页面转化后,在浏览器里面开启调试控制台,看到如下图:


1111.png

然后逆推,设置如下:

{% jsfiddle AntBody/138zf8kk js,html,css,result light %}

运行效果:
{% jsfiddle AntBody/138zf8kk js,html,css,result light %}

这些参数怎么对应过去的呢?看下图:


222.png

当然同样的,因为 jsfiddle 的Embed code 支持两种方式,也可以引入 iFarme 源码进来,因为本来 Hexo 的语法本来就是编译成 iframe 形式的。
<iframe width="100%" height="300" src="//jsfiddle.net/AntBody/138zf8kk/embedded/" allowpaymentrequest allowfullscreen="allowfullscreen" frameborder="0"></iframe>

另外说明一点,jsfiddle 的 demo 例子代码你得找到 Emebed才能看到相关需要的参数,如果找不到,可能就不知道怎么设置了。
比如 Element UI 的随便一个例子: https://jsfiddle.net/api/post/library/pure/,不知道是不是因为没注册账号的原因引起的。(由于我一直用的codepen,就没去捉摸具体原因了。)

总结

  1. codepen 嵌入
  • 安装:$ npm install hexo-codepen --save

  • 使用语法结构:

{% codepen userId|anonymous|anon slugHash theme [defaultTab [height [width]]] %}
  • 找到对应参数,对应过去就行。
  1. jsfiddle 嵌入
  • 使用语法结构:
{% jsfiddle shorttag [tabs] [skin] [width] [height] %}
  • 找到对应参数,对应过去就行。
  1. 至于其他的像 dabbet、jsrun、jsbin、runjs 等等就自己去尝试了。
    另外,由于 hexo 解析后都是 iframe 的结果形式,故而可以直接引入 iframe 的代码也行,只是效果体验会差些,毕竟连源码也显示出来了。至于,其他的 js 嵌入或 html+js 嵌入就自己去尝试了。codepen 里面尝试了一下,跟 iframe 引入方式效果一样。

相关文章

网友评论

    本文标题:Hexo NexT:在文章中嵌入 CodePen或 jsFidd

    本文链接:https://www.haomeiwen.com/subject/ywgwjftx.html