{"id":17712678,"url":"https://github.com/gribouille/awesome","last_synced_at":"2026-05-10T19:21:45.315Z","repository":{"id":135349884,"uuid":"163895424","full_name":"gribouille/awesome","owner":"gribouille","description":"Awesome list generator","archived":false,"fork":false,"pushed_at":"2019-09-10T13:19:15.000Z","size":28,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-23T08:24:10.329Z","etag":null,"topics":["awesome-list","github","haskell"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gribouille.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":"2019-01-02T22:17:54.000Z","updated_at":"2024-02-20T03:06:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"a067dcdd-05a3-4f9d-894d-eaaba379cc8d","html_url":"https://github.com/gribouille/awesome","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gribouille%2Fawesome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gribouille%2Fawesome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gribouille%2Fawesome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gribouille%2Fawesome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gribouille","download_url":"https://codeload.github.com/gribouille/awesome/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246290605,"owners_count":20753729,"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":["awesome-list","github","haskell"],"created_at":"2024-10-25T09:42:31.455Z","updated_at":"2026-05-10T19:21:45.282Z","avatar_url":"https://github.com/gribouille.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# awesome\n`awesome` is a [awesome list](https://github.com/sindresorhus/awesome) generator.\n\n`awesome`:\n\n- get automatically for the Github repositories: stars, license, description, ...\n- sorts the links by type and by stars\n- generates the table of content.\n\n\nExamples:\n- [Python awesome list](https://github.com/gribouille/awesome-python)\n- [Haskell awesome list](https://github.com/gribouille/awesome-haskell)\n\n## Installation\n\n### Prerequisites\n\nBefore installing `awesome`, you will need to make sure you have the `stack` tool\ninstalled.\n\nArchlinux:\n\n```sh\n$ sudo pacman -S stack\n```\n\nUbuntu:\n\n```sh\n$ curl -sSL https://get.haskellstack.org/ | sh\n```\n\nOpensuse:\n\n```sh\n$ sudo zypper install stack\n```\n\n_Warning_: Opensuse Leap installs the version 1.5.0 which is buggy, see [documentation](https://docs.haskellstack.org/en/stable/install_and_upgrade/) to install a most recent version.\n\n### Downloading and Installing\n\nThe easiest way to install `awesome`, is to type:\n\n```sh\n$ git clone https://github.com/gribouille/awesome\n$ cd awesome\n$ stack install\n$ awesome --version\n```\n\n## Configuration\n\n`awesome` uses a JSON configuration file. The JSON structure\nis a tree of `Category` objects. \n\n`Category` properties:\n\n| Name        | Type       | Required | Description                     |\n| ----------- | ---------- | -------- | ------------------------------- |\n| `title`       | `string`     | yes      | Title of the category           |\n| `description` | `string`     | no       | Description of the category     |\n| `categories`  | `[Category]` | no       | Sub categories list.            |\n| `items`       | `[Item]`     | no       | List of links in the categories |\n\n\n`Item` properties:\n\n| Name        | Type   | Required | Description                                                                                                                  |\n| ----------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| `url`         | `string` | yes      | Url of the item. For the Github repository, the url can be abbreviated to `\u003cowner\u003e/\u003crepo\u003e` for example `gribouille/awesome`. |\n| `name`        | `string` | no       | Url name (automatically filled for Github repo).                                                                             |\n| `description` | `string` | no       | Url description (automatically filled for Github repo).                                                                      |\n\nThere is no limitation of nested categories.\n\nExample:\n\n```json\n{\n  \"title\": \"Python\",\n  \"description\": \"...\",\n  \"categories\": [\n    {\n      \"title\": \"Library\",\n      \"categories\": [\n        {\n          \"title\" : \"Algorithms and Design Patterns\",\n          \"description\": \"Python implementation of algorithms and design patterns.\",\n          \"items\": [\n            {\"url\": \"keon/algorithms\"},\n            {\"url\": \"tylerlaberge/PyPattyrn\"},\n            {\"url\": \"faif/python-patterns\"},\n            {\"url\": \"http://www.grantjenks.com/docs/sortedcontainers/\", \"name\": \"sortedcontainers\", \"description\": \"Fast, pure-Python implementation of SortedList, SortedDict, and SortedSet types.\"}\n          ]\n        }\n      ]\n    },\n    ...\n  ]\n}\n\n```\n\n## Usage\n\nTo generate an awesome list from a JSON file:\n\n```\n$ awesome config.json README.md\n```\n\nIf you have Github repository in your list, you will be quickly limited to do\nrequests to the Github API without a [Github token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line).\n\nTo create a Github token, you need a Github account and go to: https://github.com/settings/tokens and click on _Generate new token_.\n\nYou can use this token with the option `--token`:\n\n```\n$ awesome config.json README.md --token \u003cmy_token\u003e\n```\n\n## Contributing\n\nFeedback and contributions are very welcome.\n\n## License\n\nThis project is licensed under [Mozilla Public License Version 2.0](./LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgribouille%2Fawesome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgribouille%2Fawesome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgribouille%2Fawesome/lists"}