Memex is a theme for Hugo, a static site generator that helps make it easy to create a static website. See the quickstart to create your site then follow these three steps.
Add this theme to your Hugo site using Hugo Modules. First, initialize a new Hugo Module in the root of your site:
cd <whatever you named your site folder>
hugo mod init github.com/<username>/<repository name>
For example: hugo mod init github.com/smallweborg/smallweborg.github.io
. Replace github.com
if your site repository is hosted elsewhere.
Add these lines to your config.toml
:
[module]
[[module.imports]]
path = "github.com/victoriadrake/hugo-theme-memex"
disable = false
You're done! Run hugo server
to see the magic.
Edit the config.toml
file to name and customize your site. Here are all the different Hugo config parameters you can set.
When you're ready, you can deploy automatically with services like:
- GitHub Actions to GitHub Pages. Just configure your publishing source.
- Neocities with or drag-and-drop upload.
- Other repository hosting services, like GitLab Pages can also serve static sites.
Memex supports formats and protocols that encourage independent websites! To learn more about these, the community over at IndieWebCamp is a great place to ask questions.
Here are the features Memex currently supports:
- Individual posts will render Webmentions with support via Webmention.io
- Your posts can be automatically shared with other social media thanks to Bridgy (see more about Publish (on your) Own Site, Syndicate Elsewhere (POSSE) on the IndieWebCamp wiki)
- Your feed can be parsed by RSS and feed readers thanks to h-card, h-feed, and h-entry microformats2 markup
- You can log into supported services using IndieAuth
rel=me
links (they're in the head file)
Memex has out-of-the-box support for these features. You can turn them on by setting parameters in your configuration file.
Web Monetization is a proposed standard that can let you receive micropayments when visitors browse your site. You'll need to set up a wallet that supports the Interledger Protocol (ILP).
Add your wallet's payment pointer to your config.toml
, for example:
[params]
paymentPointer = "$wallet.provider.com/myspecialid123"
Don't forget to replace example
below!
webmentionUrl = "https://webmention.io/example/webmention"
pingbackUrl = "https://webmention.io/example/xmlrpc"
micropubUrl = "https://example.com/.netlify/functions/micropub"
microsubUrl = "https://aperture.p3k.io/microsub/example"
Rich embeds can provide additional information about your site if you set these parameters in the config:
description = "A description of this site."
socialImage = "static/img/social.png" # site image for rich embeds
# For IndieAuth too
githubuser = "username"
twitteruser = "username" # no @ in front
mastodon = "https://mastodon.technology/@username" # full link to your instance profile
You are absolutely encouraged to contribute to this friendly open source project!
As a project, Memex has these main goals:
- Make it easy for people to ship a fun and useful website.
- Make it easy to participate in the small web to encourage the creation of personal static sites.
- Demonstrate excellent open source community practices and repository maintenance practices.
Any contribution that works towards these goals is welcome. See CONTRIBUTING.md for details.