diff --git a/_packs/controllers/search_controller.js b/_packs/controllers/search_controller.js index 59305a5..b1f8bea 100644 --- a/_packs/controllers/search_controller.js +++ b/_packs/controllers/search_controller.js @@ -16,10 +16,10 @@ export default class extends Controller { } connect () { - const q = window.location.search.match(/^\?q=(?.*)&?/) + const q = new URLSearchParams(window.location.search).get('q').trim() if (q) { - this.qTarget.value = decodeURI(q.groups.q) + this.qTarget.value = q this.search() } } @@ -52,8 +52,9 @@ export default class extends Controller { const template = await request.text() const html = await this.engine.parseAndRender(template, { q, site, results }) const title = `${site.i18n.search.title} - ${q}` + const query = new URLSearchParams({ q }) - window.history.pushState({ q }, title, `?q=${encodeURI(q)}`) + window.history.pushState({ q }, title, `?${query.toString()}`) document.title = title main.innerHTML = html