{"id":31785193,"url":"https://github.com/aocoronel/links","last_synced_at":"2025-10-10T11:44:39.304Z","repository":{"id":273405825,"uuid":"919607094","full_name":"aocoronel/links","owner":"aocoronel","description":"🏠 Feature your favorite links elegantly.","archived":false,"fork":false,"pushed_at":"2025-10-06T19:57:08.000Z","size":276,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-06T21:29:06.077Z","etag":null,"topics":["links","publishing"],"latest_commit_sha":null,"homepage":"https://aocoronel.github.io/links/","language":"CSS","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/aocoronel.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-20T17:47:55.000Z","updated_at":"2025-09-22T13:14:08.000Z","dependencies_parsed_at":"2025-03-02T02:19:27.823Z","dependency_job_id":"3486c09e-1db2-43c6-9d32-383f0705d4ab","html_url":"https://github.com/aocoronel/links","commit_stats":null,"previous_names":["janpstrunn/homepage","janpstrunn/links","anstrinn/links","aocoronel/links"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/aocoronel/links","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aocoronel%2Flinks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aocoronel%2Flinks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aocoronel%2Flinks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aocoronel%2Flinks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aocoronel","download_url":"https://codeload.github.com/aocoronel/links/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aocoronel%2Flinks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003713,"owners_count":26083610,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"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":["links","publishing"],"created_at":"2025-10-10T11:44:30.513Z","updated_at":"2025-10-10T11:44:39.299Z","avatar_url":"https://github.com/aocoronel.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e🔗 Links: Share Your Links\n  \u003c/h1\u003e\n  \u003cimg src=\"./assets/links_thumbnail.png\"\u003e\n\u003c/div\u003e\n\nThis project aims to improve the experience when starting a browser to display a visually pleasing interface featuring all your favorite bookmarks, which can also be used as a platform to share your bookmarks to other people.\n\nTo make maintenance easier, this uses a little bit of JavaScript for dynamic changes in the webpage to change buttons and links, and also uses JSON files to store all the data. While there is no interface to add links interactively, there is a shell script that uses `jq` to add new data to those JSON files.\n\nAll icons loaded in the webpage are sourced from DuckDuckGo's Favicon Extractor to increase reliability and better favicon quality. None are stored in this project.\n\n## How it works\n\nCurrently, many parts of this project is hardcoded, specially the index.html, such as the webpage metadata, sidebar contents, footer content, and sourced JSON files.\n\nInitially the webpage is constructed appending the top buttons to it, which can be added by editing the html files in the `pages/` directory, or adding a new one in the same format. After that, there is a hardcoded button which is automatically switched to display some first content. All the links are stored in the `data/` directory. Each button is related to a specific JSON file, which is named exactly as its class. So, each data that are not in the right file will not be displayed.\n\n### JSON Structure\n\n```json\n  {\n    \"id\": \"software\",\n    \"sub_id\": \"Linux\",\n    \"title\": \"Arch Linux\",\n    \"url\": \"https://archlinux.org/\",\n    \"icon\": \"https://external-content.duckduckgo.com/ip3/archlinux.org.ico\"\n  },\n```\n\n- The id has the same name as the file, and its class. A mismatched name will not display the link.\n- The sub_id corresponds to the Section Name, in this case a new row will be created and named as \"Linux\"\n- The title is the link name, which will be displayed in the \"Linux\" row\n- The icon can be automatically gathered using the `add-link.sh`\n\n## How to use\n\n### Setup\n\nYou can you the `setup.sh` script to change your username and name in the `index.html` for you.\n\nCurrently, you will manually need to change the jsonMappings in the `index.html` file, configure the `button.css` to add your classes and create more pages at `pages/` and the function to change the pages.\n\n### Hosting\n\nYou can locally run your webpage by running the following command in the root directory of this project.\n\n```bash\npython -m http.server 8080\n```\n\nOr, perhaps, you want to host it. If so, you can fork it and make the necessary changes, and then use Github Pages to host it as this [demo](https://aocoronel.github.io/links/).\n\n## Future Plans\n\nFor now, new features are not planned.\n\n- [x] Optimize the overall code\n- [ ] Remove hardcoded content\n- [ ] Create a template\n\n## License\n\nThis repository is licensed under the MIT License, a very permissive license that allows you to use, modify, copy, distribute and more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faocoronel%2Flinks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faocoronel%2Flinks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faocoronel%2Flinks/lists"}