jekyll-highlight-param 0.0.1 → 0.0.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
  SHA256:
3
- metadata.gz: b73acabebbdec05a36634b8804d60f07a2cd5f82961e371b7a8b691b0254e794
4
- data.tar.gz: c562dbad209384989a885701b814d4d9d9bed98289039dafd40340cd36fe55d4
3
+ metadata.gz: ee62e924028e4852ec50e55d532ee86339f7794e676126ec21abee8853277d47
4
+ data.tar.gz: '08ab4c9ec59a4742f367e929d59c7d59575599b477377cf7937cfb0ff88cc700'
5
5
  SHA512:
6
- metadata.gz: 19d3c9f2c8412d9f06ee559029626326059a64fd561a79600d4323bd5387c79e8b13ad27d845f8b72f8eaf2ca4417eca83028cb2f5589c5d2b38fe08786be2f2
7
- data.tar.gz: f3a8d2aff0127d44f5225f181ec891771fe830619a8014b38a3158d64a38a8b6551eae11274377d1b4f0848a900191d95ed9b76f3b5d1b3590aeecca64927eed
6
+ metadata.gz: a5c1ca294060894d593b72e3e2aa544972ea2cb7f6cdf9df0b2564069d52f50f42cdeeb77c81f77f00656ae7750282cc29e4278931576c698fda3e19e72e5a38
7
+ data.tar.gz: c1e99c02e6f95d9c226e903be96f7ec1a265f0a522eb85ba918f9cc55554a7d6b2844ef5172cf769a0ef041b53fe175cc0f9e126d9c42d83ece53ce548faec19
@@ -0,0 +1 @@
1
+ 2.6.6
data/README.md CHANGED
@@ -1 +1,114 @@
1
1
  # jekyll-highlight-param
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/jekyll-highlight-param.svg)](https://badge.fury.io/rb/jekyll-highlight-param)
4
+
5
+ A Liquid tag plugin for Jekyll that replaces the built in `{% highlight %}` tag, and allows passing the language to highlight in as a parameter.
6
+
7
+ _An issue for making this change a part of the mainline Jekyll Highlight tag can be found [here](https://github.com/jekyll/jekyll/issues/8290)._
8
+
9
+ _**It appears v0.0.1 did not actually work as intended, and was simply failing gracefully by detecting the language from the code itself. A better job of detecting errors and alerting the user was devised in v0.0.2.**_
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ group :jekyll_plugins do
17
+ gem 'jekyll-highlight-param', :github => 'UriShX/jekyll-highlight-param'
18
+ end
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ $ bundle
24
+
25
+ Or install it yourself as:
26
+
27
+ $ gem install jekyll-highlight-param
28
+
29
+ Then add the following to your site's `_config.yml`:
30
+
31
+ ```yaml
32
+ plugins:
33
+ - jekyll-highlight-param
34
+ ```
35
+
36
+ 💡 If you are using a Jekyll version less than 3.5.0, use the `gems` key instead of `plugins`.
37
+
38
+ ## Usage
39
+
40
+ ### Basic usage
41
+ Basic usage is the same as Jekyll's `{% highlight %}` tag, i.e.:
42
+
43
+ ```liquid
44
+ {% highlight_param ruby %}
45
+ def foo
46
+ puts 'foo'
47
+ end
48
+ {% endhighlight_param %}
49
+ ```
50
+
51
+ ### Using variables names for the language
52
+
53
+ _Please note: Since v0.0.2 passing variables to the `highlight_param` tag is done in a similar way to the syntax for passing variables to other tags, such as `link`. This is a breaking change from v0.0.1._
54
+
55
+ The name of the language you for the code to be highlighted can be specified as a variable instead of specifying the language directly in the template. For example, suppose you defined a variable in your page's front matter like this:
56
+
57
+ ```yaml
58
+ ---
59
+ title: My page
60
+ my_code: footer_company_a.html
61
+ my_lang: liquid
62
+ ---
63
+ ```
64
+
65
+ You could then reference that variable in your highlight:
66
+
67
+ ```liquid
68
+ {% if page.my_variable %}
69
+ {% capture my_code %}
70
+ {% include {{ page.code }} %}
71
+ {% endcapture %}
72
+ {% highlight_param {{ page.my_lang }} %}
73
+ {{ my_code | strip }}
74
+ {% endhighlight_param %}
75
+ {% endif %}
76
+ ```
77
+
78
+ In this example, the capture will store the include file `_includes/footer_company_a.html`, then the highlight will would match the display to match the syntax of `liquid`.
79
+
80
+ ### Line numbers
81
+
82
+ You could also pass a line numbers argument, as in the original `{% highlight %}` tag, both as parameter and as a variable. Line numbers are enabled when passing the `linenos` argument, and disabled as default.
83
+
84
+ ```liquid
85
+ {% highlight_param ruby linenos %}
86
+ def foo
87
+ puts 'foo'
88
+ end
89
+ {% endhighlight_param %}
90
+ ```
91
+ or:
92
+
93
+ ```yaml
94
+ ---
95
+ title: My page
96
+ line_numbers: linenos
97
+ ---
98
+ ```
99
+
100
+ ```liquid
101
+ {% highlight_param ruby {{ page.line_numbers }} %}
102
+ def foo
103
+ puts 'foo'
104
+ end
105
+ {% endhighlight_param %}
106
+ ```
107
+
108
+ ## Contributing
109
+
110
+ 1. Fork it.
111
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
112
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
113
+ 4. Push to the branch (`git push origin my-new-feature`)
114
+ 5. Create a new Pull Request
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require "rouge"
3
2
 
4
3
  module Jekyll
5
4
  module Tags
@@ -11,20 +10,55 @@ module Jekyll
11
10
  # forms: name, name=value, or name="<quoted list>"
12
11
  #
13
12
  # <quoted list> is a space-separated list of numbers
14
- SYNTAX = %r!^([a-zA-Z0-9.+#_-]+)((\s+\w+(=(\w+|"([0-9]+\s)*[0-9]+"))?)*)$!.freeze
13
+ #
14
+ # Both the language specifier and the options can be passed as liquid variables,
15
+ # please consult the documentation at https://github.com/UriShX/jekyll-highlight-param/blob/master/README.md#usage.
16
+ PARAM_SYNTAX = %r!(\w+([.]\w+)*)!x.freeze
17
+ LANG_SYNTAX = %r!([a-zA-Z0-9.+#_-]+)!x.freeze
18
+ OPTIONS_SYNTAX = %r!(\s+\w+(=(\w+|"([0-9]+\s)*[0-9]+")?)*)!.freeze
19
+ VARIABLE_SYNTAX = %r!
20
+ ^(
21
+ \{\{\s*
22
+ (?<lang_var>#{PARAM_SYNTAX})
23
+ \s*\}\}|
24
+ (?<lang>#{LANG_SYNTAX})
25
+ )
26
+ \s*
27
+ ((?<fault1>[}]+\s*|)
28
+ (
29
+ \{\{\s*
30
+ (?<params_var>(#{PARAM_SYNTAX}))
31
+ \s*\}\}|
32
+ (?<params>(#{OPTIONS_SYNTAX}+))
33
+ )
34
+ (?<fault2>.*))?
35
+ !mx.freeze
36
+
37
+ def isNilOrEmpty(var)
38
+ if var.nil?
39
+ return true
40
+ elsif var.strip.empty?
41
+ return true
42
+ else
43
+ return false
44
+ end
45
+ end
15
46
 
16
47
  def initialize(tag_name, markup, tokens)
17
48
  super
18
- if markup.strip =~ SYNTAX
19
- @lang = Regexp.last_match(1)
20
- @highlight_options = parse_options(Regexp.last_match(2))
21
- else
49
+ markup = markup.strip
50
+ @matched = markup.match(VARIABLE_SYNTAX)
51
+ # print @matched.captures.to_s + "\n"
52
+ if !@matched or !isNilOrEmpty(@matched["fault1"]) or !isNilOrEmpty(@matched["fault2"])
22
53
  raise SyntaxError, <<~MSG
23
- Syntax Error in tag 'highlight' while parsing the following markup:
54
+ Syntax Error in tag '#{tag_name}' while parsing the following markup:
24
55
 
25
56
  #{markup}
26
57
 
27
- Valid syntax: highlight <lang> [linenos]
58
+ Valid syntax: #{tag_name} <lang> [linenos]
59
+ \tOR: #{tag_name} {{ lang_variable }} [linenos]
60
+ \tOR: #{tag_name} <lang> {{ [linenos_variable(s)] }}
61
+ \tOR: #{tag_name} {{ lang_variable }} {{ [linenos_variable(s)] }}
28
62
  MSG
29
63
  end
30
64
  end
@@ -36,18 +70,36 @@ module Jekyll
36
70
  suffix = context["highlighter_suffix"] || ""
37
71
  code = super.to_s.gsub(LEADING_OR_TRAILING_LINE_TERMINATORS, "")
38
72
 
39
-
40
- # if ::Rouge::Lexer.find(@lang.downcase) != nil
41
- # @lang = @lang.downcase
42
- # else
43
- begin
44
- ::Rouge::Lexer.find((context[@lang]).downcase) != nil
45
- @lang = (context[@lang]).downcase
46
- rescue
47
- @lang = @lang.downcase
73
+ if @matched["lang_var"]
74
+ @lang = context[@matched["lang_var"]].downcase
75
+ @lang.match(LANG_SYNTAX)
76
+ unless $& == @lang
77
+ raise ArgumentError, <<~MSG
78
+ Language characters can only include Alphanumeric and the following characters, without spaces: . + # _ -
79
+ Your passed language variable: #{@lang}
80
+ MSG
81
+ end
82
+ elsif @matched["lang"]
83
+ @lang = @matched["lang"].downcase
84
+ else
85
+ raise SyntaxError, <<~MSG
86
+ Unknown Syntax Error in tag 'highlight_param'.
87
+ Please review tag documentation.
88
+ MSG
48
89
  end
49
- # end
50
-
90
+
91
+ # puts @lang
92
+
93
+ if @matched["params_var"]
94
+ @highlight_options = parse_options(@matched["params_var"])
95
+ elsif @matched["params"]
96
+ @highlight_options = parse_options(@matched["params"])
97
+ else
98
+ @highlight_options = parse_options("")
99
+ end
100
+
101
+ # puts @highlight_options
102
+
51
103
  output =
52
104
  case context.registers[:site].highlighter
53
105
  when "rouge"
@@ -68,7 +120,7 @@ module Jekyll
68
120
 
69
121
  def parse_options(input)
70
122
  options = {}
71
- return options if input.empty?
123
+ return options if isNilOrEmpty(input)
72
124
 
73
125
  # Split along 3 possible forms -- key="<quoted list>", key=value, or key
74
126
  input.scan(OPTIONS_REGEX) do |opt|
@@ -92,6 +144,7 @@ module Jekyll
92
144
  end
93
145
 
94
146
  def render_rouge(code)
147
+ require "rouge"
95
148
  formatter = ::Rouge::Formatters::HTMLLegacy.new(
96
149
  :line_numbers => @highlight_options[:linenos],
97
150
  :wrap => false,
@@ -99,7 +152,13 @@ module Jekyll
99
152
  :gutter_class => "gutter",
100
153
  :code_class => "code"
101
154
  )
102
- lexer = ::Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
155
+ if LANG_SYNTAX.match?(@lang)
156
+ lexer = ::Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
157
+ else
158
+ raise SyntaxError, <<~MSG
159
+ Can't find language variable #{@matched["lang_var"]}
160
+ MSG
161
+ end
103
162
  formatter.format(lexer.lex(code))
104
163
  end
105
164
 
@@ -119,4 +178,4 @@ module Jekyll
119
178
  end
120
179
  end
121
180
 
122
- Liquid::Template.register_tag("highlight_param", Jekyll::Tags::HighlightBlockParam)
181
+ Liquid::Template.register_tag("highlight_param", Jekyll::Tags::HighlightBlockParam)
@@ -0,0 +1,270 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Tags
5
+ class IncludeTag < Liquid::Tag
6
+ VALID_SYNTAX = %r!
7
+ ([\w-]+)\s*=\s*
8
+ (?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w.-]+))
9
+ !x.freeze
10
+ VARIABLE_SYNTAX = %r!
11
+ (?<variable>[^{]*(\{\{\s*[\w\-.]+\s*(\|.*)?\}\}[^\s{}]*)+)
12
+ (?<params>.*)
13
+ !mx.freeze
14
+
15
+ FULL_VALID_SYNTAX = %r!\A\s*(?:#{VALID_SYNTAX}(?=\s|\z)\s*)*\z!.freeze
16
+ VALID_FILENAME_CHARS = %r!^[\w/.-]+$!.freeze
17
+ INVALID_SEQUENCES = %r![./]{2,}!.freeze
18
+
19
+ def initialize(tag_name, markup, tokens)
20
+ super
21
+ markup = markup.strip
22
+ matched = markup.match(VARIABLE_SYNTAX)
23
+ if matched
24
+ @file = matched["variable"].strip
25
+ @params = matched["params"].strip
26
+ else
27
+ @file, @params = markup.split(%r!\s+!, 2)
28
+ end
29
+ validate_params if @params
30
+ @tag_name = tag_name
31
+ end
32
+
33
+ def syntax_example
34
+ "{% #{@tag_name} file.ext param='value' param2='value' %}"
35
+ end
36
+
37
+ def parse_params(context)
38
+ params = {}
39
+ @params.scan(VALID_SYNTAX) do |key, d_quoted, s_quoted, variable|
40
+ value = if d_quoted
41
+ d_quoted.include?('\\"') ? d_quoted.gsub('\\"', '"') : d_quoted
42
+ elsif s_quoted
43
+ s_quoted.include?("\\'") ? s_quoted.gsub("\\'", "'") : s_quoted
44
+ elsif variable
45
+ context[variable]
46
+ end
47
+
48
+ params[key] = value
49
+ end
50
+ params
51
+ end
52
+
53
+ def validate_file_name(file)
54
+ if INVALID_SEQUENCES.match?(file) || !VALID_FILENAME_CHARS.match?(file)
55
+ raise ArgumentError, <<~MSG
56
+ Invalid syntax for include tag. File contains invalid characters or sequences:
57
+
58
+ #{file}
59
+
60
+ Valid syntax:
61
+
62
+ #{syntax_example}
63
+
64
+ MSG
65
+ end
66
+ end
67
+
68
+ def validate_params
69
+ unless FULL_VALID_SYNTAX.match?(@params)
70
+ raise ArgumentError, <<~MSG
71
+ Invalid syntax for include tag:
72
+
73
+ #{@params}
74
+
75
+ Valid syntax:
76
+
77
+ #{syntax_example}
78
+
79
+ MSG
80
+ end
81
+ end
82
+
83
+ # Grab file read opts in the context
84
+ def file_read_opts(context)
85
+ context.registers[:site].file_read_opts
86
+ end
87
+
88
+ # Render the variable if required
89
+ def render_variable(context)
90
+ Liquid::Template.parse(@file).render(context) if VARIABLE_SYNTAX.match?(@file)
91
+ end
92
+
93
+ def tag_includes_dirs(context)
94
+ context.registers[:site].includes_load_paths.freeze
95
+ end
96
+
97
+ def locate_include_file(context, file, safe)
98
+ includes_dirs = tag_includes_dirs(context)
99
+ includes_dirs.each do |dir|
100
+ path = PathManager.join(dir, file)
101
+ return path if valid_include_file?(path, dir.to_s, safe)
102
+ end
103
+ raise IOError, could_not_locate_message(file, includes_dirs, safe)
104
+ end
105
+
106
+ def render(context)
107
+ site = context.registers[:site]
108
+
109
+ file = render_variable(context) || @file
110
+ validate_file_name(file)
111
+
112
+ path = locate_include_file(context, file, site.safe)
113
+ return unless path
114
+
115
+ add_include_to_dependency(site, path, context)
116
+
117
+ partial = load_cached_partial(path, context)
118
+
119
+ context.stack do
120
+ context["include"] = parse_params(context) if @params
121
+ begin
122
+ partial.render!(context)
123
+ rescue Liquid::Error => e
124
+ e.template_name = path
125
+ e.markup_context = "included " if e.markup_context.nil?
126
+ raise e
127
+ end
128
+ end
129
+ end
130
+
131
+ def add_include_to_dependency(site, path, context)
132
+ if context.registers[:page]&.key?("path")
133
+ site.regenerator.add_dependency(
134
+ site.in_source_dir(context.registers[:page]["path"]),
135
+ path
136
+ )
137
+ end
138
+ end
139
+
140
+ def load_cached_partial(path, context)
141
+ context.registers[:cached_partials] ||= {}
142
+ cached_partial = context.registers[:cached_partials]
143
+
144
+ if cached_partial.key?(path)
145
+ cached_partial[path]
146
+ else
147
+ unparsed_file = context.registers[:site]
148
+ .liquid_renderer
149
+ .file(path)
150
+ begin
151
+ cached_partial[path] = unparsed_file.parse(read_file(path, context))
152
+ rescue Liquid::Error => e
153
+ e.template_name = path
154
+ e.markup_context = "included " if e.markup_context.nil?
155
+ raise e
156
+ end
157
+ end
158
+ end
159
+
160
+ def valid_include_file?(path, dir, safe)
161
+ !outside_site_source?(path, dir, safe) && File.file?(path)
162
+ end
163
+
164
+ def outside_site_source?(path, dir, safe)
165
+ safe && !realpath_prefixed_with?(path, dir)
166
+ end
167
+
168
+ def realpath_prefixed_with?(path, dir)
169
+ File.exist?(path) && File.realpath(path).start_with?(dir)
170
+ rescue StandardError
171
+ false
172
+ end
173
+
174
+ # This method allows to modify the file content by inheriting from the class.
175
+ def read_file(file, context)
176
+ File.read(file, **file_read_opts(context))
177
+ end
178
+
179
+ private
180
+
181
+ def could_not_locate_message(file, includes_dirs, safe)
182
+ message = "Could not locate the included file '#{file}' in any of "\
183
+ "#{includes_dirs}. Ensure it exists in one of those directories and"
184
+ message + if safe
185
+ " is not a symlink as those are not allowed in safe mode."
186
+ else
187
+ ", if it is a symlink, does not point outside your site source."
188
+ end
189
+ end
190
+ end
191
+
192
+ # Do not inherit from this class.
193
+ # TODO: Merge into the `Jekyll::Tags::IncludeTag` in v5.0
194
+ class OptimizedIncludeTag < IncludeTag
195
+ def render(context)
196
+ @site ||= context.registers[:site]
197
+
198
+ file = render_variable(context) || @file
199
+ validate_file_name(file)
200
+
201
+ @site.inclusions[file] ||= locate_include_file(file)
202
+ inclusion = @site.inclusions[file]
203
+
204
+ add_include_to_dependency(inclusion, context) if @site.incremental?
205
+
206
+ context.stack do
207
+ context["include"] = parse_params(context) if @params
208
+ inclusion.render(context)
209
+ end
210
+ end
211
+
212
+ private
213
+
214
+ def locate_include_file(file)
215
+ @site.includes_load_paths.each do |dir|
216
+ path = PathManager.join(dir, file)
217
+ return Inclusion.new(@site, dir, file) if valid_include_file?(path, dir)
218
+ end
219
+ raise IOError, could_not_locate_message(file, @site.includes_load_paths, @site.safe)
220
+ end
221
+
222
+ def valid_include_file?(path, dir)
223
+ File.file?(path) && !outside_scope?(path, dir)
224
+ end
225
+
226
+ def outside_scope?(path, dir)
227
+ @site.safe && !realpath_prefixed_with?(path, dir)
228
+ end
229
+
230
+ def realpath_prefixed_with?(path, dir)
231
+ File.realpath(path).start_with?(dir)
232
+ rescue StandardError
233
+ false
234
+ end
235
+
236
+ def add_include_to_dependency(inclusion, context)
237
+ return unless context.registers[:page]&.key?("path")
238
+
239
+ @site.regenerator.add_dependency(
240
+ @site.in_source_dir(context.registers[:page]["path"]),
241
+ inclusion.path
242
+ )
243
+ end
244
+ end
245
+
246
+ class IncludeRelativeTag < IncludeTag
247
+ def tag_includes_dirs(context)
248
+ Array(page_path(context)).freeze
249
+ end
250
+
251
+ def page_path(context)
252
+ page, site = context.registers.values_at(:page, :site)
253
+ return site.source unless page
254
+
255
+ site.in_source_dir File.dirname(resource_path(page, site))
256
+ end
257
+
258
+ private
259
+
260
+ def resource_path(page, site)
261
+ path = page["path"]
262
+ path = File.join(site.config["collections_dir"], path) if page["collection"]
263
+ path.sub(%r!/#excerpt\z!, "")
264
+ end
265
+ end
266
+ end
267
+ end
268
+
269
+ Liquid::Template.register_tag("include", Jekyll::Tags::OptimizedIncludeTag)
270
+ Liquid::Template.register_tag("include_relative", Jekyll::Tags::IncludeRelativeTag)
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Tags
5
+ class Link < Liquid::Tag
6
+ include Jekyll::Filters::URLFilters
7
+
8
+ class << self
9
+ def tag_name
10
+ name.split("::").last.downcase
11
+ end
12
+ end
13
+
14
+ def initialize(tag_name, relative_path, tokens)
15
+ super
16
+
17
+ @relative_path = relative_path.strip
18
+ end
19
+
20
+ def render(context)
21
+ @context = context
22
+ site = context.registers[:site]
23
+ relative_path = Liquid::Template.parse(@relative_path).render(context)
24
+ relative_path_with_leading_slash = PathManager.join("", relative_path)
25
+
26
+ site.each_site_file do |item|
27
+ return relative_url(item) if item.relative_path == relative_path
28
+ # This takes care of the case for static files that have a leading /
29
+ return relative_url(item) if item.relative_path == relative_path_with_leading_slash
30
+ end
31
+
32
+ raise ArgumentError, <<~MSG
33
+ Could not find document '#{relative_path}' in tag '#{self.class.tag_name}'.
34
+
35
+ Make sure the document exists and the path is correct.
36
+ MSG
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ Liquid::Template.register_tag(Jekyll::Tags::Link.tag_name, Jekyll::Tags::Link)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-highlight-param
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uri Shani
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.6'
41
41
  description: A Liquid tag plugin for Jekyll that replaces the built in highlight tag,
42
- and allows passing the language to highlight in as a parameter.
42
+ and allows passing the language to highlight in as a liquid variable.
43
43
  email:
44
44
  - usdogi@gmail.com
45
45
  executables: []
@@ -47,10 +47,12 @@ extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
49
  - ".gitignore"
50
+ - ".ruby-version"
50
51
  - README.md
51
- - jekyll-highlight-param.gemspec
52
52
  - lib/jekyll-highlight-param.rb
53
- homepage: https://github.com/UriShX/jekyll-highlight-param
53
+ - lib/jekyll/tags/include.rb
54
+ - lib/jekyll/tags/link.rb
55
+ homepage: https://github.com/urishx/jekyll-highlight-param
54
56
  licenses:
55
57
  - MIT
56
58
  metadata: {}
@@ -72,5 +74,5 @@ requirements: []
72
74
  rubygems_version: 3.0.3
73
75
  signing_key:
74
76
  specification_version: 4
75
- summary: Jekyll syntax highlighter that accepts parameter for the language
77
+ summary: Jekyll syntax highlighter that accepts variable for the language
76
78
  test_files: []
@@ -1,23 +0,0 @@
1
- # coding: utf-8
2
- # frozen_string_literal: true
3
- lib = File.expand_path("../lib", __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "jekyll-highlight-param"
8
- spec.version = "0.0.1"
9
- spec.date = "2020-09-23"
10
- spec.authors = ["Uri Shani"]
11
- spec.email = ["usdogi@gmail.com"]
12
- spec.summary = "Jekyll syntax highlighter that accepts parameter for the language"
13
- spec.description = "A Liquid tag plugin for Jekyll that replaces the built in highlight tag, and allows passing the language to highlight in as a parameter."
14
- spec.homepage = "https://github.com/UriShX/jekyll-highlight-param"
15
- spec.license = "MIT"
16
- spec.required_ruby_version = ">= 2.0.0"
17
-
18
- spec.files = `git ls-files -z`.split("\x0")
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "jekyll", ">= 3.6.3"
22
- spec.add_development_dependency "bundler", "~> 1.6"
23
- end