Un serveur FTS pour les blogs statiques; utilise Sqlite sous le capot.
# npm -g i nfts
Pour montrer comment un vrai blog statique peut être augmenté avec des FTS, nous allons utiliser le référentiel pour le blog ROR:
$ git clone https://github.com/rails/weblog.git
$ cd weblog
$ bundle install
$ jekyll s --no-watch
Ouvrez http://127.0.0.1:4000 pour parcourir le blog.
À partir d'un terminal Diff:
$ cd weblog
$ nfts-create -o db.sqlite3 -p _posts/ _posts/*
$ nfts-server db.sqlite3
Pour tester le serveur:
$ curl 'http://localhost:3000/?q=omg'
Cela devrait retourner une gamme d'extraits.
Maintenant
Modifier _includes/navigation.html pour ajouter un lien qui va invoquer une boîte de dialogue de recherche:
<li><a id="nfts__dialog_toggle" href="#">Search</a></li>
Copiez le fichier web.js du DIR d'installation NFTS vers weblog Dir et renommez-le à nfts.js Il s'agit d'une dépendance ES6 UMD avec 0.
Ajouter à _config.yml :
nfts:
dialog_toggle_btn: '#nfts__dialog_toggle'
parent_container: 'main > article'
server: http://localhost:3000
debounce: 200
Ajoutez l'initialisation NFTS à _includes/navigation.html :
<script src="/nfts.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
new NftsDialog(JSON.parse('{{site.nfts | jsonify }}'),
file => { // post
let prefix = NftsDialog.date_fmt(file.slice(0,10))
let basename = file.slice(10+1).replace(/.[^.]+$/, '')
return '{{site.url}}' + '/' + prefix + '/' + basename
})
})
</script>
L'intégration NFTS est terminée. Redémarrez Jekyll, assurez-vous qu'il a terminé la régénération du site et actualiser la page de blog dans le navigateur, cliquez sur "Rechercher" et tapez "OMG" (vous n'avez pas besoin d'appuyer sur Entrée).
FAIRE.
Mit