Taking full control over the styles!
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
84
docs/assets/templates/slideshow.html.jinja
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
|
||||
{% if favicon %}
|
||||
<link rel="icon" href="{{ favicon }}">
|
||||
{% endif %}
|
||||
|
||||
<link rel="stylesheet" href="{{ revealjs_path }}/dist/reveal.css" />
|
||||
|
||||
{% if theme %}
|
||||
<link rel="stylesheet" href="{{ theme }}" />
|
||||
{% endif %}
|
||||
{% if highlight_theme %}
|
||||
<link rel="stylesheet" href="{{ highlight_theme }}" />
|
||||
{% endif %}
|
||||
|
||||
{% for plugin in plugins %}
|
||||
{% if plugin.extra_css %}
|
||||
{% for css in plugin.extra_css %}
|
||||
<link rel="stylesheet" href="{{ css }}" />
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</head>
|
||||
<body>
|
||||
<div class="reveal">
|
||||
<div class="slides">
|
||||
<section data-markdown
|
||||
{% for key, value in markdown_data_options.items() %}
|
||||
{{ key }}="{{ value }}"
|
||||
{% endfor %}
|
||||
>
|
||||
<textarea data-template>
|
||||
{{ markdown }}
|
||||
</textarea>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<script src="{{ revealjs_path }}/dist/reveal.js"></script>
|
||||
<script src="{{ revealjs_path }}/plugin/markdown/markdown.js"></script>
|
||||
<script src="{{ revealjs_path }}/plugin/highlight/highlight.js"></script>
|
||||
<script src="{{ revealjs_path }}/plugin/zoom/zoom.js"></script>
|
||||
<script src="{{ revealjs_path }}/plugin/notes/notes.js"></script>
|
||||
<script src="{{ revealjs_path }}/plugin/math/math.js"></script>
|
||||
|
||||
{% if plugins %}
|
||||
{% for plugin in plugins %}
|
||||
{% if plugin.extra_javascript %}
|
||||
{% for javascript in plugin.extra_javascript %}
|
||||
<script src="{{ javascript }}"></script>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
Reveal.initialize({
|
||||
{% if revealjs_config %}
|
||||
{% for key, value in revealjs_config.items() %}
|
||||
{{ key }}: {{ value | tojson | safe }},
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
plugins: [
|
||||
RevealMarkdown,
|
||||
RevealHighlight,
|
||||
RevealZoom,
|
||||
RevealNotes,
|
||||
RevealMath,
|
||||
|
||||
{% if plugins %}
|
||||
{% for plugin in plugins %}
|
||||
{% if plugin.name %}
|
||||
{{ plugin.name }},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
],
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
409
docs/assets/themes/dracula.css
Normal file
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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).
|
||||
|
||||
---
|
||||

|
||||

|
||||
|
||||
<a style="font-size: 20px;" href="http://birrell.org/andrew/papers/ImplementingRPC.pdf">
|
||||
http://birrell.org/andrew/papers/ImplementingRPC.pdf
|
||||
|
|
@ -89,7 +89,7 @@ In the paper mentioned above, they wrote the interface using the Mesa interface
|
|||
|
||||
---
|
||||
|
||||
<img alt="grpc" src="assets/grpc-logo.png" style="width: 600px;" />
|
||||
<img alt="grpc" src="assets/images/grpc-logo.png" style="width: 600px;" />
|
||||
|
||||
*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
|
||||
|
||||

|
||||

|
||||
|
||||
note:
|
||||
|
||||
|
|
@ -321,17 +321,17 @@ Give a short example of why it is backward and forward compatible. Mention tags.
|
|||
## gRPC in the Rust ecosystem
|
||||
|
||||
|
||||
<img alt="grpc" src="assets/grpc-logo.png" style="width: 200px;" />
|
||||
<img alt="grpc" src="assets/images/grpc-logo.png" style="width: 200px;" />
|
||||
|
||||
:heart:
|
||||
|
||||
|
||||
<img alt="rust logo" src="assets/rust.svg" style="width: 100px;" />
|
||||
<img alt="rust logo" src="assets/images/rust.svg" style="width: 100px;" />
|
||||
|
||||
---
|
||||
# Tonic
|
||||
|
||||
<img alt="tonic logo" src="assets/tonic.svg" style="width: 200px;" />
|
||||
<img alt="tonic logo" src="assets/images/tonic.svg" style="width: 200px;" />
|
||||
|
||||
<br />
|
||||
|
||||
|
|
@ -568,7 +568,7 @@ Let's dive into Tower
|
|||
---
|
||||
# Tower
|
||||
|
||||
<img alt="tower" src="assets/tower.png" style="width: 200px;" />
|
||||
<img alt="tower" src="assets/images/tower.png" style="width: 200px;" />
|
||||
|
||||
note:
|
||||
|
||||
|
|
@ -644,7 +644,7 @@ Timeout -> SSRHL -> Tracing -> SSRHL -> Auth -> Starsky service
|
|||
|
||||
---
|
||||
|
||||
<img alt="tower" src="assets/tower-layers-diagram.svg" style="max-width: 50%;" />
|
||||
<img alt="tower" src="assets/images/tower-layers-diagram.svg" style="max-width: 50%;" />
|
||||
---
|
||||
|
||||
Now let's dive into real middleware implementations
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||