{"id":26981167,"url":"https://github.com/acearchive/yahoo-groups-reader","last_synced_at":"2026-05-08T04:04:35.338Z","repository":{"id":117941828,"uuid":"479820355","full_name":"acearchive/yahoo-groups-reader","owner":"acearchive","description":"Browse archives of the now-defunct service Yahoo Groups","archived":false,"fork":false,"pushed_at":"2023-10-15T20:53:22.000Z","size":1181,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-03T15:44:55.379Z","etag":null,"topics":["archive","bootstrap","gulp","static-site","yahoo-groups"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"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/acearchive.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":"2022-04-09T19:09:01.000Z","updated_at":"2025-02-27T06:47:18.000Z","dependencies_parsed_at":"2023-10-16T08:46:56.137Z","dependency_job_id":"60ec91bf-969d-4af9-bbdf-c918ab09ba19","html_url":"https://github.com/acearchive/yahoo-groups-reader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/acearchive/yahoo-groups-reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acearchive%2Fyahoo-groups-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acearchive%2Fyahoo-groups-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acearchive%2Fyahoo-groups-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acearchive%2Fyahoo-groups-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acearchive","download_url":"https://codeload.github.com/acearchive/yahoo-groups-reader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acearchive%2Fyahoo-groups-reader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266285572,"owners_count":23905382,"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":["archive","bootstrap","gulp","static-site","yahoo-groups"],"created_at":"2025-04-03T15:33:08.668Z","updated_at":"2026-05-08T04:04:35.301Z","avatar_url":"https://github.com/acearchive.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yahoo-groups-reader\n\nThis is a CLI tool for rendering Yahoo Groups archives exported using\n[yahoo-group-archiver](https://github.com/IgnoredAmbience/yahoo-group-archiver).\n\nThis tool accepts a directory of RFC 822 `.eml` files as exported by\nyahoo-group-archiver and builds a static site for browsing the archive.\n\n[You can see an example of a generated site here.](https://hha.acearchive.lgbt/)\n\n## Features\n\n- Designed for accessibility.\n- Responsive and mobile-friendly.\n- Parses the plain-text email markup used by Yahoo Groups into beautiful and\n  semantic HTML.\n- Client-side full-text search of the archive. This can be disabled at build\n  time.\n- Supports both a light and dark theme based on your browser preferences.\n- Fast. Bundles and minifies assets, strips out unused CSS, prefetches links\n  using [instant.page](https://instant.page/), serves efficient cache headers,\n  uses etags and cache-busting filenames, and lazily loads the search index on\n  the first search when the browser requests sites to [reduce data\n  usage](https://wicg.github.io/savedata/).\n- Follows best security practices. [Scores 120/100 on Mozilla\n  Observatory](https://observatory.mozilla.org/analyze/hha.acearchive.lgbt)\n  when your hosting provider uses the `_headers` file.\n- Uses [Open Graph metadata](https://ogp.me/) for SEO and social media\n  previews. Generates a screenshot of the site at build time to show in media\n  previews.\n- Scores 100/100 in Performance, Accessibility, Best Practices, and SEO on\n  [Google Lighthouse](https://developers.google.com/web/tools/lighthouse).\n- You can customize the generated site with external links at build time via\n  CLI flags. Supports [Feather icons](https://feathericons.com/).\n\n## Usage\n\nThis tool has two components:\n\n1. A Go program in `parser/` which parses the archive and builds the HTML.\n2. A [gulp](https://gulpjs.com/) pipeline in `pipeline/` which builds,\n   minifies, and optimizes all the necessary CSS, JavaScript, and fonts.\n\n### Run the parser\n\nTo run the parser, you must first install [Go](https://go.dev/).\n\nTo run the parser:\n\n```\ncd ./parser\ngo run . ~/your-yahoo-group/email --title \"Your Yahoo Group\" --base \"https://your-yahoo-group.example.com/\"\n```\n\nTo see additional options for the parser:\n\n```\ngo run . --help\n```\n\nThis will produce a directory `../output` containing the generated HTML, but\nyou still need to run the asset pipeline to build the full site.\n\n### Run the asset pipeline\n\nTo run the asset pipeline, you must first install\n[npm](https://www.npmjs.com/).\n\nTo run the asset pipeline:\n\n```\ncd ./pipeline\nnpm install\nnpx gulp\n```\n\nThis will produce a directory `../public` containing the generated static site.\n\nThis directory will include a `_headers` file which instructs hosting providers\nlike [Netlify](https://docs.netlify.com/routing/headers/) and [Cloudflare\nPages](https://developers.cloudflare.com/pages/platform/headers/) of which HTTP\nresponse headers to serve for different paths.\n\nThe asset pipeline accepts the following environment variables:\n\n- `OUTPUT_DIR`: The path of the directory generated by the parser (default\n  `../output`).\n- `PUBLIC_DIR`: The path to build the static site at (default `../public`).\n- `DISALLOW_ROBOTS`: When set, a `robots.txt` will be generated that disallows\n  crawling. Otherwise, crawling is allowed for the whole site.\n\n## Gotchas\n\n- This tool was written specifically for the Yahoo Group [Haven for the Human\n  Amoeba](https://acearchive.lgbt/artifact/haven-for-the-human-amoeba/). While\n  the tool was designed to be generalizable to other Yahoo Groups, it hasn't\n  been tested with other data sets.\n- The way this tool parses plain-text email markup is best-effort and often\n  breaks. The markup used by Yahoo Groups is inconsistent and appears to have\n  changed many times over the course of its history. This tool is designed to\n  prefer false negatives (ignoring syntax constructs and leaving them as\n  literal text) over false positives (potentially mangling text by treating it\n  as markup).\n- Some messages in Yahoo Groups archives are multipart messages containing both\n  plain-text markup and HTML. However, given the long lifespan of Yahoo Groups,\n  messages in older groups may use long-deprecated HTML features. For this\n  reason, along with the security implications of rendering untrusted HTML and\n  accessibility concerns, this tool ignores HTML messages and always attempts\n  to parse the plain-text markup instead. Embedded HTML in plain-text markup is\n  printed as literal text.\n- This tool doesn't attempt to handle attachments in messages.\n- If a timestamp in a message is missing a time zone offset, it is assumed to\n  be UTC.\n- The way the full-text search is implemented currently may not scale well to\n  large archives. If performance is a problem, you can disable the search\n  functionality at build time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facearchive%2Fyahoo-groups-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facearchive%2Fyahoo-groups-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facearchive%2Fyahoo-groups-reader/lists"}