comment inclure la vidéo dans jekyll markdown blog

Je viens de commencer à bloguer en utilisant jekyll. J'écris mes messages dans markdown. Maintenant, je veux inclure une vidéo youtube dans mon post. Comment puis-je faire cela?

Aussi, je n'aime pas vraiment les pygments mis en évidence par Jekyll par défaut. Y at-il de toute façon je peux changer cela à un autre style? Si oui, pouvez-vous me pointer vers de beaux styles/plugins?

46
demandé sur jacksparrow007 2012-05-10 12:07:15

5 réponses

Vous devriez être en mesure de mettre le code HTML pour l'intégration directement dans votre markdown. Sous la vidéo, il y a un bouton "Partager", cliquez dessus, puis le bouton "Intégrer", ce qui devrait vous donner quelque chose qui ressemble un peu à:

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

Il suffit de copier et coller cela dans votre message, le préprocesseur Markdown ne le touchera pas.


Pour les Pygments, il y a toute une pile de feuilles de style CSS pour différents thèmes de couleurs dans ce dépôt , vous pouvez les expérimenter. (Note que vous devrez remplacer .codehilite par .highlight pour que ceux-ci fonctionnent avec Jekyll.)

58
répondu huon 2018-04-23 10:37:51

J'ai fait la même chose mais dans mon cas, le simple copier-coller ne fonctionne pas. Le message d'erreur est ci-dessous:

REXML n'a pas pu analyser ce XML / HTML:

Pour éviter cette erreur, j'ai supprimé allowfullscreen de la source copiée comme ci-dessous:

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

Il est important D'Ajouter un espace avant la fermeture </iframe>.

Ensuite, j'ai réussi à intégrer la vidéo dans mon site.

30
répondu weed 2018-04-23 10:37:24

Le code html pour insérer une vidéo youtube peut être produit dans Jekyll en utilisant un simple plugin comme décrit dans https://gist.github.com/1805814.

La syntaxe devient aussi simple que:

{% youtube oHg5SJYRHA0 %}
13
répondu Etienne 2012-11-22 14:16:03

Dans mon cas, le problème a été résolu avec jQuery:

JQuery

$('.x-frame.video').each(function() {
  $(this).after("<iframe class=\"video\" src=\"" + ($(this).attr('data-video')) + "\" frameborder=\"0\"></iframe>");
});

L'Utilisation de

<div class="x-frame video" data-video="http://player.vimeo.com/video/52302939"> </div>

Notez que les espaces sont requis entre <div> </div>

5
répondu Helga Konly 2012-11-02 11:19:44

L'une des plus belles caractéristiques de WordPres est que vous pouvez simplement coller une URL Youtube dans le contenu (sur une nouvelle ligne) et WordPress transforme cela en un code intégré.

Le code suivant fait la même chose pour Jekyll. Il suffit de mettre ce code dans votre pied de page (ou d'utiliser un Jekyll include) et tous les paragraphes avec juste une URL Youtube sont automatiquement convertis en intégrations Youtube responsive par 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>

Bien que l'ajout du code HTML à votre démarque soit un très bon et valide solution, Cette solution pourrait être encore plus conviviale.

(Source)

1
répondu JoostS 2018-07-20 07:42:46