Skip to content

Project Structure

πŸš€ Get Started

Setelah project berhasil dibuat, langkah berikutnya adalah memahami struktur direktori dan file yang digunakan oleh MkDocs. Memahami struktur project akan memudahkan proses pengembangan, pemeliharaan, dan deployment dokumentasi.


🎯 Learning Objectives

Setelah menyelesaikan panduan ini, Anda akan mampu:

  • Memahami struktur project MkDocs.
  • Menjelaskan fungsi setiap direktori dan file.
  • Membedakan source documentation dan build output.
  • Menggunakan struktur project yang mudah dipelihara.

πŸ”„ Workflow

flowchart LR

    A["Create Project"]
        --> B["Review Project Structure"]

    B --> C["Understand Components"]

    C --> D["Ready for Configuration"]

πŸ“‹ Prerequisites

Pastikan:

Component Description
MkDocs Telah terinstal
Project MkDocs Sudah dibuat
Terminal Bash atau shell lainnya

▢️ Procedure

Review the Default Project Structure

Masuk ke direktori project.

cd ~/git/my-project

Lihat struktur project.

tree

Contoh output.

my-project/
β”œβ”€β”€ docs/
β”‚   └── index.md
└── mkdocs.yml

Struktur tersebut merupakan project minimal yang diperlukan untuk menjalankan MkDocs.

Understand the Source Directory

Direktori docs/ digunakan untuk menyimpan seluruh dokumentasi dalam format Markdown.

Contoh.

docs/
β”œβ”€β”€ index.md
β”œβ”€β”€ installation.md
β”œβ”€β”€ configuration.md
└── deployment.md

Seluruh file Markdown pada direktori ini akan diproses saat menjalankan proses build.

Understand the Configuration File

File konfigurasi utama MkDocs adalah:

mkdocs.yml

File ini digunakan untuk mengatur berbagai konfigurasi website, seperti:

  • Site Information
  • Navigation
  • Theme
  • Plugins
  • Markdown Extensions
  • Repository Information
  • Extra Configuration

Seluruh konfigurasi website dikelola melalui file ini.

Understand the Build Output

Jalankan proses build.

mkdocs build

MkDocs akan membuat direktori baru.

my-project/
β”œβ”€β”€ docs/
β”œβ”€β”€ site/
└── mkdocs.yml

Direktori site/ berisi website statis yang siap dipublikasikan.

Sebagai contoh.

site/
β”œβ”€β”€ index.html
β”œβ”€β”€ assets/
β”œβ”€β”€ css/
β”œβ”€β”€ js/
└── search/

Direktori ini dibuat secara otomatis setiap kali menjalankan proses build.

Seiring bertambahnya jumlah dokumentasi, struktur project dapat disusun menjadi lebih terorganisir.

Sebagai contoh.

my-project/
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ index.md
β”‚   β”œβ”€β”€ how-to/
β”‚   β”‚   β”œβ”€β”€ git/
β”‚   β”‚   β”œβ”€β”€ mkdocs/
β”‚   β”‚   β”œβ”€β”€ hugo/
β”‚   β”‚   └── podman/
β”‚   β”œβ”€β”€ projects/
β”‚   β”œβ”€β”€ adr/
β”‚   └── assets/
β”‚
β”œβ”€β”€ overrides/
β”œβ”€β”€ site/
└── mkdocs.yml

Struktur tersebut memudahkan pengelolaan dokumentasi ketika jumlah halaman semakin banyak.


βœ… Verification

Pastikan struktur project tersedia.

tree

Pastikan file konfigurasi tersedia.

mkdocs.yml

Pastikan direktori source tersedia.

docs/

Jalankan proses build.

mkdocs build

Pastikan direktori berikut berhasil dibuat.

site/

Verification

Struktur project dinyatakan berhasil apabila:

  • Direktori docs/ tersedia.
  • File mkdocs.yml tersedia.
  • Direktori site/ berhasil dibuat.
  • Seluruh struktur project dapat dikenali dengan baik.

πŸ’‘ Technology Notes

  • Direktori docs/ merupakan sumber utama dokumentasi.
  • File mkdocs.yml merupakan pusat konfigurasi MkDocs.
  • Direktori site/ merupakan hasil proses build dan tidak disarankan untuk diedit secara langsung.
  • Perubahan sebaiknya selalu dilakukan pada source documentation, kemudian dibangun kembali menggunakan mkdocs build.

▢️ Next Steps

Setelah memahami struktur project, tahap berikutnya adalah mengonfigurasi website menggunakan file mkdocs.yml.


Document Description
Configuration Mengonfigurasi website MkDocs.
Writing Documentation Menulis dokumentasi menggunakan Markdown.

πŸ“ Summary

Pada panduan ini Anda telah mempelajari:

  • Struktur project MkDocs.
  • Fungsi direktori docs/.
  • Fungsi file mkdocs.yml.
  • Fungsi direktori site/.
  • Struktur project yang direkomendasikan.

Project sekarang siap untuk dikonfigurasi sesuai kebutuhan.