كتلة قابلة للطي
تجمع ملخصًا قصيرًا ومحتوى في كتلة واحدة. عند إنشائها من شريط الأدوات، اكتب الملخص أولًا ثم تابع كتابة المحتوى تحته.
تُحفظ حالة الفتح المحددة بالمثلث في المستند وتصبح الحالة الأولية في العرض المنشور. ويمكن النقر على المثلث لفتح الكتلة وإغلاقها أثناء التحرير أيضًا.
داخل خلية جدول أو كتلة أخرى، تُفتح أو تُغلق كتلة الطي المعنية وحدها. إذا كان المؤشر أو التحديد داخل المحتوى الذي يُغلق، يُنقل إلى الخارج؛ أما التحديد في موضع آخر فيُحفظ.
الأجنحة
نوع الخط الافتراضيالارتفاع
HTMLجارٍ تحميل المحرّر…
JSONnabi-treeجارٍ تحميل المحرّر…
التثبيت
npm install nabi-noteالشيفرة
import {
createLocale, createNabiWith, mountSurface, mountToolbar,
mountContextToolbar, mountHints, watchSettle, quoteWing, detailsWing,
codeWing, mountViewTools,
} from 'nabi-note'
const selected = [
quoteWing,
detailsWing,
codeWing,
]
const locale = createLocale('ar')
const { nabi, registry } = createNabiWith(selected, { locale })
// 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 })
const settle = watchSettle(document, { surface: content })
const shared = { nabi, registry, surface: content, settle, locale }
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()))
// Call from your language selector. Content and editing history stay intact.
// locale.setLocale('ko')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 تنسيق الحالة، لكن يُفضّل ألا تفرض تغييرها.