Skip to content

Commit f90c84a

Browse files
committed
Add initial support to represent diagrams with Mermaid
1 parent 74384c1 commit f90c84a

File tree

4 files changed

+48
-3
lines changed

4 files changed

+48
-3
lines changed

Gemfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
source "https://rubygems.org"
22

3-
gem 'github-pages', group: :jekyll_plugins
3+
group :jekyll_plugins do
4+
gem "github-pages"
5+
gem "jekyll-mermaid"
6+
end

_config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,8 @@ pages_dir: ""
149149
url: http://chaoss/github.io/grimoirelab-tutorial
150150
# Resource name in the url
151151
baseurl: '/grimoirelab-tutorial'
152+
153+
# Location of the mermaid source Javascript file, as expected by
154+
# the jekyll-mermaid gem. It can also be a local file.
155+
mermaid:
156+
src: 'https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js'

basics/components.md

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,46 @@ The main components of GrimoireLab are:
2121
* Manuscripts. Production of PDF documents reporting on the main characteristics of a project.
2222
* Mordred. Manages the configuration of all the components needed to produce a dashboard, automating its production.
2323

24-
![](figs/grimoirelab-all-complete.png)
24+
{% mermaid %}
25+
graph LR
26+
A((Perceval)) --> B((Arthur))
27+
B --> C(Redis<br/>fa:fa-database Item batches)
28+
C --> D((GrimoireELK))
29+
D--> E((SortingHat))
30+
D--> F(ElasticSearch<br/>fa:fa-database Raw indexes)
31+
E --> D
32+
F --> D
33+
E --> G(MariaDB <br/>fa:fa-database Identities, affiliations)
34+
G --> E
35+
H[fa:fa-file-code Known Ids] --> E
36+
D --> I(ElasticSearch<br/>fa:fa-database Enriched indexes)
37+
I --> J((Reports))
38+
I --> K((Kibiter))
39+
L((Panels)) --> K
40+
J--> M[Report]
41+
J--> N[Report n]
42+
K--> O[Browser]
43+
K--> P[Browser n]
44+
Q[fa:fa-file-code Project config] --> R((Mordred))
45+
S[Datat source] -->A
46+
T[Datat source n] -->A
2547

26-
In the figure above, GrimoireLab components are represented in the pale green box. Bold arrows show the main data flow: from data sources to Perceval (which retrieves them), to Arthur (which schedules retrieval batches and stores results in Redis), to GrimoireELK (which stores retrieved items as raw indexes, and then uses them to produce enriched indexes, both in ElasticSearch), to Reports (to produce specialized reports) or Kibiter (to visualize in actionable dashboards).
48+
classDef grimoirelab fill:lightgreen,stroke:green,stroke-width:2px;
49+
classDef configfile fill:lightsalmon,stroke:coral,stroke-width:4px;
50+
classDef output fill:gold,stroke:goldenrod,stroke-width:2px;
51+
classDef database fill:orchid,stroke:darkmagenta,stroke-width:3px;
52+
classDef datasource fill:#ff6666,stroke:maroon,stroke-width:2px;
53+
54+
class A,B,D,E,J,K,L,R grimoirelab
55+
class H,Q configfile
56+
class M,N,O,P output
57+
class C,I,F,G database
58+
class S,T datasource
59+
60+
61+
{% endmermaid %}
62+
63+
In the figure above, GrimoireLab components are represented in green. Bold arrows show the main data flow: from data sources to Perceval (which retrieves them), to Arthur (which schedules retrieval batches and stores results in Redis), to GrimoireELK (which stores retrieved items as raw indexes, and then uses them to produce enriched indexes, both in ElasticSearch), to Reports (to produce specialized reports) or Kibiter (to visualize in actionable dashboards).
2764

2865
GrimoireELK uses SortingHat to store all the identities it finds in a MariaDB database. SortingHat uses lists of known identifiers (usually maintained in configuration files) and heuristics to merge identities corresponding to the same person, and related information (such as affiliation).
2966

-197 KB
Binary file not shown.

0 commit comments

Comments
 (0)