plate 0.5.3 → 0.5.4
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.md +5 -0
- data/README.md +41 -2
- data/lib/plate/builder.rb +13 -0
- data/lib/plate/cli.rb +11 -1
- data/lib/plate/helpers/blogging_helper.rb +5 -0
- data/lib/plate/version.rb +1 -1
- metadata +14 -14
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -2,9 +2,11 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            [](http://travis-ci.org/jdtornow/plate) [](https://gemnasium.com/jdtornow/plate)
         | 
| 4 4 |  | 
| 5 | 
            -
            Plate is a super simple static site generator and blog engine.  | 
| 5 | 
            +
            Plate is a super simple static site generator and blog engine. At its core, it takes a folder full of Markdown files and turns it into a static HTML site that you can host anywhere. 
         | 
| 6 6 |  | 
| 7 | 
            -
             | 
| 7 | 
            +
            In addition to basic formatting with Markdown, Plate also supports generating more dynamic files with ERB or HAML, and compiling asset files with CoffeeScript, Sass and others.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Plate is a command line utility installed as a Ruby Gem. Installation requires Ruby 1.8.7, 1.9.2 or 1.9.3. For additional processing, install CoffeeScript, Sass, Haml and other formatters.
         | 
| 8 10 |  | 
| 9 11 | 
             
            ## Installation
         | 
| 10 12 |  | 
| @@ -16,10 +18,20 @@ Or, create a `Gemfile` and add: | |
| 16 18 |  | 
| 17 19 | 
             
            ## Command line
         | 
| 18 20 |  | 
| 21 | 
            +
            Plate is designed to be a command-line utility. Here is a rundown of some of the basic commands:
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ### Creating a new site
         | 
| 24 | 
            +
             | 
| 19 25 | 
             
            To generate a new site with plate, run the following command:
         | 
| 20 26 |  | 
| 21 27 | 
             
                platify .
         | 
| 22 28 |  | 
| 29 | 
            +
            Or, with the normal `plate` command:
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                plate new .
         | 
| 32 | 
            +
                
         | 
| 33 | 
            +
            ### Building a site
         | 
| 34 | 
            +
                 
         | 
| 23 35 | 
             
            To build your site, run:
         | 
| 24 36 |  | 
| 25 37 | 
             
                plate build
         | 
| @@ -31,6 +43,29 @@ Or, just run `plate` without any options to build the site. | |
| 31 43 | 
             
            To show details about the site build, enable verbose mode:
         | 
| 32 44 |  | 
| 33 45 | 
             
                plate --verbose
         | 
| 46 | 
            +
                
         | 
| 47 | 
            +
            When writing a post, it is sometimes helpful to watch the site for changes and just reload content after each file save. To enable this mode, run the build command with the `--watch` option. Every time a file is saved, the utility will rebuild that file so you can simply hit refresh in your browser to see the changes without rebuilding the entire site.
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                plate --watch
         | 
| 50 | 
            +
                
         | 
| 51 | 
            +
            ### Creating a new post
         | 
| 52 | 
            +
                
         | 
| 53 | 
            +
            To create a new blog post with the default options, run:
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                plate post "New Post Name"
         | 
| 56 | 
            +
                
         | 
| 57 | 
            +
            You can also put default post options (such as a category or layout) into the command line:
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                plate post "New Post Name" --category Articles --layout post
         | 
| 60 | 
            +
                
         | 
| 61 | 
            +
            Or, if you always use the same default category and/or layout, you can put those options into your config file instead like so:
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                # In config/plate.yml
         | 
| 64 | 
            +
                ...
         | 
| 65 | 
            +
                post_defaults:
         | 
| 66 | 
            +
                  category: Articles
         | 
| 67 | 
            +
                  layout: post
         | 
| 68 | 
            +
                ...
         | 
| 34 69 |  | 
| 35 70 | 
             
            ## Directory Structure
         | 
| 36 71 |  | 
| @@ -76,6 +111,10 @@ An example of a helper file located in `lib/sample_helper.rb` | |
| 76 111 |  | 
| 77 112 | 
             
            Then, in your `.erb` view you can call `sample_helper_method`.
         | 
| 78 113 |  | 
| 114 | 
            +
            ## Full Documentation
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            View the [full documentation on rdoc.info](http://rdoc.info/gems/plate/frames)
         | 
| 117 | 
            +
             | 
| 79 118 | 
             
            ## Issues
         | 
| 80 119 |  | 
| 81 120 | 
             
            If you have any issues or find bugs running Plate, please [report them on Github](https://github.com/jdtornow/plate/issues). While most functions should be stable, Plate is still in its infancy and certain issues may be present.
         | 
    
        data/lib/plate/builder.rb
    CHANGED
    
    | @@ -33,6 +33,12 @@ module Plate | |
| 33 33 | 
             
                  @loaded = false
         | 
| 34 34 | 
             
                end
         | 
| 35 35 |  | 
| 36 | 
            +
                # Returns the options for this site.
         | 
| 37 | 
            +
                def config
         | 
| 38 | 
            +
                  self.load!
         | 
| 39 | 
            +
                  @options
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
                
         | 
| 36 42 | 
             
                # A unique id for this site, based off of the source directory
         | 
| 37 43 | 
             
                def id
         | 
| 38 44 | 
             
                  check_source!
         | 
| @@ -223,6 +229,12 @@ module Plate | |
| 223 229 | 
             
                  # option:
         | 
| 224 230 | 
             
                  #
         | 
| 225 231 | 
             
                  #     Builder.new(source, destination, :config => 'config/other-file.yml')
         | 
| 232 | 
            +
                  # 
         | 
| 233 | 
            +
                  # On the command line when building a site, or creating a new post, you can specify the 
         | 
| 234 | 
            +
                  # custom config file as a command line option as well:
         | 
| 235 | 
            +
                  #
         | 
| 236 | 
            +
                  #     plate build --config config/other-file.yml
         | 
| 237 | 
            +
                  # 
         | 
| 226 238 | 
             
                  def load_config_file!
         | 
| 227 239 | 
             
                    config_file = 'config/plate.yml'
         | 
| 228 240 |  | 
| @@ -249,6 +261,7 @@ module Plate | |
| 249 261 |  | 
| 250 262 | 
             
                        if yml
         | 
| 251 263 | 
             
                          yml.symbolize_keys!
         | 
| 264 | 
            +
                          yml.values.select { |value| Hash === value }.each { |hash| hash.symbolize_keys! }
         | 
| 252 265 | 
             
                          @options = @options.reverse_merge(yml)
         | 
| 253 266 | 
             
                          log("Options loaded from file", :indent)
         | 
| 254 267 | 
             
                        end
         | 
    
        data/lib/plate/cli.rb
    CHANGED
    
    | @@ -33,6 +33,10 @@ module Plate | |
| 33 33 | 
             
                      options[:category] = c
         | 
| 34 34 | 
             
                    end
         | 
| 35 35 |  | 
| 36 | 
            +
                    opts.on('--config [PATH]', '-C', 'Set the config file location for the site.') do |c|
         | 
| 37 | 
            +
                      options[:config] = c
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
                    
         | 
| 36 40 | 
             
                    opts.on('--destination [PATH]', '-d', 'Set the destination directory for this build.') do |d|
         | 
| 37 41 | 
             
                      @destination = File.expand_path(d)
         | 
| 38 42 | 
             
                    end
         | 
| @@ -184,11 +188,17 @@ module Plate | |
| 184 188 | 
             
                    title = args.size == 0 ? "" : args[0]
         | 
| 185 189 | 
             
                    slug = title.parameterize
         | 
| 186 190 | 
             
                    date = Time.now
         | 
| 191 | 
            +
                    
         | 
| 192 | 
            +
                    # if there are any post defaults in the config file, use those as the default options
         | 
| 193 | 
            +
                    if builder.config.has_key?(:post_defaults)
         | 
| 194 | 
            +
                      options.reverse_merge!(builder.config[:post_defaults])
         | 
| 195 | 
            +
                    end
         | 
| 196 | 
            +
                    
         | 
| 187 197 | 
             
                    category = options[:category] ? "\ncategory: #{options[:category]}" : ""
         | 
| 188 198 | 
             
                    layout = options[:layout] ? "\nlayout: #{options[:layout]}" : ""
         | 
| 189 199 |  | 
| 190 200 | 
             
                    filename = File.join(self.source, 'posts', date.strftime('%Y/%m'), "#{date.strftime('%Y-%m-%d')}-#{slug}.md")
         | 
| 191 | 
            -
                    content = %Q(---\ntitle: "#{title}"\ndate: #{date.strftime('%Y-%m-%d %H:%M:%S')}#{category}#{layout}\ntags: []\n\n# #{title}\n\ | 
| 201 | 
            +
                    content = %Q(---\ntitle: "#{title}"\ndate: #{date.strftime('%Y-%m-%d %H:%M:%S')}#{category}#{layout}\ntags: []\n\n# #{title}\n\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.)
         | 
| 192 202 |  | 
| 193 203 | 
             
                    FileUtils.mkdir_p(File.dirname(filename))
         | 
| 194 204 | 
             
                    File.open(filename, 'w') { |f| f.write(content) }
         | 
| @@ -57,6 +57,11 @@ module Plate | |
| 57 57 | 
             
                  @post_index ||= self.posts.index(self.post)
         | 
| 58 58 | 
             
                end
         | 
| 59 59 |  | 
| 60 | 
            +
                # Find all posts for the given category
         | 
| 61 | 
            +
                def posts_for_category(category)
         | 
| 62 | 
            +
                  self.posts.select { |p| p.category == category }
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
                
         | 
| 60 65 | 
             
                # Find all posts for the given year, month and optional category.
         | 
| 61 66 | 
             
                def posts_for_month(year, month, category = nil)
         | 
| 62 67 | 
             
                  result = []
         | 
    
        data/lib/plate/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: plate
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.4
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012-03- | 
| 12 | 
            +
            date: 2012-03-24 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70215040139900 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '3.2'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70215040139900
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: directory_watcher
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70215040141660 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ! '>='
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '0'
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70215040141660
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: i18n
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70215040157640 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ~>
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '0.6'
         | 
| 44 44 | 
             
              type: :runtime
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70215040157640
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: rake
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70215040166620 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ! '>='
         | 
| @@ -54,10 +54,10 @@ dependencies: | |
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
              type: :runtime
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70215040166620
         | 
| 58 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 59 | 
             
              name: redcarpet
         | 
| 60 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &70215040168380 !ruby/object:Gem::Requirement
         | 
| 61 61 | 
             
                none: false
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - ~>
         | 
| @@ -65,10 +65,10 @@ dependencies: | |
| 65 65 | 
             
                    version: '2'
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *70215040168380
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: tilt
         | 
| 71 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &70215040167820 !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                none: false
         | 
| 73 73 | 
             
                requirements:
         | 
| 74 74 | 
             
                - - ~>
         | 
| @@ -76,7 +76,7 @@ dependencies: | |
| 76 76 | 
             
                    version: '1.3'
         | 
| 77 77 | 
             
              type: :runtime
         | 
| 78 78 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *70215040167820
         | 
| 80 80 | 
             
            description: Plate is a simple, static site generator and blog engine.
         | 
| 81 81 | 
             
            email:
         | 
| 82 82 | 
             
            - john@johntornow.com
         |