diff --git a/.github/workflows/tf_update_dev.yml b/.github/workflows/tf_update_dev.yml deleted file mode 100644 index fa17097..0000000 --- a/.github/workflows/tf_update_dev.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: www2.freezone.ourworld.tf -on: - push: - branches: [ development ] - -jobs: - job_one: - name: Deploy - runs-on: ubuntu-latest - steps: - - name: pushing latest change on www2.freezone.ourworld.tf - uses: appleboy/ssh-action@master - with: - host: www2.freezone.ourworld.tf - username: ${{ secrets.TF_USER }} - key: ${{ secrets.TF_SECRET }} - port: ${{ secrets.TF_PORT }} - script: | - cd websites/www2/www_ourworld_freezone/ - git log -1 - git fetch - git reset --hard origin/development - sed -i "s/https:\/\/freezone.ourworld.tf/https:\/\/www2.freezone.ourworld.tf/g" config.toml - ./build.sh diff --git a/.github/workflows/tf_update_prod.yml b/.github/workflows/tf_update_prod.yml deleted file mode 100644 index 7cebb4b..0000000 --- a/.github/workflows/tf_update_prod.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: freezone.ourworld.tf -on: - push: - branches: [ master ] - -jobs: - job_one: - name: Deploy - runs-on: ubuntu-latest - steps: - - name: pushing latest change on freezone.ourworld.tf - uses: appleboy/ssh-action@master - with: - host: freezone.ourworld.tf - username: ${{ secrets.TF_USER }} - key: ${{ secrets.TF_SECRET }} - port: ${{ secrets.TF_PORT }} - script: | - cd websites/www_ourworld_freezone/ - git log -1 - git fetch - git reset --hard origin/master - sed -i "s/https:\/\/www2.freezone.ourworld.tf/https:\/\/freezone.ourworld.tf/g" config.toml - ./build.sh diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..8b00a2c --- /dev/null +++ b/build.sh @@ -0,0 +1,38 @@ +echo "Starting build..." + +# TODO: Check if current version is latest to avoid redundant installation + +# checks os and architecture for correct release +# https://stackoverflow.com/a/8597411 +echo "Installing & building tailwind..." +ASSET="tailwindcss" + +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + ASSET="$ASSET-linux" +elif [[ "$OSTYPE" == "darwin"* ]]; then + ASSET="$ASSET-macos" +fi +if [[ "$(uname -m)" == "x86_64"* ]]; then + ASSET="$ASSET-x64" +elif [[ "$(uname -m)" == "arm64"* ]]; then + ASSET="$ASSET-arm64" +fi + +curl -sLO "https://github.com/tailwindlabs/tailwindcss/releases/latest/download/${ASSET}" +chmod +x $ASSET +mv $ASSET tailwindcss + + +# initialized and configures tailwind if not configured +echo "Initializing tailwind..." +if [[ ! -f "tailwind.config.js" ]] +then + ./tailwindcss init + sed -i '' "s| content: \\[\\],| content: \\['./templates/**/*.html'\\],|g" tailwind.config.js +fi + +# compiles tailwind css for prod & builds project +echo "Compiling tailwindcss and building zola project..." +rm -rf public static/css +./tailwindcss -i css/index.css -o ./static/css/index.css --minify +zola build diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..7935df8 --- /dev/null +++ b/config.toml @@ -0,0 +1,131 @@ +# The URL the site will be built for +base_url = "http://localhost:8089/" +# Change this to your own URL! Please note this variable **must** be uncommented. + +title = "A Template Website" +description="Accessible and affordable for all" + +# When set to "true", a feed is automatically generated. +# generate_feed = true + +# The filename to use for the feed. Used as the template filename, too. +# Defaults to "atom.xml", which has a built-in template that renders an Atom 1.0 feed. +# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed. +# feed_filename = "index.xml" + +# The number of articles to include in the feed. All items are included if +# this limit is not set (the default). +# feed_limit = 10 + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = false + +# When set to "true", the generated HTML files are minified. +# minify_html = true +# I'm keeping off for now -- buggy -- 2021-02-05 (@keats says it'll be fixed 0.14.0) + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = false + +[markdown] +# Whether to do syntax highlighting +# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola +highlight_code = true +highlight_theme = "visual-studio-dark" + +# When set to "true", emoji aliases translated to their corresponding +# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄) +render_emoji = false + +[slugify] +paths = "on" + +# Whether external links are to be opened in a new tab +# If this is true, a `rel="noopener"` will always automatically be added for security reasons +external_links_target_blank = true + +# Whether to set rel="nofollow" for all external links +external_links_no_follow = true + +# Whether to set rel="noreferrer" for all external links +external_links_no_referrer = true + +# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form) +# For example, `...` into `…`, `"quote"` into `“curly”` etc +smart_punctuation = true + +[[taxonomies]] +name = "categories" +feed = true +paginate_by = 2 +paginate_path = "blog-posts" + +[[taxonomies]] +name = "items" +feed = true +paginate_by = 2 +paginate_path = "product-posts" + +[[taxonomies]] +name = "roles" +feed = true +paginate_by = 2 +paginate_path = "blog-posts" + +[[taxonomies]] +name = "tags" +feed = true +paginate_by = 2 +paginate_path = "blog-posts" + +[[taxonomies]] +name = "news-category" +feed = true +paginate_by = 6 +paginate_path = "news-card" + +[[taxonomies]] +name = "people" +feed = true +paginate_by = 9 +paginate_path = "people" + +[[taxonomies]] +name = "memberships" +feed = true +paginate_by = 8 +paginate_path = "people/memberships" + +[extra] +header_class = "customize" +footer_class = "customize" + +[extra.taxonomies."roles"] + [extra.taxonomies."roles".Create] + icon_path = "images/icons/paint-brush-art-svgrepo-com.svg" + banner_path = "images/marius-masalar-unsplash.jpg" + title = "Create OurWorld" + description = "Become a part of a team of creators looking to shape our digital world" + + [extra.taxonomies."roles".Develop] + icon_path = "images/icons/code-svgrepo-com.svg" + banner_path = "images/marius-masalar-unsplash.jpg" + title = "Develop OurWorld" + description = "Become a part of a team of developers building our digital world" + + [extra.taxonomies."roles".Inspire] + icon_path = "images/icons/bar-svgrepo-com.svg" + banner_path = "images/marius-masalar-unsplash.jpg" + title = "Share OurWorld" + description = "Create communities and involve people in ourworld" + + [extra.taxonomies."roles".Organize] + icon_path = "images/icons/form-svgrepo-com.svg" + banner_path = "images/marius-masalar-unsplash.jpg" + title = "Run OurWorld" + description = "Become a part of the organizational team at ourworld" + + + + + diff --git a/content/buildondunia/index.md b/content/buildondunia/index.md index 8fd7163..f755e2b 100644 --- a/content/buildondunia/index.md +++ b/content/buildondunia/index.md @@ -6,8 +6,6 @@ updated: 2021-02-20 draft: false sort_by: weight weight: 1 -extra: - logo_path: images/logo.svg --- {% row(style="center" padding="none" bgPath="img/2.jpg" bgStyle="full") %} diff --git a/content/css/admonition.css b/content/css/admonition.css new file mode 100644 index 0000000..de7d76e --- /dev/null +++ b/content/css/admonition.css @@ -0,0 +1,361 @@ +:root { + --md-admonition-icon--note: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--abstract: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--info: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--tip: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--success: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--question: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--warning: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--failure: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--danger: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--bug: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--example: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--quote: url("data:image/svg+xml;charset=utf-8,"); + --md-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23000000'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z'/%3E%3C/svg%3E"); +} + +:is(.admonition) { + display: flow-root; + margin: 1.5625em 0; + padding: 0 1.2rem; + color: var(--fg); + page-break-inside: avoid; + background-color: var(--bg); + border: 0 solid black; + border-inline-start-width: 0.4rem; + border-radius: 0.2rem; + box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.05), 0 0 0.1rem rgba(0, 0, 0, 0.1); +} + +.admonition p { + display: block; + margin-block-start: 1em; + margin-block-end: 1em; + margin-inline-start: 0px; + margin-inline-end: 0px; + font-size: 0.8rem; +} + +@media print { + :is(.admonition) { + box-shadow: none; + } +} +:is(.admonition) > * { + box-sizing: border-box; +} +:is(.admonition) :is(.admonition) { + margin-top: 1em; + margin-bottom: 1em; +} +:is(.admonition) > .tabbed-set:only-child { + margin-top: 0; +} +html :is(.admonition) > :last-child { + margin-bottom: 1.2rem; +} + +:is(.admonition-title, summary) { + position: relative; + margin-block: 0; + margin-inline: -1.6rem -1.2rem; + padding-block: 0.8rem; + padding-inline: 4rem 1.2rem; + font-weight: 700; + background-color: rgba(68, 138, 255, 0.1); + border: 0 solid #448aff; + border-inline-start-width: 0.4rem; + border-start-start-radius: 0.2rem; + display: flex; +} +:is(.admonition-title, summary) > p { + margin: 0; +} +html :is(.admonition-title, summary):last-child { + margin-bottom: 0; +} +:is(.admonition-title, summary)::before { + position: absolute; + top: 0.625em; + inset-inline-start: 1.2rem; + width: 1.4rem; + height: 1.4rem; + background-color: #448aff; + mask-image: url('data:image/svg+xml;charset=utf-8,'); + -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + content: ""; +} + +:is(.admonition):is(.note) { + border-color: #448aff; +} + +:is(.note) > :is(.admonition-title, summary) { + background-color: rgba(68, 138, 255, 0.1); + border-color: #448aff; +} +:is(.note) > :is(.admonition-title, summary)::before { + background-color: #448aff; + mask-image: var(--md-admonition-icon--note); + -webkit-mask-image: var(--md-admonition-icon--note); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.abstract, .summary, .tldr) { + border-color: #00b0ff; +} + +:is(.abstract, .summary, .tldr) > :is(.admonition-title, summary) { + background-color: rgba(0, 176, 255, 0.1); + border-color: #00b0ff; +} +:is(.abstract, .summary, .tldr) > :is(.admonition-title, summary)::before { + background-color: #00b0ff; + mask-image: var(--md-admonition-icon--abstract); + -webkit-mask-image: var(--md-admonition-icon--abstract); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.info, .todo) { + border-color: #00b8d4; +} + +:is(.info, .todo) > :is(.admonition-title, summary) { + background-color: rgba(0, 184, 212, 0.1); + border-color: #00b8d4; +} +:is(.info, .todo) > :is(.admonition-title, summary)::before { + background-color: #00b8d4; + mask-image: var(--md-admonition-icon--info); + -webkit-mask-image: var(--md-admonition-icon--info); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.tip, .hint, .important) { + border-color: #00bfa5; +} + +:is(.tip, .hint, .important) > :is(.admonition-title, summary) { + background-color: rgba(0, 191, 165, 0.1); + border-color: #00bfa5; +} +:is(.tip, .hint, .important) > :is(.admonition-title, summary)::before { + background-color: #00bfa5; + mask-image: var(--md-admonition-icon--tip); + -webkit-mask-image: var(--md-admonition-icon--tip); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.success, .check, .done) { + border-color: #00c853; +} + +:is(.success, .check, .done) > :is(.admonition-title, summary) { + background-color: rgba(0, 200, 83, 0.1); + border-color: #00c853; +} +:is(.success, .check, .done) > :is(.admonition-title, summary)::before { + background-color: #00c853; + mask-image: var(--md-admonition-icon--success); + -webkit-mask-image: var(--md-admonition-icon--success); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.question, .help, .faq) { + border-color: #64dd17; +} + +:is(.question, .help, .faq) > :is(.admonition-title, summary) { + background-color: rgba(100, 221, 23, 0.1); + border-color: #64dd17; +} +:is(.question, .help, .faq) > :is(.admonition-title, summary)::before { + background-color: #64dd17; + mask-image: var(--md-admonition-icon--question); + -webkit-mask-image: var(--md-admonition-icon--question); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.warning, .caution, .attention) { + border-color: #ff9100; +} + +:is(.warning, .caution, .attention) > :is(.admonition-title, summary) { + background-color: rgba(255, 145, 0, 0.1); + border-color: #ff9100; +} +:is(.warning, .caution, .attention) > :is(.admonition-title, summary)::before { + background-color: #ff9100; + mask-image: var(--md-admonition-icon--warning); + -webkit-mask-image: var(--md-admonition-icon--warning); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.failure, .fail, .missing) { + border-color: #ff5252; +} + +:is(.failure, .fail, .missing) > :is(.admonition-title, summary) { + background-color: rgba(255, 82, 82, 0.1); + border-color: #ff5252; +} +:is(.failure, .fail, .missing) > :is(.admonition-title, summary)::before { + background-color: #ff5252; + mask-image: var(--md-admonition-icon--failure); + -webkit-mask-image: var(--md-admonition-icon--failure); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.danger, .error) { + border-color: #ff1744; +} + +:is(.danger, .error) > :is(.admonition-title, summary) { + background-color: rgba(255, 23, 68, 0.1); + border-color: #ff1744; +} +:is(.danger, .error) > :is(.admonition-title, summary)::before { + background-color: #ff1744; + mask-image: var(--md-admonition-icon--danger); + -webkit-mask-image: var(--md-admonition-icon--danger); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.bug) { + border-color: #f50057; +} + +:is(.bug) > :is(.admonition-title, summary) { + background-color: rgba(245, 0, 87, 0.1); + border-color: #f50057; +} +:is(.bug) > :is(.admonition-title, summary)::before { + background-color: #f50057; + mask-image: var(--md-admonition-icon--bug); + -webkit-mask-image: var(--md-admonition-icon--bug); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.example) { + border-color: #7c4dff; +} + +:is(.example) > :is(.admonition-title, summary) { + background-color: rgba(124, 77, 255, 0.1); + border-color: #7c4dff; +} +:is(.example) > :is(.admonition-title, summary)::before { + background-color: #7c4dff; + mask-image: var(--md-admonition-icon--example); + -webkit-mask-image: var(--md-admonition-icon--example); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.quote, .cite) { + border-color: #9e9e9e; +} + +:is(.quote, .cite) > :is(.admonition-title, summary) { + background-color: rgba(158, 158, 158, 0.1); + border-color: #9e9e9e; +} +:is(.quote, .cite) > :is(.admonition-title, summary)::before { + background-color: #9e9e9e; + mask-image: var(--md-admonition-icon--quote); + -webkit-mask-image: var(--md-admonition-icon--quote); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +.navy :is(.admonition) { + background-color: var(--sidebar-bg); +} + +.ayu :is(.admonition), +.coal :is(.admonition) { + background-color: var(--theme-hover); +} + +.rust :is(.admonition) { + background-color: var(--sidebar-bg); + color: var(--sidebar-fg); +} + +:is(.admonition-title) { + font-feature-settings: "kern", "liga"; + font-weight: 600; + font-size: 0.84rem; + border: none; + padding: 10px 50px; +} + +:is(summary)::after { + position: absolute; + top: 0.625em; + width: 1.4rem; + height: 1.4rem; + mask-image: url('data:image/svg+xml;charset=utf-8,'); + -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + content: ""; +} + +:is(summary)::after { + background-color: black; + mask-image: var(--md-details-icon); + -webkit-mask-image: var(--md-details-icon); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + position: absolute; + transform: rotate(-90deg); + transition: transform 0.25s; + right: 0.4rem; +} + +details[open] > summary::after { + transform: rotate(0deg); +} diff --git a/content/css/code.css b/content/css/code.css new file mode 100644 index 0000000..7d95a8e --- /dev/null +++ b/content/css/code.css @@ -0,0 +1,90 @@ +code.language-html, +code.language-css, +code.language-md, +code.language-cmd, +code.language-bash, +code.language-text, +code.language-js, +span.o, +span.nx { + color: rgb(255, 255, 255); + line-height: 1.4; +} +span.c { + color: hsl(120, 100%, 20%); +} + +span.p, +span.s1, +span.s2, +span.nt { + color: hsl(40, 100%, 30%); +} + +span.gs, +span.gh, +span.ge { + color: hsl(208, 100%, 50%); +} + +span.gs { + font-weight: bold; +} + +span.ge { + font-style: italic; +} + +pre, +code { + @apply font-mono; +} + +code { + background-color: hsl(0, 0%, 98%); + border-radius: 3px; + color: hsl(120, 100%, 20%); + font-size: 85%; +} + +pre { + margin: 0; + margin: 0; + padding: 1rem; + overflow: scroll; +} + +pre code { + background-color: transparent; + color: inherit; + font-size: 100%; + padding: 0; +} + +.highlight { + background-color: transparent; + border-radius: 3px; + margin: 0 0 0.5rem; + padding: 0; + + & pre { + margin-bottom: 0; + overflow-x: auto; + } + + & .lineno { + color: hsla(0, 0%, 67%, 0.72); + display: inline-block; /* Ensures the null space also isn't selectable */ + padding: 0 0.75rem 0 0.25rem; + /* Make sure numbers aren't selectable */ + } +} + +/* TODO: dark theme for future +@media (prefers-color-scheme: dark) { + code { + color: #fff; + background: hsl(200, 63%, 15%); + } +} +*/ diff --git a/content/css/index.css b/content/css/index.css new file mode 100644 index 0000000..1819793 --- /dev/null +++ b/content/css/index.css @@ -0,0 +1,406 @@ +/*! purgecss start ignore */ +@import "code.css"; +/*! purgecss end ignore */ + +@import "tailwindcss/base"; +@import "layout.css"; +@import "tailwindcss/components"; +@import "admonition.css"; +@import "tailwindcss/utilities"; + +@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&family=Montserrat:wght@400;700&display=swap'); +/* Custom CSS for header partial */ +.backdrop-blur { + -webkit-backdrop-filter: blur(40px); +} + +* { + font-family: 'Lato', sans-serif; +} + +.bg-semi-white { + background-color: rgba(255, 255, 255, 0.75); +} + +/* Custom css allowing image styling in markdown */ + + +img[src*="#mx-auto"] { + margin: auto; +} + +img[src*="#small"] { + width: 68px; +} + +img[src*="#sm"] { + width: 200px; +} + +img[src*="#md"] { + width: 300px; +} + +img[src*="#medium"] { + width: 500px; +} + +img[src*="#logo"] { + max-width: min(250px, 100%); + margin: auto; +} + +img[src*="#large"] { + width: min(60vw, 100vh); + margin: auto; +} + +img[src*="#fill"] { + width: 100%; + height: 100%; +} + +img[src*="#tft_img"] { + width: 150px; + margin: 8px; +} + +img[src*="#icon"] { + width: 65px; + margin: 4px; +} + +img[src*="#fig"] { + width: 150px; +} + +.logo_size { + width: 200px; +} + +.advance{ + + font-family: "lato"; +} + +@layer components { + h1 { + @apply text-3xl lg:text-5xl xl:text-7xl font-bold leading-4 my-4; + font-family: "lato", sans-serif; + line-height: 0.9; + + } + h1 strong { + @apply font-medium; + } + h2 { + @apply text-3xl md:text-4xl lg:text-6xl font-bold leading-4 my-4; + font-family: "lato", sans-serif; + line-height: 0.9; + + + } + h2 strong { + @apply font-medium; + } + h3 { + @apply text-xl lg:text-3xl font-normal my-4; + color:#oab7a9; + } + h3 strong { + @apply font-medium; + } + h4 { + @apply text-xl lg:text-2xl font-normal my-4; + color:#oab7a9; + } + h5 { + @apply text-xl lg:text-xl font-normal; + } + h6 { + @apply text-lg not-italic font-normal my-1; + } + p { + @apply text-base lg:text-lg leading-tight tracking-normal font-normal my-0; + font-family: "CercoDEMO", sans-serif; + } + blockquote { + @apply border-l-4 border-gray-400 mx-2 my-2 p-2; + } + li { + @apply text-lg lg:text-xl font-normal my-2; + } + li li { + @apply text-sm lg:text-sm font-light; + } + button { + @apply inline-block + text-base + lg:text-lg + px-8 + py-1 + my-4 + border-2 + shadow + } + + article h2{ + @apply text-xl lg:text-3xl font-medium + } + +article p ,li{ + @apply text-base lg:text-lg +} +} + +a:hover{ + color: #737373; +} + +button:hover { + color: #737373; +} + +button { +font-weight: 500; +} + +.experience-btn { + border: none; + margin: 0; + padding: 0; + color: black; + padding: 20px; + width: fit-content; +} + +.experience-btn p { + @apply text-lg; +} + +.experience-btn:hover { + background: white; +} + + +.experience-btn h4 { + white-space: normal; +} + +header .customize { + background-color: transparent; + position: absolute; +} + +footer .customize { + /* width: 100vw; */ + color: #fff; + background-color: #17b9c8; + display: flex; + flex-direction: column; + align-items: center; + padding-top: 24px; + padding-bottom: 24px; +} + +footer .customize img { + width: 60px; +} + + +header .customize div { + box-shadow: none; + text-transform: uppercase; + font-weight: 700 !important; +} + +button { + background: transparent; + color: black; + border-radius: 4px; + border: 2px solid black; + box-shadow: none; + /* font-size: 18px; */ +} + +a { + border: none; +} + +header { + font-family: "Work Sans"; +} + +.nav_btn { + margin: 0 !important; + padding: 0 !important; + border: none !important; + box-shadow: none !important; +} + +.quicklinks { + box-sizing: border-box; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: auto; + display: inline-block; + margin: 0 auto; + border-radius: 10px; + margin-top: 30px; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-bottom: 20px; +} +.quicklinks img { + height: auto; + max-width: 200px; + display: inline-block; + padding: 10px; + -webkit-filter: grayscale(100%); + filter: grayscale(100%); + position: relative; + margin-right: 30px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + opacity: 0.5; +} + +.quicklinks img:hover { + opacity: 1; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-filter: grayscale(0%); + filter: grayscale(0%); +} + +.banner { + width: 100%; + margin: 0; + padding: 120px 0; + text-align: center; + position: relative; + display: block; + color: #fff !important; + letter-spacing: 0.5px; + overflow: hidden; + background: #00838d; + transition: 1.5s; +} + +.header { + height: auto; + background: none; + padding: 200px 0; +} + +.banner h2, +.header h1 { + margin: auto; + color: #fff; + position: relative; + transition: 0.3s; + z-index: 1; + white-space: nowrap; +} + +.header h1 { + color: #000; + transition: none; +} + +.banner h2 svg { + font-size: 40px; + margin-left: 15px; + position: absolute; + top: 55%; + transform: translateY(-50%) scale(0.5); + opacity: 0; + transition: 0.3s; +} + +.banner .back { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-position: center; + background-size: cover; + filter: grayscale(1) contrast(1.4); + opacity: 0.25; + transition: 1.5s; +} + +.header .back { + filter: none; + opacity: 1; + background-position: center; + + background-size: cover; + background-repeat: no-repeat; +} + +.banner:hover { + background: #4b3a92; +} + +.header:hover { + background: none; +} + +.banner:hover h2 svg { + transform: translateY(-50%) scale(1); + opacity: 1; +} + +.banner:hover h2 { + padding-right: 40px; +} + +.header:hover h1 { + padding-right: 0; +} + +.banner:hover .back { + transform: scale(1.03); +} + +.header:hover .back { + transform: none; +} + +@media (max-width: 768px) { + /* h2 { + font-size: 4rem; + } */ +} +@media (max-width: 640px) { + .banner h2 { + font: 600 7vw/10vw; + } + + .header h1 { + font-size: 35px; + } + + .banner h2 svg { + font-size: 30px; + } +} + +@media (max-width: 480px) { + .banner, + .header { + padding: 80px 0; + } + + footer { + text-align: center; + } + /* h2 { + font-size: 3rem; + } */ +} diff --git a/content/css/layout.css b/content/css/layout.css new file mode 100644 index 0000000..e1ef0cb --- /dev/null +++ b/content/css/layout.css @@ -0,0 +1,472 @@ +main { + @apply pt-0; +} + +#text-1xl { @apply text-xl } +#text-2xl { @apply text-2xl } +#text-3xl { @apply text-3xl } +#text-4xl { @apply text-4xl } +#text-5xl { @apply text-5xl } +#text-6xl { @apply xl:text-6xl lg:text-5xl md:text-4xl sm:text-3xl} +#text-7xl { @apply text-7xl } +#text-8xl { @apply text-8xl } +#text-9xl { + font-size: 8rem; +} + +#xp-heading { @apply m-0 } +/* +html, body { + @apply dark:bg-black; + +body { + @apply font-serif dark:text-gray-200; +} +*/ + +p { + /* for handling Markdown-created

and

  • */ + @apply text-lg; +} + +pre, +code { + font-feature-settings: normal; +} + +.navWhite, +.navWhite:visited { + @apply text-white; +} + +.navWhite:focus, +.navWhite:active { + @apply text-gray-400; +} + +.text-blue-light { + @apply text-blue-500; +} + +.text-blue-dark { + /* for dark mode + @apply text-blue-200; + */ +} + +.text-shadow-titles { + text-shadow: 4px 4px 2px #000; +} + +.gradient-titles { + @apply bg-gradient-to-b from-blue-700 to-black; +} + +.ctr { + @apply text-center; +} + +.legal { + @apply text-xs; +} + +nav h4 a:hover { + @apply border-0 text-blue-300 font-light; +} +nav h4 a, +nav h4 a:focus, +nav h4 a:active { + @apply border-0 text-black font-light; +} + +a h2 { + @apply text-black; +} + +a:focus, +a:hover { + @apply border-none text-blue-300; +} +a:active { + @apply text-blue-800 border-blue-500; +} + +h5 a { + @apply text-gray-900 font-normal; +} + +/* +a:hover { + @apply dark:text-blue-300; +} +*/ + +sup a, +a.previous, +a.next, +.footnote-return { + @apply border-b-0; +} + +#nav-toggle:checked + #navMenu { + @apply block; +} + +a.navborderless { + @apply border-b-0; +} +/* +.dateInfo { + @apply text-gray-700 dark:text-gray-400; +} +*/ + +h1, +.h1, +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { +} + +h1, +.h1 { + @apply text-4xl font-extrabold; +} + +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { + @apply font-bold; +} + +h2, +.h2 { + @apply text-4xl; +} + +h4, +.h4 { + @apply text-2xl; +} + +h5 { + @apply not-italic; +} + +h5, +.h5, +h6, +.h6 { + @apply text-lg; +} + +.height-hero { + height: 45vh; + max-height: 45vh; + overflow: hidden; +} + +.height-post { + height: 35vh; + max-height: 35vh; +} + +.imgCover { + @apply object-cover object-center h-full w-full; +} + +.background-hero-image-div { + @apply relative overflow-hidden w-full bg-black; + /* Have to allow for mobile browsers' own "chrome"; can't go by Inspector simulations of smaller breakpoints */ + height: 80vh; + max-height: 80vh; +} + +.background-hero-title-block-fit { + @apply block w-full absolute bottom-0 px-4 pt-3 pb-6 bg-gradient-to-t from-black; +} + +.background-hero-title-text { + text-shadow: 4px 4px 2px #000; +} + +@media screen and (min-width: 768px) { + .background-hero-title-block-fit { + @apply px-12; + } + + .background-hero-image-div { + height: 85vh; + max-height: 85vh; + } +} + +@media screen and (min-width: 1024px) { + .background-hero-title-block-fit { + @apply px-16; + } + + .background-hero-image-div { + height: 95vh; + max-height: 95vh; + } +} + +.text-nowrap, +.text-nobrk { + @apply whitespace-nowrap; +} + +article h1, +article h2, +article h3, +article h4 { + @apply tracking-tight mt-8 mb-6; +} + +article p { + @apply text-lg leading-relaxed; +} + +article img.containedImage { + min-width: 100%; + max-width: 100%; + @apply w-full h-auto; +} + +@media screen and (min-width: 768px) { + .height-hero { + height: 70vh; + max-height: 70vh; + } + + .height-post { + height: 40vh; + max-height: 40vh; + } +} + +@media screen and (min-width: 768px) { + article p { + @apply text-xl leading-relaxed; + } +} + +@media screen and (min-width: 1920px) { + article p { + @apply text-2xl leading-relaxed; + } +} +/* +.yellowBox { + @apply font-sans bg-yellow-200 border border-gray-900 border-solid mx-auto my-2 w-full px-6 py-2 dark:bg-gray-800 dark:border-gray-500; +} +*/ + +.yellowbox p { + @apply w-full p-2 m-0; +} + +ul, +ol { + @apply pl-8; +} + +ul { + @apply list-disc; +} + +ol { + @apply list-decimal; +} + +.twitter-tweet { + @apply mt-4 mx-auto mb-0; +} + +table.leagues { + @apply w-11/12 mt-4 mx-auto mb-0 border-0 border-collapse; +} + +table.leagues td.col { + @apply w-1/2; +} + +@media (min-width: 900px) { + table.leagues { + @apply w-3/5; + } + table.noborders { + @apply w-11/12; + } +} + +table.noborders { + @apply w-full border-0 border-collapse mt-6 mx-auto mb-4; +} + +table.noborders td { + @apply text-gray-800 text-left align-middle py-1 pr-0 pl-2; + /* text-align: left !important; */ +} + +table.noborders td img { + @apply inline-block align-middle m-0; +} + +table.noborders tr { + @apply bg-blue-100; +} + +table.noborders tr:nth-child(even) { + @apply bg-gray-200; +} + +table.noborders thead tr { + @apply bg-blue-700; +} + +table.noborders thead td { + @apply text-white font-bold; +} + +table.noborders td.td70 { + width: 70%; +} +table.noborders td.td70 img { + @apply block w-1/2 h-auto; + max-width: 50%; +} + +table.noborders td.td30 { + width: 30%; +} +/* +blockquote { + @apply px-6 text-gray-700 dark:text-gray-400; +} +*/ + +/* start, footnotes */ + +.footnote-definition, +.footnote-reference { + @apply font-sans; +} + +.footnote-reference { + font-size: 0.65em; + top: -0.5em; +} + +.footnote-sim { + font-size: 0.65em; + color: #0000ff; + @media (prefers-color-scheme: dark) { + color: #00aaff; + } +} + +.footnotes { + & ol { + padding-inline-start: 1.5rem; + } + & ol li { + margin-bottom: 0.5rem; + font-size: $pokey; + } + & li p { + font-size: 100%; + line-height: 1.4; + } + & .footnote-backref { + font-size: 75%; + } +} + +a.footnote-return { + font-size: 50%; +} + +article > .footnote-definition { + border-top: 1px solid black; + padding-top: 1em; + margin-top: 1em; +} + +article > .footnote-definition ~ .footnote-definition { + border-top: 0; + padding-top: 0; + margin-top: 0; +} + +.footnote-definition-label { + top: -0.4em; + font-size: 0.65em; +} + +.footnote-definition-label + p { + font-size: 75%; + margin-top: -1.75em; + margin-left: 1em; + line-height: 1.35; +} + +.footnote-definition-label::after { + content: "."; +} + +/* == end, footnotes */ + +.aspect-16x9 { + padding-bottom: 56.25%; +} +/* +hr { + @apply border-solid border-gray-900 dark:border-gray-100; +} +*/ + +footer { + @apply font-sans; +} + +.lazypicturecaption { + @apply text-sm p-0 mt-2 leading-snug text-center; +} + +.home-colOne p { + @apply leading-8 mb-4; +} + +.home-colOne img { + @apply my-4; +} + +.container-comments { + margin: 0 auto; + font-size: 85%; + width: 85%; + max-width: 720px !important; + margin-bottom: 0; +} + +@media screen and (min-width: 900px) { + .container-comments { + width: 40%; + } +} diff --git a/content/footer/_index.md b/content/footer/_index.md index de2c25b..c23a500 100644 --- a/content/footer/_index.md +++ b/content/footer/_index.md @@ -4,7 +4,7 @@ description: "" insert_anchor_links: "left" template: "partials/footer.html" extra: - logoPath: "footer/img/logo_dunia_2.jpeg" + logoPath: "images/logo.jpeg" socialLinks: { Youtube: "https://www.youtube.com/channel/UC_iykLteqV-jwOBzueLtUwg", Twitter: "https://twitter.com/DenisMukwege", Facebook: "https://www.facebook.com/DrDenisMukwege" } --- diff --git a/content/header/_index.md b/content/header/_index.md index 256cd8a..4aa43dd 100644 --- a/content/header/_index.md +++ b/content/header/_index.md @@ -4,7 +4,7 @@ description: "this is a header." insert_anchor_links: "left" template: "partials/header.html" extra: - logoPath: "/header/img/logo_dunia.jpeg" + logoPath: "/images/logoheader.jpeg" imgPath: "" --- - [Home]("/home") diff --git a/content/nodehost/index.md b/content/nodehost/index.md index 0da6b90..4058fd5 100644 --- a/content/nodehost/index.md +++ b/content/nodehost/index.md @@ -7,7 +7,7 @@ draft: false sort_by: weight weight: 1 extra: - logo_path: images/logo.svg + logo_path: images/logo.jpeg --- {% row(style="center" padding="top") %} diff --git a/content/participate/index.md b/content/participate/index.md index 75007b0..7d33648 100644 --- a/content/participate/index.md +++ b/content/participate/index.md @@ -7,7 +7,7 @@ draft: false sort_by: weight weight: 1 extra: - logo_path: images/logo.svg + logo_path: images/logo.jpeg --- {% row(style="center" margin="through." bgPath="img/participate_2.png" bgStyle="full") %} diff --git a/css/admonition.css b/css/admonition.css new file mode 100644 index 0000000..de7d76e --- /dev/null +++ b/css/admonition.css @@ -0,0 +1,361 @@ +:root { + --md-admonition-icon--note: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--abstract: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--info: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--tip: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--success: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--question: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--warning: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--failure: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--danger: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--bug: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--example: url("data:image/svg+xml;charset=utf-8,"); + --md-admonition-icon--quote: url("data:image/svg+xml;charset=utf-8,"); + --md-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23000000'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z'/%3E%3C/svg%3E"); +} + +:is(.admonition) { + display: flow-root; + margin: 1.5625em 0; + padding: 0 1.2rem; + color: var(--fg); + page-break-inside: avoid; + background-color: var(--bg); + border: 0 solid black; + border-inline-start-width: 0.4rem; + border-radius: 0.2rem; + box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.05), 0 0 0.1rem rgba(0, 0, 0, 0.1); +} + +.admonition p { + display: block; + margin-block-start: 1em; + margin-block-end: 1em; + margin-inline-start: 0px; + margin-inline-end: 0px; + font-size: 0.8rem; +} + +@media print { + :is(.admonition) { + box-shadow: none; + } +} +:is(.admonition) > * { + box-sizing: border-box; +} +:is(.admonition) :is(.admonition) { + margin-top: 1em; + margin-bottom: 1em; +} +:is(.admonition) > .tabbed-set:only-child { + margin-top: 0; +} +html :is(.admonition) > :last-child { + margin-bottom: 1.2rem; +} + +:is(.admonition-title, summary) { + position: relative; + margin-block: 0; + margin-inline: -1.6rem -1.2rem; + padding-block: 0.8rem; + padding-inline: 4rem 1.2rem; + font-weight: 700; + background-color: rgba(68, 138, 255, 0.1); + border: 0 solid #448aff; + border-inline-start-width: 0.4rem; + border-start-start-radius: 0.2rem; + display: flex; +} +:is(.admonition-title, summary) > p { + margin: 0; +} +html :is(.admonition-title, summary):last-child { + margin-bottom: 0; +} +:is(.admonition-title, summary)::before { + position: absolute; + top: 0.625em; + inset-inline-start: 1.2rem; + width: 1.4rem; + height: 1.4rem; + background-color: #448aff; + mask-image: url('data:image/svg+xml;charset=utf-8,'); + -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + content: ""; +} + +:is(.admonition):is(.note) { + border-color: #448aff; +} + +:is(.note) > :is(.admonition-title, summary) { + background-color: rgba(68, 138, 255, 0.1); + border-color: #448aff; +} +:is(.note) > :is(.admonition-title, summary)::before { + background-color: #448aff; + mask-image: var(--md-admonition-icon--note); + -webkit-mask-image: var(--md-admonition-icon--note); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.abstract, .summary, .tldr) { + border-color: #00b0ff; +} + +:is(.abstract, .summary, .tldr) > :is(.admonition-title, summary) { + background-color: rgba(0, 176, 255, 0.1); + border-color: #00b0ff; +} +:is(.abstract, .summary, .tldr) > :is(.admonition-title, summary)::before { + background-color: #00b0ff; + mask-image: var(--md-admonition-icon--abstract); + -webkit-mask-image: var(--md-admonition-icon--abstract); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.info, .todo) { + border-color: #00b8d4; +} + +:is(.info, .todo) > :is(.admonition-title, summary) { + background-color: rgba(0, 184, 212, 0.1); + border-color: #00b8d4; +} +:is(.info, .todo) > :is(.admonition-title, summary)::before { + background-color: #00b8d4; + mask-image: var(--md-admonition-icon--info); + -webkit-mask-image: var(--md-admonition-icon--info); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.tip, .hint, .important) { + border-color: #00bfa5; +} + +:is(.tip, .hint, .important) > :is(.admonition-title, summary) { + background-color: rgba(0, 191, 165, 0.1); + border-color: #00bfa5; +} +:is(.tip, .hint, .important) > :is(.admonition-title, summary)::before { + background-color: #00bfa5; + mask-image: var(--md-admonition-icon--tip); + -webkit-mask-image: var(--md-admonition-icon--tip); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.success, .check, .done) { + border-color: #00c853; +} + +:is(.success, .check, .done) > :is(.admonition-title, summary) { + background-color: rgba(0, 200, 83, 0.1); + border-color: #00c853; +} +:is(.success, .check, .done) > :is(.admonition-title, summary)::before { + background-color: #00c853; + mask-image: var(--md-admonition-icon--success); + -webkit-mask-image: var(--md-admonition-icon--success); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.question, .help, .faq) { + border-color: #64dd17; +} + +:is(.question, .help, .faq) > :is(.admonition-title, summary) { + background-color: rgba(100, 221, 23, 0.1); + border-color: #64dd17; +} +:is(.question, .help, .faq) > :is(.admonition-title, summary)::before { + background-color: #64dd17; + mask-image: var(--md-admonition-icon--question); + -webkit-mask-image: var(--md-admonition-icon--question); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.warning, .caution, .attention) { + border-color: #ff9100; +} + +:is(.warning, .caution, .attention) > :is(.admonition-title, summary) { + background-color: rgba(255, 145, 0, 0.1); + border-color: #ff9100; +} +:is(.warning, .caution, .attention) > :is(.admonition-title, summary)::before { + background-color: #ff9100; + mask-image: var(--md-admonition-icon--warning); + -webkit-mask-image: var(--md-admonition-icon--warning); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.failure, .fail, .missing) { + border-color: #ff5252; +} + +:is(.failure, .fail, .missing) > :is(.admonition-title, summary) { + background-color: rgba(255, 82, 82, 0.1); + border-color: #ff5252; +} +:is(.failure, .fail, .missing) > :is(.admonition-title, summary)::before { + background-color: #ff5252; + mask-image: var(--md-admonition-icon--failure); + -webkit-mask-image: var(--md-admonition-icon--failure); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.danger, .error) { + border-color: #ff1744; +} + +:is(.danger, .error) > :is(.admonition-title, summary) { + background-color: rgba(255, 23, 68, 0.1); + border-color: #ff1744; +} +:is(.danger, .error) > :is(.admonition-title, summary)::before { + background-color: #ff1744; + mask-image: var(--md-admonition-icon--danger); + -webkit-mask-image: var(--md-admonition-icon--danger); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.bug) { + border-color: #f50057; +} + +:is(.bug) > :is(.admonition-title, summary) { + background-color: rgba(245, 0, 87, 0.1); + border-color: #f50057; +} +:is(.bug) > :is(.admonition-title, summary)::before { + background-color: #f50057; + mask-image: var(--md-admonition-icon--bug); + -webkit-mask-image: var(--md-admonition-icon--bug); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.example) { + border-color: #7c4dff; +} + +:is(.example) > :is(.admonition-title, summary) { + background-color: rgba(124, 77, 255, 0.1); + border-color: #7c4dff; +} +:is(.example) > :is(.admonition-title, summary)::before { + background-color: #7c4dff; + mask-image: var(--md-admonition-icon--example); + -webkit-mask-image: var(--md-admonition-icon--example); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +:is(.admonition):is(.quote, .cite) { + border-color: #9e9e9e; +} + +:is(.quote, .cite) > :is(.admonition-title, summary) { + background-color: rgba(158, 158, 158, 0.1); + border-color: #9e9e9e; +} +:is(.quote, .cite) > :is(.admonition-title, summary)::before { + background-color: #9e9e9e; + mask-image: var(--md-admonition-icon--quote); + -webkit-mask-image: var(--md-admonition-icon--quote); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +.navy :is(.admonition) { + background-color: var(--sidebar-bg); +} + +.ayu :is(.admonition), +.coal :is(.admonition) { + background-color: var(--theme-hover); +} + +.rust :is(.admonition) { + background-color: var(--sidebar-bg); + color: var(--sidebar-fg); +} + +:is(.admonition-title) { + font-feature-settings: "kern", "liga"; + font-weight: 600; + font-size: 0.84rem; + border: none; + padding: 10px 50px; +} + +:is(summary)::after { + position: absolute; + top: 0.625em; + width: 1.4rem; + height: 1.4rem; + mask-image: url('data:image/svg+xml;charset=utf-8,'); + -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + content: ""; +} + +:is(summary)::after { + background-color: black; + mask-image: var(--md-details-icon); + -webkit-mask-image: var(--md-details-icon); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + position: absolute; + transform: rotate(-90deg); + transition: transform 0.25s; + right: 0.4rem; +} + +details[open] > summary::after { + transform: rotate(0deg); +} diff --git a/css/code.css b/css/code.css new file mode 100644 index 0000000..7d95a8e --- /dev/null +++ b/css/code.css @@ -0,0 +1,90 @@ +code.language-html, +code.language-css, +code.language-md, +code.language-cmd, +code.language-bash, +code.language-text, +code.language-js, +span.o, +span.nx { + color: rgb(255, 255, 255); + line-height: 1.4; +} +span.c { + color: hsl(120, 100%, 20%); +} + +span.p, +span.s1, +span.s2, +span.nt { + color: hsl(40, 100%, 30%); +} + +span.gs, +span.gh, +span.ge { + color: hsl(208, 100%, 50%); +} + +span.gs { + font-weight: bold; +} + +span.ge { + font-style: italic; +} + +pre, +code { + @apply font-mono; +} + +code { + background-color: hsl(0, 0%, 98%); + border-radius: 3px; + color: hsl(120, 100%, 20%); + font-size: 85%; +} + +pre { + margin: 0; + margin: 0; + padding: 1rem; + overflow: scroll; +} + +pre code { + background-color: transparent; + color: inherit; + font-size: 100%; + padding: 0; +} + +.highlight { + background-color: transparent; + border-radius: 3px; + margin: 0 0 0.5rem; + padding: 0; + + & pre { + margin-bottom: 0; + overflow-x: auto; + } + + & .lineno { + color: hsla(0, 0%, 67%, 0.72); + display: inline-block; /* Ensures the null space also isn't selectable */ + padding: 0 0.75rem 0 0.25rem; + /* Make sure numbers aren't selectable */ + } +} + +/* TODO: dark theme for future +@media (prefers-color-scheme: dark) { + code { + color: #fff; + background: hsl(200, 63%, 15%); + } +} +*/ diff --git a/css/index.css b/css/index.css new file mode 100644 index 0000000..1819793 --- /dev/null +++ b/css/index.css @@ -0,0 +1,406 @@ +/*! purgecss start ignore */ +@import "code.css"; +/*! purgecss end ignore */ + +@import "tailwindcss/base"; +@import "layout.css"; +@import "tailwindcss/components"; +@import "admonition.css"; +@import "tailwindcss/utilities"; + +@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&family=Montserrat:wght@400;700&display=swap'); +/* Custom CSS for header partial */ +.backdrop-blur { + -webkit-backdrop-filter: blur(40px); +} + +* { + font-family: 'Lato', sans-serif; +} + +.bg-semi-white { + background-color: rgba(255, 255, 255, 0.75); +} + +/* Custom css allowing image styling in markdown */ + + +img[src*="#mx-auto"] { + margin: auto; +} + +img[src*="#small"] { + width: 68px; +} + +img[src*="#sm"] { + width: 200px; +} + +img[src*="#md"] { + width: 300px; +} + +img[src*="#medium"] { + width: 500px; +} + +img[src*="#logo"] { + max-width: min(250px, 100%); + margin: auto; +} + +img[src*="#large"] { + width: min(60vw, 100vh); + margin: auto; +} + +img[src*="#fill"] { + width: 100%; + height: 100%; +} + +img[src*="#tft_img"] { + width: 150px; + margin: 8px; +} + +img[src*="#icon"] { + width: 65px; + margin: 4px; +} + +img[src*="#fig"] { + width: 150px; +} + +.logo_size { + width: 200px; +} + +.advance{ + + font-family: "lato"; +} + +@layer components { + h1 { + @apply text-3xl lg:text-5xl xl:text-7xl font-bold leading-4 my-4; + font-family: "lato", sans-serif; + line-height: 0.9; + + } + h1 strong { + @apply font-medium; + } + h2 { + @apply text-3xl md:text-4xl lg:text-6xl font-bold leading-4 my-4; + font-family: "lato", sans-serif; + line-height: 0.9; + + + } + h2 strong { + @apply font-medium; + } + h3 { + @apply text-xl lg:text-3xl font-normal my-4; + color:#oab7a9; + } + h3 strong { + @apply font-medium; + } + h4 { + @apply text-xl lg:text-2xl font-normal my-4; + color:#oab7a9; + } + h5 { + @apply text-xl lg:text-xl font-normal; + } + h6 { + @apply text-lg not-italic font-normal my-1; + } + p { + @apply text-base lg:text-lg leading-tight tracking-normal font-normal my-0; + font-family: "CercoDEMO", sans-serif; + } + blockquote { + @apply border-l-4 border-gray-400 mx-2 my-2 p-2; + } + li { + @apply text-lg lg:text-xl font-normal my-2; + } + li li { + @apply text-sm lg:text-sm font-light; + } + button { + @apply inline-block + text-base + lg:text-lg + px-8 + py-1 + my-4 + border-2 + shadow + } + + article h2{ + @apply text-xl lg:text-3xl font-medium + } + +article p ,li{ + @apply text-base lg:text-lg +} +} + +a:hover{ + color: #737373; +} + +button:hover { + color: #737373; +} + +button { +font-weight: 500; +} + +.experience-btn { + border: none; + margin: 0; + padding: 0; + color: black; + padding: 20px; + width: fit-content; +} + +.experience-btn p { + @apply text-lg; +} + +.experience-btn:hover { + background: white; +} + + +.experience-btn h4 { + white-space: normal; +} + +header .customize { + background-color: transparent; + position: absolute; +} + +footer .customize { + /* width: 100vw; */ + color: #fff; + background-color: #17b9c8; + display: flex; + flex-direction: column; + align-items: center; + padding-top: 24px; + padding-bottom: 24px; +} + +footer .customize img { + width: 60px; +} + + +header .customize div { + box-shadow: none; + text-transform: uppercase; + font-weight: 700 !important; +} + +button { + background: transparent; + color: black; + border-radius: 4px; + border: 2px solid black; + box-shadow: none; + /* font-size: 18px; */ +} + +a { + border: none; +} + +header { + font-family: "Work Sans"; +} + +.nav_btn { + margin: 0 !important; + padding: 0 !important; + border: none !important; + box-shadow: none !important; +} + +.quicklinks { + box-sizing: border-box; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: auto; + display: inline-block; + margin: 0 auto; + border-radius: 10px; + margin-top: 30px; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-bottom: 20px; +} +.quicklinks img { + height: auto; + max-width: 200px; + display: inline-block; + padding: 10px; + -webkit-filter: grayscale(100%); + filter: grayscale(100%); + position: relative; + margin-right: 30px; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + opacity: 0.5; +} + +.quicklinks img:hover { + opacity: 1; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-filter: grayscale(0%); + filter: grayscale(0%); +} + +.banner { + width: 100%; + margin: 0; + padding: 120px 0; + text-align: center; + position: relative; + display: block; + color: #fff !important; + letter-spacing: 0.5px; + overflow: hidden; + background: #00838d; + transition: 1.5s; +} + +.header { + height: auto; + background: none; + padding: 200px 0; +} + +.banner h2, +.header h1 { + margin: auto; + color: #fff; + position: relative; + transition: 0.3s; + z-index: 1; + white-space: nowrap; +} + +.header h1 { + color: #000; + transition: none; +} + +.banner h2 svg { + font-size: 40px; + margin-left: 15px; + position: absolute; + top: 55%; + transform: translateY(-50%) scale(0.5); + opacity: 0; + transition: 0.3s; +} + +.banner .back { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-position: center; + background-size: cover; + filter: grayscale(1) contrast(1.4); + opacity: 0.25; + transition: 1.5s; +} + +.header .back { + filter: none; + opacity: 1; + background-position: center; + + background-size: cover; + background-repeat: no-repeat; +} + +.banner:hover { + background: #4b3a92; +} + +.header:hover { + background: none; +} + +.banner:hover h2 svg { + transform: translateY(-50%) scale(1); + opacity: 1; +} + +.banner:hover h2 { + padding-right: 40px; +} + +.header:hover h1 { + padding-right: 0; +} + +.banner:hover .back { + transform: scale(1.03); +} + +.header:hover .back { + transform: none; +} + +@media (max-width: 768px) { + /* h2 { + font-size: 4rem; + } */ +} +@media (max-width: 640px) { + .banner h2 { + font: 600 7vw/10vw; + } + + .header h1 { + font-size: 35px; + } + + .banner h2 svg { + font-size: 30px; + } +} + +@media (max-width: 480px) { + .banner, + .header { + padding: 80px 0; + } + + footer { + text-align: center; + } + /* h2 { + font-size: 3rem; + } */ +} diff --git a/css/layout.css b/css/layout.css new file mode 100644 index 0000000..e1ef0cb --- /dev/null +++ b/css/layout.css @@ -0,0 +1,472 @@ +main { + @apply pt-0; +} + +#text-1xl { @apply text-xl } +#text-2xl { @apply text-2xl } +#text-3xl { @apply text-3xl } +#text-4xl { @apply text-4xl } +#text-5xl { @apply text-5xl } +#text-6xl { @apply xl:text-6xl lg:text-5xl md:text-4xl sm:text-3xl} +#text-7xl { @apply text-7xl } +#text-8xl { @apply text-8xl } +#text-9xl { + font-size: 8rem; +} + +#xp-heading { @apply m-0 } +/* +html, body { + @apply dark:bg-black; + +body { + @apply font-serif dark:text-gray-200; +} +*/ + +p { + /* for handling Markdown-created

    and

  • */ + @apply text-lg; +} + +pre, +code { + font-feature-settings: normal; +} + +.navWhite, +.navWhite:visited { + @apply text-white; +} + +.navWhite:focus, +.navWhite:active { + @apply text-gray-400; +} + +.text-blue-light { + @apply text-blue-500; +} + +.text-blue-dark { + /* for dark mode + @apply text-blue-200; + */ +} + +.text-shadow-titles { + text-shadow: 4px 4px 2px #000; +} + +.gradient-titles { + @apply bg-gradient-to-b from-blue-700 to-black; +} + +.ctr { + @apply text-center; +} + +.legal { + @apply text-xs; +} + +nav h4 a:hover { + @apply border-0 text-blue-300 font-light; +} +nav h4 a, +nav h4 a:focus, +nav h4 a:active { + @apply border-0 text-black font-light; +} + +a h2 { + @apply text-black; +} + +a:focus, +a:hover { + @apply border-none text-blue-300; +} +a:active { + @apply text-blue-800 border-blue-500; +} + +h5 a { + @apply text-gray-900 font-normal; +} + +/* +a:hover { + @apply dark:text-blue-300; +} +*/ + +sup a, +a.previous, +a.next, +.footnote-return { + @apply border-b-0; +} + +#nav-toggle:checked + #navMenu { + @apply block; +} + +a.navborderless { + @apply border-b-0; +} +/* +.dateInfo { + @apply text-gray-700 dark:text-gray-400; +} +*/ + +h1, +.h1, +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { +} + +h1, +.h1 { + @apply text-4xl font-extrabold; +} + +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { + @apply font-bold; +} + +h2, +.h2 { + @apply text-4xl; +} + +h4, +.h4 { + @apply text-2xl; +} + +h5 { + @apply not-italic; +} + +h5, +.h5, +h6, +.h6 { + @apply text-lg; +} + +.height-hero { + height: 45vh; + max-height: 45vh; + overflow: hidden; +} + +.height-post { + height: 35vh; + max-height: 35vh; +} + +.imgCover { + @apply object-cover object-center h-full w-full; +} + +.background-hero-image-div { + @apply relative overflow-hidden w-full bg-black; + /* Have to allow for mobile browsers' own "chrome"; can't go by Inspector simulations of smaller breakpoints */ + height: 80vh; + max-height: 80vh; +} + +.background-hero-title-block-fit { + @apply block w-full absolute bottom-0 px-4 pt-3 pb-6 bg-gradient-to-t from-black; +} + +.background-hero-title-text { + text-shadow: 4px 4px 2px #000; +} + +@media screen and (min-width: 768px) { + .background-hero-title-block-fit { + @apply px-12; + } + + .background-hero-image-div { + height: 85vh; + max-height: 85vh; + } +} + +@media screen and (min-width: 1024px) { + .background-hero-title-block-fit { + @apply px-16; + } + + .background-hero-image-div { + height: 95vh; + max-height: 95vh; + } +} + +.text-nowrap, +.text-nobrk { + @apply whitespace-nowrap; +} + +article h1, +article h2, +article h3, +article h4 { + @apply tracking-tight mt-8 mb-6; +} + +article p { + @apply text-lg leading-relaxed; +} + +article img.containedImage { + min-width: 100%; + max-width: 100%; + @apply w-full h-auto; +} + +@media screen and (min-width: 768px) { + .height-hero { + height: 70vh; + max-height: 70vh; + } + + .height-post { + height: 40vh; + max-height: 40vh; + } +} + +@media screen and (min-width: 768px) { + article p { + @apply text-xl leading-relaxed; + } +} + +@media screen and (min-width: 1920px) { + article p { + @apply text-2xl leading-relaxed; + } +} +/* +.yellowBox { + @apply font-sans bg-yellow-200 border border-gray-900 border-solid mx-auto my-2 w-full px-6 py-2 dark:bg-gray-800 dark:border-gray-500; +} +*/ + +.yellowbox p { + @apply w-full p-2 m-0; +} + +ul, +ol { + @apply pl-8; +} + +ul { + @apply list-disc; +} + +ol { + @apply list-decimal; +} + +.twitter-tweet { + @apply mt-4 mx-auto mb-0; +} + +table.leagues { + @apply w-11/12 mt-4 mx-auto mb-0 border-0 border-collapse; +} + +table.leagues td.col { + @apply w-1/2; +} + +@media (min-width: 900px) { + table.leagues { + @apply w-3/5; + } + table.noborders { + @apply w-11/12; + } +} + +table.noborders { + @apply w-full border-0 border-collapse mt-6 mx-auto mb-4; +} + +table.noborders td { + @apply text-gray-800 text-left align-middle py-1 pr-0 pl-2; + /* text-align: left !important; */ +} + +table.noborders td img { + @apply inline-block align-middle m-0; +} + +table.noborders tr { + @apply bg-blue-100; +} + +table.noborders tr:nth-child(even) { + @apply bg-gray-200; +} + +table.noborders thead tr { + @apply bg-blue-700; +} + +table.noborders thead td { + @apply text-white font-bold; +} + +table.noborders td.td70 { + width: 70%; +} +table.noborders td.td70 img { + @apply block w-1/2 h-auto; + max-width: 50%; +} + +table.noborders td.td30 { + width: 30%; +} +/* +blockquote { + @apply px-6 text-gray-700 dark:text-gray-400; +} +*/ + +/* start, footnotes */ + +.footnote-definition, +.footnote-reference { + @apply font-sans; +} + +.footnote-reference { + font-size: 0.65em; + top: -0.5em; +} + +.footnote-sim { + font-size: 0.65em; + color: #0000ff; + @media (prefers-color-scheme: dark) { + color: #00aaff; + } +} + +.footnotes { + & ol { + padding-inline-start: 1.5rem; + } + & ol li { + margin-bottom: 0.5rem; + font-size: $pokey; + } + & li p { + font-size: 100%; + line-height: 1.4; + } + & .footnote-backref { + font-size: 75%; + } +} + +a.footnote-return { + font-size: 50%; +} + +article > .footnote-definition { + border-top: 1px solid black; + padding-top: 1em; + margin-top: 1em; +} + +article > .footnote-definition ~ .footnote-definition { + border-top: 0; + padding-top: 0; + margin-top: 0; +} + +.footnote-definition-label { + top: -0.4em; + font-size: 0.65em; +} + +.footnote-definition-label + p { + font-size: 75%; + margin-top: -1.75em; + margin-left: 1em; + line-height: 1.35; +} + +.footnote-definition-label::after { + content: "."; +} + +/* == end, footnotes */ + +.aspect-16x9 { + padding-bottom: 56.25%; +} +/* +hr { + @apply border-solid border-gray-900 dark:border-gray-100; +} +*/ + +footer { + @apply font-sans; +} + +.lazypicturecaption { + @apply text-sm p-0 mt-2 leading-snug text-center; +} + +.home-colOne p { + @apply leading-8 mb-4; +} + +.home-colOne img { + @apply my-4; +} + +.container-comments { + margin: 0 auto; + font-size: 85%; + width: 85%; + max-width: 720px !important; + margin-bottom: 0; +} + +@media screen and (min-width: 900px) { + .container-comments { + width: 40%; + } +} diff --git a/install.sh b/install.sh old mode 100644 new mode 100755 index 2cfcdf0..0a94bea --- a/install.sh +++ b/install.sh @@ -1,16 +1,29 @@ #!/usr/bin/env bash set -e -mkdir -p ~/.vmodules/freeflowuniverse -mkdir -p ~/code/github/freeflowuniverse -pushd ~/code/github/freeflowuniverse -git clone https://github.com/freeflowuniverse/crystallib.git +GITEA_INSTANCE_URL="https://git.ourworld.tf" +GITEA_USERNAME="threefold_coop" + +mkdir -p ~/.vmodules/freeflowuniverse +mkdir -p ~/code/gitea/$GITEA_USERNAME + +pushd ~/code/gitea/$GITEA_USERNAME + +# Clone crystallib repository from Gitea +git clone $GITEA_INSTANCE_URL/$GITEA_USERNAME/crystallib.git pushd crystallib git checkout development_db popd -ln -s ~/code/github/freeflowuniverse/crystallib/crystallib ~/.vmodules/freeflowuniverse/crystallib -git clone https://github.com/freeflowuniverse/webcomponents.git -ln -s ~/code/github/freeflowuniverse/webcomponents/webcomponents ~/.vmodules/freeflowuniverse/webcomponents +# Create symbolic link to crystallib in ~/.vmodules/freeflowuniverse +ln -s ~/code/gitea/$GITEA_USERNAME/crystallib/crystallib ~/.vmodules/freeflowuniverse/crystallib + +# Clone webcomponents repository from Gitea +git clone $GITEA_INSTANCE_URL/$GITEA_USERNAME/webcomponents.git + +# Create symbolic link to webcomponents in ~/.vmodules/freeflowuniverse +ln -s ~/code/gitea/$GITEA_USERNAME/webcomponents/webcomponents ~/.vmodules/freeflowuniverse/webcomponents + popd -echo "INSTALL OK" \ No newline at end of file + +echo "INSTALL OK" diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..f724bed --- /dev/null +++ b/run.sh @@ -0,0 +1,3 @@ +set -ex +cd ~/code/git.ourworld.tf/drc/www_flowers4peace +v -enable-globals -cg -w run.vsh \ No newline at end of file diff --git a/run.vsh b/run.vsh old mode 100644 new mode 100755 diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..ac927fd --- /dev/null +++ b/start.sh @@ -0,0 +1,25 @@ +# builds if executable isn't foound +if [[ ! -f "tailwindcss" ]] +then + sh build.sh +fi + +# initialized and configures tailwind if not configured +if [[ ! -f "tailwind.config.js" ]] +then + ./tailwindcss init + sed -i '' "s| content: \\[\\],| content: \\['./templates/**/*.html'\\],|g" tailwind.config.js +fi + +# compiles tailwind css & launches locally +rm -rf public static/css +./tailwindcss -i css/index.css -o ./static/css/index.css --watch & zola serve & + +# compiles tailwind css for prod & builds project +./tailwindcss -i css/index.css -o ./static/css/index.css --minify +zola build + +# kills zola and tw bg processes on interrupt +trap 'kill $(jobs -p); exit 1' INT +wait + diff --git a/static/css/index.css b/static/css/index.css new file mode 100644 index 0000000..13275b9 --- /dev/null +++ b/static/css/index.css @@ -0,0 +1,4 @@ +@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&family=Montserrat:wght@400;700&display=swap"); +/*! purgecss start ignore */code.language-bash,code.language-cmd,code.language-css,code.language-html,code.language-js,code.language-md,code.language-text,span.nx,span.o{color:#fff;line-height:1.4}span.c{color:#060}span.nt,span.p,span.s1,span.s2{color:#960}span.ge,span.gh,span.gs{color:#08f}span.gs{font-weight:700}span.ge{font-style:italic}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}code{background-color:#fafafa;border-radius:3px;color:#060;font-size:85%}pre{margin:0;overflow:scroll;padding:1rem}pre code{color:inherit;font-size:100%}.highlight,pre code{background-color:initial;padding:0}.highlight{border-radius:3px;margin:0 0 .5rem;& pre{margin-bottom:0;overflow-x:auto}& .lineno{color:#abababb8;display:inline-block;padding:0 .75rem 0 .25rem}} +/*! purgecss end ignore */ +/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }main{padding-top:0}#text-1xl{font-size:1.25rem;line-height:1.75rem}#text-2xl{font-size:1.5rem;line-height:2rem}#text-3xl{font-size:1.875rem;line-height:2.25rem}#text-4xl{font-size:2.25rem;line-height:2.5rem}#text-5xl{font-size:3rem;line-height:1}@media (min-width:640px){#text-6xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:768px){#text-6xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width:1024px){#text-6xl{font-size:3rem;line-height:1}}@media (min-width:1280px){#text-6xl{font-size:3.75rem;line-height:1}}#text-7xl{font-size:4.5rem;line-height:1}#text-8xl{font-size:6rem;line-height:1}#text-9xl{font-size:8rem}#xp-heading{margin:0}p{font-size:1.125rem;line-height:1.75rem}code,pre{font-feature-settings:normal}.navWhite,.navWhite:visited{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.navWhite:active,.navWhite:focus{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-blue-light{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-shadow-titles{text-shadow:4px 4px 2px #000}.gradient-titles{--tw-gradient-from:#1d4ed8 var(--tw-gradient-from-position);--tw-gradient-to:#1d4ed800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:#000 var(--tw-gradient-to-position);background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.ctr{text-align:center}.legal{font-size:.75rem;line-height:1rem}nav h4 a:hover{color:rgb(147 197 253/var(--tw-text-opacity))}nav h4 a,nav h4 a:active,nav h4 a:focus,nav h4 a:hover{--tw-text-opacity:1;border-width:0;font-weight:300}a h2,nav h4 a,nav h4 a:active,nav h4 a:focus{color:rgb(0 0 0/var(--tw-text-opacity))}a h2,a:focus,a:hover{--tw-text-opacity:1}a:focus,a:hover{border-style:none;color:rgb(147 197 253/var(--tw-text-opacity))}a:active{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity));color:rgb(30 64 175/var(--tw-text-opacity))}h5 a{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity));font-weight:400}.footnote-return,a.next,a.previous,sup a{border-bottom-width:0}#nav-toggle:checked+#navMenu{display:block}a.navborderless{border-bottom-width:0}.h1,h1{font-size:2.25rem;font-weight:800;line-height:2.5rem}.h2,.h3,.h4,.h5,.h6,h2,h3,h4,h5,h6{font-weight:700}.h2,h2{font-size:2.25rem;line-height:2.5rem}.h4,h4{font-size:1.5rem;line-height:2rem}h5{font-style:normal}.h5,.h6,h5,h6{font-size:1.125rem;line-height:1.75rem}.height-hero{height:45vh;max-height:45vh;overflow:hidden}.height-post{height:35vh;max-height:35vh}.imgCover{height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%}.background-hero-image-div{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));height:80vh;max-height:80vh;overflow:hidden;position:relative;width:100%}.background-hero-title-block-fit{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);background-image:linear-gradient(to top,var(--tw-gradient-stops));bottom:0;display:block;padding:.75rem 1rem 1.5rem;position:absolute;width:100%}.background-hero-title-text{text-shadow:4px 4px 2px #000}@media screen and (min-width:768px){.background-hero-title-block-fit{padding-left:3rem;padding-right:3rem}.background-hero-image-div{height:85vh;max-height:85vh}}@media screen and (min-width:1024px){.background-hero-title-block-fit{padding-left:4rem;padding-right:4rem}.background-hero-image-div{height:95vh;max-height:95vh}}.text-nobrk,.text-nowrap{white-space:nowrap}article h1,article h2,article h3,article h4{letter-spacing:-.025em;margin-bottom:1.5rem;margin-top:2rem}article p{font-size:1.125rem;line-height:1.75rem;line-height:1.625}article img.containedImage{height:auto;max-width:100%;min-width:100%;width:100%}@media screen and (min-width:768px){.height-hero{height:70vh;max-height:70vh}.height-post{height:40vh;max-height:40vh}article p{font-size:1.25rem;line-height:1.75rem;line-height:1.625}}@media screen and (min-width:1920px){article p{font-size:1.5rem;line-height:2rem;line-height:1.625}}.yellowbox p{margin:0;padding:.5rem;width:100%}ol,ul{padding-left:2rem}ul{list-style-type:disc}ol{list-style-type:decimal}.twitter-tweet,table.leagues{margin:1rem auto 0}table.leagues{border-collapse:collapse;border-width:0;width:91.666667%}table.leagues td.col{width:50%}@media (min-width:900px){table.leagues{width:60%}table.noborders{width:91.666667%}}table.noborders{border-collapse:collapse;border-width:0;margin:1.5rem auto 1rem;width:100%}table.noborders td{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity));padding:.25rem 0 .25rem .5rem;text-align:left;vertical-align:middle}table.noborders td img{display:inline-block;margin:0;vertical-align:middle}table.noborders tr{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}table.noborders tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}table.noborders thead tr{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity))}table.noborders thead td{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-weight:700}table.noborders td.td70{width:70%}table.noborders td.td70 img{display:block;height:auto;max-width:50%;width:50%}table.noborders td.td30{width:30%}.footnote-definition,.footnote-reference{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.footnote-reference{font-size:.65em;top:-.5em}.footnote-sim{color:#00f;font-size:.65em;@media (prefers-color-scheme:dark){color:#0af}}.footnotes{& ol{padding-inline-start:1.5rem}& ol li{font-size:$pokey;margin-bottom:.5rem}& li p{font-size:100%;line-height:1.4}& .footnote-backref{font-size:75%}}a.footnote-return{font-size:50%}article>.footnote-definition{border-top:1px solid #000;margin-top:1em;padding-top:1em}article>.footnote-definition~.footnote-definition{border-top:0;margin-top:0;padding-top:0}.footnote-definition-label{font-size:.65em;top:-.4em}.footnote-definition-label+p{font-size:75%;line-height:1.35;margin-left:1em;margin-top:-1.75em}.footnote-definition-label:after{content:"."}.aspect-16x9{padding-bottom:56.25%}footer{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lazypicturecaption{font-size:.875rem;line-height:1.25rem;line-height:1.375;margin-top:.5rem;padding:0;text-align:center}.home-colOne p{line-height:2rem;margin-bottom:1rem}.home-colOne img{margin-bottom:1rem;margin-top:1rem}.container-comments{font-size:85%;margin:0 auto;max-width:720px!important;width:85%}@media screen and (min-width:900px){.container-comments{width:40%}}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}h1{font-size:1.875rem;font-weight:700;line-height:1rem;margin-bottom:1rem;margin-top:1rem}@media (min-width:1024px){h1{font-size:3rem;line-height:1}}@media (min-width:1280px){h1{font-size:4.5rem;line-height:1}}h1{font-family:lato,sans-serif;line-height:.9}h1 strong{font-weight:500}h2{font-size:1.875rem;font-weight:700;line-height:1rem;margin-bottom:1rem;margin-top:1rem}@media (min-width:768px){h2{font-size:2.25rem;line-height:2.5rem}}@media (min-width:1024px){h2{font-size:3.75rem;line-height:1}}h2{font-family:lato,sans-serif;line-height:.9}h2 strong{font-weight:500}h3{font-size:1.25rem;font-weight:400;line-height:1.75rem;margin-bottom:1rem;margin-top:1rem}@media (min-width:1024px){h3{font-size:1.875rem;line-height:2.25rem}}h3{color:#oab7a9}h3 strong{font-weight:500}h4{font-size:1.25rem;font-weight:400;line-height:1.75rem;margin-bottom:1rem;margin-top:1rem}@media (min-width:1024px){h4{font-size:1.5rem;line-height:2rem}}h4{color:#oab7a9}h5{font-size:1.25rem;font-weight:400;line-height:1.75rem}@media (min-width:1024px){h5{font-size:1.25rem;line-height:1.75rem}}h6{font-size:1.125rem;font-style:normal;font-weight:400;line-height:1.75rem;margin-bottom:.25rem;margin-top:.25rem}p{font-size:1rem;font-weight:400;letter-spacing:0;line-height:1.5rem;line-height:1.25;margin-bottom:0;margin-top:0}@media (min-width:1024px){p{font-size:1.125rem;line-height:1.75rem}}p{font-family:CercoDEMO,sans-serif}blockquote{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity));border-left-width:4px;margin:.5rem;padding:.5rem}li{font-size:1.125rem;font-weight:400;line-height:1.75rem;margin-bottom:.5rem;margin-top:.5rem}@media (min-width:1024px){li{font-size:1.25rem;line-height:1.75rem}}li li{font-size:.875rem;font-weight:300;line-height:1.25rem}@media (min-width:1024px){li li{font-size:.875rem;line-height:1.25rem}}button{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);border-width:2px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:inline-block;font-size:1rem;line-height:1.5rem;margin-bottom:1rem;margin-top:1rem;padding:.25rem 2rem}@media (min-width:1024px){button{font-size:1.125rem;line-height:1.75rem}}article h2{font-size:1.25rem;font-weight:500;line-height:1.75rem}@media (min-width:1024px){article h2{font-size:1.875rem;line-height:2.25rem}}article p,li{font-size:1rem;line-height:1.5rem}@media (min-width:1024px){article p,li{font-size:1.125rem;line-height:1.75rem}}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,');--md-details-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z'/%3E%3C/svg%3E")}:is(.admonition){background-color:var(--bg);border:0 solid #000;border-inline-start-width:.4rem;border-radius:.2rem;box-shadow:0 .2rem 1rem #0000000d,0 0 .1rem #0000001a;color:var(--fg);display:flow-root;margin:1.5625em 0;padding:0 1.2rem;page-break-inside:avoid}.admonition p{display:block;font-size:.8rem;margin-block-end:1em;margin-block-start:1em;margin-inline-end:0;margin-inline-start:0}@media print{:is(.admonition){box-shadow:none}}:is(.admonition)>*{box-sizing:border-box}:is(.admonition) :is(.admonition){margin-bottom:1em;margin-top:1em}:is(.admonition)>.tabbed-set:only-child{margin-top:0}html :is(.admonition)>:last-child{margin-bottom:1.2rem}:is(.admonition-title,summary){background-color:#448aff1a;border:0 solid #448aff;border-inline-start-width:.4rem;border-start-start-radius:.2rem;display:flex;font-weight:700;margin-block:0;margin-inline:-1.6rem -1.2rem;padding-block:.8rem;padding-inline:4rem 1.2rem;position:relative}:is(.admonition-title,summary)>p{margin:0}html :is(.admonition-title,summary):last-child{margin-bottom:0}:is(.admonition-title,summary):before{background-color:#448aff;content:"";height:1.4rem;inset-inline-start:1.2rem;mask-image:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:contain;-webkit-mask-size:contain;position:absolute;top:.625em;width:1.4rem}:is(.admonition):is(.note){border-color:#448aff}:is(.note)>:is(.admonition-title,summary){background-color:#448aff1a;border-color:#448aff}:is(.note)>:is(.admonition-title,summary):before{background-color:#448aff;mask-image:var(--md-admonition-icon--note);-webkit-mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.abstract,.summary,.tldr){border-color:#00b0ff}:is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){background-color:#00b0ff1a;border-color:#00b0ff}:is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract);-webkit-mask-image:var(--md-admonition-icon--abstract);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.info,.todo){border-color:#00b8d4}:is(.info,.todo)>:is(.admonition-title,summary){background-color:#00b8d41a;border-color:#00b8d4}:is(.info,.todo)>:is(.admonition-title,summary):before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info);-webkit-mask-image:var(--md-admonition-icon--info);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.tip,.hint,.important){border-color:#00bfa5}:is(.tip,.hint,.important)>:is(.admonition-title,summary){background-color:#00bfa51a;border-color:#00bfa5}:is(.tip,.hint,.important)>:is(.admonition-title,summary):before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip);-webkit-mask-image:var(--md-admonition-icon--tip);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.success,.check,.done){border-color:#00c853}:is(.success,.check,.done)>:is(.admonition-title,summary){background-color:#00c8531a;border-color:#00c853}:is(.success,.check,.done)>:is(.admonition-title,summary):before{background-color:#00c853;mask-image:var(--md-admonition-icon--success);-webkit-mask-image:var(--md-admonition-icon--success);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.question,.help,.faq){border-color:#64dd17}:is(.question,.help,.faq)>:is(.admonition-title,summary){background-color:#64dd171a;border-color:#64dd17}:is(.question,.help,.faq)>:is(.admonition-title,summary):before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question);-webkit-mask-image:var(--md-admonition-icon--question);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.warning,.caution,.attention){border-color:#ff9100}:is(.warning,.caution,.attention)>:is(.admonition-title,summary){background-color:#ff91001a;border-color:#ff9100}:is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning);-webkit-mask-image:var(--md-admonition-icon--warning);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.failure,.fail,.missing){border-color:#ff5252}:is(.failure,.fail,.missing)>:is(.admonition-title,summary){background-color:#ff52521a;border-color:#ff5252}:is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure);-webkit-mask-image:var(--md-admonition-icon--failure);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.danger,.error){border-color:#ff1744}:is(.danger,.error)>:is(.admonition-title,summary){background-color:#ff17441a;border-color:#ff1744}:is(.danger,.error)>:is(.admonition-title,summary):before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger);-webkit-mask-image:var(--md-admonition-icon--danger);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.bug){border-color:#f50057}:is(.bug)>:is(.admonition-title,summary){background-color:#f500571a;border-color:#f50057}:is(.bug)>:is(.admonition-title,summary):before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug);-webkit-mask-image:var(--md-admonition-icon--bug);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.example){border-color:#7c4dff}:is(.example)>:is(.admonition-title,summary){background-color:#7c4dff1a;border-color:#7c4dff}:is(.example)>:is(.admonition-title,summary):before{background-color:#7c4dff;mask-image:var(--md-admonition-icon--example);-webkit-mask-image:var(--md-admonition-icon--example);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:is(.admonition):is(.quote,.cite){border-color:#9e9e9e}:is(.quote,.cite)>:is(.admonition-title,summary){background-color:#9e9e9e1a;border-color:#9e9e9e}:is(.quote,.cite)>:is(.admonition-title,summary):before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote);-webkit-mask-image:var(--md-admonition-icon--quote);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.navy :is(.admonition){background-color:var(--sidebar-bg)}.ayu :is(.admonition),.coal :is(.admonition){background-color:var(--theme-hover)}.rust :is(.admonition){background-color:var(--sidebar-bg);color:var(--sidebar-fg)}:is(.admonition-title){font-feature-settings:"kern","liga";border:none;font-size:.84rem;font-weight:600;padding:10px 50px}:is(summary):after{background-color:#000;content:"";height:1.4rem;mask-image:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-image:var(--md-details-icon);-webkit-mask-image:var(--md-details-icon);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:.4rem;top:.625em;transform:rotate(-90deg);transition:transform .25s;width:1.4rem}details[open]>summary:after{transform:rotate(0deg)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.left-0{left:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.order-first{order:-9999}.order-last{order:9999}.col-span-3{grid-column:span 3/span 3}.m-0{margin:0}.m-2{margin:.5rem}.-mx-8{margin-left:-2rem;margin-right:-2rem}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-20{margin-left:5rem;margin-right:5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-8{margin-bottom:2rem;margin-top:2rem}.-ml-1{margin-left:-.25rem}.-mr-2{margin-right:-.5rem}.-mt-16{margin-top:-4rem}.-mt-24{margin-top:-6rem}.-mt-6{margin-top:-1.5rem}.mb-0{margin-bottom:0}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-10{margin-left:2.5rem}.ml-5{margin-left:1.25rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-5{margin-right:1.25rem}.mr-8{margin-right:2rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-3{-webkit-box-orient:vertical;-webkit-line-clamp:3;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1\/3{height:33.333333%}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:20rem}.max-h-screen{max-height:100vh}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1\/12{width:8.333333%}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-2\/6{width:33.333333%}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-4\/6{width:66.666667%}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-7xl{max-width:80rem}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-2xl{max-width:1536px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-top-right{transform-origin:top right}.-translate-y-1{--tw-translate-y:-0.25rem}.-rotate-90,.-translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}.rotate-180{--tw-rotate:180deg}.rotate-180,.scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-95,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-y-2>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(2px*var(--tw-divide-y-reverse));border-top-width:calc(2px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-50>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(249 250 251/var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.\!bg-\[length\:0px_0px\]{background-size:0 0!important}.bg-contain{background-size:contain}.bg-center{background-position:50%}.\!bg-no-repeat{background-repeat:no-repeat!important}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-28{padding-bottom:7rem;padding-top:7rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-0{padding-bottom:0}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-2{padding-bottom:.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-0{padding-left:0}.pl-1{padding-left:.25rem}.pl-12{padding-left:3rem}.pl-20{padding-left:5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.not-italic{font-style:normal}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.ring-indigo-300{--tw-ring-opacity:1;--tw-ring-color:rgb(165 180 252/var(--tw-ring-opacity))}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.backdrop-blur{-webkit-backdrop-filter:blur(40px)}*{font-family:Lato,sans-serif}.bg-semi-white{background-color:#ffffffbf}img[src*="#mx-auto"]{margin:auto}img[src*="#small"]{width:68px}img[src*="#sm"]{width:200px}img[src*="#md"]{width:300px}img[src*="#medium"]{width:500px}img[src*="#logo"]{margin:auto;max-width:min(250px,100%)}img[src*="#large"]{margin:auto;width:min(60vw,100vh)}img[src*="#fill"]{height:100%;width:100%}img[src*="#tft_img"]{margin:8px;width:150px}img[src*="#icon"]{margin:4px;width:65px}img[src*="#fig"]{width:150px}.logo_size{width:200px}.advance{font-family:lato}a:hover,button:hover{color:#737373}button{font-weight:500}.experience-btn{border:none;color:#000;margin:0;padding:20px;width:-moz-fit-content;width:fit-content}.experience-btn p{font-size:1.125rem;line-height:1.75rem}.experience-btn:hover{background:#fff}.experience-btn h4{white-space:normal}header .customize{background-color:initial;position:absolute}footer .customize{align-items:center;background-color:#17b9c8;color:#fff;display:flex;flex-direction:column;padding-bottom:24px;padding-top:24px}footer .customize img{width:60px}header .customize div{box-shadow:none;font-weight:700!important;text-transform:uppercase}button{background:#0000;border:2px solid #000;border-radius:4px;box-shadow:none;color:#000}a{border:none}header{font-family:Work Sans}.nav_btn{border:none!important;box-shadow:none!important;margin:0!important;padding:0!important}.quicklinks{align-items:center;border-radius:10px;box-sizing:border-box;display:inline-block;flex-wrap:wrap;margin:30px auto 20px;width:auto}.quicklinks img{display:inline-block;filter:grayscale(100%);height:auto;margin-right:30px;max-width:200px;opacity:.5;padding:10px;position:relative;transition:all .2s ease}.quicklinks img:hover{filter:grayscale(0);opacity:1;transition:all .2s ease}.banner{background:#00838d;color:#fff!important;display:block;letter-spacing:.5px;margin:0;overflow:hidden;padding:120px 0;position:relative;text-align:center;transition:1.5s;width:100%}.header{background:none;height:auto;padding:200px 0}.banner h2,.header h1{color:#fff;margin:auto;position:relative;transition:.3s;white-space:nowrap;z-index:1}.header h1{color:#000;transition:none}.banner h2 svg{font-size:40px;margin-left:15px;opacity:0;position:absolute;top:55%;transform:translateY(-50%) scale(.5);transition:.3s}.banner .back{filter:grayscale(1) contrast(1.4);height:100%;left:0;opacity:.25;position:absolute;top:0;transition:1.5s;width:100%}.banner .back,.header .back{background-position:50%;background-size:cover}.header .back{background-repeat:no-repeat;filter:none;opacity:1}.banner:hover{background:#4b3a92}.header:hover{background:none}.banner:hover h2 svg{opacity:1;transform:translateY(-50%) scale(1)}.banner:hover h2{padding-right:40px}.header:hover h1{padding-right:0}.banner:hover .back{transform:scale(1.03)}.header:hover .back{transform:none}@media (max-width:640px){.banner h2{font:600 7vw/10vw}.header h1{font-size:35px}.banner h2 svg{font-size:30px}}@media (max-width:480px){.banner,.header{padding:80px 0}footer{text-align:center}}.focus-within\:outline-none:focus-within{outline:2px solid #0000;outline-offset:2px}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-indigo-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity))}.focus-within\:ring-offset-2:focus-within{--tw-ring-offset-width:2px}.hover\:border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.hover\:border-stone-200:hover{--tw-border-opacity:1;border-color:rgb(231 229 228/var(--tw-border-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-indigo-600:hover{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity))}.hover\:bg-stone-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity))}.hover\:\!text-gray-700:hover{--tw-text-opacity:1!important;color:rgb(55 65 81/var(--tw-text-opacity))!important}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.hover\:text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-indigo-100:hover{--tw-text-opacity:1;color:rgb(224 231 255/var(--tw-text-opacity))}.hover\:text-indigo-500:hover{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity))}.hover\:text-indigo-600:hover{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:first\:text-gray-500:first-child:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity))}.focus\:bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.focus\:bg-gray-200:focus{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.focus\:text-gray-500:focus{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.focus\:text-gray-900:focus{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.active\:bg-gray-200:active{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.active\:bg-indigo-700:active{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity))}.active\:bg-indigo-800:active{--tw-bg-opacity:1;background-color:rgb(55 48 163/var(--tw-bg-opacity))}.active\:text-gray-700:active{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.active\:text-indigo-200:active{--tw-text-opacity:1;color:rgb(199 210 254/var(--tw-text-opacity))}.active\:text-indigo-700:active{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark\:bg-transparent{background-color:initial}.dark\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.dark\:hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.dark\:focus\:text-white:focus,.dark\:hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:absolute{position:absolute}.sm\:right-0{right:0}.sm\:order-none{order:0}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:-mx-12{margin-left:-3rem;margin-right:-3rem}.sm\:-mx-4{margin-left:-1rem;margin-right:-1rem}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mx-16{margin-left:4rem;margin-right:4rem}.sm\:mx-20{margin-left:5rem;margin-right:5rem}.sm\:mx-32{margin-left:8rem;margin-right:8rem}.sm\:mx-8{margin-left:2rem;margin-right:2rem}.sm\:mb-0{margin-bottom:0}.sm\:mr-1{margin-right:.25rem}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:h-10{height:2.5rem}.sm\:h-2\/3{height:66.666667%}.sm\:h-40{height:10rem}.sm\:h-auto{height:auto}.sm\:w-1\/2{width:50%}.sm\:w-10{width:2.5rem}.sm\:w-auto{width:auto}.sm\:flex-1{flex:1 1 0%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:content-evenly{align-content:space-evenly}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-0{gap:0}.sm\:gap-10{gap:2.5rem}.sm\:gap-3{gap:.75rem}.sm\:space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.sm\:overflow-hidden{overflow:hidden}.sm\:rounded-md{border-radius:.375rem}.sm\:p-0{padding:0}.sm\:p-12{padding:3rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-8{padding-top:2rem}.sm\:pb-8,.sm\:py-8{padding-bottom:2rem}.sm\:pr-8{padding-right:2rem}.sm\:text-center{text-align:center}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:order-2{order:2}.md\:col-span-2{grid-column:span 2/span 2}.md\:-mx-12{margin-left:-3rem;margin-right:-3rem}.md\:-mx-16{margin-left:-4rem;margin-right:-4rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:mx-12{margin-left:3rem;margin-right:3rem}.md\:mx-16{margin-left:4rem;margin-right:4rem}.md\:mx-20{margin-left:5rem;margin-right:5rem}.md\:mx-28{margin-left:7rem;margin-right:7rem}.md\:mx-4{margin-left:1rem;margin-right:1rem}.md\:mx-40{margin-left:10rem;margin-right:10rem}.md\:mx-8{margin-left:2rem;margin-right:2rem}.md\:-mt-1{margin-top:-.25rem}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:grid{display:grid}.md\:h-14{height:3.5rem}.md\:h-24{height:6rem}.md\:h-6{height:1.5rem}.md\:h-80{height:20rem}.md\:w-1\/6{width:16.666667%}.md\:w-14{width:3.5rem}.md\:w-2\/3{width:66.666667%}.md\:w-2\/6{width:33.333333%}.md\:w-4\/6{width:66.666667%}.md\:w-48{width:12rem}.md\:w-5\/6{width:83.333333%}.md\:w-6{width:1.5rem}.md\:w-auto{width:auto}.md\:w-full{width:100%}.md\:max-w-full{max-width:100%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-12{gap:3rem}.md\:gap-16{gap:4rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:rounded-xl{border-radius:.75rem}.md\:p-8{padding:2rem}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-3{padding-bottom:.75rem;padding-top:.75rem}.md\:py-4{padding-bottom:1rem;padding-top:1rem}.md\:py-8{padding-bottom:2rem;padding-top:2rem}.md\:pl-0{padding-left:0}.md\:pl-2{padding-left:.5rem}.md\:pl-6{padding-left:1.5rem}.md\:pl-8{padding-left:2rem}.md\:pr-0{padding-right:0}.md\:text-left{text-align:left}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:first\:px-8:first-child,.md\:last\:px-8:last-child{padding-left:2rem;padding-right:2rem}}@media (min-width:1024px){.lg\:m-4{margin:1rem}.lg\:-mx-12{margin-left:-3rem;margin-right:-3rem}.lg\:-mx-16{margin-left:-4rem;margin-right:-4rem}.lg\:-mx-20{margin-left:-5rem;margin-right:-5rem}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mx-16{margin-left:4rem;margin-right:4rem}.lg\:mx-20{margin-left:5rem;margin-right:5rem}.lg\:mx-24{margin-left:6rem;margin-right:6rem}.lg\:mx-28{margin-left:7rem;margin-right:7rem}.lg\:mx-4{margin-left:1rem;margin-right:1rem}.lg\:mx-40{margin-left:10rem;margin-right:10rem}.lg\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.lg\:mx-80{margin-left:20rem;margin-right:20rem}.lg\:my-32{margin-bottom:8rem;margin-top:8rem}.lg\:-mt-6{margin-top:-1.5rem}.lg\:mb-0{margin-bottom:0}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-8{margin-left:2rem}.lg\:mr-24{margin-right:6rem}.lg\:mr-8{margin-right:2rem}.lg\:mt-0{margin-top:0}.lg\:mt-10{margin-top:2.5rem}.lg\:mt-12{margin-top:3rem}.lg\:mt-16{margin-top:4rem}.lg\:mt-20{margin-top:5rem}.lg\:mt-6{margin-top:1.5rem}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-auto{height:auto}.lg\:w-1\/2{width:50%}.lg\:w-2\/3{width:66.666667%}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.lg\:w-4\/5{width:80%}.lg\:w-4\/6{width:66.666667%}.lg\:w-5\/6{width:83.333333%}.lg\:max-w-3xl{max-width:48rem}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-6xl{max-width:72rem}.lg\:max-w-\[50\%\]{max-width:50%}.lg\:max-w-none{max-width:none}.lg\:max-w-sm{max-width:24rem}.lg\:flex-1{flex:1 1 0%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:space-x-12>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(3rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(3rem*var(--tw-space-x-reverse))}.lg\:space-x-20>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(5rem*var(--tw-space-x-reverse))}.lg\:\!bg-cover{background-size:cover!important}.lg\:p-12{padding:3rem}.lg\:px-20{padding-left:5rem;padding-right:5rem}.lg\:px-28{padding-left:7rem;padding-right:7rem}.lg\:px-40{padding-left:10rem;padding-right:10rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-1{padding-bottom:.25rem;padding-top:.25rem}.lg\:py-12{padding-bottom:3rem;padding-top:3rem}.lg\:py-16{padding-bottom:4rem;padding-top:4rem}.lg\:py-24{padding-bottom:6rem;padding-top:6rem}.lg\:py-5{padding-bottom:1.25rem;padding-top:1.25rem}.lg\:pb-12{padding-bottom:3rem}.lg\:pb-24{padding-bottom:6rem}.lg\:pb-28{padding-bottom:7rem}.lg\:pl-0{padding-left:0}.lg\:pt-16{padding-top:4rem}.lg\:pt-24{padding-top:6rem}.lg\:pt-6{padding-top:1.5rem}.lg\:pt-8{padding-top:2rem}.lg\:text-left{text-align:left}.lg\:text-right{text-align:right}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.lg\:backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.lg\:first\:px-20:first-child,.lg\:last\:px-20:last-child{padding-left:5rem;padding-right:5rem}}@media (min-width:1280px){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xl\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xl\:mx-20{margin-left:5rem;margin-right:5rem}.xl\:mx-96{margin-left:24rem;margin-right:24rem}.xl\:mb-12{margin-bottom:3rem}.xl\:mr-3{margin-right:.75rem}.xl\:mt-0{margin-top:0}.xl\:flex{display:flex}.xl\:w-5\/12{width:41.666667%}.xl\:max-w-sm{max-width:24rem}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:gap-16{gap:4rem}.xl\:gap-4{gap:1rem}.xl\:p-12{padding:3rem}.xl\:py-24{padding-bottom:6rem;padding-top:6rem}.xl\:text-lg{font-size:1.125rem;line-height:1.75rem}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}.xl\:backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media (min-width:1536px){.\32xl\:mt-0{margin-top:0}.\32xl\:pt-24{padding-top:6rem}} \ No newline at end of file diff --git a/static/fonts/BebasNeue-Bold.ttf b/static/fonts/BebasNeue-Bold.ttf new file mode 100644 index 0000000..6fff605 Binary files /dev/null and b/static/fonts/BebasNeue-Bold.ttf differ diff --git a/static/fonts/CercoDEMO-Bold.otf b/static/fonts/CercoDEMO-Bold.otf new file mode 100644 index 0000000..37f437d Binary files /dev/null and b/static/fonts/CercoDEMO-Bold.otf differ diff --git a/static/fonts/CercoDEMO-Light.otf b/static/fonts/CercoDEMO-Light.otf new file mode 100644 index 0000000..0e74f02 Binary files /dev/null and b/static/fonts/CercoDEMO-Light.otf differ diff --git a/static/fonts/CercoDEMO-Medium.otf b/static/fonts/CercoDEMO-Medium.otf new file mode 100644 index 0000000..801f6fa Binary files /dev/null and b/static/fonts/CercoDEMO-Medium.otf differ diff --git a/static/images/favicon.ico b/static/images/favicon.ico new file mode 100644 index 0000000..ff4a519 Binary files /dev/null and b/static/images/favicon.ico differ diff --git a/content/footer/img/logo_dunia_2.jpeg b/static/images/logo.jpeg similarity index 100% rename from content/footer/img/logo_dunia_2.jpeg rename to static/images/logo.jpeg diff --git a/content/header/img/logo_dunia.jpeg b/static/images/logoheader.jpeg similarity index 100% rename from content/header/img/logo_dunia.jpeg rename to static/images/logoheader.jpeg diff --git a/static/js/custom.js b/static/js/custom.js new file mode 100644 index 0000000..539be5b --- /dev/null +++ b/static/js/custom.js @@ -0,0 +1,110 @@ +var displayedMenu = ""; +var hamburgerShown = false; +let width = screen.width; +var isMobile = width < 1024; + +function toggleMenu(button) { + if (displayedMenu === button.id.split("-")[0]) { + button.className = button.className.replace( + " text-blue-500 bg-stone-200 sm:bg-transparent", + " text-gray-900" + ); + hideMenu(button.id.split("-")[0]); + button.lastElementChild.className = button.lastElementChild.className.replace( + "rotate-0", + "-rotate-90" + ); + displayedMenu = ""; + } else { + showMenu(button.id.split("-")[0]); + button.lastElementChild.className = button.lastElementChild.className.replace( + "-rotate-90", + "rotate-0" + ); + button.className = button.className.replace( + " text-gray-900", + " text-blue-500 bg-stone-200 sm:bg-transparent" + ); + displayedMenu = button.id.split("-")[0]; + } +} + +function handleClick(button) { + if (button.id === "hamburger-btn" || button.id === "close-hamburger-btn") { + toggleHamburger(); + } + if (button.id.indexOf("menu") !== -1) { + toggleMenu(button); + } +} + +function toggleHamburger() { + if (hamburgerShown) { + hideHamburger(); + hamburgerShown = false; + } else { + showHamburger(); + hamburgerShown = true; + } +} + +function showMenu(menuName) { + var menuId = menuName + (isMobile ? "-mobile-menu" : "-menu"); + var menuBtnId = menuName + (isMobile ? "-mobile-menu" : "-menu"); + var menuElement = document.getElementById(menuId); + menuElement.className = menuElement.className.replace(" hidden", ""); + setTimeout(function () { + menuElement.className = menuElement.className.replace( + "duration-200 ease-in opacity-0 -translate-y-1", + "duration-150 ease-out opacity-1 -translate-y-0" + ); + }, 10); +} + +function hideMenu(menuName) { + var menuId = menuName + (isMobile ? "-mobile-menu" : "-menu"); + var menuElement = document.getElementById(menuId); + menuElement.className = menuElement.className.replace( + "duration-150 ease-out opacity-1 -translate-y-0", + "duration-200 ease-in opacity-0 -translate-y-1" + ); + setTimeout(function () { + menuElement.className = menuElement.className + " hidden"; + }, 300); +} + +function showHamburger() { + document.getElementById("header-container").className = "overflow-hidden"; + document.getElementById("hamburger").className = + "fixed mt-2 z-20 top-0 inset-x-0 transition transform origin-top-right"; + document.getElementById("hamburger-btn").className = + "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2"; + document.getElementById("close-hamburger-btn").className = + "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2"; +} + +function hideHamburger() { + document.getElementById("header-container").className = ""; + document.getElementById("hamburger").className = + "hidden absolute z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden"; + document.getElementById("hamburger-btn").className = + "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2"; + document.getElementById("close-hamburger-btn").className = + "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2"; + if (displayedMenu !== "") { + hideMenu(displayedMenu); + } +} + +window.onload = function () { + let elements = document.getElementsByTagName("button"); + let buttons = [...elements]; + buttons.forEach((button) => { + button.addEventListener("click", function () { + handleClick(button); + }); + }); + document + .getElementById("mobile-learn-btn") + ?.addEventListener("click", toggleMenu); +}; diff --git a/tailwind.config copy.js b/tailwind.config copy.js new file mode 100644 index 0000000..a08b26c --- /dev/null +++ b/tailwind.config copy.js @@ -0,0 +1,20 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./templates/**/*.html', './content/**/*.md'], + safelist: [ + { + pattern: /(-|)(ml|mr)-(4|8|12|16|20|24|28)/, + variants: ['sm', 'md', 'lg', 'first', 'first:sm', 'first:md', 'first:lg', 'last', 'last:sm', 'last:md', 'last:lg'], + }, + { + pattern: /(pt|pb)-(0)/, + variants: ['!', 'lg', 'first', 'first:sm', 'first:md', 'first:lg', 'last', 'last:sm', 'last:md', 'last:lg'], + } + ], + theme: { + extend: {}, + }, + plugins: [ + require('@tailwindcss/typography'), + ], +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..ba15afc --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./templates/**/*.html'], + theme: { + extend: {}, + }, + plugins: [], +} + diff --git a/tailwindcss b/tailwindcss new file mode 100755 index 0000000..d4d4092 Binary files /dev/null and b/tailwindcss differ diff --git a/templates/_default/base.html b/templates/_default/base.html new file mode 100644 index 0000000..4e391c4 --- /dev/null +++ b/templates/_default/base.html @@ -0,0 +1,14 @@ + + + + {% include "partials/head.html" %} + + + {% include "partials/header.html" %} +
    + {% block content %}{% endblock %} +
    + {% include "partials/footer.html" %} + + + \ No newline at end of file diff --git a/templates/blogPage.html b/templates/blogPage.html new file mode 100644 index 0000000..85f09a1 --- /dev/null +++ b/templates/blogPage.html @@ -0,0 +1,82 @@ +{% extends "_default/base.html" %} +{% block content %} + +{% if page.taxonomies.people %} +{% set people = get_section(path="people/_index.md") %} +{% set pages_str = people.pages | json_encode() | as_str %} +{% if pages_str is containing(page.taxonomies.people[0]) %} +{% set author_path = 'people/' ~ page.taxonomies.people[0] ~ '/index.md' %} +{% set author = get_page(path=author_path) %} +{% endif %} +{% endif %} + + + +{% set split = page.content | split(pat="threefold.io") %} +{% if split | length < 2 %} {% set content=page.content %} {% else %} {% set content="" %} {% for part in split %} {% if + part is starting_with("/blog") %} {% set split_part=part | split(pat='/">' ) %} {% set link=split_part[0] %} {% set + link=link | replace(from="/blog/post" , to="/blog" ) %} {% set link=link | replace(from="_" , to="-" ) %} {% set + rest_part=split_part | slice(start=1) | join(sep='/"' ) %} {% set part=link ~ '/">' ~ rest_part %} {% endif %} {% if + loop.first %} {% set_global content=part%} {% else %} {% set_global content=content ~ "threefold.io" ~ part%} {% endif + %} {% endfor %} {% endif %}
    + +
    + +
    +
    +

    + {{ page.title }} +

    + +

    + {{ page.description }} +

    + + {% set img_url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', + to=page.extra.imgPath)) %} + {{page.title ~ 'Picture'}} +
    {{ content | safe }}
    +
    +
    + + +
    +
    + + {% endblock content %} \ No newline at end of file diff --git a/templates/categories/list.html b/templates/categories/list.html new file mode 100644 index 0000000..f628a84 --- /dev/null +++ b/templates/categories/list.html @@ -0,0 +1,4 @@ +{% extends "index.html" %} + +{% block content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/categories/single.html b/templates/categories/single.html new file mode 100644 index 0000000..48b5d0c --- /dev/null +++ b/templates/categories/single.html @@ -0,0 +1,14 @@ +{% extends "index.html" %} + +{% block content %} + +
    + +
    + {# {% include "partials/blogPosts.html" %} #} + {# {% include "partials/blogSidebar.html" %} #} +
    +
    + + {% endblock content %} + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..48461be --- /dev/null +++ b/templates/index.html @@ -0,0 +1,9 @@ +{% extends "_default/base.html" %} +{% block content %} + + +
    + {% set page = get_page(path="home/index.md") %} + {{page.content | safe}} +
    +{% endblock content %} \ No newline at end of file diff --git a/templates/items/list.html b/templates/items/list.html new file mode 100644 index 0000000..f628a84 --- /dev/null +++ b/templates/items/list.html @@ -0,0 +1,4 @@ +{% extends "index.html" %} + +{% block content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/items/single.html b/templates/items/single.html new file mode 100644 index 0000000..19f29a1 --- /dev/null +++ b/templates/items/single.html @@ -0,0 +1,14 @@ +{% extends "index.html" %} + +{% block content %} + +
    + +
    + {% include "partials/productPosts.html" %} + {% include "partials/productSidebar.html" %} +
    +
    + + {% endblock content %} + diff --git a/templates/layouts/blog.html b/templates/layouts/blog.html new file mode 100644 index 0000000..62c113a --- /dev/null +++ b/templates/layouts/blog.html @@ -0,0 +1,30 @@ +{% extends "_default/base.html" %} + + +{% block content %} + +
    + + + {%- set section = get_section(path="blog/_index.md") %} + {% for page in section.pages %} + {% if page.extra.isFeatured %} + {%- set_global featured = page %} + {% break %} + {% endif %} + {% endfor %} + + {% include "partials/featuredBlog.html" %} + +
    + {% include "partials/blogPosts.html" %} + {% include "partials/blogSidebar.html" %} +
    +
    + + {% endblock content %} diff --git a/templates/layouts/horizontal_section.html b/templates/layouts/horizontal_section.html new file mode 100644 index 0000000..ca84bf8 --- /dev/null +++ b/templates/layouts/horizontal_section.html @@ -0,0 +1,18 @@ +{% extends "_default/base.html" %} +{% import "macros.html" as macros %} + +{% block content %} + +
    +
    +
    + {{ section.content | safe}} +
    +
    + {{ macros::page_list(item_type="page-box", group=false) }} +
    +
    +
    +
    + +{% endblock content %} diff --git a/templates/layouts/newsroom.html b/templates/layouts/newsroom.html new file mode 100644 index 0000000..b243a29 --- /dev/null +++ b/templates/layouts/newsroom.html @@ -0,0 +1,33 @@ +{% extends "_default/base.html" %} + + +{% block content %} + +
    + + + {%- set section = get_section(path="newsroom/_index.md") %} + {% for page in section.pages %} + {% if page.extra.isFeatured %} + {%- set_global featured = page %} + {% break %} + {% endif %} + {% if not featured %} + {%- set_global featured = section.pages[0] %} + {% endif %} + {% endfor %} + + {% include "partials/featuredNews.html" %} + +
    + {% include "partials/newsPosts.html" %} + {% include "partials/newsSidebar.html" %} +
    +
    + + {% endblock content %} diff --git a/templates/layouts/people.html b/templates/layouts/people.html new file mode 100644 index 0000000..abd7d50 --- /dev/null +++ b/templates/layouts/people.html @@ -0,0 +1,83 @@ +{% extends "_default/base.html" %} + + +{% block content %} + +
    + + + {%- set section = get_section(path="people/_index.md") %} +
    + {% include "partials/filter_bar.html" %} +
    +

    + {% set path_array = current_path | split(pat="/") %} + {% set taxonomy = path_array[1] %} + {% set category = path_array[2] %} + {{category | replace(from='-', to=' ' ) | title}} +

    +
    +
    + {%- for page in paginator.pages %} + {% if "Engineering" == "Engineering"%} + {% include "partials/personCard.html" %} + {%endif%} {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    +
    +
    + + {% endblock content %} \ No newline at end of file diff --git a/templates/layouts/products.html b/templates/layouts/products.html new file mode 100644 index 0000000..5d881c0 --- /dev/null +++ b/templates/layouts/products.html @@ -0,0 +1,30 @@ +{% extends "_default/base.html" %} + + +{% block content %} + +
    + + + {%- set section = get_section(path="products/_index.md") %} + {% for page in section.pages %} + {% if page.extra.isFeatured %} + {%- set_global featured = page %} + {% break %} + {% endif %} + {% endfor %} + + {% include "partials/featuredProduct.html" %} + +
    + {% include "partials/productPosts.html" %} + {% include "partials/productSidebar.html" %} +
    +
    + + {% endblock content %} diff --git a/templates/list.html b/templates/list.html new file mode 100644 index 0000000..56e8399 --- /dev/null +++ b/templates/list.html @@ -0,0 +1,14 @@ +{% extends "_default/base.html" %} +{% block content %} + + +

    + {{ section.title }} +

    + +

    This comes from /templates/_default/list.html.

    +{% endblock content %} \ No newline at end of file diff --git a/templates/macros.html b/templates/macros.html new file mode 100644 index 0000000..c349733 --- /dev/null +++ b/templates/macros.html @@ -0,0 +1,28 @@ +{% macro page_list(type="text") %} +
    + {% if section.extra.group_pages_by %} +
    + {% set taxonomy = get_taxonomy(kind=section.extra.group_pages_by) %} + {% set roles = taxonomy.items %} + {% for role in roles %} +
    + {% set icon_path = config.extra.taxonomies["roles"][role.name].icon_path | as_str %} + role category icon + {% set path = role.name | slugify %} + {% set fullpath = "/roles/" ~ path %} + {{role.name}} + {% for page in role.pages %} + {% include "partials/pageBox.html"%} + {% endfor %} +
    + {% endfor %} +
    + {% else %} + {% for page in section.pages %} + {{page}} + {% include "partials/pageBox.html"%} + {% endfor %} + {% endif %} +{% endmacro page_list %} + + diff --git a/templates/newsPage.html b/templates/newsPage.html new file mode 100644 index 0000000..50aab42 --- /dev/null +++ b/templates/newsPage.html @@ -0,0 +1,143 @@ +{% extends "_default/base.html" %} +{% block content %} + +{% set split = page.content | split(pat="threefold.io") %} +{% if split | length < 2 %} + {% set content = page.content %} +{% else %} + {% set content = "" %} + {% for part in split %} + {% if part is starting_with("/blog") %} + {% set split_part = part | split(pat='/">') %} + {% set link = split_part[0] %} + {% set link = link | replace(from="/blog/post", to="/blog") %} + {% set link = link | replace(from="_", to="-") %} + {% set rest_part = split_part | slice(start=1) | join(sep='/">') %} + {% set part = link ~ '/">' ~ rest_part %} + {% endif %} + {% if part is starting_with("/people") %} + {% set split_part = part | split(pat='/">') %} + {% set link = split_part[0] %} + {% set link = link | replace(from="_", to="-") %} + {% set rest_part = split_part | slice(start=1) | join(sep='/">') %} + {% set part = link ~ '/">' ~ rest_part %} + {% endif %} + {% if loop.first %} + {% set_global content = part %} + {% else %} + {% set_global content = content ~ "threefold.io" ~ part %} + {% endif %} + {% endfor %} +{% endif %} + + + +
    + +
    + +
    +
    +

    + {{ page.title }} +

    +
    {{ page.description }}
    +
    + +
    +
    + {% if page.extra.imgPath %} + {% set img_url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', to=page.extra.imgPath)) %} + + {%endif%} +
    + +
    +
    +
    {{ content | safe }}
    +
    + + +
    +
    +
    +{% endblock content %} \ No newline at end of file diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 0000000..2ad741b --- /dev/null +++ b/templates/page.html @@ -0,0 +1,16 @@ +{% extends "_default/base.html" %} + +{% block content %} + +
    + + +
    + {% if page %} + {{page.content | safe}} + {% else %} + {{section.content | safe}} + {% endif %} +
    + +
    {% endblock content %} diff --git a/templates/partials/applicationForm.html b/templates/partials/applicationForm.html new file mode 100644 index 0000000..c2b84c9 --- /dev/null +++ b/templates/partials/applicationForm.html @@ -0,0 +1,60 @@ +
    +
    +
    +
    +

    Application

    +
    +
    + +
    + http:// + +
    +
    +
    + +
    + +
    + +
    +

    Brief description for your profile. URLs are hyperlinked.

    +
    + +
    + +
    + + + + + + +
    +
    + +
    + +
    +
    + +
    + +

    or drag and drop

    +
    +

    PDF up to 10MB

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/partials/blogPosts.html b/templates/partials/blogPosts.html new file mode 100644 index 0000000..8e04924 --- /dev/null +++ b/templates/partials/blogPosts.html @@ -0,0 +1,70 @@ +{% block content %} + +
    +

    + {% set path_array = current_path | split(pat="/") %} + {% set taxonomy = path_array[1] %} + {% set category = path_array[2] %} + The Latest from Ourworld Free Zone + {% if taxonomy == "categories" %} - + {{category | replace(from='-', to=' ' ) | title}} + {% endif %} +

    +
    +
    + {%- for post in paginator.pages %} + {% if not post.extra.hidden %} + {% include "partials/postCard.html" %} + {%endif%} {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    + +{% endblock content %} \ No newline at end of file diff --git a/templates/partials/blogSidebar.html b/templates/partials/blogSidebar.html new file mode 100644 index 0000000..7c910c7 --- /dev/null +++ b/templates/partials/blogSidebar.html @@ -0,0 +1,38 @@ + +
    +
    +

    FILTER POSTS BY

    + All + {% set taxonomy = get_taxonomy(kind="categories") %} + {% set categories = taxonomy.items %} + {% for category in categories %} + {% set path = category.name | slugify %} + {% set fullpath = "/categories/" ~ path %} + {{category.name}} + {% endfor %} +
    + +{% set section = get_section(path="blog/_index.md")%} + +
    +

    FEATURED POSTS

    + + {% for page in section.pages %} + {% if page.extra.isFeatured %} + {{ page.title }} + {% endif %} + {% endfor %} + +
    +
    + + \ No newline at end of file diff --git a/templates/partials/featuredBlog.html b/templates/partials/featuredBlog.html new file mode 100644 index 0000000..b6edc7e --- /dev/null +++ b/templates/partials/featuredBlog.html @@ -0,0 +1,36 @@ +{% if featured.taxonomies.people %} + {% set people = get_section(path="people/_index.md") %} + {% set pages_str = people.pages | json_encode() | as_str %} + {% if pages_str is containing(featured.taxonomies.people[0]) %} + {% set author_path = 'people/' ~ featured.taxonomies.people[0] ~ '/index.md' %} + {% set author = get_page(path=author_path) %} + {% endif %} +{% endif %} + + + +
    +
    +

    FEATURED POST

    + +

    + {{ featured.title }} +

    +
    +

    + {{ featured.date | date(format="%B %e, %Y", timezone="America/Chicago")}} - +

    + +
    + +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/templates/partials/featuredNews.html b/templates/partials/featuredNews.html new file mode 100644 index 0000000..8c67ed4 --- /dev/null +++ b/templates/partials/featuredNews.html @@ -0,0 +1,28 @@ + + +
    +
    +

    FEATURED NEWS

    + +

    + {{ featured.title }} +

    +
    + +

    + {{ featured.date | date(format="%B %e, %Y", timezone="America/Chicago")}} - +

    + +
    + +
    + {% if featured.extra.imgPath %} + + {% endif %} +
    +
    +
    + + + \ No newline at end of file diff --git a/templates/partials/featuredProduct.html b/templates/partials/featuredProduct.html new file mode 100644 index 0000000..63b09ca --- /dev/null +++ b/templates/partials/featuredProduct.html @@ -0,0 +1,36 @@ +{% if featured.taxonomies.people %} + {% set people = get_section(path="people/_index.md") %} + {% set pages_str = people.pages | json_encode() | as_str %} + {% if pages_str is containing(featured.taxonomies.people[0]) %} + {% set author_path = 'people/' ~ featured.taxonomies.people[0] ~ '/index.md' %} + {% set author = get_page(path=author_path) %} + {% endif %} +{% endif %} + + + +
    +
    +

    FEATURED PRODUCT

    + +

    + {{ featured.title }} +

    +
    +

    + {{ featured.date | date(format="%B %e, %Y", timezone="America/Chicago")}} - +

    + +
    + +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/templates/partials/filter_bar.html b/templates/partials/filter_bar.html new file mode 100644 index 0000000..4770683 --- /dev/null +++ b/templates/partials/filter_bar.html @@ -0,0 +1,48 @@ +{% set path_array = current_path | split(pat="/") %} +{% set taxonomy = path_array[1] %} +{% set category = path_array[2] %} +{% if path_array | length < 4%} +{% set category = "All" %} +{% endif %} + + + +
    +
    +
    +
    + + Filter: + +
    +
    + +
    +
    \ No newline at end of file diff --git a/templates/partials/footer.html b/templates/partials/footer.html new file mode 100644 index 0000000..3003b63 --- /dev/null +++ b/templates/partials/footer.html @@ -0,0 +1,42 @@ + + +{%- set section = get_section(path="footer/_index.md") %} +{%- set logoPath = section.extra.logoPath %} + + + +
    + + + + \ No newline at end of file diff --git a/templates/partials/head.html b/templates/partials/head.html new file mode 100644 index 0000000..38ed853 --- /dev/null +++ b/templates/partials/head.html @@ -0,0 +1,53 @@ +{% set cloudiBase = 'https://res.cloudinary.com/brycewray-com/image/upload/' %} +{% set xFmPart1 = 'f_auto,q_auto:eco,w_' %} +{% set xFmPart2 = ',x_0,z_1/' %} +{% set fallbackImg = 'typewriter-monochrome_2242164_6260x4374.jpg' %} +{% set zolaVer = '0.13.0' %} + + + + + {% block title %} + {% if current_path == '/' %} + {{ config.title }} + + {% else %} + {% if section.title %}{{ section.title }} • {% endif %}{% if page.title %}{{ page.title }} • {% endif %}{{ config.title }} + + {% endif %} + {% endblock title %} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/partials/header.html b/templates/partials/header.html new file mode 100644 index 0000000..b090022 --- /dev/null +++ b/templates/partials/header.html @@ -0,0 +1,134 @@ + + + + +{% set section = get_section(path="_index.md") %} +{% set subsections_str = section.subsections | join(sep=" ") %} +{% set logo_path = get_url(path=section.extra.logo_path | default(value='')) %} + +{% if "header/_index.md" in subsections_str %} + {% set section = get_section(path="header/_index.md") %} + {% set header_items = section.content | safe | split(pat="
  • ") %} + {% include "partials/header_custom.html" %} +{% else %} +
    + {% set header_class = config.extra.header_class | default(value='') %} +
    +
    +
    +
    + + Logo + +
    +
    + + +
    + +
    +
    + {% for subsection in section.subsections %} + {% if subsection == "footer/_index.md" %} {% continue %} {% endif %} + {% set submenu_id = subsection ~ "-menu" | slugify %} + + + + {% endfor %} + + + + + + +
    + +{% endif %} + + diff --git a/templates/partials/header_custom.html b/templates/partials/header_custom.html new file mode 100644 index 0000000..53f3bf4 --- /dev/null +++ b/templates/partials/header_custom.html @@ -0,0 +1,147 @@ + + +{%- set section = get_section(path="header/_index.md") %} +{% set header_items = section.content | safe | split(pat="
  • ") %} + +
    +
    +
    +
    +
    + + Ourworld Logo + +
    +
    + + +
    +
  • ") %} + {% set header_label = header_arr[0] %} + {% if ' + {{link_label}} + + {% else %} + + {{link_label}} + + {% endif %} + {% else %} +
    + {% set button_id = header_label ~ "-menu-btn" | slugify %} + +
    + + {% endif %} +{% endif %} +{% endfor %} + + + + + + +{% for header_item in header_items %} +{% if not loop.first %} + {% set header_arr = header_item | split(pat="") %} + {% set header_label = header_arr[0] %} + {% set header_menu = header_arr[1] %} + {% set menu_id = header_label ~ "-menu" | slugify %} + + + + +{% endif %} +{% endfor %} + + + + + + + diff --git a/templates/partials/icons/bar-svgrepo-com.svg b/templates/partials/icons/bar-svgrepo-com.svg new file mode 100644 index 0000000..07ac56d --- /dev/null +++ b/templates/partials/icons/bar-svgrepo-com.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/partials/icons/code-svgrepo-com.svg b/templates/partials/icons/code-svgrepo-com.svg new file mode 100644 index 0000000..6be0cd8 --- /dev/null +++ b/templates/partials/icons/code-svgrepo-com.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/partials/icons/form-svgrepo-com.svg b/templates/partials/icons/form-svgrepo-com.svg new file mode 100644 index 0000000..1da4268 --- /dev/null +++ b/templates/partials/icons/form-svgrepo-com.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/partials/icons/paint-brush-art-svgrepo-com.svg b/templates/partials/icons/paint-brush-art-svgrepo-com.svg new file mode 100644 index 0000000..f8ed55a --- /dev/null +++ b/templates/partials/icons/paint-brush-art-svgrepo-com.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/partials/icons/svgDribbbleIcon.html b/templates/partials/icons/svgDribbbleIcon.html new file mode 100644 index 0000000..2e94586 --- /dev/null +++ b/templates/partials/icons/svgDribbbleIcon.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgFacebookIcon.html b/templates/partials/icons/svgFacebookIcon.html new file mode 100644 index 0000000..81c97e7 --- /dev/null +++ b/templates/partials/icons/svgFacebookIcon.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgFirstPageIcon.html b/templates/partials/icons/svgFirstPageIcon.html new file mode 100644 index 0000000..00e6d61 --- /dev/null +++ b/templates/partials/icons/svgFirstPageIcon.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgGithubIcon.html b/templates/partials/icons/svgGithubIcon.html new file mode 100644 index 0000000..bedea77 --- /dev/null +++ b/templates/partials/icons/svgGithubIcon.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgInstagramIcon.html b/templates/partials/icons/svgInstagramIcon.html new file mode 100644 index 0000000..913e2cb --- /dev/null +++ b/templates/partials/icons/svgInstagramIcon.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgLastPageIcon.html b/templates/partials/icons/svgLastPageIcon.html new file mode 100644 index 0000000..ca9be49 --- /dev/null +++ b/templates/partials/icons/svgLastPageIcon.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgNextPageIcon.html b/templates/partials/icons/svgNextPageIcon.html new file mode 100644 index 0000000..b4b67a5 --- /dev/null +++ b/templates/partials/icons/svgNextPageIcon.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgPrevPageIcon.html b/templates/partials/icons/svgPrevPageIcon.html new file mode 100644 index 0000000..e2ae89b --- /dev/null +++ b/templates/partials/icons/svgPrevPageIcon.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgTelegram.html b/templates/partials/icons/svgTelegram.html new file mode 100644 index 0000000..d53dd94 --- /dev/null +++ b/templates/partials/icons/svgTelegram.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/partials/icons/svgTwitterIcon.html b/templates/partials/icons/svgTwitterIcon.html new file mode 100644 index 0000000..63a0eb2 --- /dev/null +++ b/templates/partials/icons/svgTwitterIcon.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/partials/memberships.html b/templates/partials/memberships.html new file mode 100644 index 0000000..9e9c074 --- /dev/null +++ b/templates/partials/memberships.html @@ -0,0 +1,85 @@ +{% block content %} + +{% if not paginator %} + {% set paginator = section %} +{% endif %} + +{% set path_array = current_path | split(pat="/") %} +{% set taxonomy = path_array[1] %} +{% set category = path_array[2] %} +{% if path_array | length < 3%} +{% set category = "All" %} +{% endif %} + +
    + {% include "partials/filter_bar.html" %} +
    +
    +

    + {{category | replace(from='-', to=' ' ) | title}} +

    + test +
    + {{ paginator.total_pages ~ " People"}} +
    +
    + +
    + +
    +
    + {%- for page in paginator.pages %} + {% include "partials/person_card.html" %} + {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    + +
    + +{% endblock content %} diff --git a/templates/partials/newsCard.html b/templates/partials/newsCard.html new file mode 100644 index 0000000..a594f3f --- /dev/null +++ b/templates/partials/newsCard.html @@ -0,0 +1,59 @@ +
    +
    + +
    + {% if post.extra.imgPath %} + {% set img_url = get_url(path='/' ~ post.relative_path | replace(from='_', to='-') | replace(from='index.md', to=post.extra.imgPath)) %} + + {% endif %} +
    +
    + +

    + {{ post.title }} +

    + {% if post.description %} +

    + {{ post.description }} +

    + {% endif %} +
    +
    +
    +
      + {% if post.taxonomies.people %} + {% for author in post.taxonomies.people %} + {% set author_path = 'people/' ~ author ~ '/index.md' %} + {% set people = get_section(path="people/_index.md") %} + {% set pages_str = people.pages | json_encode() | as_str %} + {% if pages_str is containing(author) %} + {% set author = get_page(path=author_path) %} + {% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') | replace(from='index.md', to=author.extra.imgPath)) %} +
    • + + {{ author.title }} + +
    • + {% endif %} + {% endfor %} + {% endif %} +
    +
    + +

    + {% if post.extra.socialLinks.contact %} + + Read More + + {% endif %} +

    +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/partials/newsPosts.html b/templates/partials/newsPosts.html new file mode 100644 index 0000000..75cda45 --- /dev/null +++ b/templates/partials/newsPosts.html @@ -0,0 +1,70 @@ +{% block content %} + +
    +

    + {% set path_array = current_path | split(pat="/") %} + {% set taxonomy = path_array[1] %} + {% set category = path_array[2] %} + The Latest from OurWorld Free Zone + {% if taxonomy == "news-category" %} - + {{category | replace(from='-', to=' ' ) | title}} + {% endif %} +

    +
    +
    + {%- for post in paginator.pages %} + {% if "Engineering" == "Engineering"%} + {% include "partials/newsCard.html" %} + {%endif%} {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    + +{% endblock content %} diff --git a/templates/partials/newsSidebar.html b/templates/partials/newsSidebar.html new file mode 100644 index 0000000..1d3f625 --- /dev/null +++ b/templates/partials/newsSidebar.html @@ -0,0 +1,38 @@ + +
    +
    +

    FILTER NEWS BY

    + All + {% set taxonomy = get_taxonomy(kind="news-category") %} + {% set categories = taxonomy.items %} + {% for category in categories %} + {% set path = category.name | slugify %} + {% set fullpath = "/news-category/" ~ path %} + {{category.name}} + {% endfor %} +
    + +{% set section = get_section(path="newsroom/_index.md")%} + +
    +

    FEATURED NEWS

    + + {% for page in section.pages %} + {% if page.extra.isFeatured %} + {{ page.title }} + {% endif %} + {% endfor %} + +
    +
    + + \ No newline at end of file diff --git a/templates/partials/pageBox.html b/templates/partials/pageBox.html new file mode 100644 index 0000000..f44fee4 --- /dev/null +++ b/templates/partials/pageBox.html @@ -0,0 +1,9 @@ +
    + + {{page.title | safe}} + + {% include "partials/categories.html" %} +

    + {{page.description | safe}} +

    +
    \ No newline at end of file diff --git a/templates/partials/page_list.html b/templates/partials/page_list.html new file mode 100644 index 0000000..b773a04 --- /dev/null +++ b/templates/partials/page_list.html @@ -0,0 +1,19 @@ +
    +{% if section.extra.group_pages_by %} +
    + {% set taxonomy = get_taxonomy(kind=section.extra.group_pages_by) %} + {% set roles = taxonomy.items %} + {% for role in roles %} +
    + {% set icon_path = config.extra.taxonomies["roles"][role.name].icon_path | as_str %} + role category icon + {% set path = role.name | slugify %} + {% set fullpath = "/roles/" ~ path %} + {{role.name}} + {% for page in role.pages %} + {% include "partials/pageBox.html"%} + {% endfor %} +
    + {% endfor %} +
    +{% endif %} \ No newline at end of file diff --git a/templates/partials/personCard.html b/templates/partials/personCard.html new file mode 100644 index 0000000..2204df7 --- /dev/null +++ b/templates/partials/personCard.html @@ -0,0 +1,26 @@ +
    + + {% set url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', to=page.extra.imgPath)) %} + {{page.title ~ ' Picture'}} +
    +

    {{page.title}}

    +
    + {% if page.description %} + {{page.description}} + {% else %} + {{page.content | safe}} + {% endif %} +
    +
    +
    + +
    + diff --git a/templates/partials/person_card.html b/templates/partials/person_card.html new file mode 100644 index 0000000..27ac9f3 --- /dev/null +++ b/templates/partials/person_card.html @@ -0,0 +1,21 @@ +
    + + {% set url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', to=page.extra.imgPath)) %} + {{page.title ~ ' Picture'}} +
    +

    {{page.title}}

    +
    + {% if page.description %} + {{page.description}} + {% else %} + {{page.content | safe}} + {% endif %} +
    +
    +
    + +
    \ No newline at end of file diff --git a/templates/partials/postCard.html b/templates/partials/postCard.html new file mode 100644 index 0000000..b70123c --- /dev/null +++ b/templates/partials/postCard.html @@ -0,0 +1,75 @@ +{% if post.date %} +{% if post.taxonomies.people %} +{% set people = get_section(path="people/_index.md") %} +{% set pages_str = people.pages | json_encode() | as_str %} +{% if pages_str is containing(post.taxonomies.people[0]) %} +{% set author_path = 'people/' ~ post.taxonomies.people[0] ~ '/index.md' %} +{% set author = get_page(path=author_path) %} +{% set content = get_page(path=author_path) %} +{% endif %} +{% endif %} + +
    + +
    + + +{% endif %} \ No newline at end of file diff --git a/templates/partials/productCard.html b/templates/partials/productCard.html new file mode 100644 index 0000000..b70123c --- /dev/null +++ b/templates/partials/productCard.html @@ -0,0 +1,75 @@ +{% if post.date %} +{% if post.taxonomies.people %} +{% set people = get_section(path="people/_index.md") %} +{% set pages_str = people.pages | json_encode() | as_str %} +{% if pages_str is containing(post.taxonomies.people[0]) %} +{% set author_path = 'people/' ~ post.taxonomies.people[0] ~ '/index.md' %} +{% set author = get_page(path=author_path) %} +{% set content = get_page(path=author_path) %} +{% endif %} +{% endif %} + +
    + +
    + + +{% endif %} \ No newline at end of file diff --git a/templates/partials/productPosts.html b/templates/partials/productPosts.html new file mode 100644 index 0000000..862f041 --- /dev/null +++ b/templates/partials/productPosts.html @@ -0,0 +1,70 @@ +{% block content %} + +
    +

    + {% set path_array = current_path | split(pat="/") %} + {% set taxonomy = path_array[1] %} + {% set item = path_array[2] %} + The Latest from OurPhone + {% if taxonomy == "items" %} - + {{item | replace(from='-', to=' ' ) | title}} + {% endif %} +

    +
    +
    + {%- for post in paginator.pages %} + {% if not post.extra.hidden %} + {% include "partials/productCard.html" %} + {%endif%} {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    + +{% endblock content %} \ No newline at end of file diff --git a/templates/partials/productSidebar.html b/templates/partials/productSidebar.html new file mode 100644 index 0000000..e450ad7 --- /dev/null +++ b/templates/partials/productSidebar.html @@ -0,0 +1,38 @@ + +
    +
    +

    FILTER PRODUCTS BY

    + All + {% set taxonomy = get_taxonomy(kind="items") %} + {% set items = taxonomy.items %} + {% for item in items %} + {% set path = item.name | slugify %} + {% set fullpath = "/items/" ~ path %} + {{item.name}} + {% endfor %} +
    + +{% set section = get_section(path="products/_index.md")%} + +
    +

    FEATURED POSTS

    + + {% for page in section.pages %} + {% if page.extra.isFeatured %} + {{ page.title }} + {% endif %} + {% endfor %} + +
    +
    + + \ No newline at end of file diff --git a/templates/partials/socialLinks.html b/templates/partials/socialLinks.html new file mode 100644 index 0000000..363222e --- /dev/null +++ b/templates/partials/socialLinks.html @@ -0,0 +1,23 @@ +
    + {% for key, link in section.extra.socialLinks %} + + + {{key}} + {% if key == "Facebook" %} + {% include "partials/icons/svgFacebookIcon.html" %} + {% elif key == "Github" %} + {% include "partials/icons/svgGithubIcon.html" %} + {% elif key == "Instagram" %} + {% include "partials/icons/svgInstagramIcon.html" %} + {% elif key == "Twitter" %} + {% include "partials/icons/svgTwitterIcon.html" %} + {% elif key == "Dribbble" %} + {% include "partials/icons/svgDribbbleIcon.html" %} + {% elif key == "Telegram" %} + {% include "partials/icons/svgTelegram.html" %} + {% endif %} + + + {% endfor %} + +
    \ No newline at end of file diff --git a/templates/partials/tags.html b/templates/partials/tags.html new file mode 100644 index 0000000..5db604a --- /dev/null +++ b/templates/partials/tags.html @@ -0,0 +1,5 @@ +
    + {% for tag in page.taxonomies.categories %} +
    {{tag}}
    + {% endfor %} +
    \ No newline at end of file diff --git a/templates/partnerPage.html b/templates/partnerPage.html new file mode 100644 index 0000000..705957a --- /dev/null +++ b/templates/partnerPage.html @@ -0,0 +1,57 @@ +{% extends "_default/base.html" %} +{% block content %} + +
    +
    +
    + +
    +
    +

    + {{ page.title }} +

    + +
    +
    +
      + {% if page.extra.websites %} +
    • + + +
    • + {% endif %} + {% if page.extra.linkedin %} +
    • + + +
    • + {% endif %} +
    + {% for tag in page.taxonomies.tags %} + + {{tag}} + + {% endfor %} +
    +
    +
    +
    + +
    + +
    +
    {{ page.content | safe }}
    +
    +
    + +{% endblock content %} \ No newline at end of file diff --git a/templates/people/list.html b/templates/people/list.html new file mode 100644 index 0000000..77eee45 --- /dev/null +++ b/templates/people/list.html @@ -0,0 +1,84 @@ +{% extends "_default/base.html" %} +{% block content %} + + +
    + {% include "partials/filter_bar.html" %} + +
    +

    + {%- set section = get_section(path="people/_index.md") %} + + {% set path_array = current_path | split(pat="/") %} + {% set taxonomy = path_array[1] %} + {% set category = path_array[2] %} + {{category | replace(from='-', to=' ' ) | title}} +

    +
    +
    + {% for person in section.pages %} + {% set page_path = person.path ~ 'index.md' | replace(from='-', to='_') | trim_start_matches(pat="/") %} + {% set people = get_section(path="people/_index.md") %} + {% set pages_str = people.pages | json_encode() | as_str %} + {% if pages_str is containing(person.title) %} + {% set page = get_page(path=page_path) %} + {% if page.extra.private >= 0 %} + {% if page.title != "ThreeFold_Community"%} + {% include "partials/person_card.html" %} + {% endif %} + {% endif %} + {% endif %} + {% endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    +
    + +{% endblock content %} diff --git a/templates/people/memberships/list.html b/templates/people/memberships/list.html new file mode 100644 index 0000000..f628a84 --- /dev/null +++ b/templates/people/memberships/list.html @@ -0,0 +1,4 @@ +{% extends "index.html" %} + +{% block content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/people/memberships/single.html b/templates/people/memberships/single.html new file mode 100644 index 0000000..e357e75 --- /dev/null +++ b/templates/people/memberships/single.html @@ -0,0 +1,88 @@ +{% extends "index.html" %} + +{% block content %} + +{% if not paginator %} + {% set paginator = section %} +{% endif %} + +{% set path_array = current_path | split(pat="/") %} +{% set taxonomy = path_array[1] %} +{% set category = path_array[2] %} +{% if path_array | length < 3%} +{% set category = "All" %} +{% endif %} + +
    + {% include "partials/filter_bar.html" %} +
    +
    +

    + {{category | replace(from='-', to=' ' ) | title}} +

    +
    + {{ paginator.total_pages ~ " People"}} +
    +
    + +
    + +
    +
    + {%- for page in paginator.pages %} + {% include "partials/person_card.html" %} + {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    + +
    + +{% endblock content %} + + diff --git a/templates/people/news-category/list.html b/templates/people/news-category/list.html new file mode 100644 index 0000000..f628a84 --- /dev/null +++ b/templates/people/news-category/list.html @@ -0,0 +1,4 @@ +{% extends "index.html" %} + +{% block content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/people/news-category/single.html b/templates/people/news-category/single.html new file mode 100644 index 0000000..5db2970 --- /dev/null +++ b/templates/people/news-category/single.html @@ -0,0 +1,14 @@ +{% extends "index.html" %} + +{% block content %} + +
    + +
    + {% include "partials/newsPosts.html" %} + {% include "partials/newsSidebar.html" %} +
    +
    + + {% endblock content %} + diff --git a/templates/people/single.html b/templates/people/single.html new file mode 100644 index 0000000..e7cff97 --- /dev/null +++ b/templates/people/single.html @@ -0,0 +1,55 @@ +{% extends "_default/base.html" %} +{% block content %} + +{% set page_path = term.path ~ 'index.md' | replace(from='-', to='_') | trim_start_matches(pat="/") %} +{% set people = get_section(path="people/_index.md") %} +{% set pages_str = people.pages | json_encode() | as_str %} +{% if pages_str is containing(term.name) %} + {% set page = get_page(path=page_path) %} + + +
    +
    +
    + +
    +
    +
    +

    + {{page.title}} +

    +
    +
    + {{page.content | safe }} +
    +
    +
    +
      + {% for org in page.extra.organizations %} +
    • + + + +
    • + {% endfor %} +
    +
    +
    + {% if page.taxonomies.memberships %} + {% for tag in page.taxonomies.memberships %} + + {{tag}} + + {% endfor %} + {% endif %} +
    +
    +
    +
    +
    +
    +
    +
    +{% endif %} + +{% endblock content %} \ No newline at end of file diff --git a/templates/people/tags/list.html b/templates/people/tags/list.html new file mode 100644 index 0000000..f628a84 --- /dev/null +++ b/templates/people/tags/list.html @@ -0,0 +1,4 @@ +{% extends "index.html" %} + +{% block content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/people/tags/single.html b/templates/people/tags/single.html new file mode 100644 index 0000000..025e23e --- /dev/null +++ b/templates/people/tags/single.html @@ -0,0 +1,14 @@ +{% extends "index.html" %} + +{% block content %} + +
    + +
    + {% include "partials/tagsCards.html" %} + {% include "partials/tagsSidebar.html" %} +
    +
    + + {% endblock content %} + diff --git a/templates/people_page.html b/templates/people_page.html new file mode 100644 index 0000000..8e94af9 --- /dev/null +++ b/templates/people_page.html @@ -0,0 +1,73 @@ +{% extends "_default/base.html" %} +{% block content %} + + +
    + {% include "partials/filter_bar.html" %} + +
    +

    + {% set path_array = current_path | split(pat="/") %} + {% set taxonomy = path_array[1] %} + {% set category = path_array[2] %} + {{category | replace(from='-', to=' ' ) | title}} +

    +
    +
    + {%- for page in paginator.pages %} + {% if "Engineering" == "Engineering"%} + {% include "partials/person_card.html" %} + {%endif%} {%- endfor %} +
    +
    +

    + {% if paginator.previous %} + {% include "partials/icons/svgPrevPageIcon.html" %}{% include + "partials/icons/svgPrevPageIcon.html" %} +           + {% include "partials/icons/svgPrevPageIcon.html" %} +           +           {% else %} {% + include "partials/icons/svgFirstPageIcon.html" %}{% include + "partials/icons/svgFirstPageIcon.html" %} +           {% include + "partials/icons/svgFirstPageIcon.html" %} +           +           {% endif %} {% if + paginator.next %} + {% include "partials/icons/svgNextPageIcon.html" %} +           + {% include "partials/icons/svgNextPageIcon.html" %}{% include + "partials/icons/svgNextPageIcon.html" %} + {% else %} {% include "partials/icons/svgLastPageIcon.html" %} +           {% include + "partials/icons/svgLastPageIcon.html" %}{% include + "partials/icons/svgLastPageIcon.html" %} {% endif %} +

    +
    +
    +
    + +{% endblock content %} diff --git a/templates/person_page.html b/templates/person_page.html new file mode 100644 index 0000000..df358b1 --- /dev/null +++ b/templates/person_page.html @@ -0,0 +1,45 @@ +{% extends "_default/base.html" %} +{% block content %} + +
    +
    +
    + +
    +
    +
    +

    + {{page.title}} +

    +
    +
    + {{page.content | safe }} +
    +
    +
    +
      + {% for org in page.extra.organizations %} +
    • + + + +
    • + {% endfor %} +
    +
    +
    + {% for tag in page.taxonomies.memberships %} + + {{tag}} + + {% endfor %} +
    +
    +
    +
    +
    +
    +
    +
    + +{% endblock content %} \ No newline at end of file diff --git a/templates/positionPage.html b/templates/positionPage.html new file mode 100644 index 0000000..ee8059d --- /dev/null +++ b/templates/positionPage.html @@ -0,0 +1,31 @@ +{% extends "_default/base.html" %} +{% block content %} + + +
    + +{% set banner_path = config.extra.taxonomies["roles"][page.taxonomies.roles[0]].banner_path | as_str %} +{% set styles = "background: url('/" ~ banner_path ~ "'); background-size: cover; background-position: center" %} + +
    +
    +
    +
    +

    Our World

    +

    + {{ page.title }} +

    +

    {{page.description}}

    + {% include "partials/categories.html" %} +
    + {{ page.content | safe }} +
    +
    + {% include "partials/applicationForm.html"%} +
    +
    + + +
    + +{% endblock content %} \ No newline at end of file diff --git a/templates/productPage.html b/templates/productPage.html new file mode 100644 index 0000000..e93e750 --- /dev/null +++ b/templates/productPage.html @@ -0,0 +1,82 @@ +{% extends "_default/base.html" %} +{% block content %} + +{% if page.taxonomies.people %} +{% set people = get_section(path="people/_index.md") %} +{% set pages_str = people.pages | json_encode() | as_str %} +{% if pages_str is containing(page.taxonomies.people[0]) %} +{% set author_path = 'people/' ~ page.taxonomies.people[0] ~ '/index.md' %} +{% set author = get_page(path=author_path) %} +{% endif %} +{% endif %} + + + +{% set split = page.content | split(pat="ourphone.tf") %} +{% if split | length < 2 %} {% set content=page.content %} {% else %} {% set content="" %} {% for part in split %} {% if + part is starting_with("/product") %} {% set split_part=part | split(pat='/">' ) %} {% set link=split_part[0] %} {% set + link=link | replace(from="/product/post" , to="/product" ) %} {% set link=link | replace(from="_" , to="-" ) %} {% set + rest_part=split_part | slice(start=1) | join(sep='/"' ) %} {% set part=link ~ '/">' ~ rest_part %} {% endif %} {% if + loop.first %} {% set_global content=part%} {% else %} {% set_global content=content ~ "ourphone.tf" ~ part%} {% endif + %} {% endfor %} {% endif %}
    + +
    + +
    +
    +

    + {{ page.title }} +

    + +

    + {{ page.description }} +

    + + {% set img_url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', + to=page.extra.imgPath)) %} + {{page.title ~ 'Picture'}} +
    {{ content | safe }}
    +
    +
    + + +
    +
    + + {% endblock content %} \ No newline at end of file diff --git a/templates/resourcesPage.html b/templates/resourcesPage.html new file mode 100644 index 0000000..cc7f0aa --- /dev/null +++ b/templates/resourcesPage.html @@ -0,0 +1,36 @@ +{% extends "_default/base.html" %} +{% block content %} + +
    + +
    +
    + +
    {{ page.content | safe }}
    +
    + + +
    +
    +{% endblock content %} \ No newline at end of file diff --git a/templates/roles/list.html b/templates/roles/list.html new file mode 100644 index 0000000..7330b1f --- /dev/null +++ b/templates/roles/list.html @@ -0,0 +1,7 @@ +{% extends "index.html" %} + +{% block content %} + +{{ terms }} + +{% endblock content %} diff --git a/templates/roles/single.html b/templates/roles/single.html new file mode 100644 index 0000000..f089d8c --- /dev/null +++ b/templates/roles/single.html @@ -0,0 +1,35 @@ +{% extends "index.html" %} + +{% block content %} + + +
    + +{% set banner_path = config.extra.taxonomies["roles"][term.name].banner_path | as_str %} +{% set styles = "background: url('/" ~ banner_path ~ "'); background-size: cover; background-position: center" %} + +
    +
    +
    +
    +

    Our World

    +

    + {{ config.extra.taxonomies["roles"][term.name].title }} +

    +

    {{config.extra.taxonomies["roles"][term.name].description}}

    +
    +
    +

    {{term.name}} @ Ourworld

    + {% for page in term.pages %} + {% include "partials/pageBox.html"%} + {% endfor %} +
    +
    + {% include "partials/applicationForm.html"%} +
    +
    + + +
    + +{% endblock content %} \ No newline at end of file diff --git a/templates/section.html b/templates/section.html new file mode 100644 index 0000000..e328616 --- /dev/null +++ b/templates/section.html @@ -0,0 +1,11 @@ +{% extends "_default/base.html" %} + +{% block content %} + +
    + {{ section.content | safe}} + + {% include "partials/page_list.html" %} +
    + + {% endblock content %} diff --git a/templates/shortcodes/admonition.html b/templates/shortcodes/admonition.html new file mode 100644 index 0000000..0fff67e --- /dev/null +++ b/templates/shortcodes/admonition.html @@ -0,0 +1,65 @@ + + +{% set classes = "" %} + +{% set first_line = body | split(pat="\n") | first %} +{% set parsed_first_line = first_line | split(pat=" ") %} +{% set admonition = parsed_first_line | first %} +{% set style = "" %} + +{% set content = body | split(pat="\n") | slice(start=2) | join(sep="\n") %} + + +{% if admonition == "!!!" %} + {% set classes = "admonition" %} +{% elif admonition == "???" %} + {% set style = "collapsible closed" %} + {% set classes = "admonition" %} +{% elif admonition == "???+" %} + {% set style = "collapsible open" %} + {% set classes = "admonition" %} +{% else %} + {% set classes = "hidden" %} +{% endif %} + +{% if "inline end" in first_line %} + {% set classes = classes ~ " inline end" %} + {% set parsed_first_line = parsed_first_line | slice(end=-2)%} +{% elif "inline" in first_line %} + {% set classes = classes ~ " inline" %} + {% set parsed_first_line = parsed_first_line | slice(end=-1)%} +{% endif %} + +{% if classes != "hidden"%} + {% if parsed_first_line[1] %} + {% set classes = classes ~ " " ~ parsed_first_line[1] %} + {% endif %} + {% if parsed_first_line[2] %} + {% if not parsed_first_line[2] == '""' %} + {% set title = parsed_first_line | slice(start=2) | join(sep=" ") %} + {% endif %} + {% else %} + {% if parsed_first_line[1] %} + {% set title = parsed_first_line[1] | title %} + {% endif %} + {% endif %} +{% endif %} + + +{% if "collapsible" in style %} +
    + {% if title %} + {{ title | trim_start_matches(pat='"') | trim_end_matches(pat='"') }} +

    {{ content }}

    + {% endif %} +
    +{% else %} +
    + {% if title %} +
    {{ title | trim_start_matches(pat='"') | trim_end_matches(pat='"') }}
    + {% endif %} +

    {{ content }}

    +
    +{% endif %} diff --git a/templates/shortcodes/banner.html b/templates/shortcodes/banner.html new file mode 100644 index 0000000..64e540a --- /dev/null +++ b/templates/shortcodes/banner.html @@ -0,0 +1,19 @@ +
    + +
    +
    {{ banner_text }}
    + + {{ banner_button }} + + +
    + +
    + +
    + +
    \ No newline at end of file diff --git a/templates/shortcodes/button.html b/templates/shortcodes/button.html new file mode 100644 index 0000000..56519cd --- /dev/null +++ b/templates/shortcodes/button.html @@ -0,0 +1,5 @@ + +{% set path = body | split(pat="href=") | slice(start=1) | first | split(pat=">") | first | trim_start_matches(pat='"') | trim_end_matches(pat='"') %} + \ No newline at end of file diff --git a/templates/shortcodes/content1.html b/templates/shortcodes/content1.html new file mode 100644 index 0000000..12e418b --- /dev/null +++ b/templates/shortcodes/content1.html @@ -0,0 +1,28 @@ +
    +
    +

    {{ content1_title }}

    + +

    + {{ content1_text }} +

    + + +

    {{ content1_subtitle }}

    + +

    {{ content1_title2 }}

    + +
      +
    • {{ content1_item1 }}
    • +
    • {{ content1_item2 }}
    • +
    • {{ content1_item3 }}
    • +
    + +
    {{ quate_title }}
    + +
    + Photo by Minh Pham +
    + + +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/cta.html b/templates/shortcodes/cta.html new file mode 100644 index 0000000..7473ab9 --- /dev/null +++ b/templates/shortcodes/cta.html @@ -0,0 +1,23 @@ +
    +
    +
    + +
    +

    {{ cta_title}}

    + +

    {{ cta_text}}

    + + +
    + + + +
    + Photo by Dom Hill +
    + +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/earn_sec.html b/templates/shortcodes/earn_sec.html new file mode 100644 index 0000000..cc85fae --- /dev/null +++ b/templates/shortcodes/earn_sec.html @@ -0,0 +1,56 @@ + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    All you need to get started is + electricity, a network connection, and a FreeFlow Node
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    Provide decentralized storage and + compute capacity to host your communities digital life while maintaining privacy.
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    Earn in the most valuable and + rapidly growing economy: the Internet and cloud
    +
    +
    +
    +
    +
    + +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/featured_stories.html b/templates/shortcodes/featured_stories.html new file mode 100644 index 0000000..7ec1e0f --- /dev/null +++ b/templates/shortcodes/featured_stories.html @@ -0,0 +1,73 @@ + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    + get a node and
    start earning +

    +
    Get a FreeFlow Node and add capacity to + the FreeFlow Network.
    + +
    +
    +
    + +
    +
    + +
    +
    +
    +

    + GET THE
    FREEFLOW TWIN +

    +
    Reserve your sovereign digital twin.
    Take control over your digital life.
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    +

    + ACQUIRE
    CHI +

    +
    The digital energy currency + of
    the FreeFlow network `CHI token`
    + +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/features.html b/templates/shortcodes/features.html new file mode 100644 index 0000000..683eafd --- /dev/null +++ b/templates/shortcodes/features.html @@ -0,0 +1,30 @@ +
    +
    + +
    +

    Our competitive advantage

    + +

    This is a section of some simple filler text, also known as placeholder text. It shares some characteristics of a real written text but is random or otherwise generated.

    +
    + + {% for item in items %} +
    + +
    +
    + + + +
    + +
    +

    {{ header}}

    +

    {{ text }}

    + {{ link }} +
    +
    + +
    + {% endfor %} +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/fflow_experiences.html b/templates/shortcodes/fflow_experiences.html new file mode 100644 index 0000000..57cda9d --- /dev/null +++ b/templates/shortcodes/fflow_experiences.html @@ -0,0 +1,53 @@ + +

    {{ subject }}

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    FREEFLOWING
    EDUCATION

    +
    All citizens can now acquire information and learn skills.
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    FREEFLOWING
    EMPOWERMENT

    +
    All citizens can now attain the opportunity to participate in the digital economy.
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +

    FREEFLOWING
    COLLABORATION

    +
    All citizens can now work together to achieve goals and growth.
    +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/fflow_grid.html b/templates/shortcodes/fflow_grid.html new file mode 100644 index 0000000..40cada5 --- /dev/null +++ b/templates/shortcodes/fflow_grid.html @@ -0,0 +1,52 @@ + +
    +
    +
    + +
    +
    + +
    +
    +
    +

    fully own
    your data

    +
    The entirety of your data belogs to you instead of company or service-provider.
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    unbeatable
    privacy

    +
    Only you have control of your data and decide who has access to it. Forever.
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +

    zero
    manipulation

    +
    Your data can never be used for financial or commercial gains by anyone.
    +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/fflow_skills.html b/templates/shortcodes/fflow_skills.html new file mode 100644 index 0000000..ea55337 --- /dev/null +++ b/templates/shortcodes/fflow_skills.html @@ -0,0 +1,95 @@ +
    + +
    + +
    +
    + +
    +
    +

    Meet & Communicate

    +

    Chat with your friends, hold meetings and and have video conferencing.

    +
    +
    + +
    +
    + +
    +
    +

    Exchange & Store Money

    +

    Transact or manage your assets using the wallet features available with the Twin.

    +
    +
    + +
    +
    + +
    +
    +

    Create

    +

    Create videos, documents or anything else you require for your daily needs.

    +
    +
    + +
    +
    + +
    +
    +

    Organize

    +

    Archive and organize all your data in one place without worrying about security.

    +
    +
    + +
    +
    + +
    +
    +

    Share

    +

    Send your data and files to anyone of your choice directly without central servers.

    +
    +
    + +
    +
    + +
    +
    +

    Publish

    +

    Build websites, librariies or whatever else you require with the FreeFlow Twin.

    +
    +
    + +
    +
    + +
    +
    +

    Discover

    +

    FInd and browse any information without being tracked or logged.

    +
    +
    + +
    +
    + +
    +
    +

    Collaborate

    +

    Work with your friends, family or collegues or projects or tasks together.

    +
    +
    + +
    +
    + +
    +
    +

    Develop & Expand

    +

    Develop more tools or decentralized applications for the FreeFlow Grid.

    +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/fflow_twin.html b/templates/shortcodes/fflow_twin.html new file mode 100644 index 0000000..ceba0e7 --- /dev/null +++ b/templates/shortcodes/fflow_twin.html @@ -0,0 +1,53 @@ + +
    +
    +
    + +
    +
    + +
    +
    +
    +

    EVERYONE
    HAS ACCESS

    +
    Every member of society has access and there are no barriers to entry,.
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    ANYONE
    CAN PARTAKE

    +
    Only you have control of your data and decide who has access to it.
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +

    ANYONE
    CAN SUCCEED

    +
    Anyone can attain the opportunity to earn and to better their lives.
    +
    +
    +
    +
    + +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/grid_stats.html b/templates/shortcodes/grid_stats.html new file mode 100644 index 0000000..0ae595d --- /dev/null +++ b/templates/shortcodes/grid_stats.html @@ -0,0 +1,78 @@ +{% set styles = "background-image: url('/images/ston_bg.png');" %} +{% set data = load_data(url="https://gridproxy.grid.tf/stats?status=up", required=false, format="json") %} +{% if data %} +{% set capacity = data.totalHru + data.totalSru / (1024 * 1024 * 1024 * 1024) %} +{% set nodes = data.nodes %} +{% set countries = data.countries %} +{% endif %} + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + {{ nodes }} +
    +
    +
    + freeflow nodes
    deployed +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + {{ countries }} +
    +
    +
    + countries
    involved +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + {{ capacity | round() }}TB +
    +
    +
    + capacity
    generated +
    +
    +
    +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/hero.html b/templates/shortcodes/hero.html new file mode 100644 index 0000000..2bc5ee0 --- /dev/null +++ b/templates/shortcodes/hero.html @@ -0,0 +1,23 @@ +
    + +
    +

    {{ hero_subtitle }}

    + +

    {{ hero_title }}

    + +

    {{ hero_text }}

    + + +
    + + + +
    + Photo by Fakurian Design +
    + +
    \ No newline at end of file diff --git a/templates/shortcodes/logo.html b/templates/shortcodes/logo.html new file mode 100644 index 0000000..6686321 --- /dev/null +++ b/templates/shortcodes/logo.html @@ -0,0 +1,16 @@ +
    +
    +

    Trusted by the best

    + +
    + + {% for logo in logos %} +
    + +
    + {% endfor %} + + +
    +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/menu.html b/templates/shortcodes/menu.html new file mode 100644 index 0000000..167be2b --- /dev/null +++ b/templates/shortcodes/menu.html @@ -0,0 +1,44 @@ + + +{% set columns = body | safe | markdown | split(pat="|||") %} + + + +{% set classes = "relative flex flex-col lg:flex-row items-baseline -mx-8 sm:-mx-12 lg:-mx-12 xl:-mx-8" %} +{% set column_classes = "flex-1 m-2 lg:m-4" %} + + + +
    + {% for column in columns%} + + {% if column | as_str | length < 10 %} + + {% else %} +
    + {{column | split(pat="{% button() %}") | slice(end=1) | first | safe}} +
    +
    + {% for button in column | split(pat="{% button() %}") | slice(start=1) | join(sep="") | split(pat="{%% end %%}") | slice(end=-1) %} + {% set body = button %} + {% include "shortcodes/button.html" %} + {% endfor %} +
    + {% endif %} + {% endfor %} +
    \ No newline at end of file diff --git a/templates/shortcodes/mermaid.html b/templates/shortcodes/mermaid.html new file mode 100644 index 0000000..7ddc2e9 --- /dev/null +++ b/templates/shortcodes/mermaid.html @@ -0,0 +1,3 @@ +
    + {{ body }} +
    \ No newline at end of file diff --git a/templates/shortcodes/mycomponent.html b/templates/shortcodes/mycomponent.html new file mode 100644 index 0000000..ceafd2d --- /dev/null +++ b/templates/shortcodes/mycomponent.html @@ -0,0 +1,13 @@ + + + +
    +

    {{subject}}

    + + {% for item in items %} + {{ item }} + {% endfor %} + + + +
    \ No newline at end of file diff --git a/templates/shortcodes/myloop.html b/templates/shortcodes/myloop.html new file mode 100644 index 0000000..7ff139f --- /dev/null +++ b/templates/shortcodes/myloop.html @@ -0,0 +1,4 @@ + +{% for item in items %} +

    {{ item }}

    +{% endfor %} diff --git a/templates/shortcodes/reviews.html b/templates/shortcodes/reviews.html new file mode 100644 index 0000000..b74830c --- /dev/null +++ b/templates/shortcodes/reviews.html @@ -0,0 +1,91 @@ + + + +
    +
    +
    +

    Customer Reviews

    + +
    +
    + Total + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    + + + Bases on 27 reviews +
    + + Write a review +
    + +
    + + {# {% for item in items %} #} +
    +
    + {{ reviews_name }} + {{ reviews_date }} +
    + + +
    + + + + + + + + + + + + + + + + + + + +
    + + +

    {{ reviews_description }}

    +
    + {# {% endfor %} #} + + + + + +
    +
    +
    +
    diff --git a/templates/shortcodes/row.html b/templates/shortcodes/row.html new file mode 100644 index 0000000..30a34ee --- /dev/null +++ b/templates/shortcodes/row.html @@ -0,0 +1,258 @@ + + + + +{% if page %} + {% if "](" in body %} + {% set body_arr = body | split(pat="](") %} + {% set body = body_arr[0] %} + {% for i in body_arr %} + {% set prev_index = loop.index0 - 1 %} + {% if not loop.first %} + {% if "![" in body_arr[prev_index] %} + {% set_global body = body ~ '](' ~ page.permalink ~ i %} + {% else %} + {% if i is not starting_with("http") %} + {% set base_url = get_url(path="") %} + {% set_global body = body ~ '](' ~ base_url ~ i %} + {% else %} + {% set_global body = body ~ '](' ~ i %} + {% endif %} + {% endif %} + {% endif %} + {% endfor %} + {% endif %} +{% endif %} + +{% set columns = body | safe | markdown | split(pat="

    |||

    ") %} + +{% set row_class = "relative flex flex-col md:flex md:flex-row flex-wrap max-w-fit overflow-hidden"%} + + +{% if 2 < columns | length %} + {% set row_class = row_class ~ " lg:items-start" %} +{% else %} + {% set row_class = row_class ~ " items-center" %} +{% endif %} + +{% set col_class = "flex-1 mb-4 md:mb-12 lg:mb-0 mx-4" %} + + +{% set row_id = '' %} + +{% if id %} +{% set row_id = id %} + +{% endif %} + + + + + {% if reverse %} + {% if "rightreserve" in reverse %} + {% set row_class = "flex flex-col-reverse md:flex-row items-center mx-0" %} + {% elif "leftreserve" in reverse %} + {% set row_class = "flex flex-col md:flex-row items-center mx-8" %} + + {% endif %} + {% endif %} + + + + +{% set padding_class = " py-8 md:py-8 lg:py-24" %} + +{% if padding %} + {% if "none" in padding %} + {% set padding_class = " py-0" %} + {% elif "top" in padding %} + {% set padding_class = " py-0 lg:pt-24" %} + {% elif "bottom" in padding %} + {% set padding_class = " py-2 md:py-4 lg:pb-24" %} + {% elif "both" in padding %} + {% set padding_class = " py-8 md:py-4 lg:py-24" %} + {% endif %} +{% endif %} + +{% if css %} + {% set padding_class = padding_class ~ " " ~ css %} +{% endif %} + +{% set row_class = row_class ~ padding_class %} + + + + +{% set margin_class = " mx-4 md:mx-16 lg:mx-24" %} + +{% if margin %} + {% if "none" in margin %} + {% set margin_class = " mx-0" %} + {% elif "wide" in margin %} + {% set margin_class = " mx-4 sm:mx-8 md:mx-12 lg:mx-16 xl:mx-20 " %} + {% elif "moderate" in margin %} + {% set margin_class = " mx-4 sm:mx-16 md:mx-20 lg:mx-28" %} + {% elif "narrow" in margin %} + {% set margin_class = " mx-4 sm:mx-20 md:mx-28 lg:mx-40" %} + {% elif "tight" in margin %} + {% set margin_class = " mx-4 sm:mx-32 md:mx-40 lg:mx-80 xl:mx-96" %} + {% elif "header" in margin %} + {% set margin_class = " mx-4 sm:mx-20 md:mx-28 lg:mx-40 my-10" %} + {% elif "withContainer" in margin %} + {% set margin_class = " mx-4 " %} + {% endif %} + {% if "lean-left" in margin %} + {% set margin = margin_class | replace(from=" ", to=" first:")%} + {% set margin_left = margin | replace(from="mx", to="-ml") %} + {% set margin_right = margin | replace(from="mx", to="mr") %} + {% set col_class = col_class ~ " md:last:px-8 lg:last:px-20 lg:max-w-[50%] lg:mx-0 " ~ margin_left ~ margin_right %} + {% set row_class = row_class ~ " sm:gap-0 " %} + {% elif "lean-right" in margin %} + {% set margin = margin_class | replace(from=" ", to=" last:")%} + {% set margin_left = margin | replace(from="mx", to="ml") %} + {% set margin_right = margin | replace(from="mx", to="-mr") %} + {% set col_class = col_class ~ " md:first:px-8 lg:first:px-20 lg:max-w-[50%] lg:mx-0 " ~ margin_left ~ margin_right %} + {% set row_class = row_class ~ " sm:gap-0 " %} + {% endif %} +{% endif %} + +{% if css %} + {% set margin_class = margin_class ~ " " ~ css %} +{% endif %} + +{% set row_class = row_class ~ margin_class %} + + + +{% if style %} + + {% if "center" in style %} + {% set row_class = row_class ~ " text-center items-center " %} + {% set col_class = col_class ~ " flex-1 " %} + {% endif %} + + {% if "right" in style %} + {% set row_class = row_class ~ " text-center lg:text-right md:text-right justify-center " %} + {% set col_class = col_class ~ " flex-1" %} + {% endif %} + + {% if "left" in style %} + {% set row_class = row_class ~ " text-center lg:text-left md:text-left justify-center " %} + {% set col_class = col_class ~ " flex-1" %} + {% endif %} + + + {% if "items-end" in style %} + {% set row_class = row_class ~ " lg:items-end" %} + {% set col_class = col_class ~ " flex-1 " %} + {% endif %} + + + + + + {% if "between" in style %} + {% set row_class = row_class ~ " lg:max-w-6xl " %} + {% elif "moderate" in style %} + {% set row_class = row_class ~ " " %} + {% endif %} + + + {% if "narrow" in style %} + {% set row_class = row_class ~ " lg:max-w-3xl " %} + {% elif "tight" in style %} + {% set row_class = row_class ~ " lg:max-w-sm " %} + {% elif "moderate" in style %} + {% set row_class = row_class ~ " mx-20 " %} + {% endif %} + + {% if "invert-color" in style %} + + {% set row_class = row_class ~ " text-white lg:text-white " %} + + {% endif %} + {% else %} + {% set row_class = row_class ~ " " %} +{% endif %} + +{% set anchor_link = ""%} +{% if anchor %} + {% set anchor_link = anchor %} +{% endif %} + + + +{% set styles = "" %} +{% set div_class = " " %} +{% if bgPath %} + {% set background_url = page.permalink ~ bgPath %} + {% set styles = "background: url('" ~ background_url ~ "'); background-size: cover; background-position: center;" %} + {% if "#desktop" in bgPath %} + {% set bgStyle = false %} + {% set div_class = " !bg-[length:0px_0px] !bg-no-repeat lg:!bg-cover " %} + {% set row_class = row_class | replace(from='text-white', to='text-black') %} + {% if "invert-color" in style %} + {% if "#desktop" in bgPath %} + {% set row_class = row_class ~ " lg:text-white " %} + {% endif %} + {% endif %} + {% endif %} +{% endif %} +{% if bgStyle %} + {% if "full" in bgStyle %} + {% set styles = styles ~ "height: -webkit-fill-available; height: 100vh;" %} + {% elif "hero" in bgStyle %} + {% set div_class = div_class ~ " -mt-24 pt-12 " %} + {% endif %} +{% endif %} +{% if bgColor %} + {% set styles = "background-color: " ~ bgColor ~ "; background-size: cover" %} + {% set row_class = row_class %} +{% endif %} + +{% if class %} + {% set styles = "background-color: " ~ bgColor ~ "; background-size: cover" %} + {% set row_class = row_class %} +{% endif %} + + +{% set no_margins = " -mx-8 md:-mx-12 lg:-mx-16 xl:-mx-20" %} + + +
    +
    + + {% for column in columns%} + + + {% if column | as_str | length < 10 %} + + {% else %} +
    + + + {% if "{% mermaid() %}" in column %} + {% set mermaid_section = column | safe | markdown | split(pat="{% mermaid() %}") %} + {% set mermaid_content = mermaid_section[1] | striptags | replace(from="–", to="--")%} +
    + {{mermaid_content | safe }} +
    + {% else %} + {{ column | safe }} + {% endif %} +
    + {% endif %} + {% endfor %} +
    +
    \ No newline at end of file diff --git a/templates/shortcodes/space.html b/templates/shortcodes/space.html new file mode 100644 index 0000000..fca83cc --- /dev/null +++ b/templates/shortcodes/space.html @@ -0,0 +1,8 @@ + +{% set height = 52 %} +{% if size %} + {% if size == "small" %} + {% set height = 28 %} + {% endif %} +{% endif %} +
    \ No newline at end of file diff --git a/templates/shortcodes/team_sec.html b/templates/shortcodes/team_sec.html new file mode 100644 index 0000000..8254c21 --- /dev/null +++ b/templates/shortcodes/team_sec.html @@ -0,0 +1,79 @@ +
    +

    + THE TEAM +

    +
    Spread across the world, our team has + built some of the world’s best Internet storage and cloud automation technologies since the ‘90s. With a strong + vision for the future, we’re now on a mission to create a peer-to-peer Internet that can host all of humanity’s + digital workloads via smart contract, removing all forms of centralization from global IT systems.
    +
    +
    +
    +
    + + Adnan Fatayerji + +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/templates/shortcodes/youtube.html b/templates/shortcodes/youtube.html new file mode 100644 index 0000000..e85468e --- /dev/null +++ b/templates/shortcodes/youtube.html @@ -0,0 +1,8 @@ +
    + +
    \ No newline at end of file diff --git a/templates/tags/list.html b/templates/tags/list.html new file mode 100644 index 0000000..7330b1f --- /dev/null +++ b/templates/tags/list.html @@ -0,0 +1,7 @@ +{% extends "index.html" %} + +{% block content %} + +{{ terms }} + +{% endblock content %} diff --git a/templates/tags/single.html b/templates/tags/single.html new file mode 100644 index 0000000..cb08e72 --- /dev/null +++ b/templates/tags/single.html @@ -0,0 +1,12 @@ +{% extends "index.html" %} + +{% block content %} + +{# {% set section = get_section(path="blog/_index.md")%} +
    + {{ section.content | safe}} +
    + {% include "partials/page_list.html" %} +
    #} + + {% endblock content %} diff --git a/templates/taxonomy_list.html b/templates/taxonomy_list.html new file mode 100644 index 0000000..f628a84 --- /dev/null +++ b/templates/taxonomy_list.html @@ -0,0 +1,4 @@ +{% extends "index.html" %} + +{% block content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/taxonomy_single.html b/templates/taxonomy_single.html new file mode 100644 index 0000000..7b9e37c --- /dev/null +++ b/templates/taxonomy_single.html @@ -0,0 +1,22 @@ +{% extends "index.html" %} + +{% block content %} + +
    + +
    + {% if current_path is containing("tags") %} + {% include "partials/tagsCards.html" %} + {% include "partials/tagsSidebar.html" %} + {% elif current_path is containing("memberships") %} + {% include "partials/memberships.html" %} + {% elif current_path is containing("people") %} + {% else %} + {% include "partials/newsPosts.html" %} + {% include "partials/newsSidebar.html" %} + {% endif %} +
    +
    + + {% endblock content %} + diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..1b88a9a --- /dev/null +++ b/vercel.json @@ -0,0 +1,48 @@ +{ + "build": { + "env": { + "ZOLA_VERSION": "0.14.0" + } + }, + "github": { + "silent": true + }, + "headers": [ + { + "source": "/css/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=2678400" + } + ] + }, + { + "source": "/images/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=2678400" + } + ] + }, + { + "source": "/images/icons/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=2678400" + } + ] + }, + { + "source": "/fonts/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=2678400" + } + ] + } + ] +} \ No newline at end of file