/kaaper

Documentation generator for Cairo projects.

Primary LanguageTypeScriptMIT LicenseMIT

Kaaper

Documentation generator for Cairo projects.

⚠️ WARNING! ⚠️

This repo contains highly experimental code. Expect rapid iteration.

🎟️ Description

Kaaper is a tool to generate documentation for Cairo projects. It allows you to extract code documentation from your project and generate yaml files that can be used to generate documentation. Kaaper supports both Natspec and Google documentation standards.

🎗️ Prerequisites

Node JS, preferably 16.xx
Yarn

📦 CLI Installation

Kaaper is now available as an NPM package.

npm install -g @onlydust/kaaper
yarn global add @onlydust/kaaper

Or install locally : Navigate to CLI directory

cd cli

Install the required dependencies

yarn
npm install

Install CLI locally

npm run create
npm run local

🔬 Usage

To see available commands

kaaper

Generate docs

kaaper generate <rootdir> <outdir>

Generate docs (comment only)

kaaper generate --comment <rootdir> <outdir>

The command generates documentation for google-compliant contracts by default. To Generate docs for natspec-compliant contracts, use

kaaper generate --standard natspec <rootdir> <outdir>

Check comment compliancy

kaaper check-compliance <rootdir> [--standard natspec|google]

🌡️ Testing

yarn test

📦 VSCode Extension Installation

The extension is not on the marketplace yet, so the only way to use it is by building it from source. Dont forget to open up the vscode on this directory.

Open vscode-extension directory

code vscode
yarn
yarn install
  • Press Ctrl+Shift+B to start compiling the client and server in watch mode.
  • Switch to the Run and Debug View in the Sidebar (Ctrl+Shift+D).
  • Select Launch Client from the drop down (if it is not already).
  • Press ▷ to run the launch config (F5).
  • If you want to debug the server as well, use the launch configuration Attach to Server
  • In the Extension Development Host instance of VSCode, open a document in 'plain text' language mode.
    • Type j or t to see Javascript and TypeScript completion.
    • Enter text content such as AAA aaa BBB. The extension will emit diagnostics for all words in all-uppercase.

🫶 Contributing

📄 License

kaaper is released under the MIT.

❓ Reference

Kaaper, also commonly known as Sheikh el-Beled, was an ancient Egyptian scribe and priest who lived between the late 4th Dynasty and the early 5th Dynasty (around 2500 BCE).

The job of a scribe was to record in writing the everyday life and extraordinary happenings in ancient Egypt.

A documentation generator has pretty much the same duties as a scribe, right?