Class: Jekyll::MyBlock
- Inherits:
-
Liquid::Block
- Object
- Liquid::Block
- Jekyll::MyBlock
- Defined in:
- lib/jekyll_block_tag_plugin_template.rb
Overview
This class implements the Jekyll tag functionality
Instance Method Summary collapse
- #initialize(tag_name, argument_string, _parse_context) ⇒ void constructor
-
#render(context) ⇒ String
Method prescribed by the Jekyll plugin lifecycle.
Constructor Details
#initialize(tag_name, argument_string, _parse_context) ⇒ void
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/jekyll_block_tag_plugin_template.rb', line 34 def initialize(tag_name, argument_string, _parse_context) super @logger = PluginMetaLogger.instance.new_logger(self) argv = Shellwords.split argument_string # Scans name/value arguments params = KeyValueParser.new.parse(argv) # Extracts key/value pairs, default value for non-existant keys is nil @param1 = params[:param1] # Example of obtaining the value of parameter param1 @param_x = params[:not_present] # The value of parameters that are present is nil, but displays as the empty string @logger.debug do " tag_name = '\#{tag_name}'\n argument_string = '\#{argument_string}'\n @param1 = '\#{@param1}'\n @param_x = '\#{@param_x}'\n params =\n \#{params.map { |k, v| \"\#{k} = \#{v}\" }.join(\"\\n \")}\n HEREDOC\n end\nend\n" |
Instance Method Details
#render(context) ⇒ String
Method prescribed by the Jekyll plugin lifecycle.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/jekyll_block_tag_plugin_template.rb', line 57 def render(context) content = super # This underdocumented assignment returns the text within the block. @site = context.registers[:site] @config = @site.config @mode = @config["env"]["JEKYLL_ENV"] @page = context.registers[:page] @logger.debug " mode=\"\#{@mode}\"\n page.path=\"\#{@page.path}\"\n page.url=\"\#{@page.url}\"\n HEREDOC\n\n # Compute the return value of this Jekyll tag\n <<~HEREDOC\n <p style=\"color: green; background-color: yellow; padding: 1em; border: solid thin grey;\">\n \#{content} \#{@param1}\n </p>\n HEREDOC\nend\n" |