我不太喜欢jekyll默认提供的pygments代码高亮。有没有办法可以改成其他样式?如果有的话,你能给我推荐一些好看的样式/插件吗?
你应该能够直接将HTML嵌入到你的Markdown中。在视频下方,有一个“分享”按钮,点击这个按钮,然后点击“嵌入”按钮,应该会给你一些类似于下面的东西:
<iframe width="420" height="315" src="http://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>
只需将其复制并粘贴到您的帖子中,Markdown预处理程序不会触及它。
对于Pygments,这个代码库中有一堆用于各种颜色主题的CSS样式表,您可以尝试使用它们。 (请注意,您必须将 .codehilite
替换为 .highlight
才能使其与Jekyll配合使用。)
<iframe width="420" height="315" src="//www.youtube.com/embed/w0K1wwSJZoc" frameborder="0" allowfullscreen="allowfullscreen"> </iframe>
(请注意,标签之间的字符,添加它可以使闭合的 iframe 标签正确呈现) - speg我做了类似的事情,但在我的情况下,简单的复制粘贴不起作用。错误消息如下:
REXML无法解析此XML / HTML:
为避免出现此错误,我从复制的源代码中删除了allowfullscreen
,如下所示:
<iframe width="480" height="360" src="http://www.youtube.com/embed/WO82PoAczTc" frameborder="0"> </iframe>
在关闭</iframe>
标签前添加一个空格非常重要。
然后,我成功地将视频嵌入到我的网站中。
allowfullscreen
属性可以显示第一个视频,但它会隐藏之后的一切内容(其他视频、文本、页脚等)。在结束的</iframe>
标签前添加一个空格就解决了问题。 - magdmartinallowfullscreen
改为 allowfullscreen="allowfullscreen"
可以解决它。 - bwestallowfullscreen="1"
对我有用。似乎解析器不喜欢没有值的属性。 - Kurt Emch使用一个简单的插件,可以在Jekyll中生成插入YouTube视频的html代码,具体方法如https://gist.github.com/1805814所述。
语法变得非常简单:
{% youtube oHg5SJYRHA0 %}
$('.x-frame.video').each(function() {
$(this).after("<iframe class=\"video\" src=\"" + ($(this).attr('data-video')) + "\" frameborder=\"0\"></iframe>");
});
使用方法
<div class="x-frame video" data-video="http://player.vimeo.com/video/52302939"> </div>
<div> </div>
之间需要留有空格。WordPress的一个很好的特性是,你可以直接在内容中粘贴Youtube URL(放在新行上),WordPress会将其转换为嵌入代码。
以下代码可以实现Jekyll的相同功能。只需将此代码放在页脚中(或使用Jekyll include),所有仅包含Youtube URL的段落都会被Vanilla JS自动转换为响应式的Youtube嵌入。
<style>
.videoWrapper {position: relative; padding-bottom: 56.333%; height: 0;}
.videoWrapper iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
</style>
<script>
function getId(url) {
var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
return match[2];
} else {
return 'error';
}
}
function yt_url2embed() {
var p = document.getElementsByTagName('p');
for(var i = 0; i < p.length; i++) {
var pattern = /^((http|https|ftp):\/\/)/;
if(pattern.test(p[i].innerHTML)) {
var myId = getId(p[i].innerHTML);
p[i].innerHTML = '<div class="videoWrapper"><iframe width="720" height="420" src="https://www.youtube.com/embed/' + myId + '?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe></div>';
}
}
}
yt_url2embed();
</script>
你是否经常搜索“如何在Markdown中嵌入视频?”
虽然无法在Markdown中直接嵌入视频,但最好也是最简单的方法是从视频中提取一个框架。为了更轻松地向Markdown文件添加视频,我认为下面的Jekyll插件会对您有所帮助,并且它会自动解析图像块内的视频链接。
jekyll-spaceship - 一个Jekyll插件,为表格、MathJax、PlantUML、emoji、YouTube、Vimeo、DailyMotion等提供强大的支持。
https://github.com/jeffreytse/jekyll-spaceship
目前提供了以下视频链接解析功能:
有两种方法可以在您的Jekyll博客页面中嵌入视频:
内联样式:
![]({video-link})
参考样式:
![][{reference}]
[{reference}]: {video-link}
那么,您成功地将视频嵌入到您的网站中。