फोकस बेहतर करने के लिए sentence-level highlight effect देने वाला Chrome extension विकसित किया है।
(github.com/hamsteak1488)वेबपेज को पढ़ना आसान बनाने के लिए sentence-level highlight और auto-scroll करने वाला एक Chrome extension विकसित किया है। डेमो इमेज GitHub पर हैं.
[Features]
- sentence-level highlight
- underline, outline, highlighter, spotlight जैसे कई effect.
- mouse click से मनचाहे sentence पर focus किया जा सकता है.
- keyboard arrow keys से पिछले sentence और अगले sentence पर focus ले जाया जा सकता है.
- auto-scroll
- focus किए गए sentence तक अपने-आप scroll होता है.
- nested scroll container में भी सही तरह काम करता है.
- scroll के बाद sentence स्क्रीन के भीतर किस ऊँचाई पर रखा जाए, यह उपयोगकर्ता सेट कर सकता है.
- versatility
- Google, GitHub, ChatGPT, Notion, Youtube, GeekNews, HackerNews, BOJ, Naver, LinkedIn, Tistory, Velog, SamsungSDS आदि कई environments में अच्छी तरह काम करते हुए देखा गया.
- अब तक real-time में DOM tree बदलने वाले मामलों को छोड़कर सभी वेबपेजों पर काम करने में सफल.
[विकास की पृष्ठभूमि]
इंटरव्यू की तैयारी करते समय मुझे कंपनियों से जुड़ी बहुत-सी खबरें पढ़नी पड़ती थीं, लेकिन कभी-कभी ध्यान भटक जाता था और पढ़ने की रफ्तार बहुत धीमी हो जाती थी. किसी तरह फोकस बनाए रखने के लिए मैं हर sentence पढ़ते समय mouse से उसके पहले अक्षर को drag करते हुए यह दिखाता रहता था कि मैं अभी कौन-सा sentence पढ़ रहा हूँ.
लेकिन हर sentence पढ़ने पर बार-बार mouse चलाना पड़ता था, इसलिए कलाई में दर्द होने लगा. साथ ही, मेज पर पैर रखकर और कुर्सी पीछे झुकाकर आरामदायक मुद्रा में बैठने पर mouse को ठीक से चलाना बहुत मुश्किल था.
मैंने ऐसा Chrome extension खोजा जो sentence-level पर पढ़ने की स्थिति दिखा सके, लेकिन popular items में ऐसा कुछ नहीं मिला. Web Store में काफी खोजने पर ऐसे ठीक दो extension मिले, लेकिन वे कई वेबपेजों पर काम नहीं करते थे, वेबपेज को बदल देते थे, sentence boundaries भी ठीक से नहीं पहचानते थे, और highlight style को मनचाहे तरीके से समायोजित नहीं किया जा सकता था — यह सब मुझे पसंद नहीं आया.
इसलिए मैंने सोचा कि पहले इसे अपने उपयोग के लिए खुद ही बना लूँ. फिर इसे लगातार सुधारते-सुधारते नतीजा काफी अच्छा निकल आया, और लगा कि शायद यह किसी और के भी काम आ सकता है, इसलिए इसे Web Store तक प्रकाशित कर दिया.
[विकास प्रक्रिया]
मुख्य sentence-splitting logic में DOM tree को preorder traversal से घूमते हुए text fragments से sentence की शुरुआत और अंत की position पहले से ढूँढकर रखने का तरीका अपनाया. मैंने हल्के में सोचा था, “बस full stop और question mark से sentence boundaries बाँट दीं तो काम खत्म हो जाएगा, है न?” लेकिन जब sentence के बीच , जैसे tags आ जाते थे, तो पूरा sentence एक ही text node में नहीं रहता था, इसलिए algorithm को काफी जटिल बनाना पड़ा.
auto-scroll feature मूल योजना में नहीं था, लेकिन sentence-splitting logic पूरा होने के बाद मुझे एहसास हुआ कि scroll नीचे ले जाने के लिए फिर से mouse पकड़ना पड़ेगा, और तभी इसे बनाना शुरू किया. मुझे लगा था कि auto-scroll तो बस scrollTo method इस्तेमाल करते ही हो जाएगा, लेकिन ChatGPT सहित कई वेबपेजों पर केवल साधारण scrollTo से काम नहीं होता था. साथ ही, scrollTo में unit sentence नहीं बल्कि node होता है, इसलिए जब एक text node में कई sentence हों, तो अगले sentence पर focus ले जाने के बाद भी scroll न हिलने की समस्या को हल करना पड़ा.
[फ़ीडबैक की विनती]
मुझे पता है कि इस तरह माँगना शायद ठीक न लगे, लेकिन अगर इसे लेकर आपकी रुचि जागे और आप एक बार इस्तेमाल करें, तो कृपया थोड़ा feedback दें. अब तक कई जगह इसे साझा करने की वजह से users की संख्या धीरे-धीरे बढ़ रही है, लेकिन अभी तक एक भी व्यक्ति ने review नहीं छोड़ा है.
मेरे लिए, जो यह खुद महसूस कर रहा है कि बिना किसी प्रतिक्रिया के रह जाना नकारात्मक टिप्पणी से भी ज़्यादा डरावना होता है, आलोचना, सुधार के सुझाव, bug reports, या कोई बहुत छोटी-सी बात भी — कुछ भी हो — अगर आप अपनी राय छोड़ दें तो मैं सच में आभारी रहूँगा.
GitHub: https://github.com/hamsteak1488/focus-anchor
Chrome Webstore: https://chromewebstore.google.com/detail/focus-anchor/…
4 टिप्पणियां
बहुत बढ़िया प्लगइन है!
मैं आमतौर पर माउस से टेक्स्ट चुनते हुए पढ़ता हूँ, इसलिए यह काफ़ी उपयोगी लग रहा है!
अगर vim key binding का भी support मिले तो अच्छा होगा!
और क्या Firefox support की भी कोई योजना है?
फ़िलहाल shortcut key assignment option को implement कर रहा हूँ और इसे अगले version में जोड़ने की योजना है!
Firefox support भी code refactoring पूरा होते ही तुरंत आगे बढ़ाऊँगा.
यह वाकई बहुत simple और अच्छा फीचर है!
इसे कंपनी में install करके लंबे समय तक इस्तेमाल करना चाहिए।
एक कमी बस यही है कि इसमें shortcut नहीं है।
extensions बढ़ते जा रहे हैं, इसलिए ऊपर pin की हुई चीज़ें बहुत ज़्यादा हो जाती हैं, तो shortcut होना भी अच्छा रहेगा।
आपकी राय के लिए धन्यवाद! मैं कोशिश करूँगा कि shortcut key फीचर को अगली version में ही जोड़ा जा सके।