IlmHamroh
JavaScript Full-stack/1-qism. Kompyuter, fayllar va terminal37/40-dars16 daqiqa
Mundarija (38)

Markdown: dasturchi yozuv tili — sarlavha, ro'yxat, kod va README

Qisqacha: Markdown — oddiy matnga bir nechta belgi qo'shib, uni chiroyli hujjatga aylantiradigan yozuv usuli. # — sarlavha, - — ro'yxat, **so'z** — qalin, uchta backtick — kod bloki. Fayl kengaytmasi .md. GitHub'dagi README fayllari, texnik hujjatlar va hatto siz o'qiyotgan shu dars ham Markdown'da yozilgan.

Bu darsda

  • Sarlavha, qalin va kursiv matn, ro'yxat, havola va rasmni Markdown'da yoza olasiz.
  • Kod bloklarini til nomi bilan yozib, rangli ko'rinishga keltira olasiz.
  • GitHub qo'shimchalari (GFM): jadval, task list va ogohlantirish bloklarini ishlatasiz.
  • Frontmatter, Mermaid va MDX nima ekanini tushuntira olasiz.
  • Loyihangiz uchun tushunarli README.md yoza olasiz.

Oldin bilishingiz kerak: Matnli va binar fayllar, YAML, TOML, INI va .env, XML va uning vorislari.


1. Nega bu kerak?

Oldingi darsda XML'ni ko'rdingiz: har bir ma'lumot <teg> va </teg> orasiga o'raladi. Kompyuter uchun bu qulay, lekin odam uchun charchatadi. Bitta sarlavha va ikki punktli ro'yxatni HTML'da (veb-sahifalar tili, uni 04-qismda o'rganamiz) yozib ko'ring:

html
<h2>Xaridlar</h2>
<ul>
  <li>Non</li>
  <li>Sut</li>
</ul>

Xuddi shu narsa Markdown'da:

markdown
## Xaridlar

- Non
- Sut

Teglar yo'q, lekin tuzilma baribir tushunarli. Hatto oddiy Notepad'da ochsangiz ham, qayer sarlavha, qayer ro'yxat — ko'rinib turadi.

Word hujjati (.docx) bilan ham solishtiring. Matnli va binar fayllar darsida ko'rganingizdek, .docx — binar fayl: uni faqat Word ochadi. Markdown fayl esa oddiy matn:

Word (.docx) Markdown (.md)
Fayl turi Binar (ZIP ichida XML) Oddiy matn
Nima bilan ochiladi Faqat Word kabi dastur Istalgan muharrir, terminal
O'zgarishni kuzatish Qiyin Qatorma-qator ko'rinadi

Oxirgi qator dasturchi uchun juda muhim. Dasturchilar Git degan dastur bilan fayllarning har bir o'zgarishini saqlaydi (uni 07-qismda o'rganamiz). Git matnli faylda "3-qatorda shu so'z o'zgardi" deb aniq ko'rsatadi. Binar faylda buni qila olmaydi.

Markdown'ni 2004-yilda Jon Gruber (John Gruber) o'ylab topgan. Maqsadi: xat yozgandek tabiiy matn, lekin undan chiroyli sahifa chiqsin.

1.1 Markdown qanday qilib chiroyli ko'rinishga keladi?

.md faylning o'zi — shunchaki matn. Uni chiroyli qilib ko'rsatadigan dastur renderer deyiladi (o'zbekcha: "chizuvchi"). Renderer # ni ko'rib, katta sarlavha chizadi. - ni ko'rib, ro'yxat nuqtalarini qo'yadi.

Rendererlar hamma joyda bor: GitHub (dasturchilar kodini saqlaydigan sayt), VS Code muharriri, Telegram, Notion va shu IlmHamroh sayti. Bu jarayonning chizmasini Mermaid bo'limida Markdown'ning o'zi bilan chizamiz.

Maslahat: Misollarni qayerda sinash mumkin? Hozircha brauzerda "markdown editor online" deb qidiring: chap tomonda yozasiz, o'ng tomonda natija chiqadi. Kod yozish dasturi VS Code'ni alohida darsda o'rnatamiz. Unda .md faylni ochib, Ctrl + Shift + V bossangiz, tayyor ko'rinish (preview) ochiladi.


2. Asosiy yozuv

2.1 Paragraf: bo'sh qator muhim

Markdown'da yangi paragraf (xat boshi) bo'sh qator bilan boshlanadi:

markdown
Choyxonamiz har kuni ochiq.
Dam olish kuni yo'q.

Palov faqat tushlikda tayyorlanadi.

Natija — ikkita paragraf. Birinchi ikki qator bitta qatorga qo'shilib ketadi: "Choyxonamiz har kuni ochiq. Dam olish kuni yo'q." Chunki orasida bo'sh qator yo'q.

Bu boshlovchilarni eng ko'p hayron qoldiradigan qoida. Qatorni paragrafsiz uzmoqchi bo'lsangiz, qator oxiriga ikkita probel qo'ying yoki <br> yozing. Lekin odatda bo'sh qator yetarli.

2.2 Sarlavhalar

Sarlavha # belgisi bilan boshlanadi. # qancha ko'p bo'lsa, sarlavha shuncha kichik:

markdown
# Hujjat nomi
## Katta bo'lim
### Kichik bo'lim
  • # — eng katta sarlavha. Hujjatda odatda bitta bo'ladi.
  • ## va ### — bo'limlar. Eng ko'pi ###### (6 daraja), lekin amalda 3 tadan oshmaydi.
  • # dan keyin bo'sh joy shart: # Menyu — sarlavha, #Menyu — oddiy matn.

Shu darsning o'zi ham shunday tuzilgan: tepada bitta #, bo'limlar ##, kichik bo'limlar ###.

2.3 Qalin, kursiv, ustidan chizilgan

markdown
**qalin** — muhim so'z uchun
*kursiv* — urg'u uchun
~~eski narx~~ — ustidan chizilgan

Natijada: qalin, kursiv va eski narx. Yulduzchalar juft bo'ladi: biri boshida, biri oxirida. Ustidan chizish (~~) — GitHub qo'shgan imkoniyat, uni GFM bo'limida ko'ramiz.

Agar yulduzchaning o'zini ko'rsatmoqchi bo'lsangiz, oldiga teskari chiziq qo'ying: \*. Bu "bu belgi maxsus emas, oddiy matn" degani.

Tekshirib ko'ring: #Narxlar va # Narxlar qatorlaridan qaysi biri sarlavha bo'ladi? Nega?

Javob

# Narxlar — sarlavha. Markdown qoidasi bo'yicha # dan keyin bo'sh joy bo'lishi shart. #Narxlar oddiy matn bo'lib qoladi — GitHub va bu sayt ham shunday ko'rsatadi.

2.4 Ro'yxatlar

Tartibsiz ro'yxat (nuqtali) — - yoki * bilan. Bitta hujjatda bittasini tanlang, odatda -:

markdown
- Non
- Sut
- Tuxum

Tartiblangan ro'yxat (raqamli) — raqam va nuqta bilan:

markdown
1. Suvni qaynating
2. Choy soling
3. 5 daqiqa dam bering

Qiziq joyi: renderer raqamlarni o'zi sanaydi. Hammasiga 1. yozsangiz ham, ekranda 1, 2, 3 chiqadi. Faqat birinchi raqam hisobga olinadi.

Ichma-ich ro'yxat — ichki qatorni 2 ta probel bilan suring:

markdown
- Mevalar
  - Olma
  - Uzum
- Sabzavotlar
  - Sabzi

Raqamli ro'yxat ichida esa 3 ta probel suring — ichki qator tepadagi matn bilan bir chiziqqa tushsin.

2.5 Havola

Havola ikki qismdan iborat: to'rtburchak qavsda ko'rinadigan matn, oddiy qavsda manzil.

markdown
[Menyuni ko'rish](https://example.com/menyu)

Eslab qolish usuli: avval nima ko'rinadi [...], keyin qayerga olib boradi (...). Ikki qavs orasida bo'sh joy bo'lmasin.

Manzil loyihadagi boshqa fayl ham bo'lishi mumkin. Buni Yo'llar darsidagi nisbiy yo'l deb bilasiz:

markdown
[O'rnatish qo'llanmasi](docs/ornatish.md)

Manzilni qisqa yozish uchun uni burchakli qavsga olsangiz yetarli: <https://example.com>. GitHub esa oddiy yozilgan manzilni ham o'zi havolaga aylantiradi.

2.6 Rasm

Rasm havolaga juda o'xshaydi, faqat boshida ! belgisi bor:

markdown
![Choyxona menyusining skrinshoti](rasmlar/menyu.png)
  • ! — "bu havola emas, rasm" degan belgi. Uni unutsangiz, rasm o'rniga "Choyxona menyusining skrinshoti" degan havola chiqadi.
  • [...] ichidagi matn — alt matn (alternative text). Rasm yuklanmasa, uning o'rnida shu matn ko'rinadi. Ko'zi ojiz foydalanuvchilarning ekranni ovoz chiqarib o'qiydigan dasturi ham aynan shu matnni o'qiydi. Shuning uchun "rasm1" emas, rasmda nima borligini yozing.

2.7 Iqtibos va chiziq

Qator boshidagi > — iqtibos (quote) bloki. U chap tomonda chiziq bilan ajralib turadi:

markdown
> Kod bir marta yoziladi, lekin yuz marta o'qiladi.

Siz bu darsda ko'rgan Qisqacha va Maslahat bloklari ham aslida > bilan yozilgan. IlmHamroh sayti ularni rangli ramkaga aylantiradi.

Alohida qatordagi uchta tire --- esa gorizontal chiziq chizadi. Bu darsda bo'limlar orasidagi chiziqlar shunday yozilgan.

Tekshirib ko'ring: Quyidagi qatorda nima xato? [Logotip](rasmlar/logo.png) — muallif rasm chiqishini kutgan.

Javob

Boshida ! yo'q. Shuning uchun renderer buni rasm emas, "Logotip" degan havola qilib ko'rsatadi. To'g'risi: ![Logotip](rasmlar/logo.png).


3. Kod: satr ichida va blok bo'lib

Dasturchi uchun Markdown'ning eng muhim imkoniyati — kodni chiroyli ko'rsatish.

3.1 Satr ichidagi kod

Matn ichidagi buyruq yoki fayl nomi backtick (`) belgisiga olinadi. Bu belgi klaviaturada Esc ostida, 1 raqamining chap tomonida turadi — dasturchi belgilari darsida topgan edingiz.

markdown
Papkani ko'rish uchun `ls` buyrug'ini yozing.

Natijada ls boshqa shriftda, fon bilan ajralib chiqadi. Kod ichidagi belgilar (*, #) maxsus ma'no olmaydi — qanday yozilgan bo'lsa, shunday ko'rinadi.

3.2 Kod bloki va til nomi

Bir necha qatorli kod uchun uchta backtick bilan "devor" quriladi: biri boshida, biri oxirida. Ochuvchi backticklar yoniga til nomi yoziladi:

markdown
```bash
mkdir loyiha
cd loyiha
```

Til nomi rendererga "bu bash kodi" deydi. Renderer kalit so'zlarni, matnlarni, izohlarni turli rangga bo'yaydi. Buni sintaksisni ranglash (syntax highlighting) deyiladi.

Ko'p ishlatiladigan til nomlari:

Til nomi Nima uchun
bash, powershell Terminal buyruqlari
js, ts JavaScript, TypeScript
json, yaml, xml Ma'lumot fayllari
html, css Veb-sahifa kodi
text Oddiy matn, ranglamasdan

Kod blokini yopishni unutmang. Aks holda fayl oxirigacha hamma narsa kod bo'lib qoladi.

Diqqat: Qator boshida 4 ta probel qoldirsangiz, Markdown uni ham kod bloki deb biladi (bu eski usul). Oddiy matnni tasodifan 4 probel bilan surib qo'ysangiz, u kutilmaganda kulrang kod bo'lib chiqadi.

Tekshirib ko'ring: Kod bloki yoniga json yozilmasa, nima bo'ladi? Kod ishlamay qoladimi?

Javob

Kod baribir ko'rinadi, faqat ranglanmaydi — bir xil rangdagi matn bo'lib chiqadi. Markdown kodni ishga tushirmaydi, faqat ko'rsatadi. Til nomi o'qishni osonlashtiradi, shuning uchun uni doim yozing.


4. GFM: GitHub qo'shimchalari

Markdown'ning asl qoidalari juda qisqa edi. Har bir sayt uni o'zicha kengaytirdi va bir xil matn turli joyda turlicha chiqa boshladi. Shuning uchun 2014-yildan CommonMark — Markdown'ning aniq, hamma uchun bir xil qoidalar to'plami — yozila boshladi.

GFM (GitHub Flavored Markdown) — CommonMark'ga GitHub qo'shgan imkoniyatlar: jadval, task list, ustidan chizish va manzillarni avtomatik havolaga aylantirish. Bugun ko'p rendererlar GFM'ni tushunadi.

4.1 Jadval

Ustunlar | belgisi bilan ajratiladi. Ikkinchi qator — sarlavhani ajratuvchi --- chiziqlar:

markdown
| Taom   | Narx (so'm) | Bormi? |
|--------|------------:|:------:|
| Palov  |      25 000 |   ha   |
| Somsa  |       8 000 |  yo'q  |

Natija:

Taom Narx (so'm) Bormi?
Palov 25 000 ha
Somsa 8 000 yo'q
  • Ikkinchi qator majburiy: usiz jadval chiqmaydi.
  • ---: — ustun o'ngga tekislanadi (narxlar uchun qulay). :---: — o'rtaga. :--- yoki --- — chapga.
  • Probellar bilan ustunlarni tekislash shart emas. |Palov|25 000|ha| ham ishlaydi — faqat o'qish qiyinroq.
  • Katak ichida | belgisining o'zi kerak bo'lsa, \| deb yozing.

4.2 Task list — belgilanadigan ro'yxat

Oddiy ro'yxatga [ ] (bo'sh katak) yoki [x] (belgilangan) qo'shiladi:

markdown
- [x] Terminal buyruqlarini o'rganish
- [x] JSON va YAML'ni tushunish
- [ ] Birinchi README yozish

GitHub buni katakchali ro'yxat qilib ko'rsatadi. Issue (loyihadagi vazifa yoki xato haqidagi yozuv) va muhokamalarda katakni sichqoncha bilan bosib belgilash mumkin. README kabi oddiy fayllarda esa katakchalar faqat ko'rinadi, bosilmaydi.

Diqqat: [ ] ichida bitta probel bo'ladi. [] yozsangiz, katak chiqmaydi.

4.3 Ogohlantirish bloklari (alerts)

GitHub'da > iqtibosning birinchi qatoriga maxsus belgi yozsangiz, u rangli ogohlantirishga aylanadi:

markdown
> [!WARNING]
> `.env` faylni hech qachon GitHub'ga yuklamang.

Beshta turi bor: [!NOTE] (eslatma), [!TIP] (maslahat), [!IMPORTANT] (muhim), [!WARNING] (ogohlantirish), [!CAUTION] (xavf). Bu faqat GitHub'ning imkoniyati: boshqa rendererlarda oddiy iqtibos bo'lib, [!WARNING] so'zi ko'rinib qoladi.

Tekshirib ko'ring: Jadvalda narx ustunini o'ngga tekislash uchun ajratuvchi qatorga nima yozasiz?

Javob

---: — ikki nuqta o'ng tomonda. Ikki nuqta qaysi tomonda bo'lsa, matn shu tomonga yopishadi. Ikkala tomonda bo'lsa (:---:) — o'rtada turadi.


5. Frontmatter — fayl haqidagi ma'lumot

Blog yoki hujjat saytlarida har bir .md faylning sarlavhasi, sanasi va muallifi kerak. Bu ma'lumotni matn ichiga aralashtirmaslik uchun faylning eng tepasiga alohida blok yoziladi. Bu blok frontmatter deyiladi:

markdown
---
title: "Toshkentdagi eng yaxshi 5 choyxona"
date: 2026-09-27
author: Malika
tags: [taom, toshkent]
---

Maqolaning matni shu yerdan boshlanadi.

Ikkita --- orasidagi qism — YAML darsidagi oddiy YAML. Frontmatter faylning birinchi qatoridan boshlanishi shart — undan oldin hatto bo'sh qator ham bo'lmasin.

Frontmatter'ni Markdown fayllardan sayt yasaydigan dasturlar o'qiydi (masalan, Astro, Hugo, Docusaurus). Ular title ni sahifa sarlavhasiga, date ni sanaga aylantiradi. Bu vositalarni hozir bilish shart emas. GitHub esa frontmatter'ni fayl tepasida kichik jadval qilib ko'rsatadi.

Maslahat: Ba'zi vositalar (masalan, Hugo) TOML formatidagi frontmatter'ni ham tushunadi. Unda chegara --- emas, +++ bo'ladi.


6. Mermaid — matn bilan chizilgan diagramma

Jarayonni tushuntirish uchun ko'pincha chizma kerak bo'ladi. Rasm chizib, faylga saqlash noqulay: kichik o'zgarishda uni qaytadan chizish kerak. Mermaid — chizmani oddiy matn bilan yozish usuli. Renderer matnni o'qib, diagrammani o'zi chizadi.

Mermaid kodi mermaid nomli kod blokiga yoziladi. Dars boshida aytilgan renderer jarayonini chizamiz:

markdown
```mermaid
flowchart LR
  A["README.md fayl"] --> B["Renderer"]
  B --> C["HTML sahifa"]
  C --> D["Ekrandagi hujjat"]
```
  • flowchart LR — "chapdan o'ngga (Left → Right) oqim chizmasi". Yuqoridan pastga uchun TD yoziladi.
  • A["..."] — to'rtburchak. A — uning qisqa nomi, qo'shtirnoq ichidagisi — ko'rinadigan yozuv.
  • --> — strelka.

Natija:

flowchart LR
  A["README.md fayl"] --> B["Renderer"]
  B --> C["HTML sahifa"]
  C --> D["Ekrandagi hujjat"]

GitHub Mermaid diagrammalarini 2022-yildan beri o'zi chizadi. VS Code'ning oddiy preview'i esa uni chizmaydi — buning uchun alohida kengaytma (qo'shimcha dastur) kerak. Kengaytmalarni VS Code kengaytmalari darsida o'rnatamiz.


7. MDX — Markdown + komponentlar

Ba'zi hujjat saytlarida .md emas, .mdx fayllarni uchratasiz. MDX — Markdown ichiga interaktiv bo'laklar (tugma, kalkulyator, grafik) qo'yish imkonini beradigan format. Bu bo'laklar React komponentlari deyiladi. React — sayt yasash uchun eng mashhur vosita, uni kursda alohida qismda o'rganamiz. Hozircha shuni bilish yetarli:

mdx
# Taksi narxi

Masofani kiriting, narx o'zi hisoblanadi:

<TaksiKalkulyator />

<TaksiKalkulyator /> — oddiy matn emas, sahifada ishlaydigan kichik dastur. 2026-yil holatida MDX'ning joriy versiyasi — 3.

MDX'da {, } va < belgilari maxsus ma'noga ega. Oddiy .md faylni .mdx ga o'zgartirsangiz, matndagi shu belgilar xato berishi mumkin.


8. README — loyihaning "yuzi"

8.1 README nima?

README.md — loyiha papkasining eng tepasida turadigan Markdown fayl. Nomi "meni o'qi" degani. Kimdir loyihangizni GitHub'da ochsa, fayllar ro'yxati ostida birinchi ko'radigani — README. U 30 soniyada uchta savolga javob berishi kerak: bu nima, qanday o'rnatiladi, qanday ishlatiladi.

Yaxshi README'ning odatiy bo'limlari:

Bo'lim Nima yoziladi
Nomi va tavsif Loyiha nima qiladi — 1–2 gap
Skrinshot Ishlayotgan loyiha rasmi (ixtiyoriy)
Imkoniyatlar Asosiy funksiyalar ro'yxati
O'rnatish Kompyuterga tushirish buyruqlari
Ishga tushirish Qanday ishlatish, sozlamalar
Litsenziya Boshqalar kodingizdan qanday foydalana oladi

8.2 Namuna README

Telegram uchun choyxona menyusi boti, deylik. Uning README'si:

markdown
# Choyxona menyu boti

Telegram'da choyxona menyusini ko'rsatadi va buyurtma qabul qiladi.

![Bot ishlayotgan payt](docs/skrinshot.png)

## Imkoniyatlar

- Menyuni rasm va narxlari bilan ko'rsatish
- Buyurtmani Click yoki Payme orqali to'lash
- Admin uchun kunlik hisobot

## O'rnatish

```bash
git clone https://github.com/SIZNING_NOMINGIZ/choyxona-bot.git
cd choyxona-bot
npm install
```

## Ishga tushirish

1. `.env.example` faylidan nusxa olib, `.env` deb nomlang.
2. `.env` ichiga bot tokenini yozing.
3. Botni ishga tushiring: `npm start`

## Litsenziya

MIT

Bu yerda git va npm buyruqlari bor. Ular nima qilishini hozir bilish shart emas: git clone loyihani internetdan kompyuterga ko'chiradi, npm install esa loyihaga kerakli tayyor kodlarni yuklab oladi. Ikkalasini ham kursda alohida o'rganamiz. SIZNING_NOMINGIZ — o'rniga o'zingizning GitHub nomingiz yoziladi.

.env.example qadamiga e'tibor bering. .env darsida aytilganidek, haqiqiy .env fayl GitHub'ga yuklanmaydi. README esa o'quvchiga uni qanday yaratishni ko'rsatadi.

MIT — eng ko'p ishlatiladigan ochiq litsenziya: "kodimni istalgancha ishlating, faqat mualliflik yozuvini saqlang".

Maslahat: Markdown ichida oddiy HTML ham yozsa bo'ladi. Masalan, bu darsdagi yashirin javoblar details degan HTML tegi bilan yozilgan. GitHub'da ham u ishlaydi: README'dagi uzun qismni yashirib qo'yish uchun qulay.


9. Ko'p uchraydigan xatolar

Markdown hech qachon qizil xato chiqarmaydi. U shunchaki kutganingizdan boshqacha ko'rsatadi. Shuning uchun yozganingizni doim preview'da tekshiring.

9.1 # dan keyin bo'sh joy yo'q

#Menyu → oddiy matn bo'lib chiqadi. Tuzatish: # Menyu.

9.2 Bitta Enter bilan yangi paragraf kutish

Ikki qator orasida bo'sh qator bo'lmasa, ular bitta qatorga qo'shilib ketadi. Tuzatish: paragraflar orasida bo'sh qator qoldiring.

9.3 Havolada qavslar orasida bo'sh joy

[Menyu] (https://example.com) — havola chiqmaydi, qavslar matn bo'lib ko'rinadi. Tuzatish: ] va ( bir-biriga yopishib tursin. (...)[...] deb teskari yozish ham shunday xato.

9.4 Rasmda ! ni unutish

[Logo](logo.png) — rasm o'rniga "Logo" degan havola chiqadi. Tuzatish: ![Logo](logo.png).

9.5 Kod blokini yopmaslik

Uchta backtick ochildi, lekin yopilmadi — fayl oxirigacha hamma narsa kulrang kod bo'lib qoladi. Tuzatish: ochuvchi backticklar sonicha yopuvchisini qo'ying.

9.6 Tasodifiy 4 probel

Oddiy paragrafni 4 probel bilan surib qo'ysangiz, u kod blokiga aylanadi. Tuzatish: oddiy matnni qator boshidan yozing.

9.7 Til nomisiz kod bloki

Kod ko'rinadi, lekin ranglanmaydi va o'qish qiyinlashadi. Tuzatish: har doim til nomini yozing: bash, json, js.


10. Mashqlar

1-mashq (oson): O'zingiz haqingizda

men.md faylini yarating. Unda bo'lsin:

  • katta sarlavhada ismingiz (#);
  • kursiv bilan kim bo'lmoqchi ekaningiz (*...*);
  • o'rganayotgan 3 ta narsaning ro'yxati (-).

Natijani onlayn Markdown muharririda (yoki VS Code preview'da) tekshiring.

Yechim
markdown
# Jasur Aliyev

*Kelajakdagi full-stack dasturchi*

- Terminal buyruqlari
- JSON va YAML
- Markdown

Uchta joyga e'tibor bering: # dan keyin bo'sh joy bor, kursiv ikki * orasida, bloklar orasida bo'sh qator qoldirilgan.

2-mashq (o'rta): Bozor ro'yxati

Shanba kungi bozor uchun bozor.md yozing:

  1. ## Xaridlar sarlavhasi va 4 ta mahsulotli task list. Ikkitasi olingan ([x]), ikkitasi hali olinmagan ([ ]).
  2. ## Narxlar sarlavhasi va 3 ustunli jadval: Mahsulot, Miqdor, Narx (so'm). Narx ustuni o'ngga tekislansin (---:).
  3. Oxirida bitta havola: [Bozor xaritasi](https://example.com/xarita).
Yechim
markdown
## Xaridlar

- [x] Non
- [x] Sut
- [ ] Kartoshka
- [ ] Olma

## Narxlar

| Mahsulot  | Miqdor | Narx (so'm) |
|-----------|--------|------------:|
| Kartoshka | 3 kg   |      18 000 |
| Olma      | 2 kg   |      30 000 |
| Non       | 2 dona |       8 000 |

[Bozor xaritasi](https://example.com/xarita)

Task list'da [ ] ichida bitta probel bor. Jadvalning ikkinchi qatori majburiy, ---: esa narxlarni o'ngga tekisladi. Sarlavha, ro'yxat va jadval orasida bo'sh qator qoldirilgan.

3-mashq (qiyin): Loyihaga README

Sizda "Ob-havo boti" loyihasi bor: u Telegram'da shahar nomini yozsangiz, bugungi ob-havoni aytadi. Uning README.md faylini yozing. Unda bo'lsin:

  • # sarlavha va bir gaplik tavsif;
  • ## Imkoniyatlar — kamida 2 ta band;
  • ## O'rnatish — bash kod blokida 3 ta buyruq: git clone https://github.com/SIZNING_NOMINGIZ/obhavo-bot.git, cd obhavo-bot, npm install;
  • ## Ishga tushirish — raqamli ro'yxat, ichida .env va npm start satr ichidagi kod bo'lib yozilsin;
  • ## Litsenziya — MIT.

Ishora: namuna README'ni asos qilib oling. Kod blokini ochish va yopishni unutmang.

Yechim
markdown
# Ob-havo boti

Telegram'da shahar nomini yozing — bugungi ob-havoni aytib beradi.

## Imkoniyatlar

- O'zbekistonning barcha viloyat markazlari uchun ob-havo
- Harorat, shamol va yog'ingarchilik

## O'rnatish

```bash
git clone https://github.com/SIZNING_NOMINGIZ/obhavo-bot.git
cd obhavo-bot
npm install
```

## Ishga tushirish

1. `.env.example` dan nusxa olib, `.env` yarating.
2. `.env` ichiga bot tokenini yozing.
3. `npm start` buyrug'ini bering.

## Litsenziya

MIT

Tekshiring: O'rnatish bo'limidagi kod bloki bash deb belgilangan va yopilgan. Ishga tushirish qadamlari raqamli ro'yxatda. Fayl nomlari va buyruqlar backtick ichida — ular matndan ajralib turadi.


11. Real ishda

  • GitHub: har bir loyiha README'dan boshlanadi. Ish beruvchi portfoliongizni ko'rganda birinchi README'ni o'qiydi. Yaxshi README — "bu odam tartibli ishlaydi" degan signal.
  • Jamoada: vazifalar (issue), kod o'zgarishlari haqidagi muhokamalar va izohlar GitHub'da Markdown'da yoziladi.
  • Hujjatlar: ko'p kutubxonalarning rasmiy hujjat saytlari .md yoki .mdx fayllardan yig'iladi.
  • Kundalik vositalar: Notion, Obsidian, Telegram va Discord Markdown belgilarini tushunadi — **qalin** yoki backtick u yerlarda ham ishlaydi.
  • AI bilan ishlash: ChatGPT, Claude kabi AI yordamchilar javoblarini Markdown'da yozadi, ularga Markdown'da yozilgan savol ham yaxshi tushuniladi.

Xulosa

  • Markdown — oddiy matn + bir nechta belgi: # sarlavha, - ro'yxat, **qalin**, [matn](manzil), ![alt](rasm).
  • Paragraflar bo'sh qator bilan ajratiladi, # dan keyin bo'sh joy shart.
  • Kod bloki uchta backtick va til nomi bilan yoziladi — shunda u ranglanadi.
  • GFM: jadval, task list, ~~chizish~~; GitHub'da > [!NOTE] ogohlantirishlari ham bor.
  • Frontmatter — fayl tepasidagi YAML; Mermaid — matndan diagramma; MDX — Markdown + React komponentlar.
  • Yaxshi README: nima, qanday o'rnatiladi, qanday ishlatiladi, litsenziya.

Keyingi dars: Rasm formatlari: qachon qaysi biri — JPEG, PNG, WebP, AVIF va SVG'ning farqini va README'ga qanday rasm qo'yish kerakligini ko'ramiz.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Markdown: dasturchi yozuv tili — sarlavha, ro'yxat, kod va README — IlmHamroh