2016-09-27 3 views
3

私はハキルとウェブサイトを作っています。で区切られたティーザーセクションを各投稿に表示するRSSフィードを作成しました。ページからティーザーを外す

私の問題は、このティーザーセクションがこれらの投稿の完全な(テンプレート化された)ページに表示されていることです。そして、私はそれが<!--more-->の後ではなく、前になりたいと思います。

--- 
title: My Post 
author: JeanJouX 
date: 2016-09-06 
tags: Haskell 
--- 

The teaser of my post to be shown in the RSS feed. Not in the full page. 

<!--more--> 

The rest of the post to be shown in the full page of my website 

ハキルでそれを行うことは可能ですか?

+0

また、ティーザーをメタデータとして保存することもできます。 HakyllはYAMLに切り替えたので、複数行の文字列をサポートする必要があります。 –

答えて

4

ハキルに組み込まれている方法はないと思います。私はそれを見たよう

は、次の2つのオプションがあります。

  • は独自のページ

  • 実際のページにティーザーを保つ上で、それをレンダリングする前に、ドキュメントからお誘いを取り除き、パスを記述し、しかし

それを隠すためにCSSを使用して最初のオプションは、おそらくより良いですが、文字列操作とHakyllコンパイラでおよそmussing必要です。場所を開始したい場合は、の実装を見て、のneedlePrefix関数を使用して、本文からティーザーを抽出してください。あなたは反対を行う必要があります:しかし、ティーザーすべてを抽出します。

このアプローチをとると、それをハキルに戻すことができ、将来同じことをしたいと思う人々の努力を節約できます。

もう1つのオプションはハッキーですが、より簡単です。 、あなたのページテンプレートで、その後

<div class="teaser"> 
Some text. 
</div> 
<!--more--> 

ティーザー段落を非表示にCSSルールを追加します:あなたは、いくつかのCSSクラスでdivの中にすべてのあなたのお誘いをラップすることができ

.teaser { 
    display : none; 
} 

テキストがまだありますこのページのHTMLでは、これはの理想的なソリューションではありませんが、Hakyllコードを記述する必要はありません。

0

このティーザーのテキストを別のメタデータフィールドに入れておくと楽になるかもしれませんか?同様

--- 
title: My Post 
author: JeanJouX 
date: 2016-09-06 
tags: Haskell 
description: The teaser of my post to be shown in the RSS feed. Not in the full page. 
--- 

The rest of the post to be shown in the full page of my website 

は、その後、あなたはteaserFieldがこれ以上ことを確認する必要はありません。あなたはすでに$description$に必要なものすべてを持っています。これはrss、htmlメタタグ、どこでも使用できます。

関連する問題