Skip to content

Text Editor ​

Word-ga o‘xshash imkoniyatlarga ega to‘liq funksiyali rich text muharriri: shrift uslubi, rang tanlagichlari, tekshiruv ro‘yxatlari, jadvallar, rasm/video embedlari, emoji, qidirish va almashtirish, izohlar, chop etish, to‘liq ekran va boshqalar. Tashqi bog‘liqliksiz contenteditable asosida qurilgan.

Arial
14
LH
Ajoyib narsa yozing...
vue
<script setup>
import { ref } from 'vue'
const content = ref('')
</script>

<template>
  <VxTextEditor v-model="content" placeholder="Write something amazing..." />
</template>

With Initial Content ​

Arial
14
LH
Start writing...
vue
<template>
  <VxTextEditor v-model="content" />
</template>

Image Upload with beforeUpload ​

beforeUpload prop tanlangan File obyektini qabul qiladi. Funksiyangiz uni serveringizga yuklashi va rasm URL’ini qaytarishi kerak. URL qaytarilgandan so‘ng muharrir rasmni kiritadi.

Arial
14
LH
Yuklash uchun rasm tugmasini bosing yoki rasmni drag & drop qiling...
vue
<script setup>
import { ref } from 'vue'

const content = ref('')

async function handleUpload(file) {
  // Upload file to your server
  const formData = new FormData()
  formData.append('image', file)

  const response = await fetch('/api/upload', {
    method: 'POST',
    body: formData,
  })

  const data = await response.json()

  // Return the URL — the editor inserts <img src="url">
  return data.url
}
</script>

<template>
  <VxTextEditor
    v-model="content"
    :before-upload="handleUpload"
    :max-file-size="5 * 1024 * 1024"
    @upload-error="(err, file) => console.error(err, file)"
  />
</template>

Qanday ishlaydi:

  1. Foydalanuvchi rasm asboblar paneli tugmasini bosadi → "Upload" tab → diskdan faylni tanlaydi
  2. beforeUpload(file) xom File obyekti bilan chaqiriladi
  3. Funksiyangiz serverga yuklaydi va URL qatorini qaytaradi
  4. Muharrir kursor pozitsiyasida <img src="returned-url"> ni kiritadi

Shuningdek quyidagilarni qo‘llab-quvvatlaydi:

  • Drag & drop — rasmlarni to‘g‘ridan-to‘g‘ri muharrirga tashlang
  • Paste — clipboard’dan rasmlarni joylashtiring (ekran tasvirlari, ko‘chirilgan rasmlar)
  • URL tab — zaxira sifatida rasm URL’ini qo‘lda kiriting

Resizable Images ​

Muharrirdagi istalgan rasmni tanlash uchun uning ustiga bosing. Hajmini o‘zgartirish uchun burchak yoki yon tutqichlarini suring. Tanlangan rasmni o‘chirish uchun Delete yoki Backspace tugmasini bosing.

Arial
14
LH
Rasmni shu yerga tashlang va o‘lchamini o‘zgartirish uchun ustiga bosing...
vue
<template>
  <VxTextEditor v-model="content" :before-upload="handleUpload" />
  <!-- Click any inserted image to select it, then drag handles to resize -->
</template>

Table ​

Grid tanlovchini ochish uchun asboblar panelidagi jadval tugmasini bosing. O‘lcham tanlash uchun kursor bilan o‘ting va kiritish uchun bosing.

Jadvalni kiritish uchun asboblar panelidagi jadval belgisini bosing...
vue
<template>
  <VxTextEditor v-model="content" />
</template>

O‘ng tugmali kontekst menyu istalgan katakda:

  • Yuqoriga / pastga qator qo‘shish
  • Chapga / o‘ngga ustun qo‘shish
  • Katakchani o‘ngga birlashtirish — o‘ng tarafdagi katakcha bilan birlashtiradi (colspan’ni oshiradi)
  • Katakchani pastga birlashtirish — pastdagi katakcha bilan birlashtiradi (rowspan’ni oshiradi)
  • Katakchani ajratish — colspan > 1 yoki rowspan > 1 bo‘lganda paydo bo‘ladi, birlashtirilgan katakchani qaytadan ajratadi
  • Colspan / Rowspan boshqaruvi — aniq span qiymatlarini o‘rnatish uchun +/- tugmalari
  • Qator / ustun / jadvalni o‘chirish

Ustun o‘lchamini o‘zgartirish — o‘lcham o‘zgartirish kursorini ko‘rish uchun kursor bilan ustun chegarasi yonidan o‘ting, so‘ngra o‘lchamini o‘zgartirish uchun suring.

Font Family & Size ​

Tipografiyani o‘zgartirish uchun font oilasi va font o‘lchami ochiluvchi menyularidan foydalaning. Avval matnni tanlang, keyin shrift yoki o‘lchamni tanlang.

Arial
14
Start writing...
vue
<template>
  <VxTextEditor
    v-model="content"
    :toolbar="['fontFamily', 'fontSize', '|', 'bold', 'italic', '|', 'undo', 'redo']"
  />
</template>

Text & Highlight Color ​

Tanlangan matnga matn rangini yoki fon ajratib ko‘rsatish rangini qo‘llang. 80 ta tayyor rangdan birini tanlang.

Start writing...
vue
<template>
  <VxTextEditor
    v-model="content"
    :toolbar="['bold', 'italic', '|', 'textColor', 'highlightColor', '|', 'undo', 'redo']"
  />
</template>

Checklist ​

Interaktiv tekshiruv ro‘yxatlari yarating. Elementlarni almashtirish uchun checkbox sohasiga bosing.

Bajariladigan ishlar ro‘yxatini qo‘shish uchun checklist tugmasini bosing...
vue
<template>
  <VxTextEditor
    v-model="content"
    :toolbar="['checklist', '|', 'bulletList', 'orderedList', '|', 'bold', 'italic', '|', 'undo', 'redo']"
  />
</template>

Video Embed ​

YouTube yoki Vimeo videolarini joylashtiring. Video tugmasini bosing, URL’ni joylashtiring va muharrir responsiv iframe’ni kiritadi.

YouTube yoki Vimeo video joylashtirish uchun video tugmasini bosing...
vue
<template>
  <VxTextEditor
    v-model="content"
    :toolbar="['video', 'image', 'link', '|', 'bold', 'italic', '|', 'undo', 'redo']"
  />
</template>

Import & Export ​

Word hujjatlarini (.docx/.doc) import qiling, Word yoki PDF’ga eksport qiling. Asboblar paneli tugmalari Vexel Icons’dan foydalanadi.

Eksport qilish uchun matn kiriting yoki Word hujjatini import qiling...
vue
<script setup>
import { ref } from 'vue'
const content = ref('')
</script>

<template>
  <VxTextEditor
    v-model="content"
    :toolbar="[
      'bold', 'italic', 'underline', '|',
      'heading1', 'heading2', '|',
      'bulletList', 'orderedList', '|',
      'importWord', 'exportWord', 'exportPdf',
    ]"
  />
</template>

Xususiyatlar:

  • Import Word — .docx yoki .doc faylni tanlash uchun import belgisini bosing. Kontent tahlil qilinadi va muharrirga kiritiladi.
  • Export Word — Muharrir kontentini tegishli formatlash, jadvallar va uslublar bilan Word’ga mos .doc fayl sifatida yuklab oladi.
  • Export PDF — Toza chop etish uslublari bilan PDF sifatida saqlash uchun brauzerning chop etish dialogini ochadi.

Barcha Word’ga o‘xshash asboblar paneli elementlari yoqilgan — shrift uslubi, ranglar, ro‘yxatlar, media, emoji, maxsus belgilar, qidirish va almashtirish, izohlar, sahifa tanaffuslari, chop etish va to‘liq ekran.

Arial
14
LH
To‘liq funksiyali Word’ga o‘xshash muharrir...
vue
<template>
  <VxTextEditor v-model="content" :before-upload="handleUpload" show-word-count show-character-count />
</template>

Custom Toolbar ​

Asboblar paneli elementlarining moslashtirilgan massivini uzating. Ajratuvchilar uchun '|' dan foydalaning.

Faqat oddiy formatlash...
vue
<template>
  <VxTextEditor
    v-model="content"
    :toolbar="['bold', 'italic', 'underline', '|', 'bulletList', 'orderedList', '|', 'image', 'link', '|', 'undo', 'redo']"
    :before-upload="handleUpload"
  />
</template>

No Toolbar ​

Asboblar panelini butunlay yashirish uchun :toolbar="false" ni o‘rnating. Klaviatura yorliqlari hamon ishlaydi.

Start writing...
vue
<template>
  <VxTextEditor v-model="content" :toolbar="false" />
</template>

Word & Character Count ​

Arial
14
LH
Start writing...
vue
<template>
  <VxTextEditor v-model="content" show-word-count show-character-count />
</template>

Min / Max Height ​

Arial
14
LH
Compact editor with scroll...
vue
<template>
  <VxTextEditor v-model="content" min-height="100px" max-height="300px" />
</template>

Read Only ​

Arial
14
LH
Start writing...
vue
<template>
  <VxTextEditor v-model="content" readonly />
</template>

Disabled ​

Arial
14
LH
Start writing...
vue
<template>
  <VxTextEditor model-value="<p>Disabled content</p>" disabled />
</template>

HTML Output ​

Arial
14
LH
Type to see HTML output below...
vue
<script setup>
import { ref } from 'vue'
const content = ref('')
</script>

<template>
  <VxTextEditor v-model="content" />
  <pre>{{ content }}</pre>
</template>

Toolbar Items ​

Barcha mavjud asboblar paneli elementlari:

ItemDescription
fontFamilyShrift oilasi ochiluvchi menyusi (Arial, Times New Roman, Georgia va boshqalar)
fontSizeShrift o‘lchami ochiluvchi menyusi (8px – 72px)
boldQalin matn
italicKursiv matn
underlineTagiga chizilgan matn
strikethroughChizilgan matn
heading1 – heading6Sarlavha darajalari 1–6
textColorMatn rangi tanlagichi (80 ta tayyor rang)
highlightColorFon ajratib ko‘rsatish rangi tanlagichi
bulletListTartiblanmagan ro‘yxat
orderedListTartiblangan ro‘yxat
checklistCheckbox’lar bilan interaktiv tekshiruv ro‘yxati
blockquoteIqtibos bloki
codeIchki kod
codeBlockKod bloki
linkHavolani kiritish/tahrirlash
imageRasm yuklash yoki URL orqali kiritish
videoYouTube yoki Vimeo video joylashtirish
tableGrid tanlovchi bilan jadval kiritish; qator/ustun/birlashtirish amallari uchun katakchalarni o‘ng tugma bilan bosing
emojiEmoji tanlagichi (80 ta emoji)
specialCharsMaxsus belgilar tanlagichi (60 ta belgi)
alignLeftChapga tekislash
alignCenterMarkazga tekislash
alignRightO‘ngga tekislash
alignJustifyIkki tomonga tekislash
indentChekinishni oshirish
outdentChekinishni kamaytirish
lineHeightQator balandligi tanlagichi (1.0 – 3.0)
horizontalRuleGorizontal chiziq
pageBreakSahifa tanaffusini kiritish
footnoteRaqamlangan izoh kiritish
subscriptPastki indeks
superscriptYuqori indeks
findReplaceKeyingi/oldingi navigatsiyaga ega qidirish va almashtirish paneli
undoBekor qilish
redoQaytarish
clearFormatlashni tozalash
printMuharrir kontentini chop etish
fullscreenTo‘liq ekran tahrirlash rejimini almashtirish
|Ajratuvchi

Props ​

PropTypeDefaultDescription
modelValuestring''HTML kontent (v-model)
placeholderstring'Start writing...'Placeholder matni
disabledbooleanfalseMuharrirni o‘chirish
readonlybooleanfalseFaqat o‘qish rejimi
toolbarTextEditorToolbarItem[] | falseDefault toolbarAsboblar paneli sozlamalari
minHeightstring'200px'Muharrirning minimal balandligi
maxHeightstringundefinedMuharrirning maksimal balandligi (scroll’ni yoqadi)
showCharacterCountbooleanfalseBelgilar sonini ko‘rsatish
showWordCountbooleanfalseSo‘zlar sonini ko‘rsatish
autofocusbooleanfalseMontaj qilinganda avtomatik fokuslash
beforeUpload(file: File) => Promise<string> | stringundefinedYuklash ishlovchisi — faylni qabul qiladi, rasm URL’ini qaytarishi kerak
acceptstring'image/*'Fayl kirish uchun qabul qilinadigan fayl turlari
maxFileSizenumberundefinedMaksimal fayl o‘lchami (baytlarda)

Events ​

EventPayloadDescription
update:modelValuestringKontent o‘zgarganda chiqariladi
focusFocusEventMuharrir fokus olganda chiqariladi
blurFocusEventMuharrir fokusni yo‘qotganda chiqariladi
changestringKontent o‘zgarganda chiqariladi
uploadError(error: Error, file: File)Rasm yuklash muvaffaqiyatsiz tugaganda yoki o‘lcham chegarasidan oshganda chiqariladi

Exposed Methods ​

MethodDescription
focus()Focus the editor
blur()Blur the editor
getHTML()Get current HTML content
getText()Get current plain text content
exec(command, value?)Execute a document command