{"id":20668095,"url":"https://github.com/daelvn/fir","last_synced_at":"2025-08-03T23:06:37.592Z","repository":{"id":94198983,"uuid":"328392084","full_name":"daelvn/fir","owner":"daelvn","description":"🌲Language-agnostic documentation generator.","archived":false,"fork":false,"pushed_at":"2024-10-07T22:47:35.000Z","size":2153,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T19:25:03.517Z","etag":null,"topics":["documentation-generator","language-agnostic","lua","moonscript"],"latest_commit_sha":null,"homepage":"https://daelvn.github.io/fir/","language":"MoonScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daelvn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-10T13:41:20.000Z","updated_at":"2025-01-02T02:58:21.000Z","dependencies_parsed_at":"2025-04-19T17:11:46.205Z","dependency_job_id":"f7d7d590-3480-4550-b3b9-dcf8c1d31b6d","html_url":"https://github.com/daelvn/fir","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/daelvn/fir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelvn%2Ffir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelvn%2Ffir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelvn%2Ffir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelvn%2Ffir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daelvn","download_url":"https://codeload.github.com/daelvn/fir/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelvn%2Ffir/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268625009,"owners_count":24280188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation-generator","language-agnostic","lua","moonscript"],"created_at":"2024-11-16T19:47:36.399Z","updated_at":"2025-08-03T23:06:37.582Z","avatar_url":"https://github.com/daelvn.png","language":"MoonScript","readme":"# Fir 2\n\n![Discord](https://img.shields.io/discord/454435414044966913?style=for-the-badge\u0026logo=discord)\n![GitHub Repo stars](https://img.shields.io/github/stars/daelvn/fir?style=for-the-badge\u0026logo=github)\n![GitHub Tag](https://img.shields.io/github/v/tag/daelvn/fir?style=for-the-badge\u0026logo=github)\n![LuaRocks](https://img.shields.io/luarocks/v/daelvn/fir?style=for-the-badge\u0026logo=lua)\n\n\u003cimg align=\"left\" width=\"128\" height=\"128\" src=\"docs/fir-logo.png\"\u003e\n\nFir is a language-agnostic documentation generator framework. It is fully modular, which means you can mix a comment extractor with a different comment parser and emitter (but you aren't going to go through the hassle of writing anything). A set of generic modules for generating Markdown documentation is provided, don't expect much more (unless you press me to write more).\n\n\u003cbr/\u003e\n\n\u003e [!TIP]\n\u003e Check out the new Fir 2 update! Renewed, with symbol support, verbatim inputs, and a little more. [Changelog below](#2).\n\n## Table of contents\n\n\u003c!--toc:start--\u003e\n- [Fir 2](#fir-2)\n  - [Table of contents](#table-of-contents)\n  - [Install](#install)\n    - [Compiling from source](#compiling-from-source)\n  - [Changelog](#changelog)\n  - [Documentation](#documentation)\n  - [Extra features](#extra-features)\n  - [License](#license)\n\u003c!--toc:end--\u003e\n\n## Install\n\nYou can install Fir via LuaRocks:\n\n```\n$ luarocks install fir\n```\n\n### Compiling from source\n\nIf you want to compile from source, you will need to install the following dependencies from LuaRocks:\n- `argparse` (CLI)\n- `ansikit` (CLI, optional if using CLI with `--silent`)\n- `lpath` (Library, CLI)\n- `lrexlib-pcre2` (Library, CLI)\n- `yuescript` (Compiling)\n- `alfons` (Compiling)\n- `rockbuild` (Compiling)\n\nThen, simply run `alfons compile make -v 1.0`. To clean the project, simply `alfons clean`.\n\n## Changelog\n\n### 2.x\n\n- **2.0.0** (04.10.2024)\n\nFir 2 is being released! Out of the necessity to use a more modern documentation for my other, better project, [Alfons](https://github.com/daelvn/alfons), I decided to update this project. Here's the main changes:\n\n- **Revamped test suite generator.** The `tests` format now actually works, and generates robust tests from your documentation that can check for many conditions. It's even [TAP](https://testanything.org/tap-version-14-specification.html) compliant for your CI needs!\n- **Symbol linking.** Fir CLI using the Generic backend will now collect all symbols and let you link to them with `@@@` syntax.\n- **Verbatim inputs.** Those inputs will be copied over directly to the output folder.\n- **Alfons integration.** Fir automatically installs a loadable [Alfons](https://github.com/daelvn/alfons) task, so you can integrate it into your Alfons workflows. Use `load 'fir'` to load it.\n- **Symbol summaries can now be longer than one line.** The summary ends on the first line that does not begin with a \\\u003clead\u003e character.\n- **Aliases are deranked.** Now (under the Generic backend) aliases are not put beside the name.\n- **Better error reporting.** No more unparsable errors.\n- **Output for MkDocs.** The Generic Markdown emitter now has specific MkDocs options.\n- **Updated documentation.** It's easier to understand how the fuck to use this.\n- **Documentation now uses [Material for MkDocs](https://squidfunk.github.io/mkdocs-material).** For a more clean, updated and powerful look and feel.\n- **Switched to more robust libraries.** [lpath](https://github.com/starwing/lpath) for FS operations, [lrexlib on PCRE2 backend](https://github.com/rrthomas/lrexlib) for symbol syntax.\n- **Updated from MoonPlus to Yuescript.** MoonPlus has not been a thing for years and instead transitioned into being [Yuescript](https://yuescript.org).\n\n## Documentation\n\nCheck out the documentation [here](//daelvn.github.io/fir/).\n\n## Extra features\n\nI kindly welcome new features that anyone wants to suggest or add! Feel free to open an issue or PR.\n\n## License\n\nThis project is [Unlicensed](LICENSE.md), and released to the public domain. Do whatever you wish with it!\n","funding_links":[],"categories":["Projects"],"sub_categories":["emacs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaelvn%2Ffir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaelvn%2Ffir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaelvn%2Ffir/lists"}