jekyll-haml-markup 0.1.0 → 0.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: aa5a1c4f4f6de2b2eec2d73b30f7710c06a68267
4
- data.tar.gz: 73420ab7f89c64063b39c47269b367e2b5b3a5a7
2
+ SHA256:
3
+ metadata.gz: 2b5ff16e78888c7aa674dfc1e95f756e811dc79fed9197394d78ec5f5ea54fcc
4
+ data.tar.gz: f1da06d1c3ba77e425e65252072f47fbecafa361ef2cbd6747d5ca973287f2a7
5
5
  SHA512:
6
- metadata.gz: 49f3975c43de103b7073005b5834b17c132a9080378359f58605161ae2eeef454e55115d8edb15b33ef6e3d45b88c8b8f399f2832ac13f69c0ad2a1d711da80b
7
- data.tar.gz: f77d17ed31f404a31160a548edb0f6f2b383b366971d653363df80b95b3cd795189b01b039ba76148c5a5aaf66308d8ca05fcf23514969ae96d44905c554e11f
6
+ metadata.gz: c212d037005abf104dccd46686968179ffa460cad2b6779c4e381900fb080d355ee8789ae08646069103bba7aedaa6f48bd6b5a0607bcaa0b6c9a787f0a68cfa
7
+ data.tar.gz: a222f997d1a6d6c3a15c4ac83c4e029d8a68e7c279fe688d020cab3b2842f38580669783ea4181196b7cf42933578d677d5012106e1cff121a9766d46d84ceef
@@ -0,0 +1,40 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ release:
5
+ types: [ published ]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby 2.6
15
+ uses: actions/setup-ruby@v1
16
+ with:
17
+ ruby-version: 2.6.x
18
+
19
+ - name: Publish to GPR
20
+ run: |
21
+ mkdir -p $HOME/.gem
22
+ touch $HOME/.gem/credentials
23
+ chmod 0600 $HOME/.gem/credentials
24
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
25
+ gem build *.gemspec
26
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
27
+ env:
28
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
29
+ OWNER: ${{ github.repository_owner }}
30
+
31
+ - name: Publish to RubyGems
32
+ run: |
33
+ mkdir -p $HOME/.gem
34
+ touch $HOME/.gem/credentials
35
+ chmod 0600 $HOME/.gem/credentials
36
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
37
+ gem build *.gemspec
38
+ gem push *.gem
39
+ env:
40
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
data/.gitignore CHANGED
@@ -6,3 +6,6 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.gem
10
+ /Gemfile.lock
11
+ .jekyll-cache
@@ -1,5 +1,11 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.3
5
- before_install: gem install bundler -v 1.16.1
4
+ - 2.7.1
5
+ - 2.6.6
6
+ - 2.5.8
7
+ - 2.4.10
8
+ - 2.3.8
9
+ - 2.2.10
10
+ - 2.1.10
11
+ - 2.1.0
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in jekyll-haml-markup.gemspec
6
6
  gemspec
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
- # JEKYLL-HAML-MARKUP
1
+ # Jekyll Haml Markup
2
2
 
3
- [Jekyll](https://jekyllrb.com) plugin that enables [Haml](http://haml.info) as a markup option for layouts and partials.
3
+ [Jekyll](https://jekyllrb.com) plugin that enables [Haml](http://haml.info) as a markup option for layouts, partials, and pages.
4
4
 
5
5
  ## Installation
6
6
 
7
- Add it to your Gemfile:
7
+ Add to your Gemfile:
8
8
 
9
9
  ```ruby
10
10
  gem 'jekyll-haml-markup', group: :jekyll_plugins
@@ -12,24 +12,14 @@ gem 'jekyll-haml-markup', group: :jekyll_plugins
12
12
 
13
13
  ## Usage
14
14
 
15
- You just need to save your layout or template with extension `.haml`, replacing any other extension.
16
-
17
- The haml markup will be rendered before the [Liquid](http://shopify.github.io/liquid/) parsing, that means that you will need to escape with `\` any line that doesn't match haml syntax. For example:
18
-
19
- ```haml
20
- !!!
21
- %html
22
- %head
23
- \{% asset style.css %}
24
- %body
25
- \{{ content }}
26
- ```
15
+ Name your layouts, partials, and pages with the `.haml` extension. This plugin intercepts the default `include` and compile your Haml template to HTML.
27
16
 
28
17
  ## Development
18
+ This gem uses a hook for Haml layouts compiling, modifies the `include` tag, and add a Haml converter.
29
19
 
30
- I started this gem because I couldn't make work the gem [jekyll-haml](https://github.com/samvincent/jekyll-haml).
20
+ There are lots of border cases that have to be tested before production use.
31
21
 
32
- At this moment, this gem just works overriding [Jekyll](https://github.com/jekyll/jekyll) classes and methods. It's not a stable option and it has to be reviewed. If you want to help, just email me.
22
+ I started this gem because I couldn't make work the [jekyll-haml](https://github.com/samvincent/jekyll-haml) gem, which seems inactive.
33
23
 
34
24
  ## Contributing
35
25
 
@@ -37,8 +27,8 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/afaund
37
27
 
38
28
  ## License
39
29
 
40
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
30
+ The gem is available as open-source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
41
31
 
42
32
  ## Code of Conduct
43
33
 
44
- Everyone interacting in the Jekyll::Haml::Markup project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/jekyll-haml-markup/blob/master/CODE_OF_CONDUCT.md).
34
+ Everyone interacting in the Jekyll::Haml::Markup project’s codebases, issue trackers, chat rooms, and mailing lists are expected to follow the [code of conduct](https://github.com/[USERNAME]/jekyll-haml-markup/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
10
- task :default => :test
10
+ task default: :test
@@ -1,30 +1,34 @@
1
-
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'jekyll-haml-markup/version'
3
+ require 'jekyll/haml/markup/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "jekyll-haml-markup"
6
+ spec.name = 'jekyll-haml-markup'
8
7
  spec.version = Jekyll::Haml::Markup::VERSION
9
- spec.authors = ["Alvaro Faundez"]
10
- spec.email = ["alvaro@faundez.net"]
8
+ spec.authors = ['Alvaro Faundez']
9
+ spec.email = ['alvaro@faundez.net']
11
10
 
12
- spec.summary = %q{Jekyll plugin to use Haml on templates.}
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'
11
+ spec.summary = 'Jekyll plugin to use Haml on templates.'
12
+ spec.description = 'Jekyll plugin that add the option to write layouts' \
13
+ ' and partials in 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|
18
18
  f.match(%r{^(test|spec|features)/})
19
19
  end
20
- spec.bindir = "exe"
20
+ spec.bindir = 'exe'
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
23
+
24
+ spec.required_ruby_version = '>= 2.1.0'
23
25
 
24
- spec.add_development_dependency "bundler", "~> 1.16"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "minitest", "~> 5.0"
26
+ spec.add_development_dependency 'bundler', '>= 1.16', '< 3.0'
27
+ spec.add_development_dependency 'minitest', '~> 5.0'
28
+ spec.add_development_dependency 'nokogiri', '~> 1.6', '>= 1.6.8'
29
+ spec.add_development_dependency 'rake', '~> 12.3.3'
30
+ spec.add_development_dependency 'rubocop', '~> 0.57', '>= 0.57.2'
27
31
 
28
- spec.add_runtime_dependency 'jekyll', '~> 3.7'
29
- spec.add_runtime_dependency 'haml', '~> 5.0'
32
+ spec.add_runtime_dependency 'haml', '~> 5.0', '>= 5.0.0'
33
+ spec.add_runtime_dependency 'jekyll', '>= 3.0', '< 5.0'
30
34
  end
@@ -1,13 +1 @@
1
- require 'jekyll-haml-markup/version'
2
-
3
- require 'jekyll'
4
-
5
- require_relative 'jekyll/converters/haml'
6
- require_relative 'jekyll/haml/parser'
7
- require_relative 'jekyll/tags/include'
8
- require_relative 'jekyll/configuration'
9
- require_relative 'jekyll/convertible'
10
- require_relative 'jekyll/excerpt'
11
- require_relative 'jekyll/haml_renderer'
12
- require_relative 'jekyll/renderer'
13
- require_relative 'jekyll/site'
1
+ require_relative 'jekyll/haml/markup'
@@ -0,0 +1,16 @@
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
+ # markup module
10
+ module Markup
11
+ def self.root
12
+ Pathname.new File.expand_path('../../..', __dir__)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ require 'jekyll'
2
+
3
+ module Jekyll
4
+ module Converters
5
+ # haml converter
6
+ class Haml < Converter
7
+ def matches(ext)
8
+ Jekyll::Haml::Parser.matches ext
9
+ end
10
+
11
+ def output_ext(_ext)
12
+ '.html'
13
+ end
14
+
15
+ def convert(content)
16
+ Jekyll::Haml::Parser.compile content
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,10 @@
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 |_, layout|
6
+ if haml_converter.matches layout.ext
7
+ layout.content = Jekyll::Haml::Parser.compile layout.content
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,37 @@
1
+ require 'jekyll'
2
+ require 'liquid'
3
+
4
+ module Jekyll
5
+ module Tags
6
+ # include module
7
+ class HamlInclude < IncludeTag
8
+ def read_file(file, context)
9
+ return super file, context unless matches_a_haml_template file
10
+ file_content = read_file_with_context file, context
11
+ template = split_frontmatter_and_template file_content
12
+ compile_haml_to_html template
13
+ end
14
+
15
+ private
16
+
17
+ def matches_a_haml_template(file)
18
+ Jekyll::Haml::Parser.matches File.extname file
19
+ end
20
+
21
+ def read_file_with_context(file, context)
22
+ File.read file, **file_read_opts(context)
23
+ end
24
+
25
+ def split_frontmatter_and_template(file_content)
26
+ return $POSTMATCH if file_content =~ Document::YAML_FRONT_MATTER_REGEXP
27
+ file_content
28
+ end
29
+
30
+ def compile_haml_to_html(template)
31
+ Jekyll::Haml::Parser.compile template
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ Liquid::Template.register_tag 'include', Jekyll::Tags::HamlInclude
@@ -0,0 +1,19 @@
1
+ require 'haml'
2
+
3
+ module Jekyll
4
+ module Haml
5
+ # parse module
6
+ class Parser
7
+ CONFIG = { attr_wrapper: '"', escape_attrs: false }.freeze
8
+
9
+ def self.matches(ext)
10
+ ext =~ /^\.haml$/i
11
+ end
12
+
13
+ def self.compile(content)
14
+ template = ::Haml::Engine.new content, CONFIG
15
+ template.render.split("\n").join
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,7 +1,7 @@
1
1
  module Jekyll
2
2
  module Haml
3
3
  module Markup
4
- VERSION = "0.1.0"
4
+ VERSION = '0.1.6'.freeze
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,75 +1,110 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-haml-markup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.6
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: 2020-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.16'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.16'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
27
33
  - !ruby/object:Gem::Dependency
28
- name: rake
34
+ name: minitest
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '10.0'
39
+ version: '5.0'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '10.0'
46
+ version: '5.0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: minitest
48
+ name: nokogiri
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '5.0'
53
+ version: '1.6'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.6.8
48
57
  type: :development
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
61
  - - "~>"
53
62
  - !ruby/object:Gem::Version
54
- version: '5.0'
63
+ version: '1.6'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 1.6.8
55
67
  - !ruby/object:Gem::Dependency
56
- name: jekyll
68
+ name: rake
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '3.7'
62
- type: :runtime
73
+ version: 12.3.3
74
+ type: :development
63
75
  prerelease: false
64
76
  version_requirements: !ruby/object:Gem::Requirement
65
77
  requirements:
66
78
  - - "~>"
67
79
  - !ruby/object:Gem::Version
68
- version: '3.7'
80
+ version: 12.3.3
81
+ - !ruby/object:Gem::Dependency
82
+ name: rubocop
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '0.57'
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 0.57.2
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.57'
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 0.57.2
69
101
  - !ruby/object:Gem::Dependency
70
102
  name: haml
71
103
  requirement: !ruby/object:Gem::Requirement
72
104
  requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: 5.0.0
73
108
  - - "~>"
74
109
  - !ruby/object:Gem::Version
75
110
  version: '5.0'
@@ -77,9 +112,32 @@ dependencies:
77
112
  prerelease: false
78
113
  version_requirements: !ruby/object:Gem::Requirement
79
114
  requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 5.0.0
80
118
  - - "~>"
81
119
  - !ruby/object:Gem::Version
82
120
  version: '5.0'
121
+ - !ruby/object:Gem::Dependency
122
+ name: jekyll
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '3.0'
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '5.0'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '3.0'
138
+ - - "<"
139
+ - !ruby/object:Gem::Version
140
+ version: '5.0'
83
141
  description: Jekyll plugin that add the option to write layouts and partials in Haml.
84
142
  email:
85
143
  - alvaro@faundez.net
@@ -87,11 +145,11 @@ executables: []
87
145
  extensions: []
88
146
  extra_rdoc_files: []
89
147
  files:
148
+ - ".github/workflows/gem-push.yml"
90
149
  - ".gitignore"
91
150
  - ".travis.yml"
92
151
  - CODE_OF_CONDUCT.md
93
152
  - Gemfile
94
- - Gemfile.lock
95
153
  - LICENSE.txt
96
154
  - README.md
97
155
  - Rakefile
@@ -99,21 +157,13 @@ files:
99
157
  - bin/setup
100
158
  - jekyll-haml-markup.gemspec
101
159
  - 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/convertible.rb
106
- - lib/jekyll/excerpt.rb
107
- - lib/jekyll/haml.rb
108
- - lib/jekyll/haml/include.rb
109
- - lib/jekyll/haml/parser.rb
110
- - lib/jekyll/haml_renderer.rb
111
- - lib/jekyll/haml_renderer/file.rb
112
- - lib/jekyll/haml_renderer/table.rb
113
- - lib/jekyll/renderer.rb
114
- - lib/jekyll/site.rb
115
- - lib/jekyll/tags/include.rb
116
- homepage: https://github.com/afaundez/jekyll-haml
160
+ - lib/jekyll/haml/markup.rb
161
+ - lib/jekyll/haml/markup/converter.rb
162
+ - lib/jekyll/haml/markup/hooks.rb
163
+ - lib/jekyll/haml/markup/include.rb
164
+ - lib/jekyll/haml/markup/parser.rb
165
+ - lib/jekyll/haml/markup/version.rb
166
+ homepage: https://github.com/afaundez/jekyll-haml-markup
117
167
  licenses:
118
168
  - MIT
119
169
  metadata: {}
@@ -125,15 +175,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
175
  requirements:
126
176
  - - ">="
127
177
  - !ruby/object:Gem::Version
128
- version: '0'
178
+ version: 2.1.0
129
179
  required_rubygems_version: !ruby/object:Gem::Requirement
130
180
  requirements:
131
181
  - - ">="
132
182
  - !ruby/object:Gem::Version
133
183
  version: '0'
134
184
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.6.14
185
+ rubygems_version: 3.0.3
137
186
  signing_key:
138
187
  specification_version: 4
139
188
  summary: Jekyll plugin to use Haml on templates.