{"id":17218225,"url":"https://github.com/korthout/cantis","last_synced_at":"2025-03-22T18:34:12.961Z","repository":{"id":49270707,"uuid":"162913798","full_name":"korthout/Cantis","owner":"korthout","description":"Living documentation glossary extractor for Java projects","archived":false,"fork":false,"pushed_at":"2021-06-21T04:20:44.000Z","size":258,"stargazers_count":10,"open_issues_count":25,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T14:01:47.841Z","etag":null,"topics":["cli","elegantobjects","glossary","living-documentation","maven-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/korthout.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-23T18:13:36.000Z","updated_at":"2022-08-06T09:59:41.000Z","dependencies_parsed_at":"2022-09-01T12:12:01.065Z","dependency_job_id":null,"html_url":"https://github.com/korthout/Cantis","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korthout%2FCantis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korthout%2FCantis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korthout%2FCantis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/korthout%2FCantis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/korthout","download_url":"https://codeload.github.com/korthout/Cantis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245003533,"owners_count":20545627,"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","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":["cli","elegantobjects","glossary","living-documentation","maven-plugin"],"created_at":"2024-10-15T03:45:49.819Z","updated_at":"2025-03-22T18:34:12.592Z","avatar_url":"https://github.com/korthout.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cantis\n[![EO principles respected here](http://www.elegantobjects.org/badge.svg)](http://www.elegantobjects.org) \n\n[![Build Status](https://api.travis-ci.org/korthout/Cantis.svg?branch=master)](https://travis-ci.org/korthout/Cantis)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=com.github.korthout.cantis%3Afrom-java\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=com.github.korthout.cantis%3Afrom-java)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=com.github.korthout.cantis%3Afrom-java\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=com.github.korthout.cantis%3Afrom-java)\n[![codecov](https://codecov.io/gh/korthout/Cantis/branch/master/graph/badge.svg)](https://codecov.io/gh/korthout/Cantis)\n[![Hits-of-Code](https://hitsofcode.com/github/korthout/Cantis)](https://hitsofcode.com/view/github/korthout/Cantis)\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.korthout/cantis.svg?label=Maven%20Central\u0026color=blue)](https://search.maven.org/search?q=g:%22com.github.korthout%22%20AND%20a:%22cantis%22)\n\nCantis is a living documentation glossary extractor. It helps to keep your \nglossary up-to-date by extracting it from the documentation in your code.\n\n## Why\nCantis was created to **overcome miscommunication** about the meaning of \ndomain-specific terms between co-workers (e.g. developers, managers, sales, \ncustomer heroes and so on).\n\nIt also may give developers an extra nudge to **document classes** with care.\n\nLastly, Elegant Object Principles are applied, to **learn more** about \"true\" \nObject-Oriented Programming and how Functional Programming can complement OOP.\nHopefully this can lead to meaningful discussions about its applications.\n\n## Example\nCurrently, the Cantis [from-java](from-java) extractor is the heart of Cantis.\nIt can extract a glossary from your Java codebase.\n\nConsider a Java class:\n```java\n/**\n * A person that uses our software.\n */\n@Term\nclass User {\n\n}\n```\nFrom-java can turn it into a glossary: \n```\nUser: A person that uses our software.\n```\n\nCantis from-java also generates its own [glossary](from-java/glossary.txt) and \n[cantisfile.json](from-java/cantisfile.json) (a json formatted glossary).\n\n## Install and usage\nTake a look at the [README](from-java/README.md#install) of the from-java\nextractor.\n\n## Cantisfile\nCantis is being rebuild to become a set of tools build around the `cantisfile`.\n\nCantisfiles contain everything that make-up a glossary. Its schema actually\ndescribes of what glossaries look like.\n\n```typescript\n// Typescript definition of a cantisfile\ninterface Cantisfile {\n    definitions: Definition[]\n};\ninterface Definition {\n    term: string\n    description: string\n};\n```\n\n## How to contribute?\nJust fork the repo and send us a pull request. \nIf you have any questions, simply create an issue so we can talk about it. \n\n**Code of Conduct**\nAll contributions must adhere to the [code of conduct](CODE_OF_CONDUCT.md),\nwhich shouldn't be hard. Just be nice.\n\n## License (MIT)\nCopyright 2018 Nico Korthout\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in \nthe Software without restriction, including without limitation the rights to \nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies \nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all \ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE \nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkorthout%2Fcantis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkorthout%2Fcantis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkorthout%2Fcantis/lists"}