2014-02-19 10 views
6

Gibt es eine Möglichkeit, Bilder in einer Markdown-Datei so zu referenzieren, dass sie 1) bei der Bearbeitung richtig aussehen und 2) bei der Verarbeitung mit Pelican korrekt erzeugt werden? Der ganze Grund, warum ich versuche, ist es, es so einfach wie möglich zu machen, Dateien lokal/offline mit verschiedenen Editoren zu editieren, ohne einen lokalen Server laufen zu lassen. Diese Editoren verstehen gemeinsame Bild Syntax wie folgt:Markdown-Dateien mit Bildern für Pelican-Site bearbeiten

![Pelican](images/pelican.jpg) 

Aber für Pelikan die richtigen Wege zu erzeugen, muss ich verwenden:

![Pelican]({filename}/images/pelican.jpg) 

Welche Editoren nicht verstehen und so die Vorschau zeigt nur gebrochen Bilder. Das ist weniger als ideal. Die Verknüpfung mit Bildern mit vollständigen Adressen funktioniert nicht, da ich oft offline arbeite.

Gibt es eine Kombination von Einstellungen - kurz vor dem Ausführen eines lokalen Servers, die mir nicht hilft, wenn ich Dateien auf dem iPad/etc bearbeite - das würde ich bearbeiten und ordnungsgemäß mit dem gleichen Markup veröffentlichen für Bilder?

Antwort

7

Angesichts des von Ihnen beschriebenen Anwendungsfalls glaube ich, dass die einzige Lösung darin besteht, dass die URL-Pfade in lokalen und Produktionsumgebungen identisch sind. Zum Beispiel die folgende Hierarchie gegeben:

- content 
    - images 
     - dinosaur.jpg 
    - posts 
     - my-dinosaur.md 

... Sie auf das Bild von innen my-dinosaur.md über in Verbindung bringen könnte:

Title: My Dinosaur 
Date: 2013-03-28 
URL: /posts/my-dinosaur.html 
Save_as: posts/my-dinosaur.html 

Here is an image of my dinosaur: 

![Pelican](../images/dinosaur.jpg) 

In diesem Fall wird die erzeugte HTML einen Link zu dem Bild enthalten das sieht aus wie:

<img src="../images/dinosaur.jpg" /> 

Solange die relativen Positionen zwischen:

  • Quelldokument < -> Bild
  • erzeugten HTML-< -> Bild

... ist die gleiche, sollte die oben genannte Technik ermöglicht es Ihnen, Ihre Ziele zu erreichen.

Natürlich ist dies abhängig von der gewählten Produktions-URL-Struktur möglich oder nicht. Wenn Sie die URL-Struktur nicht so ändern möchten, dass sie der Organisationsstruktur des Quellinhalts entspricht, ist es schwierig, das Image in beiden Umgebungen zu rendern, ohne einen lokalen Server auszuführen.

3

Der {filename} Ansatz scheint nicht für Bilder in der aktuellen Version von Pelikan zu arbeiten.

Hier ist, wie man das macht:

Von Pelikan 3.5 ab, können Sie verwenden, um die {} anhängen Tag jeden Dateityp auf Ihre statische Seite zu befestigen. Die relative Pfadkonvention für den Ordner Inhalt bleibt gleich.

![MyImage]({attach}images/MyImage.jpg) 

Legen Sie einfach die oben Phrase in Ihrem Markdown Artikel, wo immer Sie wollen das Bild verknüpfen, und Sie würden gut zu gehen.

Lassen Sie mich wissen, wie sich das herausstellt!

3

Sie können die Jinja {{ SITEURL }} Variable in Markdown Beiträge verwenden, um Bilder zu finden:

![Pelican]({{SITEURL}}/images/pelican.jpg) 

Diese lösen sollte (2). Ohne weitere Informationen darüber, welche Editoren Sie verwenden und wie sie Bildpfade in gerenderte Bilder umwandeln, ist es unmöglich zu wissen, ob dies gelöst wird (1).