{"id":13614830,"url":"https://github.com/hilverd/glossary-page-template","last_synced_at":"2026-03-02T10:31:38.542Z","repository":{"id":37812871,"uuid":"410363536","full_name":"hilverd/glossary-page-template","owner":"hilverd","description":"A single HTML page with a built-in editor for creating a glossary that can be hosted anywhere.","archived":false,"fork":false,"pushed_at":"2025-11-17T22:11:22.000Z","size":3311,"stargazers_count":111,"open_issues_count":4,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-18T00:10:23.995Z","etag":null,"topics":["glossary"],"latest_commit_sha":null,"homepage":"https://glossary.page/template","language":"Elm","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/hilverd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2021-09-25T19:26:08.000Z","updated_at":"2025-11-17T22:11:26.000Z","dependencies_parsed_at":"2023-11-14T23:26:11.855Z","dependency_job_id":"d964e362-6041-4ab8-950a-172e21f4c975","html_url":"https://github.com/hilverd/glossary-page-template","commit_stats":null,"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"purl":"pkg:github/hilverd/glossary-page-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilverd%2Fglossary-page-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilverd%2Fglossary-page-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilverd%2Fglossary-page-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilverd%2Fglossary-page-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hilverd","download_url":"https://codeload.github.com/hilverd/glossary-page-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hilverd%2Fglossary-page-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29998513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T09:59:02.300Z","status":"ssl_error","status_checked_at":"2026-03-02T09:59:02.001Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["glossary"],"created_at":"2024-08-01T20:01:06.116Z","updated_at":"2026-03-02T10:31:38.521Z","avatar_url":"https://github.com/hilverd.png","language":"Elm","funding_links":[],"categories":["Elm"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://glossary.page/template\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"img/logo-white.svg\"\u003e\n      \u003cimg width=\"180\" alt=\"An open book with the letters A and Z visible and a magnifying glass hovering on top\" src=\"img/logo.svg\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Glossary Page Template\n\nThis project makes it easy to create a glossary as a single HTML page that can be hosted anywhere.\n\n## Features\n\n* Includes integrated (single-user) editor UI that saves changes back to the HTML file — requires [Node.js](https://nodejs.org).\n* Represents a glossary as a standard [`dl`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl) element for accessibility and portability.\n* Supports different screen sizes using responsive design and includes dark mode support.\n* Write in a Markdown-based syntax.\n* Supports math typesetting using [KaTeX](https://katex.org/).\n\n## Getting Started\n\nDownload [`glossary.html`](https://github.com/hilverd/glossary-page-template/releases/latest/download/glossary.html) from the [latest release](https://github.com/hilverd/glossary-page-template/releases/latest) and open it in a browser.\n\n### Static assets\n\nThe HTML file points to `glstatic.net` for static assets hosted using Cloudflare:\n\n```\nhttps://glstatic.net/glossary-page-template@5/glossary.min.js\nhttps://glstatic.net/glossary-page-template@5/glossary.min.css\n```\n\nThe above assets are cached for 24 hours and get updated with any releases with a [major version number](https://semver.org/) of `5`. Alternatively you can change the URL to point to e.g. `@5.4` which gets all patch releases with version numbers of the form `5.4.x`. You can also use a specific version such as `5.4.0` — these are cached forever.\n\n#### Security considerations\n\nThe approach above is the easiest one, but the [safest option](https://css-tricks.com/potential-dangers-of-third-party-javascript/) would be to either host the static assets yourself and/or use [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) (SRI) by specifying hashes for the static assets.\n\nTo host the static assets yourself, you can get them from the `.tar.gz` package in a release, which also contains a glossary template file that uses them.\n\nTo use SRI, change the two lines at the end of the `\u003chead\u003e` element so they\n\n* point to a specific version of the JS and CSS files,\n* have a `crossorigin` attribute, and\n* have an `integrity=\"hash-here\"` attribute.\n\nYou can get the `hash-here` values from the [release notes](https://github.com/hilverd/glossary-page-template/releases/latest).\n\n## Known Limitations\n\n* The integrated editor UI is meant to be run and used by a single local user only. It is not designed to be exposed to untrusted users.\n* In its current state this project is not very suitable for glossaries of more than (say) 500 items. At the moment everything is stored in a single HTML file, and the DOM size and browser memory usage grows as the number of items does. (I'm planning to address this.)\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n## Acknowledgments\n\nThis project is mainly written in [Elm](https://elm-lang.org/) and relies on [elm-markdown](https://github.com/dillonkearns/elm-markdown) for parsing and rendering Markdown. The UI is based on components from [Tailwind UI](https://tailwindui.com/). Most icons are from either [Heroicons](https://heroicons.com/) or [Lucide](https://lucide.dev/).\n\nThanks to everyone who contributed suggestions for improvements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhilverd%2Fglossary-page-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhilverd%2Fglossary-page-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhilverd%2Fglossary-page-template/lists"}