format.liquid.forceArgument property splits custom shortcodes in 11ty
The format.liquid.forceArgument property splits custom shortcodes in 11ty across multiple lines, which 11ty does not recognize. 11ty only processes shortcodes that are written in a single line.
When adding this tag to the ignoreTagList property, the plugin throws an error expecting a closing tag.
Steps to Reproduce:
- Define multiple-line custom shortcodes with 4 prop's separate by commas.
- Set the format.liquid.forceArgument property to 3.
- Attempt to build the project using 11ty.
- Observe that 11ty does not recognize the multiline shortcodes properly.
Proposed Solution:
- Set format.liquid.forceArgument property to a value higher than the shortcodes contain
- Don't use commas in shortcode.
- Introduce a new property to prevent the splitting of tags across new lines. This property would ensure that tags are kept intact, avoiding issues with shortcode recognition.
I'll create an 11ty issue too. But also need a workaround to exclude tags without closing.
Hey @shkarinn
Thanks for this detailed issue. I appreciate it. For now, the workaround will be to use comment ignores, above the tag use:
<!-- esthetic-ignore-next -->
{% img section.img %}
Optionally, you could also use:
{% # esthetic-ignore-next %}
Or wrap the tag within ignore blocks:
<!-- esthetic-ignore-start -->
{% img section.img %}
<!-- esthetic-ignore-end -->
Æsthetic logic for argument and filter formatting was overhauled and in the next release (which is almost ready for shipping) things work differently, with more rules and it will address the issue you are having. I'll also make it possible to allow singleton type tags to be included in the ignoreTagList.
Hi, @panoply! Thank you for quick answer. Ok, I'll use the workaround for now, waiting for the next version 😊
Hi @panoply
Are you planning for adding support for custom delimiters also? How do I prevent formatter to break the following string?
background-color: {{{{ backgroundColor }}}}
Thanks for your guidance.
Hi @mrafei
I'll get back to you on this. I only recently just began developing on Æsthetic and will see where I left off. Custom delimiters might be a tad extraneous, cannot promise anything, but will see what I can do!