diff --git a/docs/assets/grpc-logo.png b/docs/assets/images/grpc-logo.png similarity index 100% rename from docs/assets/grpc-logo.png rename to docs/assets/images/grpc-logo.png diff --git a/docs/assets/rpc_architecture.png b/docs/assets/images/rpc_architecture.png similarity index 100% rename from docs/assets/rpc_architecture.png rename to docs/assets/images/rpc_architecture.png diff --git a/docs/assets/rpc_types.svg b/docs/assets/images/rpc_types.svg similarity index 100% rename from docs/assets/rpc_types.svg rename to docs/assets/images/rpc_types.svg diff --git a/docs/assets/rust.svg b/docs/assets/images/rust.svg similarity index 100% rename from docs/assets/rust.svg rename to docs/assets/images/rust.svg diff --git a/docs/assets/tonic.svg b/docs/assets/images/tonic.svg similarity index 100% rename from docs/assets/tonic.svg rename to docs/assets/images/tonic.svg diff --git a/docs/assets/tower-layers-diagram.svg b/docs/assets/images/tower-layers-diagram.svg similarity index 100% rename from docs/assets/tower-layers-diagram.svg rename to docs/assets/images/tower-layers-diagram.svg diff --git a/docs/assets/tower.png b/docs/assets/images/tower.png similarity index 100% rename from docs/assets/tower.png rename to docs/assets/images/tower.png diff --git a/docs/assets/templates/slideshow.html.jinja b/docs/assets/templates/slideshow.html.jinja new file mode 100644 index 0000000..52c97ee --- /dev/null +++ b/docs/assets/templates/slideshow.html.jinja @@ -0,0 +1,84 @@ + + + + + + + {% if favicon %} + + {% endif %} + + + + {% if theme %} + + {% endif %} + {% if highlight_theme %} + + {% endif %} + + {% for plugin in plugins %} + {% if plugin.extra_css %} + {% for css in plugin.extra_css %} + + {% endfor %} + {% endif %} + {% endfor %} + + +
+
+
+ +
+
+
+ + + + + + + + {% if plugins %} + {% for plugin in plugins %} + {% if plugin.extra_javascript %} + {% for javascript in plugin.extra_javascript %} + + {% endfor %} + {% endif %} + {% endfor %} + {% endif %} + + + + diff --git a/docs/assets/themes/dracula.css b/docs/assets/themes/dracula.css new file mode 100644 index 0000000..5343904 --- /dev/null +++ b/docs/assets/themes/dracula.css @@ -0,0 +1,409 @@ +/** + * Dracula Dark theme for reveal.js. + * Based on https://draculatheme.com + */ + +@import url("https://fonts.googleapis.com/css2?family=League+Gothic&display=swap"); +@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); + +/** + * Dracula colors by Zeno Rocha + * https://draculatheme.com/contribute + */ +html * { + color-profile: sRGB; + rendering-intent: auto; +} + +/********************************************* + * GLOBAL STYLES + *********************************************/ +:root { + --r-background-color: #282a36; + --r-main-font: + -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, + helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, + sans-serif; + --r-main-font-size: 40px; + --r-main-color: #f8f8f2; + --r-block-margin: 20px; + --r-heading-margin: 0 0 20px 0; + --r-heading-font: League Gothic, Impact, sans-serif; + --r-heading-color: #bd93f9; + --r-heading-line-height: 1.2; + --r-heading-letter-spacing: normal; + --r-heading-text-transform: none; + --r-heading-text-shadow: none; + --r-heading-font-weight: normal; + --r-heading1-text-shadow: none; + --r-heading1-size: 3.77em; + --r-heading2-size: 2.11em; + --r-heading3-size: 1.55em; + --r-heading4-size: 1em; + --r-code-font: + Fira Code, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, + monospace; + --r-link-color: #ff79c6; + --r-link-color-dark: rgb(255, 64.6, 174.0089552239); + --r-link-color-hover: #8be9fd; + --r-selection-background-color: #44475a; + --r-selection-color: #fff; + --r-overlay-element-bg-color: 240, 240, 240; + --r-overlay-element-fg-color: 0, 0, 0; + --r-bold-color: #ffb86c; + --r-italic-color: #f1fa8c; + --r-inline-code-color: #50fa7b; + --r-list-bullet-color: #8be9fd; +} + +.reveal-viewport { + background: #282a36; + background-color: var(--r-background-color); +} + +.reveal { + font-family: var(--r-main-font); + font-size: var(--r-main-font-size); + font-weight: normal; + color: var(--r-main-color); +} + +.reveal ::selection { + color: var(--r-selection-color); + background: var(--r-selection-background-color); + text-shadow: none; +} + +.reveal ::-moz-selection { + color: var(--r-selection-color); + background: var(--r-selection-background-color); + text-shadow: none; +} + +.reveal .slides section, +.reveal .slides section > section { + line-height: 1.3; + font-weight: inherit; +} + +/********************************************* + * HEADERS + *********************************************/ +section.has-light-background, +section.has-light-background h1, +section.has-light-background h2, +section.has-light-background h3, +section.has-light-background h4, +section.has-light-background h5, +section.has-light-background h6 { + color: #282a36; +} + +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: var(--r-heading-margin); + color: var(--r-heading-color); + font-family: var(--r-heading-font); + font-weight: var(--r-heading-font-weight); + line-height: var(--r-heading-line-height); + letter-spacing: var(--r-heading-letter-spacing); + text-transform: var(--r-heading-text-transform); + text-shadow: var(--r-heading-text-shadow); + word-wrap: break-word; +} + +.reveal h1 { + font-size: var(--r-heading1-size); +} + +.reveal h2 { + font-size: var(--r-heading2-size); +} + +.reveal h3 { + font-size: var(--r-heading3-size); +} + +.reveal h4 { + font-size: var(--r-heading4-size); +} + +.reveal h1 { + text-shadow: var(--r-heading1-text-shadow); +} + +/********************************************* + * OTHER + *********************************************/ +.reveal p { + margin: var(--r-block-margin) 0; + line-height: 1.3; +} + +/* Remove trailing margins after titles */ +.reveal h1:last-child, +.reveal h2:last-child, +.reveal h3:last-child, +.reveal h4:last-child, +.reveal h5:last-child, +.reveal h6:last-child { + margin-bottom: 0; +} + +/* Ensure certain elements are never larger than the slide itself */ +.reveal img, +.reveal video, +.reveal iframe { + max-width: 95%; + max-height: 95%; +} + +.reveal strong, +.reveal b { + font-weight: bold; +} + +.reveal em { + font-style: italic; +} + +.reveal ol, +.reveal dl, +.reveal ul { + display: inline-block; + text-align: left; + margin: 0 0 0 1em; +} + +.reveal ol { + list-style-type: decimal; +} + +.reveal ul { + list-style-type: disc; +} + +.reveal ul ul { + list-style-type: square; +} + +.reveal ul ul ul { + list-style-type: circle; +} + +.reveal ul ul, +.reveal ul ol, +.reveal ol ol, +.reveal ol ul { + display: block; + margin-left: 40px; +} + +.reveal dt { + font-weight: bold; +} + +.reveal dd { + margin-left: 40px; +} + +.reveal blockquote { + display: block; + position: relative; + width: 70%; + margin: var(--r-block-margin) auto; + padding: 5px; + font-style: italic; + background: rgba(255, 255, 255, 0.05); + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); +} + +.reveal blockquote p:first-child, +.reveal blockquote p:last-child { + display: inline-block; +} + +.reveal q { + font-style: italic; +} + +.reveal pre { + display: block; + position: relative; + width: 90%; + margin: var(--r-block-margin) auto; + text-align: left; + font-size: 0.55em; + font-family: var(--r-code-font); + line-height: 1.2em; + word-wrap: break-word; + box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); +} + +.reveal code { + font-family: var(--r-code-font); + text-transform: none; + tab-size: 2; +} + +.reveal pre code { + display: block; + padding: 5px; + overflow: auto; + max-height: 400px; + word-wrap: normal; +} + +.reveal .code-wrapper { + white-space: normal; +} + +.reveal .code-wrapper code { + white-space: pre; +} + +.reveal table { + margin: auto; + border-collapse: collapse; + border-spacing: 0; +} + +.reveal table th { + font-weight: bold; +} + +.reveal table th, +.reveal table td { + text-align: left; + padding: 0.2em 0.5em 0.2em 0.5em; + border-bottom: 1px solid; +} + +.reveal table th[align="center"], +.reveal table td[align="center"] { + text-align: center; +} + +.reveal table th[align="right"], +.reveal table td[align="right"] { + text-align: right; +} + +.reveal table tbody tr:last-child th, +.reveal table tbody tr:last-child td { + border-bottom: none; +} + +.reveal sup { + vertical-align: super; + font-size: smaller; +} + +.reveal sub { + vertical-align: sub; + font-size: smaller; +} + +.reveal small { + display: inline-block; + font-size: 0.6em; + line-height: 1.2em; + vertical-align: top; +} + +.reveal small * { + vertical-align: top; +} + +.reveal img { + margin: var(--r-block-margin) 0; +} + +/********************************************* + * LINKS + *********************************************/ +.reveal a { + color: var(--r-link-color); + text-decoration: none; + transition: color 0.15s ease; +} + +.reveal a:hover { + color: var(--r-link-color-hover); + text-shadow: none; + border: none; +} + +.reveal .roll span:after { + color: #fff; + background: var(--r-link-color-dark); +} + +/********************************************* + * Frame helper + *********************************************/ +.reveal .r-frame { + border: 4px solid var(--r-main-color); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); +} + +.reveal a .r-frame { + transition: all 0.15s linear; +} + +.reveal a:hover .r-frame { + border-color: var(--r-link-color); + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +.reveal .controls { + color: var(--r-link-color); +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); + color: var(--r-link-color); +} + +/********************************************* + * PRINT BACKGROUND + *********************************************/ +@media print { + .backgrounds { + background-color: var(--r-background-color); + } +} + +:root { + --r-bold-color: #ffb86c; + --r-italic-color: #f1fa8c; + --r-inline-code-color: #50fa7b; + --r-list-bullet-color: #8be9fd; +} + +.reveal strong, +.reveal b { + color: var(--r-bold-color); +} +.reveal em, +.reveal i, +.reveal blockquote { + color: var(--r-italic-color); +} +.reveal code { + color: var(--r-inline-code-color); +} +.reveal ul li::marker, +.reveal ol li::marker { + color: var(--r-list-bullet-color); +} diff --git a/docs/learning_grpc.md b/docs/learning_grpc.md index dbcea46..2b0f978 100644 --- a/docs/learning_grpc.md +++ b/docs/learning_grpc.md @@ -35,7 +35,7 @@ Things were shared in plain non secured text. [1] WHITE, J. E. A high-level framework for network-based resource sharing. In Proc. National Computer Conference, (June 1976). --- -![image](assets/rpc_architecture.png) +![image](assets/images/rpc_architecture.png) http://birrell.org/andrew/papers/ImplementingRPC.pdf @@ -89,7 +89,7 @@ In the paper mentioned above, they wrote the interface using the Mesa interface --- -grpc +grpc *gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment.* @@ -139,7 +139,7 @@ Explain multiplexing and server push ### 4 types of RPC supported -![image](assets/rpc_types.svg) +![image](assets/images/rpc_types.svg) note: @@ -321,17 +321,17 @@ Give a short example of why it is backward and forward compatible. Mention tags. ## gRPC in the Rust ecosystem -grpc +grpc :heart: -rust logo +rust logo --- # Tonic -tonic logo +tonic logo
@@ -568,7 +568,7 @@ Let's dive into Tower --- # Tower -tower +tower note: @@ -644,7 +644,7 @@ Timeout -> SSRHL -> Tracing -> SSRHL -> Auth -> Starsky service --- -tower +tower --- Now let's dive into real middleware implementations diff --git a/mkslides.yml b/mkslides.yml index ac0a2c4..5911544 100644 --- a/mkslides.yml +++ b/mkslides.yml @@ -1,6 +1,8 @@ slides: highlight_theme: tokyo-night-dark - theme: dracula + theme: docs/assets/themes/dracula.css + template: docs/assets/templates/slideshow.html.jinja revealjs: history: true slideNumber: c/t + jumpToSlide: true