كتلة قابلة للطي
تجمع ملخصًا قصيرًا ومحتوى في كتلة واحدة. عند إنشائها من شريط الأدوات، اكتب الملخص أولًا ثم تابع كتابة المحتوى تحته.
تُحفظ حالة الفتح التي يحددها المثلث في المستند وتصبح الحالة الأولية في صفحة النشر. أثناء التحرير يبقى المحتوى مفتوحًا لتعديله، من دون تغيير قيمة الحالة المحفوظة.
الأجنحة
نوع الخط الافتراضيالارتفاع
HTMLجارٍ تحميل المحرّر…
JSONnabi-treeجارٍ تحميل المحرّر…
التثبيت
npm install nabi-noteالشيفرة
import {
createNabiWith, mountSurface, mountToolbar, mountContextToolbar,
mountHints, watchSettle, quoteWing, detailsWing, codeWing,
mountViewTools,
} from 'nabi-note'
const selected = [
quoteWing,
detailsWing,
codeWing,
]
const { nabi, registry } = createNabiWith(selected)
// Bring your own highlighter (Prism, highlight.js, Shiki, …) — the wing stays as it is
// and only the attach is swapped (`makeCodeAttach` ships from the same door)
// { ...codeWing, attach: makeCodeAttach({ highlight: (source, lang) => [{ text: source }] }) }
const root = document.querySelector('.nabi')!
const content = document.querySelector('.nabi-content')!
// The locale also sets the direction — Arabic and Urdu run right to left
mountSurface({ nabi, registry, root: content, locale: 'ar' })
const settle = watchSettle(document, { surface: content })
const shared = { nabi, registry, surface: content, settle, locale: 'ar' }
const toolbar = mountToolbar({ ...shared, root: document.querySelector('#toolbar')! })
const context = mountContextToolbar({ ...shared, root: document.querySelector('#context')! })
mountHints({ toolbar, context, root, surface: content })
// The preview and fullscreen buttons — they stand their own box at the end of the row
mountViewTools({ ...shared, root, container: document.querySelector('#toolbar')! })
// on every change — hook up your own code here
// nabi.onChange(() => user_callback(nabi.getHtml()))ts
const selected = wings().use('details').build()أنماط CSS
يمكن تنسيق الكتلة عبر .nabi-content details وعنوانها عبر .nabi-content details > summary.
css
.article-body details {
padding: .75rem 1rem;
border: 1px solid var(--nabi-line);
border-radius: var(--nabi-radius);
background: var(--nabi-soft);
}
.article-body details > summary { cursor: pointer; font-weight: 700; }
.article-body details[open] > summary { margin-block-end: .75rem; }تمثل السمة open حالة الفتح الأولية التي حفظها الكاتب. يمكن لـCSS تنسيق الحالة، لكن يُفضّل ألا تفرض تغييرها.