Adding the ability to inline CSS and Js code via Asset Manager #1377
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.
This pull request makes Grav's Asset Manager support 'inline' as a new loading option for CSS and Js assets. It also tries to simplify things by extracting common code from addCss() and addJs() into a new helper function (though the same could still be done for output and pipeline functions).
Inlining CSS and Js resources can speed up rendering, particularly over mobile networks. It is not always feasible to directly include assets into the template, for example, where Sass-complied CSS is used or where CSS or Js is imported from external sites to load fonts.
Enabling any CSS and Js asset to become inline makes it easy to optimize for speed and to reduce flashes of unstyled content without having to re-structure or re-process asset files.
A slightly simplified real world use case:
system.yaml
uses collections to group assets by loading method:The template inserts these into different asset groups depending on loading requirements (defaulting to inline):
See also: #754