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.
latestgibi 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.NabiNoteolarak sunar.nabi-note/ssr,nabi-note/viewervenabi-note/diffiç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
uploadwing'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.