コンテンツにスキップ

MkDocs環境の紹介

VRM Terminalは MkDocsMaterial for Mkdocs で構築しています。

このページでは,VRM Terminalの構築に使っているMkDocs環境を紹介します。

MkDocsの概要

MkDocsは,Markdownで執筆した原稿をHTMLに仕立ててくれる静的サイトジェネレータです。 デザインについては,サードパーティで豊富なテーマが多数公開されており,テーマカラーのカスタマイズ程度であれば難しくありません。 Material for Mkdocsは,Googleが提唱する「マテリアルデザイン」に基づくテーマで, いろいろなサイトで使われています。 VRMNXの公式マニュアルも使っていますね。

VRM Terminalの構築環境

Component Version
OS Windows 10
Editor Visual Studio Code
Python Python 3.10.7 (venv)
MkDocs mkdocs 1.5.3
Material for MkDocs mkdocs-material 9.5.3

このほか,Extensionがいくつか。

VRM Terminal構築用のPython環境(バージョン)を安定させるため, VS Code + venvでPython仮想環境を構築しています。

MkDocsのビルドコマンドもVS Codeに統合されているPowershellから叩けます。

コードブロック

今のMaterial for Mkdocsのバージョンでは,コードブロックの装飾も統合されています。 Ver. 9.5.3 時点の公式リファレンス を参考に設定しています。

mkdocs.yml
markdown_extensions:
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.superfences

この方法(とバージョン)だと,行番号表示がずれません。 表示領域をはみ出る場合には,スクロールバーが出てきます。(勝手に改行されない。)

```python linenums="1" title="LAYOUT"
import vrmapi
import toruo

def vrmevent(obj, ev, param):
    toruo.activate(obj, ev, param)
    # コメントを書いても大丈夫
    pass
```
LAYOUT
1
2
3
4
5
6
7
import vrmapi
import toruo

def vrmevent(obj, ev, param):
    toruo.activate(obj, ev, param)
    # コメントを書いても大丈夫
    pass

mkdocs.yml

特別に,mkdocs.ymlの全文を公開しちゃいます。 (2024.1.7時点)

mkdocs.yml
site_name: VRM Terminal
site_url: https://akagivrm.sokushinbutsu.com/
site_author: 'AKAGI'
copyright: '© 2024 AKAGI Rails.'

nav:
  - Home: index.md
  - テクニック:
    - tips/index.md
    - tips/transition_curve/solver.md
    - tips/transition_curve/theory.md
  - ダウンロード:
    - download/index.md
    - VRM自作車両:
      - download/trainmodel/EC107/index.md
      - download/trainmodel/EC731_DC201/index.md
    - VRMNX用Python拡張:
      - 撮る夫くん: https://akagi-rails.github.io/vrmnx-toruo/
      - ATENXA: https://akagi-rails.github.io/ATENXA/
    - 車両テクスチャー:
      - 211系電車: download/usertex/EC211/index.md
  - VRM Terminalについて:
      - about.md
      - history.md

theme:
  name: 'material'
  language: 'ja'
  custom_dir: custom_theme/
  features:
    - navigation.footer
    - navigation.tabs
    - navigation.sections
    - navigation.path
    # - toc.integrate

  palette:
      primary: 'black'
      accent: 'pink'
  font:
      #text: 'Noto Sans JP'
      text: 'Roboto'
      code: 'Roboto Mono'
  logo: img/express185.svg
  favicon: img/express185.svg

extra:
  social:
    - icon: fontawesome/brands/twitter
      link: https://twitter.com/AKAGIvrm
    - icon: fontawesome/brands/youtube
      link: https://www.youtube.com/@AkagiRails
  analytics:
    provider: google
    property: G-XXXXXXXXXX  # ここだけ内緒

markdown_extensions:
  - attr_list
  - admonition
  # [^1] を使って注釈を使う(Markdownのサンプルを参照)
  - footnotes
  - def_list
  # コードハイライトを使う
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.superfences
  - md_in_html
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - pymdownx.arithmatex:
      generic: true

extra_javascript:
  - js/mathjax.js
  - https://polyfill.io/v3/polyfill.min.js?features=es6
  - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js