Crates.io | mdbook-morsels |
lib.rs | mdbook-morsels |
version | 0.7.3 |
source | src |
created_at | 2021-12-09 10:29:32.178915 |
updated_at | 2022-10-24 05:13:13.525761 |
description | Morsels plugin for Mdbook. |
homepage | |
repository | https://github.com/ang-zeyu/morsels |
max_upload_size | |
id | 495101 |
size | 123,812 |
Easy, relevant, and efficient client-side search for static sites.
Morsels is a client-side search solution made for static sites, depending on a pre-built index generated by a CLI tool.
Some similar tools in this space are Stork and TinySearch. Morsels does the same, with a focus on providing a more feature rich and relevant search experience, while remaining easy to get started with for common use cases (e.g. single domain static sites).
.json,csv,pdf,html
) to satisfy more custom data requirements.Powering static site search with Morsels is extremely easy, and requires just a folder of your HTML files — titles, headings, and other text are automatically extracted. Links to your pages are automatically generated based on your folder structure, but can also be manually specified.
If you have the rust / cargo toolchains setup, simply run cargo install morsels_indexer --vers 0.7.3
.
Alternatively, download the cli binaries here.
Run the executable as such, replacing <source-folder-path>
with the relative or absolute folder path of your source html files, and <output-folder-path>
with your desired index output folder.
morsels <source-folder-path> <output-folder-path>
Add the following resources to your pages:
<!-- Search UI script -->
<script src="https://cdn.jsdelivr.net/gh/ang-zeyu/morsels@v0.7.3/packages/search-ui/dist/search-ui.ascii.bundle.js"></script>
<!-- Search UI css, this provides some basic styling for the search dropdown, and can be omitted if desired -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/ang-zeyu/morsels@v0.7.3/packages/search-ui/dist/search-ui-light.css" />
If you wish to host the files, you can find them in the <output-folder-path>/assets
directory generated by the indexer, or in the releases page.
Give any <input>
element in your page an id
of morsels-search
, then call:
morsels.initMorsels({
searcherOptions: {
// Output folder URL specified as the second parameter in the cli command
// URLs like '/output/' will work as well
url: 'http://<your-domain>/output/',
},
uiOptions: {
// Input folder URL specified as the first parameter in the cli command
// This is where the generated result preview links will point to,
// and where you host your site.
sourceFilesUrl: 'http://<your-domain>/source/',
}
});
The user guide, which also uses Morsels for its search function, can be found here.
Check out the website here as well!
This project is MIT licensed.