Ich habe eine Chrome-Erweiterung entwickelt, die zur besseren Konzentration satzweise Hervorhebungen anwendet.
(github.com/hamsteak1488)Ich habe eine Chrome-Erweiterung entwickelt, die für besseres Lesen auf Webseiten satzweise Hervorhebungen und automatisches Scrollen bietet. Demo-Bilder gibt es auf GitHub.
[Features]
- Satzweise Hervorhebung
- Verschiedene Effekte wie Unterstreichung, Umrandung, Textmarker und Spotlight.
- Per Mausklick kann der gewünschte Satz fokussiert werden.
- Mit den Pfeiltasten der Tastatur kann der Fokus zum vorherigen oder nächsten Satz verschoben werden.
- Automatisches Scrollen
- Automatisches Scrollen zum fokussierten Satz.
- Funktioniert auch in verschachtelten Scroll-Containern präzise.
- Nutzer können einstellen, auf welcher Höhe im Bildschirm der Satz nach dem Scrollen platziert werden soll.
- Vielseitigkeit
- Es wurde bestätigt, dass die Erweiterung in verschiedenen Umgebungen gut funktioniert, darunter Google, GitHub, ChatGPT, Notion, Youtube, GeekNews, HackerNews, BOJ, Naver, LinkedIn, Tistory, Velog und SamsungSDS.
- Bislang funktioniert sie erfolgreich auf allen Webseiten, außer in Fällen, in denen sich der DOM-Baum in Echtzeit verändert.
[Hintergrund der Entwicklung]
Bei der Vorbereitung auf Bewerbungsgespräche musste ich viele unternehmensbezogene Nachrichten lesen, und manchmal ließ meine Konzentration nach, sodass mein Lesetempo sehr langsam wurde. Um meine Konzentration irgendwie aufrechtzuerhalten, habe ich beim Lesen jedes Satzes mit der Maus den ersten Buchstaben markiert und so ständig angezeigt, bei welchem Satz ich gerade war.
Allerdings musste ich dann bei jedem Satz wieder die Maus bedienen, und das tat meinem Handgelenk weh. Außerdem war es in einer bequemen Haltung mit den Füßen auf dem Schreibtisch und nach hinten gekipptem Stuhl sehr schwierig, die Maus präzise zu bewegen.
Ich suchte nach einer Chrome-Erweiterung, die die aktuelle Leseposition satzweise markieren kann, aber unter den populären Ergebnissen fand ich nichts Passendes. Nach längerem Suchen im Web Store fand ich zwar genau zwei, aber sie funktionierten auf vielen Webseiten nicht, veränderten die Webseiten selbst, trennten Sätze nicht präzise und erlaubten keine flexible Anpassung des Hervorhebungsstils — das gefiel mir nicht.
Also begann ich, sie einfach für den Eigengebrauch selbst zu bauen. Während ich sie danach weiter verbessert habe, entstand ein ziemlich ordentliches Ergebnis, und ich dachte, dass vielleicht auch andere sie nützlich finden könnten, weshalb ich sie schließlich sogar im Web Store veröffentlicht habe.
[Entwicklungsprozess]
Für die zentrale Satzsegmentierungslogik habe ich einen Ansatz verwendet, bei dem der DOM-Baum in Preorder traversiert wird und aus Textfragmenten Start- und Endpositionen der Sätze ermittelt werden. Ich dachte zunächst naiv: „Es reicht doch wahrscheinlich, Sätze grob an Punkten und Fragezeichen zu trennen, oder?“ Aber wenn Tags wie ``, zwischen Sätzen eingefügt sind, befindet sich nicht der gesamte Satz in einem einzelnen Textknoten, sodass ich den Algorithmus deutlich komplexer gestalten musste.
Die Funktion für automatisches Scrollen war ursprünglich gar nicht geplant. Nachdem die Satzsegmentierungslogik fertig war, wurde mir jedoch klar, dass ich zum Herunterscrollen wieder zur Maus greifen musste, woraufhin ich mit der Implementierung begann. Ich dachte, für das automatische Scrollen würde es reichen, einfach die Methode scrollTo zu verwenden, aber auf vielen Webseiten, darunter ChatGPT, funktionierte das nicht zuverlässig nur mit einfachem scrollTo. Außerdem arbeitet scrollTo mit Knoten als Einheit und nicht mit Sätzen, sodass ich auch das Problem lösen musste, dass sich das Scrollen nicht bewegt, wenn sich mehrere Sätze in einem einzelnen Textknoten befinden und der Fokus zum nächsten Satz wechselt.
[Bitte um Feedback]
Ich weiß, dass so ein Betteln vielleicht nicht ganz angemessen ist, aber falls jemand Interesse hat und es einmal ausprobiert, würde ich mich sehr über Feedback freuen. Die Nutzerzahl steigt zwar dank meiner bisherigen Werbung an verschiedenen Stellen langsam an, aber bislang hat noch kein einziger Nutzer eine Rezension hinterlassen.
Da ich gerade selbst erlebe, dass ausbleibende Reaktionen noch beängstigender sein können als negative Kommentare, wäre ich wirklich sehr dankbar für jede Rückmeldung — Kritik, Verbesserungsvorschläge, Bugreports oder auch ganz kleine Anmerkungen.
GitHub: https://github.com/hamsteak1488/focus-anchor
Chrome Webstore: https://chromewebstore.google.com/detail/focus-anchor/…
4 Kommentare
Ein wirklich großartiges Plugin!
Ich lese oft, während ich den Text mit der Maus markiere, und es ist wirklich sehr nützlich!
Es wäre toll, wenn auch Vim-Keybindings unterstützt würden!
Und ist vielleicht auch Unterstützung für Firefox geplant?
Ich implementiere derzeit die Option zur Zuweisung von Tastenkürzeln und werde sie in der nächsten Version hinzufügen!
Sobald ich das Code-Refactoring abgeschlossen habe, werde ich mich außerdem direkt an die Firefox-Unterstützung machen.
Wirklich eine sehr einfache und gute Funktion!
Ich werde sie im Unternehmen installieren und dauerhaft nutzen.
Ein kleiner Wermutstropfen ist, dass es keinen Shortcut gibt.
Da sich bei mir immer mehr Erweiterungen ansammeln und oben schon zu viel angeheftet ist, wäre ein Tastenkürzel auch schön.
Danke für Ihr Feedback! Ich werde daran arbeiten, die Shortcut-Funktion direkt in der nächsten Version hinzuzufügen.