இணைத்தல்
நீங்கள் திருத்தும்போது பிற மாற்றங்கள் சேமிக்கப்பட்டால் தொடக்கப் பதிப்பை அடிப்படையாகக் கொண்டு இருபுறமும் இணைக்கவும். தானாக இணைக்கக்கூடிய அனைத்தும் முதலிலேயே பயன்படுத்தப்படும்; ஒன்றின்மீது ஒன்று படும் மாற்றங்கள் மட்டும் முரண்பாடாகும். இது nabi-note/merge இன் தனிக் காட்சி, wing அல்ல.
| இடது | நடு | வலது |
|---|---|---|
| திருத்தத் தொடக்கப் பதிப்பு | தானியக்க இணைப்புக்குப் பின் உங்கள் தற்போதைய ஆவணம் | நீங்கள் திருத்தும்போது சேமித்த பதிப்பு |
| வாசிப்பு மட்டும் | நேரடியாகத் திருத்தலாம் | வாசிப்பு மட்டும் |
நடுவில் வழக்கமான திருத்திபோல் உரை, வடிவம், அட்டவணை, பட்டியல், படம் மாற்றலாம். வழங்கிய wing-கள் அம்சங்களை நிர்ணயிக்கும். முரண்பாட்டுக் குறிகளும் தீர்வு நிலையும் சேமித்த உள்ளடக்கத்தில் கலக்காது.
முழுவதும் தானாக இணையும் எடுத்துக்காட்டு
நீங்கள் கூட்ட நேரத்தை காலை 11 மணி, மற்றவர் இடத்தை மூன்றாம் மாடிக் கூட்ட அறை என்று மாற்றினீர்கள். வெவ்வேறு பத்திகளாதலால் நடு முடிவில் இரண்டும் வரும்.
முரண்பாடுகள் இல்லை; உடனே உறுதிசெய் அழுத்தலாம் அல்லது முதலில் நடு உரையைச் செம்மைப்படுத்தலாம். கீழுள்ள இறுதி ஆவணம் உறுதி callback பெற்ற உண்மையான முடிவு.
ஏற்றுகிறது…
பகுதியளவு தானாக இணையும் எடுத்துக்காட்டு
இம்முறை நீங்கள் நேரத்தை காலை 11 மணி, மற்றவர் பிற்பகல் 2 மணி என்றார். ஒரே பத்தியின் வேறு மாற்றங்களால் நேரம் முரண்பாடாகும். பொறுப்பாளர்களை ஜிமின் மற்றும் சோயோன், இடத்தை மூன்றாம் மாடிக் கூட்ட அறை ஆக்கிய மாற்றங்கள் தானாகப் பயன்படும்.
முரண்பாட்டை இவ்வாறு தீர்க்கலாம்:
- இடது >>: தொடக்கப் பதிப்பின் தொடர்புடைய உள்ளடக்கத்தை ஏற்கும்.
- வலது <<: புதிதாகச் சேமித்த பதிப்பின் தொடர்புடைய உள்ளடக்கத்தை ஏற்கும்.
- தற்போதைய உள்ளடக்கத்துடன் தீர்க்கவும்: நடுவை வைத்தோ திருத்தியோ தீர்ந்ததாகக் குறிக்கும்.
நடுவிலுள்ள நேர வாக்கியத்தை மாற்றி தற்போதைய உள்ளடக்கத்துடன் தீர்க்கவும் அழுத்துங்கள். எல்லா முரண்பாடுகளும் தீர்ந்தால்தான் உறுதிசெய்யலாம்.
ஏற்றுகிறது…
தீர்ந்த பகுதியை மீண்டும் திருத்தினாலும் நிலை நீடிக்கும். தீர்வைச் செயல்தவிர்த்தால் நிலையையும் தவிர்க்கும்; மீள்செய்தால் மீட்கும். உரையை அழிப்பதோ மாற்றுவதோ மட்டும் திறந்த முரண்பாட்டைத் தானாகத் தீர்க்காது.
தானியக்க இணைப்பு மற்றும் முரண்பாட்டு விதிகள்
தொடக்க ஆவணத்திலிருந்து உங்கள் ஆவணத்திற்கும் அதே தொடக்கத்திலிருந்து புதிய பதிப்பிற்கும் மாற்றங்கள் ஒப்பிடப்படும். ஒருபுற மாற்றங்களும் இருபுற ஒரே மாற்றங்களும் தானாகப் பயன்படும். தனித்த பத்தி அல்லது வரி மாற்றங்களும் இணையும்.
Git உரை இணைப்புபோல் பத்தி மற்றும் வரி அடிப்படையில் மோதல் கணிக்கப்படும். ஒரே வரியில் வேறு சொற்களை மாற்றினாலும் முரண்பாடு நீடிக்கும். ஒரே இடத்தில் வேறு சேர்த்தல்கள் அல்லது மறுபக்கம் அழித்ததைத் திருத்துவதும் முடிவு தேவைப்படுத்தும்.
அட்டவணை, பட்டியல், float போன்ற கட்டமைப்புத் தொகுதியை இருபுறமும் வேறாக மாற்றினால் முழுக் கட்டமைப்பும் முரண்பாடு. செல்களும் பட்டியல் உருப்படிகளும் தன்னிச்சையாகக் கலக்காது; உள்ளடக்கத்தைத் தேர்ந்தெடுக்கவும் அல்லது நடுவில் திருத்தவும். நகர்த்தலும் திருத்தமும் மோதும்போது இடம் உறுதியில்லையெனில் அதுவும் தானாகப் பயன்படாது.
தனித்த இணைப்புக் காட்சியை இணைத்தல்
base, local, incoming இல் சேமித்த NABI TREE JSON அல்லது HTML சரங்களைத் தாருங்கள். அசல் திருத்தியின் அதே wing-கள், விருப்பங்களைப் பயன்படுத்துங்கள். mountMerge() நடுத் திருத்தி, கருவிப்பட்டை, இரு மூலங்கள், முரண்பாட்டுத் தேர்வு மற்றும் உறுதி பொத்தானை உருவாக்கும்.
import { wings } from 'nabi-note'
import { mountMerge } from 'nabi-note/merge'
import 'nabi-note/nabi.css'
const merge = mountMerge({
root: document.querySelector('#merge')!,
base: editingStartedDocument,
local: myEditedDocument,
incoming: latestDocument,
wings: wings().allBasic().build(),
locale: 'ta',
incomingVersion: latestVersion,
async onConfirm({ json, html, incomingVersion, signal }) {
return saveDocument({ json, html, expectedVersion: incomingVersion, signal })
},
onError(error) {
showError(error)
},
})onConfirm முழுவதும் தீர்ந்த தற்போதைய முடிவின் JSON, வெளியீட்டு HTML, திருத்த revision மற்றும் incomingVersion பெறும். false திரும்பினால் உறுதி முடிவடையாது. Promise நிலுவையில் திருத்தம், முரண்பாட்டுத் தேர்வு மற்றும் மீண்டும் உறுதி தடுக்கப்படும். காட்சியை அகற்றினால் முடிவின் signal ரத்தாகும். கொரிய IME எழுத்துக்கோர்ப்பு முடிந்த பின்னரே உறுதிசெய்யலாம்.
படத்தேர்வு அல்லது பதிவேற்றம் போன்ற சேவைச் செயல்களை வழக்கமான திருத்திபோல் இணைக்கவும். toolbarOptions இல் பலகைகள், host செயல்கள்; surfaceOptions இல் திருத்தப் பரப்பு விருப்பங்கள் தரலாம்.
incomingVersion சேவை தந்த மதிப்பை மாற்றாமல் தரும். சேமிக்கும்போது சேவை அதைச் சேவையகத்தின் சமீபத்திய பதிப்போடு ஒப்பிட வேண்டும். இணைக்கும்போது புதிய பதிப்பு சேமிக்கப்பட்டால் பழைய முடிவால் மேலெழுதாமல் புதிய ஆவணத்தைப் பெற்று புதிய இணைப்பைத் தொடங்குங்கள்.
காட்சிக்கு வெளியிலிருந்தும் நிலையைப் படிக்கவோ உறுதியை அழைக்கவோ முடியும்.
const stop = merge.session.onChange((state) => {
updateRemainingCount(state.unresolvedCount)
})
const canConfirm = merge.session.getState().canConfirm
const confirmed = await merge.confirm()
stop()
merge.unmount()merge.nabi.getJson(), merge.nabi.getHtml() மூலம் முடிவைப் படிக்கவும். திருத்த DOM அல்லது getEditorHtml() சேமிக்காதீர்கள். இரு பதிப்புகளிடையே தேர்ந்த பழைய உள்ளடக்கத்தை மட்டும் பயன்படுத்த ஒப்பீடு கிளிக் இணைப்பைப் பயன்படுத்தவும்.
பதிவேற்றம் முடிந்தபின் உறுதிசெய்தல்
கோப்பு பொத்தான், ஒட்டல், இழுத்துவிடலுக்கு upload wing மற்றும் mountUpload() இணைக்கவும். sendUpload கோப்பைச் சேவையகத்திற்கு அனுப்பி { uri } தரும். முழு இணைப்பு மற்றும் முன்னேற்ற எடுத்துக்காட்டு கோப்பு பதிவேற்றம் பகுதியில் உள்ளது.
ஆவணத்தில் இன்னும் சேராத பதிவேற்றம் போன்ற ஒத்திசைவற்ற வேலையில் merge.session.hold() மூலம் உறுதியையும் முரண்பாட்டுத் தேர்வையும் நிறுத்தவும். முடிதல், ரத்து அல்லது காட்சி அகற்றலில் திரும்பிய செயல்பாட்டை அழைக்கவும். சேவையகத்திற்கு ஏறியவுடனல்ல, ஆவணத்தில் சேர்த்தபின் விடுவிக்கவும்; அப்போதுதான் கோப்பு இறுதி முடிவில் இருக்கும்.
import { mountUpload, wings, type UploadMount } from 'nabi-note'
import { mountMerge } from 'nabi-note/merge'
let upload: UploadMount | undefined
let releaseUpload: (() => void) | undefined
const merge = mountMerge({
root,
base,
local,
incoming,
wings: wings().allBasic().use('upload').build(),
locale: 'ta',
incomingVersion: latestVersion,
toolbarOptions: { onFiles: (files) => upload?.take(files) },
surfaceOptions: { fileSink: (files) => upload?.take(files) },
onConfirm: ({ json, html, incomingVersion, signal }) =>
saveDocument({ json, html, expectedVersion: incomingVersion, signal }),
})
upload = mountUpload({
nabi: merge.nabi,
root: merge.content,
locale: 'ta',
uploader: sendUpload,
onStart() {
releaseUpload = merge.session.hold()
},
onDone() {
releaseUpload?.()
releaseUpload = undefined
},
})
function dispose() {
upload?.unmount()
releaseUpload?.()
merge.unmount()
}merge.content நடுத் திருத்த DOM; merge.surface, merge.toolbar ஏற்கெனவே இணைந்தவை. அதே இடத்தில் மற்றொரு பரப்பு அல்லது பட்டை உருவாக்காதீர்கள். கூடுதல் பதிவேற்றம், முன்னேற்ற mount-களை முதலில் அகற்றி கடைசியில் merge.unmount() அழைக்கவும்.