class Tigefa::Excerpt
Attributes
Public Class Methods
Public Instance Methods
Fetch YAML front-matter data from related post, without layout key
Returns Hash
of post data
# File lib/tigefa/excerpt.rb, line 33 def data @data ||= post.data.dup @data.delete("layout") @data end
The UID for this post (useful in feeds). e.g. /2008/11/05/my-awesome-post
Returns the String UID.
# File lib/tigefa/excerpt.rb, line 57 def id File.join(post.dir, post.slug, "#excerpt") end
Check if excerpt includes a string
Returns true if the string passed in
# File lib/tigefa/excerpt.rb, line 49 def include?(something) (self.output && self.output.include?(something)) || self.content.include?(something) end
Returns the shorthand String identifier of this Post
.
# File lib/tigefa/excerpt.rb, line 66 def inspect "<Excerpt: #{self.id}>" end
'Path' of the excerpt.
Returns the path for the post this excerpt belongs to with excerpt appended
# File lib/tigefa/excerpt.rb, line 42 def path File.join(post.path, "#excerpt") end
# File lib/tigefa/excerpt.rb, line 26 def to_liquid post.to_liquid(Post::EXCERPT_ATTRIBUTES_FOR_LIQUID) end
# File lib/tigefa/excerpt.rb, line 61 def to_s self.output || self.content end
Protected Instance Methods
Internal: Extract excerpt from the content
By default excerpt is your first paragraph of a post: everything before the first two new lines:
--- title: Example --- First paragraph with [link][1]. Second paragraph. [1]: http://example.com/
This is fairly good option for Markdown and Textile files. But might cause problems for HTML posts (which is quite unusual for Jekyll
). If default excerpt delimiter is not good for you, you might want to set your own via configuration option `excerpt_separator`. For example, following is a good alternative for HTML posts:
# file: _config.yml excerpt_separator: "<!-- more -->"
Notice that all markdown-style link references will be appended to the excerpt. So the example post above will have this excerpt source:
First paragraph with [link][1]. [1]: http://example.com/
Excerpts are rendered same time as content is rendered.
Returns excerpt String
# File lib/tigefa/excerpt.rb, line 106 def extract_excerpt(post_content) separator = site.config['excerpt_separator'] head, _, tail = post_content.partition(separator) "" << head << "\n\n" << tail.scan(/^\[[^\]]+\]:.+$/).join("\n") end