integrate mermaid support into the book

This commit is contained in:
Niko Matsakis 2020-06-24 09:53:33 +00:00
parent 37b3c054fe
commit 4643beee05
5 changed files with 405 additions and 0 deletions

View file

@ -13,6 +13,7 @@ matrix:
before_install:
- cargo install mdbook --version '0.3.1' --debug --force
- cargo install mdbook-linkcheck --version '0.4.0' --debug --force
- cargo install mdbook-mermaid --version '^0.4' --debug --force
script:
- RUST_BACKTRACE=1 CARGO_INCREMENTAL=0 cargo test --all
- RUST_BACKTRACE=1 CARGO_INCREMENTAL=0 cargo test --tests --all

View file

@ -14,4 +14,7 @@ create-missing = false
[output.linkcheck]
follow-web-links = true
traverse-parent-directories = false
[preprocessor]
[preprocessor.mermaid]
command = "mdbook-mermaid"

1
book/mermaid-init.js Normal file
View file

@ -0,0 +1 @@
mermaid.initialize({startOnLoad:true});

351
book/mermaid.css Normal file
View file

@ -0,0 +1,351 @@
/* Flowchart variables */
/* Sequence Diagram variables */
/* Gantt chart variables */
.mermaid .mermaid .label {
color: #333;
}
.mermaid .node rect,
.mermaid .node circle,
.mermaid .node ellipse,
.mermaid .node polygon {
fill: #ECECFF;
stroke: #CCCCFF;
stroke-width: 1px;
}
.mermaid .arrowheadPath {
fill: #333333;
}
.mermaid .edgePath .path {
stroke: #333333;
}
.mermaid .edgeLabel {
background-color: #e8e8e8;
}
.mermaid .cluster rect {
fill: #ffffde !important;
rx: 4 !important;
stroke: #aaaa33 !important;
stroke-width: 1px !important;
}
.mermaid .cluster text {
fill: #333;
}
.mermaid .actor {
stroke: #CCCCFF;
fill: #ECECFF;
}
.mermaid text.actor {
fill: black;
stroke: none;
}
.mermaid .actor-line {
stroke: grey;
}
.mermaid .messageLine0 {
stroke-width: 1.5;
stroke-dasharray: "2 2";
marker-end: "url(#arrowhead)";
stroke: #333;
}
.mermaid .messageLine1 {
stroke-width: 1.5;
stroke-dasharray: "2 2";
stroke: #333;
}
.mermaid #arrowhead {
fill: #333;
}
.mermaid #crosshead path {
fill: #333 !important;
stroke: #333 !important;
}
.mermaid .messageText {
fill: #333;
stroke: none;
}
.mermaid .labelBox {
stroke: #CCCCFF;
fill: #ECECFF;
}
.mermaid .labelText {
fill: black;
stroke: none;
}
.mermaid .loopText {
fill: black;
stroke: none;
}
.mermaid .loopLine {
stroke-width: 2;
stroke-dasharray: "2 2";
marker-end: "url(#arrowhead)";
stroke: #CCCCFF;
}
.mermaid .note {
stroke: #aaaa33;
fill: #fff5ad;
}
.mermaid .noteText {
fill: black;
stroke: none;
font-family: 'trebuchet ms', verdana, arial;
font-size: 14px;
}
/** Section styling */
.mermaid .section {
stroke: none;
opacity: 0.2;
}
.mermaid .section0 {
fill: rgba(102, 102, 255, 0.49);
}
.mermaid .section2 {
fill: #fff400;
}
.mermaid .section1,
.mermaid .section3 {
fill: white;
opacity: 0.2;
}
.mermaid .sectionTitle0 {
fill: #333;
}
.mermaid .sectionTitle1 {
fill: #333;
}
.mermaid .sectionTitle2 {
fill: #333;
}
.mermaid .sectionTitle3 {
fill: #333;
}
.mermaid .sectionTitle {
text-anchor: start;
font-size: 11px;
text-height: 14px;
}
/* Grid and axis */
.mermaid .grid .tick {
stroke: lightgrey;
opacity: 0.3;
shape-rendering: crispEdges;
}
.mermaid .grid path {
stroke-width: 0;
}
/* Today line */
.mermaid .today {
fill: none;
stroke: red;
stroke-width: 2px;
}
/* Task styling */
/* Default task */
.mermaid .task {
stroke-width: 2;
}
.mermaid .taskText {
text-anchor: middle;
font-size: 11px;
}
.mermaid .taskTextOutsideRight {
fill: black;
text-anchor: start;
font-size: 11px;
}
.mermaid .taskTextOutsideLeft {
fill: black;
text-anchor: end;
font-size: 11px;
}
/* Specific task settings for the sections*/
.mermaid .taskText0,
.mermaid .taskText1,
.mermaid .taskText2,
.mermaid .taskText3 {
fill: white;
}
.mermaid .task0,
.mermaid .task1,
.mermaid .task2,
.mermaid .task3 {
fill: #8a90dd;
stroke: #534fbc;
}
.mermaid .taskTextOutside0,
.mermaid .taskTextOutside2 {
fill: black;
}
.mermaid .taskTextOutside1,
.mermaid .taskTextOutside3 {
fill: black;
}
/* Active task */
.mermaid .active0,
.mermaid .active1,
.mermaid .active2,
.mermaid .active3 {
fill: #bfc7ff;
stroke: #534fbc;
}
.mermaid .activeText0,
.mermaid .activeText1,
.mermaid .activeText2,
.mermaid .activeText3 {
fill: black !important;
}
/* Completed task */
.mermaid .done0,
.mermaid .done1,
.mermaid .done2,
.mermaid .done3 {
stroke: grey;
fill: lightgrey;
stroke-width: 2;
}
.mermaid .doneText0,
.mermaid .doneText1,
.mermaid .doneText2,
.mermaid .doneText3 {
fill: black !important;
}
/* Tasks on the critical line */
.mermaid .crit0,
.mermaid .crit1,
.mermaid .crit2,
.mermaid .crit3 {
stroke: #ff8888;
fill: red;
stroke-width: 2;
}
.mermaid .activeCrit0,
.mermaid .activeCrit1,
.mermaid .activeCrit2,
.mermaid .activeCrit3 {
stroke: #ff8888;
fill: #bfc7ff;
stroke-width: 2;
}
.mermaid .doneCrit0,
.mermaid .doneCrit1,
.mermaid .doneCrit2,
.mermaid .doneCrit3 {
stroke: #ff8888;
fill: lightgrey;
stroke-width: 2;
cursor: pointer;
shape-rendering: crispEdges;
}
.mermaid .doneCritText0,
.mermaid .doneCritText1,
.mermaid .doneCritText2,
.mermaid .doneCritText3 {
fill: black !important;
}
.mermaid .activeCritText0,
.mermaid .activeCritText1,
.mermaid .activeCritText2,
.mermaid .activeCritText3 {
fill: black !important;
}
.mermaid .titleText {
text-anchor: middle;
font-size: 18px;
fill: black;
}
.mermaid g.classGroup text {
fill: #9370DB;
stroke: none;
font-family: 'trebuchet ms', verdana, arial;
font-size: 10px;
}
.mermaid g.classGroup rect {
fill: #ECECFF;
stroke: #9370DB;
}
.mermaid g.classGroup line {
stroke: #9370DB;
stroke-width: 1;
}
.mermaid svg .classLabel .box {
stroke: none;
stroke-width: 0;
fill: #ECECFF;
opacity: 0.5;
}
.mermaid svg .classLabel .label {
fill: #9370DB;
font-size: 10px;
}
.mermaid .relation {
stroke: #9370DB;
stroke-width: 1;
fill: none;
}
.mermaid .composition {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #compositionStart {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #compositionEnd {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid .aggregation {
fill: #ECECFF;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #aggregationStart {
fill: #ECECFF;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #aggregationEnd {
fill: #ECECFF;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #dependencyStart {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #dependencyEnd {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #extensionStart {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid #extensionEnd {
fill: #9370DB;
stroke: #9370DB;
stroke-width: 1;
}
.mermaid .node text {
font-family: 'trebuchet ms', verdana, arial;
font-size: 14px;
}
.mermaid div.mermaidTooltip {
position: absolute;
text-align: center;
max-width: 200px;
padding: 2px;
font-family: 'trebuchet ms', verdana, arial;
font-size: 12px;
background: #ffffde;
border: 1px solid #aaaa33;
border-radius: 2px;
pointer-events: none;
z-index: 100;
}

49
book/mermaid.min.js vendored Normal file

File diff suppressed because one or more lines are too long