58 lines
1.8 KiB
HTML
58 lines
1.8 KiB
HTML
<script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.0.0/dist/algoliasearch-lite.umd.js" integrity="sha256-MfeKq2Aw9VAkaE9Caes2NOxQf6vUa8Av0JqcUXUGkd0=" crossorigin="anonymous"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.0.0/dist/instantsearch.production.min.js" integrity="sha256-6S7q0JJs/Kx4kb/fv0oMjS855QTz5Rc2hh9AkIUjUsk=" crossorigin="anonymous"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.3/dayjs.min.js" integrity="sha256-iu/zLUB+QgISXBLCW/mcDi/rnf4m4uEDO0wauy76x7U=" crossorigin="anonymous"></script>
|
|
|
|
<div id="searchbox"></div>
|
|
<div id="stats"></div>
|
|
<div id="hits"></div>
|
|
<div id="pagination"></div>
|
|
|
|
<script>
|
|
var search = instantsearch({
|
|
indexName: '{{ .Site.Params.algolia_indexName }}',
|
|
searchClient: algoliasearch(
|
|
'{{ .Site.Params.algolia_appId }}',
|
|
'{{ .Site.Params.algolia_apiKey }}'
|
|
),
|
|
routing: true,
|
|
});
|
|
|
|
const renderHits = (renderOptions, isFirstRender) => {
|
|
const { hits } = renderOptions;
|
|
|
|
document.querySelector('#hits').innerHTML = `
|
|
${hits
|
|
.map(
|
|
item =>
|
|
`<div class="ais-Hits-item"><h3><a href="${ item.permalink }">${ item.title }</a></h3><p><span class="lastmod">${ dayjs(item.lastmod).format("YYYY/MM/DD") }</span> - ${ item.description ? item.description : item.content.length > 200 ? item.content.substring( 0, 200 ) + '...' : item.content }</p></div>`
|
|
)
|
|
.join('')}
|
|
`;
|
|
};
|
|
|
|
const customHits = instantsearch.connectors.connectHits( renderHits );
|
|
|
|
search.addWidgets([
|
|
instantsearch.widgets.searchBox({
|
|
container: '#searchbox',
|
|
showReset: false,
|
|
}),
|
|
|
|
instantsearch.widgets.stats({
|
|
container: '#stats',
|
|
}),
|
|
|
|
customHits({
|
|
container: document.querySelector('#hits'),
|
|
}),
|
|
|
|
instantsearch.widgets.pagination({
|
|
container: '#pagination',
|
|
maxPages: 20,
|
|
})
|
|
]);
|
|
|
|
search.start();
|
|
|
|
</script>
|