jekyll-haml-markup 0.1.0 → 0.1.6

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
- 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.