как включить видео в блог уценки jekyll

Я только начал вести блог, используя jekyll. Я пишу свои сообщения в уценке. Теперь я хочу включить видео с YouTube в свой пост. Как я могу это сделать?

Кроме того, мне не очень нравится подсветка пигментов, предоставляемая jekyll по умолчанию. В любом случае я могу изменить это на какой-то другой стиль? Если да, можете ли вы указать мне несколько хороших стилей/плагинов?


person jacksparrow007    schedule 10.05.2012    source источник
comment
если у вас есть два таких вопроса, для сообщества Stack Overflow будет лучше, если вы сделаете каждый отдельный пост. Это также поможет вам получить более качественные ответы, потому что каждый из них будет направлен непосредственно на конкретный вопрос.   -  person Alan W. Smith    schedule 10.05.2012


Ответы (6)


Вы должны иметь возможность поместить HTML для встраивания непосредственно в уценку. Под видео есть кнопка «Поделиться», нажмите на нее, а затем на кнопку «Вставить», которая должна дать вам что-то вроде:

<iframe width="420" height="315" src="http://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>

Просто скопируйте и вставьте это в свой пост, препроцессор Markdown его не тронет.


Для Pygments существует целая куча таблиц стилей CSS для различных цветовых тем в этом репозитории, вы можете поэкспериментируйте с ними. (Обратите внимание, что вам придется заменить .codehilite на .highlight, чтобы они работали с Jekyll.)

person huon    schedule 10.05.2012
comment
Встроенный iframe работает «из коробки» и должен работать с большинством плагинов. Однако я нашел один (генератор страниц категорий с recursive-design.com/projects/ jekyll-plugins), у которого с ним проблемы. Исправление в этом случае состоит в том, чтобы поместить пробел между открытым и закрывающим тегами iframe. Если у кого-то есть проблемы с встраиванием, это стоит попробовать. - person Alan W. Smith; 10.05.2012
comment
@AlanW.Smith Спасибо, Алан, ты разобрался с ошибкой, из-за которой я несколько часов ломал голову над одним пробелом :) - person SecretDeveloper; 21.07.2013
comment
Я продолжал получать malformed XML: missing tag start ошибки. Похоже, исходит из атрибута allowfullscreen. Я попытался добавить allowfullscreen=true, и он скомпилировался, но не закрыл тег iframe должным образом и проглотил остальную часть документа. - person speg; 17.05.2014
comment
@dbaupp В итоге я сделал: <iframe width="420" height="315" src="//www.youtube.com/embed/w0K1wwSJZoc" frameborder="0" allowfullscreen="allowfullscreen">&nbsp;</iframe> (обратите внимание, что символ между тегами iframe, добавление этого позволило правильно отобразить закрывающий тег iframe) - person speg; 31.05.2014
comment
Мой iframe также изначально не работал, и я заметил, что не указал значения атрибутов. Как только я добавил двойные кавычки, это сработало. Просто к вашему сведению. - person lionello; 03.05.2015

Я сделал нечто подобное, но в моем случае простое копирование и вставка не работает. Сообщение об ошибке ниже:

REXML не смог проанализировать этот XML/HTML:

Чтобы избежать этой ошибки, я удалил allowfullscreen из скопированного источника, как показано ниже:

<iframe width="480" height="360" src="http://www.youtube.com/embed/WO82PoAczTc" frameborder="0"> </iframe>

Важно, чтобы Добавление пробела перед закрывающим </iframe>.

Затем мне удалось встроить видео на свой сайт.

person Feel Physics    schedule 05.09.2012
comment
Я сталкиваюсь с той же проблемой на странице с 3 видео на страницах github. Удаление allowfullscreen помогает отображать первое видео, но скрывает все после (другое видео, текст, нижний колонтитул...). Добавление пробела перед закрытием </iframe> сделало свою работу. - person magdmartin; 02.01.2013
comment
Я столкнулся с этой проблемой на страницах github. Мне помогло создание XHTML путем замены allowfullscreen на allowfullscreen="allowfullscreen". - person bwest; 25.02.2013
comment
allowfullscreen="1" работал на меня. Похоже, синтаксический анализатор просто не оценивает атрибуты без значений. - person Kurt Emch; 15.04.2013
comment
@magdmartin: Спасибо за подсказку о пробелах. Это решило мою проблему с встраиванием презентации Prezi в пост Jekyll! - person orschiro; 13.11.2013

HTML-код для вставки видео YouTube можно создать в Jekyll с помощью простого плагина, как описано в https://gist.github.com/1805814.

Синтаксис становится таким же простым, как:

{% youtube oHg5SJYRHA0 %}
person Etienne    schedule 22.11.2012
comment
Это отличный совет, хотя плагин тоже страдает от проблем, указанных в вопросе. Я разветвил плагин и применил изменения, предложенные в ответах на этот вопрос: gist.github.com/ серра/5574343 - person Marijn; 14.05.2013
comment
@Marijn Можно ли перенести это из сути в полное репо? Тогда было бы весьма кстати. Благодарность - person Mat; 15.07.2014
comment
Я получаю сообщение об ошибке от github: «Тег youtube в _posts/2015-08-06-my-new-blo-on-jekyll.markdown/#excerpt не является распознанным тегом Liquid. - person ; 06.08.2015
comment
Это очень удобно, Hexo использует ту же логику для встраивания видео с Youtube. - person Glass; 06.04.2016

В моем случае проблема была решена с помощью jQuery:

JQuery

$('.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> требуется пробел.

person Helga Konly    schedule 02.11.2012

Одной из приятных особенностей WordPres является то, что вы можете просто вставить URL-адрес Youtube в контент (в новой строке), и WordPress преобразует его в код для встраивания.

Следующий код делает то же самое для Jekyll. Просто поместите этот код в свой нижний колонтитул (или используйте включение Jekyll), и все абзацы с ТОЛЬКО URL-адресом Youtube будут автоматически преобразованы в адаптивные вставки Youtube с помощью Vanilla JS.

<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&amp;showinfo=0" frameborder="0" allowfullscreen></iframe></div>';
        }
    }
}
yt_url2embed();
</script>

Хотя простое добавление HTML-кода в ваш Markdown — очень хорошее (может быть, даже лучшее) и правильное решение, это решение может быть более удобным для пользователя.

(Источник)

person JoostS    schedule 27.10.2017

Как часто вы гуглили «Как встроить видео в уценку?»

Хотя встроить видео в уценку невозможно, лучший и самый простой способ — извлечь кадр из видео. Чтобы упростить добавление видео в ваши файлы уценки, я думаю, вам поможет приведенный ниже плагин jekyll, который автоматически анализирует ссылку на видео внутри блока изображения.

jekyll-spaceship — ???? Плагин Jekyll, обеспечивающий мощную поддержку таблиц, mathjax, plantuml, emoji, youtube, vimeo, dailymotion и т. д.

https://github.com/jeffreytse/jekyll-spaceship

На данный момент предоставляется парсинг ссылок на видео:

  • YouTube
  • видео
  • DailyMotion
  • ...

Есть два способа встроить видео на страницу блога Jekyll:

Встроенный стиль:

![]({video-link})

Справочный стиль:

![][{reference}]

[{reference}]: {video-link}

Затем вам удалось встроить видео на свой сайт.

????????????

person J.T.    schedule 29.04.2020