CDN kullanımı ​

Paketi yüklemenin zor olduğu statik sayfalarda NABI NOTE tarayıcı paketini ve CSS'sini CDN üzerinden yükleyebilirsiniz. Aşağıdaki örnek, derleme sırasında paket sürümünü otomatik olarak okuyup adresleri oluşturur ve düzenleyiciyi genel NabiNote nesnesiyle kurar.

Aşağıdaki kodu adıyla kaydedip tarayıcıda açın; hemen çalıştığını görebilirsiniz.

<!doctype html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>NABI NOTE</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nabi-note@1.6.1/dist/nabi.css">
  <style>
    html, body { height: 100%; margin: 0; }
    /* Bu örnekte düzenleyici tarayıcının yüksekliğini doldurur. Yüksekliği sitenizin düzenine göre ayarlayın. */
    #app { height: 100vh; }
    #editor { flex: 1; min-height: 0; overflow-y: auto; }
  </style>
</head>
<body>

<div id="app" class="nabi">
  <div id="chrome" class="nabi-toolbar">
    <div class="nabi-toolbar-row">
      <span id="tools"></span>
      <div id="toolbar"></div>
    </div>
    <div id="context"></div>
  </div>
  <div id="editor" class="nabi-content"></div>
</div>

<script src="https://cdn.jsdelivr.net/npm/nabi-note@1.6.1/dist/browser/nabi-note.min.js"></script>
<script>
  var N = NabiNote
  var app = document.querySelector('#app')
  var surface = document.querySelector('#editor')

  // Bu örnekte kullanılacak düzenleme ve dosya kanatlarını seçin.
  // Bu örnek yalnızca sans serif ve serif yazı tiplerini yükler.
  // Eş aralıklı veya el yazısı kullanmak için ilgili yazı tipi dosyalarını da sayfaya yükleyin.
  // Ayrıntılar için “Yazı tipi” belgesine bakın.
  var wings = N.wings().allBasic().use('save').use('open').use('tf', { values: ['sans', 'serif'] })

  var made = N.createNabiWith(wings, {
    locale: 'tr',
    ask: {
      message: function (text) { window.alert(text) },
      confirm: function (text) { return window.confirm(text) }
    }
  })
  var nabi = made.nabi
  var registry = made.registry

  N.mountSurface({ nabi: nabi, registry: registry, root: surface, locale: 'tr' })
  N.mountPickedMark({ nabi: nabi, surface: surface })

  var settle = N.watchSettle(document, { surface: surface })
  var shared = { nabi: nabi, registry: registry, surface: surface, settle: settle, locale: 'tr' }

  var history = N.mountLocalHistory({ nabi: nabi, storage: N.browserHistoryStorage(window) })
  var file = N.mountFile({
    nabi: nabi, registry: registry, store: N.browserFileStore(document),
    name: function () { return 'note' }, locale: 'tr'
  })

  var toolbar = N.mountToolbar(Object.assign({}, shared, {
    root: document.querySelector('#toolbar'),
    file: file,
    onHost: function (w) {
      if (w !== 'localHistory') return
      N.openHistoryPanel({
        history: history, surface: surface, locale: 'tr', sessionId: history.sessionId,
        render: function (record) {
          return N.renderStoredHtml(JSON.parse(record.body), registry) || ''
        }
      })
    }
  }))
  var context = N.mountContextToolbar(Object.assign({}, shared, { root: document.querySelector('#context') }))

  N.mountHints({ toolbar: toolbar, context: context, root: document.querySelector('#chrome'), surface: surface })
  N.mountViewTools({ nabi: nabi, surface: surface, root: app, container: document.querySelector('#tools'), locale: 'tr' })

  nabi.setHtml('')

  // Bu örnek, belge değiştiğinde bir kaydetme işlemi planlar.
  // nabi.onChange(function () { user_callback(nabi.getJson()) })
</script>

</body>
</html>

NABI NOTE'ta dikkat edilmesi gerekenler ​

  • Dağıtım kodunda CSS ve tarayıcı JavaScript'i için aynı sabit sürümü kullanın. latest gibi sürümü olmayan bir adres, yeni sürüm çıktığı gün davranışı değiştirebilir.
  • Tarayıcı paketi kök API'yi window.NabiNote olarak sunar. nabi-note/ssr, nabi-note/viewer ve nabi-note/diff için ayrı genel paketler yoktur.
  • Örnekteki dosya kaydetme ve yerel geçmiş kullanıcının tarayıcısında çalışır. Sunucuya kaydetme veya hesap eşitleme gerekiyorsa getJson() sonucunu uygulama API'sine gönderin.
  • Yükleme eklerken yalnızca upload wing'ini değil, gerçek gönderme işlevini ve gereken görsel ya da bağlantı wings'lerini de bağlayın. Dosya doğrulamasından yükleme sunucusu sorumludur.
  • Tarayıcı paketi HTML parser'ını içinde barındırır. Bu nedenle setHtml(), HTML dosyası açma ve HTML yapıştırma için ayrı bir parser seçeneği veya özel API gerekmez.

CDN yalnızca yükleme biçiminde farklıdır. Kaydetme biçimi ve girdi doğrulaması npm ile kurulumdakiyle aynıdır; bu nedenle temel kullanımı da inceleyin.