HABR: Рисуем диаграммы Mermaid.js в README-файлах GitHub
Mermaid - это простой язык для составления диаграмм, чартов и тп
Полезно использовать Mermaid online redactor
- Flowchart
--- title: Example Flowchart diagram --- graph TD A[Christmas] -->|Get money| B(Go shopping) B --> C{Let me think} C -->|One| D[Laptop] C -->|Two| E[iPhone] C -->|Three| F[fa:fa-car Car]
- Sequence diagram
--- title: Example Flowchart diagram --- sequenceDiagram Alice->>+John: Hello John, how are you? Alice->>+John: John, can you hear me? John-->>-Alice: Hi Alice, I can hear you! John-->>-Alice: I feel great!
- Class diagram
--- title: Example Class diagram --- classDiagram Animal <|-- Duck Animal <|-- Fish Animal <|-- Zebra Animal : +int age Animal : +String gender Animal: +isMammal() Animal: +mate() class Duck{ +String beakColor +swim() +quack() } class Fish{ -int sizeInFeet -canEat() } class Zebra{ +bool is_wild +run() }
- State diagram
--- title: Example State diagram --- stateDiagram-v2 [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*]
- Gantt diagram
--- title: Example Gantt diagram --- gantt title A Gantt Diagram dateFormat YYYY-MM-DD section Section A task :a1, 2014-01-01, 30d Another task :after a1 , 20d section Another Task in sec :2014-01-12 , 12d another task : 24d
- Entity Relationship Diagram
--- title: Example Entity Relationship diagram --- erDiagram CUSTOMER }|..|{ DELIVERY-ADDRESS : has CUSTOMER ||--o{ ORDER : places CUSTOMER ||--o{ INVOICE : "liable for" DELIVERY-ADDRESS ||--o{ ORDER : receives INVOICE ||--|{ ORDER : covers ORDER ||--|{ ORDER-ITEM : includes PRODUCT-CATEGORY ||--|{ PRODUCT : contains PRODUCT ||--o{ ORDER-ITEM : "ordered in"
- Git graph
--- title: Example Git diagram --- gitGraph commit commit branch develop checkout develop commit commit checkout main merge develop commit commit
- User Journey Diagram
--- title: Example User Journey diagram --- journey title My working day section Go to work Make tea: 5: Me Go upstairs: 3: Me Do work: 1: Me, Cat section Go home Go downstairs: 5: Me Sit down: 3: Me
- Pie chart
--- title: Example Pie chart diagram --- pie title Pets adopted by volunteers "Dogs" : 386 "Cats" : 85 "Rats" : 15
- Quadrant Chart
--- title: Example Quadrant Chart diagram --- quadrantChart title Reach and engagement of campaigns x-axis Low Reach --> High Reach y-axis Low Engagement --> High Engagement quadrant-1 We should expand quadrant-2 Need to promote quadrant-3 Re-evaluate quadrant-4 May be improved Campaign A: [0.3, 0.6] Campaign B: [0.45, 0.23] Campaign C: [0.57, 0.69] Campaign D: [0.78, 0.34] Campaign E: [0.40, 0.34] Campaign F: [0.35, 0.78]
- XY Chart
--- title: Example XY Chart diagram --- xychart-beta title "Sales Revenue" x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] y-axis "Revenue (in $)" 4000 --> 11000 bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
---
title: Django Watson Class Diagram
---
classDiagram
class SearchAdapter {
fields
exclude
store
__init__(model)
prepare_content(content)
get_title(obj)
get_description(obj)
get_content(obj)
get_url(obj)
get_meta(obj)
serialize_meta(obj)
deserialize_meta(obj)
get_live_queryset()
}
class SearchContextManager {
_stack
__init__()
is_active()
start()
add_to_context(engine, obj)
invalidate()
is_invalid()
end()
update_index()
skip_index_update()
}
class SearchContext {
__init__(context_manager)
__enter__()
__exit__(exc_type, exc_value, traceback)
__call__(func)
}
class SkipSearchContext {
__exit__(exc_type, exc_value, traceback)
}
class SearchEngine {
list _created_engines$
dict _registered_models
str _engine_slug
SearchContextManager _search_context_manager
get_created_engines()$ list
__init__(engine_slug, search_context_manager)
is_registered(model) bool
register(model, adapter_cls, **field_overrides)
unregister(model)
get_registered_models() list
get_adapter(model) SearchAdapter
cleanup_model_index(model)
update_obj_index(obj)
_post_save_receiver(instance, **kwargs)
_pre_delete_receiver(instance, **kwargs)
_create_model_filter(models, backend) list
_get_included_models(models) iter
search(search_text, models, exclude, ranking, backend_name) Queryset
filter(queryset, search_text, ranking, backend_name) Queryset
}
Exception <|-- SearchAdapterError
Exception <|-- SearchEngineError
Exception <|-- SearchContextError
SearchEngineError <|-- RegistrationError
SearchContextManager *-- SearchContext
SearchContext <|-- SkipSearchContext
---
title: Mint (Scaled)
---
graph TB
Client --> DNS & CDN & lb[Load Balancer]
lb --> web[Web Server]
subgraph api
web --> accounts[Accounts API] & read[Read API]
memoryCache[Memory Cache]
end
accounts --> queue[Queue] --> tes
subgraph storage
dbPrimary[(SQL Write Primary)] -.- dbReplica[(SQL Read Replicas)]
objectStore[(Object Store)]
end
subgraph services
tes[Transaction Extraction Service] --> category[Category Service] & budget[Budget Service] & notif[Notification Service]
end
tes --> objectStore
CDN --> objectStore
tes --> dbPrimary
accounts --> dbPrimary & dbReplica
read --> dbReplica & memoryCache[Memory Cache]
---
title: Sales Rank (Scaled)
---
graph TD
Client --> DNS & CDN & lb[Load Balancer]
CDN --> store
lb --> web[Web Server] --> salesApi[Sales API] & readApi[Read API]
service[Sales Rank Service]
subgraph storage
dbPrimary[SQL Write Primary] -.- dbReplica[SQL Read Replicas]
store[Object Store]
end
service --> dbPrimary & store
salesApi --> dbPrimary & store
readApi --> dbReplica & store & memoryCache[Memory Cache]
subgraph apis
salesApi
readApi
end
subgraph frontend
Client
DNS
CDN
lb
web
end
mindmap
root{{Server Procurement Takes Too Long}}
(Material)
not sure what hardware requirements to use as a baseline
obsolete hardware specifications
high demand for specific hardware components
(Vendors)
convoluted, slow billing process
limited vendor options
long lead times for hardware delivery
inconsistent communication from vendors
(People)
too many approvals required
unclear when costs for server are passed to client
client is unwilling to procure server
budget unavailable until milestone is met
does not see the need for the server
already has on premises servers
client does not want to use public cloud infrastructure
lack of dedicated procurement personnel
miscommunication between teams
(Systems)
procurement is not automated
outdated procurement software
lack of integration between procurement and project management tools
manual tracking of procurement status
Пример проблем и первопричин:
---
title: Systemic Approach to Cause and Effect Diagrams
---
mindmap
root((Problem))
Category A
Cause A
Cause C
Category B
Cause B
Cause D
Cause E
Category C
Usual Cause A
Usual Cause B
Category D
Usual Cause C
Usual Cause D
1.2.1 Markdown Folder Theme | Back To iOSWiki Contents | 1.2.2 About Git Theme