MathReader & LaTeX Grabber, web ortamında işlenen bilimsel literatür ile yerel dijital doküman iş akışları arasındaki kritik boşluğu doldurmak üzere tasarlanmış, gizlilik odaklı, özelleşmiş bir tarayıcı uzantısıdır. Manifest V3 standardı üzerinde inşa edilen araç, doküman durumunu veya kullanıcı etkileşimlerini harici telemetri uç noktalarına iletmeden, tamamen istemci çalışma zamanı (runtime) dahilinde çalışır.
Bu eklenti henüz yayınlanmamıştır. Yayınlandığında, bu yazı üzerinden de indirilebilecektir. Bu yazı, Comprehensive Technical & Functional Review of MathReader yazısının Türkçe çevirisidir.
Uzantı, hesaplamalı bilimlerde süregelen bir sürtünme noktasını hedefler: matematiksel açıdan yoğun web içeriklerinin (baskı öncesi makaleler/ön baskılar, forum başlıkları, referans ansiklopedileri ve hesaplamalı not defterleri gibi) bozulmaya uğramadan ayıklanması, normalleştirilmesi ve Belirteçleştirilmiş CommonMark (Markdown), Bağımsız Stillendirilmiş HTML ve Vektör Korumalı Yazdırma PDF'i dahil olmak üzere taşınabilir, yayın kalitesindeki hedef biçimlere anlamsal olarak arşivlenmesi.
1. Temel İşlevsel Taksonomi: Uzantı Nasıl Çalışır?
Uygulamanın sistematik bir analizi, tarayıcı çalışma zamanı boyunca birlikte çalışan beş birincil alt sistemi ortaya koymaktadır:
A. Evrensel Matematiksel Tespit Motoru
Uzantı, önde gelen her matematiksel web mizanpaj sisteminde işlenmiş düğümleri eşleştiren bir ortam DOM denetim yordamı çalıştırır:
KaTeXişleme ağaçları (.katex,.katex-display)MathJaxsürüm 2 ve 3 çıktı sarmalayıcıları (mjx-container,.MathJax,.MathJax_Display)Temmlyapıları (.temml)- W3C Yerel
<math>(MathML) alt ağaçları LaTeXMLçıktıları (.ltx_Math,.ltx_equation)- MediaWiki matematik uzantıları (
.mwe-math-elementile birlikte yüksek DPI satır içi/blok SVG ve yedek görsel temsilleri)
Tanınan herhangi bir matematiksel bileşenin üzerine imleç getirildiğinde, uzantı düşük ek yüke sahip, mutlak konumlandırılmış (absolute-positioned) bir kayan arayüz düğümü (.lyc-overlay) yerleştirir. Bu düğüm, anlık görsel geri bildirim (Kopyalandı ✓) ile sürtünmesiz bir pano kopyalama deneyimi sağlar ve genel bir klavye kısayolu (Alt+C) aracılığıyla da tam olarak erişilebilirdir.
B. Özyinelemeli Soyut Sözdizimi Ağacı (AST) MathML-LaTeX Dönüştürücüsü (Transpiler)
Web kazımada (scraping) karşılaşılan önemli bir zorluk, platformların ham TeX açıklamalarını işlenen çıktıdan soyarak geriye yalnızca yapısal MathML bırakması durumunda ortaya çıkar. Dahili mathmlToLatex() dönüştürücüsü, doğrudan tarayıcı DOM'u üzerinde özyinelemeli düğüm analizi gerçekleştirir:
- Rasyonel Kesirler ve Kökler: Pay ve payda sınırlarını
\frac{}{}kullanarak, keyfi kök derecelerini ise\sqrt[]{}aracılığıyla doğru şekilde dengeler. - Çok Düzeyli İndis ve Üsler: Karmaşık alt simge, üst simge ve eşzamanlı limit yerleşimlerini
msub,msup,msubsup,munder,movervemunderoveretiketleri aracılığıyla çözümler. - Vurgu ve Vektör Eşleme: Üst işleçleri
\vec{},\hat{},\bar{},\dot{},\ddot{}ve genelleştirilmiş\overset{}{}/\underset{}{}yapıları dahil olmak üzere biçimsel TeX niteleyicilerine doğru biçimde dönüştürür. - Tablosal ve Doğrusal Sistemler:
<mtable>,<mtr>ve<mtd>yapılandırmalarını kurallı (canonical)\begin{matrix} ... \end{matrix}LaTeX tablo sözdizimine dönüştürür. - Kapsamlı Sembol ve Matematik Tahtası (Blackboard) Normalizasyonu: Yunan alfabesinin tamamı (küçük ve büyük harf), kalkülüs temel kavramları, çevre integralleri ve tahta-kalın (blackboard-bold) küme gösterimleri (
\mathbb{R},\mathbb{C},\mathbb{N},\mathbb{Z},\mathbb{Q}) dahil olmak üzere yüzlerce Unicode varlığını LaTeX komutlarına eşler.
C. Sezgisel İçerik Yalıtımı ve Platforma Özel Bağdaştırıcılar
Gereksiz doküman hiyerarşilerini de yakalayan ilkel kazıyıcıların aksine, bu uzantı doküman topolojisini otomatik puanlama yoluyla değerlendirir:
- StackExchange / StackOverflow Ailesi Bağdaştırıcısı: Kök soru gövdesini yalıtır, doğrulanmış çözümü yeşil vurguyla (
Accepted Answer ✓) işaretler ve yapılandırılmış yatay ayırıcılarla sınırlandırılmış sonraki yanıtları yineler. - Vikipedi Akademik Alıntı Normalleştiricisi: Etkileşimli düzenleme bağlantılarını (
[edit]) ve tanılama/temizlik etiketlerini kaldırır, alıntı bağlantılarını temiz satır içi üst simgelere dönüştürür ve kaynakça listelerini özelol.wiki-referenceslisteleri altında standartlaştırır. - Etkileşimli Hesaplamalı Not Defteri Desteği:
#notebook-containerve.jp-Notebookçalışma zamanlarındaki not defteri hücrelerini ve Markdown bloklarını doğrudan yalıtır. - Algoritmik Puanlayıcı Yedek Düzeni: Paragraf hacmini hesaplar, yüksek bağlantı yoğunluk oranlarını filtreler (bağlantı etiketlerinin gövdenin %40'ını aştığı tanıtım amaçlı bağlantı tarlalarını reddeder) ve matematiksel yoğunluğa pozitif puanlama katsayıları uygular.
- Kullanıcı Seçimi Yedek Modu: Etkin bir metin seçimi mevcut olduğunda puanlama sezgiselliği önceliği devreder; matematiksel ifadeleri ve görsel çözünürlüğünü koruyarak yalnızca kullanıcının belirlediği DOM parçasını yalıtır.
D. Bellek İçi Paralel Base64 Grafik Çözümleme
Çevrimdışı dokümanlarda sıkça görülen "kırık görsel" hata modunu kalıcı olarak çözmek için, çalışma zamanı DOM'u serileştirmeden önce görselleri işler:
// İki katmanlı grafik çözümleme hattı:
// 1. Cache-Control: force-cache ve no-referrer ile eşzamanlı ağ getirme (fetch)
// 2. Kimlik doğrulamalı bellek durumları için ekran dışı (offscreen) HTML5 Canvas piksel çıkarma yedeği
Aday görsel yolları; srcset dizileri, yüksek çözünürlüklü data-src ve <picture><source> etiketleri genelinde değerlendirilir. Çözümlenen veri akışları değişmez data:image/png;base64 dizgelerine dönüştürülerek, dışa aktarılan dosyaların harici bir barındırmaya bağımlı olmadan tamamen çevrimdışı işlenmesi sağlanır.
E. Sıfır Sekmeli, Korumalı Alanda (Sandboxed) Sessiz Iframe Yazdırma
Uzantının dahili yollarını (örneğin chrome-extension://) açığa çıkarmadan temiz PDF dokümanları oluşturmak için, betik korumalı alana sahip, sıfır boyutlu bir iframe (position: fixed; left: -9999px; width: 0; height: 0;) oluşturur. Eklenen KaTeX tipografisi ve yazdırma sayfalama kuralları (page-break-inside: avoid) ile arındırılmış doküman, doğrudan çerçeve içine aktarılarak kapatılmadan hemen önce window.print() tetiklenir.
2. Mimari Tarafından Çözülen Belirli Kritik Sorunlar
Sorun 1: Formüllerin Bozuk Kopyalanıp Yapıştırılması
Standart tarayıcı seçimi; matematiksel ifadeleri paydaları, alt simgeleri ve kesir düzenini ortadan kaldırarak kopuk düz metin dizgelerine dönüştürür. Bu araç, özelleştirilebilir sınırlayıcılarla doğrudan LaTeX'e deterministik ayıklama sağlar:
- Ham TeX:
\lim_{x \to 0} \frac{\sin x}{x} = 1 - Satır İçi Matematik:
$\lim_{x \to 0} \frac{\sin x}{x} = 1$ - Blok Matematik:
$$\n\lim_{x \to 0} \frac{\sin x}{x} = 1\n$$
Sorun 2: Baskı Bozulması ve Web Arayüzü Kirliliği
Standart web yazdırma işlemleri yan panelleri, kayan yapışkan başlıkları, izleme piksellerini ve yazar biyografilerini de dahil eder. Uzantı, sıkı bir anlamsal izin verilenler listesi (ALLOWED_TAGS) uygulayarak; beyaz listede yer almayan öğeleri, doğrulanmamış stil şablonlarını ve izleme niteliklerini tamamen kaldırır, böylece kitap benzeri temiz bir mizanpaj üretir.
Sorun 3: Markdown İşleme Hattı Uyumsuzlukları
Kişisel bilgi tabanları (ör. Obsidian, Logseq veya GitHub uyumlu Markdown) için doküman kaydederken, formül biçimlendirmeleri genellikle Markdown ayrıştırıcıları tarafından bozulur. Uzantı, Belirteçleştirilmiş Markdown Motoru (Tokenized Markdown Engine) kullanır: formüller ayıklanır ve geçici tanımlayıcılarla (___MATH_TOKEN_N___) değiştirilir, HTML etiketleri CommonMark temel yapılarına eşlenir ve matematiksel sınırlayıcılar son aşamada yeniden yerlerine yerleştirilir.
3. Güvenlik Mimarisi ve Mühendislik Kalitesi
Uzantı, sağlamlaştırılmış bir güvenlik duruşu uygular:
- Sıfır Harici Veri İletimi: Tamamen yerel olarak çalışır; kullanıcı verileri hiçbir zaman tarayıcı bağlamının dışına çıkmaz.
- Proaktif XSS Etkisizleştirme: İşlenen tüm DOM düğümlerinde çalıştırılabilir nitelikleri (
onclick,onerrorvesrcdocdahil) temizler. - Sıkı Yalıtım: Köprüler güvenli protokollere (
http:,https:,mailto:) karşı doğrulanır verel="noopener noreferrer"kullanmaya zorlanır.