Mobile Link Opener
unlistedby Keremdogan1
Opens web links in an Obsidian tab when the site allows it, otherwise in the native in-app browser.
Updated 6d ago
Mobile Link Opener (Obsidian Eklentisi)
Obsidian'ın mobil (özellikle iPad ve iPhone) sürümünde notlarınızdaki web linklerini konforlu bir şekilde açmanızı sağlayan hafif ve harici bağımlılığı olmayan bir eklentidir.
Notlarınızdaki bir web linkine (http:// veya https://) tıkladığınızda:
- Site gömülmeye izin veriyorsa: Obsidian içinde yeni bir sekmede (
iframetabanlı dahili tarayıcı) açılır. - Site gömülmeyi engelliyorsa (
X-Frame-Optionsveya CSP): Doğrudan iOS Capacitor Browser ile native tam ekran / popover görünümünde açılır.
Özellikler
- Akıllı Link Yakalama: Notlarınızdaki dış bağlantıları otomatik olarak yakalar.
- Dahili Sekme Görünümü: Adres/arama çubuğu ve yenileme butonu içeren hafif dahili web sekmesi.
- Native Fallback (Dahili Tarayıcı): Google, YouTube gibi iframe içinde açılmayı engelleyen siteleri doğrudan iOS'un native Capacitor tarayıcısında açar.
- "Sayfa Boş mu Görünüyor?" Yardımcı Bandı: Header kontrolünü aşsa bile JS ile gömülmeyi engelleyen sitelerde tek tıkla native tarayıcıya geçiş ve siteyi her zaman native açılacaklar listesine ekleme kolaylığı.
- Özelleştirilebilir Arama Motoru: Adres çubuğuna bir arama terimi yazıldığında DuckDuckGo, Bing, Brave veya belirleyeceğiniz özel bir arama URL'si kullanılır.
- Son Açılan Siteler Geçmişi: Son gezilen web bağlantılarını hatırlar, komut paletinden hızlı erişim sağlar.
- Hafif ve Güvenli: Tek dosya (
main.js), sıfır npm bağımlılığı, sadece Obsidian ve Web standart API'leri.
Nasıl Çalışır?
Linke Tıklandı
│
▼
Bu site her zaman native listesinde mi?
├── Evet ─────────────► Native Tarayıcıda Aç
└── Hayır
│
▼
Header Kontrolü (HEAD / GET requestUrl)
[X-Frame-Options veya CSP frame-ancestors var mı?]
├── İzin vermiyor ──► Native Tarayıcıda Aç
└── İzin veriyor
│
▼
Obsidian Sekmesinde (iframe) Aç
│
▼ (6 saniye sonra)
"Sayfa boş mu görünüyor?" yardımcı bandı görünür
Bilinen Sınırlar
Tarayıcı güvenlik standartları (Same-Origin Policy) ve iOS WebKit mimarisi gereği şunlar yapılamaz:
- Cross-origin iframe navigasyonu: Farklı alan adlarındaki sitelerin içindeki ileri/geri geçmişi doğrudan kontrol edilemez.
- Sayfa içi link takibi: iframe içinde kullanıcının tıkladığı yeni linkler cross-origin güvenlik duvarı nedeniyle Obsidian tarafından doğrudan okunamaz.
- Gömülmeyi zorla aşma:
X-Frame-Options: DENY/SAMEORIGINgibi sunucu başlıkları güvenlik gereği atlatılmaz; eklenti bu siteleri güvenle native tarayıcıda açar.
Kurulum
Yöntem 1: BRAT ile Kurulum (Önerilen)
Obsidian'da BRAT eklentisi yüklüyse:
- Obsidian Ayarları -> BRAT sekmesine gidin.
- Add Beta plugin düğmesine tıklayın.
- Repo adresini girin:
https://github.com/Keremdogan1/mobile-link-opener - Add Plugin'e basın. BRAT son sürümü indirip kuracaktır.
- Topluluk Eklentileri (Community Plugins) listesinden eklentiyi etkinleştirin.
Yöntem 2: Manuel Kurulum (iPad / iOS)
- Bu depodaki son Release sayfasından
main.js,manifest.jsonvestyles.cssdosyalarını indirin. - iPad'inizde Dosyalar (Files) uygulamasını açın.
- Kasanızın (Vault) klasörüne gidin:
<KasaAdı>/.obsidian/plugins/ - Bu klasör altında
mobile-link-openeradında yeni bir klasör oluşturun. - İndirdiğiniz 3 dosyayı bu klasöre kopyalayın.
- Obsidian'ı açıp Ayarlar -> Topluluk Eklentileri altından eklentiyi etkinleştirin.
Ayarlar
- Arama Motoru: Adres çubuğuna arama terimi girildiğinde kullanılacak motor (DuckDuckGo, Bing, Brave, Özel URL).
- Her Zaman Native Açılacak Siteler: Doğrudan iOS native tarayıcısında açılmasını istediğiniz sitelerin listesi (her satıra bir alan adı, ör:
google.com). - Native Ekran Stili: Native tarayıcının görünüm biçimi (
fullscreenveyapopover). - Linkleri Yakala: Notlardaki web linklerinin eklenti tarafından yakalanıp yakalanmayacağını belirleyen açma/kapama ayarı.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.