jekyll-haml-markup 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9259c1159a8de7d6fca744c0315d319a05f373bd
4
- data.tar.gz: 7fa0e7d351b574d01b63da17c876609afd0b1914
3
+ metadata.gz: 5cf75015d192c32fcec1b8ab38077f6715a09f92
4
+ data.tar.gz: 17d091e04f614323e8264cd0d6a789225d5f943b
5
5
  SHA512:
6
- metadata.gz: cd80d195acde91bb5f3b7be39801c8fcc8f6cb4324ff72960aea27d1112da2850a2a4c4cc0fa82dd1da73f76b38f67813812e07711e22c35e9103754fdd06f62
7
- data.tar.gz: 8348ab98a42d8fecade22d853fa20088be0e2f2578b94955d7ea749dc389aba81ac10a1e7a08b6a7660b6ea17c3ccf1e49674eb6a6a31e2e19747f5bfa6e6953
6
+ metadata.gz: fabf6019e334bd851fa39fe89a5be5f08d45462ba0fd0c7e2a734882d933f66dc15d78c9a94e06926ee270bd27b3cff1f2a5594bd1dd3c37532e42d21385c469
7
+ data.tar.gz: 5af463b263b8bdd007ab0b22ff83bfb6ccae3d0fa2e354ab914eb0172b8c52ac4490b3ea648c77a79f891e1f83881cba2beb8b41edcd5540452287ae72b3e876
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jekyll-haml-markup (0.1.1)
4
+ jekyll-haml-markup (0.1.2)
5
5
  haml (~> 5.0)
6
6
  jekyll (~> 3.7)
7
+ liquid (~> 4.0)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -16,13 +17,13 @@ GEM
16
17
  eventmachine (>= 0.12.9)
17
18
  http_parser.rb (~> 0.6.0)
18
19
  eventmachine (1.2.5)
19
- ffi (1.9.18)
20
+ ffi (1.9.21)
20
21
  forwardable-extended (2.6.0)
21
22
  haml (5.0.4)
22
23
  temple (>= 0.8.0)
23
24
  tilt
24
25
  http_parser.rb (0.6.0)
25
- i18n (0.9.3)
26
+ i18n (0.9.4)
26
27
  concurrent-ruby (~> 1.0)
27
28
  jekyll (3.7.2)
28
29
  addressable (~> 2.4)
@@ -37,7 +38,7 @@ GEM
37
38
  pathutil (~> 0.9)
38
39
  rouge (>= 1.7, < 4)
39
40
  safe_yaml (~> 1.0)
40
- jekyll-sass-converter (1.5.1)
41
+ jekyll-sass-converter (1.5.2)
41
42
  sass (~> 3.4)
42
43
  jekyll-watch (2.0.0)
43
44
  listen (~> 3.0)
@@ -48,15 +49,18 @@ GEM
48
49
  rb-inotify (~> 0.9, >= 0.9.7)
49
50
  ruby_dep (~> 1.2)
50
51
  mercenary (0.3.6)
52
+ mini_portile2 (2.3.0)
51
53
  minitest (5.11.3)
54
+ nokogiri (1.8.2)
55
+ mini_portile2 (~> 2.3.0)
52
56
  pathutil (0.16.1)
53
57
  forwardable-extended (~> 2.6)
54
- public_suffix (3.0.1)
58
+ public_suffix (3.0.2)
55
59
  rake (10.5.0)
56
60
  rb-fsevent (0.10.2)
57
61
  rb-inotify (0.9.10)
58
62
  ffi (>= 0.5.0, < 2)
59
- rouge (3.1.0)
63
+ rouge (3.1.1)
60
64
  ruby_dep (1.5.0)
61
65
  safe_yaml (1.0.4)
62
66
  sass (3.5.5)
@@ -74,6 +78,7 @@ DEPENDENCIES
74
78
  bundler (~> 1.16)
75
79
  jekyll-haml-markup!
76
80
  minitest (~> 5.0)
81
+ nokogiri (~> 1.6, >= 1.6.8)
77
82
  rake (~> 10.0)
78
83
 
79
84
  BUNDLED WITH
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [Jekyll](https://jekyllrb.com) plugin that enables [Haml](http://haml.info) as a markup option for layouts and partials.
4
4
 
5
- **Note**: This gem overrides a few jekyll methods and it lacks of testing.
5
+ **Note**: This gem overwrites the `include` jekyll tag.
6
6
 
7
7
  ## Installation
8
8
 
@@ -22,14 +22,17 @@ The layout haml markup is rendered with hooks before the [Liquid](http://shopify
22
22
  !!!
23
23
  %html
24
24
  %head
25
- {% assets style.css %}
25
+ %title Fake title
26
+ %link{href: "{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}", rel: "stylesheet", type: 'text/css'}
27
+ %link(href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}" rel="stylesheet" type='text/css')
26
28
  %body
27
- %head
28
- {% include head.haml %}
29
+ %header
30
+ {% include header.haml %}
29
31
  %main
30
32
  {{ content }}
31
33
  %footer
32
- {% include footer.haml %}
34
+ {% include footer.html %}
35
+ %script{src: "{{ '/assets/javascript/script.css?v=' | append: site.github.build_revision | relative_url }}"}
33
36
  ```
34
37
 
35
38
  Front-matter headers are not working on partials.
@@ -1,7 +1,7 @@
1
1
 
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'jekyll-haml-markup/version'
4
+ require 'jekyll/haml/markup/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "jekyll-haml-markup"
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{Jekyll plugin to use Haml on templates.}
13
13
  spec.description = %q{Jekyll plugin that add the option to write layouts and partials in Haml.}
14
- spec.homepage = 'https://github.com/afaundez/jekyll-haml'
14
+ spec.homepage = 'https://github.com/afaundez/jekyll-haml-markup'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -24,7 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.16"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "minitest", "~> 5.0"
27
+ spec.add_development_dependency 'nokogiri', '~> 1.6', '>= 1.6.8'
27
28
 
28
29
  spec.add_runtime_dependency 'jekyll', '~> 3.7'
30
+ spec.add_runtime_dependency 'liquid', '~> 4.0'
29
31
  spec.add_runtime_dependency 'haml', '~> 5.0'
30
32
  end
@@ -0,0 +1,43 @@
1
+ require 'jekyll'
2
+
3
+ module Jekyll
4
+ module Converters
5
+ class Haml < Converter
6
+
7
+ def extname_list
8
+ @extname_list ||= haml_conf["haml_ext"].split(",").map do |e|
9
+ ".#{e.downcase}"
10
+ end
11
+ end
12
+
13
+ def matches(ext)
14
+ extname_list.include?(ext.downcase)
15
+ end
16
+
17
+ def output_ext(ext)
18
+ '.html'
19
+ end
20
+
21
+ def get_processor
22
+ case haml_conf['haml'].downcase
23
+ when 'lib-haml' then return Jekyll::Haml::Parser.new haml_conf
24
+ end
25
+ end
26
+
27
+ def convert(content)
28
+ get_processor.convert content
29
+ end
30
+
31
+ def haml_conf
32
+ {
33
+ 'haml_ext' => 'haml',
34
+ 'haml' => 'lib-haml',
35
+ 'lib-haml' => {
36
+ attr_wrapper: '"',
37
+ escape_attrs: false
38
+ }
39
+ }
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,11 @@
1
+ require 'jekyll'
2
+
3
+ Jekyll::Hooks.register :site, :post_read do |site|
4
+ haml_converter = Jekyll::Converters::Haml.new site.config
5
+ site.layouts.each do |name, layout|
6
+ if haml_converter.matches layout.ext
7
+ parsed_content = haml_converter.convert layout.content
8
+ layout.content = parsed_content
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,22 @@
1
+ require 'jekyll'
2
+ require 'liquid'
3
+
4
+ module Jekyll
5
+ module Tags
6
+ class HamlInclude < IncludeTag
7
+
8
+ def read_file(file, context)
9
+ content = File.read file, file_read_opts(context)
10
+
11
+ config = context.registers[:site].config
12
+ haml_converter = Jekyll::Converters::Haml.new config
13
+ content = haml_converter.convert(content) if haml_converter.matches File.extname(file)
14
+
15
+ content
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+
22
+ Liquid::Template.register_tag 'include', Jekyll::Tags::HamlInclude
File without changes
@@ -1,7 +1,7 @@
1
1
  module Jekyll
2
2
  module Haml
3
3
  module Markup
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,15 @@
1
+ require_relative 'markup/version'
2
+ require_relative 'markup/parser'
3
+ require_relative 'markup/converter'
4
+ require_relative 'markup/include'
5
+ require_relative 'markup/hooks'
6
+
7
+ module Jekyll
8
+ module Haml
9
+ module Markup
10
+ def self.root
11
+ Pathname.new File.expand_path('../../../..', __FILE__)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,28 +1 @@
1
- require 'jekyll-haml-markup/version'
2
-
3
- require 'jekyll'
4
- require 'haml'
5
-
6
- require_relative 'jekyll/converters/haml'
7
- require_relative 'jekyll/haml/parser'
8
- require_relative 'jekyll/configuration'
9
- require_relative 'jekyll/tags/include'
10
-
11
-
12
- Jekyll::Hooks.register :site, :post_read do |site|
13
- site.layouts.each do |name, layout|
14
- layout.content = ::Haml::Engine.new(layout.content).render if ['.haml'].include? layout.ext
15
- end
16
- end
17
-
18
- Jekyll::Hooks.register :pages, :pre_render do |page|
19
- page.content = ::Haml::Engine.new(page.content).render if ['.haml'].include? page.ext
20
- end
21
-
22
- Jekyll::Hooks.register :posts, :pre_render do |post|
23
- post.content = ::Haml::Engine.new(post.content).render if ['.haml'].include? post.ext
24
- end
25
-
26
- Jekyll::Hooks.register :documents, :pre_render do |document|
27
- document.content = ::Haml::Engine.new(document.content).render if ['.haml'].include? document.ext
28
- end
1
+ require_relative 'jekyll/haml/markup'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-haml-markup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alvaro Faundez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-30 00:00:00.000000000 Z
11
+ date: 2018-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,26 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.6'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.6.8
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '1.6'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.6.8
55
75
  - !ruby/object:Gem::Dependency
56
76
  name: jekyll
57
77
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +86,20 @@ dependencies:
66
86
  - - "~>"
67
87
  - !ruby/object:Gem::Version
68
88
  version: '3.7'
89
+ - !ruby/object:Gem::Dependency
90
+ name: liquid
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '4.0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '4.0'
69
103
  - !ruby/object:Gem::Dependency
70
104
  name: haml
71
105
  requirement: !ruby/object:Gem::Requirement
@@ -99,14 +133,13 @@ files:
99
133
  - bin/setup
100
134
  - jekyll-haml-markup.gemspec
101
135
  - lib/jekyll-haml-markup.rb
102
- - lib/jekyll-haml-markup/version.rb
103
- - lib/jekyll/configuration.rb
104
- - lib/jekyll/converters/haml.rb
105
- - lib/jekyll/haml.rb
106
- - lib/jekyll/haml/parser.rb
107
- - lib/jekyll/haml_renderer.rb
108
- - lib/jekyll/tags/include.rb
109
- homepage: https://github.com/afaundez/jekyll-haml
136
+ - lib/jekyll/haml/markup.rb
137
+ - lib/jekyll/haml/markup/converter.rb
138
+ - lib/jekyll/haml/markup/hooks.rb
139
+ - lib/jekyll/haml/markup/include.rb
140
+ - lib/jekyll/haml/markup/parser.rb
141
+ - lib/jekyll/haml/markup/version.rb
142
+ homepage: https://github.com/afaundez/jekyll-haml-markup
110
143
  licenses:
111
144
  - MIT
112
145
  metadata: {}
@@ -1,92 +0,0 @@
1
- require 'jekyll/configuration'
2
- # frozen_string_literal: true
3
-
4
- module Jekyll
5
- class Configuration < Hash
6
- # Default options. Overridden by values in _config.yml.
7
- # Strings rather than symbols are used for compatibility with YAML.
8
- DEFAULTS = Configuration[{
9
- 'haml_ext' => 'haml',
10
- 'haml' => 'lib-haml',
11
- 'lib-haml' => {},
12
-
13
- # Where things are
14
- "source" => Dir.pwd,
15
- "destination" => File.join(Dir.pwd, "_site"),
16
- "collections_dir" => "",
17
- "plugins_dir" => "_plugins",
18
- "layouts_dir" => "_layouts",
19
- "data_dir" => "_data",
20
- "includes_dir" => "_includes",
21
- "collections" => {},
22
-
23
- # Handling Reading
24
- "safe" => false,
25
- "include" => [".htaccess"],
26
- "exclude" => %w(
27
- Gemfile Gemfile.lock node_modules vendor/bundle/ vendor/cache/ vendor/gems/
28
- vendor/ruby/
29
- ),
30
- "keep_files" => [".git", ".svn"],
31
- "encoding" => "utf-8",
32
- "markdown_ext" => "markdown,mkdown,mkdn,mkd,md",
33
- "strict_front_matter" => false,
34
-
35
- # Filtering Content
36
- "show_drafts" => nil,
37
- "limit_posts" => 0,
38
- "future" => false,
39
- "unpublished" => false,
40
-
41
- # Plugins
42
- "whitelist" => [],
43
- "plugins" => [],
44
-
45
- # Conversion
46
- "markdown" => "kramdown",
47
- "highlighter" => "rouge",
48
- "lsi" => false,
49
- "excerpt_separator" => "\n\n",
50
- "incremental" => false,
51
-
52
- # Serving
53
- "detach" => false, # default to not detaching the server
54
- "port" => "4000",
55
- "host" => "127.0.0.1",
56
- "baseurl" => nil, # this mounts at /, i.e. no subdirectory
57
- "show_dir_listing" => false,
58
-
59
- # Output Configuration
60
- "permalink" => "date",
61
- "paginate_path" => "/page:num",
62
- "timezone" => nil, # use the local timezone
63
-
64
- "quiet" => false,
65
- "verbose" => false,
66
- "defaults" => [],
67
-
68
- "liquid" => {
69
- "error_mode" => "warn",
70
- },
71
-
72
- "rdiscount" => {
73
- "extensions" => [],
74
- },
75
-
76
- "redcarpet" => {
77
- "extensions" => [],
78
- },
79
-
80
- "kramdown" => {
81
- "auto_ids" => true,
82
- "toc_levels" => "1..6",
83
- "entity_output" => "as_char",
84
- "smart_quotes" => "lsquo,rsquo,ldquo,rdquo",
85
- "input" => "GFM",
86
- "hard_wrap" => false,
87
- "footnote_nr" => 1,
88
- "show_warnings" => false,
89
- },
90
- }.map { |k, v| [k, v.freeze] }].freeze
91
- end
92
- end
@@ -1,34 +0,0 @@
1
- require 'jekyll/converter'
2
- require 'jekyll/haml/parser'
3
-
4
- module Jekyll
5
- module Converters
6
- class Haml < Identity
7
- safe true
8
-
9
- def extname_list
10
- @extname_list ||= @config["haml_ext"].split(",").map do |e|
11
- ".#{e.downcase}"
12
- end
13
- end
14
-
15
- def matches(ext)
16
- extname_list.include?(ext.downcase)
17
- end
18
-
19
- def output_ext(ext)
20
- '.html'
21
- end
22
-
23
- def get_processor
24
- case @config["haml"].downcase
25
- when "lib-haml" then return Jekyll::Haml::Parser.new(@config)
26
- end
27
- end
28
-
29
- def convert(content)
30
- get_processor.convert content
31
- end
32
- end
33
- end
34
- end
data/lib/jekyll/haml.rb DELETED
@@ -1,11 +0,0 @@
1
- require "jekyll/haml/version"
2
-
3
- require_relative 'converters/haml'
4
- require_relative 'haml/parser'
5
- require_relative 'tags/include'
6
- require_relative 'configuration'
7
- require_relative 'convertible'
8
- require_relative 'excerpt'
9
- require_relative 'haml_renderer'
10
- require_relative 'renderer'
11
- require_relative 'site'
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'jekyll/haml_renderer'
3
- require_relative 'haml_renderer/file'
4
- require_relative 'haml_renderer/table'
5
-
6
- module Jekyll
7
- class HamlRenderer
8
- def initialize(site)
9
- @site = site
10
- # Haml::Template.error_mode = @site.config["haml"]["error_mode"].to_sym
11
- reset
12
- end
13
-
14
- def reset
15
- @stats = {}
16
- end
17
-
18
- def file(filename)
19
- filename = @site.in_source_dir(filename).sub(
20
- %r!\A#{Regexp.escape(@site.source)}/!,
21
- ""
22
- )
23
-
24
- HamlRenderer::File.new(self, filename).tap do
25
- @stats[filename] ||= new_profile_hash
26
- @stats[filename][:count] += 1
27
- end
28
- end
29
-
30
- def increment_bytes(filename, bytes)
31
- @stats[filename][:bytes] += bytes
32
- end
33
-
34
- def increment_time(filename, time)
35
- @stats[filename][:time] += time
36
- end
37
-
38
- def stats_table(n = 50)
39
- HamlRenderer::Table.new(@stats).to_s(n)
40
- end
41
-
42
- def self.format_error(e, path)
43
- "#{e.message} in #{path}"
44
- end
45
-
46
- private
47
- def new_profile_hash
48
- Hash.new { |hash, key| hash[key] = 0 }
49
- end
50
- end
51
- end
@@ -1,13 +0,0 @@
1
- require 'jekyll/tags/include'
2
-
3
- module Jekyll
4
- module Tags
5
- class IncludeTag < Liquid::Tag
6
-
7
- def read_file(file, context)
8
- ::Haml::Engine.new(File.read(file, file_read_opts(context))).render
9
- end
10
-
11
- end
12
- end
13
- end