Агуулгыг алгасах

Энэ төслийн тухай

Энэ бол ганц зохиогчийн хөтөлж, бичсэн cp-algorithms-ийн монгол хэл дээрх салбар (fork) юм. Одоогоор гадны хувь нэмэр оруулах ажлын урсгал байхгүй — хэрэв энэ өөрчлөгдвөл энэ хуудсыг шинэчилнэ. Ерөнхий (англи) эх сурвалжийн хувь нэмэр оруулах үйл явцын хувьд cp-algorithms-ийн CONTRIBUTING.md-г үзнэ үү.

Доорх тэмдэглэлүүд нь сайттай өөртэй нь ажиллах техникийн лавлагаа юм.

Шинэ өгүүлэл эхлүүлэх

Репозиторийн ARTICLE_TEMPLATE.mdsrc/<topic>/<slug>.md рүү хуулж, түүний толгойн тайлбар дахь зааврыг дага.

Өгүүллийн синтакс

Өгүүллүүд нь Markdown бөгөөд Material for MkDocs-ээр рендерлэгддэг.

  • Математик томьёо: MathJax. $$ блокуудын өмнө болон дараа хоосон мөр үлдээ.
  • Кодын блок: Code blocks.
  • Admonition: теорем, жишээ гэх мэтийн хувьд Admonitions.
  • Таб: Content tabs.
  • Хүснэгт: Data tables.

HTML гарчиг тохируулах

Анхны # header нь өгөгдмөлөөр HTML гарчиг болно. Үүнийг frontmatter-аар дарж бичнэ:

---
title: Alternative HTML Title
---
# Proof of $a^2 + b^2 = c^2$

Дахин чиглүүлэлт (redirect) зохицуулах

Хэрэв өгүүлэл нүүвэл хуучин зам дээр дахин чиглүүлэх зангуу үлдээ:

<meta http-equiv="refresh" content="0; url=../new-section/new-article.html">
# Article Name
This article has been moved to a [new location](new-section/new-article.md).

Зангуу холбоосыг хадгалах

Хэрэв хэсгийн гарчиг өөрчлөгдвөл хуучин холбоосууд ажилласаар байхын тулд гар аргаар зангуу нэм:

<div id="old-section-title"></div>

Өгүүллийн шошго

Агуулга нь CC BY-SA 4.0 бөгөөд эх сурвалжид хамаарах хамаарлыг хадгалах ёстой тул өгүүлэл бүрийг Original эсвэл Translated гэж шошголсон байх ёстой:

  • Эх (Original) өгүүллүүд:

    ---
    tags:
        - Original
    ---
    
  • Орчуулсан / дасан зохицуулсан өгүүллүүд (cp-algorithms эсвэл e-maxx.ru-ээс):

    ---
    tags:
        - Translated
    e_maxx_link: <original-link>
    ---
    

    e_maxx_link нь e-maxx.ru URL-ийн сүүлийн зам сегмент юм, жишээ нь http://e-maxx.ru/algo/euler_function-ийн хувьд euler_function-г ашигла.

Локал хөгжүүлэлт

git clone git@github.com:anartuvshinbayar/goy-algorithms.git && cd goy-algorithms
git submodule update --init --recursive   # needed for the git-committers plugin
python3 -m venv .venv && source .venv/bin/activate
scripts/install-mkdocs.sh   # requires pip
python3 -m mkdocs serve

[!NOTE] Бариа mkdocs командын оронд python3 -m mkdocs ...-г ашигла. Хэрэв репо руу чиглэсэн локал зам чинь # тэмдэгт агуулж байвал venv-ийн mkdocs эхлүүлэгч скрипт эвдэрдэг (macOS түүний shebang мөрийг буруу задалдаг) — python3 -m mkdocs үүнийг бүрэн тойрч гардаг.

Нэмэлт плагинууд

  • Git Revision Date: өгөгдмөлөөр идэвхгүй (commit хийгээгүй өөрчлөлттэй үед алдаа гаргадаг). Дараахаар идэвхжүүл:

    export MKDOCS_ENABLE_GIT_REVISION_DATE=True
    
  • Git Committers: өгөгдмөлөөр идэвхгүй (GitHub token шаардлагатай). Дараахаар идэвхжүүл:

    export MKDOCS_ENABLE_GIT_COMMITTERS=True
    export MKDOCS_GIT_COMMITTERS_APIKEY=your_token_here
    

Кодын хэсгүүдийг турших

Хэрэв өгүүлэлд C++ хэсэг байвал туршилтын харнесс задалж чадахаар түүнийг нэрлэ:

```{.cpp file=snippet-name}
// code here
```

Дараа нь test/-ээс extract_snippets.py-г ажиллуулж хэсгүүдийг толгой файлууд руу татаж, дараа нь ./test.sh-г ажиллуулж тэдгээрийг туршилтын тохиолдлуудын эсрэг эмхэтгэж ажиллуул.