{"id":16565270,"url":"https://github.com/ltguillaume/ureader","last_synced_at":"2026-04-16T16:03:29.178Z","repository":{"id":47261180,"uuid":"489765608","full_name":"ltguillaume/ureader","owner":"ltguillaume","description":" Minimal code to present a preformatted plain text (or Markdown) document for comfortable reading on mobile and desktop.","archived":false,"fork":false,"pushed_at":"2024-04-02T08:24:04.000Z","size":351,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-05T08:36:21.902Z","etag":null,"topics":["ebook","ebook-reader","markdown","reader","reader-ui","reading"],"latest_commit_sha":null,"homepage":"https://codeberg.org/ltguillaume/ureader","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ltguillaume.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["buymeacoff.ee/ltGuillaume"]}},"created_at":"2022-05-07T19:36:00.000Z","updated_at":"2024-09-17T19:00:58.000Z","dependencies_parsed_at":"2025-01-15T20:37:49.342Z","dependency_job_id":"c844ae67-7367-4e4f-8335-7cfbc0ce0992","html_url":"https://github.com/ltguillaume/ureader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ltguillaume/ureader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ltguillaume%2Fureader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ltguillaume%2Fureader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ltguillaume%2Fureader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ltguillaume%2Fureader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ltguillaume","download_url":"https://codeload.github.com/ltguillaume/ureader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ltguillaume%2Fureader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31893265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T11:36:10.202Z","status":"ssl_error","status_checked_at":"2026-04-16T11:36:09.652Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["ebook","ebook-reader","markdown","reader","reader-ui","reading"],"created_at":"2024-10-11T20:46:38.969Z","updated_at":"2026-04-16T16:03:29.158Z","avatar_url":"https://github.com/ltguillaume.png","language":"PHP","funding_links":["buymeacoff.ee/ltGuillaume"],"categories":[],"sub_categories":[],"readme":"# uReader\r\nby ltGuillaume: [Codeberg](https://codeberg.org/ltGuillaume) | [GitHub](https://github.com/ltGuillaume) | [Buy me a beer](https://buymeacoff.ee/ltGuillaume) 🍺\r\n\r\nMinimal code to present a preformatted plain text document for comfortable reading on mobile and desktop. Some Markdown syntax is supported.\r\n\r\n![Screenshot](SCREENSHOT.gif)\r\n\r\n## Overview\r\n- Pagination\r\n- Font scaling\r\n- Support for subfolders/chapters\r\n- Keyboard, touch and mouse wheel navigation\r\n- 3 themes: reading mode (blue background), dark and light\r\n- NoScript support (without pagination, font scaling and theme switching)\r\n- Partial Markdown support `#, ##, __, **, [](), ![]()` and HTTP(S) links\r\n- Optional protection with a watchword, passed on directly as URL parameter or entered via a prompt\r\n\r\n## Getting started\r\n1. Copy the files to a server with PHP7+\r\n1. (Optional) Copy `config.php.template` to `config.php` and set the variables to your liking\r\n\t- For Apache, use `.htaccess` to prevent access to the contents directly\r\n\t- For nginx, add something like this to do the same:\r\n\t```\r\n    location / {\r\n      rewrite ^([^.\\?]*[^/])$ $1/ permanent;  # Add trailing slash for relative links\r\n      rewrite ^ /index.php;                   # Prevent access to anything except for index.php\r\n    }\r\n\t```\r\n1. Put the preformatted text in `contents.txt`, or Markdown formatted text in `contents.md`\r\n1. For offering multiple books/chapters you can put `contents.txt`/`contents.md` into subfolders (and optionally add a `config.php` for per-book settings)\r\n1. To share links that include the watchword, append `#ww=your%20watchword` to the URL (needs JavaScript to be enabled). The watchword will not be included in the server logs.\r\n\r\n## Credits\r\n* The [Fanwood Text](https://www.theleagueofmoveabletype.com/fanwood) font by Barry Schwartz","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fltguillaume%2Fureader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fltguillaume%2Fureader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fltguillaume%2Fureader/lists"}