commit 5f162f0d37fde99a01fd6eebdcb2b914e9d79ad8 Author: timurgordon Date: Thu Aug 11 12:27:46 2022 +0300 initial commit diff --git a/.github/workflows/tf_update.yml b/.github/workflows/tf_update.yml new file mode 100644 index 0000000..16c12e9 --- /dev/null +++ b/.github/workflows/tf_update.yml @@ -0,0 +1,22 @@ +name: freeflow.life +on: + push: + branch: [ development ] + +jobs: + job_one: + name: Deploy + runs-on: ubuntu-latest + steps: + - name: pushing latest change on www2.freeflow.life + uses: appleboy/ssh-action@master + with: + host: www2.freeflow.life + username: root + key: ${{ secrets.TF_SECRET }} + port: 22 + script: | + cd /opt/www_freeflow_life + git log -1 + git pull + bash build.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..499540b --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +*dSYM/ +publisher/publish +install_publisher +.vmodules/ +vex_webserver +publishtools/publishtools +.vscode +*.log +!.env.example +.cache +.DS_Store +src/.temp +content/news +content/person +content/project +!.env.example +.env +.env.* +yarn.lock +.installed +package-lock.json +dist +.temp +run* +install* +public +static/css +tailwindcss \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..fae6947 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,7 @@ +# This configuration file was automatically generated by Gitpod. +# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file) +# and commit this file to your remote git repository to share the goodness with others. + +tasks: + - init: sh build + command: sh build diff --git a/README.md b/README.md new file mode 100644 index 0000000..68c8bff --- /dev/null +++ b/README.md @@ -0,0 +1,104 @@ +# OurWorld Website + +## About + +A website created using Zola, a static site generator. + +- The contents of the pages reside in the markdown files in /content (written in CommmonMark) +- The pages are rendered using HTML templates with Tailwind CSS framework in /templates + +## Getting Started + +This repository is meant to use as a template for static sites. + +To use this repository as a template, simply: + +- clone repository +- add your own content to templates directory (see more below) +- [install Zola](https://www.getzola.org/documentation/getting-started/installation/), +- run `npm install` to install dependencies +- run `npm run start` + +## How to create pages using this template + +### Structure of the content directory + +Every index.md file in a content directory corresponds to a page, and the landing page is content/\_index.md. +The path of each page is simply its path relavant to the root of the content directory. + +Ex: +content/\_index.md -> yoururl.com/ +content/blog/\_index.md -> yoururl.com/blog +content/careers/index.md or content/careers.md -> yoururl.com/careers + +### Section Templates + +#### Blog.html + +The blog page is created by default if there is a blog folder in the content directory. The blog page consists of a featured post row, a paginated grid of posts sorted by recency, and a side nav of post categories and featured posts. + +Blog posts can have categories, and can be filtered by said categries. To add a new category simply define the posts category in the yaml header of the blog's index.md file. See /content/blog/2019/01/post-3/index.md for example. The side navigation and category based listing will be automatically updated. + +To make a blog post featured, simply add an isFeatured attribute to the yaml header of the blog post. The most recent featured blog post wiil be displayed on the heading row of the blog page, and the rest will be displayed under featured posts in the side nav. See /content/blog/2019/03/post-5/index.md for implementation. + +#### Section.html + +The default section template, displays section body without styling (except for margins), and displays subpages of the section below. The subpages of the page are displayed as small summaries of pages with title, description, and categories, as rendered by partials/pageBox.html. The subpages are grouped by the taxonomy name passed in as the "group_pages_by" extra attribute, defined in the section's yaml header. + +### Creating custom pages + +To create your own page, simply create a markdwn file following the examples provided above. +By default, the markdown file will be displayed plainly as it is. + +#### Page templates + +If you wish to display your markdown files in a specific page template, simply define the template you would like to use in the yaml header of your markdown file. For instance, the blogPage.html template displays blog posts with author info, date, side margins, and a hero image on top of the post. See any blog page in /content for implementation. + +### Shortcodes + +To give website creators freedom in styling without necessitating getting outside of the /content directory and in to the html files, the template has a few features. + +- #### row.html shortcode + +Markdown only goes vertical, but this shortcode allows one to add horizontal elements to their web pages. Simply use the {% row() %} {% end %} syntax and place your content in between. The row shortcode can also take a bgPath parameter if you want your row to have a background. (see /content/careers/index.html) + +You can create columns in your row by using three vertical bars. ( ||| ) +You can fill in your columns with regular markdown, but they can also be empty. + +- #### menu.html + +Just like row, menu renders a row with columns split by ( ||| ). However, menu is specifically used to create menu objects for expandible header items. The menu shortcode supports button shortcodes in itself, and provides styling for the menu. + +- #### button.html + +A simple button shortcode that takes a body and displays it inside a button that is animated on hover. The button also is entirely clickable, and navigates to the first of if any children link elements. + +- #### mermaid.html + +Simple mermaid shorcode that can be used to create mermaid diagrams in markdown. Also supported in row shortcode. + +[Mermaid]("https://mermaid-js.github.io/mermaid/#/") + +- #### annotation.html + +Simple annotation shorcode that can be used to create annotation objects in markdown. + +(note: inline and inline end qualifiers do not work.) + +[Annotations]("https://squidfunk.github.io/mkdocs-material/reference/annotations/#usage") + +### Image sizing with source paths + +You can size your markdown images by adding #small, #medium or #large at the end of the images source url. +See /content/\_index.md for implementation. + +### Header & Footer + +The header and footer are also created from markdown files in the content directory. In /content/header/\_index.md, each header item is bulleted. If a header item has a row beneath it, the row will be displayed as a sub-menu on click. Otherwise, if header item is a link, it will simply navigate to the linked page. + +The footer, likewise, is structured using the row shortcode. However the left section with page summary is built in. To edit the site destcription, one should edit the description (in the yaml header) of the footer md file. To edit the social links, simply add the social outlets name and your link into the socialLinks dictionary attribute on the yaml header of the footer/\_index.md. If a social icon exists for the social outlet, the link wiill be automatically rendered within the icon, displayed in the footer. + +## Resources & References + +This project was started using a [Zola Tailwind starter set](https://github.com/brycewray/zola_twcss) +Some templates were created using [Tailwind UI](https://tailwindui.com) diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..3e11e8e --- /dev/null +++ b/build.sh @@ -0,0 +1,44 @@ +echo "Starting build..." + +# TODO: Check if current version is latest to avoid redundant installation +if [[ -f "tailwindcss" ]] +then + rm tailwindcss +fi + +# 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..419269c --- /dev/null +++ b/config.toml @@ -0,0 +1,71 @@ +# The URL the site will be built for +base_url = "https://www2.freeflow.life" +# Change this to your own URL! Please note this variable **must** be uncommented. + +title = "ThreeFold" +description="Our global digital backbone" + +# 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 = "categories" +feed = true +paginate_by = 2 +paginate_path = "blog-posts" + +[extra] +header_class = "freeflow" +footer_class = "freeflow" \ No newline at end of file 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..573bbcc --- /dev/null +++ b/css/index.css @@ -0,0 +1,361 @@ +/*! purgecss start ignore */ +@import "code.css"; +/*! purgecss end ignore */ + +@import "tailwindcss/base"; +@import "layout.css"; +@import "tailwindcss/components"; +@import "admonition.css"; +@import "tailwindcss/utilities"; +/* Custom CSS for header partial */ +.backdrop-blur { + -webkit-backdrop-filter: blur(40px); +} + +@font-face { + font-family: "CercoDEMO"; + font-weight: 500; + src: url("https://www2.freeflow.life/fonts/CercoDEMO-Medium.otf") format("opentype"); + src: url("../fonts/CercoDEMO-Medium.otf") format("opentype"); +} + +@font-face { + font-family: "CercoDEMO"; + font-weight: 600; + src: url("https://www2.freeflow.life/fonts/CercoDEMO-Bold.otf") format("opentype"); + src: url("../fonts/CercoDEMO-Bold.otf") format("opentype"); +} + +@font-face { + font-family: "CercoDEMO"; + font-weight: 400; + src: url("https://www2.freeflow.life/fonts/CercoDEMO-Light.otf") format("opentype"); + src: url("../fonts/CercoDEMO-Light.otf") format("opentype"); +} + +* { + font-family: "CercoDEMO", sans-serif; +} + +a { + font-family: "CercoDEMO", 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*="#md"] { + width: 300px; +} + +img[src*="#medium"] { + width: 400px; +} + +img[src*="#logo"] { + max-width: min(250px, 100%); + margin: auto; +} + +img[src*="#large"] { + width: min(60vw, 100vh); + margin: auto; +} + +img[src*="#tft_img"] { + width: 150px; + margin: 8px; +} + +.logo_size { + width: 200px; +} + +@layer components { + h1 { + @apply text-4xl md:text-5xl lg:text-6xl leading-none font-normal; + } + h1 strong { + @apply font-medium; + } + h2 { + @apply text-3xl md:text-4xl lg:text-5xl xl:text-5xl font-normal leading-none; + } + h2 strong { + @apply font-medium; + } + h3 { + @apply text-xl md:text-2xl lg:text-3xl font-light; + } + h3 strong { + @apply font-medium; + } + h4 { + @apply text-xl lg:text-2xl font-normal; + } + h5 { + @apply text-xl lg:text-xl font-normal; + } + h6 { + @apply text-lg not-italic font-normal my-1; + } + p { + @apply text-lg lg:text-xl leading-tight tracking-normal font-normal; + 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; + } + li li { + @apply text-sm lg:text-sm font-light; + } + button { + @apply inline-block + text-base + lg:text-lg + px-12 + py-1 + mr-5 + my-10 + border-2 + shadow + capitalize; + } +} + +button:hover :is(:where(a)) { + color: #c6f8ff; +} + +button :is(:where(p)) { + color: #3d3b39; + font-weight: 400; +} + +header .freeflow { + background-color: transparent; + position: absolute; +} + +footer .freeflow { + width: 100vw; + background-color: #eae8e3; + display: flex; + flex-direction: column; + align-items: center; + padding: 40px; +} + +footer .freeflow img { + width: 200px; + margin-bottom: 20px; +} + + +header .freeflow div { + box-shadow: none; + text-transform: uppercase; + font-weight: 700 !important; +} + +button { + background-color: #1a1a1a; + border-radius: 20px; + border: 2px solid white; + box-shadow: none; + font-size: 20px; +} + +button { + background-color: #1a1a1a; + border-radius: 10px; + border: none; + box-shadow: none; + font-size: 20px; + } + +button a { + color: white; +} + +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: 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; + } +} diff --git a/css/layout.css b/css/layout.css new file mode 100644 index 0000000..678ebfa --- /dev/null +++ b/css/layout.css @@ -0,0 +1,468 @@ +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 text-6xl } +#text-7xl { @apply text-7xl } +#text-8xl { @apply text-8xl } + +/* +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/start.sh b/start.sh new file mode 100644 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/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/footer_logo.png b/static/images/footer_logo.png new file mode 100644 index 0000000..15ed79d Binary files /dev/null and b/static/images/footer_logo.png differ diff --git a/static/images/icons/bar-svgrepo-com.svg b/static/images/icons/bar-svgrepo-com.svg new file mode 100644 index 0000000..07ac56d --- /dev/null +++ b/static/images/icons/bar-svgrepo-com.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/icons/code-svgrepo-com.svg b/static/images/icons/code-svgrepo-com.svg new file mode 100644 index 0000000..6be0cd8 --- /dev/null +++ b/static/images/icons/code-svgrepo-com.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/icons/form-svgrepo-com.svg b/static/images/icons/form-svgrepo-com.svg new file mode 100644 index 0000000..1da4268 --- /dev/null +++ b/static/images/icons/form-svgrepo-com.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/icons/paint-brush-art-svgrepo-com.svg b/static/images/icons/paint-brush-art-svgrepo-com.svg new file mode 100644 index 0000000..f8ed55a --- /dev/null +++ b/static/images/icons/paint-brush-art-svgrepo-com.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/tf_logo.png b/static/images/tf_logo.png new file mode 100644 index 0000000..15ed79d Binary files /dev/null and b/static/images/tf_logo.png differ diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..5b0de27 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./templates/**/*.html'], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/templates/_default/base.html b/templates/_default/base.html new file mode 100644 index 0000000..9816847 --- /dev/null +++ b/templates/_default/base.html @@ -0,0 +1,13 @@ + + + + {% 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..9fafb30 --- /dev/null +++ b/templates/blogPage.html @@ -0,0 +1,23 @@ +{% extends "_default/base.html" %} +{% block content %} + + +
    + +
    + +
    +
    +

    + {{ page.title }} +

    +

    +

    + + {{ page.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..c579447 --- /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..1e6fc10 --- /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/layouts/blog.html b/templates/layouts/blog.html new file mode 100644 index 0000000..4968811 --- /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/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/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..a5b299a --- /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 ThreeFold + {% if taxonomy == "categories" %} - + {{category | replace(from='-', to=' ' ) | title}} + {% endif %} +

    +
    +
    + {%- for post in paginator.pages %} + {% if "Engineering" == "Engineering"%} + {% 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 %} 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..80d2320 --- /dev/null +++ b/templates/partials/featuredBlog.html @@ -0,0 +1,29 @@ + + +
    +
    +

    FEATURED POST

    + +

    + {{ featured.title }} +

    +
    +

    + {{featured.description}} +

    + +

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

    + +
    + +
    + +
    +
    + + + + \ No newline at end of file diff --git a/templates/partials/footer.html b/templates/partials/footer.html new file mode 100644 index 0000000..4dcf806 --- /dev/null +++ b/templates/partials/footer.html @@ -0,0 +1,21 @@ + + +{%- set section = get_section(path="_index.md") %} + +{% set subsections_str = section.subsections | join(sep=" ") %} + +
    + {% if "footer/_index.md" in subsections_str %} + {%- set section = get_section(path="footer/_index.md") %} + {{ section.content | safe }} + {% else %} + {% set footer_class = config.extra.footer_class | default(value='') %} + + {% endif %} +
    \ No newline at end of file diff --git a/templates/partials/head.html b/templates/partials/head.html new file mode 100644 index 0000000..1515e14 --- /dev/null +++ b/templates/partials/head.html @@ -0,0 +1,41 @@ +{% 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..d202b83 --- /dev/null +++ b/templates/partials/header.html @@ -0,0 +1,225 @@ + + + + + + +{% 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='') %} +
    +
    +
    +
    + + FreeFlow 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..a1fca53 --- /dev/null +++ b/templates/partials/header_custom.html @@ -0,0 +1,228 @@ + + + + +{%- 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 %} +
    + {% 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/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/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/postCard.html b/templates/partials/postCard.html new file mode 100644 index 0000000..9cf0a57 --- /dev/null +++ b/templates/partials/postCard.html @@ -0,0 +1,37 @@ +
    +
    + +
    +
    + +
    +
    +

    + {{ post.extra.author }} +

    +
    + + + · + + + 6 min read + +
    +
    +
    +
    +
    diff --git a/templates/partials/socialLinks.html b/templates/partials/socialLinks.html new file mode 100644 index 0000000..325f023 --- /dev/null +++ b/templates/partials/socialLinks.html @@ -0,0 +1,21 @@ + \ 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/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/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/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/grid_stats.html b/templates/shortcodes/grid_stats.html new file mode 100644 index 0000000..ef8d53c --- /dev/null +++ b/templates/shortcodes/grid_stats.html @@ -0,0 +1,87 @@ +{% set styles = "background-image: url('images/grid_map.png');" %} +{% set data = load_data(url="https://explorer.threefold.io/api/stats", required=false, format="json") %} +{% set capacity = data.hru + data.sru / 1000 %} +{% set nodes = data.onlinenodes %} +{% set countries = data.countries %} +{% set cores = data.cru %} + +
    +
    +
    + {{body | markdown | safe }} + +
    +
    + + +
    + {{ capacity / 1000000 | round(precision=2) }}PB + capacity +
    +
    + + +
    +
    + {{ nodes }} + nodes +
    +
    + + + +
    +
    + {{ countries }} + countries +
    +
    +
    +
    + + +
    + {{ cores | num_format }} + cores +
    +
    +
    +
    + + \ 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/row.html b/templates/shortcodes/row.html new file mode 100644 index 0000000..6bc628f --- /dev/null +++ b/templates/shortcodes/row.html @@ -0,0 +1,190 @@ + + + + +{% 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 pt-12 flex flex-col sm:grid sm:grid-cols-2 sm:gap-10 md:flex md:flex-row md:py-4 lg:py-8 flex-wrap max-w-fit "%} + + +{% if 2 < columns | length %} + {% set row_class = row_class ~ " lg:items-start" %} +{% else %} + {% set row_class = row_class ~ " lg:items-center" %} +{% endif %} + +{% set col_class = "flex-1 mb-4 md:mb-12 lg:mb-0 " %} +{% set col_class = col_class ~ " lg:mx-8 " %} + + + +{% if margin %} + {% if "none" in margin %} + {% set row_class = row_class ~ " mx-0 " %} + {% elif "wide" in margin %} + {% set row_class = row_class ~ " mx-12 " %} + {% elif "moderate" in margin %} + {% set row_class = row_class ~ " mx-8 sm:mx-16 md:mx-24 lg:mx-28 " %} + {% elif "narrow" in margin %} + {% set row_class = row_class ~ " mx-12 sm:mx-20 md:mx-28 lg:mx-32 " %} + {% elif "tight" in margin %} + {% set row_class = row_class ~ " mx-20 sm:mx-32 md:mx-60 lg:mx-80 xl:mx-96 " %} + {% endif %} + {% if "lean-left" in margin %} + {% set col_class = col_class ~ " lg:last:px-20 lg:max-w-[50%] lg:mx-0 " %} + {% set row_class = row_class ~ " !ml-0 sm:gap-0 " %} + {% elif "lean-right" in margin %} + {% set col_class = col_class ~ " lg:first:px-20 lg:max-w-[50%] lg:mx-0 " %} + {% set row_class = row_class ~ " !mr-0 sm:gap-0 " %} + {% endif %} +{% else %} + {% set row_class = row_class ~ " mx-4 md:mx-16 lg:mx-24 " %} +{% endif %} + + +{% if style %} + + {% if "center" in style %} + {% set row_class = row_class ~ " text-center items-center mx-auto justify-center " %} + {% set col_class = col_class ~ " flex-1 " %} + {% endif %} + + + {% if "lean" in style %} + {% if "lean-left" in style %} + {% set col_class = col_class ~ " last:px-20 lg:max-w-[50%] " %} + {% set row_class = row_class ~ " sm:gap-0 " %} + {% elif "lean-right" in style %} + {% set col_class = col_class ~ " first:px-20 lg:max-w-[50%] -mr-8 md:-mr-12 lg:-mr-16 xl:-mr-20 " %} + {% set row_class = row_class ~ " sm:gap-0 " %} + {% else %} + {% set row_class = row_class ~ " md:py-0 " %} + {% set col_class = col_class ~ " lg:m-0" %} + {% endif %} + {% else %} + {% set row_class = row_class ~ " w-screen " %} + {% 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-24 " %} + {% endif %} +{% endif %} +{% if bgColor %} + {% set styles = "background-color: " ~ bgColor ~ "; background-size: cover" %} + {% set row_class = row_class ~ " py-0 " %} +{% 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/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..655485f --- /dev/null +++ b/templates/tags/single.html @@ -0,0 +1,12 @@ +{% extends "index.html" %} + +{% block content %} + +{% set section = get_section(path="join-us/_index.md")%} +
    + {{ section.content | safe}} +
    + {% include "partials/page_list.html" %} +
    + + {% 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