middleman-core 3.3.2 → 3.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/features/helpers_select_tag.feature +6 -8
  3. data/lib/middleman-core.rb +1 -2
  4. data/lib/middleman-core/application.rb +10 -9
  5. data/lib/middleman-core/cli.rb +9 -13
  6. data/lib/middleman-core/cli/build.rb +26 -27
  7. data/lib/middleman-core/cli/bundler.rb +6 -7
  8. data/lib/middleman-core/cli/console.rb +10 -13
  9. data/lib/middleman-core/cli/extension.rb +2 -4
  10. data/lib/middleman-core/cli/init.rb +27 -28
  11. data/lib/middleman-core/cli/server.rb +43 -44
  12. data/lib/middleman-core/configuration.rb +13 -11
  13. data/lib/middleman-core/core_extensions/data.rb +21 -29
  14. data/lib/middleman-core/core_extensions/extensions.rb +8 -8
  15. data/lib/middleman-core/core_extensions/external_helpers.rb +3 -5
  16. data/lib/middleman-core/core_extensions/file_watcher.rb +7 -11
  17. data/lib/middleman-core/core_extensions/front_matter.rb +5 -6
  18. data/lib/middleman-core/core_extensions/rendering.rb +40 -30
  19. data/lib/middleman-core/core_extensions/request.rb +16 -19
  20. data/lib/middleman-core/core_extensions/routing.rb +37 -36
  21. data/lib/middleman-core/core_extensions/show_exceptions.rb +1 -5
  22. data/lib/middleman-core/extension.rb +14 -16
  23. data/lib/middleman-core/extensions.rb +4 -6
  24. data/lib/middleman-core/load_paths.rb +3 -6
  25. data/lib/middleman-core/logger.rb +1 -3
  26. data/lib/middleman-core/meta_pages.rb +11 -11
  27. data/lib/middleman-core/meta_pages/config_setting.rb +4 -4
  28. data/lib/middleman-core/meta_pages/sitemap_resource.rb +2 -2
  29. data/lib/middleman-core/meta_pages/sitemap_tree.rb +4 -4
  30. data/lib/middleman-core/preview_server.rb +12 -11
  31. data/lib/middleman-core/profiling.rb +6 -8
  32. data/lib/middleman-core/renderers/asciidoc.rb +12 -13
  33. data/lib/middleman-core/renderers/coffee_script.rb +2 -4
  34. data/lib/middleman-core/renderers/erb.rb +3 -4
  35. data/lib/middleman-core/renderers/haml.rb +2 -4
  36. data/lib/middleman-core/renderers/kramdown.rb +3 -4
  37. data/lib/middleman-core/renderers/less.rb +3 -9
  38. data/lib/middleman-core/renderers/liquid.rb +4 -8
  39. data/lib/middleman-core/renderers/markdown.rb +7 -11
  40. data/lib/middleman-core/renderers/redcarpet.rb +14 -16
  41. data/lib/middleman-core/renderers/sass.rb +36 -15
  42. data/lib/middleman-core/renderers/slim.rb +7 -10
  43. data/lib/middleman-core/renderers/stylus.rb +2 -6
  44. data/lib/middleman-core/sitemap.rb +6 -13
  45. data/lib/middleman-core/sitemap/extensions/ignores.rb +4 -10
  46. data/lib/middleman-core/sitemap/extensions/on_disk.rb +3 -7
  47. data/lib/middleman-core/sitemap/extensions/proxies.rb +7 -12
  48. data/lib/middleman-core/sitemap/extensions/redirects.rb +7 -15
  49. data/lib/middleman-core/sitemap/extensions/request_endpoints.rb +7 -15
  50. data/lib/middleman-core/sitemap/extensions/traversal.rb +4 -7
  51. data/lib/middleman-core/sitemap/queryable.rb +22 -27
  52. data/lib/middleman-core/sitemap/resource.rb +13 -25
  53. data/lib/middleman-core/sitemap/store.rb +11 -15
  54. data/lib/middleman-core/templates.rb +9 -12
  55. data/lib/middleman-core/templates/default.rb +6 -7
  56. data/lib/middleman-core/templates/empty.rb +0 -1
  57. data/lib/middleman-core/templates/extension/Gemfile +1 -1
  58. data/lib/middleman-core/templates/extension/Rakefile +2 -2
  59. data/lib/middleman-core/templates/extension/lib/lib.rb +0 -1
  60. data/lib/middleman-core/templates/html5.rb +6 -7
  61. data/lib/middleman-core/templates/local.rb +1 -2
  62. data/lib/middleman-core/templates/mobile.rb +3 -4
  63. data/lib/middleman-core/templates/shared/config.ru +1 -1
  64. data/lib/middleman-core/util.rb +5 -6
  65. data/lib/middleman-core/version.rb +1 -1
  66. data/lib/middleman-more/core_extensions/compass.rb +0 -1
  67. data/lib/middleman-more/core_extensions/default_helpers.rb +25 -16
  68. data/lib/middleman-more/core_extensions/i18n.rb +24 -23
  69. data/lib/middleman-more/extensions/asset_hash.rb +4 -6
  70. data/lib/middleman-more/extensions/asset_host.rb +1 -1
  71. data/lib/middleman-more/extensions/automatic_alt_tags.rb +2 -3
  72. data/lib/middleman-more/extensions/automatic_image_sizes.rb +4 -5
  73. data/lib/middleman-more/extensions/cache_buster.rb +0 -1
  74. data/lib/middleman-more/extensions/gzip.rb +1 -1
  75. data/lib/middleman-more/extensions/lorem.rb +8 -8
  76. data/lib/middleman-more/extensions/minify_css.rb +9 -8
  77. data/lib/middleman-more/extensions/minify_javascript.rb +5 -6
  78. data/lib/middleman-more/extensions/relative_assets.rb +0 -1
  79. data/lib/middleman-more/templates/smacss.rb +6 -7
  80. data/middleman-core.gemspec +1 -1
  81. metadata +5 -5
@@ -4,16 +4,15 @@ module Middleman
4
4
  module Renderers
5
5
  module AsciiDoc
6
6
  class << self
7
-
8
7
  def registered(app)
9
8
  app.config.define_setting :asciidoc, {
10
- :safe => :safe,
11
- :backend => :html5,
12
- :attributes => %W(showtitle env=middleman env-middleman middleman-version=#{::Middleman::VERSION})
9
+ safe: :safe,
10
+ backend: :html5,
11
+ attributes: %W(showtitle env=middleman env-middleman middleman-version=#{::Middleman::VERSION})
13
12
  }, 'AsciiDoc engine options (Hash)'
14
13
  app.config.define_setting :asciidoc_attributes, [], 'AsciiDoc custom attributes (Array)'
15
14
  app.before_configuration do
16
- template_extensions :adoc => :html
15
+ template_extensions adoc: :html
17
16
  end
18
17
 
19
18
  app.after_configuration do
@@ -24,7 +23,7 @@ module Middleman
24
23
  sitemap.provides_metadata(/\.adoc$/) do |path|
25
24
  # read the AsciiDoc header only to set page options and data
26
25
  # header values can be accessed via app.data.page.<name> in the layout
27
- doc = Asciidoctor.load_file path, :safe => :safe, :parse_header_only => true
26
+ doc = Asciidoctor.load_file path, safe: :safe, parse_header_only: true
28
27
 
29
28
  opts = {}
30
29
  if doc.attr? 'page-layout'
@@ -35,24 +34,24 @@ module Middleman
35
34
  opts[:layout] = layout
36
35
  end
37
36
  end
38
- opts[:layout_engine] = (doc.attr 'page-layout-engine') if (doc.attr? 'page-layout-engine')
39
- # TODO override attributes to set docfile, docdir, docname, etc
37
+ opts[:layout_engine] = (doc.attr 'page-layout-engine') if doc.attr? 'page-layout-engine'
38
+ # TODO: override attributes to set docfile, docdir, docname, etc
40
39
  # alternative is to set :renderer_options, which get merged into options by the rendering extension
41
- #opts[:attributes] = config[:asciidoc][:attributes].dup
42
- #opts[:attributes].concat %W(docfile=#{path} docdir=#{File.dirname path} docname=#{(File.basename path).sub(/\.adoc$/, '')})
40
+ # opts[:attributes] = config[:asciidoc][:attributes].dup
41
+ # opts[:attributes].concat %W(docfile=#{path} docdir=#{File.dirname path} docname=#{(File.basename path).sub(/\.adoc$/, '')})
43
42
 
44
43
  page = {}
45
44
  page[:title] = doc.doctitle
46
45
  page[:date] = (doc.attr 'date') unless (doc.attr 'date').nil?
47
- # TODO grab all the author information
46
+ # TODO: grab all the author information
48
47
  page[:author] = (doc.attr 'author') unless (doc.attr 'author').nil?
49
48
 
50
- {:options => opts, :page => ::Middleman::Util.recursively_enhance(page)}
49
+ { options: opts, page: ::Middleman::Util.recursively_enhance(page) }
51
50
  end
52
51
  end
53
52
  end
54
53
 
55
- alias :included :registered
54
+ alias_method :included, :registered
56
55
  end
57
56
  end
58
57
  end
@@ -3,10 +3,8 @@ require 'coffee_script'
3
3
 
4
4
  module Middleman
5
5
  module Renderers
6
-
7
6
  # CoffeeScript Renderer
8
7
  module CoffeeScript
9
-
10
8
  # Setup extension
11
9
  class << self
12
10
  # Once registered
@@ -16,11 +14,11 @@ module Middleman
16
14
  ::Tilt.prefer(DebuggingCoffeeScriptTemplate)
17
15
 
18
16
  app.before_configuration do
19
- template_extensions :coffee => :js
17
+ template_extensions coffee: :js
20
18
  DebuggingCoffeeScriptTemplate.middleman_app = self
21
19
  end
22
20
  end
23
- alias :included :registered
21
+ alias_method :included, :registered
24
22
  end
25
23
 
26
24
  # A Template for Tilt which outputs debug messages
@@ -4,11 +4,10 @@ module Middleman
4
4
  module ERb
5
5
  # Setup extension
6
6
  class << self
7
-
8
7
  # once registered
9
8
  def registered(app)
10
9
  app.before_configuration do
11
- template_extensions :erb => :html
10
+ template_extensions erb: :html
12
11
  end
13
12
 
14
13
  # After config
@@ -16,7 +15,7 @@ module Middleman
16
15
  ::Tilt.prefer(Template, :erb)
17
16
  end
18
17
  end
19
- alias :included :registered
18
+ alias_method :included, :registered
20
19
  end
21
20
 
22
21
  class Template < ::Tilt::ErubisTemplate
@@ -26,7 +25,7 @@ module Middleman
26
25
  def precompiled_preamble(locals)
27
26
  original = super
28
27
  "__in_erb_template = true\n" << original
29
- #.rpartition("\n").first << "#{@outvar} = _buf = ActiveSupport::SafeBuffer.new\n"
28
+ # .rpartition("\n").first << "#{@outvar} = _buf = ActiveSupport::SafeBuffer.new\n"
30
29
  end
31
30
  end
32
31
  end
@@ -13,16 +13,14 @@ end
13
13
 
14
14
  module Middleman
15
15
  module Renderers
16
-
17
16
  # Haml Renderer
18
17
  module Haml
19
-
20
18
  # Setup extension
21
19
  class << self
22
20
  # Once registered
23
21
  def registered(app)
24
22
  app.before_configuration do
25
- template_extensions :haml => :html
23
+ template_extensions haml: :html
26
24
  end
27
25
 
28
26
  # Add haml helpers to context
@@ -33,7 +31,7 @@ module Middleman
33
31
  init_haml_helpers
34
32
  end
35
33
  end
36
- alias :included :registered
34
+ alias_method :included, :registered
37
35
  end
38
36
  end
39
37
  end
@@ -2,10 +2,9 @@ require 'kramdown'
2
2
 
3
3
  module Middleman
4
4
  module Renderers
5
-
6
5
  # Our own Kramdown Tilt template that simply uses our custom renderer.
7
6
  class KramdownTemplate < ::Tilt::KramdownTemplate
8
- def evaluate(scope, locals, &block)
7
+ def evaluate(*)
9
8
  @output ||= begin
10
9
  output, warnings = MiddlemanKramdownHTML.convert(@engine.root, @engine.options)
11
10
  @engine.warnings.concat(warnings)
@@ -18,7 +17,7 @@ module Middleman
18
17
  class MiddlemanKramdownHTML < ::Kramdown::Converter::Html
19
18
  cattr_accessor :middleman_app
20
19
 
21
- def convert_img(el, indent)
20
+ def convert_img(el, _)
22
21
  attrs = el.attr.dup
23
22
 
24
23
  link = attrs.delete('src')
@@ -32,7 +31,7 @@ module Middleman
32
31
  mail_addr = el.attr['href'].sub(/\Amailto:/, '')
33
32
  href = obfuscate('mailto') << ':' << obfuscate(mail_addr)
34
33
  content = obfuscate(content) if content == mail_addr
35
- return %Q{<a href="#{href}">#{content}</a>}
34
+ return %Q(<a href="#{href}">#{content}</a>)
36
35
  end
37
36
 
38
37
  attr = el.attr.dup
@@ -2,20 +2,17 @@ require 'less'
2
2
 
3
3
  module Middleman
4
4
  module Renderers
5
-
6
5
  # Sass renderer
7
6
  module Less
8
-
9
7
  # Setup extension
10
8
  class << self
11
-
12
9
  # Once registered
13
10
  def registered(app)
14
11
  # Default less options
15
12
  app.config.define_setting :less, {}, 'LESS compiler options'
16
13
 
17
14
  app.before_configuration do
18
- template_extensions :less => :css
15
+ template_extensions less: :css
19
16
  end
20
17
 
21
18
  app.after_configuration do
@@ -27,23 +24,20 @@ module Middleman
27
24
  ::Tilt.prefer(LocalLoadingLessTemplate)
28
25
  end
29
26
 
30
- alias :included :registered
27
+ alias_method :included, :registered
31
28
  end
32
29
 
33
30
  # A SassTemplate for Tilt which outputs debug messages
34
31
  class LocalLoadingLessTemplate < ::Tilt::LessTemplate
35
-
36
32
  def prepare
37
33
  if ::Less.const_defined? :Engine
38
34
  @engine = ::Less::Engine.new(data)
39
35
  else
40
- parser = ::Less::Parser.new(options.merge :filename => eval_file, :line => line, :paths => ['.', File.dirname(eval_file)])
36
+ parser = ::Less::Parser.new(options.merge filename: eval_file, line: line, paths: ['.', File.dirname(eval_file)])
41
37
  @engine = parser.parse(data)
42
38
  end
43
39
  end
44
-
45
40
  end
46
-
47
41
  end
48
42
  end
49
43
  end
@@ -3,17 +3,14 @@ require 'liquid'
3
3
 
4
4
  module Middleman
5
5
  module Renderers
6
-
7
6
  # Liquid Renderer
8
7
  module Liquid
9
-
10
8
  # Setup extension
11
9
  class << self
12
-
13
10
  # Once registerd
14
11
  def registered(app)
15
12
  app.before_configuration do
16
- template_extensions :liquid => :html
13
+ template_extensions liquid: :html
17
14
  end
18
15
 
19
16
  # After config, setup liquid partial paths
@@ -21,15 +18,14 @@ module Middleman
21
18
  ::Liquid::Template.file_system = ::Liquid::LocalFileSystem.new(source_dir)
22
19
 
23
20
  # Convert data object into a hash for liquid
24
- sitemap.provides_metadata %r{\.liquid$} do |path|
25
- { :locals => { :data => data.to_h } }
21
+ sitemap.provides_metadata %r{\.liquid$} do
22
+ { locals: { data: data.to_h } }
26
23
  end
27
24
  end
28
25
  end
29
26
 
30
- alias :included :registered
27
+ alias_method :included, :registered
31
28
  end
32
29
  end
33
-
34
30
  end
35
31
  end
@@ -1,12 +1,9 @@
1
1
  module Middleman
2
2
  module Renderers
3
-
4
3
  # Markdown renderer
5
4
  module Markdown
6
-
7
5
  # Setup extension
8
6
  class << self
9
-
10
7
  # Once registered
11
8
  def registered(app)
12
9
  # Set our preference for a markdown engine
@@ -14,11 +11,11 @@ module Middleman
14
11
  app.config.define_setting :markdown_engine_prefix, ::Tilt, 'The parent module for markdown template engines'
15
12
 
16
13
  app.before_configuration do
17
- template_extensions :markdown => :html,
18
- :mdown => :html,
19
- :md => :html,
20
- :mkd => :html,
21
- :mkdn => :html
14
+ template_extensions markdown: :html,
15
+ mdown: :html,
16
+ md: :html,
17
+ mkd: :html,
18
+ mkdn: :html
22
19
  end
23
20
 
24
21
  # Once configuration is parsed
@@ -35,7 +32,7 @@ module Middleman
35
32
  require 'middleman-core/renderers/kramdown'
36
33
  ::Tilt.prefer(::Middleman::Renderers::KramdownTemplate, *markdown_exts)
37
34
  MiddlemanKramdownHTML.middleman_app = self
38
- elsif !config[:markdown_engine].nil?
35
+ elsif config[:markdown_engine]
39
36
  # Map symbols to classes
40
37
  markdown_engine_klass = if config[:markdown_engine].is_a? Symbol
41
38
  engine = config[:markdown_engine].to_s
@@ -58,9 +55,8 @@ module Middleman
58
55
  end
59
56
  end
60
57
 
61
- alias :included :registered
58
+ alias_method :included, :registered
62
59
  end
63
60
  end
64
-
65
61
  end
66
62
  end
@@ -2,20 +2,18 @@ require 'redcarpet'
2
2
 
3
3
  module Middleman
4
4
  module Renderers
5
-
6
5
  class RedcarpetTemplate < ::Tilt::RedcarpetTemplate::Redcarpet2
7
-
8
6
  # because tilt has decided to convert these
9
7
  # in the wrong direction
10
8
  ALIASES = {
11
- :escape_html => :filter_html
9
+ escape_html: :filter_html
12
10
  }
13
11
 
14
12
  # Overwrite built-in Tilt version.
15
13
  # Don't overload :renderer option with smartypants
16
14
  # Support renderer-level options
17
15
  def generate_renderer
18
- return options.delete(:renderer) if options.has_key?(:renderer)
16
+ return options.delete(:renderer) if options.key?(:renderer)
19
17
 
20
18
  covert_options_to_aliases!
21
19
 
@@ -32,8 +30,8 @@ module Middleman
32
30
  # Renderer Options
33
31
  possible_render_opts = [:filter_html, :no_images, :no_links, :no_styles, :safe_links_only, :with_toc_data, :hard_wrap, :xhtml, :prettify, :link_attributes]
34
32
 
35
- render_options = possible_render_opts.inject({}) do |sum, opt|
36
- sum[opt] = options.delete(opt) if options.has_key?(opt)
33
+ render_options = possible_render_opts.reduce({}) do |sum, opt|
34
+ sum[opt] = options.delete(opt) if options.key?(opt)
37
35
  sum
38
36
  end
39
37
 
@@ -42,11 +40,11 @@ module Middleman
42
40
 
43
41
  private
44
42
 
45
- def covert_options_to_aliases!
46
- ALIASES.each do |aka, actual|
47
- options[actual] = options.delete(aka) if options.has_key? aka
48
- end
43
+ def covert_options_to_aliases!
44
+ ALIASES.each do |aka, actual|
45
+ options[actual] = options.delete(aka) if options.key? aka
49
46
  end
47
+ end
50
48
  end
51
49
 
52
50
  # Custom Redcarpet renderer that uses our helpers for images and links
@@ -61,23 +59,23 @@ module Middleman
61
59
 
62
60
  def image(link, title, alt_text)
63
61
  if !@local_options[:no_images]
64
- middleman_app.image_tag(link, :title => title, :alt => alt_text)
62
+ middleman_app.image_tag(link, title: title, alt: alt_text)
65
63
  else
66
64
  link_string = link.dup
67
- link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text
65
+ link_string << %Q("#{title}") if title && title.length > 0 && title != alt_text
68
66
  %Q{![#{alt_text}](#{link_string})}
69
67
  end
70
68
  end
71
69
 
72
70
  def link(link, title, content)
73
71
  if !@local_options[:no_links]
74
- attributes = { :title => title }
75
- attributes.merge!( @local_options[:link_attributes] ) if @local_options[:link_attributes]
72
+ attributes = { title: title }
73
+ attributes.merge!(@local_options[:link_attributes]) if @local_options[:link_attributes]
76
74
 
77
- middleman_app.link_to(content, link, attributes )
75
+ middleman_app.link_to(content, link, attributes)
78
76
  else
79
77
  link_string = link.dup
80
- link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text
78
+ link_string << %Q("#{title}") if title && title.length > 0 && title != alt_text
81
79
  %Q{[#{content}](#{link_string})}
82
80
  end
83
81
  end
@@ -1,23 +1,49 @@
1
1
  require 'sass'
2
2
  require 'compass/import-once'
3
3
 
4
+ GLOB = /\*|\[.+\]/
5
+
6
+ # Hack around broken sass globs when combined with import-once
7
+ # Targets compass-import-once 1.0.4
8
+ # Tracking issue: https://github.com/chriseppstein/compass/issues/1529
9
+ module Compass
10
+ module ImportOnce
11
+ module Importer
12
+ def find_relative(uri, base, options, *args)
13
+ if uri =~ GLOB
14
+ force_import = true
15
+ else
16
+ uri, force_import = handle_force_import(uri)
17
+ end
18
+ maybe_replace_with_dummy_engine(super(uri, base, options, *args), options, force_import)
19
+ end
20
+
21
+ def find(uri, options, *args)
22
+ if uri =~ GLOB
23
+ force_import = true
24
+ else
25
+ uri, force_import = handle_force_import(uri)
26
+ end
27
+ maybe_replace_with_dummy_engine(super(uri, options, *args), options, force_import)
28
+ end
29
+ end
30
+ end
31
+ end
32
+
4
33
  module Middleman
5
34
  module Renderers
6
-
7
35
  # Sass renderer
8
36
  module Sass
9
-
10
37
  # Setup extension
11
38
  class << self
12
-
13
39
  # Once registered
14
40
  def registered(app)
15
41
  # Default sass options
16
42
  app.config.define_setting :sass, {}, 'Sass engine options'
17
43
 
18
44
  app.before_configuration do
19
- template_extensions :scss => :css,
20
- :sass => :css
45
+ template_extensions scss: :css,
46
+ sass: :css
21
47
  end
22
48
 
23
49
  # Tell Tilt to use it as well (for inline sass blocks)
@@ -31,18 +57,15 @@ module Middleman
31
57
  ::Compass::ImportOnce.activate!
32
58
  end
33
59
 
34
- alias :included :registered
60
+ alias_method :included, :registered
35
61
  end
36
62
 
37
63
  # A SassTemplate for Tilt which outputs debug messages
38
64
  class SassPlusCSSFilenameTemplate < ::Tilt::SassTemplate
39
-
40
65
  def initialize(*args, &block)
41
66
  super
42
67
 
43
- if @options.has_key?(:context)
44
- @context = @options[:context]
45
- end
68
+ @context = @options[:context] if @options.key?(:context)
46
69
  end
47
70
 
48
71
  # Define the expected syntax for the template
@@ -55,23 +78,22 @@ module Middleman
55
78
 
56
79
  # Add exception messaging
57
80
  # @param [Class] context
58
- # @param [Hash] locals
59
81
  # @return [String]
60
- def evaluate(context, locals, &block)
82
+ def evaluate(context, _)
61
83
  @context ||= context
62
84
  @engine = ::Sass::Engine.new(data, sass_options)
63
85
 
64
86
  begin
65
87
  @engine.render
66
88
  rescue ::Sass::SyntaxError => e
67
- ::Sass::SyntaxError.exception_to_css(e, :full_exception => true)
89
+ ::Sass::SyntaxError.exception_to_css(e, full_exception: true)
68
90
  end
69
91
  end
70
92
 
71
93
  # Change Sass path, for url functions, to the build folder if we're building
72
94
  # @return [Hash]
73
95
  def sass_options
74
- more_opts = { :filename => eval_file, :line => line, :syntax => syntax }
96
+ more_opts = { filename: eval_file, line: line, syntax: syntax }
75
97
 
76
98
  if @context.is_a?(::Middleman::Application) && file
77
99
  location_of_sass_file = @context.source_dir
@@ -87,7 +109,6 @@ module Middleman
87
109
 
88
110
  # SCSS version of the above template
89
111
  class ScssPlusCSSFilenameTemplate < SassPlusCSSFilenameTemplate
90
-
91
112
  # Define the expected syntax for the template
92
113
  # @return [Symbol]
93
114
  def syntax