nanoc 2.1.4 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +7 -0
- data/Rakefile +21 -2
- data/lib/nanoc.rb +1 -1
- data/lib/nanoc/base/filter.rb +6 -2
- data/lib/nanoc/base/page_rep.rb +2 -0
- data/lib/nanoc/base/plugin.rb +6 -2
- data/lib/nanoc/base/proxy.rb +1 -1
- data/lib/nanoc/cli/base.rb +2 -1
- data/lib/nanoc/cli/commands/create_site.rb +1 -5
- data/lib/nanoc/data_sources/filesystem.rb +4 -5
- data/lib/nanoc/data_sources/filesystem_combined.rb +1 -1
- data/lib/nanoc/extra/file_proxy.rb +1 -1
- data/lib/nanoc/filters/rdoc.rb +3 -3
- data/lib/nanoc/helpers/blogging.rb +4 -0
- data/lib/nanoc/helpers/capturing.rb +4 -0
- data/lib/nanoc/helpers/html_escape.rb +2 -0
- data/lib/nanoc/helpers/link_to.rb +4 -0
- data/lib/nanoc/helpers/render.rb +2 -0
- data/lib/nanoc/helpers/tagging.rb +4 -0
- data/lib/nanoc/helpers/xml_sitemap.rb +4 -0
- metadata +4 -3
    
        data/ChangeLog
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | @@ -1,14 +1,33 @@ | |
| 1 1 | 
             
            ##### Requirements
         | 
| 2 2 |  | 
| 3 | 
            +
            # Rake etc
         | 
| 3 4 | 
             
            require 'rake'
         | 
| 4 | 
            -
             | 
| 5 5 | 
             
            require 'rake/clean'
         | 
| 6 6 | 
             
            require 'rake/gempackagetask'
         | 
| 7 | 
            -
            require 'rake/rdoctask'
         | 
| 8 7 | 
             
            require 'rake/testtask'
         | 
| 9 8 |  | 
| 9 | 
            +
            # Rdoc
         | 
| 10 | 
            +
            begin
         | 
| 11 | 
            +
              require 'hanna/rdoctask'
         | 
| 12 | 
            +
            rescue LoadError
         | 
| 13 | 
            +
              warn "Tried loading hanna but failed; falling back to the normal RDoc template"
         | 
| 14 | 
            +
              require 'rake/rdoctask'
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            # nanoc itself
         | 
| 10 18 | 
             
            require File.dirname(__FILE__) + '/lib/nanoc.rb'
         | 
| 11 19 |  | 
| 20 | 
            +
            ##### Test Ruby 1.9
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            if RUBY_VERSION >= '1.9'
         | 
| 23 | 
            +
              # Check presence of vendor/mocha
         | 
| 24 | 
            +
              unless File.directory?('vendor/mocha')
         | 
| 25 | 
            +
                warn "You appear to be running Ruby 1.9. Please make sure that, before " +
         | 
| 26 | 
            +
                     "running the tests, you have a version of mocha that is " +
         | 
| 27 | 
            +
                     "compatible with Ruby 1.9."
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
            end
         | 
| 30 | 
            +
             | 
| 12 31 | 
             
            ##### General details
         | 
| 13 32 |  | 
| 14 33 | 
             
            NAME      = 'nanoc'
         | 
    
        data/lib/nanoc.rb
    CHANGED
    
    
    
        data/lib/nanoc/base/filter.rb
    CHANGED
    
    | @@ -79,7 +79,9 @@ module Nanoc | |
| 79 79 | 
             
                  # Deprecated
         | 
| 80 80 | 
             
                  def extensions(*extensions) # :nodoc:
         | 
| 81 81 | 
             
                    # Initialize
         | 
| 82 | 
            -
                    @extensions  | 
| 82 | 
            +
                    if !instance_variables.include?('@extensions') && !instance_variables.include?(:'@extensions')
         | 
| 83 | 
            +
                      @extensions = []
         | 
| 84 | 
            +
                    end
         | 
| 83 85 |  | 
| 84 86 | 
             
                    if extensions.empty?
         | 
| 85 87 | 
             
                      @extensions
         | 
| @@ -92,7 +94,9 @@ module Nanoc | |
| 92 94 | 
             
                  # Deprecated
         | 
| 93 95 | 
             
                  def extension(extension=nil) # :nodoc:
         | 
| 94 96 | 
             
                    # Initialize
         | 
| 95 | 
            -
                    @extensions  | 
| 97 | 
            +
                    if !instance_variables.include?('@extensions') && !instance_variables.include?(:'@extensions')
         | 
| 98 | 
            +
                      @extensions = []
         | 
| 99 | 
            +
                    end
         | 
| 96 100 |  | 
| 97 101 | 
             
                    if extension.nil?
         | 
| 98 102 | 
             
                      @extensions.first
         | 
    
        data/lib/nanoc/base/page_rep.rb
    CHANGED
    
    | @@ -270,6 +270,8 @@ module Nanoc | |
| 270 270 | 
             
                    # Run filter
         | 
| 271 271 | 
             
                    Nanoc::NotificationCenter.post(:filtering_started, self, klass.identifier)
         | 
| 272 272 | 
             
                    content = filter.run(content)
         | 
| 273 | 
            +
                    # FIXME hacky
         | 
| 274 | 
            +
                    content.force_encoding('utf-8') if content.respond_to?(:'force_encoding')
         | 
| 273 275 | 
             
                    Nanoc::NotificationCenter.post(:filtering_ended,   self, klass.identifier)
         | 
| 274 276 | 
             
                  end
         | 
| 275 277 |  | 
    
        data/lib/nanoc/base/plugin.rb
    CHANGED
    
    | @@ -19,7 +19,9 @@ module Nanoc | |
| 19 19 | 
             
                  # symbols for this plugin.
         | 
| 20 20 | 
             
                  def identifiers(*identifiers)
         | 
| 21 21 | 
             
                    # Initialize
         | 
| 22 | 
            -
                    @identifiers  | 
| 22 | 
            +
                    if !instance_variables.include?('@identifiers') && !instance_variables.include?(:'@identifiers')
         | 
| 23 | 
            +
                      @identifiers = []
         | 
| 24 | 
            +
                    end
         | 
| 23 25 |  | 
| 24 26 | 
             
                    if identifiers.empty?
         | 
| 25 27 | 
             
                      @identifiers
         | 
| @@ -35,7 +37,9 @@ module Nanoc | |
| 35 37 | 
             
                  # When given nothing, returns the identifier for this plugin.
         | 
| 36 38 | 
             
                  def identifier(identifier=nil)
         | 
| 37 39 | 
             
                    # Initialize
         | 
| 38 | 
            -
                    @identifiers  | 
| 40 | 
            +
                    if !instance_variables.include?('@identifiers') && !instance_variables.include?(:'@identifiers')
         | 
| 41 | 
            +
                      @identifiers = []
         | 
| 42 | 
            +
                    end
         | 
| 39 43 |  | 
| 40 44 | 
             
                    if identifier.nil?
         | 
| 41 45 | 
             
                      @identifiers.first
         | 
    
        data/lib/nanoc/base/proxy.rb
    CHANGED
    
    | @@ -5,7 +5,7 @@ module Nanoc | |
| 5 5 | 
             
              # calling destructive methods.
         | 
| 6 6 | 
             
              class Proxy
         | 
| 7 7 |  | 
| 8 | 
            -
                instance_methods.each { |m| undef_method m unless m =~ /^__/ }
         | 
| 8 | 
            +
                instance_methods.each { |m| undef_method m unless m =~ /^__/ || m.to_s == 'object_id' }
         | 
| 9 9 |  | 
| 10 10 | 
             
                # Creates a proxy for the given object.
         | 
| 11 11 | 
             
                def initialize(obj)
         | 
    
        data/lib/nanoc/cli/base.rb
    CHANGED
    
    | @@ -32,7 +32,8 @@ module Nanoc::CLI | |
| 32 32 |  | 
| 33 33 | 
             
                    # Handle version option
         | 
| 34 34 | 
             
                    if parsed_arguments[:options].has_key?(:version)
         | 
| 35 | 
            -
                      puts "nanoc #{Nanoc::VERSION} (c) 2007- | 
| 35 | 
            +
                      puts "nanoc #{Nanoc::VERSION} (c) 2007-2009 Denis Defreyne."
         | 
| 36 | 
            +
                      puts "Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) running on #{RUBY_PLATFORM}"
         | 
| 36 37 | 
             
                      exit 1
         | 
| 37 38 | 
             
                    # Handle help option
         | 
| 38 39 | 
             
                    elsif parsed_arguments[:options].has_key?(:help)
         | 
| @@ -207,14 +207,10 @@ EOS | |
| 207 207 |  | 
| 208 208 | 
             
                  # Build entire site
         | 
| 209 209 | 
             
                  FileUtils.mkdir_p(path)
         | 
| 210 | 
            -
                   | 
| 211 | 
            -
                    FileUtils.cd(File.join(path))
         | 
| 212 | 
            -
             | 
| 210 | 
            +
                  FileUtils.cd(File.join(path)) do
         | 
| 213 211 | 
             
                    site_create_minimal(data_source)
         | 
| 214 212 | 
             
                    site_setup
         | 
| 215 213 | 
             
                    site_populate
         | 
| 216 | 
            -
                  ensure
         | 
| 217 | 
            -
                    FileUtils.cd(File.join(path.map { |n| '..' }))
         | 
| 218 214 | 
             
                  end
         | 
| 219 215 |  | 
| 220 216 | 
             
                  puts "Created a blank nanoc site at '#{path}'. Enjoy!"
         | 
| @@ -220,7 +220,7 @@ module Nanoc::DataSources | |
| 220 220 | 
             
                    content_file = File.new(content_filename)
         | 
| 221 221 |  | 
| 222 222 | 
             
                    # Get attributes
         | 
| 223 | 
            -
                    attributes =  | 
| 223 | 
            +
                    attributes = { 'extension' => File.extname(content_filename)[1..-1] }.merge(meta)
         | 
| 224 224 |  | 
| 225 225 | 
             
                    # Get path
         | 
| 226 226 | 
             
                    path = meta_filename.sub(/^assets/, '').sub(/[^\/]+\.yaml$/, '')
         | 
| @@ -363,8 +363,7 @@ module Nanoc::DataSources | |
| 363 363 |  | 
| 364 364 | 
             
                def layouts # :nodoc:
         | 
| 365 365 | 
             
                  # Determine what layout directory structure is being used
         | 
| 366 | 
            -
                   | 
| 367 | 
            -
                  is_old_school = (dir_count == 0)
         | 
| 366 | 
            +
                  is_old_school = (Dir['layouts/*'].select { |f| File.file?(f) }.size > 0)
         | 
| 368 367 |  | 
| 369 368 | 
             
                  if is_old_school
         | 
| 370 369 | 
             
                    # Warn about deprecation
         | 
| @@ -414,8 +413,8 @@ module Nanoc::DataSources | |
| 414 413 |  | 
| 415 414 | 
             
                def save_layout(layout) # :nodoc:
         | 
| 416 415 | 
             
                  # Determine what layout directory structure is being used
         | 
| 417 | 
            -
                   | 
| 418 | 
            -
                  error_outdated if  | 
| 416 | 
            +
                  is_old_school = (Dir['layouts/*'].select { |f| File.file?(f) }.size > 0)
         | 
| 417 | 
            +
                  error_outdated if is_old_school
         | 
| 419 418 |  | 
| 420 419 | 
             
                  # Get paths
         | 
| 421 420 | 
             
                  last_component    = layout.path.split('/')[-1]
         | 
| @@ -205,7 +205,7 @@ module Nanoc::DataSources | |
| 205 205 | 
             
                    return nil if meta[:is_draft]
         | 
| 206 206 |  | 
| 207 207 | 
             
                    # Get attributes
         | 
| 208 | 
            -
                    attributes =  | 
| 208 | 
            +
                    attributes = { 'extension' => File.extname(filename)[1..-1] }.merge(meta)
         | 
| 209 209 |  | 
| 210 210 | 
             
                    # Get actual path
         | 
| 211 211 | 
             
                    if filename =~ /\/index\.[^\/]+$/
         | 
| @@ -8,7 +8,7 @@ module Nanoc::Extra | |
| 8 8 | 
             
              # proxy will make sure the File object is not created until it is used.
         | 
| 9 9 | 
             
              class FileProxy
         | 
| 10 10 |  | 
| 11 | 
            -
                instance_methods.each { |m| undef_method m unless m =~ /^__/ }
         | 
| 11 | 
            +
                instance_methods.each { |m| undef_method m unless m =~ /^__/ || m.to_s == 'object_id' }
         | 
| 12 12 |  | 
| 13 13 | 
             
                # Creates a new file proxy for the given path. This is similar to
         | 
| 14 14 | 
             
                # creating a File object with the same path, except that the File object
         | 
    
        data/lib/nanoc/filters/rdoc.rb
    CHANGED
    
    | @@ -4,11 +4,11 @@ module Nanoc::Filters | |
| 4 4 | 
             
                identifiers :rdoc
         | 
| 5 5 |  | 
| 6 6 | 
             
                def run(content)
         | 
| 7 | 
            -
                  require 'rdoc/markup | 
| 8 | 
            -
                  require 'rdoc/markup/ | 
| 7 | 
            +
                  require 'rdoc/markup'
         | 
| 8 | 
            +
                  require 'rdoc/markup/to_html'
         | 
| 9 9 |  | 
| 10 10 | 
             
                  # Get result
         | 
| 11 | 
            -
                  :: | 
| 11 | 
            +
                  ::RDoc::Markup.new.convert(content, ::RDoc::Markup::ToHtml.new)
         | 
| 12 12 | 
             
                end
         | 
| 13 13 |  | 
| 14 14 | 
             
              end
         | 
| @@ -15,6 +15,10 @@ module Nanoc::Helpers | |
| 15 15 | 
             
              # the documentation for these functions.
         | 
| 16 16 | 
             
              #
         | 
| 17 17 | 
             
              # The two main functions are sorted_articles and atom_feed.
         | 
| 18 | 
            +
              #
         | 
| 19 | 
            +
              # To activate this helper, +include+ it, like this:
         | 
| 20 | 
            +
              #
         | 
| 21 | 
            +
              #   include Nanoc::Helpers::Blogging
         | 
| 18 22 | 
             
              module Blogging
         | 
| 19 23 |  | 
| 20 24 | 
             
                # Returns the list of articles, sorted by descending creation date (so
         | 
| @@ -30,6 +30,10 @@ module Nanoc::Helpers | |
| 30 30 | 
             
              # When the site is compiled, the sidebar of the about page will say “On
         | 
| 31 31 | 
             
              # this page, the purpose of nanoc is described, blah blah blah,” as
         | 
| 32 32 | 
             
              # expected.
         | 
| 33 | 
            +
              #
         | 
| 34 | 
            +
              # To activate this helper, +include+ it, like this:
         | 
| 35 | 
            +
              #
         | 
| 36 | 
            +
              #   include Nanoc::Helpers::Capturing
         | 
| 33 37 | 
             
              module Capturing
         | 
| 34 38 |  | 
| 35 39 | 
             
                # Captures the content inside the block into a page attribute named
         | 
    
        data/lib/nanoc/helpers/render.rb
    CHANGED
    
    
| @@ -5,6 +5,10 @@ module Nanoc::Helpers | |
| 5 5 | 
             
              # tags that should be applied to the page. For example:
         | 
| 6 6 | 
             
              #
         | 
| 7 7 | 
             
              #   tags: [ 'foo', 'bar', 'baz' ]
         | 
| 8 | 
            +
              #
         | 
| 9 | 
            +
              # To activate this helper, +include+ it, like this:
         | 
| 10 | 
            +
              #
         | 
| 11 | 
            +
              #   include Nanoc::Helpers::Tagging
         | 
| 8 12 | 
             
              module Tagging
         | 
| 9 13 |  | 
| 10 14 | 
             
                # Returns a formatted list of tags for the given page as a string. Several
         | 
| @@ -3,6 +3,10 @@ module Nanoc::Helpers | |
| 3 3 | 
             
              # Nanoc::Helpers::XMLSitemap contains functionality for building XML
         | 
| 4 4 | 
             
              # sitemaps that will be crawled by search engines. See the Sitemaps protocol
         | 
| 5 5 | 
             
              # web site, http://www.sitemaps.org, for details.
         | 
| 6 | 
            +
              #
         | 
| 7 | 
            +
              # To activate this helper, +include+ it, like this:
         | 
| 8 | 
            +
              #
         | 
| 9 | 
            +
              #   include Nanoc::Helpers::XMLSitemap
         | 
| 6 10 | 
             
              module XMLSitemap
         | 
| 7 11 |  | 
| 8 12 | 
             
                # Returns the XML sitemap as a string.
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: nanoc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 2.1. | 
| 4 | 
            +
              version: 2.1.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Denis Defreyne
         | 
| @@ -9,7 +9,7 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 |  | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2009-02-01 00:00:00 +01:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies: []
         | 
| 15 15 |  | 
| @@ -154,6 +154,7 @@ rdoc_options: | |
| 154 154 | 
             
            - --exclude
         | 
| 155 155 | 
             
            - test
         | 
| 156 156 | 
             
            - --line-numbers
         | 
| 157 | 
            +
            - --inline-source
         | 
| 157 158 | 
             
            require_paths: 
         | 
| 158 159 | 
             
            - lib
         | 
| 159 160 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| @@ -171,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 171 172 | 
             
            requirements: []
         | 
| 172 173 |  | 
| 173 174 | 
             
            rubyforge_project: nanoc
         | 
| 174 | 
            -
            rubygems_version: 1. | 
| 175 | 
            +
            rubygems_version: 1.3.1
         | 
| 175 176 | 
             
            signing_key: 
         | 
| 176 177 | 
             
            specification_version: 2
         | 
| 177 178 | 
             
            summary: a tool that runs on your local computer and compiles Markdown, Textile, Haml, ... documents into static web pages
         |