Allow creating snippets to optimize some builds #8867
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Converters do not run on layouts and includes. Therefore, if a user wishes to insert a chunk of Markdown text or code as part of a layout, the workaround is to use
{% capture ... %}...
followed by rendering the variable through themarkdownify
filter.When this routine is part of a layout or include, the probability of rendering the variable numerous times (producing the same markup output) is high.
Such a routine could be optimized if there were a builtin way to have the chunk of Markdown text rendered once and then inserted multiple times.
Solution
Part A --
Jekyll::Snippet
Introduce new entity
Jekyll::Snippet
that is rendered (like anyPage
orDocument
) on demand yet only once per build.More details in documentation.
Part B --
{% snippet ... %}
Introduce new Liquid Tag
{% snippet ... %}
to include / insert rendered output of desired snippet.More details in documentation.