WSL mkdocs Setup


[!IMPORTANT]

  • Window 11 의 WSL 문제사항

    1. WSL2 사용시, Window 의 directory mount 하면 속도가 너무 느려짐

    2. WSL2 기반에 venv를 사용시 더 느려짐 (이유 Window NTFS 기반으로 venv 만들기 때문)

Window 11에서 각 NTFS 기반으로 WSL 사용시 심각한 성능 저하가 있으며, venv까지 이용한다면 속도는 감안하고 사용


Setup WSL


[!NOTE]
Linux 기반으로 mkdocs 사용을 권장 Window로도 쉽게 가능하며 venv기반으로 권장


  • WSL 설치 Ubuntu 이외 별도 Linux를 원한다면, 뒤에 정의해서 설치

> wsl --install
or 
> wsl --install -d <Distribution Name>

[!NOTE]
반드시 Window Reboot 해야함


  • WSL 설치 Linux 확인

> wsl --list --online   
NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
AlmaLinux-10                    AlmaLinux OS 10
Debian                          Debian GNU/Linux
FedoraLinux-43                  Fedora Linux 43
FedoraLinux-42                  Fedora Linux 42
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0      SUSE Linux Enterprise 16.0
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
archlinux                       Arch Linux
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-16.0              openSUSE Leap 16.0
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_10                Oracle Linux 8.10
OracleLinux_9_5                 Oracle Linux 9.5
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6

  • wsl 상태 확인

> wsl --status
기본 배포: Ubuntu
기본 버전: 2
현재 컴퓨터 구성에서는 WSL1이 지원되지 않습니다.

  • WSL Version 설정 경우에 따라 WSL Version을 변경을 해도 좋음

wsl --set-default-version 2

Setup Ubuntu


  • Linux Package Install

sudo apt update && sudo apt upgrade -y

  • Setup Doxygen and graphviz doxygen,dot 확인

sudo apt install -y doxygen graphviz
  • Setup Python

sudo apt install python3
sudo apt install python3-pip
sudo apt install -y python3-venv
sudo apt install python3.12-venv

Setup venv


  • Setup venv

python3 -m venv .venv
  • venv activate

source .venv/bin/activate

  • venv deactivate

deactivate

Setup Python


  • Mkdocs Packages

pip install mkdocs mkdocs-material mkdocs-mermaid2-plugin 

Setup Doxygen


doxygen 과 graphviz 가 다 필요함

  • Doxyfile 생성

doxygen -g Doxyfile_mkdocs

  • Doxyfile 설정 변경

PROJECT_NAME           = "WiFi Sniffer Firmware"

# 소스 경로 (네 프로젝트에 맞게 수정!)
INPUT                  = src \
                         include

RECURSIVE              = YES

GENERATE_HTML          = YES
GENERATE_LATEX         = NO

# MkDocs의 docs 폴더 안에 생성 (WSL에서는 경로 구분 '/' 중요)
OUTPUT_DIRECTORY       = docs/doxygen

# HTML 페이지에서 코드 보기 가능하게
SOURCE_BROWSER         = YES
INLINE_SOURCES         = YES

# Graphviz 사용(Flow/Call Graph)
HAVE_DOT               = YES
CALL_GRAPH             = YES
CALLER_GRAPH           = YES

  • Doxyfile 실행

(.venv) ahyuo@jhlee:/mnt/d/works/projects/wifisniffer$ doxygen Doxyfile_mkdocs

Setup mkdocs


# API Reference (Doxygen)

Doxygen으로 생성된 전체 API 문서.

<iframe
  src="doxygen/html/index.html"
  style="width: 100%; height: 80vh; border: none;"
>
</iframe>

  • mkdocs.yml 수정

nav:
.....
  - API (Doxygen): doxygen_api.md   

TEST mkdocs


  • mkdocs serve mkdocs test 해서 살펴보고 수정 build 나중에

(.venv) ahyuo@jhlee:/mnt/d/works/projects/wifisniffer$ mkdocs serve
INFO    -  Building documentation...
INFO    -  MERMAID2  - Initialization arguments: {}
INFO    -  MERMAID2  - Using javascript library (10.4.0):
              https://unpkg.com/mermaid@10.4.0/dist/mermaid.esm.min.mjs
INFO    -  Cleaning site directory
INFO    -  MERMAID2  - Found superfences config: {'custom_fences': [{'name': 'mermaid', 'class': 'mermaid', 'format': <function fence_code_format at 0x71a334530fe0>}]}
INFO    -  Documentation built in 3.74 seconds
INFO    -  [15:48:47] Serving on http://127.0.0.1:8000/