2016-05-23 9 views
1

Ich möchte meine persönlichen Webseiten in Pelican bauen, aber mir fehlt eine Funktionalität. Ich würde gerne eine Einführungsseite für einige/alle Kategorien auf den Seiten haben.Einführung Seiten für Kategorien in Pelican

Zum Beispiel - ich möchte eine Seite für mein Stipendium Projekt bauen, in denen Beiträge beziehen sich auf Aktivitäten und/oder Papiere veröffentlicht, aber ich möchte auch eine einzelne Seite etwas über die Erteilung Projekt sagen und behalten Sie diese Seite als Titelseite dieser Kategorie bei.

Ist dies (leicht) in Pelican Framework möglich? Wenn nicht, können Sie ein besseres statisches Seiten-Framework vorschlagen, das in Kombination mit Markdown + Python funktioniert?

+1

Willkommen bei StackOverflow. Wenn Sie der Meinung sind, dass eine Antwort das Problem gelöst hat, markieren Sie es als "akzeptiert", indem Sie auf das grüne Häkchen klicken. Dies hilft, den Fokus auf ältere Fragen zu legen, die immer noch keine Antworten haben. – mhoff

+0

Danke @MichaelHoff es hat mir sehr geholfen! –

Antwort

1

Dies ist eigentlich sehr einfach mit Pelikan. Das Plugin Auto Pages definiert drei zusätzliche Inhaltsordner: Einen für Autoren, einen für Kategorien und einen für Tags.

Sagen Sie, John Smith, wollte zusätzliche Informationen über Ihre Person haben, wenn Sie auf Ihren Namen klicken. Dann würden Sie eine Datei namens authors/john-smith{.rst|.md} mit dieser zusätzlichen Information hinzufügen. Kein HTML, sondern nur die Inhalte, die Sie über Ihre Person bereitstellen möchten. Diese Inhalte werden dann eingelesen, transformiert und der Template Engine als author.page präsentiert.

Jetzt geht es darum, dass Ihre Vorlagen auch diese Variable verwenden. In meinem Thema, ich einfach theme/templates/author.html geändert, um nicht die Kombination von "featured Artikel" und "andere Artikel" im Zusammenhang mit meinem Autor zu zeigen, sondern author.page.content und "alle Artikel" im Zusammenhang mit meinem Autor statt.

Kurz Auszug meines theme/templates/author.html:

<aside id="featured" class="body"> 
     <article> 
      <h1 class="entry-title"><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a></h1> 
      {{ author.page.content }} 
     </article> 
</aside> 
<section id="content" class="body"> 
     <!-- removed the apostrophe for SO highlighting reasons--> 
     <h1>Authors articles</h1> 
     <hr/> 
     <ol id="posts-list" class="hfeed" start="{{ articles_paginator.per_page - 1}}"> 
     {% for article in articles_page.object_list %} 
      <li><article class="hentry"> 
       <header> 
        <h1><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" 
          title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h1> 
       </header> 

       {% include 'article_infos.html' %} 
       {{ article.summary }} 
       <a class="readmore" href="{{ SITEURL }}/{{ article.url }}">read more</a> 
       {% include 'comments.html' %} 
      </article></li> 
     {% endfor %} 
     </ol> 
     {% if articles_page.has_other_pages() %} 
      {% include 'pagination.html' %} 
     {% endif %} 
</section> 

Sie können die genau die gleiche Sache für Kategorien und Tags tun, um das oben beschriebene Verfahren verwendet wird. Verwenden Sie für die Vorlage einfach das vorhandene index.html und passen Sie es an Ihre Bedürfnisse an.