{"id":20832275,"url":"https://github.com/scbd/ebsa-portal","last_synced_at":"2026-03-19T17:44:10.952Z","repository":{"id":14661605,"uuid":"17380084","full_name":"scbd/ebsa-portal","owner":"scbd","description":"Ecologically or Biologically Significant Marine Areas (EBSAs) Portal","archived":false,"fork":false,"pushed_at":"2024-04-02T20:13:34.000Z","size":16837,"stargazers_count":0,"open_issues_count":6,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-18T20:41:10.115Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.cbd.int/ebsa","language":"CSS","has_issues":false,"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/scbd.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}},"created_at":"2014-03-03T21:04:39.000Z","updated_at":"2021-10-28T20:10:27.000Z","dependencies_parsed_at":"2023-11-15T19:46:30.853Z","dependency_job_id":null,"html_url":"https://github.com/scbd/ebsa-portal","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Febsa-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Febsa-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Febsa-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Febsa-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scbd","download_url":"https://codeload.github.com/scbd/ebsa-portal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243182574,"owners_count":20249655,"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":[],"created_at":"2024-11-18T00:11:04.893Z","updated_at":"2026-02-10T01:32:25.506Z","avatar_url":"https://github.com/scbd.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"ebsa-portal\n============\n\n[![Dependency Status](https://david-dm.org/scbd/ebsa-portal.svg)](https://david-dm.org/scbd/ebsa-portal)\n\nEcologically or Biologically Significant Marine Areas (EBSAs) Portal\n\n#####Dev Instructions:\n1. Clone repo\n2. `npm install` followed by `bower install`\n3. `grunt serve` to start dev server with livereload, watch files and compass\nauto-compile.\n4. `grunt karma` to start a Karma server and run all tests\n5. `grunt prot` to start protractor and run e2e tests.\n\n\n####Search Index:\nThe website uses [lunr.js](lunrjs.com) to power a simple but flexible\ntext search implementation. All code is under project_folder/siteSearch.\n\nRun `grunt index` to generate a fresh search index. This is required every\ntime the about or resources page markup changes.\n\n######Technical description\nThe indexer works in a few simple stages:\n\n1. The main indexer files patches in views.js and textNodeProcessor.js\n2. views.js loads all necessary view files and returns their contents\nas a map of {filename: fileContents}.\n3. The map is passed over to textNodeProcessor which loads each fileContent\nas markup into jsdom, and then uses node-jQuery and native DOM methods to extract\nall text and compute a XPATH style CSS selector for each usable node (The processor\ntries hard to make sure the selector is unique. It also computes a tab location\nif the element is located inside a tab.\n4. Once all the nodes are processed, the resulting array of documents is written to\ndata/lunr-documents.json for later use by siteSearch.js, and finally fed to lunr for\nindexing. The resulting Lunr index is serialized and written to data/lunr-index.json.\n5. When a search request comes in, siteSearch will load both the documents and lunr\nindex to treat the request. The query will be fed to Lunr which will return an array\nof documents IDs and relevancy scores. The documents array is filtered by the IDs and\nsorted by relevancy and finally returned to the search.html.js controller which will\nrender the results.\n6. When a user clicks on a search match, highlighter.js will pick up the arguments and\nhighlight any matching node on the page that contains the match.\n\nThe structure for a parsed node is:\n```javascript\n{\n  body: String - The .text() content of the node\n  xpath: String - the encodeURIComponent(xpath) CSS selector for the element\n  tabName: String - The .text() content of the tab if there is one,\n  tabHash: String - The tab's hash link if there is one ex: #criteria,\n  pageName: String - The name of the page the element belongs to.\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscbd%2Febsa-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscbd%2Febsa-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscbd%2Febsa-portal/lists"}