Class: Smeagol::Views::Post
- Defined in:
- lib/smeagol/views/post.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#href ⇒ Object
static href, used when generating static site.
-
#slug(name) ⇒ String
private
Apply slug rules to name.
Methods inherited from Page
#author, #commit_date, #content, #date, #footer_content, #footer_format, #has_footer, #has_header, #has_sidebar, #has_toc, #header_content, #header_format, #mathjax, #not_home?, #post?, #post_date, #sidebar_content, #sidebar_format, #summary, #title, #toc_content
Methods inherited from Base
#base_path, #custom_layout, #custom_layout?, #default_layout, #filename, #initialize, #layout, #mathjax, #menu_html, #metadata, #name, #post?, #posts, #ribbon_html, #ribbon_url, #settings, #setup_template_path, #source_url, #standard_layout, #tagline, #tracking_id, #wiki_title
Constructor Details
This class inherits a constructor from Smeagol::Views::Base
Instance Method Details
#href ⇒ Object
static href, used when generating static site.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/smeagol/views/post.rb', line 12 def href dir = ::File.dirname(page.path) name = slug(page.filename_stripped) ext = ::File.extname(page.path) if dir != '.' ::File.join(dir, name, 'index.html') else if name == settings.index #|| 'Home' 'index.html' else ::File.join(name, 'index.html') end end end |
#slug(name) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Support configurable slugs.
Apply slug rules to name.
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/smeagol/views/post.rb', line 33 def slug(name) if /^\d\d+\-/ =~ name dirs = [] parts = name.split('-') while /^\d+$/ =~ parts.first dirs << parts.shift end dirs << parts.join('-') dirs.join('/') else name end end |