I have a rich text output section I want to limit to specific number of characters or words. So user able preview the blog post and link to the full blog. I try entry.body|slice(0, 100) ~ '...'. But it slice of my html tag and display html code in front end.


No need for a plugin, just use twig's slice filter, combined with the striptags filter.

I've thrown in the default filter for good measure, in case the body is empty for some reason.

{{ entry.body|striptags|slice(0,100)|default('Read more') }}...

slice will simply output the first 100 characters (starting at 0 the first character), including spaces into the template. striptags ensures that no html tags will be output.


I found a plugin to solve this.

Which is use this plugin. https://github.com/ehousestudio/craft_hacksaw


Looks like you can extend twig with extensions. I have not tried this, but I found this extension which preserves HTML.


I think you have to create a plugin to use it. A fast way is to follow by example on this one perhaps: https://github.com/lukeholder/craft-inflect


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.