2012-06-10 11 views
6

Für verschiedene Beiträge (generiert durch rake new_post[my_post]) möchte ich eine JavaScript-Funktion hinzufügen, die nur in diesem Beitrag enthalten sein soll, und nirgendwo sonst im Blog.JavaScript-Bibliothek zu Octopress-Posts hinzufügen?

Ich kann dies tun, indem ich die Datei public/my_post/index.html von Hand bearbeite, aber jedes Mal, wenn ich eine rake generate mache, muss ich das wieder tun.

Gibt es eine eingebaute Möglichkeit, dies in Octopress zu ermöglichen?

Prost

Antwort

10

In 2.1 können Sie pro Seite/post JavaScript oder CSS-Assets in den Header injizieren, indem sie einige Vars in der yaml Titelei Einstellung.

Derzeit können Sie einfach einen Link oder ein Skript-Tag in den Post oder die Seite selbst einfügen und es wird an Ort und Stelle geladen. Beispiel:

<script type="text/javascript" src="/path/to/file.js"></script> 
<link rel="stylesheet" type="text/css" href="/path/to/file.css"> 
0

Angenommen, Sie benötigt this.js und that.js in einem Beitrag sie unter dem neu geschaffenen /javascripts/custom/ Verzeichnis speichern.

als im Standard-Layout hinzuzufügen, in der <head> Tag, so etwas wie:

{% if page.custom_javascript %} 
    {% for js in page.custom_javascript %} 
     <script type="text/javascript" src="/javascripts/custom/{{ js }}"></script>  
    {% endfor%} 
{% endif %} 

Schließlich können Sie pro-post injizieren Javascript einfach auf die Post YAML Front-Rolle, das Feld Hinzufügen custom_javascript:

--- 
layout: post 
title: "Insert javascript inside head with Octopress" 
custom_javascript: [this.js, that.js] 
--- 

Natürlich können Sie einen ähnlichen Ansatz für andere Dinge verwenden, die Sie in die <head> injizieren müssen.