Kramdown tez, sof Ruby Markdown-superset konvertori


Download 258.14 Kb.
bet4/11
Sana14.05.2023
Hajmi258.14 Kb.
#1461903
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Sintaksis Kramdown (1)

Standart kod bloklari

Kod blokini to'rtta bo'sh joy yoki bitta yorliq, so'ngra kod blokining matni yordamida boshlash mumkin. Matnni o'z ichiga olgan barcha keyingi satrlar, ular ushbu sintaksisga mos keladimi yoki yo'qmi, kod blokiga tegishli, chunki kod bloklari satrlarni o'rashni qo'llab-quvvatlaydi ). O'ralgan kod qatori avtomatik ravishda oldingi kod qatoriga qator uzilishini bo'sh joy belgisi bilan almashtirish orqali qo'shiladi. Kod blokining har bir satridan chekinish (to'rtta bo'sh joy yoki bitta yorliq) olib tashlanadi.


Asl Markdown sintaksisi kod bloklarida satrlarni o'rashga ruxsat bermaydi.

E'tibor bering, faqat bo'sh satrlar bilan ajratilgan ketma-ket kod bloklari bitta kod blokiga birlashtiriladi:

https://kramdown.gettalong.org/syntax.html 7/30
07.05.2023, 19:53 Sintaksis | Kramdown
Here comes some code

This text belongs to the same code block.

Agar siz to'g'ridan-to'g'ri bitta kod blokiga ega bo'lishni istasangiz, ikkitasini ajratish uchun EOB markeridan foydalanishingiz kerak :

Here comes some code ^
This one is separate.

Devorlangan kod bloklari

Ushbu muqobil sintaksis asl Markdown sintaksisining bir qismi emas. Fikr va sintaksis PHP Markdown Extra paketidan olingan.


kramdown shuningdek kod bloklari uchun muqobil sintaksisni qo'llab-quvvatlaydi, bu esa chekinish bloklarini ishlatmaydi, lekin chiziqlarni chegaralaydi. Boshlang'ich chiziq uch yoki undan ortiq tilda belgilaridan ( ~) boshlanishi kerak va yopilish chizig'i kamida boshlang'ich chiziqdagi tildalar soniga ega bo'lishi kerak. Ularning orasidagi hamma narsa boshqa sintaksisdagi kabi so'zma-so'z qabul qilinadi, lekin matnni chegaralashning hojati yo'q. Masalan:

~~~~~~~~
Here comes some code. ~~~~~~~~

Agar sizga bunday kod blokida tilda chiziqlari kerak bo'lsa, kod blokini ko'proq tildalar bilan boshlang. Masalan:

~~~~~~~~~~~~ ~~~~~~~
code with tildes ~~~~~~~~ ~~~~~~~~~~~~~~~~~~


Ushbu turdagi kod bloki, ayniqsa, nusxa ko'chirish-joylashtirilgan kod uchun foydalidir, chunki kodni cheklash kerak emas.

Kod bloklari tili

Kramdownga kod blokining tilini IAL yordamida aytishingiz mumkin :

~~~
def what? 42
end ~~~
{: .language-ruby}

Maxsus nomlangan sinf language-rubykramdownga ushbu kod bloki Ruby tilida yozilganligini aytadi. Bunday ma'lumotlar, masalan, konvertorlar tomonidan kod blokida sintaksisni ajratib ko'rsatish uchun ishlatilishi mumkin.

O'ralgan kod bloklari tilni belgilashning osonroq usulini ta'minlaydi, ya'ni kod blokining tilini boshlang'ich qatorning oxiriga qo'shish orqali:

~~~ ruby def what?
42 end ~~~

https://kramdown.gettalong.org/syntax.html 8/30
07.05.2023, 19:53 Sintaksis | Kramdown Ro'yxatlar
kramdown tartiblangan va tartiblanmagan roʻyxatlar hamda taʼriflar roʻyxatini yaratish uchun sintaksis elementlarini taqdim etadi.

Tartibli va tartibsiz ro'yxatlar

Har ikkala tartibli va tartibsiz ro'yxatlar bir xil qoidalarga amal qiladi.

Roʻyxat roʻyxat markeridan boshlanadi (tartibsiz roʻyxatlar boʻlsa +, dan biri -yoki *– ularni aralashtirishingiz mumkin – tartiblangan roʻyxatlarda esa raqamdan keyin nuqta qoʻyiladi), undan soʻng bitta yorliq yoki kamida bitta boʻsh joy, ixtiyoriy ravishda keyin ro'yxat elementiga qo'llanilishi kerak bo'lgan IAL , keyin esa ro'yxat elementi mazmunining birinchi qismi. Roʻyxat elementining quyidagi mazmuni bilan yaxshi moslashishga imkon berish uchun yetakchi yorliqlar yoki boʻshliqlar ushbu birinchi tarkib qatoridan olib tashlanadi (pastga qarang). Bir xil marker turiga ega (tartibsiz yoki tartiblangan) quyidagi barcha roʻyxat elementlari bir xil roʻyxatga kiritiladi. Buyurtmalangan ro'yxatlar uchun ishlatiladigan raqamlar ahamiyatsiz, tartiblangan ro'yxat har doim 1dan boshlanadi.


Quyida tartibsiz roʻyxat va tartiblangan roʻyxat berilgan:

* kram + down - now

1. kram 2. down 3. now


Asl Markdown sintaksisi tartiblangan va tartiblanmagan roʻyxatlar markerlarini aralashtirish imkonini beradi, birinchi marker roʻyxat turini (tartibli yoki tartibsiz) belgilaydi. Kramdownda bunga ruxsat berilmaydi. Yuqoridagi misol sizga kramdown-da ikkita ro'yxatni (tartibsiz va tartiblangan) va Markdown-da faqat bitta tartibsiz ro'yxatni beradi.

Ro'yxatdagi birinchi ro'yxat belgisi uchta bo'sh joygacha chekinishi mumkin. Xuddi shu satrda ro'yxat elementi belgisidan keyin paydo bo'ladigan birinchi bo'sh joy bo'lmagan belgining ustun raqami ro'yxat elementi tarkibining keyingi qatorlari uchun ishlatilishi kerak bo'lgan chegarani belgilaydi. Agar bunday belgi bo'lmasa, to'rtta bo'sh joy yoki bitta yorliqdan foydalanish kerak bo'ladi. Chiziqli satrlardan keyin satrlarni o'rash tufayli har qanday chekinish miqdori bo'lgan matnni o'z ichiga olgan satrlar kelishi mumkin . Shuni yodda tutingki, qatorni o'rash bo'limida ko'rsatilgan qoidalarga qo'shimcha ravishda, ro'yxat elementi boshqa ro'yxat elementi belgisi bilan chiziq paydo bo'lganda ham tugaydi - keyingi paragrafga qarang.


Chiziq mazmundan olib tashlanadi va tarkib (tarkibda tabiiy ravishda element belgisi bilan qator mazmuni ham borligini unutmang) blok darajasidagi elementlarni o'z ichiga olgan matn sifatida qayta ishlanadi. Ro'yxatdagi barcha boshqa ro'yxat belgilaridan qaysi biri kichikroq bo'lsa, uchta bo'shliqqa yoki oxirgi ro'yxat bandining chekinishi uchun ishlatiladigan bo'shliqlar sonidan bittaga minus bo'lishi mumkin. Masalan:

* This is the first line. Since the first non-space characters appears in column 3, all other indented lines have to be indented 2 spaces.
However, one could be lazy and not indent a line but this is not recommended.
* This is the another item of the list. It uses a different number
of spaces for indentation which is okay but should generally be avoided. * The list item marker is indented 3 spaces which is allowed but should
also be avoided and starts the third list item. Note that the lazy line in the second list item may make you believe that this is a sub-list which it isn't! So avoid being lazy!

Shunday qilib, yuqorida mumkin bo'lgan va uchta elementdan iborat bitta ro'yxatni yaratgan bo'lsa-da, bir xil darajadagi ro'yxat elementlari uchun turli xil (marker va ro'yxat mazmuni) chekinishlardan, shuningdek,

https://kramdown.gettalong.org/syntax.html 9/30
07.05.2023, 19:53 Sintaksis | Kramdown
dangasa chekinishdan foydalanish tavsiya etilmaydi! Bunday ro'yxatni quyidagi tarzda yozish yaxshiroqdir:

* This is the first list item bla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla bla
* This is the another item of the list. bla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla

Asl Markdown sintaksisi, shuningdek, markerni cheklash imkonini beradi, ammo ro'yxat elementlari bilan nima sodir bo'lishi aniq ko'rsatilmagan va sizni hayratda qoldirishi mumkin.


Bundan tashqari, Markdown ro'yxat elementiga tegishli qatorlarni cheklash uchun belgilangan miqdordagi bo'shliqlar/yorliqlardan foydalanadi!


Tartibsiz va tartiblangan ro'yxatlar chekinishda bir xil ishlaydi:

* list 1 item 1
* list 1 item 2 (indent 1 space)
* list 1 item 3 (indent 2 spaces)
* list 1 item 4 (indent 3 spaces)
* lazy text belonging to above item 4

1. list 1 item 1
2. list 1 item 2 (indent 1 space) 3. list 1 item 3 (indent 2 spaces)
4. list 1 item 4 (indent 3 spaces)
5. lazy text belonging to above item 4

* list 1 item 1
* nested list item 1 * nested list item 2
* list 1 item 2
* nested list item 1

1. list 1 item 1
1. nested list item 1 2. nested list item 2
10. list 1 item 2
1. nested list item 1

1. text for this list item further text (indent 3 spaces)

10. text for this list item further text (indent 4 spaces)

Ro'yxat elementining mazmunini cheklash uchun yorliqlardan foydalanganda, yorliq to'xtashlari kramdown uchun to'rtga ko'paytirilishini unutmang. Yorliqlar chekinishni hisoblash uchun bo'sh joylarga to'g'ri aylantirilgan. Masalan:

* Using a tab to indent this line, the tab only counts as three spaces and therefore the overall indentation is four spaces.

1. The tab after the marker counts here as three spaces. Since the indentation of the marker is three spaces and the marker itself takes two characters, the overall indentation needed for the following lines is eight spaces or two tabs.

Agar siz yorliqlar va boʻshliqlarni aralashtirsangiz yoki muharriringizda toʻrtga karrali yorliq toʻxtash joylari oʻrnatilmagan boʻlsa, kutilmagan natijalarga erishishingiz aniq! Shuning uchun bundan qochish kerak!


Ro'yxat elementining mazmuni matn yoki blok darajasidagi elementlardan iborat. Oddiy ro'yxat elementlari faqat yuqoridagi misollardagi kabi matnni o'z ichiga oladi. Ular hatto paragraf yorlig'iga o'ralmagan. Agar birinchi roʻyxat matnidan keyin bir yoki bir nechta boʻsh satrlar boʻlsa, u paragraf tegiga oʻraladi:

https://kramdown.gettalong.org/syntax.html 10/30
07.05.2023, 19:53 Sintaksis | Kramdown
* kram

* down * now


Yuqoridagi misolda, ro'yxatning birinchi elementi matni paragraf tegiga o'raladi, chunki undan keyin bo'sh satr, ikkinchi ro'yxat elementi esa faqat matnni o'z ichiga oladi. Ro'yxatning oxirgi elementida faqat matn bo'lsa, buni qilishda muammo borligi aniq. Buni roʻyxatning oxirgi bandidan keyin boʻsh qator qoldirib, EOB markeridan foydalanib chetlab oʻtishingiz mumkin:

* Not wrapped in a paragraph
* Wrapped in a paragraph due to the following blank line.

* Also wrapped in a paragraph due to the following blank line and the EOB marker.

^


Download 258.14 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling