NABI NOTE
திறந்த மூல WYSIWYG தொகுப்பி
NABI NOTE என்பது திறந்த மூல WYSIWYG தொகுப்பி. வடிவமைப்பு, சீரமைப்பு, அட்டவணை, பதிவேற்றம் உள்ளிட்ட அம்சங்கள் மையத்திலிருந்து wings எனும் தனித்தனி தொகுதிகளாகப் பிரிக்கப்பட்டுள்ளன. தேவையான wings-ஐ மட்டும் தேர்ந்து தொகுப்பியை அமைக்கலாம்; நீங்களே உருவாக்கிய wings-ஐயும் இணைக்கலாம். இது எளிய JavaScript-ல் எழுதப்பட்டதால் React அல்லது Vue போன்ற கட்டமைப்புகளிலும் பயன்படுத்தலாம். build அமைப்பு இல்லாத பக்கங்களில் CDN நூலகத்துடன்இதன் சொந்த ஆவண வடிவமான NABI TREE, உலாவி DOM இல்லாத Node.js சூழலிலும் HTML-ஆக மாற்றலாம். உள்ளீட்டு ஆவணங்கள் பதிவுசெய்யப்பட்ட விதிகளால் சரிசெய்யப்படுகின்றன; HTML உருவாகும்போது உரை, பண்புகள் escape செய்யப்படுகின்றன, இணைப்பு முகவரிகள் சரிபார்க்கப்படுகின்றன. ஆனால் தனிப்பயன் wings மற்றும் சேவையகத் தரவை பயன்பாட்டின் பாதுகாப்புக் கொள்கைப்படி தனியாக ஆய்வு செய்ய வேண்டும். CSS மாறிகள் மற்றும் rem அடிப்படையிலான அமைப்பு மூலம் நிறத்தோற்றத்தையும் அளவையும் மாற்றலாம்; இருண்ட நிலை மற்றும் பல மொழிகளுக்கான எழுத்துரு அமைப்புகளும் உள்ளன. அட்டவணை வரிசைப்படுத்தல், உள்ளூர் வரலாறு, AI உதவியுடன் ஆவணப் பணி அனைத்தும் ஒரே ஆவண மாதிரியில் தொடர்கின்றன.
எழுத்துரு
Sans serif (இயல்புநிலை), serif, monospace, cursive ஆகிய ஒவ்வொரு குடும்பமும் எழுத்துமுறைக்கு ஏற்ற எழுத்துருக்களை அடுக்குகிறது. எந்த மொழியில் எழுதினாலும் அந்தக் குடும்பத்தின் வடிவம் நிலைக்கும்; கையெழுத்து வடிவம் இல்லாத எழுத்துமுறை உலாவியின் இயல்புநிலை எழுத்துருவுக்கு மாறும். இயல்புநிலை எழுத்துருவை ஹோஸ்ட் தீர்மானிக்கிறது.
கீழே ஒவ்வொரு குடும்பமும் காட்டப்பட்டுள்ளது பல மொழிகளில்.
சான்ஸ் செரிஃப் · Sans serif · 산세리프 · ゴシック体 · 无衬线 · Serifenlos · Sans empattement · Sin serifa · Sem serifa · Без засечек · بلا زخارف · सैन्स सेरिफ़ · স্যান্স সেরিফ · سانس سیرف · Tanpa serif · بدون سریف · सॅन्स सेरिफ · Không chân · శాన్స్ సెరిఫ్ · Mara seref · Bila serif · சான்ஸ் செரிஃப் · ไร้เชิง · Senza grazie
செரிஃப் · Serif · 세리프 · 明朝体 · 衬线 · Avec empattement · Con serifa · Com serifa · С засечками · بزخارف · सेरिफ़ · সেরিফ · سیرف · Berserif · سریف · सेरिफ · Có chân · సెరిఫ్ · Mai seref · Yenye serif · செரிஃப் · มีเชิง · Con grazie
ஒற்றையகலம் · Monospace · 고정폭 · 等幅 · 等宽 · Dicktengleich · Chasse fixe · Monoespaciada · Monoespaçada · Моноширинный · ثابت العرض · मोनोस्पेस · মনোস্পেস · یکساں چوڑائی · Lebar tetap · تکفاصله · Đơn cách · మోనోస్పేస్ · Tazara ɗaya · Eş aralıklı · Nafasi moja · ஒற்றையகலம் · ความกว้างคงที่ · Monospaziato
கையெழுத்து · Cursive · 필기체 · 筆記体 · 手写体 · Schreibschrift · Cursiva · Рукописный · خط اليد · हस्तलिपि · হস্তলিপি · رواں خط · Tulisan tangan · دستنویس · हस्ताक्षर · Chữ viết tay · చేతిరాత · Rubutun hannu · El yazısı · Mwandiko · கையெழுத்து · ลายมือ · Corsivo
உரை அளவு
மிகச் சிறியது
சிறியது
பெரியது
மிகப் பெரியது
தலைப்பு
காலி வரியில் # எனத் தட்டச்சிட்டு இடைவெளி அழுத்தினால் அது தலைப்பாக மாறும்.
H1
H2
H3
H4
H5
H6
தடிமன் · சாய்வு · அடிக்கோடு · அடித்தல்
தடிமன் சாய்வு அடிக்கோடு அடித்தல் — ஒரு எடுத்துக்காட்டு.
இவற்றை ஒன்றன்மேல் ஒன்றாகவும் பயன்படுத்தலாம்.
மேல்குறி மற்றும் கீழ்க்குறி
பரப்பளவு 3.5m2 அடிக்குறிப்பு இவ்வாறு சேர்க்கப்படும்.1
நீர் H2O.
உரை நிறம் · முன்னிலைப்படுத்தல்
ஒளி மற்றும் இருண்ட நிலை இரண்டிலும் படிக்கத் தகுந்தவாறு வண்ணத் தட்டு தேர்ந்தெடுக்கப்பட்டுள்ளது.
உரை நிறம் பச்சை · பவளம் · வயலட் · அம்பர் · நீலம்
முன்னிலைப்படுத்தல் மஞ்சள் · பச்சை · சியான் · இளஞ்சிவப்பு · ஊதா · ஆரஞ்சு
இணைப்பு
முகவரியை உள்ளிடுங்கள்; அது ஒரு இணைப்பு.
http://, https:// URL-களையும் . அல்லது /-இல் தொடங்கும் இதே தளப் பாதைகளையும் பயன்படுத்தலாம். javascript: போன்ற முகவரிகள் அனுமதிக்கப்படாது.
உதாரணமாக https://nabi.saro.me எனத் தட்டச்சிட்டு இடைவெளி அல்லது Enter அழுத்துங்கள்; இங்கே காண்பதுபோல் தானாக மாற்றப்படும்.
இணைப்பு திறப்பு
ஆவணம் இணைப்பு முகவரியை மட்டுமே சேமிக்கிறது; அதை காட்டும் பக்கமே இணைப்புகள் எப்படித் திறக்கப்படும் என்பதை முடிவு செய்கிறது.
இணைப்பு கோப்பு
படமல்லாத எதையும் பதிவேற்றினால் கீழே உள்ளதைப் போன்ற கோப்பு வடிவ இணைப்பு உருவாகும்.
இணைப்பு கோப்பு என்ற வடிவில் இருக்கும்.
சீரமைப்பு
இடப்புறச் சீரமைப்பு
நடுவண் சீரமைப்பு
வலப்புறச் சீரமைப்பு
தலைப்புகளையும் சீரமைக்கலாம்.
பட்டியல்கள்
புள்ளிப் பட்டியல்
காலி வரியில் - எனத் தட்டச்சிட்டு இடைவெளி அழுத்தினால் அது புள்ளிப் பட்டியலாக மாறும்.
இது ஒரு புள்ளிப் பட்டியல் உருப்படி
Tab / Shift+Tab உள்தள்ளவும் வெளித்தள்ளவும் பயன்படும்.
எண் பட்டியல்
காலி வரியில் 1. எனத் தட்டச்சிட்டு இடைவெளி அழுத்தினால் எண் பட்டியல் கிடைக்கும்.
முதல்
இரண்டாம்
மூன்றாம்
சரிபார்ப்புப் பட்டியல்
காலி வரியில் [ ] அல்லது [x] எனத் தட்டச்சிட்டு இடைவெளி அழுத்தினால் சரிபார்ப்புப் பட்டியல் கிடைக்கும்.
இந்த உருப்படி குறிக்கப்பட்டுள்ளது.
இது இன்னும் குறிக்கப்படவில்லை.
அட்டவணை
ஒன்றை உருவாக்க கருவிப்பட்டையில் உள்ள அட்டவணை பொத்தானை அழுத்துங்கள்; பின்னர் வரிசைகள், நெடுவரிசைகளைச் சேர்க்கவும், நீக்கவும், இணைக்கவும் முடியும்.
நெடுவரிசை வரிசைப்படுத்தல்
முன்னோட்டம் முதலில் திறக்கும்; பிறகு கையிருப்பு மற்றும் விலை தலைப்பு கலங்களை மாறிமாறி அழுத்துங்கள்.
மாதிரி | கையிருப்பு | விலை | எடை |
|---|---|---|---|
NB-7 | 1,200 | 349 | 1.2 kg |
NB-9 | 20,000 | 99 | 0.9 kg |
NB-12 | 3,500 | 1,299 | 1.4 kg |
NB-80 | 900 | 8,900 | 2.1 kg |
NB-100 | TBD | 12,999 | 2.4 kg |
விலை அனைத்தும் எண்கள்; ஆகவே எண் அடிப்படையில் வரிசைப்படுத்தப்படும்.
கையிருப்பு கடைசி கலத்தில் எழுத்துகள் இருப்பதால் உரையாக வரிசைப்படுத்தப்படும்.
பிரிப்பான்
--- எனத் தட்டச்சிட்டு Enter அழுத்தினால் அது பிரிப்பானாக மாறும்.
படம்
அகலத்தை 30% முதல் 100% வரை அமைக்கலாம்; இடது, நடு அல்லது வலப்புறத்தில் வைக்கலாம்.
YouTube
பதிவேற்றம்
படம் அல்லது கோப்பை தொகுப்பிக்குள் இழுத்து விட முயற்சிக்கவும்.
இங்கே பயன்படுத்துவது மாதிரிப் பதிவேற்றம்; ஒரு அமைப்பு அதை உங்கள் சேவையகத்துடன் இணைக்கும்.
பதிவேற்றம் தோல்வியுற்றால் படம் அல்லது கோப்பு தொகுப்பியிலிருந்து அகற்றப்படும்.
மேற்கோள்
காலி வரியில் > எனத் தட்டச்சிட்டு இடைவெளி அழுத்தினால் மேற்கோள் பெட்டி கிடைக்கும்.
அது பல வரிகளுக்கு நீளலாம்.
நிரல்
காலி வரியில் ``` எனத் தட்டச்சிட்டு இடைவெளி அல்லது Enter அழுத்தினால் நிரல் பெட்டி கிடைக்கும்.
```java போல மொழியையும் எழுதி இடைவெளி அல்லது Enter அழுத்தினால் அந்த மொழி அமைந்த நிரல் பெட்டி கிடைக்கும்.
import { createNabiWith, defaultWings } from 'nabi-note'
const { nabi } = createNabiWith(defaultWings)
const html = nabi.getHtml()விவரங்கள்
விவரங்கள் சுருக்கமும் உட்பகுதியும் கொண்டது.
மடக்கியோ திறந்தோ சேமிப்பதைக் தேர்ந்தெடுக்கலாம்.
குறுக்குவழிகள்
Shift-ஐ விரைவாக இருமுறை அழுத்துங்கள் ஒவ்வோர் அம்சத்தின் குறுக்குவழியும் கருவிப்பட்டையில் தோன்றும்.
தானியங்கு வடிவமைப்பு
எடுத்துக்காட்டு | செயல் விசை | முடிவு |
|---|---|---|
# | இடைவெளி | தலைப்பு |
- | இடைவெளி | புள்ளிப் பட்டியல் |
1. | இடைவெளி | எண் பட்டியல் |
[ ] · [x] | இடைவெளி | சரிபார்ப்புப் பட்டியல் |
> | இடைவெளி | மேற்கோள் |
``` · ```ts | இடைவெளி · Enter | நிரல் பெட்டி |
--- | Enter | பிரிப்பான் |
https://… | இடைவெளி · Enter | Link |
வெளியீட்டு செயல்பாடுகள்
செயல்பாடு | முடிவு |
|---|---|
getHtml() | HTML |
getJson() | JSON |
DOM இல்லாமலும் செயல்படும்
JSON-இலிருந்து HTML-ஆக மாற்ற DOM தேவையில்லை.
சேவையகம் (Node.js) சேமித்துள்ள NABI TREE-ஐப் படித்து அதே விதிகளுடன் HTML உருவாக்க முடியும்.
மொபைலுக்கு ஏற்றது
மொபைல் UI — பதிலளிக்கும் அமைப்பு மொபைல் UI-ஐ வழங்குகிறது.
மொபைல் விசைப்பலகை இடைவெளி — விசைப்பலகை திறக்கும்போது அதன் உயரம் கணக்கில் கொள்ளப்படும்.
நெகிழ்வான அளவிடல் — எல்லா அளவுகளும் rem-ல் எழுதப்பட்டுள்ளன.
பல மொழிகள் — பல மொழிகளுக்கு ஆதரவு உள்ளது.
தனிப்பயனாக்கம்
உங்கள் சொந்த wing — தேவையான அம்சத்தை நீங்களே உருவாக்கி பதிவுசெய்யலாம்.
உங்கள் சொந்த CSS — நிறங்கள், மூலைகள், இடைவெளிகள் அனைத்தும் --nabi-* ஆக வரையறுக்கப்பட்டுள்ளதால் தோற்றத்தை நீங்கள் அமைக்கலாம்.
திறந்த மூலம் — இது GitHub-இல் திறந்த மூலமாக உள்ளது.
ஆவணங்களைப் படிக்கவும் → nabi.saro.me
npm install nabi-noteimport {
createNabiWith, mountSurface, mountToolbar, mountContextToolbar,
mountHints, watchSettle, defaultWings, mountUpload, mountUploadView,
browserFileStore, mountFile, parseNodes, mountViewTools,
browserHistoryStorage, mountLocalHistory, openHistoryPanel,
} from 'nabi-note'
import { mountDiffWing } from 'nabi-note/diff'
// The box that asks — without it the core answers "no" to everything (plug in your own)
const ask = { message: (t: string) => alert(t), confirm: (t: string) => confirm(t) }
const selected = [
...defaultWings,
]
const { nabi, registry } = createNabiWith(selected, { ask })
// 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')!
const view = mountUploadView({ nabi, surface: content })
const upload = mountUpload({
nabi, root: content,
// your upload goes here — report progress with task.onProgress(0–100)
uploader: async (task) => ({ uri: 'https://cdn.example/uploaded' }),
extensions: ['png', 'jpg', 'pdf'], maxFileSize: 10 * 1024 * 1024,
onStart: (tasks) => view.start(tasks),
onProgress: (id, percent) => view.progress(id, percent),
onSettle: () => view.settle(),
onDone: () => view.done(),
})
const file = mountFile({ nabi, registry, store: browserFileStore(document), parse: parseNodes, locale: 'ta', name: () => 'note' })
const history = mountLocalHistory({ nabi, storage: browserHistoryStorage(window) })
const diff = mountDiffWing({ nabi, registry, surface: content, locale: 'ta' })
// The locale also sets the direction — Arabic and Urdu run right to left
mountSurface({ nabi, registry, root: content, locale: 'ta', fileSink: upload.take })
const settle = watchSettle(document, { surface: content })
const shared = { nabi, registry, surface: content, settle, locale: 'ta' }
// A tool that needs a panel comes back to the host — without this the button is dead
const toolbar = mountToolbar({
...shared, root: document.querySelector('#toolbar')!,
file,
onFiles: upload.take,
onHost: (w) => {
if (w === 'diff') { diff.open(); return }
if (w !== 'localHistory') return
openHistoryPanel({
history, surface: content, locale: 'ta', sessionId: history.sessionId,
render: (record) => createNabiWith(selected, { doc: JSON.parse(record.body) }).nabi.getHtml(),
})
},
})
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()))