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
nameis the String filename of the page file. -
#render ⇒ Object
Add any necessary layouts to this post
layoutsis a Hash of => "layout"site_payloadis 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 dir is the String path between name is the String filename of the file
Returns
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
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 => "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
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 |