# এই reading site কীভাবে চালাবেন

Live site: **[dsa.debwashis.com](https://dsa.debwashis.com/)**। এটি Markdown থেকে তৈরি MkDocs Material site; Cloudflare Workers static files serve করে।

## Local preview

Terminal-এ repository root খুলুন, যেখানে `mkdocs.yml` আছে। Python 3.12 ব্যবহার করে চালান:

```bash
python -m pip install -r requirements.txt
python -m mkdocs serve
```

Browser-এ [http://127.0.0.1:8000](http://127.0.0.1:8000) খুলুন। File edit করলে preview refresh হয়। বন্ধ করতে terminal-এ `Ctrl+C` দিন।

ফোনে একই Wi-Fi থেকে দেখতে চাইলে:

```bash
python -m mkdocs serve -a 0.0.0.0:8000
```

এরপর ফোনে কম্পিউটারের local IP-এর সঙ্গে `:8000` যোগ করে খুলুন। Windows-এ `ipconfig` থেকে local IPv4 address পাওয়া যায়।

## Publish-এর আগে যাচাই

```bash
python -m mkdocs build --strict
python scripts/check_site.py
```

Strict build missing page/anchor ধরবে। পরের check generated HTML-এর internal link, UTF-8, search index, প্রতিটি Markdown download ও ZIP যাচাই করে। এটি সব algorithm-এর correctness বা বাইরের website-এর availability পরীক্ষা করে না।

Browser-এ home → chapter → ছবি → problem খুলুন। বাংলা যুক্তাক্ষর, light/dark mode, সরু পর্দায় table/diagram scroll, search ও download পরীক্ষা করুন। Mermaid graph-এর জন্য JavaScript এবং প্রথমবার runtime নামাতে network দরকার; text diagram ও table সরাসরি HTML-এ থাকে।

## GitHub থেকে live site

পরিবর্তন branch-এ push করে Pull Request খুলুন। GitHub-এর `Check learning site` workflow সফল হলে review করে `main`-এ merge করুন। তারপর বিদ্যমান Cloudflare Workers integration site build ও deploy করবে। **Workers Builds: dsa-lessons** check থেকে deployment-এর ফল দেখুন।

সঠিক build command ও hosting নির্দেশনার জন্য [Deploy guide](DEPLOY.md) পড়ুন। এই সাইটের জন্য GitHub Pages চালু করার প্রয়োজন নেই।

## ছোটখাটো সমস্যা

- `mkdocs` command পাওয়া না গেলে `python -m mkdocs` ব্যবহার করুন; dependency install-এর জন্যও একই Python ব্যবহার করুন।
- `same-dir` plugin পাওয়া না গেলে `python -m pip install -r requirements.txt` চালান।
- বাংলা font অদ্ভুত দেখালে hard refresh করুন এবং `assets/fonts/NotoSansBengali.ttf` লোড হচ্ছে কি না দেখুন। Font সাইটের সঙ্গেই আছে।
- Mermaid-এর বদলে code দেখা গেলে browser console ও runtime request দেখুন; fenced block-এর ভাষা `mermaid` হতে হবে।
- নতুন problem note যোগ করলে সংশ্লিষ্ট `problems/README.md`-তে local note ও official task link যোগ করুন। Chapter navigation মূল Markdown file থেকে তৈরি হয়।

`docs_dir: .` মানে repository-র Markdown-ই site-এর content। `mkdocs-same-dir` plugin এই গঠন সমর্থন করে। Build output `_site/`; এটি Git-এ commit করার দরকার নেই।
