Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 23 additions & 4 deletions themes/helpers/utility/split.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
title: "split"
description: 'Usage: `{{split "apple-banana-pear" separator="-"}}`'
description: 'Usage: `{{#split "apple-banana-pear" separator="-"}}`'
---

***

The `{{split}}` helper is designed to split a string into separate strings. It can be used in block or inline mode.
The `{{#split}}` helper is designed to split a string into separate strings. It can be used in block or inline mode.

The `{{split}}` helper returns an array, suitable for iteration with `{{#foreach}}`, with individual elements of the array suitable for any helper that expects a string.
The `{{#split}}` helper returns an array, suitable for iteration with `{{#foreach}}`, with individual elements of the array suitable for any helper that expects a string.

Individual elements of the array may be addressed as `{{this}}` within a `{{#foreach}}` loop.

Expand All @@ -25,7 +25,7 @@ Outputs:

|hello||world|
```

### Inline mode:
```handlebars
{{#foreach (split "hello, world" separator=",")}}
{{this}} {{#unless @last}}<br>{{/unless}}
Expand All @@ -38,6 +38,7 @@ hello<br> world

`{{split}}` is designed for strings. If it receives a non-string, it attempts to convert it to a string first.


## The separator attribute

By default, strings are split at each ",". The `separator=""` attribute allows settings the split location to an arbitrary value.
Expand All @@ -46,6 +47,7 @@ Passing an empty string for the separator results in splitting to single charact

Separators may be multiple characters.


### Additional examples

```handlebars
Expand Down Expand Up @@ -78,3 +80,20 @@ from-my-slug
{{/foreach}}
```


### No empty strings
Split filters the array to exclude any empty strings from the final result. Sequential separators will not result in empty strings.

```handlebars
{{#foreach (split ",banana,,apple,")}}
{{#unless @first}}{{#unless @last}}-{{/unless}}{{/unless}}{{#unless @last}}
({{this}})
{{/unless}}
{{/foreach}}

Outputs:

(banana)(apple)

Not: ()(banana)()(apple)()
```