commit 227ebc0362b95b632ef1b64f6ab40a25ff0f43af equwal <truex@equwal.com> 2026-09-26 12:51:09 -0700 Link the other sites and apps of the author The footer of the book page and of the Subrep page lists the other sites and apps. The README has a More projects section.
README.md | 23 +++++++++++++++++++++++ frontend/index.html | 27 +++++++++++++++++++++++++++ frontend/subrep.html | 30 ++++++++++++++++++++++++++++++ tests/test_cross_links.py | 21 +++++++++++++++++++++ 4 files changed, 101 insertions(+)
diff --git a/README.md b/README.md index bf1dd17..c0f24b7 100644 --- a/README.md +++ b/README.md @@ -529,6 +529,29 @@ restarts at 0% for every chapter. Single files longer than about four hours can exhaust RAM, per upstream. Prefer chaptered `m4b`, or a folder of per-chapter files. +## More projects + +- SubRead is also [for Android](https://github.com/equwal/subread-android/releases/latest), + [for YouTube](https://github.com/equwal/subread-extension/releases/latest) + and [for KOReader](https://github.com/equwal/subread.koplugin). +- [SubRead Overlay](https://github.com/equwal/subread-overlay/releases/latest): subtitle lines over any Android media player. +- [SubRead Dictionary](https://github.com/equwal/subread-dictionary/releases/latest): a pop-up dictionary for Android that reads Yomitan dictionaries. +- [SubRead Anki](https://github.com/equwal/subread-anki): one tap makes an Anki card from any Android app. +- [Subrep](https://github.com/equwal/subrep-android/releases/latest): live captions of the sound of your phone. +- [Book Simulator](https://booksimulator.com/): a reading room for Aozora Bunko and Project Gutenberg books. +- [honjimaku.com](https://honjimaku.com/): subtitles for Japanese audiobooks. +- [sbm Sync](https://sbmsync.com/): your bookmarks, the same on every device, + with [sbm](https://github.com/equwal/sbm) for dmenu, + [sbm for Android](https://github.com/equwal/sbm-android/releases/latest) + and the [sbm add-on](https://github.com/equwal/sbm-extension/releases/latest) for Firefox and Chrome. +- [Rebind](https://github.com/equwal/rebind/releases): remap the hardware buttons of e-ink readers and Android, + with [Ink Recents](https://github.com/equwal/ink-recents/releases/latest), + [Ink Dim](https://github.com/equwal/ink-dim/releases/latest) + and [Ink Update](https://github.com/equwal/ink-update/releases/latest). +- [dickt.store](https://dickt.store/): language-learning tools, flashcards and web toys. +- [hentaibun.online](https://hentaibun.online/): learn kanbun and kobun. +- [Recently Written](https://recentlywritten.com/): the blog, and a list of [all projects](https://recentlywritten.com/projects.html). + ## Licence AGPL-3.0: see `LICENSE`. You may use, change and host this, and you must give diff --git a/frontend/index.html b/frontend/index.html index 949011b..08ff121 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -195,6 +195,33 @@ <a href="https://github.com/equwal/subread-android/releases/latest" target="_blank" rel="noopener">Android app</a> · <a href="https://ko-fi.com/truex" target="_blank" rel="noopener">Support on Ko-fi</a> </p> + <nav class="muted small" aria-label="More sites and apps"> + <p>More sites and apps: + <a href="https://booksimulator.com/" target="_blank" rel="noopener" title="A reading room for Aozora Bunko and Project Gutenberg books.">Book Simulator</a> · + <a href="https://honjimaku.com/" target="_blank" rel="noopener" title="Subtitles for Japanese audiobooks.">honjimaku.com</a> · + <a href="https://sbmsync.com/" target="_blank" rel="noopener" title="Your bookmarks, the same on every device.">sbm Sync</a> · + <a href="https://dickt.store/" target="_blank" rel="noopener" title="Language-learning tools, flashcards and web toys.">dickt.store</a> · + <a href="https://hentaibun.online/" target="_blank" rel="noopener" title="Learn kanbun and kobun.">hentaibun.online</a> · + <a href="https://mowimypopol.online/" target="_blank" rel="noopener" title="Archival study materials for Polish.">mowimypopol.online</a> · + <a href="https://alljapanesealltheti.me/" target="_blank" rel="noopener" title="All Japanese All The Time.">AJATT mirror</a> · + <a href="https://recentlywritten.com/" target="_blank" rel="noopener" title="The blog.">Recently Written</a> + </p> + <p>Apps: + <a href="https://github.com/equwal/subread-overlay/releases/latest" target="_blank" rel="noopener">SubRead Overlay</a> · + <a href="https://github.com/equwal/subread-dictionary/releases/latest" target="_blank" rel="noopener">SubRead Dictionary</a> · + <a href="https://github.com/equwal/subread-anki" target="_blank" rel="noopener">SubRead Anki</a> · + <a href="https://github.com/equwal/subread-extension/releases/latest" target="_blank" rel="noopener">SubRead for YouTube</a> · + <a href="https://github.com/equwal/subread.koplugin" target="_blank" rel="noopener">SubRead for KOReader</a> · + <a href="https://github.com/equwal/subrep-android/releases/latest" target="_blank" rel="noopener">Subrep</a> · + <a href="https://github.com/equwal/sbm-android/releases/latest" target="_blank" rel="noopener">sbm for Android</a> · + <a href="https://github.com/equwal/sbm-extension/releases/latest" target="_blank" rel="noopener">sbm add-on</a> · + <a href="https://github.com/equwal/rebind/releases" target="_blank" rel="noopener">Rebind</a> · + <a href="https://github.com/equwal/ink-recents/releases/latest" target="_blank" rel="noopener">Ink Recents</a> · + <a href="https://github.com/equwal/ink-dim/releases/latest" target="_blank" rel="noopener">Ink Dim</a> · + <a href="https://github.com/equwal/ink-update/releases/latest" target="_blank" rel="noopener">Ink Update</a> · + <a href="https://recentlywritten.com/projects.html" target="_blank" rel="noopener">All projects</a> + </p> + </nav> </footer> <dialog id="signin-dialog" class="modal"> diff --git a/frontend/subrep.html b/frontend/subrep.html index bc85785..1d4aa2b 100644 --- a/frontend/subrep.html +++ b/frontend/subrep.html @@ -89,6 +89,36 @@ free. It makes the captions on the phone.</p> </section> </main> +<footer> + <nav class="muted small" aria-label="More sites and apps"> + <p>More sites and apps: + <a href="/" title="Read along with an audiobook.">SubRead</a> · + <a href="https://booksimulator.com/" target="_blank" rel="noopener" title="A reading room for Aozora Bunko and Project Gutenberg books.">Book Simulator</a> · + <a href="https://honjimaku.com/" target="_blank" rel="noopener" title="Subtitles for Japanese audiobooks.">honjimaku.com</a> · + <a href="https://sbmsync.com/" target="_blank" rel="noopener" title="Your bookmarks, the same on every device.">sbm Sync</a> · + <a href="https://dickt.store/" target="_blank" rel="noopener" title="Language-learning tools, flashcards and web toys.">dickt.store</a> · + <a href="https://hentaibun.online/" target="_blank" rel="noopener" title="Learn kanbun and kobun.">hentaibun.online</a> · + <a href="https://mowimypopol.online/" target="_blank" rel="noopener" title="Archival study materials for Polish.">mowimypopol.online</a> · + <a href="https://alljapanesealltheti.me/" target="_blank" rel="noopener" title="All Japanese All The Time.">AJATT mirror</a> · + <a href="https://recentlywritten.com/" target="_blank" rel="noopener" title="The blog.">Recently Written</a> + </p> + <p>Apps: + <a href="https://github.com/equwal/subread-android/releases/latest" target="_blank" rel="noopener">SubRead for Android</a> · + <a href="https://github.com/equwal/subread-overlay/releases/latest" target="_blank" rel="noopener">SubRead Overlay</a> · + <a href="https://github.com/equwal/subread-dictionary/releases/latest" target="_blank" rel="noopener">SubRead Dictionary</a> · + <a href="https://github.com/equwal/subread-anki" target="_blank" rel="noopener">SubRead Anki</a> · + <a href="https://github.com/equwal/subread-extension/releases/latest" target="_blank" rel="noopener">SubRead for YouTube</a> · + <a href="https://github.com/equwal/subread.koplugin" target="_blank" rel="noopener">SubRead for KOReader</a> · + <a href="https://github.com/equwal/sbm-android/releases/latest" target="_blank" rel="noopener">sbm for Android</a> · + <a href="https://github.com/equwal/sbm-extension/releases/latest" target="_blank" rel="noopener">sbm add-on</a> · + <a href="https://github.com/equwal/rebind/releases" target="_blank" rel="noopener">Rebind</a> · + <a href="https://github.com/equwal/ink-recents/releases/latest" target="_blank" rel="noopener">Ink Recents</a> · + <a href="https://github.com/equwal/ink-dim/releases/latest" target="_blank" rel="noopener">Ink Dim</a> · + <a href="https://github.com/equwal/ink-update/releases/latest" target="_blank" rel="noopener">Ink Update</a> · + <a href="https://recentlywritten.com/projects.html" target="_blank" rel="noopener">All projects</a> + </p> + </nav> +</footer> <script type="module"> const $ = (id) => document.getElementById(id); const say = (text) => { $('note').textContent = text; }; diff --git a/tests/test_cross_links.py b/tests/test_cross_links.py new file mode 100644 index 0000000..3f6b5fb --- /dev/null +++ b/tests/test_cross_links.py @@ -0,0 +1,21 @@ +"""The pages link the other sites and apps of the author, but not SubRead +itself.""" + +from __future__ import annotations + +import pytest + +OTHERS = ( + 'href="https://booksimulator.com/"', + 'href="https://sbmsync.com/"', + 'href="https://github.com/equwal/subread-overlay/releases/latest"', + 'href="https://recentlywritten.com/projects.html"', +) + + +@pytest.mark.parametrize("path", ["/", "/subrep.html"]) +def test_the_page_links_the_other_sites_and_apps(client, path): + page = client.get(path).text + for link in OTHERS: + assert link in page, (path, link) + assert 'href="https://subread.space/"' not in page, path