投稿のインデックスデータを作成するときはjsonifyを通しておく

投稿のインデックスデータを作成するときはjsonifyを通しておく

今までサイト内全文検索をJavaScriptを行うためのインデックスデータを
content: "{{ .PlainWords }}"
で作成していたのですが、ある日サイト内全文検索が機能しなくなってしまいました

Chromeのデベロッパーツールで確認してみると
Uncaught SyntaxError: Invalid Unicode escape sequence
Uncaught SyntaxError: Invalid Unicode escape sequence
が発生している

調べてみるとエラー行に該当する投稿に\uが含まれていて、Unicodeエスケープされたものだと認識されているみたい

そこでHugoにjsonifyが実装されているので、インデックスデータを作成する部分でjsonifyを使うようにした

var data = [{{ range $index, $page := .Site.Pages.Reverse }}
{{ if ne $index 0 }},{{ end }}{
url: "{{ $page.Permalink }}",
title: "{{ $page.Title }}",
content: "{{ .PlainWords | jsonify }}"
}{{ end }}]

参考
Hugo - FUNCTIONS - jsonify

Encodes a given object to JSON.