diff --git a/.github/workflows/Deploy.yml b/.github/workflows/Deploy.yml
new file mode 100644
index 0000000..b72dc89
--- /dev/null
+++ b/.github/workflows/Deploy.yml
@@ -0,0 +1,47 @@
+name: Build and Deploy
+on:
+ push:
+ branches:
+ - main
+ - master
+jobs:
+ build-and-deploy:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ persist-credentials: false
+ # NOTE: Python is necessary for the pre-rendering (minification) step
+ - name: Install python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.8'
+ # NOTE: Here you can install dependencies such as matplotlib if you use
+ # packages such as PyPlot.
+ # - run: pip install matplotlib
+ - name: Install Julia
+ uses: julia-actions/setup-julia@v1
+ with:
+ version: '1' # Latest stable Julia release.
+ # NOTE
+ # The steps below ensure that NodeJS and Franklin are loaded then it
+ # installs highlight.js which is needed for the prerendering step
+ # (code highlighting + katex prerendering).
+ # Then the environment is activated and instantiated to install all
+ # Julia packages which may be required to successfully build your site.
+ # The last line should be `optimize()` though you may want to give it
+ # specific arguments, see the documentation or ?optimize in the REPL.
+ - run: julia -e '
+ using Pkg; Pkg.activate("."); Pkg.instantiate();
+ using NodeJS; run(`$(npm_cmd()) install highlight.js`);
+ using Franklin;
+ optimize()'
+ - name: Build and Deploy
+ uses: JamesIves/github-pages-deploy-action@releases/v3
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BRANCH: gh-pages
+ FOLDER: __site
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e14ddf7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+__site/
+.DS_Store
+node_modules/
+package-lock.json
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..dbb80d8
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,20 @@
+image: julia:1.6
+
+before_script:
+ - apt-get -qq update; apt-get -y install git python3-dev python3-pip
+ - pip3 install css-html-js-minify
+
+pages:
+ stage: deploy
+ script:
+ - julia --project=@. -e 'import Pkg; Pkg.instantiate();
+ using NodeJS; run(`$(npm_cmd()) install highlight.js`);
+ using Franklin;
+ optimize()'
+ - mv __site public
+ artifacts:
+ paths:
+ - public
+ only:
+ - main
+
diff --git a/404.md b/404.md
new file mode 100644
index 0000000..3faee37
--- /dev/null
+++ b/404.md
@@ -0,0 +1,27 @@
+@def title = "404"
+
+~~~
+
+
+
+
+
+ 404
+
+
+
+
+
+ The requested page was not found
+
+
+
+
+
+
+
+
+
+~~~
diff --git a/Project.toml b/Project.toml
new file mode 100644
index 0000000..8f357c5
--- /dev/null
+++ b/Project.toml
@@ -0,0 +1,3 @@
+[deps]
+Franklin = "713c75ef-9fc9-4b05-94a9-213340da978e"
+NodeJS = "2bd173c7-0d6d-553b-b6af-13a54713934c"
\ No newline at end of file
diff --git a/_assets/favicon.ico b/_assets/favicon.ico
new file mode 100644
index 0000000..9d06e64
Binary files /dev/null and b/_assets/favicon.ico differ
diff --git a/_assets/favicon.png b/_assets/favicon.png
new file mode 100644
index 0000000..6bb6d57
Binary files /dev/null and b/_assets/favicon.png differ
diff --git a/_assets/hamburger.svg b/_assets/hamburger.svg
new file mode 100644
index 0000000..233bf21
--- /dev/null
+++ b/_assets/hamburger.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/_assets/rndimg.jpg b/_assets/rndimg.jpg
new file mode 100644
index 0000000..98be38d
Binary files /dev/null and b/_assets/rndimg.jpg differ
diff --git a/_assets/scripts/generate_results.jl b/_assets/scripts/generate_results.jl
new file mode 100644
index 0000000..8823354
--- /dev/null
+++ b/_assets/scripts/generate_results.jl
@@ -0,0 +1,27 @@
+# Parent file to run all scripts which may generate
+# some output that you want to display on the website.
+# this can be used as a tester to check that all the code
+# on your website runs properly.
+
+dir = @__DIR__
+
+"""
+ genplain(s)
+
+Small helper function to run some code and redirect the output (stdout) to a file.
+"""
+function genplain(s::String)
+ open(joinpath(dir, "output", "$(splitext(s)[1]).txt"), "w") do outf
+ redirect_stdout(outf) do
+ include(joinpath(dir, s))
+ end
+ end
+end
+
+# output
+
+genplain("script1.jl")
+
+# plots
+
+include("script2.jl")
diff --git a/_assets/scripts/output/script1.out b/_assets/scripts/output/script1.out
new file mode 100644
index 0000000..234405e
--- /dev/null
+++ b/_assets/scripts/output/script1.out
@@ -0,0 +1,5 @@
+*---------1.3
+**--------1.3
+***-------1.3
+****------1.3
+*****-----1.3
diff --git a/_assets/scripts/output/script2.svg b/_assets/scripts/output/script2.svg
new file mode 100644
index 0000000..56bb295
--- /dev/null
+++ b/_assets/scripts/output/script2.svg
@@ -0,0 +1,581 @@
+
+
+
+
diff --git a/_assets/scripts/script1.jl b/_assets/scripts/script1.jl
new file mode 100644
index 0000000..bc4dc52
--- /dev/null
+++ b/_assets/scripts/script1.jl
@@ -0,0 +1,10 @@
+using LinearAlgebra # HIDE
+using Random:seed! # HIDE
+seed!(0) # HIDE
+ # HIDE
+x = randn(5)
+y = randn(5)
+
+for i in 1:5
+ println(rpad("*"^i, 10, '-'), round(dot(x, y), digits=1))
+end
diff --git a/_assets/scripts/script2.jl b/_assets/scripts/script2.jl
new file mode 100644
index 0000000..0fa6c42
--- /dev/null
+++ b/_assets/scripts/script2.jl
@@ -0,0 +1,4 @@
+using PyPlot
+x = range(0, stop=1, length=50)
+plot(x, sin.(2x).*exp.(-x/3))
+savefig(joinpath(@__DIR__, "output", "script2.svg"))
diff --git a/_css/franklin.css b/_css/franklin.css
new file mode 100644
index 0000000..f0baabe
--- /dev/null
+++ b/_css/franklin.css
@@ -0,0 +1,336 @@
+/* ==================================================================
+ VARIABLES
+================================================================== */
+
+:root {
+ --block-background: hsl(0, 0%, 94%);
+ --output-background: hsl(0, 0%, 98%);
+ --small: 14px;
+ --normal: 19px;
+ --text-color: hsv(0, 0%, 20%);
+}
+
+/* ==================================================================
+ DEFAULT FONT AND LAYOUT
+================================================================== */
+
+html {
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: var(--normal);
+ color: var(--text-color);
+}
+
+/* ==================================================================
+ BASIC GRID FOR PROFILE PIC
+================================================================== */
+
+.franklin-content .row {
+ display: block;
+}
+
+.franklin-content .left {
+ float: left;
+ margin-right: 15px;
+}
+
+.franklin-content .right {
+ float: right;
+}
+
+.franklin-content .container img {
+ width: auto;
+ padding-left: 0;
+ border-radius: 10px;
+}
+
+.franklin-content .footnote {
+ position: relative;
+ top: -0.5em;
+ font-size: 70%;
+}
+
+/* ==================================================================
+ FOOT / COPYRIGHT
+================================================================== */
+
+.franklin-content .page-foot a {
+ text-decoration: none;
+ color: #a6a2a0;
+ text-decoration: underline;
+}
+
+.page-foot {
+ font-size: 80%;
+ font-family: Arial, serif;
+ color: #a6a2a0;
+ text-align: center;
+ margin-top: 6em;
+ border-top: 1px solid lightgrey;
+ padding-top: 2em;
+ margin-bottom: 4em;
+}
+
+/* ==================================================================
+ TEXT GEOMETRY
+================================================================== */
+
+.franklin-toc li {
+ /* Avoid clickable elements being too close together. */
+ margin: 0.6rem 0;
+}
+
+.franklin-content {
+ position: relative;
+ padding-left: 12.5%;
+ padding-right: 12.5%;
+ line-height: 1.35em;
+}
+
+/* On wide screens, fix content width to a max value. */
+@media (min-width: 940px) {
+ .franklin-content {
+ width: 705px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+}
+
+/* On narrow device, reduce margins. */
+@media (max-width: 480px) {
+ .franklin-content {
+ padding-left: 6%;
+ padding-right: 6%;
+ }
+}
+
+/* ==================================================================
+ TITLES
+================================================================== */
+
+.franklin-content h1 { font-size: 24px; }
+.franklin-content h2 { font-size: 22px; }
+.franklin-content h3 { font-size: 20px; }
+
+.franklin-content h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ text-align: left;
+}
+
+.franklin-content h1 {
+ padding-bottom: 0.5em;
+ border-bottom: 3px double lightgrey;
+ margin-top: 1.5em;
+ margin-bottom: 1em;
+}
+
+.franklin-content h2 {
+ padding-bottom: 0.3em;
+ border-bottom: 1px solid lightgrey;
+ margin-top: 2em;
+ margin-bottom: 1em;
+}
+
+.franklin-content h1 a { color: inherit; }
+.franklin-content h1 a:hover { text-decoration: none; }
+.franklin-content h2 a { color: inherit; }
+.franklin-content h2 a:hover { text-decoration: none; }
+.franklin-content h3 a { color: inherit; }
+.franklin-content h3 a:hover { text-decoration: none; }
+.franklin-content h4 a { color: inherit; }
+.franklin-content h4 a:hover { text-decoration: none; }
+.franklin-content h5 a { color: inherit; }
+.franklin-content h5 a:hover { text-decoration: none; }
+.franklin-content h6 a { color: inherit; }
+.franklin-content h6 a:hover { text-decoration: none; }
+
+.franklin-content table {
+ margin-left: auto;
+ margin-right: auto;
+ border-collapse: collapse;
+ text-align: center;
+}
+
+.franklin-toc ol ol {
+ list-style-type: lower-alpha;
+}
+
+.franklin-content th,
+td {
+ font-size: var(--small);
+ padding: 10px;
+ border: 1px solid black;
+}
+
+.franklin-content blockquote {
+ background: var(--block-background);
+ border-left: 7px solid #a8a8a8;
+ margin: 1.5em 10px;
+ padding: 0.5em 10px;
+ font-style: italic;
+}
+
+.franklin-content blockquote p {
+ display: inline;
+}
+
+/* ==================================================================
+ GENERAL FORMATTING
+================================================================== */
+
+/* Spacing between bullet points. */
+.franklin-content li p {
+ margin: 10px 0;
+}
+
+.franklin-content a {
+ color: #004de6;
+ text-decoration: none;
+}
+
+.franklin-content a:hover {
+ text-decoration: underline;
+}
+
+/* ==================================================================
+ HYPERREFS AND FOOTNOTES
+================================================================== */
+
+.franklin-content .eqref a { color: green; }
+.franklin-content .bibref a { color: green; }
+
+.franklin-content sup {
+ font-size: 70%;
+ vertical-align: super;
+ line-height: 0;
+}
+
+.franklin-content table.fndef {
+ margin: 0;
+ margin-bottom: 10px;
+}
+
+.franklin-content .fndef tr,
+td {
+ padding: 0;
+ border: 0;
+ text-align: left;
+}
+
+.franklin-content .fndef tr {
+ border-left: 2px solid lightgray;
+}
+
+.franklin-content .fndef td.fndef-backref {
+ vertical-align: top;
+ font-size: 70%;
+ padding-left: 5px;
+}
+
+.franklin-content .fndef td.fndef-content {
+ font-size: 80%;
+ padding-left: 10px;
+ width: 100%;
+}
+
+/* ==================================================================
+ IMAGES in CONTENT
+================================================================== */
+
+.franklin-content img {
+ width: 70%;
+ text-align: center;
+ padding-left: 10%;
+}
+
+.franklin-content .img-small img {
+ width: 50%;
+ text-align: center;
+ padding-left: 20%;
+}
+
+/* ==================================================================
+ KATEX
+================================================================== */
+
+body { counter-reset: eqnum; }
+
+.katex { font-size: 1em !important; }
+
+.katex-display .katex {
+ /* Overwrite KaTeX settings. */
+ display: inline-block;
+
+ /* Allow display equations to wrap on small screens. */
+ white-space: normal;
+}
+
+.katex-display::after {
+ counter-increment: eqnum;
+ content: "(" counter(eqnum) ")";
+ position: relative;
+ float: right;
+ padding-right: 5px;
+}
+
+.nonumber .katex-display::after {
+ counter-increment: nothing;
+ content: "";
+}
+
+/* ==================================================================
+ CODE & HIGHLIGHT.JS
+================================================================== */
+
+code {
+ background-color: var(--block-background);
+ padding: 0.1em 0.2em;
+ border-radius: 2px;
+ font-size: var(--small);
+}
+
+/* .franklin-content code { */
+
+/* background-color: rgba(27,31,35,0.05); */
+
+/* padding: 0.1em 0.2em; */
+
+/* border-radius: 2px; */
+
+/* font-size: 90%; } */
+
+.hljs {
+ font-size: var(--small);
+ line-height: 1.35em;
+ border-radius: 10px;
+}
+
+.hljs-meta { font-weight: bold;}
+
+.hljs-meta.shell_ {color: crimson;}
+.hljs-meta.prompt_ {color: rgb(25, 179, 51);}
+
+.code-output {
+ background: var(--output-background);
+ border: 1px dashed #dbdbdb;
+}
+
+/* ==================================================================
+ BOXES
+================================================================== */
+
+.franklin-content .colbox-blue {
+ background-color: #eef3f5;
+ padding-top: 5px;
+ padding-right: 10px;
+ padding-left: 10px;
+ padding-bottom: 5px;
+ margin-left: 5px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ border-radius: 0 10px 10px 0;
+ border-left: 5px solid #4c9cf1;
+}
diff --git a/_css/jtd.css b/_css/jtd.css
new file mode 100644
index 0000000..ea58977
--- /dev/null
+++ b/_css/jtd.css
@@ -0,0 +1,650 @@
+/*
+This CSS is adapted from https://pmarsceill.github.io/just-the-docs/
+Copyright Patrick Marsceill, MIT license
+https://github.com/pmarsceill/just-the-docs/blob/master/LICENSE.txt
+(MIT licensed)
+*/
+
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+ font-size: 15px;
+}
+
+@media (min-width: 31.25rem) {
+ html {
+ font-size: 19px;
+ }
+}
+
+body {
+ margin: 0;
+ position: relative;
+ padding-bottom: 4rem;
+ font-family: -apple-system, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif;
+ font-size: inherit;
+ line-height: 1.5;
+ color: #5c5962;
+ background-color: #fff;
+}
+
+@media (min-width: 50rem) {
+ body {
+ position: static;
+ padding-bottom: 0;
+ }
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+img {
+ border: 0;
+}
+
+p,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+ol,
+ul,
+pre,
+address,
+blockquote,
+dl,
+div,
+fieldset,
+form,
+hr,
+noscript,
+table {
+ margin-top: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin-top: 1.2em;
+ margin-bottom: 0.8em;
+ font-weight: 500;
+ line-height: 1.15;
+ color: #27262b;
+}
+
+p {
+ margin-bottom: 1em;
+}
+
+a {
+ color: #0e39b0;
+ text-decoration: none;
+}
+
+pre {
+ overflow: auto;
+ margin: 0;
+ margin-bottom: 0.8em;
+}
+
+code {
+ font-family: "SFMono-Regular", Menlo, Consolas, monospace;
+ font-size: 14px;
+ line-height: 1.4;
+ padding: 0.2em 0.15em;
+ font-weight: 400;
+ background-color: #f5f6fa;
+ border: 1px solid #eeebee;
+ border-radius: 4px;
+}
+
+li:not(:last-child) {
+ margin-bottom: 5px;
+}
+
+img {
+ max-width: 100%;
+ height: auto;
+}
+
+hr {
+ height: 1px;
+ padding: 0;
+ margin: 2rem 0;
+ background-color: #eeebee;
+ border: 0;
+}
+
+@media (min-width: 50rem) {
+ .page-wrap {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: flex;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: hidden;
+ }
+}
+
+/************************************************************
+=============================================================
+
+SIDE BAR
+
+============================================================
+************************************************************/
+
+.side-bar {
+ z-index: 100;
+ display: flex;
+ flex-wrap: wrap;
+ background-color: #f5f6fa;
+}
+
+.side-bar .header {
+ display: flex;
+ min-height: 60px;
+ align-items: center;
+}
+
+.side-bar .header .title {
+ padding-right: 1rem;
+ padding-left: 1rem;
+ flex-grow: 1;
+ display: flex;
+ height: 100%;
+ align-items: center;
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ color: #27262b;
+ font-size: 18px !important;
+ line-height: 1.15em;
+}
+
+.show-menu {
+ cursor: pointer;
+ appearance: none;
+ display: flex;
+ height: 100%;
+ line-height: 60px;
+ padding: 1rem;
+ align-items: center;
+ color: #0e39b0;
+ text-transform: uppercase;
+ background: transparent;
+ text-align: right;
+ padding-right: 2rem;
+ border: 0;
+ width: calc(100% - 220px);
+ background-color: white;
+}
+
+.side-bar .menu {
+ width: 100%;
+ padding-right: 1rem;
+ padding-left: 1rem;
+}
+
+.menu-list {
+ padding: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.menu-list-child-list {
+ padding-left: 0.75rem;
+ list-style: none;
+}
+
+.menu-list-child-list .menu-list-link {
+ color: #5c5962;
+}
+
+.menu-list-child-list .menu-list-item {
+ position: relative;
+}
+
+.menu-list-child-list .menu-list-item::before {
+ position: absolute;
+ margin-top: 0.3em;
+ margin-left: -0.8em;
+ color: rgba(92, 89, 98, 0.3);
+ content: "- ";
+}
+
+.menu-list-child-list .menu-list-item.active::before {
+ color: #5c5962;
+}
+
+.menu-list-item {
+ font-size: 14px !important;
+ margin: 0;
+}
+
+.menu-list-item .menu-list-child-list {
+ display: none;
+}
+
+.menu-list-item.active .menu-list-child-list {
+ display: block;
+}
+
+.menu-list-link {
+ display: block;
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+
+.menu-list-link.active {
+ font-weight: 600;
+ color: #27262b;
+ text-decoration: none;
+}
+
+.side-bar .footer {
+ width: 150px;
+ font-size: 13px;
+ padding-right: 1rem;
+ padding-left: 1rem;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
+/* Hide checkbox */
+input[type=checkbox] { display: none; }
+
+/* Show menu when invisible checkbox is checked */
+input[type=checkbox]:checked ~ #side-menu { display: block; }
+
+/* side bar adjustments for narrow mode (bar on top) */
+@media (max-width: 49.99rem) {
+ /* Toggle menu off */
+ .side-bar .menu {
+ display: none;
+ padding-left: 35px;
+ padding-bottom: 15px;
+ }
+
+ .side-bar {
+ border-bottom: 1px solid #eeebee;
+ }
+
+ .side-bar .header {
+ padding-left: 15px;
+ width: 150px;
+ } /* middle space */
+ .show-menu { display: block; }
+}
+
+/* side bar adjustments for narrow mode (bar on top) */
+@media (min-width: 31.25rem) {
+ .side-bar .header .title {
+ font-size: 24px !important;
+ }
+
+ .menu-list-item {
+ font-size: 16px !important;
+ }
+}
+
+/* side bar adjustments for medium mode (bar on side) */
+@media (min-width: 50rem) {
+ .side-bar {
+ flex-wrap: nowrap;
+ position: absolute;
+ width: 248px;
+ height: 100%;
+ flex-direction: column;
+ align-items: flex-end;
+ }
+
+ .side-bar .header {
+ z-index: 101;
+ height: 60px;
+ max-height: 60px;
+ border-bottom: 1px solid #eeebee;
+ padding-right: 2rem;
+ padding-left: 2rem;
+ }
+
+ .side-bar .header .title {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+
+ .show-menu {
+ display: none;
+ }
+
+ .side-bar .menu {
+ width: 135px;
+ padding-right: 2rem;
+ padding-left: 2rem;
+ padding-top: 3rem;
+ padding-bottom: 1rem;
+ overflow-y: auto;
+ flex: 1 1 auto;
+ }
+
+ .side-bar .footer {
+ padding-right: 2rem;
+ padding-left: 2rem;
+ position: static;
+ }
+}
+
+/* side bar adjustments for wide mode (bar on side) */
+@media (min-width: 66.5rem) {
+ .side-bar {
+ width: calc((100% - 66.5rem) / 2 + 264px);
+ min-width: 264px;
+ }
+}
+
+
+/************************************************************
+=============================================================
+
+MAIN CONTENT
+
+============================================================
+************************************************************/
+
+@media (min-width: 50rem) {
+ .main-content-wrap {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ -webkit-overflow-scrolling: touch;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ }
+
+ .main-content {
+ position: relative;
+ max-width: 800px;
+ margin-left: 248px;
+ }
+}
+
+@media (min-width: 66.5rem) {
+ .main-content {
+ margin-left: calc((100% - 1064px) / 2 + 264px);
+ }
+}
+
+.main-header {
+ padding-right: 1rem;
+ padding-left: 1rem;
+ display: none;
+
+ /* padding-top:1rem; */
+
+ /* padding-bottom:1rem; */
+ background-color: #f5f6fa;
+ height: 60px;
+ line-height: 60px;
+}
+
+@media (min-width: 50rem) {
+ .main-header {
+ padding-right: 2rem;
+ padding-left: 2rem;
+ }
+}
+
+@media (min-width: 50rem) {
+ .main-header {
+ display: flex;
+ justify-content: flex-end;
+ height: 60px;
+ background-color: #fff;
+ border-bottom: 1px solid #eeebee;
+ }
+}
+
+.main-footer {
+ font-size: 14px;
+ color: darkgray;
+ border-top: 1px solid #eeebee;
+ padding-top: 15px;
+}
+
+.franklin-content {
+ padding-right: 1rem;
+ padding-left: 1rem;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ line-height: 1.5;
+}
+
+@media (min-width: 50rem) {
+ .franklin-content {
+ padding-right: 2rem;
+ padding-left: 2rem;
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+}
+
+/************************************************************
+=============================================================
+
+Franklin SPECIFICS
+
+============================================================
+************************************************************/
+
+.franklin-content a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.franklin-content ul,
+ol {
+ line-height: 1em;
+}
+
+.franklin-content li {
+ margin-top: 0.3em;
+ line-height: 1.3em;
+}
+
+.franklin-content ul,
+.franklin-content ol {
+ padding-left: 1.5em;
+}
+
+.franklin-content h1:first-of-type {
+ margin-top: 0.5em;
+}
+
+.franklin-content h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ position: relative;
+}
+
+td.fndef-backref {
+ min-width: 20px;
+}
+
+.franklin-content table {
+ margin-left: auto;
+ margin-right: auto;
+ border-collapse: collapse;
+ text-align: center;
+ margin-bottom: 1em;
+}
+
+.franklin-content tr,
+th,
+td {
+ font-size: 14px;
+ padding: 10px;
+ border: 1px solid black;
+}
+
+.franklin-content table tbody tr td {
+ border: 1px solid black;
+}
+
+.franklin-content blockquote {
+ background: lemonchiffon;
+ border-left: 7px solid #a8a8a8;
+ margin: 1.5em 10px;
+ padding: 0.5em 10px;
+ font-style: italic;
+}
+
+.franklin-content blockquote p {
+ display: inline;
+}
+
+.franklin-content .row {
+ display: block;
+}
+
+.franklin-content .left {
+ float: left;
+ margin-right: 15px;
+}
+
+.franklin-content .right {
+ float: right;
+}
+
+.franklin-content .container img {
+ width: auto;
+ padding-left: 0;
+ border-radius: 10px;
+ margin-bottom: 1em;
+}
+
+.franklin-content table.fndef {
+ margin: 0;
+ margin-bottom: 1em;
+ border: 0;
+}
+
+.franklin-content .fndef tr {
+ padding: 0;
+ border: 0;
+ text-align: left;
+}
+
+.franklin-content .fndef td {
+ padding: 0;
+ border: 0;
+}
+
+.franklin-content .fndef td.fndef-backref {
+ vertical-align: top;
+ font-size: 80%;
+ padding-left: 5px;
+}
+
+.franklin-content .fndef td.fndef-content {
+ font-size: 90%;
+ padding-left: 10px;
+}
+
+.franklin-content .fndef tr {
+ border-left: 2px solid lightgray;
+}
+
+.franklin-content img {
+ width: 70%;
+ text-align: center;
+ padding-left: 10%;
+}
+
+.franklin-content .img-small img {
+ width: 50%;
+ text-align: center;
+ padding-left: 20%;
+}
+
+
+/* ==================================================================
+ KATEX
+================================================================== */
+
+body { counter-reset: eqnum; }
+
+.katex { font-size: 1em !important; }
+
+.katex-display .katex {
+ display: inline-block;
+} /* overwrite katex settings */
+
+.katex-display::after {
+ counter-increment: eqnum;
+ content: "(" counter(eqnum) ")";
+ position: relative;
+ float: right;
+ padding-right: 5px;
+}
+
+/* ==================================================================
+ CODE & HIGHLIGHT.JS
+================================================================== */
+
+.hljs {
+ font-size: 14px;
+ line-height: 1.35em;
+ border-radius: 10px;
+ padding: 1em;
+}
+
+.hljs-meta,
+.hljs-metas,
+.hljs-metap { font-weight: bold; }
+
+.hljs-meta { color: rgb(25, 179, 51); }
+
+.hljs-metas { color: red; }
+
+.hljs-metap { color: rgb(51, 131, 231); }
+
+franklin-toc {
+ /* Avoid clickable elements being too close together. */
+ margin: 0.6rem 0;
+}
+}
diff --git a/_layout/foot.html b/_layout/foot.html
new file mode 100644
index 0000000..2b4fa76
--- /dev/null
+++ b/_layout/foot.html
@@ -0,0 +1,12 @@
+
+
+
+
+ {{ if hasmath }}
+ {{ insert foot_katex.html }}
+ {{ end }}
+ {{ if hascode }}
+ {{ insert foot_highlight.html }}
+ {{ end }}
+