{"id":28841039,"url":"https://github.com/hfroot/script-reader","last_synced_at":"2026-02-13T06:36:36.263Z","repository":{"id":92073104,"uuid":"330045815","full_name":"hfroot/script-reader","owner":"hfroot","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-14T15:31:41.000Z","size":1222,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-19T15:52:58.962Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://act.root-access.me","language":"HTML","has_issues":true,"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/hfroot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-01-15T23:36:38.000Z","updated_at":"2023-11-14T15:32:52.000Z","dependencies_parsed_at":"2023-11-14T16:50:42.134Z","dependency_job_id":null,"html_url":"https://github.com/hfroot/script-reader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hfroot/script-reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Fscript-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Fscript-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Fscript-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Fscript-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hfroot","download_url":"https://codeload.github.com/hfroot/script-reader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfroot%2Fscript-reader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274988777,"owners_count":25386547,"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-13T02:00:10.085Z","response_time":70,"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":[],"created_at":"2025-06-19T15:42:52.763Z","updated_at":"2026-02-13T06:36:31.241Z","avatar_url":"https://github.com/hfroot.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dual language script reader\n\nA web app to facilitate language learning through reading scripts with various feature such as:\n\n* toggling the language/alternative language\n* peeking at a line in the alternative language\n\n## Getting started\n\n```\nnpm install\ncd src/scripts\npython html-to-json.py\ncd ../../\nnpm run start\n```\n\nTo deploy, make sure you have surge installed globally:\n\n```\nnpm install --global surge\nnpm run deploy\n```\n\n## Project structure\n\nTranslations for texts are saved in separate files, with the file name as `\u003cISO 639-1 language code\u003e.md`, in a folder for the play.\n\nI.e.\n\\\u003esrc\n\\\u003e\\\u003eassets\n\\\u003e\\\u003e\\\u003etexts\n\\\u003e\\\u003e\\\u003e\\\u003e[play title]\n\\\u003e\\\u003e\\\u003e\\\u003e\\\u003een.md\n\\\u003e\\\u003e\\\u003e\\\u003e\\\u003efr.md\n\\\u003e\\\u003e\\\u003e\\\u003e\\\u003e[ISO language code].md\n\nThe format of the play files is:\n\n```\n---\ntitle: The Tempest\nauthor: William Shakespeare\nlanguage: en\ncharacters:\n  - name: Prosporo\n    nickname: Pr\n    description: Prosporo is a flighty fellow.\n  - name: Beatrice\n    nickname: Bea\n    description: Beatrice never runs away from a fight.\n---\n# Act 1\n## Scene 1\n_Pr enters, pursued by a bear._\n__Pr__ To be _(__Pr__ stands)_, or not to be,\n    **that** is the question.\n__Bea__ It should actually be:\nTo be, or not to be,\n    that is the **question**.\n```\n\nThe example above demonstrates the core syntax.\n\nThe script's metadata is contained within the section beginning and ending with three hyphens. Characters can be given nicknames to use in the script to save time typing. When rendered, the nicknames will be expanded.\n\nThe script itself uses header styles to format the play structure. Stage directions, both standalone and in the middle of a line of speech, are surrounded by underscores. Character names to denote who is speaking or in stage directions are surrounded by double underscores. Italic and bold formatting of spoken text should use the asterix formatting. Whitespace is preserved. New lines without new character denotions are attributed to the same character as the previous line.\n\nIt is assumed that translations of the same text will have the same structure, for example that character speech, stage directions, and paragraphs will line up evenly. This is admittedly limited for more complex translations, but should work for my use cases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfroot%2Fscript-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhfroot%2Fscript-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfroot%2Fscript-reader/lists"}