{"id":28627069,"url":"https://github.com/openanime/esl","last_synced_at":"2026-02-05T22:01:23.554Z","repository":{"id":297103881,"uuid":"977139342","full_name":"OpenAnime/ESL","owner":"OpenAnime","description":"Expressive Subtitle Language (ESL) is a human-readable subtitle format based on HCL. It supports core styling, positioning, and karaoke features from ASS, but omits complex graphics and transitions. Its chunked structure simplifies authoring, validation, and integration into streaming workflows.","archived":false,"fork":false,"pushed_at":"2025-06-06T14:51:02.000Z","size":14,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-12T09:05:57.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/OpenAnime.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}},"created_at":"2025-05-03T14:12:50.000Z","updated_at":"2025-06-06T14:51:04.000Z","dependencies_parsed_at":"2025-06-08T04:03:16.524Z","dependency_job_id":null,"html_url":"https://github.com/OpenAnime/ESL","commit_stats":null,"previous_names":["openanime/esl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenAnime/ESL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2FESL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2FESL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2FESL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2FESL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenAnime","download_url":"https://codeload.github.com/OpenAnime/ESL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2FESL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29135918,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T21:59:57.939Z","status":"ssl_error","status_checked_at":"2026-02-05T21:59:57.628Z","response_time":65,"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":[],"created_at":"2025-06-12T09:05:56.424Z","updated_at":"2026-02-05T22:01:23.527Z","avatar_url":"https://github.com/OpenAnime.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/c095b953-8dcc-4567-b195-982e439ae003\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e\n  ESL: Expressive Subtitle Language\n\u003c/h1\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**ESL** is an open-source initiative defining a rich, human-readable subtitle format designed for expressive and dynamic text presentations. It leverages the clarity of HCL (HashiCorp Configuration Language) to provide a comprehensive framework for timed text, intricate styling, complex motion effects, and karaoke.\n\n## Key Features\n\n*   **Expressive Styling:** Hierarchical styles, per-cue overrides, fine-grained control over fonts, colors, borders, shadows, and alignment.\n*   **Advanced Motions:** Define reusable, multi-property animations (opacity, position, scale, rotation, shear) with various easing functions and precise timing.\n*   **Karaoke Support:** Built-in syntax for word-by-word or syllable-by-syllable text reveal.\n*   **Human-Readable Syntax:** Based on HCL, making files easy to write, read, debug, and version control.\n*   **Structured \u0026 Modular:** Logical organization into `meta`, `style`, `motion`, and `cue` blocks promotes maintainability.\n*   **Extensible:** Designed with future enhancements in mind.\n\n## Specification\n\nThe definitive guide to the ESL format, its syntax, and semantics can be found in the official specification:\n\n➡️ **[Read the ESL Specification (Version 1.1)](https://github.com/OpenAnime/ESL/wiki)**\n\nThis document details all available blocks, attributes, data types, and conventions for creating valid ESL files.\n\n## Examples\n\n**A simple ESL file (`example.esl`):**\n```hcl\nmeta {\n  title       = \"Simple Demo\"\n  esl_version = \"1.1\"\n  resolution  = [1920, 1080]\n  default_style = \"default\"\n}\n\nstyle \"default\" {\n  font_family = \"Arial\"\n  font_size   = 48\n  color       = \"#FFFFFF\"\n  align       = \"bottom-center\"\n  shadow      = [2, 2, 3, \"#00000080\"]\n}\n\nmotion \"fade_in_quick\" {\n  duration = 300\n  opacity  = 1\n}\n\ncue {\n  in    = 1000\n  out   = 5000\n  opacity = 0\n  text  = \"Hello, World!\"\n  style = \"default\"\n  motion_in = [\"fade_in_quick\"]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenanime%2Fesl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenanime%2Fesl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenanime%2Fesl/lists"}