Class: Jekyll::Stylesheet
- Inherits:
-
Object
- Object
- Jekyll::Stylesheet
- Includes:
- Convertible
- Defined in:
- lib/jekyll/stylesheet.rb
Instance Attribute Summary collapse
-
#basename ⇒ Object
Returns the value of attribute basename.
-
#content ⇒ Object
Returns the value of attribute content.
-
#data ⇒ Object
Returns the value of attribute data.
-
#ext ⇒ Object
Returns the value of attribute ext.
-
#name ⇒ Object
Returns the value of attribute name.
-
#output ⇒ Object
Returns the value of attribute output.
-
#site ⇒ Object
Returns the value of attribute site.
Instance Method Summary collapse
-
#dir ⇒ Object
The generated directory into which the page will be placed upon generation.
-
#initialize(site, base, dir, name) ⇒ Stylesheet
constructor
Initialize a new Page.
-
#process(name) ⇒ Object
Extract information from the page filename
name
is the String filename of the page file. -
#render ⇒ Object
Add any necessary layouts to this post
layouts
is a Hash of => “layout”site_payload
is the site payload hash. -
#url ⇒ Object
The generated relative url of this stylesheet e.g.
-
#write(dest_prefix, dest_suffix = nil) ⇒ Object
Write the generated page file to the destination directory.
Methods included from Convertible
#content_type, #do_layout, #read_yaml, #to_s, #transform
Constructor Details
#initialize(site, base, dir, name) ⇒ Stylesheet
Initialize a new Page.
+site+ is the Site
+base+ is the String path to the <source>
+dir+ is the String path between <source> and the file
+name+ is the String filename of the file
Returns <Page>
17 18 19 20 21 22 23 24 25 |
# File 'lib/jekyll/stylesheet.rb', line 17 def initialize(site, base, dir, name) @site = site @base = base @dir = dir @name = name self.process(name) self.content = File.read(File.join(File.join(base, dir), name)) end |
Instance Attribute Details
#basename ⇒ Object
Returns the value of attribute basename.
7 8 9 |
# File 'lib/jekyll/stylesheet.rb', line 7 def basename @basename end |
#content ⇒ Object
Returns the value of attribute content.
8 9 10 |
# File 'lib/jekyll/stylesheet.rb', line 8 def content @content end |
#data ⇒ Object
Returns the value of attribute data.
8 9 10 |
# File 'lib/jekyll/stylesheet.rb', line 8 def data @data end |
#ext ⇒ Object
Returns the value of attribute ext.
7 8 9 |
# File 'lib/jekyll/stylesheet.rb', line 7 def ext @ext end |
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/jekyll/stylesheet.rb', line 7 def name @name end |
#output ⇒ Object
Returns the value of attribute output.
8 9 10 |
# File 'lib/jekyll/stylesheet.rb', line 8 def output @output end |
#site ⇒ Object
Returns the value of attribute site.
6 7 8 |
# File 'lib/jekyll/stylesheet.rb', line 6 def site @site end |
Instance Method Details
#dir ⇒ Object
The generated directory into which the page will be placed upon generation. This is derived from the permalink or, if permalink is absent, set to ‘/’
Returns <String>
32 33 34 |
# File 'lib/jekyll/stylesheet.rb', line 32 def dir url[-1, 1] == '/' ? url : File.dirname(url) end |
#process(name) ⇒ Object
Extract information from the page filename
+name+ is the String filename of the page file
Returns nothing
48 49 50 51 |
# File 'lib/jekyll/stylesheet.rb', line 48 def process(name) self.ext = File.extname(name) self.basename = name.split('.')[0..-2].first end |
#render ⇒ Object
Add any necessary layouts to this post
+layouts+ is a Hash of {"name" => "layout"}
+site_payload+ is the site payload hash
Returns nothing
58 59 60 61 62 63 |
# File 'lib/jekyll/stylesheet.rb', line 58 def render() self.transform # output keeps track of what will finally be written self.output = self.content end |
#url ⇒ Object
The generated relative url of this stylesheet e.g. /css/site.css
Returns <String>
40 41 42 |
# File 'lib/jekyll/stylesheet.rb', line 40 def url @url ||= "/css/#{basename}.css" end |
#write(dest_prefix, dest_suffix = nil) ⇒ Object
Write the generated page file to the destination directory.
+dest_prefix+ is the String path to the destination dir
+dest_suffix+ is a suffix path to the destination dir
Returns nothing
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/jekyll/stylesheet.rb', line 70 def write(dest_prefix, dest_suffix = nil) dest = dest_suffix ? File.join(dest_prefix, dest_suffix) : dest_prefix FileUtils.mkdir_p(dest) # The url needs to be unescaped in order to preserve the correct filename path = File.join(dest, CGI.unescape(self.url)) dirname = File.dirname(path) unless File.exists?(dirname) FileUtils.mkdir_p(dirname) end File.open(path, 'w') do |f| f.write(self.output) end end |