{"id":24255915,"url":"https://github.com/3on/visual-linking","last_synced_at":"2026-05-30T18:31:24.712Z","repository":{"id":13409327,"uuid":"16097808","full_name":"3on/visual-linking","owner":"3on","description":"MontageJS component to visually link objects","archived":false,"fork":false,"pushed_at":"2014-05-08T00:20:39.000Z","size":1600,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-04T19:31:48.545Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3on.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-21T09:18:58.000Z","updated_at":"2014-05-08T00:20:39.000Z","dependencies_parsed_at":"2022-09-23T12:41:26.980Z","dependency_job_id":null,"html_url":"https://github.com/3on/visual-linking","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/3on/visual-linking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3on%2Fvisual-linking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3on%2Fvisual-linking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3on%2Fvisual-linking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3on%2Fvisual-linking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3on","download_url":"https://codeload.github.com/3on/visual-linking/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3on%2Fvisual-linking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33705207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"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":[],"created_at":"2025-01-15T04:22:16.178Z","updated_at":"2026-05-30T18:31:24.689Z","avatar_url":"https://github.com/3on.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nThis readme file provides a brief overview of the file and folder structure\nincluded in the default MontageJS project directory.\n\n\u003eIMPORTANT: Be sure to replace the contents of this readme file with information\nabout the final application before deploying the application or passing it on to\na client.\n\nProject Directory\n============\n\nThe default project directory includes the following files and folders:\n\n* assets/  -  Contains global stylesheets and images for the application.\n* index.html  -  Is the entry-point document for the application. \n* node_modules/  -  Contains the code dependencies required in development.\n\n    Includes Montage, the core framework, and Digit, a mobile-optimized user\n    interface widget set by default. Since MontageJS uses the CommonJS module \n    system, you can leverage the npm ecosystem for additional modules. To add \n    dependencies (e.g., foo), use `npm install foo` in the project directory.\n    \n    NOTE: All packages in this directory must be included as dependencies \n    in package.json.\n\n* package.json  -  Describes the application and the dependencies included in \n            the node_modules directory.\n* README.md  -  The default readme file.\n* run-tests.html  -  Is a page to run Jasmine tests manually in the browser.\n* test/  -  Contains tests for the application.\n\n    By default, this directory includes all.js, a module that points the test runner\n    to all jasmine specs.\n\n* ui/  -  Contains the application user interface components. \n\n    By default, this directory contains two components: main.reel (the Main\n    user interface component) and version.reel (which displays the current\n    MontageJS version).\n\nIn development, you can expand this project directory as necessary; for example,\ndepending on the project you may want to add the following folders:\n\n* locale/  -  For localized content.\n* scripts/  -  For JS libraries that do not support the CommonJS exports object\n           and, therefore, have to be loaded using a `\u003cscript\u003e` tag.\n\nUnit Testing\n=========\n\nMontageJS uses some pure unit tests that are straightforward [Jasmine specs][1].\n\nTo install the test code, run `npm install` in your project folder. This installs the \nthe [montage-testing][2] package, which adds some useful utilities for writing \njasmine tests. You will need the file run-tests.html.\n\nFor an example of how we implement unit testing, see the [digit][3] repository:\n\n* [run-tests][4] loads our test environment.\n* `data-module=\"test/all\"` inside the final script tag tells the system to load [test/all.js][5].\n* all.js specifies a list of module ids for the runner to execute.\n\n\u003eNote that in this example, all the tests load a page in an iframe using \n`TestPageLoader.queueTest()`. These are akin to integration tests since they test \nthe component in a real environment.\n\nWe also test some components by [mocking their dependencies][6].\n\nDocumentation\n============\n\nHere are some links you may find helpful:\n\n* [API Reference][7]\n* [Documentation][8]\n* [FAQ][9]\n\nContact\n======\n\n* Got questions? Join us on [irc.freenode.net#montage][10].\n* Got feedback or want to report a bug? Let us know by creating a new [Github issue][11].\n* Want to contribute? [Pull-requests][12] are more than welcome.\n\n[1]: https://github.com/montagejs/montage/blob/master/test/core/super-spec.js        \"Jasmine specs\"\n[2]: https://github.com/montagejs/montage-testing        \"montage-testing\"\n[3]: https://github.com/montagejs/digit        \"digit\"\n[4]: https://github.com/montagejs/digit/blob/master/run-tests.html        \"run-tests\"\n[5]: https://github.com/montagejs/digit/tree/master/test        \"test/all.js\"\n[6]: https://github.com/montagejs/montage/blob/master/test/base/abstract-button-spec.js        \"mocking their dependencies\"\n[7]: http://montagejs.org/api/        \"API Reference\"\n[8]: http://montagejs.org/docs/        \"Documentation\"\n[9]: http://montagejs.org/docs/faq.html        \"FAQ\"\n[10]: http://webchat.freenode.net/?channels=montage        \"irc.freenode.net#montage\"\n[11]: https://github.com/montagejs/montage/issues        \"Github issue\"\n[12]: https://github.com/montagejs/montage/pulls        \"Pull-requests\"\n\nLast edited: November 14, 2013\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3on%2Fvisual-linking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3on%2Fvisual-linking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3on%2Fvisual-linking/lists"}