Ajout d'une brève présentation
602
presentation/css/layout.css
Normal file
|
@ -0,0 +1,602 @@
|
||||||
|
:root {
|
||||||
|
--split-div-size: 0;
|
||||||
|
--split-gap-size: 0;
|
||||||
|
}
|
||||||
|
split {
|
||||||
|
display: flex;
|
||||||
|
gap: unset;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
align-content: center;
|
||||||
|
}
|
||||||
|
split[even] > * {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
split[no-margin] > * {
|
||||||
|
--r-block-margin: 0;
|
||||||
|
}
|
||||||
|
split[wrap="1"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (1 - 1))) - (calc(var(--dbg-size) * 1 * 2))) / 1);
|
||||||
|
}
|
||||||
|
split[wrap="2"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (2 - 1))) - (calc(var(--dbg-size) * 2 * 2))) / 2);
|
||||||
|
}
|
||||||
|
split[wrap="3"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (3 - 1))) - (calc(var(--dbg-size) * 3 * 2))) / 3);
|
||||||
|
}
|
||||||
|
split[wrap="4"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (4 - 1))) - (calc(var(--dbg-size) * 4 * 2))) / 4);
|
||||||
|
}
|
||||||
|
split[wrap="5"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (5 - 1))) - (calc(var(--dbg-size) * 5 * 2))) / 5);
|
||||||
|
}
|
||||||
|
split[wrap="6"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (6 - 1))) - (calc(var(--dbg-size) * 6 * 2))) / 6);
|
||||||
|
}
|
||||||
|
split[wrap="7"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (7 - 1))) - (calc(var(--dbg-size) * 7 * 2))) / 7);
|
||||||
|
}
|
||||||
|
split[wrap="8"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (8 - 1))) - (calc(var(--dbg-size) * 8 * 2))) / 8);
|
||||||
|
}
|
||||||
|
split[wrap="9"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (9 - 1))) - (calc(var(--dbg-size) * 9 * 2))) / 9);
|
||||||
|
}
|
||||||
|
split[wrap="10"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (10 - 1))) - (calc(var(--dbg-size) * 10 * 2))) / 10);
|
||||||
|
}
|
||||||
|
split[wrap="11"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (11 - 1))) - (calc(var(--dbg-size) * 11 * 2))) / 11);
|
||||||
|
}
|
||||||
|
split[wrap="12"] > * {
|
||||||
|
flex: 1 1 calc((100% - (calc(var(--split-gap-size) * (12 - 1))) - (calc(var(--dbg-size) * 12 * 2))) / 12);
|
||||||
|
}
|
||||||
|
split[gap="0"] {
|
||||||
|
--split-gap-size: 0;
|
||||||
|
gap: unset;
|
||||||
|
}
|
||||||
|
split[gap="1"] {
|
||||||
|
--split-gap-size: 1em;
|
||||||
|
gap: 1em;
|
||||||
|
}
|
||||||
|
split[gap="2"] {
|
||||||
|
--split-gap-size: 2em;
|
||||||
|
gap: 2em;
|
||||||
|
}
|
||||||
|
split[gap="3"] {
|
||||||
|
--split-gap-size: 3em;
|
||||||
|
gap: 3em;
|
||||||
|
}
|
||||||
|
split[gap="4"] {
|
||||||
|
--split-gap-size: 4em;
|
||||||
|
gap: 4em;
|
||||||
|
}
|
||||||
|
split[gap="5"] {
|
||||||
|
--split-gap-size: 5em;
|
||||||
|
gap: 5em;
|
||||||
|
}
|
||||||
|
split[left="1"] > *:first-child {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
split[middle="1"] > *:nth-child(2) {
|
||||||
|
flex: 1 !important;
|
||||||
|
}
|
||||||
|
split[right="1"] > *:nth-child(2) {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
split[right="1"] > *:nth-child(3) {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
split[left="2"] > *:first-child {
|
||||||
|
flex: 2;
|
||||||
|
}
|
||||||
|
split[middle="2"] > *:nth-child(2) {
|
||||||
|
flex: 2 !important;
|
||||||
|
}
|
||||||
|
split[right="2"] > *:nth-child(2) {
|
||||||
|
flex: 2;
|
||||||
|
}
|
||||||
|
split[right="2"] > *:nth-child(3) {
|
||||||
|
flex: 2;
|
||||||
|
}
|
||||||
|
split[left="3"] > *:first-child {
|
||||||
|
flex: 3;
|
||||||
|
}
|
||||||
|
split[middle="3"] > *:nth-child(2) {
|
||||||
|
flex: 3 !important;
|
||||||
|
}
|
||||||
|
split[right="3"] > *:nth-child(2) {
|
||||||
|
flex: 3;
|
||||||
|
}
|
||||||
|
split[right="3"] > *:nth-child(3) {
|
||||||
|
flex: 3;
|
||||||
|
}
|
||||||
|
split[left="4"] > *:first-child {
|
||||||
|
flex: 4;
|
||||||
|
}
|
||||||
|
split[middle="4"] > *:nth-child(2) {
|
||||||
|
flex: 4 !important;
|
||||||
|
}
|
||||||
|
split[right="4"] > *:nth-child(2) {
|
||||||
|
flex: 4;
|
||||||
|
}
|
||||||
|
split[right="4"] > *:nth-child(3) {
|
||||||
|
flex: 4;
|
||||||
|
}
|
||||||
|
split[left="5"] > *:first-child {
|
||||||
|
flex: 5;
|
||||||
|
}
|
||||||
|
split[middle="5"] > *:nth-child(2) {
|
||||||
|
flex: 5 !important;
|
||||||
|
}
|
||||||
|
split[right="5"] > *:nth-child(2) {
|
||||||
|
flex: 5;
|
||||||
|
}
|
||||||
|
split[right="5"] > *:nth-child(3) {
|
||||||
|
flex: 5;
|
||||||
|
}
|
||||||
|
split[left="6"] > *:first-child {
|
||||||
|
flex: 6;
|
||||||
|
}
|
||||||
|
split[middle="6"] > *:nth-child(2) {
|
||||||
|
flex: 6 !important;
|
||||||
|
}
|
||||||
|
split[right="6"] > *:nth-child(2) {
|
||||||
|
flex: 6;
|
||||||
|
}
|
||||||
|
split[right="6"] > *:nth-child(3) {
|
||||||
|
flex: 6;
|
||||||
|
}
|
||||||
|
split[left="7"] > *:first-child {
|
||||||
|
flex: 7;
|
||||||
|
}
|
||||||
|
split[middle="7"] > *:nth-child(2) {
|
||||||
|
flex: 7 !important;
|
||||||
|
}
|
||||||
|
split[right="7"] > *:nth-child(2) {
|
||||||
|
flex: 7;
|
||||||
|
}
|
||||||
|
split[right="7"] > *:nth-child(3) {
|
||||||
|
flex: 7;
|
||||||
|
}
|
||||||
|
split[left="8"] > *:first-child {
|
||||||
|
flex: 8;
|
||||||
|
}
|
||||||
|
split[middle="8"] > *:nth-child(2) {
|
||||||
|
flex: 8 !important;
|
||||||
|
}
|
||||||
|
split[right="8"] > *:nth-child(2) {
|
||||||
|
flex: 8;
|
||||||
|
}
|
||||||
|
split[right="8"] > *:nth-child(3) {
|
||||||
|
flex: 8;
|
||||||
|
}
|
||||||
|
split[left="9"] > *:first-child {
|
||||||
|
flex: 9;
|
||||||
|
}
|
||||||
|
split[middle="9"] > *:nth-child(2) {
|
||||||
|
flex: 9 !important;
|
||||||
|
}
|
||||||
|
split[right="9"] > *:nth-child(2) {
|
||||||
|
flex: 9;
|
||||||
|
}
|
||||||
|
split[right="9"] > *:nth-child(3) {
|
||||||
|
flex: 9;
|
||||||
|
}
|
||||||
|
split[left="10"] > *:first-child {
|
||||||
|
flex: 10;
|
||||||
|
}
|
||||||
|
split[middle="10"] > *:nth-child(2) {
|
||||||
|
flex: 10 !important;
|
||||||
|
}
|
||||||
|
split[right="10"] > *:nth-child(2) {
|
||||||
|
flex: 10;
|
||||||
|
}
|
||||||
|
split[right="10"] > *:nth-child(3) {
|
||||||
|
flex: 10;
|
||||||
|
}
|
||||||
|
split[left="11"] > *:first-child {
|
||||||
|
flex: 11;
|
||||||
|
}
|
||||||
|
split[middle="11"] > *:nth-child(2) {
|
||||||
|
flex: 11 !important;
|
||||||
|
}
|
||||||
|
split[right="11"] > *:nth-child(2) {
|
||||||
|
flex: 11;
|
||||||
|
}
|
||||||
|
split[right="11"] > *:nth-child(3) {
|
||||||
|
flex: 11;
|
||||||
|
}
|
||||||
|
.align-left {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
.align-left p {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.align-center {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.align-center p {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.align-right {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
.align-right p {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
h1.align-left,
|
||||||
|
h2.align-left,
|
||||||
|
h3.align-left,
|
||||||
|
h4.align-left,
|
||||||
|
h5.align-left,
|
||||||
|
h6.align-left,
|
||||||
|
p.align-left {
|
||||||
|
text-align: left;
|
||||||
|
align-self: flex-start;
|
||||||
|
}
|
||||||
|
h1.align-right,
|
||||||
|
h2.align-right,
|
||||||
|
h3.align-right,
|
||||||
|
h4.align-right,
|
||||||
|
h5.align-right,
|
||||||
|
h6.align-right,
|
||||||
|
p.align-right {
|
||||||
|
text-align: right;
|
||||||
|
align-self: flex-end;
|
||||||
|
}
|
||||||
|
h1.align-center,
|
||||||
|
h2.align-center,
|
||||||
|
h3.align-center,
|
||||||
|
h4.align-center,
|
||||||
|
h5.align-center,
|
||||||
|
h6.align-center,
|
||||||
|
p.align-center {
|
||||||
|
text-align: center;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--animation-duration: 0.7s;
|
||||||
|
}
|
||||||
|
.slower {
|
||||||
|
--animation-duration: 1.3s;
|
||||||
|
}
|
||||||
|
.faster {
|
||||||
|
--animation-duration: 0.35s;
|
||||||
|
}
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.25, 0.75, 0.9);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.fadeIn {
|
||||||
|
animation-name: fadeIn;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideRightIn {
|
||||||
|
from {
|
||||||
|
transform: translate3d(-200px, 0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideRightIn {
|
||||||
|
animation-name: fadeIn, slideRightIn;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideLeftIn {
|
||||||
|
from {
|
||||||
|
transform: translate3d(200px, 0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideLeftIn {
|
||||||
|
animation-name: fadeIn, slideLeftIn;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideUpIn {
|
||||||
|
from {
|
||||||
|
transform: translate3d(0, 150px, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideUpIn {
|
||||||
|
animation-name: fadeIn, slideUpIn;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.5, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideDownIn {
|
||||||
|
from {
|
||||||
|
transform: translate3d(0, -150px, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideDownIn {
|
||||||
|
animation-name: fadeIn, slideDownIn;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.5, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes fadeOut {
|
||||||
|
from {
|
||||||
|
opacity: 1;
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.25, 0.75, 0.9);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.fadeOut {
|
||||||
|
animation-name: fadeOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideRightOut {
|
||||||
|
from {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(200px, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideRightOut {
|
||||||
|
animation-name: fadeOut, slideRightOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideLeftOut {
|
||||||
|
from {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(-200px, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideLeftOut {
|
||||||
|
animation-name: fadeOut, slideLeftOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideUpOut {
|
||||||
|
from {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(0, -150px, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideUpOut {
|
||||||
|
animation-name: fadeOut, slideUpOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.5, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes slideDownOut {
|
||||||
|
from {
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translate3d(0, 150px, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slideDownOut {
|
||||||
|
animation-name: fadeOut, slideDownOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.5, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes scaleUp {
|
||||||
|
from {
|
||||||
|
transform: scale3d(0.78, 0.78, 1);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: scale3d(1, 1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleUp {
|
||||||
|
animation-name: fadeIn, scaleUp;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes scaleUpOut {
|
||||||
|
from {
|
||||||
|
transform: scale3d(1, 1, 1);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: scale3d(1.23, 1.23, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleUpOut {
|
||||||
|
animation-name: fadeOut, scaleUpOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.5, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes scaleDown {
|
||||||
|
from {
|
||||||
|
transform: scale3d(1.23, 1.23, 1);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: scale3d(1, 1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleDown {
|
||||||
|
animation-name: fadeIn, scaleDown;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
@keyframes scaleDownOut {
|
||||||
|
from {
|
||||||
|
transform: scale3d(1, 1, 1);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: scale3d(0.78, 0.78, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleDownOut {
|
||||||
|
animation-name: fadeOut, scaleDownOut;
|
||||||
|
animation-duration: var(--animation-duration);
|
||||||
|
animation-timing-function: cubic-bezier(0.1, 0.5, 1);
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--callout-background-color:
|
||||||
|
255,
|
||||||
|
255,
|
||||||
|
255;
|
||||||
|
}
|
||||||
|
.callout-color1 {
|
||||||
|
--callout-color:
|
||||||
|
108,
|
||||||
|
192,
|
||||||
|
245;
|
||||||
|
}
|
||||||
|
.callout-color2 {
|
||||||
|
--callout-color:
|
||||||
|
109,
|
||||||
|
197,
|
||||||
|
217;
|
||||||
|
}
|
||||||
|
.callout-color3 {
|
||||||
|
--callout-color:
|
||||||
|
113,
|
||||||
|
208,
|
||||||
|
136;
|
||||||
|
}
|
||||||
|
.callout-color4 {
|
||||||
|
--callout-color:
|
||||||
|
160,
|
||||||
|
224,
|
||||||
|
107;
|
||||||
|
}
|
||||||
|
.callout-color5 {
|
||||||
|
--callout-color:
|
||||||
|
238,
|
||||||
|
177,
|
||||||
|
91;
|
||||||
|
}
|
||||||
|
.callout-color6 {
|
||||||
|
--callout-color:
|
||||||
|
234,
|
||||||
|
136,
|
||||||
|
133;
|
||||||
|
}
|
||||||
|
.callout-color7 {
|
||||||
|
--callout-color:
|
||||||
|
230,
|
||||||
|
98,
|
||||||
|
121;
|
||||||
|
}
|
||||||
|
.callout-color8 {
|
||||||
|
--callout-color:
|
||||||
|
152,
|
||||||
|
126,
|
||||||
|
243;
|
||||||
|
}
|
||||||
|
.callout-color9 {
|
||||||
|
--callout-color:
|
||||||
|
182,
|
||||||
|
182,
|
||||||
|
182;
|
||||||
|
}
|
||||||
|
.callout-color-default {
|
||||||
|
--callout-color:
|
||||||
|
129,
|
||||||
|
167,
|
||||||
|
244;
|
||||||
|
}
|
||||||
|
.has-light-background {
|
||||||
|
--callout-background-color:
|
||||||
|
160,
|
||||||
|
160,
|
||||||
|
160;
|
||||||
|
}
|
||||||
|
.callout {
|
||||||
|
border-left: 4px solid rgb(var(--callout-color));
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgba(var(--callout-background-color), 0.2);
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
.callout-title {
|
||||||
|
padding: 10px;
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
background-color: rgba(var(--callout-color), 0.3);
|
||||||
|
}
|
||||||
|
.callout-icon {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
display: flex;
|
||||||
|
align-self: center;
|
||||||
|
color: rgb(var(--callout-color));
|
||||||
|
}
|
||||||
|
.callout-title-inner {
|
||||||
|
flex: 1 1 0;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.callout-content {
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 5px 15px;
|
||||||
|
}
|
||||||
|
.stretch-column > * {
|
||||||
|
flex: 1;
|
||||||
|
height: 1%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.stretch-row > * {
|
||||||
|
flex: 1;
|
||||||
|
height: 100%;
|
||||||
|
width: 1%;
|
||||||
|
}
|
||||||
|
.stretch-column > p > img,
|
||||||
|
.stretch-row > p > img,
|
||||||
|
.stretch-column > p > video,
|
||||||
|
.stretch-row > p > video,
|
||||||
|
.stretch-column > p > iframe,
|
||||||
|
.stretch-row > p > iframe {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100% !important;
|
||||||
|
max-height: 100% !important;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--dbg-size: 0;
|
||||||
|
}
|
||||||
|
.dbg,
|
||||||
|
.dbg * {
|
||||||
|
--dbg-size: 1px;
|
||||||
|
border: 1px solid red;
|
||||||
|
}
|
||||||
|
.reset-margin,
|
||||||
|
.reset-margin > * {
|
||||||
|
--r-block-margin: 0;
|
||||||
|
--r-heading-margin: 0;
|
||||||
|
}
|
||||||
|
.flex-even > * {
|
||||||
|
flex: 1;
|
||||||
|
}
|
392
presentation/css/mattropolis.css
Normal file
1
presentation/css/vs2015.css
Normal file
|
@ -0,0 +1 @@
|
||||||
|
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%}
|
5
presentation/dist/fontawesome/all.min.js
vendored
Normal file
30
presentation/dist/reset.css
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
/* http://meyerweb.com/eric/tools/css/reset/
|
||||||
|
v4.0 | 20180602
|
||||||
|
License: none (public domain)
|
||||||
|
*/
|
||||||
|
|
||||||
|
html, body, div, span, applet, object, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
|
a, abbr, acronym, address, big, cite, code,
|
||||||
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
main, menu, nav, output, ruby, section, summary,
|
||||||
|
time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
/* HTML5 display-role reset for older browsers */
|
||||||
|
article, aside, details, figcaption, figure,
|
||||||
|
footer, header, hgroup, main, menu, nav, section {
|
||||||
|
display: block;
|
||||||
|
}
|
8
presentation/dist/reveal.css
vendored
Normal file
9
presentation/dist/reveal.esm.js
vendored
Normal file
1
presentation/dist/reveal.esm.js.map
vendored
Normal file
9
presentation/dist/reveal.js
vendored
Normal file
1
presentation/dist/reveal.js.map
vendored
Normal file
335
presentation/dist/theme/beige.css
vendored
Normal file
|
@ -0,0 +1,335 @@
|
||||||
|
@import "./fonts/league-gothic/league-gothic.css";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic";
|
||||||
|
.reveal .has-dark-background,
|
||||||
|
.reveal .has-dark-background h1,
|
||||||
|
.reveal .has-dark-background h2,
|
||||||
|
.reveal .has-dark-background h3,
|
||||||
|
.reveal .has-dark-background h4,
|
||||||
|
.reveal .has-dark-background h5,
|
||||||
|
.reveal .has-dark-background h6 {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #f7f3de;
|
||||||
|
--r-main-font: Lato, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #333;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
League Gothic,
|
||||||
|
Impact,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #333;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-font-weight: normal;
|
||||||
|
--r-heading1-text-shadow:
|
||||||
|
0 1px 0 #ccc,
|
||||||
|
0 2px 0 #c9c9c9,
|
||||||
|
0 3px 0 #bbb,
|
||||||
|
0 4px 0 #b9b9b9,
|
||||||
|
0 5px 0 #aaa,
|
||||||
|
0 6px 1px rgba(0, 0, 0, 0.1),
|
||||||
|
0 0 5px rgba(0, 0, 0, 0.1),
|
||||||
|
0 1px 3px rgba(0, 0, 0, 0.3),
|
||||||
|
0 3px 5px rgba(0, 0, 0, 0.2),
|
||||||
|
0 5px 10px rgba(0, 0, 0, 0.25),
|
||||||
|
0 20px 20px rgba(0, 0, 0, 0.15);
|
||||||
|
--r-heading1-size: 3.77em;
|
||||||
|
--r-heading2-size: 2.11em;
|
||||||
|
--r-heading3-size: 1.55em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #8b743d;
|
||||||
|
--r-link-color-dark: #564826;
|
||||||
|
--r-link-color-hover: #c0a86e;
|
||||||
|
--r-selection-background-color: rgba(79, 64, 28, 0.99);
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #f7f2d3;
|
||||||
|
background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||||
|
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));
|
||||||
|
background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||||
|
background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||||
|
background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||||
|
background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
320
presentation/dist/theme/black.css
vendored
Normal file
|
@ -0,0 +1,320 @@
|
||||||
|
@import "./fonts/source-sans-pro/source-sans-pro.css";
|
||||||
|
.reveal .has-light-background,
|
||||||
|
.reveal .has-light-background h1,
|
||||||
|
.reveal .has-light-background h2,
|
||||||
|
.reveal .has-light-background h3,
|
||||||
|
.reveal .has-light-background h4,
|
||||||
|
.reveal .has-light-background h5,
|
||||||
|
.reveal .has-light-background h6 {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #191919;
|
||||||
|
--r-main-font:
|
||||||
|
Source Sans Pro,
|
||||||
|
Helvetica,
|
||||||
|
sans-serif;
|
||||||
|
--r-main-font-size: 42px;
|
||||||
|
--r-main-color: #fff;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
Source Sans Pro,
|
||||||
|
Helvetica,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #fff;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: 600;
|
||||||
|
--r-heading2-font-weight: 600;
|
||||||
|
--r-heading3-font-weight: 600;
|
||||||
|
--r-heading4-font-weight: 600;
|
||||||
|
--r-heading5-font-weight: 600;
|
||||||
|
--r-heading6-font-weight: 600;
|
||||||
|
--r-heading1-text-shadow: none;
|
||||||
|
--r-heading1-size: 2.5em;
|
||||||
|
--r-heading2-size: 1.6em;
|
||||||
|
--r-heading3-size: 1.3em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #42affa;
|
||||||
|
--r-link-color-dark: #068de9;
|
||||||
|
--r-link-color-hover: #8dcffc;
|
||||||
|
--r-selection-background-color: #bee4fd;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #191919;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
352
presentation/dist/theme/blood.css
vendored
Normal file
|
@ -0,0 +1,352 @@
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic";
|
||||||
|
.reveal .has-light-background,
|
||||||
|
.reveal .has-light-background h1,
|
||||||
|
.reveal .has-light-background h2,
|
||||||
|
.reveal .has-light-background h3,
|
||||||
|
.reveal .has-light-background h4,
|
||||||
|
.reveal .has-light-background h5,
|
||||||
|
.reveal .has-light-background h6 {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #222;
|
||||||
|
--r-main-font: Ubuntu, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #eee;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font: Ubuntu, sans-serif;
|
||||||
|
--r-heading-color: #eee;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: 2px 2px 2px #222;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-font-weight: normal;
|
||||||
|
--r-heading1-text-shadow:
|
||||||
|
0 1px 0 #ccc,
|
||||||
|
0 2px 0 #c9c9c9,
|
||||||
|
0 3px 0 #bbb,
|
||||||
|
0 4px 0 #b9b9b9,
|
||||||
|
0 5px 0 #aaa,
|
||||||
|
0 6px 1px rgba(0, 0, 0, 0.1),
|
||||||
|
0 0 5px rgba(0, 0, 0, 0.1),
|
||||||
|
0 1px 3px rgba(0, 0, 0, 0.3),
|
||||||
|
0 3px 5px rgba(0, 0, 0, 0.2),
|
||||||
|
0 5px 10px rgba(0, 0, 0, 0.25),
|
||||||
|
0 20px 20px rgba(0, 0, 0, 0.15);
|
||||||
|
--r-heading1-size: 3.77em;
|
||||||
|
--r-heading2-size: 2.11em;
|
||||||
|
--r-heading3-size: 1.55em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #a23;
|
||||||
|
--r-link-color-dark: #6a1520;
|
||||||
|
--r-link-color-hover: #dd5566;
|
||||||
|
--r-selection-background-color: #a23;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #222;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
font-weight: 300;
|
||||||
|
text-shadow: 1px 1px #222;
|
||||||
|
}
|
||||||
|
section.has-light-background p,
|
||||||
|
section.has-light-background h1,
|
||||||
|
section.has-light-background h2,
|
||||||
|
section.has-light-background h3,
|
||||||
|
section.has-light-background h4 {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.reveal h1,
|
||||||
|
.reveal h2,
|
||||||
|
.reveal h3,
|
||||||
|
.reveal h4,
|
||||||
|
.reveal h5,
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.reveal p code {
|
||||||
|
background-color: #23241f;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
.reveal small code {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
332
presentation/dist/theme/consult.css
vendored
Normal file
|
@ -0,0 +1,332 @@
|
||||||
|
@charset "UTF-8";
|
||||||
|
.reveal .has-light-background,
|
||||||
|
.reveal .has-light-background h1,
|
||||||
|
.reveal .has-light-background h2,
|
||||||
|
.reveal .has-light-background h3,
|
||||||
|
.reveal .has-light-background h4,
|
||||||
|
.reveal .has-light-background h5,
|
||||||
|
.reveal .has-light-background h6 {
|
||||||
|
color: #595C5D;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #E6E7E7;
|
||||||
|
--r-main-font:
|
||||||
|
Calibri,
|
||||||
|
Helvetica,
|
||||||
|
sans-serif;
|
||||||
|
--r-main-font-size: 16px;
|
||||||
|
--r-main-color: #595C5D;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
Calibri,
|
||||||
|
Helvetica,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #595C5D;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: none;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: 600;
|
||||||
|
--r-heading2-font-weight: 600;
|
||||||
|
--r-heading3-font-weight: 600;
|
||||||
|
--r-heading4-font-weight: 600;
|
||||||
|
--r-heading5-font-weight: 400;
|
||||||
|
--r-heading6-font-weight: 400;
|
||||||
|
--r-heading1-text-shadow: none;
|
||||||
|
--r-heading1-size: 3.75em;
|
||||||
|
--r-heading2-size: 1.875em;
|
||||||
|
--r-heading3-size: 1.5em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-heading5-size: 0.75em;
|
||||||
|
--r-heading6-size: 0.625em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #42affa;
|
||||||
|
--r-link-color-dark: #068de9;
|
||||||
|
--r-link-color-hover: #8dcffc;
|
||||||
|
--r-selection-background-color: #bee4fd;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #E6E7E7;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.reveal table th,
|
||||||
|
.reveal table td {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.reveal table th,
|
||||||
|
.reveal table td {
|
||||||
|
border-left: 1px solid;
|
||||||
|
}
|
||||||
|
.reveal table th:first-child,
|
||||||
|
.reveal table td:first-child {
|
||||||
|
border-left: 0;
|
||||||
|
}
|
27
presentation/dist/theme/fonts/lato/lato.css
vendored
Normal file
6
presentation/dist/theme/fonts/league-gothic/league-gothic.css
vendored
Normal file
45
presentation/dist/theme/fonts/source-sans-pro/LICENSE
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
SIL Open Font License
|
||||||
|
|
||||||
|
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
—————————————————————————————-
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
—————————————————————————————-
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
“Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
“Reserved Font Name” refers to any names specified as such after the copyright statement(s).
|
||||||
|
|
||||||
|
“Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
“Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
|
||||||
|
|
||||||
|
“Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
vendored
Normal file
BIN
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
vendored
Normal file
39
presentation/dist/theme/fonts/source-sans-pro/source-sans-pro.css
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Source Sans Pro';
|
||||||
|
src: url('./source-sans-pro-regular.eot');
|
||||||
|
src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('./source-sans-pro-regular.woff') format('woff'),
|
||||||
|
url('./source-sans-pro-regular.ttf') format('truetype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Source Sans Pro';
|
||||||
|
src: url('./source-sans-pro-italic.eot');
|
||||||
|
src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('./source-sans-pro-italic.woff') format('woff'),
|
||||||
|
url('./source-sans-pro-italic.ttf') format('truetype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Source Sans Pro';
|
||||||
|
src: url('./source-sans-pro-semibold.eot');
|
||||||
|
src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('./source-sans-pro-semibold.woff') format('woff'),
|
||||||
|
url('./source-sans-pro-semibold.ttf') format('truetype');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Source Sans Pro';
|
||||||
|
src: url('./source-sans-pro-semibolditalic.eot');
|
||||||
|
src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
|
||||||
|
url('./source-sans-pro-semibolditalic.woff') format('woff'),
|
||||||
|
url('./source-sans-pro-semibolditalic.ttf') format('truetype');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
335
presentation/dist/theme/league.css
vendored
Normal file
|
@ -0,0 +1,335 @@
|
||||||
|
@import "./fonts/league-gothic/league-gothic.css";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic";
|
||||||
|
.reveal .has-light-background,
|
||||||
|
.reveal .has-light-background h1,
|
||||||
|
.reveal .has-light-background h2,
|
||||||
|
.reveal .has-light-background h3,
|
||||||
|
.reveal .has-light-background h4,
|
||||||
|
.reveal .has-light-background h5,
|
||||||
|
.reveal .has-light-background h6 {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #2b2b2b;
|
||||||
|
--r-main-font: Lato, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #eee;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
League Gothic,
|
||||||
|
Impact,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #eee;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-font-weight: normal;
|
||||||
|
--r-heading1-text-shadow:
|
||||||
|
0 1px 0 #ccc,
|
||||||
|
0 2px 0 #c9c9c9,
|
||||||
|
0 3px 0 #bbb,
|
||||||
|
0 4px 0 #b9b9b9,
|
||||||
|
0 5px 0 #aaa,
|
||||||
|
0 6px 1px rgba(0, 0, 0, 0.1),
|
||||||
|
0 0 5px rgba(0, 0, 0, 0.1),
|
||||||
|
0 1px 3px rgba(0, 0, 0, 0.3),
|
||||||
|
0 3px 5px rgba(0, 0, 0, 0.2),
|
||||||
|
0 5px 10px rgba(0, 0, 0, 0.25),
|
||||||
|
0 20px 20px rgba(0, 0, 0, 0.15);
|
||||||
|
--r-heading1-size: 3.77em;
|
||||||
|
--r-heading2-size: 2.11em;
|
||||||
|
--r-heading3-size: 1.55em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #13DAEC;
|
||||||
|
--r-link-color-dark: #0d99a5;
|
||||||
|
--r-link-color-hover: #71e9f4;
|
||||||
|
--r-selection-background-color: #FF5E99;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #1c1e20;
|
||||||
|
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||||
|
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
|
||||||
|
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||||
|
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||||
|
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||||
|
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
392
presentation/dist/theme/mattropolis.css
vendored
Normal file
322
presentation/dist/theme/moon.css
vendored
Normal file
|
@ -0,0 +1,322 @@
|
||||||
|
@import "./fonts/league-gothic/league-gothic.css";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic";
|
||||||
|
html * {
|
||||||
|
color-profile: sRGB;
|
||||||
|
rendering-intent: auto;
|
||||||
|
}
|
||||||
|
.reveal .has-light-background,
|
||||||
|
.reveal .has-light-background h1,
|
||||||
|
.reveal .has-light-background h2,
|
||||||
|
.reveal .has-light-background h3,
|
||||||
|
.reveal .has-light-background h4,
|
||||||
|
.reveal .has-light-background h5,
|
||||||
|
.reveal .has-light-background h6 {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #002b36;
|
||||||
|
--r-main-font: Lato, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #93a1a1;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
League Gothic,
|
||||||
|
Impact,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #eee8d5;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-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-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #268bd2;
|
||||||
|
--r-link-color-dark: #1a6091;
|
||||||
|
--r-link-color-hover: #78b9e6;
|
||||||
|
--r-selection-background-color: #d33682;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #002b36;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
318
presentation/dist/theme/night.css
vendored
Normal file
|
@ -0,0 +1,318 @@
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Montserrat:700";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic";
|
||||||
|
.reveal .has-light-background,
|
||||||
|
.reveal .has-light-background h1,
|
||||||
|
.reveal .has-light-background h2,
|
||||||
|
.reveal .has-light-background h3,
|
||||||
|
.reveal .has-light-background h4,
|
||||||
|
.reveal .has-light-background h5,
|
||||||
|
.reveal .has-light-background h6 {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #111;
|
||||||
|
--r-main-font: Open Sans, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #eee;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
Montserrat,
|
||||||
|
Impact,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #eee;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: -0.03em;
|
||||||
|
--r-heading-text-transform: none;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-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-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #e7ad52;
|
||||||
|
--r-link-color-dark: #d08a1d;
|
||||||
|
--r-link-color-hover: #f3d7ac;
|
||||||
|
--r-selection-background-color: #e7ad52;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #111;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
326
presentation/dist/theme/serif.css
vendored
Normal file
|
@ -0,0 +1,326 @@
|
||||||
|
.reveal a {
|
||||||
|
line-height: 1.3em;
|
||||||
|
}
|
||||||
|
.reveal .has-dark-background,
|
||||||
|
.reveal .has-dark-background h1,
|
||||||
|
.reveal .has-dark-background h2,
|
||||||
|
.reveal .has-dark-background h3,
|
||||||
|
.reveal .has-dark-background h4,
|
||||||
|
.reveal .has-dark-background h5,
|
||||||
|
.reveal .has-dark-background h6 {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #F0F1EB;
|
||||||
|
--r-main-font:
|
||||||
|
Palatino Linotype,
|
||||||
|
Book Antiqua,
|
||||||
|
Palatino,
|
||||||
|
FreeSerif,
|
||||||
|
serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #000;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
Palatino Linotype,
|
||||||
|
Book Antiqua,
|
||||||
|
Palatino,
|
||||||
|
FreeSerif,
|
||||||
|
serif;
|
||||||
|
--r-heading-color: #383D3D;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: none;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-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-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #51483D;
|
||||||
|
--r-link-color-dark: #25211c;
|
||||||
|
--r-link-color-hover: #8b7c69;
|
||||||
|
--r-selection-background-color: #26351C;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #F0F1EB;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
318
presentation/dist/theme/simple.css
vendored
Normal file
|
@ -0,0 +1,318 @@
|
||||||
|
@import "https://fonts.googleapis.com/css?family=News+Cycle:400,700";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic";
|
||||||
|
.reveal .has-dark-background,
|
||||||
|
.reveal .has-dark-background h1,
|
||||||
|
.reveal .has-dark-background h2,
|
||||||
|
.reveal .has-dark-background h3,
|
||||||
|
.reveal .has-dark-background h4,
|
||||||
|
.reveal .has-dark-background h5,
|
||||||
|
.reveal .has-dark-background h6 {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #fff;
|
||||||
|
--r-main-font: Lato, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #000;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
News Cycle,
|
||||||
|
Impact,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #000;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: none;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-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-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #00008B;
|
||||||
|
--r-link-color-dark: #00003f;
|
||||||
|
--r-link-color-hover: #0000f1;
|
||||||
|
--r-selection-background-color: rgba(0, 0, 0, 0.99);
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #fff;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
324
presentation/dist/theme/sky.css
vendored
Normal file
|
@ -0,0 +1,324 @@
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700";
|
||||||
|
.reveal a {
|
||||||
|
line-height: 1.3em;
|
||||||
|
}
|
||||||
|
.reveal .has-dark-background,
|
||||||
|
.reveal .has-dark-background h1,
|
||||||
|
.reveal .has-dark-background h2,
|
||||||
|
.reveal .has-dark-background h3,
|
||||||
|
.reveal .has-dark-background h4,
|
||||||
|
.reveal .has-dark-background h5,
|
||||||
|
.reveal .has-dark-background h6 {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #f7fbfc;
|
||||||
|
--r-main-font: Open Sans, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #333;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font: Quicksand, sans-serif;
|
||||||
|
--r-heading-color: #333;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: -0.08em;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-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-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #3b759e;
|
||||||
|
--r-link-color-dark: #264c66;
|
||||||
|
--r-link-color-hover: #74a7cb;
|
||||||
|
--r-selection-background-color: #134674;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #add9e4;
|
||||||
|
background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
|
||||||
|
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4));
|
||||||
|
background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
|
||||||
|
background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
|
||||||
|
background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
|
||||||
|
background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
313
presentation/dist/theme/solarized.css
vendored
Normal file
|
@ -0,0 +1,313 @@
|
||||||
|
@import "./fonts/league-gothic/league-gothic.css";
|
||||||
|
@import "https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic";
|
||||||
|
html * {
|
||||||
|
color-profile: sRGB;
|
||||||
|
rendering-intent: auto;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #fdf6e3;
|
||||||
|
--r-main-font: Lato, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #657b83;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
League Gothic,
|
||||||
|
Impact,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #586e75;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: normal;
|
||||||
|
--r-heading2-font-weight: normal;
|
||||||
|
--r-heading3-font-weight: normal;
|
||||||
|
--r-heading4-font-weight: normal;
|
||||||
|
--r-heading5-font-weight: normal;
|
||||||
|
--r-heading6-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-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #268bd2;
|
||||||
|
--r-link-color-dark: #1a6091;
|
||||||
|
--r-link-color-hover: #78b9e6;
|
||||||
|
--r-selection-background-color: #d33682;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #fdf6e3;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
320
presentation/dist/theme/white.css
vendored
Normal file
|
@ -0,0 +1,320 @@
|
||||||
|
@import "./fonts/source-sans-pro/source-sans-pro.css";
|
||||||
|
.reveal .has-dark-background,
|
||||||
|
.reveal .has-dark-background h1,
|
||||||
|
.reveal .has-dark-background h2,
|
||||||
|
.reveal .has-dark-background h3,
|
||||||
|
.reveal .has-dark-background h4,
|
||||||
|
.reveal .has-dark-background h5,
|
||||||
|
.reveal .has-dark-background h6 {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-background-color: #fff;
|
||||||
|
--r-main-font:
|
||||||
|
Source Sans Pro,
|
||||||
|
Helvetica,
|
||||||
|
sans-serif;
|
||||||
|
--r-main-font-size: 42px;
|
||||||
|
--r-main-color: #222;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font:
|
||||||
|
Source Sans Pro,
|
||||||
|
Helvetica,
|
||||||
|
sans-serif;
|
||||||
|
--r-heading-color: #222;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: uppercase;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading1-font-weight: 600;
|
||||||
|
--r-heading2-font-weight: 600;
|
||||||
|
--r-heading3-font-weight: 600;
|
||||||
|
--r-heading4-font-weight: 600;
|
||||||
|
--r-heading5-font-weight: 600;
|
||||||
|
--r-heading6-font-weight: 600;
|
||||||
|
--r-heading1-text-shadow: none;
|
||||||
|
--r-heading1-size: 2.5em;
|
||||||
|
--r-heading2-size: 1.6em;
|
||||||
|
--r-heading3-size: 1.3em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-heading5-size: 0.8em;
|
||||||
|
--r-heading6-size: 0.6em;
|
||||||
|
--r-code-font: monospace;
|
||||||
|
--r-link-color: #2a76dd;
|
||||||
|
--r-link-color-dark: #1a53a1;
|
||||||
|
--r-link-color-hover: #6ca0e8;
|
||||||
|
--r-selection-background-color: #98bdef;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #fff;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
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 h5 {
|
||||||
|
font-size: var(--r-heading5-size);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-size: var(--r-heading6-size);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
font-weight: var(--r-heading1-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h2 {
|
||||||
|
font-weight: var(--r-heading2-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h3 {
|
||||||
|
font-weight: var(--r-heading3-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h4 {
|
||||||
|
font-weight: var(--r-heading4-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h5 {
|
||||||
|
font-weight: var(--r-heading5-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h6 {
|
||||||
|
font-weight: var(--r-heading6-font-weight);
|
||||||
|
}
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
.reveal .slides > section.drop {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.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: 0 0 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: 0 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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.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);
|
||||||
|
}
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color) !important;
|
||||||
|
}
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
208
presentation/index.html
Normal file
|
@ -0,0 +1,208 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
|
|
||||||
|
<title></title>
|
||||||
|
<link rel="stylesheet" href="dist/reveal.css" />
|
||||||
|
<link rel="stylesheet" href="dist/theme/solarized.css" id="theme" />
|
||||||
|
<link rel="stylesheet" href="plugin/highlight/zenburn.css" />
|
||||||
|
<link rel="stylesheet" href="css/layout.css" />
|
||||||
|
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="dist/fontawesome/all.min.js"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var forgetPop = true;
|
||||||
|
function onPopState(event) {
|
||||||
|
if(forgetPop){
|
||||||
|
forgetPop = false;
|
||||||
|
} else {
|
||||||
|
parent.postMessage(event.target.location.href, "app://obsidian.md");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.onpopstate = onPopState;
|
||||||
|
window.onmessage = event => {
|
||||||
|
if(event.data == "reload"){
|
||||||
|
window.document.location.reload();
|
||||||
|
}
|
||||||
|
forgetPop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function fitElements(){
|
||||||
|
const itemsToFit = document.getElementsByClassName('fitText');
|
||||||
|
for (const item in itemsToFit) {
|
||||||
|
if (Object.hasOwnProperty.call(itemsToFit, item)) {
|
||||||
|
var element = itemsToFit[item];
|
||||||
|
fitElement(element,1, 1000);
|
||||||
|
element.classList.remove('fitText');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fitElement(element, start, end){
|
||||||
|
|
||||||
|
const size = (end + start) / 2;
|
||||||
|
element.style.fontSize = `${size}px`;
|
||||||
|
|
||||||
|
if(Math.abs(start - end) < 1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(element.scrollHeight > element.offsetHeight){
|
||||||
|
fitElement(element, start, size);
|
||||||
|
} else {
|
||||||
|
fitElement(element, size, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
document.onreadystatechange = () => {
|
||||||
|
fitElements();
|
||||||
|
if (document.readyState === 'complete') {
|
||||||
|
if (window.location.href.indexOf("?export") != -1){
|
||||||
|
parent.postMessage(event.target.location.href, "app://obsidian.md");
|
||||||
|
}
|
||||||
|
if (window.location.href.indexOf("print-pdf") != -1){
|
||||||
|
let stateCheck = setInterval(() => {
|
||||||
|
clearInterval(stateCheck);
|
||||||
|
window.print();
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="reveal">
|
||||||
|
<div class="slides"><section data-markdown><script type="text/template">
|
||||||
|
# Écosystème
|
||||||
|
> Anri KENNEL `$\cdot$` L2-X</script></section><section data-markdown><script type="text/template">## Relation des classes
|
||||||
|
<p style="line-height: 0" class="reset-paragraph"><img src="../img/schema.svg" alt="schema" ></img></p>
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `main.cpp`
|
||||||
|
- Gère les arguments aux programmes
|
||||||
|
- Lance, affiche et arrête la simulation (`Evenement`)
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Evenement`
|
||||||
|
- Créer la simulation (`Univers`)
|
||||||
|
- Ajoute les animaux
|
||||||
|
- Supprime l'univers
|
||||||
|
- Affiche un univers à un instant `$t$`
|
||||||
|
- Fait vivre l'univers
|
||||||
|
- Appel chaque organisme de l'univers
|
||||||
|
- Ordre: du + rapide au - rapide
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Univers`
|
||||||
|
- ID unique
|
||||||
|
- Stocke
|
||||||
|
- les dimensions de l'univers (`map`)
|
||||||
|
- ID univers correspond aux dimensions
|
||||||
|
- les organismes de l'univers (`map` et `vector`)
|
||||||
|
- ID univers corresponds aux vecteur d'organismes</script></section><section data-markdown><script type="text/template">## `Univers`
|
||||||
|
- Stocke
|
||||||
|
- les cases vides de l'univers (`map`, `pair` et `vector`)
|
||||||
|
- ID univers correspond à une pair de vecteur
|
||||||
|
- l'un pour les animaux (mouton, loup)
|
||||||
|
- l'autre pour les non-animaux (sel, herbe)
|
||||||
|
- Vérifie si l'univers est en vie (`enVie`)
|
||||||
|
- Supprime les organismes mort (`nettoyageMorts`)
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Organisme`
|
||||||
|
- ID unique
|
||||||
|
- Stocke
|
||||||
|
- ID correspond à une lettre pour l'affichage (`map`)
|
||||||
|
- index dans l'univers
|
||||||
|
- ID univers
|
||||||
|
- Peut se supprimer d'un univers (`suppressionVecteurs`)
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Organisme`
|
||||||
|
- `lettre`, exemple, un mouton à la lettre "M"
|
||||||
|
- Peut faire une action
|
||||||
|
- Peut mourir (`mortOrganisme`)
|
||||||
|
- Peut renvoyer la position sous forme
|
||||||
|
- x, y
|
||||||
|
- index
|
||||||
|
- echequier (A4)
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Animal`
|
||||||
|
Dépend de la classe `Organisme`
|
||||||
|
- Stocke
|
||||||
|
- age et age max que l'animal peut atteindre
|
||||||
|
- faim et faim max que l'animal peut supporter
|
||||||
|
- s'il l'animal se reproduit, avec qui ?, cb de temps avant de pouvoir se reproduire ?
|
||||||
|
- genre (masculin, féminin)
|
||||||
|
- vitesse
|
||||||
|
- doit-il poser des sédiment à la mort?
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Animal`
|
||||||
|
- Peut se déplacer
|
||||||
|
- Peut s'accoupler
|
||||||
|
- Regarde les cases aux alentours où il peut aller ou non
|
||||||
|
- S'il est carnivore
|
||||||
|
</script></section><section data-markdown><script type="text/template">## `Sel`, `Herbe`, `Mouton`, `Loup`
|
||||||
|
`Sel` et `Herbe` dépendent de la classe `Organisme`
|
||||||
|
`Mouton` et `Loup` dépendent de la classe `Animal`
|
||||||
|
|
||||||
|
Seul le comportement des méthodes virtuelles sont définies dans ses classes.</script></section></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="dist/reveal.js"></script>
|
||||||
|
|
||||||
|
<script src="plugin/markdown/markdown.js"></script>
|
||||||
|
<script src="plugin/highlight/highlight.js"></script>
|
||||||
|
<script src="plugin/zoom/zoom.js"></script>
|
||||||
|
<script src="plugin/notes/notes.js"></script>
|
||||||
|
<script src="plugin/math/math.js"></script>
|
||||||
|
<script src="plugin/mermaid/mermaid.js"></script>
|
||||||
|
<script src="plugin/customcontrols/plugin.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function extend() {
|
||||||
|
var target = {};
|
||||||
|
for (var i = 0; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i];
|
||||||
|
for (var key in source) {
|
||||||
|
if (source.hasOwnProperty(key)) {
|
||||||
|
target[key] = source[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
// default options to init reveal.js
|
||||||
|
var defaultOptions = {
|
||||||
|
controls: true,
|
||||||
|
progress: true,
|
||||||
|
history: true,
|
||||||
|
center: true,
|
||||||
|
transition: 'default', // none/fade/slide/convex/concave/zoom
|
||||||
|
plugins: [
|
||||||
|
RevealMarkdown,
|
||||||
|
RevealHighlight,
|
||||||
|
RevealZoom,
|
||||||
|
RevealNotes,
|
||||||
|
RevealMath.MathJax3,
|
||||||
|
RevealMermaid,
|
||||||
|
RevealCustomControls,
|
||||||
|
],
|
||||||
|
|
||||||
|
mathjax3: {
|
||||||
|
mathjax: 'plugin/math/mathjax/tex-mml-chtml.js',
|
||||||
|
},
|
||||||
|
|
||||||
|
customcontrols: {
|
||||||
|
controls: [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// options from URL query string
|
||||||
|
var queryOptions = Reveal().getQueryHash() || {};
|
||||||
|
|
||||||
|
var options = extend(defaultOptions, {"width":960,"height":700,"margin":0.04,"controls":true,"controlsLayout":"edges","progress":true,"slideNumber":true,"transition":"slide","transitionSpeed":"default"}, queryOptions);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
Reveal.initialize(options);
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
160
presentation/plugin/chalkboard/README.md
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
# Chalkboard
|
||||||
|
|
||||||
|
With this plugin you can add a chalkboard to reveal.js. The plugin provides two possibilities to include handwritten notes to your presentation:
|
||||||
|
|
||||||
|
- you can make notes directly on the slides, e.g. to comment on certain aspects,
|
||||||
|
- you can open a chalkboard or whiteboard on which you can make notes.
|
||||||
|
|
||||||
|
The main use case in mind when implementing the plugin is classroom usage in which you may want to explain some course content and quickly need to make some notes.
|
||||||
|
|
||||||
|
The plugin records all drawings made so that they can be play backed using the `autoSlide` feature or the `audio-slideshow` plugin.
|
||||||
|
|
||||||
|
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chalkboard-demo.html)
|
||||||
|
|
||||||
|
The chalkboard effect is based on [Chalkboard](https://github.com/mmoustafa/Chalkboard) by Mohamed Moustafa.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Copy the file `plugin.js` and the `img` directory into the plugin folder of your reveal.js presentation, i.e. `plugin/chalkboard` and load the plugin as shown below.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="plugin/chalkboard/plugin.js"></script>
|
||||||
|
<script src="plugin/chalkboard/customcontrols.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
Reveal.initialize({
|
||||||
|
// ...
|
||||||
|
plugins: [ RevealChalkboard, RevealCustomControls ],
|
||||||
|
// ...
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
The following stylesheet
|
||||||
|
```html
|
||||||
|
<link rel="stylesheet" href="plugin/chalkboard/style.css">
|
||||||
|
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
||||||
|
```
|
||||||
|
has to be included to the `head` section of you HTML-file.
|
||||||
|
|
||||||
|
|
||||||
|
In order to include buttons for opening and closing the notes canvas or the chalkboard you should make sure that `font-awesome` is available. The easiest way is to include
|
||||||
|
```
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
||||||
|
```
|
||||||
|
to the ```head``` section of you HTML-file.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Mouse or touch
|
||||||
|
- Click on the pen symbols at the bottom left to toggle the notes canvas or chalkboard
|
||||||
|
- Click on the color picker at the left to change the color (the color picker is only visible if the notes canvas or chalkboard is active)
|
||||||
|
- Click on the up/down arrows on the left to the switch among multiple chalkboardd (the up/down arrows are only available for the chlakboard)
|
||||||
|
- Click the left mouse button and drag to write on notes canvas or chalkboard
|
||||||
|
- Click the right mouse button and drag to wipe away previous drawings
|
||||||
|
- Touch and move to write on notes canvas or chalkboard
|
||||||
|
- Touch and hold for half a second, then move to wipe away previous drawings
|
||||||
|
|
||||||
|
### Keyboard
|
||||||
|
- Press the 'BACKSPACE' key to delete all chalkboard drawings
|
||||||
|
- Press the 'DEL' key to clear the notes canvas or chalkboard
|
||||||
|
- Press the 'c' key to toggle the notes canvas
|
||||||
|
- Press the 'b' key to toggle the chalkboard
|
||||||
|
- Press the 'd' key to download drawings
|
||||||
|
- Press the 'x' key to cycle colors forward
|
||||||
|
- Press the 'y' key to cycle colors backward
|
||||||
|
|
||||||
|
## Playback
|
||||||
|
|
||||||
|
If the `autoSlide` feature is set or if the `audio-slideshow` plugin is used, pre-recorded chalkboard drawings can be played. The slideshow plays back the user interaction with the chalkboard in the same way as it was conducted when recording the data.
|
||||||
|
|
||||||
|
## Multiplexing
|
||||||
|
|
||||||
|
The plugin supports multiplexing via the [`multiplex` plugin](https://github.com/reveal/multiplex) or the [`seminar` plugin](https://github.com/rajgoel/reveal.js-plugins/tree/master/seminar).
|
||||||
|
|
||||||
|
## PDF-Export
|
||||||
|
|
||||||
|
If the slideshow is opened in [print mode](https://revealjs.com/pdf-export/), the chalkboard drawings in the session storage (see `storage` option - print version must be opened in the same tab or window as the original slideshow) or provided in a file (see `src` option) are included in the PDF-file. Each drawing on the chalkboard is added after the slide that was shown when opening the chalkboard. Drawings on the notes canvas are not included in the PDF-file.
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The plugin has several configuration options:
|
||||||
|
|
||||||
|
- ```boardmarkerWidth```: an integer, the drawing width of the boardmarker; larger values draw thicker lines.
|
||||||
|
- ```chalkWidth```: an integer, the drawing width of the chalk; larger values draw thicker lines.
|
||||||
|
- ```chalkEffect```: a float in the range ```[0.0, 1.0]```, the intesity of the chalk effect on the chalk board. Full effect (default) ```1.0```, no effect ```0.0```.
|
||||||
|
- ```storage```: Optional variable name for session storage of drawings.
|
||||||
|
- ```src```: Optional filename for pre-recorded drawings.
|
||||||
|
- ```readOnly```: Configuation option allowing to prevent changes to existing drawings. If set to ```true``` no changes can be made, if set to false ```false``` changes can be made, if unset or set to ```undefined``` no changes to the drawings can be made after returning to a slide or fragment for which drawings had been recorded before. In any case the recorded drawings for a slide or fragment can be cleared by pressing the 'DEL' key (i.e. by using the ```RevealChalkboard.clear()``` function).
|
||||||
|
- ```transition```: Gives the duration (in milliseconds) of the transition for a slide change, so that the notes canvas is drawn after the transition is completed.
|
||||||
|
- ```theme```: Can be set to either ```"chalkboard"``` or ```"whiteboard"```.
|
||||||
|
|
||||||
|
The following configuration options allow to change the appearance of the notes canvas and the chalkboard. All of these options require two values, the first gives the value for the notes canvas, the second for the chalkboard.
|
||||||
|
|
||||||
|
- ```background```: The first value expects a (semi-)transparent color which is used to provide visual feedback that the notes canvas is enabled, the second value expects a filename to a background image for the chalkboard.
|
||||||
|
- ```grid```: By default whiteboard and chalkboard themes include a grid pattern on the background. This pattern can be modified by setting the color, the distance between lines, and the line width, e.g. ```{ color: 'rgb(127,127,255,0.1)', distance: 40, width: 2}```. Alternatively, the grid can be removed by setting the value to ```false```.
|
||||||
|
- ```eraser```: An image path and radius for the eraser.
|
||||||
|
- ```boardmarkers```: A list of boardmarkers with given color and cursor.
|
||||||
|
- ```chalks```: A list of chalks with given color and cursor.
|
||||||
|
- ```rememberColor```: Whether to remember the last selected color for the slide canvas or the board.
|
||||||
|
|
||||||
|
All of the configurations are optional and the default values shown below are used if the options are not provided.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
Reveal.initialize({
|
||||||
|
// ...
|
||||||
|
chalkboard: {
|
||||||
|
boardmarkerWidth: 3,
|
||||||
|
chalkWidth: 7,
|
||||||
|
chalkEffect: 1.0,
|
||||||
|
storage: null,
|
||||||
|
src: null,
|
||||||
|
readOnly: undefined,
|
||||||
|
transition: 800,
|
||||||
|
theme: "chalkboard",
|
||||||
|
background: [ 'rgba(127,127,127,.1)' , path + 'img/blackboard.png' ],
|
||||||
|
grid: { color: 'rgb(50,50,10,0.5)', distance: 80, width: 2},
|
||||||
|
eraser: { src: path + 'img/sponge.png', radius: 20},
|
||||||
|
boardmarkers : [
|
||||||
|
{ color: 'rgba(100,100,100,1)', cursor: 'url(' + path + 'img/boardmarker-black.png), auto'},
|
||||||
|
{ color: 'rgba(30,144,255, 1)', cursor: 'url(' + path + 'img/boardmarker-blue.png), auto'},
|
||||||
|
{ color: 'rgba(220,20,60,1)', cursor: 'url(' + path + 'img/boardmarker-red.png), auto'},
|
||||||
|
{ color: 'rgba(50,205,50,1)', cursor: 'url(' + path + 'img/boardmarker-green.png), auto'},
|
||||||
|
{ color: 'rgba(255,140,0,1)', cursor: 'url(' + path + 'img/boardmarker-orange.png), auto'},
|
||||||
|
{ color: 'rgba(150,0,20150,1)', cursor: 'url(' + path + 'img/boardmarker-purple.png), auto'},
|
||||||
|
{ color: 'rgba(255,220,0,1)', cursor: 'url(' + path + 'img/boardmarker-yellow.png), auto'}
|
||||||
|
],
|
||||||
|
chalks: [
|
||||||
|
{ color: 'rgba(255,255,255,0.5)', cursor: 'url(' + path + 'img/chalk-white.png), auto'},
|
||||||
|
{ color: 'rgba(96, 154, 244, 0.5)', cursor: 'url(' + path + 'img/chalk-blue.png), auto'},
|
||||||
|
{ color: 'rgba(237, 20, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-red.png), auto'},
|
||||||
|
{ color: 'rgba(20, 237, 28, 0.5)', cursor: 'url(' + path + 'img/chalk-green.png), auto'},
|
||||||
|
{ color: 'rgba(220, 133, 41, 0.5)', cursor: 'url(' + path + 'img/chalk-orange.png), auto'},
|
||||||
|
{ color: 'rgba(220,0,220,0.5)', cursor: 'url(' + path + 'img/chalk-purple.png), auto'},
|
||||||
|
{ color: 'rgba(255,220,0,0.5)', cursor: 'url(' + path + 'img/chalk-yellow.png), auto'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
customcontrols: {
|
||||||
|
controls: [
|
||||||
|
{ icon: '<i class="fa fa-pen-square"></i>',
|
||||||
|
title: 'Toggle chalkboard (B)',
|
||||||
|
action: 'RevealChalkboard.toggleChalkboard();'
|
||||||
|
},
|
||||||
|
{ icon: '<i class="fa fa-pen"></i>',
|
||||||
|
title: 'Toggle notes canvas (C)',
|
||||||
|
action: 'RevealChalkboard.toggleNotesCanvas();'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// ...
|
||||||
|
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT licensed
|
||||||
|
|
||||||
|
Copyright (C) 2021 Asvin Goel
|
38
presentation/plugin/chalkboard/_style.css
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
div.palette, div.boardhandle {
|
||||||
|
position: absolute;
|
||||||
|
/*
|
||||||
|
height: 260px;
|
||||||
|
margin: -130px 0 0 0px;
|
||||||
|
*/
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
font-size: 24px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-top: 4px solid #222;
|
||||||
|
border-right: 4px solid #222;
|
||||||
|
border-bottom: 4px solid #222;
|
||||||
|
background: black;
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.palette {
|
||||||
|
left: -10px;
|
||||||
|
padding-left:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.boardhandle {
|
||||||
|
right: -10px;
|
||||||
|
padding-right:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.palette > ul,
|
||||||
|
div.boardhandle > ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.palette > ul > li,
|
||||||
|
div.boardhandle > ul > li {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
BIN
presentation/plugin/chalkboard/img/blackboard.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-black.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-blue.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-green.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-orange.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-purple.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-red.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
presentation/plugin/chalkboard/img/boardmarker-yellow.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-blue.png
Normal file
After Width: | Height: | Size: 5 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-green.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-orange.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-purple.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-red.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-white.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
presentation/plugin/chalkboard/img/chalk-yellow.png
Normal file
After Width: | Height: | Size: 5 KiB |
BIN
presentation/plugin/chalkboard/img/sponge.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
presentation/plugin/chalkboard/img/whiteboard.png
Normal file
After Width: | Height: | Size: 33 KiB |
1812
presentation/plugin/chalkboard/plugin (copy).js
Normal file
1976
presentation/plugin/chalkboard/plugin.js
Normal file
44
presentation/plugin/chalkboard/style.css
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
div.palette, div.boardhandle {
|
||||||
|
position: absolute;
|
||||||
|
/*
|
||||||
|
height: 260px;
|
||||||
|
margin: -130px 0 0 0px;
|
||||||
|
*/
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
font-size: 24px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-top: 4px solid #222;
|
||||||
|
border-right: 4px solid #222;
|
||||||
|
border-bottom: 4px solid #222;
|
||||||
|
background: black;
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.palette {
|
||||||
|
left: -10px;
|
||||||
|
padding-left:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.boardhandle {
|
||||||
|
right: -10px;
|
||||||
|
padding-right:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.palette > ul,
|
||||||
|
div.boardhandle > ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.palette > ul > li,
|
||||||
|
div.boardhandle > ul > li {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
div.palette, div.boardhandle, .chalkboard-button {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
|
}
|
72
presentation/plugin/customcontrols/README.md
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
# Custom controls
|
||||||
|
|
||||||
|
This plugin allows to add responsive custom controls to reveal.js which allow arbitrary positioning, layout, and behaviour of the controls.
|
||||||
|
|
||||||
|
[Check out the live demo](https://rajgoel.github.io/reveal.js-demos/customcontrols-demo.html)
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Copy the files `plugin.js` and `style.css` into the plugin folder of your reveal.js presentation, i.e. ```plugin/customcontrols``` and load the plugin as shown below.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
||||||
|
<script src="plugin/customcontrols/plugin.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
Reveal.initialize({
|
||||||
|
// ...
|
||||||
|
plugins: [ RevealCustomControls ],
|
||||||
|
// ...
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
Note, without configuration you need to add
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
||||||
|
```
|
||||||
|
|
||||||
|
between ```<head>``` and ```</head>``` of your HTML file because the defaults use [Font Awesome](http://fontawesome.io/).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The plugin can be configured by adding custom controls and changing the layout of the slide number, e.g., by:
|
||||||
|
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
Reveal.initialize({
|
||||||
|
// ...
|
||||||
|
customcontrols: {
|
||||||
|
controls: [
|
||||||
|
{
|
||||||
|
id: 'toggle-overview',
|
||||||
|
title: 'Toggle overview (O)',
|
||||||
|
icon: '<i class="fa fa-th"></i>',
|
||||||
|
action: 'Reveal.toggleOverview();'
|
||||||
|
},
|
||||||
|
{ icon: '<i class="fa fa-pen-square"></i>',
|
||||||
|
title: 'Toggle chalkboard (B)',
|
||||||
|
action: 'RevealChalkboard.toggleChalkboard();'
|
||||||
|
},
|
||||||
|
{ icon: '<i class="fa fa-pen"></i>',
|
||||||
|
title: 'Toggle notes canvas (C)',
|
||||||
|
action: 'RevealChalkboard.toggleNotesCanvas();'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// ...
|
||||||
|
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
The `id` and `title` are optional. The configuration should be self explaining and any number of controls can be added. The style file can be altered to control the layout and responsiveness of the custom controls.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT licensed
|
||||||
|
|
||||||
|
Copyright (C) 2020 Asvin Goel
|
69
presentation/plugin/customcontrols/plugin.js
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
/*****************************************************************
|
||||||
|
** Author: Asvin Goel, goel@telematique.eu
|
||||||
|
**
|
||||||
|
** A plugin replacing the default controls by custom controls.
|
||||||
|
**
|
||||||
|
** Version: 2.0.0
|
||||||
|
**
|
||||||
|
** License: MIT license (see LICENSE.md)
|
||||||
|
**
|
||||||
|
******************************************************************/
|
||||||
|
window.RevealCustomControls = window.RevealCustomControls || {
|
||||||
|
id: 'RevealCustomControls',
|
||||||
|
init: function(deck) {
|
||||||
|
initCustomControls(deck);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const initCustomControls = function(Reveal){
|
||||||
|
var config = Reveal.getConfig().customcontrols || {};
|
||||||
|
|
||||||
|
var collapseIcon = config.collapseIcon || '<i class="fa fa-chevron-down"></i>';
|
||||||
|
var expandIcon = config.expandIcon || '<i class="fa fa-chevron-up"></i>';
|
||||||
|
var tooltip = config.tooltip || 'Show/hide controls';
|
||||||
|
|
||||||
|
var div = document.createElement( 'div' );
|
||||||
|
div.id = 'customcontrols';
|
||||||
|
|
||||||
|
var toggleButton = document.createElement( 'button' );
|
||||||
|
toggleButton.title = tooltip;
|
||||||
|
toggleButton.innerHTML = '<span id="collapse-customcontrols">' + collapseIcon + '</span>' + '<span id="expand-customcontrols">' + expandIcon + '</span>';
|
||||||
|
|
||||||
|
toggleButton.addEventListener('click', function( event ) {
|
||||||
|
var div = document.querySelector("div#customcontrols");
|
||||||
|
if ( div.classList.contains('collapsed') ) {
|
||||||
|
div.classList.remove('collapsed');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
div.classList.add('collapsed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
div.appendChild(toggleButton);
|
||||||
|
|
||||||
|
var controls = document.createElement( 'ul' );
|
||||||
|
for (var i = 0; i < config.controls.length; i++ ) {
|
||||||
|
var control = document.createElement( 'li' );
|
||||||
|
if ( config.controls[i].id ) {
|
||||||
|
control.id = config.controls[i].id;
|
||||||
|
}
|
||||||
|
control.innerHTML = '<button ' + ( config.controls[i].title ? 'title="' + config.controls[i].title + '" ': '' ) + 'onclick="' + config.controls[i].action + '">' + config.controls[i].icon + '</button>';
|
||||||
|
controls.appendChild( control );
|
||||||
|
}
|
||||||
|
div.appendChild( controls );
|
||||||
|
|
||||||
|
|
||||||
|
document.querySelector(".reveal").appendChild( div );
|
||||||
|
|
||||||
|
document.addEventListener( 'resize', function( event ) {
|
||||||
|
// expand controls to make sure they are visible
|
||||||
|
var div = document.querySelector("div#customcontrols.collapsed");
|
||||||
|
if ( div ) {
|
||||||
|
div.classList.remove('collapsed');
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
62
presentation/plugin/customcontrols/style.css
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
#customcontrols {
|
||||||
|
z-index: 40;
|
||||||
|
position: fixed;
|
||||||
|
left: 70px;
|
||||||
|
bottom: 30px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#customcontrols button {
|
||||||
|
background: none;
|
||||||
|
color: var(--r-link-color);
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
font: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: inherit;
|
||||||
|
z-index: 40;
|
||||||
|
}
|
||||||
|
|
||||||
|
#customcontrols button:hover {
|
||||||
|
color: var(--r-link-color-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
#customcontrols > ul {
|
||||||
|
position: fixed;
|
||||||
|
left: 54px;
|
||||||
|
bottom: 64px;
|
||||||
|
list-style-type: none;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 1px solid var(--r-link-color);
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: var(--r-background-color)
|
||||||
|
}
|
||||||
|
|
||||||
|
#customcontrols ul > li {
|
||||||
|
margin: 0px 5px;
|
||||||
|
padding: 0px 5px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#customcontrols.collapsed #collapse-customcontrols, #customcontrols.collapsed > ul {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#customcontrols:not(.collapsed) #expand-customcontrols {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 500px) {
|
||||||
|
#customcontrols > button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#customcontrols > ul {
|
||||||
|
bottom: 20px;
|
||||||
|
border: none;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
}
|
5
presentation/plugin/highlight/highlight.esm.js
Normal file
5
presentation/plugin/highlight/highlight.js
Normal file
71
presentation/plugin/highlight/monokai.css
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
/*
|
||||||
|
Monokai style - ported by Luigi Maselli - http://grigio.org
|
||||||
|
*/
|
||||||
|
|
||||||
|
.hljs {
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 0.5em;
|
||||||
|
background: #272822;
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-tag,
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-strong,
|
||||||
|
.hljs-name {
|
||||||
|
color: #f92672;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-code {
|
||||||
|
color: #66d9ef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-class .hljs-title {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-attribute,
|
||||||
|
.hljs-symbol,
|
||||||
|
.hljs-regexp,
|
||||||
|
.hljs-link {
|
||||||
|
color: #bf79db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-bullet,
|
||||||
|
.hljs-subst,
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-section,
|
||||||
|
.hljs-emphasis,
|
||||||
|
.hljs-type,
|
||||||
|
.hljs-built_in,
|
||||||
|
.hljs-builtin-name,
|
||||||
|
.hljs-selector-attr,
|
||||||
|
.hljs-selector-pseudo,
|
||||||
|
.hljs-addition,
|
||||||
|
.hljs-variable,
|
||||||
|
.hljs-template-tag,
|
||||||
|
.hljs-template-variable {
|
||||||
|
color: #a6e22e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-quote,
|
||||||
|
.hljs-deletion,
|
||||||
|
.hljs-meta {
|
||||||
|
color: #75715e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-doctag,
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-section,
|
||||||
|
.hljs-type,
|
||||||
|
.hljs-selector-id {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
439
presentation/plugin/highlight/plugin.js
Normal file
|
@ -0,0 +1,439 @@
|
||||||
|
import hljs from 'highlight.js';
|
||||||
|
|
||||||
|
/* highlightjs-line-numbers.js 2.8.0 | (C) 2018 Yauheni Pakala | MIT License | github.com/wcoder/highlightjs-line-numbers.js */
|
||||||
|
!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){if("object"==typeof e)e.innerHTML=f(e,n)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}hljs?(hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},hljs.lineNumbersBlock=d,hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* reveal.js plugin that adds syntax highlight support.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const Plugin = {
|
||||||
|
|
||||||
|
id: 'highlight',
|
||||||
|
|
||||||
|
HIGHLIGHT_STEP_DELIMITER: '|',
|
||||||
|
HIGHLIGHT_LINE_DELIMITER: ',',
|
||||||
|
HIGHLIGHT_LINE_RANGE_DELIMITER: '-',
|
||||||
|
|
||||||
|
hljs,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Highlights code blocks withing the given deck.
|
||||||
|
*
|
||||||
|
* Note that this can be called multiple times if
|
||||||
|
* there are multiple presentations on one page.
|
||||||
|
*
|
||||||
|
* @param {Reveal} reveal the reveal.js instance
|
||||||
|
*/
|
||||||
|
init: function( reveal ) {
|
||||||
|
|
||||||
|
// Read the plugin config options and provide fallbacks
|
||||||
|
let config = reveal.getConfig().highlight || {};
|
||||||
|
|
||||||
|
config.highlightOnLoad = typeof config.highlightOnLoad === 'boolean' ? config.highlightOnLoad : true;
|
||||||
|
config.escapeHTML = typeof config.escapeHTML === 'boolean' ? config.escapeHTML : true;
|
||||||
|
|
||||||
|
Array.from( reveal.getRevealElement().querySelectorAll( 'pre code' ) ).forEach( block => {
|
||||||
|
|
||||||
|
block.parentNode.classList.add('code-wrapper');
|
||||||
|
|
||||||
|
// Code can optionally be wrapped in script template to avoid
|
||||||
|
// HTML being parsed by the browser (i.e. when you need to
|
||||||
|
// include <, > or & in your code).
|
||||||
|
let substitute = block.querySelector( 'script[type="text/template"]' );
|
||||||
|
if( substitute ) {
|
||||||
|
// textContent handles the HTML entity escapes for us
|
||||||
|
block.textContent = substitute.innerHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Trim whitespace if the "data-trim" attribute is present
|
||||||
|
if( block.hasAttribute( 'data-trim' ) && typeof block.innerHTML.trim === 'function' ) {
|
||||||
|
block.innerHTML = betterTrim( block );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Escape HTML tags unless the "data-noescape" attrbute is present
|
||||||
|
if( config.escapeHTML && !block.hasAttribute( 'data-noescape' )) {
|
||||||
|
block.innerHTML = block.innerHTML.replace( /</g,"<").replace(/>/g, '>' );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Re-highlight when focus is lost (for contenteditable code)
|
||||||
|
block.addEventListener( 'focusout', function( event ) {
|
||||||
|
hljs.highlightElement( event.currentTarget );
|
||||||
|
}, false );
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Triggers a callback function before we trigger highlighting
|
||||||
|
if( typeof config.beforeHighlight === 'function' ) {
|
||||||
|
config.beforeHighlight( hljs );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run initial highlighting for all code
|
||||||
|
if( config.highlightOnLoad ) {
|
||||||
|
Array.from( reveal.getRevealElement().querySelectorAll( 'pre code' ) ).forEach( block => {
|
||||||
|
Plugin.highlightBlock( block );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we're printing to PDF, scroll the code highlights of
|
||||||
|
// all blocks in the deck into view at once
|
||||||
|
reveal.on( 'pdf-ready', function() {
|
||||||
|
[].slice.call( reveal.getRevealElement().querySelectorAll( 'pre code[data-line-numbers].current-fragment' ) ).forEach( function( block ) {
|
||||||
|
Plugin.scrollHighlightedLineIntoView( block, {}, true );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Highlights a code block. If the <code> node has the
|
||||||
|
* 'data-line-numbers' attribute we also generate slide
|
||||||
|
* numbers.
|
||||||
|
*
|
||||||
|
* If the block contains multiple line highlight steps,
|
||||||
|
* we clone the block and create a fragment for each step.
|
||||||
|
*/
|
||||||
|
highlightBlock: function( block ) {
|
||||||
|
|
||||||
|
hljs.highlightElement( block );
|
||||||
|
|
||||||
|
// Don't generate line numbers for empty code blocks
|
||||||
|
if( block.innerHTML.trim().length === 0 ) return;
|
||||||
|
|
||||||
|
if( block.hasAttribute( 'data-line-numbers' ) ) {
|
||||||
|
hljs.lineNumbersBlock( block, { singleLine: true } );
|
||||||
|
|
||||||
|
var scrollState = { currentBlock: block };
|
||||||
|
|
||||||
|
// If there is at least one highlight step, generate
|
||||||
|
// fragments
|
||||||
|
var highlightSteps = Plugin.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) );
|
||||||
|
if( highlightSteps.length > 1 ) {
|
||||||
|
|
||||||
|
// If the original code block has a fragment-index,
|
||||||
|
// each clone should follow in an incremental sequence
|
||||||
|
var fragmentIndex = parseInt( block.getAttribute( 'data-fragment-index' ), 10 );
|
||||||
|
|
||||||
|
if( typeof fragmentIndex !== 'number' || isNaN( fragmentIndex ) ) {
|
||||||
|
fragmentIndex = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate fragments for all steps except the original block
|
||||||
|
highlightSteps.slice(1).forEach( function( highlight ) {
|
||||||
|
|
||||||
|
var fragmentBlock = block.cloneNode( true );
|
||||||
|
fragmentBlock.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlight ] ) );
|
||||||
|
fragmentBlock.classList.add( 'fragment' );
|
||||||
|
block.parentNode.appendChild( fragmentBlock );
|
||||||
|
Plugin.highlightLines( fragmentBlock );
|
||||||
|
|
||||||
|
if( typeof fragmentIndex === 'number' ) {
|
||||||
|
fragmentBlock.setAttribute( 'data-fragment-index', fragmentIndex );
|
||||||
|
fragmentIndex += 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fragmentBlock.removeAttribute( 'data-fragment-index' );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll highlights into view as we step through them
|
||||||
|
fragmentBlock.addEventListener( 'visible', Plugin.scrollHighlightedLineIntoView.bind( Plugin, fragmentBlock, scrollState ) );
|
||||||
|
fragmentBlock.addEventListener( 'hidden', Plugin.scrollHighlightedLineIntoView.bind( Plugin, fragmentBlock.previousSibling, scrollState ) );
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
block.removeAttribute( 'data-fragment-index' )
|
||||||
|
block.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlightSteps[0] ] ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll the first highlight into view when the slide
|
||||||
|
// becomes visible. Note supported in IE11 since it lacks
|
||||||
|
// support for Element.closest.
|
||||||
|
var slide = typeof block.closest === 'function' ? block.closest( 'section:not(.stack)' ) : null;
|
||||||
|
if( slide ) {
|
||||||
|
var scrollFirstHighlightIntoView = function() {
|
||||||
|
Plugin.scrollHighlightedLineIntoView( block, scrollState, true );
|
||||||
|
slide.removeEventListener( 'visible', scrollFirstHighlightIntoView );
|
||||||
|
}
|
||||||
|
slide.addEventListener( 'visible', scrollFirstHighlightIntoView );
|
||||||
|
}
|
||||||
|
|
||||||
|
Plugin.highlightLines( block );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Animates scrolling to the first highlighted line
|
||||||
|
* in the given code block.
|
||||||
|
*/
|
||||||
|
scrollHighlightedLineIntoView: function( block, scrollState, skipAnimation ) {
|
||||||
|
|
||||||
|
cancelAnimationFrame( scrollState.animationFrameID );
|
||||||
|
|
||||||
|
// Match the scroll position of the currently visible
|
||||||
|
// code block
|
||||||
|
if( scrollState.currentBlock ) {
|
||||||
|
block.scrollTop = scrollState.currentBlock.scrollTop;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remember the current code block so that we can match
|
||||||
|
// its scroll position when showing/hiding fragments
|
||||||
|
scrollState.currentBlock = block;
|
||||||
|
|
||||||
|
var highlightBounds = this.getHighlightedLineBounds( block )
|
||||||
|
var viewportHeight = block.offsetHeight;
|
||||||
|
|
||||||
|
// Subtract padding from the viewport height
|
||||||
|
var blockStyles = getComputedStyle( block );
|
||||||
|
viewportHeight -= parseInt( blockStyles.paddingTop ) + parseInt( blockStyles.paddingBottom );
|
||||||
|
|
||||||
|
// Scroll position which centers all highlights
|
||||||
|
var startTop = block.scrollTop;
|
||||||
|
var targetTop = highlightBounds.top + ( Math.min( highlightBounds.bottom - highlightBounds.top, viewportHeight ) - viewportHeight ) / 2;
|
||||||
|
|
||||||
|
// Account for offsets in position applied to the
|
||||||
|
// <table> that holds our lines of code
|
||||||
|
var lineTable = block.querySelector( '.hljs-ln' );
|
||||||
|
if( lineTable ) targetTop += lineTable.offsetTop - parseInt( blockStyles.paddingTop );
|
||||||
|
|
||||||
|
// Make sure the scroll target is within bounds
|
||||||
|
targetTop = Math.max( Math.min( targetTop, block.scrollHeight - viewportHeight ), 0 );
|
||||||
|
|
||||||
|
if( skipAnimation === true || startTop === targetTop ) {
|
||||||
|
block.scrollTop = targetTop;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Don't attempt to scroll if there is no overflow
|
||||||
|
if( block.scrollHeight <= viewportHeight ) return;
|
||||||
|
|
||||||
|
var time = 0;
|
||||||
|
var animate = function() {
|
||||||
|
time = Math.min( time + 0.02, 1 );
|
||||||
|
|
||||||
|
// Update our eased scroll position
|
||||||
|
block.scrollTop = startTop + ( targetTop - startTop ) * Plugin.easeInOutQuart( time );
|
||||||
|
|
||||||
|
// Keep animating unless we've reached the end
|
||||||
|
if( time < 1 ) {
|
||||||
|
scrollState.animationFrameID = requestAnimationFrame( animate );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
animate();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The easing function used when scrolling.
|
||||||
|
*/
|
||||||
|
easeInOutQuart: function( t ) {
|
||||||
|
|
||||||
|
// easeInOutQuart
|
||||||
|
return t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
getHighlightedLineBounds: function( block ) {
|
||||||
|
|
||||||
|
var highlightedLines = block.querySelectorAll( '.highlight-line' );
|
||||||
|
if( highlightedLines.length === 0 ) {
|
||||||
|
return { top: 0, bottom: 0 };
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var firstHighlight = highlightedLines[0];
|
||||||
|
var lastHighlight = highlightedLines[ highlightedLines.length -1 ];
|
||||||
|
|
||||||
|
return {
|
||||||
|
top: firstHighlight.offsetTop,
|
||||||
|
bottom: lastHighlight.offsetTop + lastHighlight.offsetHeight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visually emphasize specific lines within a code block.
|
||||||
|
* This only works on blocks with line numbering turned on.
|
||||||
|
*
|
||||||
|
* @param {HTMLElement} block a <code> block
|
||||||
|
* @param {String} [linesToHighlight] The lines that should be
|
||||||
|
* highlighted in this format:
|
||||||
|
* "1" = highlights line 1
|
||||||
|
* "2,5" = highlights lines 2 & 5
|
||||||
|
* "2,5-7" = highlights lines 2, 5, 6 & 7
|
||||||
|
*/
|
||||||
|
highlightLines: function( block, linesToHighlight ) {
|
||||||
|
|
||||||
|
var highlightSteps = Plugin.deserializeHighlightSteps( linesToHighlight || block.getAttribute( 'data-line-numbers' ) );
|
||||||
|
|
||||||
|
if( highlightSteps.length ) {
|
||||||
|
|
||||||
|
highlightSteps[0].forEach( function( highlight ) {
|
||||||
|
|
||||||
|
var elementsToHighlight = [];
|
||||||
|
|
||||||
|
// Highlight a range
|
||||||
|
if( typeof highlight.end === 'number' ) {
|
||||||
|
elementsToHighlight = [].slice.call( block.querySelectorAll( 'table tr:nth-child(n+'+highlight.start+'):nth-child(-n+'+highlight.end+')' ) );
|
||||||
|
}
|
||||||
|
// Highlight a single line
|
||||||
|
else if( typeof highlight.start === 'number' ) {
|
||||||
|
elementsToHighlight = [].slice.call( block.querySelectorAll( 'table tr:nth-child('+highlight.start+')' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( elementsToHighlight.length ) {
|
||||||
|
elementsToHighlight.forEach( function( lineElement ) {
|
||||||
|
lineElement.classList.add( 'highlight-line' );
|
||||||
|
} );
|
||||||
|
|
||||||
|
block.classList.add( 'has-highlights' );
|
||||||
|
}
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses and formats a user-defined string of line
|
||||||
|
* numbers to highlight.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* Plugin.deserializeHighlightSteps( '1,2|3,5-10' )
|
||||||
|
* // [
|
||||||
|
* // [ { start: 1 }, { start: 2 } ],
|
||||||
|
* // [ { start: 3 }, { start: 5, end: 10 } ]
|
||||||
|
* // ]
|
||||||
|
*/
|
||||||
|
deserializeHighlightSteps: function( highlightSteps ) {
|
||||||
|
|
||||||
|
// Remove whitespace
|
||||||
|
highlightSteps = highlightSteps.replace( /\s/g, '' );
|
||||||
|
|
||||||
|
// Divide up our line number groups
|
||||||
|
highlightSteps = highlightSteps.split( Plugin.HIGHLIGHT_STEP_DELIMITER );
|
||||||
|
|
||||||
|
return highlightSteps.map( function( highlights ) {
|
||||||
|
|
||||||
|
return highlights.split( Plugin.HIGHLIGHT_LINE_DELIMITER ).map( function( highlight ) {
|
||||||
|
|
||||||
|
// Parse valid line numbers
|
||||||
|
if( /^[\d-]+$/.test( highlight ) ) {
|
||||||
|
|
||||||
|
highlight = highlight.split( Plugin.HIGHLIGHT_LINE_RANGE_DELIMITER );
|
||||||
|
|
||||||
|
var lineStart = parseInt( highlight[0], 10 ),
|
||||||
|
lineEnd = parseInt( highlight[1], 10 );
|
||||||
|
|
||||||
|
if( isNaN( lineEnd ) ) {
|
||||||
|
return {
|
||||||
|
start: lineStart
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {
|
||||||
|
start: lineStart,
|
||||||
|
end: lineEnd
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// If no line numbers are provided, no code will be highlighted
|
||||||
|
else {
|
||||||
|
|
||||||
|
return {};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serializes parsed line number data into a string so
|
||||||
|
* that we can store it in the DOM.
|
||||||
|
*/
|
||||||
|
serializeHighlightSteps: function( highlightSteps ) {
|
||||||
|
|
||||||
|
return highlightSteps.map( function( highlights ) {
|
||||||
|
|
||||||
|
return highlights.map( function( highlight ) {
|
||||||
|
|
||||||
|
// Line range
|
||||||
|
if( typeof highlight.end === 'number' ) {
|
||||||
|
return highlight.start + Plugin.HIGHLIGHT_LINE_RANGE_DELIMITER + highlight.end;
|
||||||
|
}
|
||||||
|
// Single line
|
||||||
|
else if( typeof highlight.start === 'number' ) {
|
||||||
|
return highlight.start;
|
||||||
|
}
|
||||||
|
// All lines
|
||||||
|
else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
} ).join( Plugin.HIGHLIGHT_LINE_DELIMITER );
|
||||||
|
|
||||||
|
} ).join( Plugin.HIGHLIGHT_STEP_DELIMITER );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to perform a better "data-trim" on code snippets
|
||||||
|
// Will slice an indentation amount on each line of the snippet (amount based on the line having the lowest indentation length)
|
||||||
|
function betterTrim(snippetEl) {
|
||||||
|
// Helper functions
|
||||||
|
function trimLeft(val) {
|
||||||
|
// Adapted from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
|
||||||
|
return val.replace(/^[\s\uFEFF\xA0]+/g, '');
|
||||||
|
}
|
||||||
|
function trimLineBreaks(input) {
|
||||||
|
var lines = input.split('\n');
|
||||||
|
|
||||||
|
// Trim line-breaks from the beginning
|
||||||
|
for (var i = 0; i < lines.length; i++) {
|
||||||
|
if (lines[i].trim() === '') {
|
||||||
|
lines.splice(i--, 1);
|
||||||
|
} else break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Trim line-breaks from the end
|
||||||
|
for (var i = lines.length-1; i >= 0; i--) {
|
||||||
|
if (lines[i].trim() === '') {
|
||||||
|
lines.splice(i, 1);
|
||||||
|
} else break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lines.join('\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main function for betterTrim()
|
||||||
|
return (function(snippetEl) {
|
||||||
|
var content = trimLineBreaks(snippetEl.innerHTML);
|
||||||
|
var lines = content.split('\n');
|
||||||
|
// Calculate the minimum amount to remove on each line start of the snippet (can be 0)
|
||||||
|
var pad = lines.reduce(function(acc, line) {
|
||||||
|
if (line.length > 0 && trimLeft(line).length > 0 && acc > line.length - trimLeft(line).length) {
|
||||||
|
return line.length - trimLeft(line).length;
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
}, Number.POSITIVE_INFINITY);
|
||||||
|
// Slice each line with this amount
|
||||||
|
return lines.map(function(line, index) {
|
||||||
|
return line.slice(pad);
|
||||||
|
})
|
||||||
|
.join('\n');
|
||||||
|
})(snippetEl);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default () => Plugin;
|
80
presentation/plugin/highlight/zenburn.css
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
|
||||||
|
based on dark.css by Ivan Sagalaev
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
.hljs {
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 0.5em;
|
||||||
|
background: #3f3f3f;
|
||||||
|
color: #dcdcdc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-tag {
|
||||||
|
color: #e3ceab;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-template-tag {
|
||||||
|
color: #dcdcdc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-number {
|
||||||
|
color: #8cd0d3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-variable,
|
||||||
|
.hljs-template-variable,
|
||||||
|
.hljs-attribute {
|
||||||
|
color: #efdcbc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-literal {
|
||||||
|
color: #efefaf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-subst {
|
||||||
|
color: #8f8f8f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-name,
|
||||||
|
.hljs-selector-id,
|
||||||
|
.hljs-selector-class,
|
||||||
|
.hljs-section,
|
||||||
|
.hljs-type {
|
||||||
|
color: #efef8f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-symbol,
|
||||||
|
.hljs-bullet,
|
||||||
|
.hljs-link {
|
||||||
|
color: #dca3a3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-deletion,
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-built_in,
|
||||||
|
.hljs-builtin-name {
|
||||||
|
color: #cc9393;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-addition,
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-quote,
|
||||||
|
.hljs-meta {
|
||||||
|
color: #7f9f7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.hljs-emphasis {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-strong {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
1
presentation/plugin/markdown/markdown.esm.js
Normal file
1
presentation/plugin/markdown/markdown.js
Normal file
475
presentation/plugin/markdown/plugin.js
Normal file
|
@ -0,0 +1,475 @@
|
||||||
|
/*!
|
||||||
|
* The reveal.js markdown plugin. Handles parsing of
|
||||||
|
* markdown inside of presentations as well as loading
|
||||||
|
* of external markdown documents.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import marked from 'marked'
|
||||||
|
|
||||||
|
const DEFAULT_SLIDE_SEPARATOR = '\r?\n---\r?\n',
|
||||||
|
DEFAULT_NOTES_SEPARATOR = 'notes?:',
|
||||||
|
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
|
||||||
|
DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
|
||||||
|
|
||||||
|
const SCRIPT_END_PLACEHOLDER = '__SCRIPT_END__';
|
||||||
|
|
||||||
|
const CODE_LINE_NUMBER_REGEX = /\[([\s\d,|-]*)\]/;
|
||||||
|
|
||||||
|
const HTML_ESCAPE_MAP = {
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
"'": '''
|
||||||
|
};
|
||||||
|
|
||||||
|
const Plugin = () => {
|
||||||
|
|
||||||
|
// The reveal.js instance this plugin is attached to
|
||||||
|
let deck;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the markdown contents of a slide section
|
||||||
|
* element. Normalizes leading tabs/whitespace.
|
||||||
|
*/
|
||||||
|
function getMarkdownFromSlide( section ) {
|
||||||
|
|
||||||
|
// look for a <script> or <textarea data-template> wrapper
|
||||||
|
var template = section.querySelector( '[data-template]' ) || section.querySelector( 'script' );
|
||||||
|
|
||||||
|
// strip leading whitespace so it isn't evaluated as code
|
||||||
|
var text = ( template || section ).textContent;
|
||||||
|
|
||||||
|
// restore script end tags
|
||||||
|
text = text.replace( new RegExp( SCRIPT_END_PLACEHOLDER, 'g' ), '</script>' );
|
||||||
|
|
||||||
|
var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
|
||||||
|
leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
|
||||||
|
|
||||||
|
if( leadingTabs > 0 ) {
|
||||||
|
text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
|
||||||
|
}
|
||||||
|
else if( leadingWs > 1 ) {
|
||||||
|
text = text.replace( new RegExp('\\n? {' + leadingWs + '}', 'g'), '\n' );
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given a markdown slide section element, this will
|
||||||
|
* return all arguments that aren't related to markdown
|
||||||
|
* parsing. Used to forward any other user-defined arguments
|
||||||
|
* to the output markdown slide.
|
||||||
|
*/
|
||||||
|
function getForwardedAttributes( section ) {
|
||||||
|
|
||||||
|
var attributes = section.attributes;
|
||||||
|
var result = [];
|
||||||
|
|
||||||
|
for( var i = 0, len = attributes.length; i < len; i++ ) {
|
||||||
|
var name = attributes[i].name,
|
||||||
|
value = attributes[i].value;
|
||||||
|
|
||||||
|
// disregard attributes that are used for markdown loading/parsing
|
||||||
|
if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
|
||||||
|
|
||||||
|
if( value ) {
|
||||||
|
result.push( name + '="' + value + '"' );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
result.push( name );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.join( ' ' );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inspects the given options and fills out default
|
||||||
|
* values for what's not defined.
|
||||||
|
*/
|
||||||
|
function getSlidifyOptions( options ) {
|
||||||
|
|
||||||
|
options = options || {};
|
||||||
|
options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
|
||||||
|
options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
|
||||||
|
options.attributes = options.attributes || '';
|
||||||
|
|
||||||
|
return options;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper function for constructing a markdown slide.
|
||||||
|
*/
|
||||||
|
function createMarkdownSlide( content, options ) {
|
||||||
|
|
||||||
|
options = getSlidifyOptions( options );
|
||||||
|
|
||||||
|
var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
|
||||||
|
|
||||||
|
if( notesMatch.length === 2 ) {
|
||||||
|
content = notesMatch[0] + '<aside class="notes">' + marked(notesMatch[1].trim()) + '</aside>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// prevent script end tags in the content from interfering
|
||||||
|
// with parsing
|
||||||
|
content = content.replace( /<\/script>/g, SCRIPT_END_PLACEHOLDER );
|
||||||
|
|
||||||
|
return '<script type="text/template">' + content + '</script>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a data string into multiple slides based
|
||||||
|
* on the passed in separator arguments.
|
||||||
|
*/
|
||||||
|
function slidify( markdown, options ) {
|
||||||
|
|
||||||
|
options = getSlidifyOptions( options );
|
||||||
|
|
||||||
|
var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
|
||||||
|
horizontalSeparatorRegex = new RegExp( options.separator );
|
||||||
|
|
||||||
|
var matches,
|
||||||
|
lastIndex = 0,
|
||||||
|
isHorizontal,
|
||||||
|
wasHorizontal = true,
|
||||||
|
content,
|
||||||
|
sectionStack = [];
|
||||||
|
|
||||||
|
// iterate until all blocks between separators are stacked up
|
||||||
|
while( matches = separatorRegex.exec( markdown ) ) {
|
||||||
|
var notes = null;
|
||||||
|
|
||||||
|
// determine direction (horizontal by default)
|
||||||
|
isHorizontal = horizontalSeparatorRegex.test( matches[0] );
|
||||||
|
|
||||||
|
if( !isHorizontal && wasHorizontal ) {
|
||||||
|
// create vertical stack
|
||||||
|
sectionStack.push( [] );
|
||||||
|
}
|
||||||
|
|
||||||
|
// pluck slide content from markdown input
|
||||||
|
content = markdown.substring( lastIndex, matches.index );
|
||||||
|
|
||||||
|
if( isHorizontal && wasHorizontal ) {
|
||||||
|
// add to horizontal stack
|
||||||
|
sectionStack.push( content );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// add to vertical stack
|
||||||
|
sectionStack[sectionStack.length-1].push( content );
|
||||||
|
}
|
||||||
|
|
||||||
|
lastIndex = separatorRegex.lastIndex;
|
||||||
|
wasHorizontal = isHorizontal;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the remaining slide
|
||||||
|
( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
|
||||||
|
|
||||||
|
var markdownSections = '';
|
||||||
|
|
||||||
|
// flatten the hierarchical stack, and insert <section data-markdown> tags
|
||||||
|
for( var i = 0, len = sectionStack.length; i < len; i++ ) {
|
||||||
|
// vertical
|
||||||
|
if( sectionStack[i] instanceof Array ) {
|
||||||
|
markdownSections += '<section '+ options.attributes +'>';
|
||||||
|
|
||||||
|
sectionStack[i].forEach( function( child ) {
|
||||||
|
markdownSections += '<section data-markdown>' + createMarkdownSlide( child, options ) + '</section>';
|
||||||
|
} );
|
||||||
|
|
||||||
|
markdownSections += '</section>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return markdownSections;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses any current data-markdown slides, splits
|
||||||
|
* multi-slide markdown into separate sections and
|
||||||
|
* handles loading of external markdown.
|
||||||
|
*/
|
||||||
|
function processSlides( scope ) {
|
||||||
|
|
||||||
|
return new Promise( function( resolve ) {
|
||||||
|
|
||||||
|
var externalPromises = [];
|
||||||
|
|
||||||
|
[].slice.call( scope.querySelectorAll( 'section[data-markdown]:not([data-markdown-parsed])') ).forEach( function( section, i ) {
|
||||||
|
|
||||||
|
if( section.getAttribute( 'data-markdown' ).length ) {
|
||||||
|
|
||||||
|
externalPromises.push( loadExternalMarkdown( section ).then(
|
||||||
|
|
||||||
|
// Finished loading external file
|
||||||
|
function( xhr, url ) {
|
||||||
|
section.outerHTML = slidify( xhr.responseText, {
|
||||||
|
separator: section.getAttribute( 'data-separator' ),
|
||||||
|
verticalSeparator: section.getAttribute( 'data-separator-vertical' ),
|
||||||
|
notesSeparator: section.getAttribute( 'data-separator-notes' ),
|
||||||
|
attributes: getForwardedAttributes( section )
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// Failed to load markdown
|
||||||
|
function( xhr, url ) {
|
||||||
|
section.outerHTML = '<section data-state="alert">' +
|
||||||
|
'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
|
||||||
|
'Check your browser\'s JavaScript console for more details.' +
|
||||||
|
'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
|
||||||
|
'</section>';
|
||||||
|
}
|
||||||
|
|
||||||
|
) );
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
section.outerHTML = slidify( getMarkdownFromSlide( section ), {
|
||||||
|
separator: section.getAttribute( 'data-separator' ),
|
||||||
|
verticalSeparator: section.getAttribute( 'data-separator-vertical' ),
|
||||||
|
notesSeparator: section.getAttribute( 'data-separator-notes' ),
|
||||||
|
attributes: getForwardedAttributes( section )
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Promise.all( externalPromises ).then( resolve );
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadExternalMarkdown( section ) {
|
||||||
|
|
||||||
|
return new Promise( function( resolve, reject ) {
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest(),
|
||||||
|
url = section.getAttribute( 'data-markdown' );
|
||||||
|
|
||||||
|
var datacharset = section.getAttribute( 'data-charset' );
|
||||||
|
|
||||||
|
// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
|
||||||
|
if( datacharset != null && datacharset != '' ) {
|
||||||
|
xhr.overrideMimeType( 'text/html; charset=' + datacharset );
|
||||||
|
}
|
||||||
|
|
||||||
|
xhr.onreadystatechange = function( section, xhr ) {
|
||||||
|
if( xhr.readyState === 4 ) {
|
||||||
|
// file protocol yields status code 0 (useful for local debug, mobile applications etc.)
|
||||||
|
if ( ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status === 0 ) {
|
||||||
|
|
||||||
|
resolve( xhr, url );
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
reject( xhr, url );
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.bind( this, section, xhr );
|
||||||
|
|
||||||
|
xhr.open( 'GET', url, true );
|
||||||
|
|
||||||
|
try {
|
||||||
|
xhr.send();
|
||||||
|
}
|
||||||
|
catch ( e ) {
|
||||||
|
console.warn( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
|
||||||
|
resolve( xhr, url );
|
||||||
|
}
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a node value has the attributes pattern.
|
||||||
|
* If yes, extract it and add that value as one or several attributes
|
||||||
|
* to the target element.
|
||||||
|
*
|
||||||
|
* You need Cache Killer on Chrome to see the effect on any FOM transformation
|
||||||
|
* directly on refresh (F5)
|
||||||
|
* http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
|
||||||
|
*/
|
||||||
|
function addAttributeInElement( node, elementTarget, separator ) {
|
||||||
|
|
||||||
|
var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
|
||||||
|
var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"]+?)\"|(data-[^\"= ]+?)(?=[\" ])", 'mg' );
|
||||||
|
var nodeValue = node.nodeValue;
|
||||||
|
var matches,
|
||||||
|
matchesClass;
|
||||||
|
if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
|
||||||
|
|
||||||
|
var classes = matches[1];
|
||||||
|
nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
|
||||||
|
node.nodeValue = nodeValue;
|
||||||
|
while( matchesClass = mardownClassRegex.exec( classes ) ) {
|
||||||
|
if( matchesClass[2] ) {
|
||||||
|
elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
|
||||||
|
} else {
|
||||||
|
elementTarget.setAttribute( matchesClass[3], "" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add attributes to the parent element of a text node,
|
||||||
|
* or the element of an attribute node.
|
||||||
|
*/
|
||||||
|
function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
|
||||||
|
|
||||||
|
if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
|
||||||
|
var previousParentElement = element;
|
||||||
|
for( var i = 0; i < element.childNodes.length; i++ ) {
|
||||||
|
var childElement = element.childNodes[i];
|
||||||
|
if ( i > 0 ) {
|
||||||
|
var j = i - 1;
|
||||||
|
while ( j >= 0 ) {
|
||||||
|
var aPreviousChildElement = element.childNodes[j];
|
||||||
|
if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
|
||||||
|
previousParentElement = aPreviousChildElement;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
j = j - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var parentSection = section;
|
||||||
|
if( childElement.nodeName == "section" ) {
|
||||||
|
parentSection = childElement ;
|
||||||
|
previousParentElement = childElement ;
|
||||||
|
}
|
||||||
|
if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
|
||||||
|
addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( element.nodeType == Node.COMMENT_NODE ) {
|
||||||
|
if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
|
||||||
|
addAttributeInElement( element, section, separatorSectionAttributes );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts any current data-markdown slides in the
|
||||||
|
* DOM to HTML.
|
||||||
|
*/
|
||||||
|
function convertSlides() {
|
||||||
|
|
||||||
|
var sections = deck.getRevealElement().querySelectorAll( '[data-markdown]:not([data-markdown-parsed])');
|
||||||
|
|
||||||
|
[].slice.call( sections ).forEach( function( section ) {
|
||||||
|
|
||||||
|
section.setAttribute( 'data-markdown-parsed', true )
|
||||||
|
|
||||||
|
var notes = section.querySelector( 'aside.notes' );
|
||||||
|
var markdown = getMarkdownFromSlide( section );
|
||||||
|
|
||||||
|
section.innerHTML = marked( markdown );
|
||||||
|
addAttributes( section, section, null, section.getAttribute( 'data-element-attributes' ) ||
|
||||||
|
section.parentNode.getAttribute( 'data-element-attributes' ) ||
|
||||||
|
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
|
||||||
|
section.getAttribute( 'data-attributes' ) ||
|
||||||
|
section.parentNode.getAttribute( 'data-attributes' ) ||
|
||||||
|
DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
|
||||||
|
|
||||||
|
// If there were notes, we need to re-add them after
|
||||||
|
// having overwritten the section's HTML
|
||||||
|
if( notes ) {
|
||||||
|
section.appendChild( notes );
|
||||||
|
}
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
return Promise.resolve();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function escapeForHTML( input ) {
|
||||||
|
|
||||||
|
return input.replace( /([&<>'"])/g, char => HTML_ESCAPE_MAP[char] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: 'markdown',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts processing and converting Markdown within the
|
||||||
|
* current reveal.js deck.
|
||||||
|
*/
|
||||||
|
init: function( reveal ) {
|
||||||
|
|
||||||
|
deck = reveal;
|
||||||
|
|
||||||
|
let { renderer, animateLists, ...markedOptions } = deck.getConfig().markdown || {};
|
||||||
|
|
||||||
|
if( !renderer ) {
|
||||||
|
renderer = new marked.Renderer();
|
||||||
|
|
||||||
|
renderer.code = ( code, language ) => {
|
||||||
|
|
||||||
|
// Off by default
|
||||||
|
let lineNumbers = '';
|
||||||
|
|
||||||
|
// Users can opt in to show line numbers and highlight
|
||||||
|
// specific lines.
|
||||||
|
// ```javascript [] show line numbers
|
||||||
|
// ```javascript [1,4-8] highlights lines 1 and 4-8
|
||||||
|
if( CODE_LINE_NUMBER_REGEX.test( language ) ) {
|
||||||
|
lineNumbers = language.match( CODE_LINE_NUMBER_REGEX )[1].trim();
|
||||||
|
lineNumbers = `data-line-numbers="${lineNumbers}"`;
|
||||||
|
language = language.replace( CODE_LINE_NUMBER_REGEX, '' ).trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Escape before this gets injected into the DOM to
|
||||||
|
// avoid having the HTML parser alter our code before
|
||||||
|
// highlight.js is able to read it
|
||||||
|
code = escapeForHTML( code );
|
||||||
|
|
||||||
|
return `<pre><code ${lineNumbers} class="${language}">${code}</code></pre>`;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if( animateLists === true ) {
|
||||||
|
renderer.listitem = text => `<li class="fragment">${text}</li>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
marked.setOptions( {
|
||||||
|
renderer,
|
||||||
|
...markedOptions
|
||||||
|
} );
|
||||||
|
|
||||||
|
return processSlides( deck.getRevealElement() ).then( convertSlides );
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// TODO: Do these belong in the API?
|
||||||
|
processSlides: processSlides,
|
||||||
|
convertSlides: convertSlides,
|
||||||
|
slidify: slidify,
|
||||||
|
marked: marked
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Plugin;
|
96
presentation/plugin/math/katex.js
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
/**
|
||||||
|
* A plugin which enables rendering of math equations inside
|
||||||
|
* of reveal.js slides. Essentially a thin wrapper for KaTeX.
|
||||||
|
*
|
||||||
|
* @author Hakim El Hattab
|
||||||
|
* @author Gerhard Burger
|
||||||
|
*/
|
||||||
|
export const KaTeX = () => {
|
||||||
|
let deck;
|
||||||
|
|
||||||
|
let defaultOptions = {
|
||||||
|
version: 'latest',
|
||||||
|
delimiters: [
|
||||||
|
{left: '$$', right: '$$', display: true}, // Note: $$ has to come before $
|
||||||
|
{left: '$', right: '$', display: false},
|
||||||
|
{left: '\\(', right: '\\)', display: false},
|
||||||
|
{left: '\\[', right: '\\]', display: true}
|
||||||
|
],
|
||||||
|
ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre']
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadCss = src => {
|
||||||
|
let link = document.createElement('link');
|
||||||
|
link.rel = 'stylesheet';
|
||||||
|
link.href = src;
|
||||||
|
document.head.appendChild(link);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads a JavaScript file and returns a Promise for when it is loaded
|
||||||
|
* Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/
|
||||||
|
*/
|
||||||
|
const loadScript = src => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const script = document.createElement('script')
|
||||||
|
script.type = 'text/javascript'
|
||||||
|
script.onload = resolve
|
||||||
|
script.onerror = reject
|
||||||
|
script.src = src
|
||||||
|
document.head.append(script)
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
async function loadScripts(urls) {
|
||||||
|
for(const url of urls) {
|
||||||
|
await loadScript(url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: 'katex',
|
||||||
|
|
||||||
|
init: function (reveal) {
|
||||||
|
|
||||||
|
deck = reveal;
|
||||||
|
|
||||||
|
let revealOptions = deck.getConfig().katex || {};
|
||||||
|
|
||||||
|
let options = {...defaultOptions, ...revealOptions};
|
||||||
|
const {local, version, extensions, ...katexOptions} = options;
|
||||||
|
|
||||||
|
let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex';
|
||||||
|
let versionString = options.local ? '' : '@' + options.version;
|
||||||
|
|
||||||
|
let cssUrl = baseUrl + versionString + '/dist/katex.min.css';
|
||||||
|
let katexUrl = baseUrl + versionString + '/dist/katex.min.js';
|
||||||
|
let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js'
|
||||||
|
let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js';
|
||||||
|
|
||||||
|
let katexScripts = [katexUrl];
|
||||||
|
if(options.extensions && options.extensions.includes("mhchem")) {
|
||||||
|
katexScripts.push(mhchemUrl);
|
||||||
|
}
|
||||||
|
katexScripts.push(karUrl);
|
||||||
|
|
||||||
|
const renderMath = () => {
|
||||||
|
renderMathInElement(reveal.getSlidesElement(), katexOptions);
|
||||||
|
deck.layout();
|
||||||
|
}
|
||||||
|
|
||||||
|
loadCss(cssUrl);
|
||||||
|
|
||||||
|
// For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does
|
||||||
|
loadScripts(katexScripts).then(() => {
|
||||||
|
if( deck.isReady() ) {
|
||||||
|
renderMath();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
deck.on( 'ready', renderMath.bind( this ) );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
1
presentation/plugin/math/math.esm.js
Normal file
1
presentation/plugin/math/math.js
Normal file
1
presentation/plugin/math/mathjax/a11y/assistive-mml.js
Normal file
1
presentation/plugin/math/mathjax/a11y/complexity.js
Normal file
1
presentation/plugin/math/mathjax/a11y/explorer.js
Normal file
1
presentation/plugin/math/mathjax/a11y/semantic-enrich.js
Normal file
1
presentation/plugin/math/mathjax/adaptors/liteDOM.js
Normal file
1
presentation/plugin/math/mathjax/input/asciimath.js
Normal file
1
presentation/plugin/math/mathjax/input/mml.js
Normal file
1
presentation/plugin/math/mathjax/input/mml/entities.js
Normal file
1
presentation/plugin/math/mathjax/input/tex-base.js
Normal file
34
presentation/plugin/math/mathjax/input/tex-full.js
Normal file
1
presentation/plugin/math/mathjax/input/tex.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
!function(){"use strict";var t,a,o={669:function(t,a,o){Object.defineProperty(a,"__esModule",{value:!0}),a.ActionConfiguration=a.ActionMethods=void 0;var e=o(251),n=o(193),i=o(871),r=o(360);a.ActionMethods={},a.ActionMethods.Macro=r.default.Macro,a.ActionMethods.Toggle=function(t,a){for(var o,e=[];"\\endtoggle"!==(o=t.GetArgument(a));)e.push(new n.default(o,t.stack.env,t.configuration).mml());t.Push(t.create("node","maction",e,{actiontype:"toggle"}))},a.ActionMethods.Mathtip=function(t,a){var o=t.ParseArg(a),e=t.ParseArg(a);t.Push(t.create("node","maction",[o,e],{actiontype:"tooltip"}))},new i.CommandMap("action-macros",{toggle:"Toggle",mathtip:"Mathtip",texttip:["Macro","\\mathtip{#1}{\\text{#2}}",2]},a.ActionMethods),a.ActionConfiguration=e.Configuration.create("action",{handler:{macro:["action-macros"]}})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},193:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.TexParser.default},360:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.base.BaseMethods.default}},e={};function n(t){var a=e[t];if(void 0!==a)return a.exports;var i=e[t]={exports:{}};return o[t](i,i.exports,n),i.exports}t=n(955),a=n(669),(0,t.r8)({_:{input:{tex:{action:{ActionConfiguration:a}}}}})}();
|
|
@ -0,0 +1 @@
|
||||||
|
!function(){"use strict";var t,a,e={133:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0}),a.BboxConfiguration=a.BboxMethods=void 0;var o=e(251),n=e(871),i=e(402);a.BboxMethods={},a.BboxMethods.BBox=function(t,a){for(var e,o,n,u=t.GetBrackets(a,""),l=t.ParseArg(a),x=u.split(/,/),M=0,c=x.length;M<c;M++){var s=x[M].trim(),f=s.match(/^(\.\d+|\d+(\.\d*)?)(pt|em|ex|mu|px|in|cm|mm)$/);if(f){if(e)throw new i.default("MultipleBBoxProperty","%1 specified twice in %2","Padding",a);var d=p(f[1]+f[3]);d&&(e={height:"+"+d,depth:"+"+d,lspace:d,width:"+"+2*parseInt(f[1],10)+f[3]})}else if(s.match(/^([a-z0-9]+|\#[0-9a-f]{6}|\#[0-9a-f]{3})$/i)){if(o)throw new i.default("MultipleBBoxProperty","%1 specified twice in %2","Background",a);o=s}else if(s.match(/^[-a-z]+:/i)){if(n)throw new i.default("MultipleBBoxProperty","%1 specified twice in %2","Style",a);n=r(s)}else if(""!==s)throw new i.default("InvalidBBoxProperty",'"%1" doesn\'t look like a color, a padding dimension, or a style',s)}e&&(l=t.create("node","mpadded",[l],e)),(o||n)&&(e={},o&&Object.assign(e,{mathbackground:o}),n&&Object.assign(e,{style:n}),l=t.create("node","mstyle",[l],e)),t.Push(l)};var r=function(t){return t},p=function(t){return t};new n.CommandMap("bbox",{bbox:"BBox"},a.BboxMethods),a.BboxConfiguration=o.Configuration.create("bbox",{handler:{macro:["bbox"]}})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},402:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.TexError.default}},o={};function n(t){var a=o[t];if(void 0!==a)return a.exports;var i=o[t]={exports:{}};return e[t](i,i.exports,n),i.exports}t=n(955),a=n(133),(0,t.r8)({_:{input:{tex:{bbox:{BboxConfiguration:a}}}}})}();
|
|
@ -0,0 +1 @@
|
||||||
|
!function(){"use strict";var t,a,o={986:function(t,a,o){var e=this&&this.__values||function(t){var a="function"==typeof Symbol&&Symbol.iterator,o=a&&t[a],e=0;if(o)return o.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&e>=t.length&&(t=void 0),{value:t&&t[e++],done:!t}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(a,"__esModule",{value:!0}),a.BoldsymbolConfiguration=a.rewriteBoldTokens=a.createBoldToken=a.BoldsymbolMethods=void 0;var n=o(251),r=o(748),i=o(108),l=o(871),s=o(348),u={};function d(t,a,o,e){var n=s.NodeFactory.createToken(t,a,o,e);return"mtext"!==a&&t.configuration.parser.stack.env.boldsymbol&&(r.default.setProperty(n,"fixBold",!0),t.configuration.addNode("fixBold",n)),n}function x(t){var a,o;try{for(var n=e(t.data.getList("fixBold")),l=n.next();!l.done;l=n.next()){var s=l.value;if(r.default.getProperty(s,"fixBold")){var d=r.default.getAttribute(s,"mathvariant");null==d?r.default.setAttribute(s,"mathvariant",i.TexConstant.Variant.BOLD):r.default.setAttribute(s,"mathvariant",u[d]||d),r.default.removeProperties(s,"fixBold")}}}catch(t){a={error:t}}finally{try{l&&!l.done&&(o=n.return)&&o.call(n)}finally{if(a)throw a.error}}}u[i.TexConstant.Variant.NORMAL]=i.TexConstant.Variant.BOLD,u[i.TexConstant.Variant.ITALIC]=i.TexConstant.Variant.BOLDITALIC,u[i.TexConstant.Variant.FRAKTUR]=i.TexConstant.Variant.BOLDFRAKTUR,u[i.TexConstant.Variant.SCRIPT]=i.TexConstant.Variant.BOLDSCRIPT,u[i.TexConstant.Variant.SANSSERIF]=i.TexConstant.Variant.BOLDSANSSERIF,u["-tex-calligraphic"]="-tex-bold-calligraphic",u["-tex-oldstyle"]="-tex-bold-oldstyle",u["-tex-mathit"]=i.TexConstant.Variant.BOLDITALIC,a.BoldsymbolMethods={},a.BoldsymbolMethods.Boldsymbol=function(t,a){var o=t.stack.env.boldsymbol;t.stack.env.boldsymbol=!0;var e=t.ParseArg(a);t.stack.env.boldsymbol=o,t.Push(e)},new l.CommandMap("boldsymbol",{boldsymbol:"Boldsymbol"},a.BoldsymbolMethods),a.createBoldToken=d,a.rewriteBoldTokens=x,a.BoldsymbolConfiguration=n.Configuration.create("boldsymbol",{handler:{macro:["boldsymbol"]},nodes:{token:d},postprocessors:[x]})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},348:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.NodeFactory=MathJax._.input.tex.NodeFactory.NodeFactory},748:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.NodeUtil.default},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},108:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.TexConstant=MathJax._.input.tex.TexConstants.TexConstant}},e={};function n(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return o[t].call(r.exports,r,r.exports,n),r.exports}t=n(955),a=n(986),(0,t.r8)({_:{input:{tex:{boldsymbol:{BoldsymbolConfiguration:a}}}}})}();
|
|
@ -0,0 +1 @@
|
||||||
|
!function(){"use strict";var t,a,e={774:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0}),a.CancelConfiguration=a.CancelMethods=void 0;var n=e(251),o=e(108),i=e(871),c=e(398),r=e(975);a.CancelMethods={},a.CancelMethods.Cancel=function(t,a,e){var n=t.GetBrackets(a,""),o=t.ParseArg(a),i=c.default.keyvalOptions(n,r.ENCLOSE_OPTIONS);i.notation=e,t.Push(t.create("node","menclose",[o],i))},a.CancelMethods.CancelTo=function(t,a){var e=t.GetBrackets(a,""),n=t.ParseArg(a),i=t.ParseArg(a),l=c.default.keyvalOptions(e,r.ENCLOSE_OPTIONS);l.notation=[o.TexConstant.Notation.UPDIAGONALSTRIKE,o.TexConstant.Notation.UPDIAGONALARROW,o.TexConstant.Notation.NORTHEASTARROW].join(" "),n=t.create("node","mpadded",[n],{depth:"-.1em",height:"+.1em",voffset:".1em"}),t.Push(t.create("node","msup",[t.create("node","menclose",[i],l),n]))},new i.CommandMap("cancel",{cancel:["Cancel",o.TexConstant.Notation.UPDIAGONALSTRIKE],bcancel:["Cancel",o.TexConstant.Notation.DOWNDIAGONALSTRIKE],xcancel:["Cancel",o.TexConstant.Notation.UPDIAGONALSTRIKE+" "+o.TexConstant.Notation.DOWNDIAGONALSTRIKE],cancelto:"CancelTo"},a.CancelMethods),a.CancelConfiguration=n.Configuration.create("cancel",{handler:{macro:["cancel"]}})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},398:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.ParseUtil.default},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},108:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.TexConstant=MathJax._.input.tex.TexConstants.TexConstant},975:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.ENCLOSE_OPTIONS=MathJax._.input.tex.enclose.EncloseConfiguration.ENCLOSE_OPTIONS,a.EncloseMethods=MathJax._.input.tex.enclose.EncloseConfiguration.EncloseMethods,a.EncloseConfiguration=MathJax._.input.tex.enclose.EncloseConfiguration.EncloseConfiguration}},n={};function o(t){var a=n[t];if(void 0!==a)return a.exports;var i=n[t]={exports:{}};return e[t](i,i.exports,o),i.exports}t=o(955),a=o(774),(0,t.r8)({_:{input:{tex:{cancel:{CancelConfiguration:a}}}}})}();
|
|
@ -0,0 +1 @@
|
||||||
|
!function(){"use strict";var e,t,a={286:function(e,t,a){var n=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],n=0;if(a)return a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(t,"__esModule",{value:!0}),t.CenternotConfiguration=t.filterCenterOver=void 0;var r=a(251),o=a(193),i=a(748),u=a(871),l=a(360);function p(e){var t,a,r=e.data;try{for(var o=n(r.getList("centerOver")),u=o.next();!u.done;u=o.next()){var l=u.value,p=i.default.getTexClass(l.childNodes[0].childNodes[0]);null!==p&&i.default.setProperties(l.parent.parent.parent.parent.parent.parent,{texClass:p})}}catch(e){t={error:e}}finally{try{u&&!u.done&&(a=o.return)&&a.call(o)}finally{if(t)throw t.error}}}new u.CommandMap("centernot",{centerOver:"CenterOver",centernot:["Macro","\\centerOver{#1}{{\u29f8}}",1]},{CenterOver:function(e,t){var a="{"+e.GetArgument(t)+"}",n=e.ParseArg(t),r=new o.default(a,e.stack.env,e.configuration).mml(),i=e.create("node","TeXAtom",[new o.default(a,e.stack.env,e.configuration).mml(),e.create("node","mpadded",[e.create("node","mpadded",[n],{width:0,lspace:"-.5width"}),e.create("node","mphantom",[r])],{width:0,lspace:"-.5width"})]);e.configuration.addNode("centerOver",r),e.Push(i)},Macro:l.default.Macro}),t.filterCenterOver=p,t.CenternotConfiguration=r.Configuration.create("centernot",{handler:{macro:["centernot"]},postprocessors:[p]})},955:function(e,t){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,t.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Configuration=MathJax._.input.tex.Configuration.Configuration,t.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,t.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},748:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.NodeUtil.default},871:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,t.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,t.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,t.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,t.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,t.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,t.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,t.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},193:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.TexParser.default},360:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.base.BaseMethods.default}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return a[e].call(o.exports,o,o.exports,r),o.exports}e=r(955),t=r(286),(0,e.r8)({_:{input:{tex:{centernot:{CenternotConfiguration:t}}}}})}();
|