Website • Download • Matrix • Discord • Mastodon • Bluesky • Contribute
This project is still in development and not ready for production use. Please join the matrix or discord server for updates!
Luna stands for Lightweight Universal Networked Assets.
It is a static asset registry generator: you store asset metadata in TOML, Luna builds a versioned JSON index and an optional browsable documentation website. Apps can consume the index without a backend, login system, or custom server. Read more in the documentation.
Planned:
- Linwood Setonix to download packs
- Linwood Butterfly to download packs
but you can just implement the api in your own app!
The basic CLI with the basic API and website is functional. The API is not yet stable, but the CLI is usable.
Current todos:
- Repository validation (
luna check/luna validate) - JSON Schema output (
luna schema) - Implement a bundling system to host assets in the docs
- Avatars
- Asset items
- Filtering
- Sorting
- More customization options
- Custom templates
- Custom navbar links
- Categories
- More language library support
- Dart
You can use Luna in your GitHub Actions workflow to generate your site.
steps:
- uses: actions/checkout@v6
- uses: LinwoodDev/Luna@v0.1.0
with:
command: 'build'
path: 'output/docs'
index_path: 'output/index.json'During development you can pin @main or @develop, but release tags are the recommended input for reproducible builds.
If you only want to generate the index or docs separately, you can use the generate or docs commands.
You can override the built-in Handlebars templates and bundled public files by passing a custom root directory:
luna docs output/docs output/index.json --custom-root custom-docsSupported override structure inside custom-docs:
templates/**/*.hbscomponents/**/*.hbslayouts/**/*.hbspublic/**/*(for files likesearch.js,download.js,main.css, ...)
Only files you provide are overridden; all other files still use Luna defaults.
We are happy to see that you are interested in contributing to Luna. To get started, visit the contributing guide.
The code is open source and licensed under the Apache-2.0 license.
All content in docs/ are licensed under the CC-BY-SA-4.0 license.
