{% comment %} # ----------------------------------------------------------------------------- # ~/_includes/themes/j1/procedures/layouts/module_writer.proc # Liquid PROCEDURE to write|place the HTML markup for Javascript init # scripts defined for a layout # # Product/Info: # https://jekyll.one # # Copyright (C) 2022 Juergen Adams # # J1 Template is licensed under the MIT License. # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE # ----------------------------------------------------------------------------- # Test data: # liquid_var: {{ liquid_var | debug }} # ----------------------------------------------------------------------------- {% endcomment %} {% comment %} liquid procedures -------------------------------------------------------------------------------- {% endcomment %} {% include themes/{{site.template.name}}/procedures/global/set_base_vars_folders.proc %} {% comment %} jadams, 2019-08-23: globals set via layouts/default.html (!!!) NO need to load this again -------------------------------------------------------------------------------- {% include themes/{{site.template.name}}/procedures/global/set_base_vars_folders.proc %} -------------------------------------------------------------------------------- {% endcomment %} {% capture collect_module_defaults %}themes/{{site.template.name}}/procedures/layouts/collect_module_defaults.proc{% endcapture %} {% capture collect_frontmatter_options %}themes/{{site.template.name}}/procedures/global/collect_frontmatter_options.proc{% endcapture %} {% capture collect_page_options %}themes/{{site.template.name}}/procedures/global/collect_page_options.proc{% endcapture %} {% comment %} process YML config data ================================================================================ {% endcomment %} {% comment %} set config data -------------------------------------------------------------------------------- {% endcomment %} {% comment %} variables -------------------------------------------------------------------------------- {% endcomment %} {% assign placement = include.region %} {% assign resource_globals = include.global %} {% assign resource_settings = include.resource %} {% assign dependency_check_cycle = resource_globals.dependency_check_cycle %} {% assign dependency_check_max_count = resource_globals.dependency_check_timeout %} {% assign depends = '' %} {% comment %} helpers -------------------------------------------------------------------------------- {% endcomment %} {% capture adapter_prefix %}j1.adapter.{% endcapture %} {% capture state_condition %}.getState() == 'finished'{% endcapture %} {% comment %} main -------------------------------------------------------------------------------- {% endcomment %} {% if resource_settings.enabled == false %} {% endif %} {% if resource_settings.enabled and placement == 'body-footer' %} {% comment %} collect module dependency conditions (if any) ------------------------------------------------------------------------------ {% endcomment %} {% if resource_settings.dependencies %} {% comment %} create dependency conditions (depends) ---------------------------------------------------------------------------- {% endcomment %} {% for dependency in resource_settings.dependencies %} {% capture depends %}{{depends|append:{{adapter_prefix}}{{dependency}}{{state_condition}}{% endcapture %} {% if forloop.last %}{% else %}{% capture depends %}{{depends|append:' && '}}{% endcapture %}{% endif %} {% endfor %} {% endif %} {% comment %} NOTE: Module default values collected by J1 Adapter ------------------------------------------------------------------------------ {% endcomment %} {% comment %} collect frontmatter|page options (page) ------------------------------------------------------------------------------ {% endcomment %} {% include {{collect_frontmatter_options}} module=resource_settings.id %} {% assign frontmatter_options = {{frontmatter_options}} %} {% include {{collect_page_options}} %} {% assign page_options = {{page_options}} %} {% assign layout_valid = false %} {% for layout in resource_settings.layout %} {% assign layout = layout|downcase %} {% if layout == page.layout or layout == "all" %} {% assign layout_valid = true %} {% endif %} {% endfor %} {% assign resource_valid = false %} {% if resource_settings.required == 'always' %} {% assign resource_valid = true %} {% else %} {% for resource in page.resources %} {% if resource == resource_settings.id %} {% assign resource_valid = true %} {% endif %} {% endfor %} {% endif %} {% if layout_valid and resource_valid and resource_settings.enabled %} {% comment %} process all data keys ---------------------------------------------------------------------------- {% endcomment %} {% for data_var in resource_settings.data %} {% assign data_key = data_var[0] %} {% assign data_value = data_var[1] %} {% comment %} -------------------------------------------------------------------------- WORKAROUND: and id != "j1_footer". For unclear reasons a UNKNOWN|NOT EXISTING resource "j1_footer" is detected causing wrong adapter placements -------------------------------------------------------------------------- {% endcomment %} {% if data_key == 'init_function' and resource_settings.id != "j1_footer" %} {% endif %} {% endfor %} {% comment %} END Process all data keys ---------------------------------------------------------------------------- {% endcomment %} {% comment %} reset all data keys ---------------------------------------------------------------------------- {% assign is_placed = true %} {% assign name = nil %} {% assign resource_settings.enabled = nil %} {% assign resource_settings.id = nil %} {% assign resource_settings.comment = nil %} {% assign resource_settings.layout = nil %} {% assign resource_settings.required = nil %} {% assign resource_settings.pass_init_data = nil %} {% assign resource_settings.dependencies = nil %} {% assign depends = nil %} {% assign resource_settings.data = nil %} ---------------------------------------------------------------------------- {% endcomment %} {% endif %} {% endif %}