webidx is a client-side search engine for static websites. It works by using a simple Perl script (webidx.pl) to generate an SQLite database containing an index of static HTML files. The SQLite database is then published alongside the static content.
The search functionality is implemented in webidx.js which uses sql.js to provide an interface to the SQLite file.
Seems like this should be pretty easy to plug into a Pelican workflow. I might want to write my own database generator in Python, though.
Maybe there's a way to enable vector searching in SQLite?
Stork is a library for creating beautiful, fast, and accurate full-text search interfaces.
It comes in two parts. First, it's a command-line tool that indexes content and creates a search index file that you can upload to a web server. Second, it's a Javascript library that uses that search index file to build an interactive search interface that displays optimal search results immediately to your user, as they type.
Stork is built with Rust, and the Javascript library uses WebAssembly behind the scenes. It's easy to get started and is even easier to customize so it fits your needs. It's perfect for Jamstack sites and personal blogs, but can be used wherever you need to bring search to your users.
Note: "I've wound down my work with Stork. The project will be available, but I don't plan on making updates going forward. Thanks to everyone who used Stork over the years."
A simple command line tool which takes a directory of images, reorganizes them a little bit (I'm not wild about this but it's not too hard to put everything back the way it was), and generates a static image gallery. Uses just a little bit of Javascript webshit to make the gallery responsive and mobile-friendly. The default theme looks a bit like Flickr's default album.
A static HTML page that takes Markdown documents and turns them into a self-hosted wiki. Ideal for taking a copy of your personal flat file wiki with you if you'll be disconnected. Can be served with something as simple as python3 -mhttp.server
on your machine.
It is recommended by the developers that you download the latest release from Github and copy the contents of the dist/
folder therein to wherever you have your markdown docs stored for installation.
tinysearch is a lightweight, fast, full-text search engine. It is designed for static websites.
tinysearch is written in Rust, and then compiled to WebAssembly to run in a browser. It can be used together with static site generators such as Jekyll, Hugo, Zola, Cobalt, or Pelican.
The test index file of my blog with around 40 posts creates a WASM payload of 99kB (49kB gzipped, 40kB brotli).
Only finds entire words. As a consequence there are no search suggestions (yet). This is a necessary tradeoff for reducing memory usage. A trie datastructure was about 10x bigger than the xor filters. New research on compact datastructures for prefix searches might lift this limitation in the future.
Since we bundle all search indices for all articles into one static binary, we recommend to only use it for small- to medium-size websites. Expect around 2 kB uncompressed per article (~1 kb compressed).
A proof-of-concept inspired and enabled by Hosting SQLite Databases on Github Pages and the ensuing Hacker News post. The compiled single-page app supports autocomplete for titles, automatic redirecting & other MediaWiki datasets like WikiQuote or Chinese Wikipedia. It makes no external API calls except to get Wikipedia's images.
Seems ideal for making offline copies of Wikipedia (or other Mediawiki installs, it's implied) available.
Search is disabled right now.
Github: https://github.com/segfall/static-wiki
SQLite copies of Wikipedia: https://www.kaggle.com/segfall/markdownlike-wikipedia-dumps-in-sqlite
Has instructions for turning an XML dump of Wikipedia into a SQLite database; unfortunately it uses node.js.
A static page generator for git.
Git repo: https://git.codemadness.org/stagit/
Sigal is yet another simple static gallery generator. It’s written in Python and it allows to build a static gallery of images. The idea behind Sigal is to ease the use of the javascript libraries like galleria. These libraries do a great job to display the images, Sigal does what is missing: resize images, create thumbnails, generate HTML pages. Doesn't seem to let you put descriptions or comments on your pictures, though. EXIF tag aware. Processes directories of images recursively. Only processes new images unless you tell it not to. In some ways, seems to work like Pelican.
There is a native Arch Linux package, too.
A very simple static homepage for your server. No build process involved. Edit a YAML file, add titles, icons, and links to the services running on the server, load it in a browser. Unusually pretty, unusually handy. Never thought I'd like it.
Static security analyzer for Golang code. Checks against the Golang AST. Tries to verify some best practices (no hardcoded credentials, listening on 0.0.0.0 by default, things like that. Has all of the usual CLI options you'd hope it has.
The main thrust of the article is how to whip together a quick and dirty HTTP server for static pages using Python and Cherrypy. I saved this article because the worst-ranked response also tells you how to hardcode (read, make configurable at runtime) the port and IP address a CherryPy instance listens on.
cherrypy.server.socket_port = 80
cherrypy.server.socket_host = '0.0.0.0'