3 puan yazan GN⁺ 2025-03-16 | 2 yorum | WhatsApp'ta paylaş
  • Nash, ayrı bir hizmet gerektirmeden web tarayıcısında açılıp düzenlenen HTML tabanlı bağımsız bir not aracıdır
  • Kaydedilen notlar çevrimdışıyken de düzenlenebilir; hedefi, Notion ya da Word yerine bir belge dosyası gibi ele alınan bir yaklaşım sunmaktır
  • Statik bloglar, tek sayfalık içerikler veya galerideki pizza fotoğraflarını eklemek gibi HTML belge tipi içerikler üretmek için kullanılabilir
  • Mesajlaşma uygulamalarıyla gönderildiğinde önizleme olarak görüntülenebilir; böylece uzun içerikleri dosya gibi paylaşma akışı da mümkün olur
  • Nash açık kaynak olarak yayımlanmıştır ve boş not sayfası serbestçe düzenlenip kullanılabilir

Yalnızca tarayıcıyla kullanılan HTML notu

  • Nash, HTML olarak not fikrini hedefleyen bağımsız bir not aracıdır
  • Ayrı bir yazılım ya da hizmet gerekmez; genellikle kurulu olan bir web tarayıcısı yeterlidir
  • Kaydedilen notlar çevrimdışı düzenlemeyi destekler
  • Boş not nash.html üzerinden açılabilir

Oluşturulabilecek içerikler ve paylaşım biçimi

  • Statik bloglar veya tek sayfalık içerikler oluşturmak için kullanılabilir
  • Galerideki fotoğrafları ekleyerek içerik hazırlamak da mümkündür
  • Mesajlaşma uygulamalarıyla gönderildiğinde önizleme olarak görülebilir; bu da uzun içeriklerin paylaşımında kullanılmasını sağlar
  • Tek bir HTML ile basit fikirlerin POC'unu hazırlama deneyiminden yola çıkmıştır ve ayrı bir hizmet ya da yazılım olmadan çalışan bir belge dosyası üretmeye yönelik ilk denemedir
  • Nash açık kaynak olarak yayımlanmıştır; serbestçe düzenlenip kullanılabilir

2 yorum

 
xguru 2025-03-16

Nash, tek bir HTML ile çalışan notlar

Bunu Show GN'de paylaşmıştınız, Hacker News'e de göndermişsiniz ve epey oy almışsınız. Tebrikler!

 
GN⁺ 2025-03-16
Hacker News yorumları
  • İşin ağır kısmının önemli bir bölümü basit ama güçlü bir HTML özniteliği ile hallediliyor; şaşırtıcı olan, bunu bilen geliştirici sayısının pek fazla görünmemesi
    Oldukça uzun zamandır var olan bir özellik

    • Bu tek satır, Writely'nin ilk uygulamasının neredeyse %90'ını oluşturuyordu
      Writely daha sonra Google Docs olan girişimdi; bunu kurucularından biri olarak söylüyorum
      Kalan %90 ise, tarayıcıya göre değişen tuhaf contenteditable uygulama hataları yüzünden düzenleme içeriğini düzgün senkronize etmek için yazmak zorunda kaldığımız backend koduydu :-)
    • Gerçekten etkileyici. 2016 civarında hâlâ küçük ve orta ölçekli işletmeler için çok sayıda özel site yapıyordum ve çoğunun WP gibi bir şeyle yapılabildiğini fark etmiştim
      Ama (1) WP stilini düzenlemek fazla uğraştırıcıydı ve bakımını yapmak istemiyordum, (2) eklenti işlevlerine ve WP yükseltmelerine bağımlı olmak istemiyordum, (3) erişim izinleri farklı olan kişilerin aynı sayfanın farklı bölümlerini düzenleyebilmesini istiyordum; çoğu CMS'te bu fiilen imkânsızdı
      Bu yüzden neredeyse sıfırdan, yalnızca contenteditable ve TinyMCE tabanlı bir CMS yaptım ve düzenlenebilir alanlara bu etiketi ekledim. Tabii kaydetmeden önce backend tarafında kimin neyi düzenleyebileceğini kontrol ediyordum
      Müşteri ya da çalışan giriş yaptığında, yetkisi olan sayfa alanlarını doğrudan düzenleyebiliyordu ve CMS düzenlenebilir kısımları noktalı bir kenarlıkla gösteriyordu. Yazı tipleri ve renkler TinyMCE ayarlarında saklandığı için HTML'i kurcalamaya gerek kalmıyordu. İsterlerse elle de kurcalayabiliyorlardı
      Müşteri açısından oldukça sihirli hissettiriyordu. Çünkü değişiklikten sonra nasıl görüneceğini görmek için ayrı bir düzenleme sayfasına gitmek gerekmiyor; sayfa üzerinde yerinde düzenleme yapıp kaydedince anında yayınlanıyordu
      Bu sitelerin çoğu bugün, aradan 5-10 yıl geçmesine rağmen hâlâ çalışıyor ve benim tarafımda neredeyse hiç bakım gerektirmiyor
    • Birkaç hafta önce bu fikrin canlı demosunu yaptım. HTML'in gizli özelliklerinden biri sayılır ama gerçekten basit ve güçlü
      https://news.ycombinator.com/item?id=43179649
    • Bu güzel. Bir zamanlar belgeleri HTML'e çevirip en üstteki div'e contenteditable="true" koyarak bir PDF düzenleyici yapmıştım
    • “Vay, burada müthiş bir şey var; adı tekerlek ve epey uzun zamandır var” gibi okunuyor
      Sanırım 20 yıl önce ben de bununla bir şeyler yapmıştım
      ContentEditable ilk olarak 2000'de IE 5.5'te sunuldu ve 2007'de tüm büyük tarayıcılarda kullanılabiliyordu
  • Buna bayıldım; kaynağa bakınca saf JavaScript ile yazılıyor olması daha da hoşuma gitti
    Bugünlerde, kütüphane ya da framework olmadan da epey etkileşimli web uygulamaları yapılabildiği yeterince takdir edilmiyor
    Basit bir yerel web uygulamasını tek bir HTML sayfası olarak yapma fikri de harika. Bir ara çocuğumla bilim müzesine gitmiş, basit bir stop-motion animatör denemiştik; sonra benzer bir web uygulaması yapıp tek HTML dosyası olarak çocuğumun dizüstüne kopyaladım ve internet olmadan da kullanabildi
    Yine de ben saf JavaScript'i doğrudan yazmaya üşendiğim için React ve bir bundler ile yaptım; çıktı da tek bir HTML dosyası olarak paketlendi. Belki bir gün Show HN'de paylaşırım

    • Eskiden “bunu yapmak için jQuery gerekmez” vardı; şimdi de “bunu yapmak için React ya da Vue, Svelte gibi şeyler gerekmez”e ihtiyaç var
      Normal saf JavaScript ve düzgün bir beceri seviyesiyle, neredeyse her şeyi daha temiz ve bakımı daha kolay şekilde yapabilirsiniz
      On yıllardır başkalarının yazdıklarının bakımını yaptıktan sonra şunu gördüm: zeki bir insanın yaptığı aptalca derecede basit tasarım, diğer kombinasyonların çoğunu geride bırakıyor
    • Quarto'nun sevdiğim yanı da bu. Bağımsız çalışan HTML dosyaları üretip insanlarla paylaşabiliyorsunuz
  • Güzel yapılmış
    Sayfa yerel diskten tarayıcıda açıldığında otomatik olarak düzenleme moduna geçmesi, ama birinin web sitesine yayımlanıp açık web üzerinden erişildiğinde normal salt okunur görünüm olarak davranması da düşünülebilir. Bunun için adresin http/https olup olmadığına bakmak yeterli
    Elbette, düzenleme modunda da görüntüleyebilmek için sorgu dizesi parametresi ya da sihirli bir URL fragment'i gibi bir geçiş yolu olmalı
    Ayrıca belirli domain'ler veya URL önekleri için istisna tanımlanabilmeli. Varsayılanı keepworking.github.io ya da <https://keepworking.github.io/nash/> yaparsanız, o sitede de düzenleme modu açık olur ve demo için ayrıca bir şey yapmanız gerekmez
    Bu istisnalar kullanıcı tarafından değiştirilebilirse daha da iyi olur. Böylece başkaları da 1. maddedeki numaraya gerek kalmadan aynı davranışı elde edebilir

    • İçeriği düzenleyip yerelde kaydedebilen bir web sitesi fikri gerçekten harika
      Bana kalırsa mükemmel; şu anki haliyle bırakılmalı
  • https://rpdillon.net/redbean-tiddlywiki-saver.html kullanılırsa, “gerçekten” kaydeden kendi kendine yeten taşınabilir bir uygulamaya dönüştürülebilir

    • Benzer bir şeyi daha önce yaptım; https://original.littr.me adresinde görülebilir
    • Dosyayı kaydetmeyi önerecek şekilde yapılması güzel olurdu
      Böylece istenildiğinde kişisel yer imleri işlevine çok daha yaklaşmış olur
  • Güzel. Bu fikirden ve TiddlyWiki'den söz eden önceki bir tartışma vardı
    https://news.ycombinator.com/item?id=43179649

  • Keşke tarayıcılar yerel web uygulamalarını daha iyi desteklese
    Yerel dosyalar kalıcı depolamaya kolayca erişebilseydi, hızlı ve kolay GUI uygulamaları için pek çok fırsat açılabilirdi. Bu, bir bakıma Electron'un ters yönü olurdu

    • Bir dosya herhangi bir şeye nasıl erişebilir? Dosya sadece veridir; kendi başına hiçbir şey yapamaz
  • Harika. Web sitesinin JavaScript kısmını gerçek HTML'in dışında yazmaya o kadar alışmışım ki, ilk gördüğümde “vay be, bunu sadece HTML ile yapmak mümkünmüş” diye düşündüm
    Ama kaynağa bakınca JavaScript'in sıradan bir script etiketi içinde olduğunu gördüm ve bunun da mümkün olduğu gerçeğini yeniden hatırladım

    • HTML küçümseniyor
      Her gün gördüğümüz ekranların çoğu, hatta kod editörleri bile HTML sayfası
    • Ayrıştırılabilirlik ya da sürüm kontrolü istiyorsanız bunun mutlaka yapılması gereken bir yöntem olduğu söylenemez. Ama kesinlikle yapılabilecek bir yöntem
      Daha şaşırtıcı olan, insanların framework kullanırken HTML'in içine JavaScript bile olmayan şeyler koyması ve sonradan dışarıdaki JavaScript'in eklenmesi ya da hydration yapılması gereken yapılar kullanması. İki tarafın da kötü yanlarını birleştirmiş gibi geliyor
      Ben karşı tarafa daha yakınım; merkezde JavaScript var ve index.html dışında .html uzantılı dosyam yok. JavaScript'in içine de HTML koymuyorum. Parça şablonların hepsi .htm ve DOM'a eklenmeden önce hydrate ediliyor
  • Düzenleme yaptıktan sonra kaydetmeden sayfayı kapatmaya çalışırken bir uyarı çıkması iyi olurdu
    onbeforeunload işleyicisi eklemeyi düşünebilirsiniz

    • Bu web sayfasında da kapatırken bir uyarı var ama genel olarak iyi bir öneri
  • Böyle basit araçları seviyorum. Kısa süre önce basit, özel bir “ana sayfa”/gösterge paneli yaptım: https://github.com/rcarmo/onepage-by-spec

    • Az önce “kaydetme” özelliğini de gelecek şekilde güncelledim
  • Gerçekten çok iyi. Yerelde kolayca yapılabilen ve zaten uzun süredir yapılabilen işlevleri aboneliğin arkasına saklayan ve yapay kısıtlar koyan yazılımların bu kadar artması can sıkıcı
    Yalnızca tarayıcıda çalışan ve yeni File System Access API üzerinden yerel dosyaları düzenleyebilen ücretsiz bir Markdown editörü yapıyorum. Bu API yalnızca Chromium tabanlı tarayıcılarda mümkün
    https://zareith.github.io/chillmd/