slimdown 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 11ecd53f76f3f7e0f02682fdf0650331db9fbfd6
4
+ data.tar.gz: 9fd4b4d8546c45a16882d83721ed445f16aedef9
5
+ SHA512:
6
+ metadata.gz: e0defd1b01855570217e8bbc630f41a547c7c1436a22c8343ece1538bc50894efc13461424d03e725a7b457fc59485f5e540ff46abddb7ac7e6d365b06eb908f
7
+ data.tar.gz: 6fe35a719ca17a0a741a91ca9ba511e1bdc81e9d255ab537699e923cf668873777e00aa4aa8b93b00af333b455daaae2eb85d4480a258789dad7da0be1afe699
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - 2.1.5
5
+ - 2.2.2
6
+ - jruby
7
+ before_install:
8
+ - gem update --system
9
+ - gem --version
10
+ - gem update bundler
data/.yardocops ADDED
@@ -0,0 +1 @@
1
+ --no-private --protected lib/**/*.rb - Readme.md LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ruby-slimdown.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,70 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ # Note: The cmd option is now required due to the increasing number of ways
19
+ # rspec may be run, below are examples of the most common uses.
20
+ # * bundler: 'bundle exec rspec'
21
+ # * bundler binstubs: 'bin/rspec'
22
+ # * spring: 'bin/rspec' (This will use spring if running and you have
23
+ # installed the spring binstubs per the docs)
24
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
25
+ # * 'just' rspec: 'rspec'
26
+
27
+ guard :rspec, cmd: "bundle exec rspec" do
28
+ require "guard/rspec/dsl"
29
+ dsl = Guard::RSpec::Dsl.new(self)
30
+
31
+ # Feel free to open issues for suggestions and improvements
32
+
33
+ # RSpec files
34
+ rspec = dsl.rspec
35
+ watch(rspec.spec_helper) { rspec.spec_dir }
36
+ watch(rspec.spec_support) { rspec.spec_dir }
37
+ watch(rspec.spec_files)
38
+
39
+ # Ruby files
40
+ ruby = dsl.ruby
41
+ dsl.watch_spec_files_for(ruby.lib_files)
42
+
43
+ # Rails files
44
+ rails = dsl.rails(view_extensions: %w(erb haml slim))
45
+ dsl.watch_spec_files_for(rails.app_files)
46
+ dsl.watch_spec_files_for(rails.views)
47
+
48
+ watch(rails.controllers) do |m|
49
+ [
50
+ rspec.spec.("routing/#{m[1]}_routing"),
51
+ rspec.spec.("controllers/#{m[1]}_controller"),
52
+ rspec.spec.("acceptance/#{m[1]}")
53
+ ]
54
+ end
55
+
56
+ # Rails config changes
57
+ watch(rails.spec_helper) { rspec.spec_dir }
58
+ watch(rails.routes) { "#{rspec.spec_dir}/routing" }
59
+ watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
60
+
61
+ # Capybara features specs
62
+ watch(rails.view_dirs) { |m| rspec.spec.("features/#{m[1]}") }
63
+ watch(rails.layouts) { |m| rspec.spec.("features/#{m[1]}") }
64
+
65
+ # Turnip features and steps
66
+ watch(%r{^spec/acceptance/(.+)\.feature$})
67
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
68
+ Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
69
+ end
70
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 American Public Media
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # Slimdown
2
+
3
+ Slimdown is a simple gem to allow you to easily add static pages to your app
4
+ via a folder full of Markdown files.
5
+
6
+ Justin Heideman conceived and built the original version in PHP.
7
+
8
+ [![Build Status](https://travis-ci.org/APMG/ruby-slimdown.svg?branch=master)](https://travis-ci.org/APMG/ruby-slimdown)
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ ```ruby
15
+ gem 'slimdown'
16
+ ```
17
+
18
+ And then execute:
19
+
20
+ $ bundle install
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install slimdown
25
+
26
+ ## Usage
27
+
28
+ To add to your app, create a controller with one action, such as `show`. In that
29
+ action, add code to pull in the action:
30
+
31
+ class SlimdownController < ApplicationController
32
+ def show
33
+ @page = Slimdown::Page.find(params[:slug])
34
+ end
35
+ end
36
+
37
+ Then add a view for the show action.
38
+
39
+ <%= @page.body.to_html.html_safe %>
40
+
41
+ <h2>Sibling Pages</h2>
42
+ <ul>
43
+ <% @page.siblings.each do |sibling| %>
44
+ <li><%= link_to sibling.title, "/#{sibling.path}" %></li>
45
+ <% end %>
46
+ </ul>
47
+
48
+ <h2>Child Pages</h2>
49
+ <ul>
50
+ <% @page.children.each do |child| %>
51
+ <li><%= link_to child.title, "/#{child.path}" %></li>
52
+ <% end %>
53
+ </ul>
54
+
55
+ Add a route to direct all unhandled requests to your controller. Make sure that
56
+ it is at the end of your routes.rb so it doesn't superseed other routes.
57
+
58
+ get '/*slug', to: 'slimdown#show'
59
+
60
+ Finally, add an initializer in `config/initializers/slimdown.rb` to set the path
61
+ to your pages.
62
+
63
+ Slimdown.config do |c|
64
+ c.location = Rails.root.join('lib/pages')
65
+ end
66
+
67
+
68
+ ## General notes
69
+
70
+ The use case for us is that we have a distinct repo containing the markdown (and
71
+ some other files) which is editable by producers. This is autodeployed to a
72
+ location on our servers which is accessible from our Rails app.
73
+
74
+ The actual pages live in `[location]/pages`. It is assumed that you will have
75
+ other files in there as well. In our use case, we have `/files` as well, which
76
+ is aliased as an asset store of sorts. We also have `/_deploy` with Capistrano
77
+ deployment code.
78
+
79
+
80
+ ## Development
81
+
82
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
83
+
84
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
85
+
86
+ ## Contributing
87
+
88
+ 1. Fork it ( https://github.com/apmg/ruby-slimdown/fork )
89
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
90
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
91
+ 4. Push to the branch (`git push origin my-new-feature`)
92
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ task default: :spec
5
+ RSpec::Core::RakeTask.new
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "ruby/slimdown"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,15 @@
1
+ module Slimdown
2
+ # Internal class for managing global configuration.
3
+ #
4
+ # Only used by singleton Slimdown module.
5
+ class Config
6
+
7
+ # Get the path to the markdown pages.
8
+ attr_accessor :location
9
+
10
+ def initialize
11
+ # Set defaults.
12
+ @location = 'pages/'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ module Slimdown
2
+ # Exception class for Slimdown errors.
3
+ class Exception < StandardError
4
+ end
5
+ end
@@ -0,0 +1,32 @@
1
+ module Slimdown
2
+ # Internal class for retrieving information about a folder.
3
+ class Folder
4
+ def initialize(absolute_path)
5
+ @absolute_path = absolute_path
6
+ end
7
+
8
+ # Returns a list of markdown files in the folder.
9
+ #
10
+ # @return [Array<String>] List of paths.
11
+ def markdown_files
12
+ return [] unless Dir.exists? @absolute_path
13
+
14
+ dir = Dir.new @absolute_path
15
+ files = dir.entries.grep(/\.md\z/i)
16
+ end
17
+
18
+ # Returns a list of page objects in the folder.
19
+ #
20
+ # @return [Array<Slimdown::Page>] List of pages.
21
+ def pages
22
+ pages = []
23
+
24
+ markdown_files.each do |file|
25
+ path = "#{@absolute_path}/#{file}"
26
+ pages << Slimdown::Page.new(path)
27
+ end
28
+
29
+ pages
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,91 @@
1
+ module Slimdown
2
+ # The model representing a page
3
+ class Page
4
+
5
+ # The subdirectory of the slimdown folder containing the markdown documents
6
+ PAGES_PATH_NAME = 'pages'
7
+
8
+ # The title from the document headers
9
+ attr_reader :title
10
+ # The template from the document headers
11
+ attr_reader :template
12
+
13
+ # Get new page object
14
+ #
15
+ # @param [String] absolute_path The absolute path to this document,
16
+ # including extension.
17
+ def initialize(absolute_path)
18
+ # Open the markdown file.
19
+ @absolute_path = absolute_path
20
+
21
+ @parsed_page = Slimdown::PageParser.new @absolute_path
22
+
23
+ load_headers
24
+ end
25
+
26
+ # Get page object by relative path.
27
+ #
28
+ # Example:
29
+ # Slimdown::Page.find('about/contact')
30
+ #
31
+ # @param [String] path relative path to page. Doesn't include extension.
32
+ # @return [Slimdown::Page] the page corresponding to this path.
33
+ def self.find(path)
34
+ # Finds the relative page.
35
+ config = Slimdown.config
36
+ loc = config.location
37
+
38
+ self.new("#{loc}/#{PAGES_PATH_NAME}/#{path}.md")
39
+ end
40
+
41
+ # Get the parsed body
42
+ #
43
+ # @return [Kramdown::Document] the parsed Markdown body.
44
+ def body
45
+ @parsed_page.body
46
+ end
47
+
48
+ # The sibling pages to this document.
49
+ #
50
+ # @return [Array<Slimdown::Page>] a list of sibling pages.
51
+ def siblings
52
+ # List other markdown files in the same folder.
53
+
54
+ # Sibling folder.
55
+ folder = File.dirname @absolute_path
56
+
57
+ Slimdown::Folder.new(folder).pages
58
+ end
59
+
60
+ # The children of this document.
61
+ #
62
+ # @return [Array<Slimdown::Page>] a list of child pages.
63
+ def children
64
+ # Check to see whether dir exists.
65
+ folder = @absolute_path
66
+ folder.slice! '.md'
67
+
68
+ Slimdown::Folder.new(folder).pages
69
+ end
70
+
71
+ # The relative path for this document.
72
+ #
73
+ # @return [String] the relative path, e.g. 'about/contact'
74
+ def path
75
+ loc = Slimdown.config.location
76
+ relative = @absolute_path
77
+ relative.slice! "#{loc}/#{PAGES_PATH_NAME}/"
78
+ relative.slice! '.md'
79
+
80
+ relative
81
+ end
82
+
83
+ private
84
+
85
+ def load_headers
86
+ headers = @parsed_page.headers
87
+ @title = headers['title']
88
+ @template = headers['template']
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,62 @@
1
+ require 'yaml'
2
+ require 'kramdown'
3
+
4
+ module Slimdown
5
+ # Internal class to manage parsing the markdown document.
6
+ class PageParser
7
+ # @param [String] path The absolute path to the markdown document.
8
+ def initialize(path)
9
+ @path = path
10
+
11
+ parse_file
12
+ end
13
+
14
+ # A hash of the headers in the document
15
+ #
16
+ # Example:
17
+ # {
18
+ # "title" => "Test title",
19
+ # "template" => "test_template",
20
+ # }
21
+ #
22
+ # @return [Hash] document headers
23
+ def headers
24
+ YAML.load @header_text
25
+ end
26
+
27
+ # The parsed markdown document body.
28
+ #
29
+ # @return [Kramdown::Document] a markdown document object.
30
+ def body
31
+ Kramdown::Document.new(@body_text)
32
+ end
33
+
34
+ private
35
+
36
+ def parse_file
37
+ # Simple state machine.
38
+ part = nil
39
+
40
+ @header_text = ''
41
+ @body_text = ''
42
+
43
+ File.open(@path, 'r') do |f|
44
+ f.each_line do |line|
45
+ if line.strip == '---' && !part
46
+ part = :header
47
+ elsif line.strip == '---' && part == :header
48
+ part = :body
49
+ elsif part == :header
50
+ @header_text += "#{line}\n"
51
+ elsif part == :body
52
+ @body_text += "#{line}\n"
53
+ end
54
+ end
55
+ end
56
+
57
+ rescue Errno::ENOENT
58
+ raise Slimdown::Exception, 'Page not found'
59
+ end
60
+
61
+ end
62
+ end
@@ -0,0 +1,4 @@
1
+ module Slimdown
2
+ # The slimdown version
3
+ VERSION = '0.1.0'
4
+ end
data/lib/slimdown.rb ADDED
@@ -0,0 +1,32 @@
1
+ require "slimdown/version"
2
+ require "slimdown/exception"
3
+ require "slimdown/page_parser"
4
+ require "slimdown/folder"
5
+ require "slimdown/page"
6
+ require "slimdown/config"
7
+
8
+ # The main Slimdown namespace.
9
+ module Slimdown
10
+
11
+ # Sets and retrieves global configuration.
12
+ #
13
+ # If called with a block, the config object will be passed to the block and
14
+ # allow settings to be modified. This could be done in a Rails initializer:
15
+ #
16
+ # Slimdown.config do |config|
17
+ # config.location = Rails.root.join 'pages'
18
+ # end
19
+ #
20
+ # The settings object is always returned.
21
+ #
22
+ # @param [Proc] block to call with config object.
23
+ # @return [Slimdown::Config] object with configuration params.
24
+ def self.config(&block)
25
+ @config ||= Slimdown::Config.new
26
+
27
+ # Allow configuration via a block.
28
+ block.call(@config) if block
29
+
30
+ @config
31
+ end
32
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'slimdown/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "slimdown"
8
+ spec.version = Slimdown::VERSION
9
+ spec.authors = ["William Johnston"]
10
+ spec.email = ["wjohnston@mpr.org"]
11
+
12
+ spec.summary = %q{A system for using static Markdown for pages.}
13
+ spec.description = %q{A system for using Markdown from a folder and turning it into web pages.}
14
+ spec.homepage = "https://github.com/APMG/ruby-slimdown"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_runtime_dependency 'kramdown', '~> 1.7'
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.9"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "guard", "~> 2.12"
27
+ spec.add_development_dependency "guard-rspec", "~> 4.5"
28
+ spec.add_development_dependency "pry", "~> 0.10"
29
+ spec.add_development_dependency "yard", "~> 0.8"
30
+ end
metadata ADDED
@@ -0,0 +1,162 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: slimdown
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - William Johnston
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: kramdown
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.9'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.12'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.12'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.10'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.10'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.8'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.8'
111
+ description: A system for using Markdown from a folder and turning it into web pages.
112
+ email:
113
+ - wjohnston@mpr.org
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - ".travis.yml"
121
+ - ".yardocops"
122
+ - Gemfile
123
+ - Guardfile
124
+ - LICENSE.txt
125
+ - README.md
126
+ - Rakefile
127
+ - bin/console
128
+ - bin/setup
129
+ - lib/slimdown.rb
130
+ - lib/slimdown/config.rb
131
+ - lib/slimdown/exception.rb
132
+ - lib/slimdown/folder.rb
133
+ - lib/slimdown/page.rb
134
+ - lib/slimdown/page_parser.rb
135
+ - lib/slimdown/version.rb
136
+ - ruby-slimdown.gemspec
137
+ homepage: https://github.com/APMG/ruby-slimdown
138
+ licenses:
139
+ - MIT
140
+ metadata: {}
141
+ post_install_message:
142
+ rdoc_options: []
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ requirements: []
156
+ rubyforge_project:
157
+ rubygems_version: 2.4.5
158
+ signing_key:
159
+ specification_version: 4
160
+ summary: A system for using static Markdown for pages.
161
+ test_files: []
162
+ has_rdoc: