{"id":28089342,"url":"https://github.com/cindyjs/cindyjs","last_synced_at":"2025-05-13T12:57:07.845Z","repository":{"id":1966040,"uuid":"42122684","full_name":"CindyJS/CindyJS","owner":"CindyJS","description":"A JavaScript framework for interactive (mathematical) content.","archived":false,"fork":false,"pushed_at":"2024-07-13T10:57:52.000Z","size":32241,"stargazers_count":647,"open_issues_count":140,"forks_count":50,"subscribers_count":26,"default_branch":"main","last_synced_at":"2024-08-01T03:28:24.600Z","etag":null,"topics":["geometry","javascript","mathematics"],"latest_commit_sha":null,"homepage":"https://cindyjs.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CindyJS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-08T15:51:32.000Z","updated_at":"2024-07-29T15:58:35.000Z","dependencies_parsed_at":"2023-01-14T11:15:16.012Z","dependency_job_id":"f819032d-7b42-4fef-9b5a-154d4fb2eaf9","html_url":"https://github.com/CindyJS/CindyJS","commit_stats":{"total_commits":2894,"total_committers":21,"mean_commits":137.8095238095238,"dds":0.6489288182446441,"last_synced_commit":"3716f4086a6d05ea5e095035c8c0660cd921f38e"},"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CindyJS%2FCindyJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CindyJS%2FCindyJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CindyJS%2FCindyJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CindyJS%2FCindyJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CindyJS","download_url":"https://codeload.github.com/CindyJS/CindyJS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253948346,"owners_count":21988953,"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":["geometry","javascript","mathematics"],"created_at":"2025-05-13T12:57:07.237Z","updated_at":"2025-05-13T12:57:07.829Z","avatar_url":"https://github.com/CindyJS.png","language":"JavaScript","readme":"# CindyJS\n\n**CindyJS is a framework to create interactive\n(mathematical) content for the web.**\n\nIt aims to be compatible with [Cinderella](http://cinderella.de/),\nproviding an interpreter for the scripting language CindyScript\nas well as a set of geometric operations which can be used to describe\nconstructions.\nTogether, these components make it very easy to visualize various\nconcepts, from geometry in particular and mathematics in general,\nbut also from various other fields.\n\nSee also our [project page](https://cindyjs.org).\n\n## Examples\n\nExamples on the web can be seen [here](https://cindyjs.org/gallery/main/).\n\nThere is also [an `examples` directory](https://github.com/CindyJS/CindyJS/tree/master/examples)\ninside the repository, demonstrating individual functions and operations.\n\nDevelopers can run these examples from their local development copy.\nSome examples may require a webserver-like environment to avoid\ntriggering browser security measures associated with local files.\nTo do so, one can run \u003ccode\u003enode_modules/.bin/st -l -nc\u003c/code\u003e\nin the root of the development tree, and then visit\n[the local copy of the examples directory](http://127.0.0.1:1337/examples/).\n\n## Building\n\nIf you have `npm` installed, running `npm install`\nin the top level source directory should just work.\n\nIf you lack a compatible setup of `npm` and `node`,\nrunning `make build=release` in the top level source directory should\nbe able to get a suitable setup installed inside the project directory tree.\nIn general, all required third-party tools should be automatically downloaded\nand installed inside the project directory tree.\nOne exception is a Java Runtime Environment, which has to be installed before\n(because users have to manually accept the terms and conditions before\nbeing allowed to download a JRE).\n\nIf `npm` resp. `make` terminated successfully, then `build/js` will contain\nthe artefacts which you'd likely want to include in your web site.\nIf you are building from an official commit, then `make build=release deploy`\nwill create `build/deploy` which is even better suited to be put on a web server,\nsince it references the commit at GitHub which may help diagnose problems.\n\n### Building on Windows\n\nThe description above uses `make` mostly for convenience.\nPretty much all the commands are in fact passed on to\na JavaScript-based build system contained in the `make` directory.\nIf you don't have `make` available on Windows,\nyou can call `node make` instead.\nSo a standard release build would be `node make build=release`.\n\nNote that you should have the following software installed:\n\n-   A recent Java Runtime Environment (JRE)\n-   Node.js with the `node` command added to the PATH\n-   Git for Windows with the `git` command usable from the Windows Command Prompt\n\n## Contributing\n\nWhen you work on the code base the simple `make` or `node make`\nwill give you a build which is fast to compile and easy to debug.\nIn contrast to this, `node make build=release` will\nperform additional compilation steps like running the Closure Compiler.\nIt may issue more warnings, which in turn might be useful when developing.\nYou should make sure that your code works in both build modes.\n\nIf you are confident that your work is done, call `make alltests`\nafter you did `git add` to stage your changes.\nThat will ensure that your modifications pass all kinds of tests.\nThe same tests will be run automatically on pull requests.\nOnce your modifications satisfy your expectations, pass these tests\nand are accompanied by a suitable test case or demonstrating example\n(where appropriate), you may file a pull request for your changes.\n\n## Documentation\n\n[The CindyJS API documentation](https://github.com/CindyJS/CindyJS/blob/master/ref/createCindy.md)\ndescribes how to create a widget on an HTML page using this framework.\n\nOther documentation in [the `ref` directory](https://github.com/CindyJS/CindyJS/tree/master/ref) describes\nlarge portions of the CindyScript programming language. This\ndocumentation, however, started as a copy of\n[the corresponding Cinderella documentation](http://doc.cinderella.de/tiki-index.php?page=CindyScript). It\nis currently meant as a goal of what functionality _should_ be\nsupported, while actual support might still be lagging behind. If there\nis a particular feature you'd need for your work, don't hesitate to\n[file a feature request](https://github.com/CindyJS/CindyJS/issues) for it.\n\n## License\n\nCindyJS is licensed under the\n[Apache 2 license](http://www.apache.org/licenses/LICENSE-2.0.html).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcindyjs%2Fcindyjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcindyjs%2Fcindyjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcindyjs%2Fcindyjs/lists"}