middleman-page-toc 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 855385c433027c349a89cf3fbeef7e0ce72dff6c
4
+ data.tar.gz: d05ab6780cd6e06096c5158cb357d1bf4d2343ee
5
+ SHA512:
6
+ metadata.gz: 65841d01670d523d08113e1b8e3b57de7c9c6b61888ae773be89a5f9232a59d94686af31757aaa4d6a005bc61a8135e62997bb0e20680f1f96d71bd163d9f85c
7
+ data.tar.gz: 917c167166a6ee536091af4a485db4a51b74f2c22bd14c6d2677092754dddfb7250784595609b982a6ec4734d876d34643a5349d1fe026c195522c4a46c89a37
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *~
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in middleman.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # middleman-page-toc
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/middleman`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'middleman-page-toc'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install middleman-page-toc
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ 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.
30
+
31
+ 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).
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it ( https://github.com/[my-github-username]/middleman/fork )
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rake/clean'
@@ -0,0 +1,42 @@
1
+ module Middleman
2
+ module PageToc
3
+ module Helpers
4
+ def render_toc(page=nil, options = {})
5
+ unless config.markdown_engine == :redcarpet && config.markdown[:with_toc_data]
6
+ return "render_toc: use redcarpet as markdown_engin with markdown_option of :with_toc_data")
7
+ end
8
+
9
+ page ||= current_page
10
+ default_options = {
11
+ use_collapsing: true,
12
+ expand: true,
13
+ button_caption: 'ToC',
14
+ target_id: 'toc_content'
15
+ }
16
+ options.reverse_merge! default_optinos
17
+
18
+ target_id = options[:target_id]
19
+ use_collapsing = optinos[:use_collapsing]
20
+ collapse_in = (use_collapsing && options[:expand] == false || page.data.show_toc == false) ? 'in' : ''
21
+ button_caption = options[:button_caption]
22
+
23
+ content_tag(:div, :class=>'toc') do
24
+ ar = []
25
+
26
+ if use_collapsing
27
+ ar << content_tag(:button, button_caption, :type=>'button', :class=>'btn btn-default btn-sm toc_button', 'data-toggle'=> 'collapse', 'data-target'=>"##{target_id}")
28
+ end
29
+ ar << content_tag(:div, :id=>target_id, :class=>"toc_content collapse #{collapse_in}") do
30
+ markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML_TOC)
31
+ markdown.render(File.read(page.source_file))
32
+ end
33
+ ar.join.html_safe
34
+ end
35
+ end
36
+ end ## module Helpers
37
+
38
+ class Extension < Middleman::Extension
39
+ self.defined_helpers = [::Middleman::PageToc::Helpers]
40
+ end ## class Extension
41
+ end ## module PageToc
42
+ end ## module Middleman
@@ -0,0 +1,5 @@
1
+ module Middleman
2
+ module PageToc
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ require "middleman-page-toc/version"
2
+
3
+ ::Middleman::Extensions.register(:page_toc) do
4
+ require 'middleman-page-toc/extension'
5
+ ::Middleman::PageToc::Extension
6
+ end
7
+
@@ -0,0 +1,2 @@
1
+ require 'middleman-aks'
2
+
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'middleman-page-toc/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "middleman-page-toc"
8
+ spec.version = Middleman::PageToc::VERSION
9
+ spec.authors = ["Ataru Kodaka"]
10
+ spec.email = ["ataru.kodaka@gmail.com"]
11
+
12
+ spec.summary = %q{Write a short summary, because Rubygems requires one.}
13
+ spec.description = %q{Write a longer description or delete this line.}
14
+ spec.homepage = "http://atarukodaka.github.com/middleman-page-toc"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.require_paths = ["lib"]
18
+ spec.license = "MIT"
19
+
20
+ spec.add_dependency("middleman-core", "~> 3.2")
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.9"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-page-toc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ataru Kodaka
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: middleman-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
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
+ description: Write a longer description or delete this line.
56
+ email:
57
+ - ataru.kodaka@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - Gemfile
64
+ - README.md
65
+ - Rakefile
66
+ - lib/middleman-page-toc.rb
67
+ - lib/middleman-page-toc/extension.rb
68
+ - lib/middleman-page-toc/version.rb
69
+ - lib/middleman_extension.rb
70
+ - middleman-page-toc.gemspec
71
+ homepage: http://atarukodaka.github.com/middleman-page-toc
72
+ licenses:
73
+ - MIT
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 2.4.6
92
+ signing_key:
93
+ specification_version: 4
94
+ summary: Write a short summary, because Rubygems requires one.
95
+ test_files: []