কনটেন্টে যান

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

Live site: 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 খুলুন। 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 পড়ুন। এই সাইটের জন্য 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 করার দরকার নেই।