From e5be7eb4e876fa27a967afda8cbe8925fbf3b845 Mon Sep 17 00:00:00 2001 From: Thomas Kiley Date: Fri, 22 Sep 2023 15:47:34 +0100 Subject: [PATCH 1/3] Embed the mermaid diagram directly in the page By extending the layout we can load the mermaid script directly to use diagrams in the lesson --- _episodes/41-code-review.md | 17 ++++++++++++++++- _layouts/lesson_mermaid.html | 14 ++++++++++++++ fig/code-review-timeline.mermaid.txt | 15 --------------- fig/code-review-timeline.png | Bin 75560 -> 0 bytes 4 files changed, 30 insertions(+), 16 deletions(-) create mode 100644 _layouts/lesson_mermaid.html delete mode 100644 fig/code-review-timeline.mermaid.txt delete mode 100644 fig/code-review-timeline.png diff --git a/_episodes/41-code-review.md b/_episodes/41-code-review.md index 0f966d77e..04eed8ac0 100644 --- a/_episodes/41-code-review.md +++ b/_episodes/41-code-review.md @@ -12,6 +12,7 @@ keypoints: - "Code review is a team software quality assurance practice where team members look at parts of the codebase in order to improve their code's readability, understandability, quality and maintainability." - "It is important to agree on a set of best practices and establish a code review process in a team to help to sustain a good, stable and maintainable code for many years." +layout: lesson_mermaid --- ## Introduction @@ -178,7 +179,21 @@ didn't see before! Here is an outline of the process of a tool based code review that we will be following: -![Code review timeline](../fig/code-review-timeline.png){: width="560px"} +```mermaid +sequenceDiagram + participant A as Author + participant R as Reviewer + A->>A: Write some code + A->>R: Raise a pull request + R->>R: Add comments to a review + R->>A: Submit a review + loop Until approved + A->>R: Address or respond to review comments + R->>A: Clarify or resolve comments + end + R->>A: Approve pull request + A->>A: Merge pull request +``` Recall [solution requirements SR1.1.1](../31-software-requirements/index.html#solution-requirements) from an earlier episode. diff --git a/_layouts/lesson_mermaid.html b/_layouts/lesson_mermaid.html new file mode 100644 index 000000000..0c17361a1 --- /dev/null +++ b/_layouts/lesson_mermaid.html @@ -0,0 +1,14 @@ +--- +layout: lesson +--- +{{ content }} + + diff --git a/fig/code-review-timeline.mermaid.txt b/fig/code-review-timeline.mermaid.txt deleted file mode 100644 index 609575221..000000000 --- a/fig/code-review-timeline.mermaid.txt +++ /dev/null @@ -1,15 +0,0 @@ -%% mermaid code for generating "code-review-timeline.png" - image must be -%% regenerated if any changes are made, e.g. using mermaid.live (styled with light) -sequenceDiagram - participant A as Author - participant R as Reviewer - A->>A: Write some code - A->>R: Raise a pull request - R->>R: Add comments to a review - R->>A: Submit a review - loop Until approved - A->>R: Address or respond to review comments - R->>A: Clarify or resolve comments - end - R->>A: Approve pull request - A->>A: Merge pull request diff --git a/fig/code-review-timeline.png b/fig/code-review-timeline.png deleted file mode 100644 index 1484dadcf8746f36cd747343ef16b73b767d5f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75560 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 +YnS ztp&H*^h3|>hLZ_wddSc1+7oP|)_r$fhhD5jKONWUioZ5PfP%gPMP%F3QumA@Exn#4 zU{o<1vmchHX|rc_dNoe#GhUHK+P*sUgw7Lx5TStFw~Q0i&i{;BG4_J@argm~S^kvl zau4o9*fbga<;wTCH$B2SQ!8-9tv>FLR3&}8aVZp5*Lf_-LnEXNx?`di_L5bdeh#cn z{v2c?5cirbnpkvX@<(BIV@v0h5nI>m`qL2eULvfY=C?wtup!hQ*HGJfe zON4}kPoA-{gc|rOi#SDY{3YH?s~C}0wU?n#RM+&DDfq_MMdRDVuB19eG`)!IiPqdM zXo;LY?k&0+j2E-57G|v_ZX`2Ft~&zZADxCegT5q?+3JEUF!J@mRTHbPF(V>Drq${` zTi|m2OVOy_czB9jomxS$oCjvz#B@>XF!q!`-)q|4cQsDAHqCc{4p>NuDE$On1uyz) zXr-d)KA{X6@ug15k_-DeU4pu05>Dj;Ug6%BtL@ge48(I(XCPtCPh zNyDHnr^!O2mG(cE_hyz})UYn^~x=_n5^O24^! z(wFO)0+dJ1475I+Epx%5PvMPfHoMWfj$KI+-Tlo3Y>7pcEZ4YpapDHP)Fx@O0)sHy z2z(FW)H@Y!Xkl^^YC9WiLuD`MtfjDXf~4L*Y$J z6ON^vxXOFedBPMAcDJS0%c_D!#@T7+a$IM37}b~)8xx@>u;3d$Y?ebxtKGn)F!DXC83Poko|GMl)(hiG^lRqUDJ1i!gj#dwj6`+buc@`E2Oq30UG10}J6DiJRJTaM zwO^+FDMq(R&6nUrx$$iw+D=YVx?|7FUqACv_gg#^E6yfxFcLYpV8P|n6fZ3C&_`z1O+uL2v3#xc9DQF-zyEzBM$6<h2jU*T_nLUw4#=I1>g~^13KF;Q zu>2e^?cz`!Xq|4|KiG3?=2L{;2OH4(-!Dgv$-whXd;0s;0yj$ySx_sdWNBS8CC4E; zd3>346TP>fcEq1ot_`Vckt!#boHo&m_f4*16IBbrrHaEj<|ldwq+Pbm=FlNXIsRbC z{T`nV_y+z3I_P@xBqUZh(XKb&aD_LsLA}y^f2|Wlq)t6H8;6K16^pX{P7m^%PERM6 zlA=pmUzL3CCIgjNGX8Gy;b30@&$Ub(Z~xf&UC}s4a2iXNji0kGR13Q*RR?*HGmFO! z3y07%mFrX1g#=Gp`jSn>11h~jw=ivsRrE79ENPCuDO-RXeu}PS)1^LO*1sO`;l0V` zvigY@S86f}QQ!51Zm)MGl8Xfhoy}-QzzMk=k7DPNG!xBFHO#;>NSn?WH4)6moY@JU%R#j zfQibc4m%Ze4bsVsmHCByNBnzv1rx$2+pop@;sF^&Iwt`|#ki}}yCHrr`WNwg2en;? z_C=6By6$+1JvzS47ns7N);G3XpsR&nXc1D3zHVz6NAHBdID7tuaDv~P-}-!8@TD0M=pb0zbP9`UW(5lY95M%lSzjA4vd+d!i(d>*Z&sU z8;TWtL?-q(dc=SR<6OJj$WzK0RQXVQw5kmac~l7-sEcG~Z(y&pTi_A4EJuI&z z&EgxP3o6@t;-Do)uS8Xh`BC7V{VPkw0utYA#VzNDtXX(&-08@n5f8>h{~*6d9)@2*XMo$SeSn9c&)XwKc%nQf7Yx?Ixi zcB0!ET^?qV0C~Ek1C6;9E;E5#QBMAJ`w~oh;7qzA?dM(-WrMMoNg%!FG;BO57wAt3 zv!CiKP9MBC+XaqZ-f*n>%xdBP)HE7{#YSUH&tmm#KfdPzA;%d;9R3dgmq{V}@vxDK`7e^ zI%?(-@e0fvZhjBvHYoHPpn5Fz66XKpShMJ_93l0>Ur9aB$6!u(^2Tl_J^%5)I}s-p hAZ_~pYw*e~TKb!3(e`~sXLi6ph3hJ^nKA}m{|1AeYS#b& From 821cbb5e4423e87ab72d8a1275a4a2ed18d44e42 Mon Sep 17 00:00:00 2001 From: Thomas Kiley Date: Fri, 22 Sep 2023 15:48:48 +0100 Subject: [PATCH 2/3] Centre the sequence diagram By default the diagrams generated by mermaid use max-width property. This means that they cannot be centre aligned in their parent container. Disabling this combined with setting the element to be 100% with auto margins will centre the diagram. --- _episodes/41-code-review.md | 2 ++ _layouts/lesson_mermaid.html | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/_episodes/41-code-review.md b/_episodes/41-code-review.md index 04eed8ac0..477a96d06 100644 --- a/_episodes/41-code-review.md +++ b/_episodes/41-code-review.md @@ -180,6 +180,8 @@ didn't see before! Here is an outline of the process of a tool based code review that we will be following: ```mermaid +%% Must disable useMaxWidth to have the diagram centre +%%{init: { 'sequence': {'useMaxWidth':false} } }%% sequenceDiagram participant A as Author participant R as Reviewer diff --git a/_layouts/lesson_mermaid.html b/_layouts/lesson_mermaid.html index 0c17361a1..1be437739 100644 --- a/_layouts/lesson_mermaid.html +++ b/_layouts/lesson_mermaid.html @@ -12,3 +12,10 @@ window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid')); }); + + From 39295969685b1fb53e2502e6a8f8195cee130e66 Mon Sep 17 00:00:00 2001 From: Thomas Kiley Date: Fri, 22 Sep 2023 15:49:09 +0100 Subject: [PATCH 3/3] Make the background colour of diagrams white No reason to have a grey background on the diagrams --- _layouts/lesson_mermaid.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_layouts/lesson_mermaid.html b/_layouts/lesson_mermaid.html index 1be437739..c9dcbafed 100644 --- a/_layouts/lesson_mermaid.html +++ b/_layouts/lesson_mermaid.html @@ -15,6 +15,7 @@