From 11c3d263638fc428355ca5454192d4326541e238 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Fri, 28 Feb 2025 13:40:11 +0400 Subject: [PATCH 1/3] Remove the prepending of `...` to snippets --- lib/jekyll_include_plugin/utils.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/jekyll_include_plugin/utils.rb b/lib/jekyll_include_plugin/utils.rb index 3bd132b..5ecd11b 100644 --- a/lib/jekyll_include_plugin/utils.rb +++ b/lib/jekyll_include_plugin/utils.rb @@ -42,8 +42,7 @@ def pick_snippet(text, snippet_name) abort("End of the snippet '#{snippet_name}' has not been found.") unless snippet_end_found abort("Snippet '#{snippet_name}' appears to be empty. Fix and retry.") if snippet_content.empty? - first_line_indent = %r!^\s*!.match(snippet_content)[0] - return "#{first_line_indent}...\n#{snippet_content}" + return snippet_content end def remove_all_snippets(text) From 7fc5a1ffec193995c6f8072b6c25e248f94f0728 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Wed, 12 Mar 2025 16:10:27 +0400 Subject: [PATCH 2/3] Add the `snippet_prefix` option --- README.md | 13 +++++++++++++ lib/jekyll_include_plugin/jekyll_include_plugin.rb | 11 ++++++++++- lib/jekyll_include_plugin/utils.rb | 9 +++++++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fdc04ca..eb32e2a 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,19 @@ Dynamic parameters: {% include_file "{{ $templatingAllowedHere }}/Dockerfile" snippet="{{ $hereToo }}" %} ``` +## Plugin options in `_config.yml` + +Default options: +```yml +jekyll_include_plugin: + snippet_prefix: '...' +``` + +### `snippet_prefix` +Type: `string` Default: `...` + +Prepends the prefix at the end of included snippet to differentiate whole file includes vs partial file includes (snippet) + ## Installation Add this line to your application's Gemfile: diff --git a/lib/jekyll_include_plugin/jekyll_include_plugin.rb b/lib/jekyll_include_plugin/jekyll_include_plugin.rb index e73eadd..d211f60 100644 --- a/lib/jekyll_include_plugin/jekyll_include_plugin.rb +++ b/lib/jekyll_include_plugin/jekyll_include_plugin.rb @@ -10,16 +10,18 @@ class IncludeFileTag < Liquid::Tag def initialize(tag_name, raw_markup, tokens) super @raw_markup = raw_markup + @config = {} @params = {} end def render(context) + read_config(context) parse_params(context) file_contents = get_raw_file_contents(context) if @params["snippet"] - file_contents = pick_snippet(file_contents, @params["snippet"]) + file_contents = pick_snippet(file_contents, @config, @params["snippet"]) else file_contents = remove_all_snippets(file_contents) end @@ -34,6 +36,13 @@ def render(context) private + def read_config(context) + site = context.registers[:site] + plugin_config = site.config["jekyll_include_plugin"] || {} + + @config["snippet_prefix"] = plugin_config['snippet_prefix'] || '...' + end + def parse_params(context) rendered_markup = Liquid::Template .parse(@raw_markup) diff --git a/lib/jekyll_include_plugin/utils.rb b/lib/jekyll_include_plugin/utils.rb index 5ecd11b..a2b490c 100644 --- a/lib/jekyll_include_plugin/utils.rb +++ b/lib/jekyll_include_plugin/utils.rb @@ -16,7 +16,7 @@ def abort(msg) module TextUtils include Utils - def pick_snippet(text, snippet_name) + def pick_snippet(text, config, snippet_name) snippet_content = "" snippet_start_found = false snippet_end_found = false @@ -42,7 +42,12 @@ def pick_snippet(text, snippet_name) abort("End of the snippet '#{snippet_name}' has not been found.") unless snippet_end_found abort("Snippet '#{snippet_name}' appears to be empty. Fix and retry.") if snippet_content.empty? - return snippet_content + snippet_prefix = config['snippet_prefix'] + + return snippet_content if snippet_prefix.empty? + + first_line_indent = %r!^\s*!.match(snippet_content)[0] + return "#{first_line_indent}#{snippet_prefix}\n#{snippet_content}" end def remove_all_snippets(text) From ad964c6bf0ad5487ffa7868825533823cd1df3f1 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Fri, 14 Mar 2025 21:08:31 +0400 Subject: [PATCH 3/3] Pass a snippet prefix instead of a config --- lib/jekyll_include_plugin/jekyll_include_plugin.rb | 2 +- lib/jekyll_include_plugin/utils.rb | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/jekyll_include_plugin/jekyll_include_plugin.rb b/lib/jekyll_include_plugin/jekyll_include_plugin.rb index d211f60..1063709 100644 --- a/lib/jekyll_include_plugin/jekyll_include_plugin.rb +++ b/lib/jekyll_include_plugin/jekyll_include_plugin.rb @@ -21,7 +21,7 @@ def render(context) file_contents = get_raw_file_contents(context) if @params["snippet"] - file_contents = pick_snippet(file_contents, @config, @params["snippet"]) + file_contents = pick_snippet(file_contents, @config['snippet_prefix'], @params["snippet"]) else file_contents = remove_all_snippets(file_contents) end diff --git a/lib/jekyll_include_plugin/utils.rb b/lib/jekyll_include_plugin/utils.rb index a2b490c..7ce6598 100644 --- a/lib/jekyll_include_plugin/utils.rb +++ b/lib/jekyll_include_plugin/utils.rb @@ -16,7 +16,7 @@ def abort(msg) module TextUtils include Utils - def pick_snippet(text, config, snippet_name) + def pick_snippet(text, snippet_prefix, snippet_name) snippet_content = "" snippet_start_found = false snippet_end_found = false @@ -42,8 +42,6 @@ def pick_snippet(text, config, snippet_name) abort("End of the snippet '#{snippet_name}' has not been found.") unless snippet_end_found abort("Snippet '#{snippet_name}' appears to be empty. Fix and retry.") if snippet_content.empty? - snippet_prefix = config['snippet_prefix'] - return snippet_content if snippet_prefix.empty? first_line_indent = %r!^\s*!.match(snippet_content)[0]