# Help needed: difference between .Plain, .PlainWords and plainify

**URL:** <https://discourse.gohugo.io/t/help-needed-difference-between-plain-plainwords-and-plainify/5681>\
**Category:** support\
**Created:** [March 4, 2017, 12:30am UTC](https://discourse.gohugo.io/t/help-needed-difference-between-plain-plainwords-and-plainify/5681 "2017-03-04T00:30:39Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![moorereason](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/moorereason/32/592_2.png) [@moorereason](https://discourse.gohugo.io/u/moorereason)\
**Post date:** [March 4, 2017, 5:37am UTC](https://discourse.gohugo.io/t/help-needed-difference-between-plain-plainwords-and-plainify/5681/2 "2017-03-04T05:37:20Z")

</div>

`.Plain` is the Page content stripped of HTML tags as a **string**.

`.PlainWords` is the Page content stripped of HTML as a **[]string** (string slice). Under the hood, we’re using Go’s [strings.Fields](https://golang.org/pkg/strings/#Fields) to split `.Plain` into a slice.

`.RawContent` is the raw content read from the content file. Generally, this would be the raw Markdown content prior to any encoding from Hugo.

`plainify` is a template function that takes a given input, strips it of HTML tags, and returns a **string**.

`jsonify` is a template function that takes a given object, encodes it as JSON, and converts it to HTML-safe content.

The `safe*` family takes a given input and does a type-casting to the thing you want. For example, `safeHTML` can take a `string` as input, but returns a `template.HTML` type. Go HTML templates are context-aware. If you try to print a `string` with HTML tags in an HTML context, Go will escape all of the HTML tags. In that case, you need to convert the `string` type to `template.HTML` so that Go will leave it alone.

---

_[View the full topic](https://discourse.gohugo.io/t/help-needed-difference-between-plain-plainwords-and-plainify/5681)._
