Инструкция по установке и настройке PlantUML в JetBrains IDE
File и выберите Settings (или используйте сочетание клавиш Ctrl+Alt+S).Plugins. В строке поиска введите «PlantUML» и найдите соответствующий плагин. Нажмите Install для установки плагина. После установки плагина перезапустите IDE, чтобы изменения вступили в силу.BASH
java -version File ⇒ Settings ⇒ Other Settings ⇒ PlantUML. Убедитесь, что путь к Java и Graphviz указан правильно. Если нет, укажите правильные пути вручную..puml или .plantuml.PYTHON
@startuml
Alice -> Bob: Hello
@enduml User — класс, представляющий пользователя, с атрибутами name, email и списком членств.Membership — класс, представляющий членство, с атрибутами type, startDate, endDate и методами activate(), cancel().Schedule — класс, представляющий расписание, с атрибутами date, activity и методами addActivity(), removeActivity().Payment — класс, представляющий платежи, с атрибутами double amount, date и методом processPayment().Код диаграммы классов для FitLife
BASH
@startuml
class User {
+String name
+String email
+List<Membership> memberships
+void register()
+void login()
}
class Membership {
+String type
+Date startDate
+Date endDate
+void activate()
+void cancel()
}
class Schedule {
+Date date
+String activity
+void addActivity()
+void removeActivity()
}
User "1" -- "0..*" Membership : has
Membership "1" -- "0..*" Schedule : includes
@enduml C4_Context.puml, C4_Container.puml, C4_Component.puml и C4_Code.puml.!include в начало файла.BASH
@startuml
!include C4_Context.puml
!include C4_Container.puml
!include C4_Component.puml
!include C4_Code.puml
@enduml .gitignore: файл для указания файлов и директорий, которые должны быть проигнорированы Git.README.md: файл с описанием проекта, содержащий основную информацию и инструкции.diagrams/: директория для хранения всех диаграмм C4.
context/: поддиректория для диаграмм контекста.
FitLife_Context.puml: диаграмма контекста для системы FitLife.container/: поддиректория для диаграмм контейнеров.
FitLife_Container.puml: диаграмма контейнера для системы FitLife.component/: поддиректория для диаграмм компонентов.
FitLife_Component_WebApp.puml: диаграмма компонентов для веб-приложения FitLife.code/: поддиректория для диаграмм кода.
FitLife_Code_Membership.puml: диаграмма кода для компонента управления членством FitLife.src/: директория для хранения исходного кода проекта.
main/: поддиректория для основного кода приложения.test/: поддиректория для тестов.CSS
FitLife/
├── .gitignore
├── README.md
├── diagrams/
│ ├── context/
│ │ └── FitLife_Context.puml
│ ├── container/
│ │ └── FitLife_Container.puml
│ ├── component/
│ │ └── FitLife_Component_WebApp.puml
│ └── code/
│ └── FitLife_Code_Membership.puml
└── src/
├── main/
│ └── ...
└── test/
└── ... .puml или .plantuml в репозиторий.BASH
git add diagram.puml
git commit -m "Add initial PlantUML diagram"
git push origin main .github/workflows/plantuml.yml в вашем репозитории. Этот файл настроит GitHub Actions для автоматической генерации диаграмм PlantUML и коммита их обратно в репозиторий при каждом изменении в ветке main.YAML
name: PlantUML Diagrams
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
generate-diagrams:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Java
uses: actions/setup-java@v2
with:
java-version: '11'
- name: Install PlantUML
run: sudo apt-get install plantuml
- name: Generate Diagrams
run: |
plantuml diagrams/context/*.puml
plantuml diagrams/container/*.puml
plantuml diagrams/component/*.puml
plantuml diagrams/code/*.puml
- name: Commit Diagrams
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add diagrams/**/*.png
git commit -m "Automated diagram generation"
git push origin main
if: success() Установка MkDocs
pip. Выполните следующую команду в терминале:BASH
pip install mkdocs BASH
mkdocs --version BASH
mkdocs new docs docs с базовой структурой проекта.docs/mkdocs.yml и добавьте базовую конфигурацию:YAML
site_name: FitLife Documentation
theme: readthedocs
markdown_extensions:
- md_in_html
- plantuml_markdown
plugins:
- search CSS
docs/
├── index.md
├── architecture/
│ ├── context.md
│ ├── container.md
│ ├── component.md
│ └── code.md
└── mkdocs.yml mkdocs-plantuml для интеграции PlantUML с MkDocs.BASH
pip install mkdocs-plantuml BASH
pip install mkdocs_puml plantuml в файл mkdocs.yml:BASH
plugins:
- plantuml:
puml_url: https://www.plantuml.com/plantuml/ plantuml:MARKDOWN
```puml
@startuml
title FitLife Context Diagram
top to bottom direction
!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Component.puml
Person(user, "User", "A user of the fitness club system")
Person(admin, "Administrator", "An administrator managing the system")
System(FitLifeSystem, "FitLife System", "System managing memberships, schedules, and payments")
System_Ext(api, "Third-Party API", "External API for fitness data integration", "Uses REST API, JSON data format")
System_Ext(bank, "Bank System", "External bank for processing payments", "Uses SOAP, XML data format")
Rel(user, FitLifeSystem, "Uses the system")
Rel(admin,FitLifeSystem,"Manages the system")
Rel(FitLifeSystem,api,"Fetches fitness data")
Rel(FitLifeSystem,bank,"Processes payments")
@enduml
``` BASH
mkdocs serve http://127.0.0.1:8000, чтобы увидеть сгенерированную документацию.BASH
mkdocs build