Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evaera/moonwave
Moonwave is a tool for generating documentation from comments in Lua source code.
https://github.com/evaera/moonwave
Last synced: 4 months ago
JSON representation
Moonwave is a tool for generating documentation from comments in Lua source code.
- Host: GitHub
- URL: https://github.com/evaera/moonwave
- Owner: evaera
- License: mpl-2.0
- Created: 2020-10-23T02:00:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-22T01:59:57.000Z (5 months ago)
- Last Synced: 2024-09-22T07:06:16.987Z (4 months ago)
- Language: Rust
- Homepage: https://eryn.io/moonwave/
- Size: 2.7 MB
- Stars: 154
- Watchers: 7
- Forks: 23
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-roblox - Moonwave - Tool for generating documentation from comments in Lua source code. (Tooling / Documentation Generators)
- awesome-roblox - Moonwave
- awesome-roblox - Moonwave
- awesome-roblox - Moonwave
- awesome-roblox - Moonwave
README
# Moonwave
Moonwave is a command line tool for generating documentation from comments in Lua source code.
This repository contains three projects:
- The Moonwave Extractor, a Rust program that parses Lua files and extracts the docs as JSON
- A plugin for [Docusaurus](https://docusaurus.io/), written in React, which displays the JSON docs visually
- The Moonwave CLI, which allows you to use both the extractor and the Docusaurus plugin without needing to know anything about how they work.## Key features
- Easy to use: You can generate a website with little-to-no configuration and just a few comments in your Lua code.
- Extensive validation system which can catch mistakes when something doesn't make sense.
- Generates JSON from your doc comments, which can be consumed by many different tools.
- Simple doc comment format that is easy to read directly when editing your code.## Demo
Check out the [roblox-lua-promise](https://eryn.io/roblox-lua-promise/api/Promise) docs. This website is completely generated by Moonwave!## Name
Lua is the moon. The moon is your code. The moon influences the waves in the ocean, just like your code influences its documentation. So.. moonwave!## Docs
[Check out the Documentation website](https://eryn.io/moonwave/)
## Building in Development and Contributing
Requirements:
- [Node.js 18+](https://nodejs.org/en/)
- [Rust 1.54.0 and Cargo](https://rustup.rs/)1. Clone this repository
2. in `cli`, run `npm i`, `npm run tsc`, and `npm link`
3. in `docusaurus-plugin-moonwave`, run `npm i`
4. in `extractor`, run `cargo install --path . --locked`
5. in `cli`, run `npm run dev`
6. in another terminal, navigate to the project you want to test with, and run `MOONWAVE_DEV=1 moonwave dev`You should now be able to change files in the `moonwave` folder and things should live-reload on your development website. If they don't, Ctrl+C the `moonwave dev` terminal and restart it. If you continue to have issues, try adding the `-i` flag to reinstall all dependencies.
## License
Moonwave is available under the terms of the Mozilla Public License Version 2.0. Terms and conditions are available in [LICENSE.txt](LICENSE.txt) or at .