{"id":13593388,"url":"https://github.com/ttybitnik/diego","last_synced_at":"2025-09-02T13:13:08.797Z","repository":{"id":224827264,"uuid":"764316581","full_name":"ttybitnik/diego","owner":"ttybitnik","description":"A CLI tool for importing and utilizing exported social media data from popular services on Hugo websites.","archived":false,"fork":false,"pushed_at":"2025-08-28T01:16:40.000Z","size":455,"stargazers_count":36,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-28T08:25:52.969Z","etag":null,"topics":["cobra","golang","hugo","hugo-utility","viper"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ttybitnik.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/funding.yaml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"buy_me_a_coffee":"ttybitnik"}},"created_at":"2024-02-27T21:26:37.000Z","updated_at":"2025-08-28T01:16:36.000Z","dependencies_parsed_at":"2024-03-27T15:28:48.215Z","dependency_job_id":"258d6384-ec84-4e77-b403-36ac6b4a0b6f","html_url":"https://github.com/ttybitnik/diego","commit_stats":{"total_commits":123,"total_committers":3,"mean_commits":41.0,"dds":"0.19512195121951215","last_synced_commit":"543aae26c831f7da29927b44b69031083fd8429c"},"previous_names":["ttybitnik/diego"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/ttybitnik/diego","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttybitnik%2Fdiego","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttybitnik%2Fdiego/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttybitnik%2Fdiego/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttybitnik%2Fdiego/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttybitnik","download_url":"https://codeload.github.com/ttybitnik/diego/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttybitnik%2Fdiego/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273288236,"owners_count":25078687,"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-09-02T02:00:09.530Z","response_time":77,"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":["cobra","golang","hugo","hugo-utility","viper"],"created_at":"2024-08-01T16:01:19.846Z","updated_at":"2025-09-02T13:13:08.788Z","avatar_url":"https://github.com/ttybitnik.png","language":"Go","funding_links":["https://buymeacoffee.com/ttybitnik"],"categories":["Go"],"sub_categories":[],"readme":"# Diego: a data importer extension for Hugo\n\n![diego](assets/diego_header.png)\n\nDiego integrates with [Hugo](https://gohugo.io/) as a CLI tool to assist in importing and utilizing exported social media data from various services on Hugo websites.\n\n[![release](https://img.shields.io/github/v/release/ttybitnik/diego)](https://github.com/ttybitnik/diego/releases/latest)\n[![ci/cd](https://github.com/ttybitnik/diego/actions/workflows/cicd.yaml/badge.svg)](https://github.com/ttybitnik/diego/actions/workflows/cicd.yaml)\n[![go report card](https://goreportcard.com/badge/github.com/ttybitnik/diego)](https://goreportcard.com/report/github.com/ttybitnik/diego)\n[![conventional commits](https://img.shields.io/badge/conventional%20commits-1.0.0-%23FE5196?logo=conventionalcommits\u0026logoColor=white)](https://conventionalcommits.org)\n\n## Overview\n\n`diego` is a CLI tool designed to import official `CSV` and `JSON` data files from popular services like **Goodreads**, **IMDb**, **Instapaper**, **Letterboxd**, **Spotify**, and **YouTube** into **Hugo**.\n\n`diego` provides:\n- Automatic `CSV` and `JSON` conversion into [Hugo data files](https://gohugo.io/methods/site/data/)\n- Support for all Hugo data file formats\n- Easy data management in a human-readable format (`YAML`)\n- Automatic generation of Hugo shortcodes for imported data\n- Optional scrape capabilities for fetching missing fields\n- Flags suited for scripting and pipelines\n- Persistent configuration\n\n### Showcase\n\nFor a basic workflow example using `diego` to import data, see the [demonstration](docs/demonstration.md).\n\nFor real usage examples, you can check the collections section on my personal **Hugo** website. I use `diego` to showcase my [favorite albums](https://eternodevir.com/palimpsests/favorites/albums/), [films](https://eternodevir.com/palimpsests/favorites/films/), [TV shows](https://eternodevir.com/palimpsests/favorites/tv-shows/), [music videos](https://eternodevir.com/palimpsests/favorites/music-videos/), and [books](https://eternodevir.com/palimpsests/favorites/books/).\n\n## Installation\n\nInstalling `diego` is easy. You can either compile it from source or download the official binaries from the [releases](https://github.com/ttybitnik/diego/releases).\n\n\u003e [!TIP]\n\u003e After following the instructions for your preferred installation method, run `diego -v` to test the installed version.\n\n### From source\n\nIf the target system has `go` installed, compile and install `diego` using the following command:\n\n```shell\ngo install github.com/ttybitnik/diego@latest\n```\n\n### From releases\n\nDownload the [latest release](https://github.com/ttybitnik/diego/releases/latest) for your system and move its binary and man pages to the appropriate system paths. Use one of the commands below to simplify this process:\n\n\u003e [!TIP]\n\u003e In case of uncertainty about the machine architecture, run `uname -m` to check it.\n\n#### Linux\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ex86_64\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Linux_x86_64.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003earm64\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Linux_arm64.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ei386\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Linux_i386.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\n#### FreeBSD\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ex86_64\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Freebsd_x86_64.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003earm64\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Freebsd_arm64.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ei386\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Freebsd_i386.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\n#### MacOS\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ex86_64\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Darwin_x86_64.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003earm64\u003c/b\u003e\u003c/summary\u003e\n\n```shell\ncurl -L https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Darwin_arm64.tar.gz | tar -xzvf - -C /tmp/ \u0026\u0026 cp /tmp/diego ~/.local/bin/ \u0026\u0026 cp /tmp/man/*.1 ~/.local/share/man/man1/ # x-release-please-version\n```\n\n\u003c/details\u003e\n\n#### Windows\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ex86_64\u003c/b\u003e\u003c/summary\u003e\n\n```powershell\nInvoke-WebRequest -Uri \"https://github.com/ttybitnik/diego/releases/latest/download/diego_1.0.7_Windows_x86_64.zip\" -OutFile \"$env:USERPROFILE\\Downloads\\diego_x86_64.zip\" # x-release-please-version\n```\n\n\u003c/details\u003e\n\n## Usage\n\n### Getting started\n\nOnce installed, run `diego` and follow the instructions to start using it.\n\nRun either `diego help [command]` or `diego [command] -h` to discover more about a specific command.\n\nFor complete details on using `diego`, see the [user guide](docs/user_guide.md).\n\n### Commands\n\n- [diego completion](docs/user_guide.md#diego-completion) :: generate the autocompletion script for the specified shell\n- [diego import](docs/user_guide.md#diego-import) :: import data from various services into Hugo\n  - [diego import goodreads](docs/user_guide.md#diego-import-goodreads) :: import data from Goodreads\n  - [diego import imdb](docs/user_guide.md#diego-import-imdb) :: import data from IMDb\n  - [diego import instapaper](docs/user_guide.md#diego-import-instapaper) :: import data from Instapaper\n  - [diego import letterboxd](docs/user_guide.md#diego-import-letterboxd) :: import data from Letterboxd\n  - [diego import spotify](docs/user_guide.md#diego-import-spotify) :: import data from Spotify\n  - [diego import youtube](docs/user_guide.md#diego-import-youtube) :: import data from YouTube\n- [diego set](docs/user_guide.md#diego-set) :: set a configuration option\n  - [diego set all](docs/user_guide.md#diego-set-all) :: enable or disable the all flag by default\n  - [diego set defaults](docs/user_guide.md#diego-set-defaults) :: restore Diego default settings\n  - [diego set format](docs/user_guide.md#diego-set-format) :: set output format for the Hugo data file (default \"yaml\")\n  - [diego set hugodir](docs/user_guide.md#diego-set-hugodir) :: set path to the Hugo directory (default \".\")\n  - [diego set overwrite](docs/user_guide.md#diego-set-overwrite) :: enable or disable the overwrite flag by default\n  - [diego set scrape](docs/user_guide.md#diego-set-scrape) :: enable or disable the scrape flag by default\n  - [diego set shortcode](docs/user_guide.md#diego-set-shortcode) :: enable or disable the shortcode flag by default\n- [diego settings](docs/user_guide.md#diego-settings) :: show current settings\n\n### Supported services and files\n\n- [Goodreads](docs/user_guide.md#goodreads)\n- [IMDb](docs/user_guide.md#imdb)\n- [Instapaper](docs/user_guide.md#instapaper)\n- [Letterboxd](docs/user_guide.md#letterboxd)\n- [Spotify](docs/user_guide.md#spotify)\n- [YouTube](docs/user_guide.md#youtube)\n\n## Contributing\n\nTo request support for a new service or file, submit a [feature request](https://github.com/ttybitnik/diego/issues/new?assignees=\u0026labels=enhancement\u0026projects=\u0026template=feature_request.md\u0026title=) with a small sample of the official exported file.\n\nIn case of unexpected behavior, please open a [bug report](https://github.com/ttybitnik/diego/issues/new?assignees=\u0026labels=bug\u0026projects=\u0026template=bug_report.md\u0026title=).\n\nFor matters requiring privacy, such as security-related reports or patches, check the [security policy](SECURITY.md).\n\nTo contribute to `diego` development, see the [contributing guidelines](CONTRIBUTING.md).\n\n### Mailing list\n\n[Email workflow](https://git-send-email.io/) is also available.\n\nFeel free to send patches, questions, or discussions related to `diego` to the [~ttybitnik/general mailing list](https://lists.sr.ht/~ttybitnik/general).\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 (GPL-3.0), **unless an exception is made explicit in context**. The GPL is a copyleft license that guarantees freedom to use, modify, and distribute software. It ensures that users have control over the software they use and promotes collaboration and sharing of knowledge. By requiring that derivative works also be licensed under the GPL, the freedoms it provides are extended to future generations of users and developers.\n\nSee the `COPYING` file for more information.\n\nThe source code for this project is available at \u003chttps://github.com/ttybitnik/diego\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttybitnik%2Fdiego","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttybitnik%2Fdiego","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttybitnik%2Fdiego/lists"}