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 index e0d2925..b654a21 100644 --- a/README.md +++ b/README.md @@ -1 +1,106 @@ -# www_ourparadise \ No newline at end of file +# OURWORLD NOMAD Website + +wesite on https://nomads.ourworld.tf/ + +## 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/blog/a_better_understanding_of_wealth/a_better_understanding_of_wealth.jpg b/blog/a_better_understanding_of_wealth/a_better_understanding_of_wealth.jpg new file mode 100644 index 0000000..9e07a67 Binary files /dev/null and b/blog/a_better_understanding_of_wealth/a_better_understanding_of_wealth.jpg differ diff --git a/blog/a_better_understanding_of_wealth/index.md b/blog/a_better_understanding_of_wealth/index.md new file mode 100644 index 0000000..b47bd41 --- /dev/null +++ b/blog/a_better_understanding_of_wealth/index.md @@ -0,0 +1,56 @@ +--- +id: a_better_understanding_of_wealth +title: A Better Understanding of Wealth +image_caption: a better understanding of wealth +description: Wealth is more than the accumulation of money and resources. +date: 2021-01-27 +taxonomies: + people: [alexandre_hannelas] + tags: [why,digital_twin] + categories: [twin] +extra: + imgPath: a_better_understanding_of_wealth.jpg +--- + +# A better understanding of wealth + +
+ +Wealth is more than the accumulation of money and resources. It can be generated in ways other than through conventional financial means. The financial justice warrior, Bernard Liataer, highlighted that to capture the wealth of our societies, our culture and our environments, we have to pay heed to the notion of wealth as well-being. + +
+ +But how do we obtain that well-being? We all know the answer to this question – we have a sense of well-being when all of our needs are met. It is not just the basic needs of food, clothing and shelter but also the need to be a creative participant in our community, have a voice in our own destiny, and pursue our own spiritual development unhindered by social sanction. Developing real wealth implies making choices that enable all members of the community to attain well-being. Achieving sustainable wealth implies meeting the present's needs without compromising the ability of future generations to meet their own needs. + +
+ +Digital Twin has been created while taking into consideration the different types of community capital that need to be achieved to create real wealth:  + +
+ +1. Natural Capital - It includes the community environment that produces more assets. Our today's economies failed to measure, understand and account for the true value of nature's riches - clean air and water, soil and pollination for food, the social, intrinsic and spiritual values of natural beauty. Digital Twin will be the tool for us to place a proper value on Natural capital finally.  + +
+ +2. Technological Capital – It includes how we harness our intellectual resources to create tools, systems, machines, arts, skills, and materials designed to improve our lives. This is what Digital Twin is all about - providing the required technology to enhance our lives and those of our communities' members through collective efforts and intelligence. Digital Twin is only the foundation for this future global well-being. People will support education and creativity throughout the world and give access to material information required to create additional innovative technologies. + +
+ +3. Social Capital – It recognizes the economic importance of all the ways we are connected: the relationships, our networks and values we share and the cooperative systems, and all its different components we use for interacting. Nowadays, our social capital is threatened through the repetitive act of violence, betrayal of trust, exclusion or less sharing and caring towards our fellow humans. Digital Twin has been created to encourage the easy sharing and exchange of resources and cooperate with each other on a platform. + +
+ +4. Historical and Cultural Capital – Through history, we have learned, and now we are transmitting our cultural understanding and recommendation about the economic and financial system to others through an open-source, public and transparent peer-to-peer exchange protocol. + +
+ +5. Human Capital – It includes all capabilities that people have to learn, invent, create, work, care for each other, and contribute to the community. This is the reason why Digital Twin has been created - A project to benefit us all. +
+ +6. Financial Capital – It is the creation of real wealth through the availability of liquidity resources through a multi-currency system and Savings & Investments made by individuals and institutions. By strengthening and increasing this type of capital, our peer-to-peer platform believes that it is the obvious path to a successful economic development. + +
+ +All of these forms of capital produce the critical flows of assets through the economic system. Capital is the foundation, the reproductive system, the greenhouse that grows a healthy economy. This has been one of the fundamental beliefs of Digital Twin - For the well-being of worldwide communities.  + + diff --git a/blog/a_different_approach_to_blockchain/a_different_approach_to_blockchain.png b/blog/a_different_approach_to_blockchain/a_different_approach_to_blockchain.png new file mode 100644 index 0000000..400858e Binary files /dev/null and b/blog/a_different_approach_to_blockchain/a_different_approach_to_blockchain.png differ diff --git a/blog/a_different_approach_to_blockchain/index.md b/blog/a_different_approach_to_blockchain/index.md new file mode 100644 index 0000000..6177c90 --- /dev/null +++ b/blog/a_different_approach_to_blockchain/index.md @@ -0,0 +1,51 @@ +--- +id: a_different_approach_to_blockchain +title: Not your average blockchain project +image_caption: a different approach to blockchain +description: Sometimes we're compared to blockchain projects. We love the blockchain but that's just not who we are. +date: 2021-04-20 +taxonomies: + people: [sacha_obeegadoo] + tags: [digital_twin,data,why] + categories: [] +extra: + imgPath: a_different_approach_to_blockchain.png +--- + +
+ +Sometimes we're compared to blockchain projects. We love blockchains and have many partners there – CasperLabs, DigiByte, Polygon, and Dash, to name a few – but that's just not what we are. Here's a few ways we are different than the "typical" blockchain project. + +## ThreeFold is actually much more than a blockchain + +ThreeFold is not actually even a blockchain project, rather it uses blockchain technology by combining it with other cutting-edge solutions. It's way more that just a blockchain alternative to a public cloud. ThreeFold started everything from scratch – built a super-lightweight and shell-less operating system, and a fully autonomous (self-driving and self-healing) architecture to enable a true peer-to-peer infrastructure. With zero intermediaries on the ThreeFold Grid, that leads to high efficiency and minimum complexity. +
+
+The blockchain database (BCDB) acts as a registry for the workloads on the Threefold Grid. Workloads can only be accessed and managed with the private key of the data owner. The BCDB can prove to any party that their workloads are executed exactly as intended and that their data is untouched. +
+
+In most distributed systems, data is stored multiple times to guarantee redundancy. This leads to a lot of unnecessary overhead and is also not the most secure mechanism. ThreeFold uses a dispersed storage algorithm to store the workloads on the ThreeFold Grid. The dispersed storage algorithm breaks data into shards and stores them on different nodes. This enables two things – first, performance efficiency (no need for consensus to run compute and storage) and second, energy efficiency (as there’s no more need for data duplication). +
+
+ +*As mentioned up top, we have many partners in the space and we are working with them to bring true decentralization to their blockchains.* + +## ThreeFold had no ICO nor IEO. It pre-farmed its tokens + +ThreeFold didn’t have an ICO or IEO. ICOs and IEOs are fundraising schemes for blockchains to sell tokens to investors either directly (ICO) or through regulated exchanges (IEO). Instead, ThreeFold pre-farmed (ThreeFold’s sustainable alternative to mining) its tokens prior to going to the market and listed them on several exchanges, public and decentralized. +
+
+This allowed ThreeFold to incentivize its early contributors, while also securing the ongoing development of the project until the launch of the Threefold Grid 2.0 in April 2020. Pre-mining is also an organic approach to the market, in line with ThreeFold’s values and vision of delivering products over using hype. + +## Product over Hype + +In some cases, ICOs and IEOs were surrounded with hype. It is always very hard to judge the ability of a project to deliver its promises through a white paper. +
+
+Instead of fundraising with a white paper, the technological development remained the primary focus. For 4 years, ThreeFold developed the whole technology stack, starting with an operating-system built from scratch to the autonomous smart contract and virtual system administrator technology that enables a fully-autonomous peer-to-peer Cloud. +
+
+In 2020, ThreeFold held the public launch of the ThreeFold Token on Liquid Exchange. At that time, the ThreeFold Grid was already live in its 2nd version. +
+
+Today, you can go through the whole Threefold Universe and find ready-to-use products. You can participate in growing the world’s most advanced peer-to-peer Internet infrastructure, or use the peer-to-peer compute and storage capacity available on the P2P Cloud. \ No newline at end of file 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..dc490de --- /dev/null +++ b/config.toml @@ -0,0 +1,71 @@ +# The URL the site will be built for +base_url = "https://nomads.ourworld.tf/" +# Change this to your own URL! Please note this variable **must** be uncommented. + +title = "Ournomads" +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/content/_index.md b/content/_index.md new file mode 100644 index 0000000..8e31481 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,11 @@ +--- +title: "OW Nomads" +description: "" +date: 2018-09-14 +updated: 2021-02-20 +draft: false +sort_by: weight +weight: 1 +extra: + logo_path: images/nomads_logo.png +--- diff --git a/content/co-own/img/dao2.png b/content/co-own/img/dao2.png new file mode 100644 index 0000000..c0d1d9c Binary files /dev/null and b/content/co-own/img/dao2.png differ diff --git a/content/co-own/img/dig_nomad.png b/content/co-own/img/dig_nomad.png new file mode 100644 index 0000000..05ef148 Binary files /dev/null and b/content/co-own/img/dig_nomad.png differ diff --git a/content/co-own/img/farm.png b/content/co-own/img/farm.png new file mode 100644 index 0000000..d8798eb Binary files /dev/null and b/content/co-own/img/farm.png differ diff --git a/content/co-own/img/icons.png b/content/co-own/img/icons.png new file mode 100644 index 0000000..b64faf7 Binary files /dev/null and b/content/co-own/img/icons.png differ diff --git a/content/co-own/img/nomad.png b/content/co-own/img/nomad.png new file mode 100644 index 0000000..eb0dece Binary files /dev/null and b/content/co-own/img/nomad.png differ diff --git a/content/co-own/img/world.png b/content/co-own/img/world.png new file mode 100644 index 0000000..3fba133 Binary files /dev/null and b/content/co-own/img/world.png differ diff --git a/content/co-own/index.md b/content/co-own/index.md new file mode 100644 index 0000000..c619b4b --- /dev/null +++ b/content/co-own/index.md @@ -0,0 +1,67 @@ +--- +title: "Co-Own" +description: "" +date: 2018-09-14 +updated: 2021-02-20 +draft: false +weight: 2 +--- + + + +{% row(style="center" margin="narrow" padding="top") %} + +## BECOME A CO-FOUNDER IN OURWORLD NOMADS {#text-4xl} + +Unique co-ownership structure of a diverse real-estate portfolio + +![Image](img/dao2.png) + +{% end %} + + +{% row(style="center" margin="narrow" padding="none") %} + +![](img/world.png#small#mx-auto) + +||| + +![](img/nomad.png#small#mx-auto) + +||| + +![](img/farm.png#small#mx-auto) + + +{% end %} + + +{% row(style="center" margin="narrow" padding="none") %} + +### Become a co-owner of real estate assets on safe locations in the world. {#text-2xl} + +||| + +### Live In Unique Locations designed to the needs of Digital nomads. {#text-2xl} + +||| + +### Make it possible to provide regenerative farming to our communities. {#text-2xl} + + +{% end %} + + + +{% row(style="lean-left" margin="narrow" padding="") %} + +To power OurWorld Digital Nomad DAO, we will create a Digital Nomad Token (DNT) which will act as a proof of co-ownership – providing token holders the following benefits: + +- A seat in the OurWorld Digital Nomad governance system, overseeing the further developments of the community and its ecosystem + +- Yield on future rental of properties and related infrastructure (energy, food, internet generation) +- Preferential access to homes, events and retreats in all locations +- Priority access to organic food reserves and internet capacity +- Ability to reserve premises/locations for private events + +{% end %} diff --git a/content/header/index.md b/content/header/index.md new file mode 100644 index 0000000..8c37e07 --- /dev/null +++ b/content/header/index.md @@ -0,0 +1,165 @@ +--- +title: "Header" +insert_anchor_links: "left" +template: "partials/header.html" +extra: + logoPath: "images/black_threefold.png" + button_Path: "/images/gettft_white.png" +--- + + +- [Mission]("/mission") +- [Grid]("/grid") +- [Build]("/build") +- [Farm]("/farm") +- [TFT]("/tft") +- Ecosystem + +{% row() %} + + + +||| + + + +||| + + + +{% end %} + +- MoreInfo + +{% row(style="wide") %} + + +#### Tools + + + + + + + + + + + + + + + + + +{% end %} \ No newline at end of file diff --git a/content/home/RGAsset 21.png b/content/home/RGAsset 21.png new file mode 100644 index 0000000..839a26f Binary files /dev/null and b/content/home/RGAsset 21.png differ diff --git a/content/home/RGAsset 9.png b/content/home/RGAsset 9.png new file mode 100644 index 0000000..f90d393 Binary files /dev/null and b/content/home/RGAsset 9.png differ diff --git a/content/home/RGAsset10.png b/content/home/RGAsset10.png new file mode 100644 index 0000000..bbeb567 Binary files /dev/null and b/content/home/RGAsset10.png differ diff --git a/content/home/RGAsset11.png b/content/home/RGAsset11.png new file mode 100644 index 0000000..b1b7e8e Binary files /dev/null and b/content/home/RGAsset11.png differ diff --git a/content/home/RGAsset12.png b/content/home/RGAsset12.png new file mode 100644 index 0000000..2aeb561 Binary files /dev/null and b/content/home/RGAsset12.png differ diff --git a/content/home/RGAsset13.png b/content/home/RGAsset13.png new file mode 100644 index 0000000..d313476 Binary files /dev/null and b/content/home/RGAsset13.png differ diff --git a/content/home/RGAsset14.png b/content/home/RGAsset14.png new file mode 100644 index 0000000..a7e1cc7 Binary files /dev/null and b/content/home/RGAsset14.png differ diff --git a/content/home/RGAsset15.png b/content/home/RGAsset15.png new file mode 100644 index 0000000..0de8b2b Binary files /dev/null and b/content/home/RGAsset15.png differ diff --git a/content/home/RGAsset16.png b/content/home/RGAsset16.png new file mode 100644 index 0000000..2954038 Binary files /dev/null and b/content/home/RGAsset16.png differ diff --git a/content/home/RGAsset17.png b/content/home/RGAsset17.png new file mode 100644 index 0000000..797b8a0 Binary files /dev/null and b/content/home/RGAsset17.png differ diff --git a/content/home/RGAsset18.png b/content/home/RGAsset18.png new file mode 100644 index 0000000..5240b67 Binary files /dev/null and b/content/home/RGAsset18.png differ diff --git a/content/home/RGAsset19.png b/content/home/RGAsset19.png new file mode 100644 index 0000000..45f287f Binary files /dev/null and b/content/home/RGAsset19.png differ diff --git a/content/home/RGAsset20.png b/content/home/RGAsset20.png new file mode 100644 index 0000000..3623eb3 Binary files /dev/null and b/content/home/RGAsset20.png differ diff --git a/content/home/RGAsset21.png b/content/home/RGAsset21.png new file mode 100644 index 0000000..839a26f Binary files /dev/null and b/content/home/RGAsset21.png differ diff --git a/content/home/RGAsset8.png b/content/home/RGAsset8.png new file mode 100644 index 0000000..c8ea897 Binary files /dev/null and b/content/home/RGAsset8.png differ diff --git a/content/home/home_header.jpg b/content/home/home_header.jpg new file mode 100644 index 0000000..d89c809 Binary files /dev/null and b/content/home/home_header.jpg differ diff --git a/content/home/index.md b/content/home/index.md new file mode 100644 index 0000000..f76119b --- /dev/null +++ b/content/home/index.md @@ -0,0 +1,174 @@ +--- +title: "Home" +description: "" +date: 2018-09-14 +updated: 2021-02-20 +draft: false +weight: 1 +--- + + + +{% row(margin="header" bgPath="home_header.jpg" bgStyle="full") %} + +# WORK,
LIVE & PLAY + +Our world offers Digital Nomads
truly amazing experiences in some
of the world’s best locations. + + + +{% end %} + +
+
+ + + +{% row(style="center" margin="narrow" padding="bottom") %} + +![REGENERATION](RGAsset10.png#medium) + +### **REGENERATION** + +We offer endless services to heal the body, mind and soul + +||| + +![CONNECTIONS](RGAsset11.png#medium) + +### **CONNECTIONS** + +Our locations are designed to provide intimacy and bring people together + +||| + +![EXPERIENCE](RGAsset12.png#medium) + +### **EXPERIENCE** + +An enviroment that meets people’s personal and professional needs + +{% end %} + + + +{% row(style="center" margin="narrow" padding="none") %} + +![Image](location.jpg) + +||| + +## HAND-PICKED
LOCATIONS + +Carefully chosen locations that offer an array of services and activities ready for all digital nomads + + + +{% end %} + + + +{% row(style="" margin="narrow" padding="top") %} + +![Image](RGAsset14.png#sm#mx-auto) + +||| + +### **CONSCIOUS LIVING** + +Live in sustainable and planet-conscious structures built to support the planet + +||| + +![Image](RGAsset15.png#sm#mx-auto) + +||| + +### **SOVEREIGN INTERNET** + +Take advantage of a high-speed, sovereign and decentralized internet connection! + +{% end %} + + + +{% row(style="" margin="narrow" padding="none") %} + +![Image](RGAsset16.png#sm#mx-auto) + +||| + +### **SUPPORT LOCALS** + +Tackle ESG concerns by working with local communities to empower them + +||| + +![Image](RGAsset17.png#sm#mx-auto) + +||| + +### **COMMUNITY BUILDING** + +We created an environment which allows everyone to work together easily and effectively + +{% end %} + + + +{% row(style="" margin="narrow" padding="bottom") %} + +![Image](RGAsset18.png#sm#mx-auto) + +||| + +### **CO-WORKING SPACES** + +Enjoy the benefits of community-building sessions and tools built specifically for you! + +||| + +![Image](RGAsset19.png#sm#mx-auto) + +||| + +### **BUILT FOR NOMADS** + +Enjoy all the cultural, natural, sports and networking evnts of the locations! + +{% end %} + + + +{% row(style="center" margin="narrow" padding="none") %} + +## REGENERATE
YOURSELF + +Regenerative farming is part of the OurWorld experience + +All residents and staff members have direct access to local organic produce that helps us heal and +empowers the local community! + +||| + +![Image](RGAsset20.png) + +{% end %} + + + +{% row(style="center" margin="narrow" padding="top") %} + +## START YOUR OURWORLD
EXPERIENCE NOW! + +Begin your nomadic journey with us. + + + +{% end %} + +{% row(margin="header" bgPath="journey.jpg" bgStyle="full") %} + +
+ +{% end %} diff --git a/content/home/journey.jpg b/content/home/journey.jpg new file mode 100644 index 0000000..e2adda7 Binary files /dev/null and b/content/home/journey.jpg differ diff --git a/content/home/location.jpg b/content/home/location.jpg new file mode 100644 index 0000000..352201b Binary files /dev/null and b/content/home/location.jpg differ diff --git a/content/invest/img/invest.png b/content/invest/img/invest.png new file mode 100644 index 0000000..d22d2d9 Binary files /dev/null and b/content/invest/img/invest.png differ diff --git a/content/invest/index.md b/content/invest/index.md new file mode 100644 index 0000000..60f691e --- /dev/null +++ b/content/invest/index.md @@ -0,0 +1,175 @@ +--- +title: "invest" +description: "" +date: 2018-09-14 +updated: 2021-02-20 +draft: false +weight: 2 +--- + + + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="Invest") %} + +### BECOME AN INVESTOR + +RESORT IN ZANZIBAR, TANZANIA + +Jungle Paradise is based at Mbweni in Zanzibar and is home to a boutique hotel, botanical gardens and ruins with a rich history. The location was instrumental in abolishing slavery and had a school where mainly slave children had a chance to get educated and become free. The ruins are surrounded by a beautiful botanic garden which supports over 600 different kinds of tree species. It has a mature rainforest atmosphere, only found in a few other places in Zanzibar and Pemba. It has many areas of native plants, including the coral rag forest on the cliff and mangroves on the shoreline. + +This location in the capital is ideal for digital nomads as they have quick access to Zanzibar's business district and airport, while being in a remote and peaceful neighbourhood. + + + +46 ROOMS + +||| + +![bed](img/invest.png) + +{% end %} + + + +{% row(bgColor="#F2F2F2" margin="moderate" padding="top" id="fflow_grid") %} + +### FUN BEACH +HOTEL IN ZANZIBAR, TANZANIA + +

+Fun Beach is a beachfront property in the south-east of Zanzibar which provides a far more relaxed, holiday vibe. It is located between Jambiani and Paje in Zanzibar, an ideal location in close proximity to the Zanzibar nightlife but sufficiently far from the busy tourist hot spots, therefore a perfect fit for digital nomads. +

+ +

+The top class restaurant offers breakfast, lunch and dinner in a range of cuisines - international, Indian, Arabian and more.There are two pools, sized 26m and 27m, on the beach front of the property flowing into each other. They provide a full view of the Indian Ocean. There is also a pool in the centre with small islands and sitting areas. The game room features billiards, ping pong, and a football table in addition to a TV and library area. Throughout Fun Beach there is ultra-fast wifi connectivity. +

+ +![bed](img/bed.png#icon) + +

+40 ROOMS +

+ +||| + +![fun](img/fun2.png#large) + +{% end %} + + + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### NILE VEDA +BOATS IN LUXOR, EGYPT + +

+Dahabiyas are traditional sailing boats used on the Nile river. This location includes four dahabiyas that offer peaceful and organic platforms for its visitors. The boats are located on the Nile River in Luxor, Egypt. They are originally designed for private trips along the Nile offering a unique and authentic experience with organic food, green energy, and a warm-hearted crew. The four dahabiyas total have 29 rooms and 10 suites that can host up to 78 people. Each room has a private bathroom. All boats have clean, modern and authentic communal areas for relaxation and co-working. There are many meeting spaces including an upper deck meeting room with a 360 degree panoramic view of the Nile. +

+ +![bed](img/bed.png#icon) + +

+39 ROOMS +

+ +||| + +![veda](img/nile2.png#large) + +{% end %} + + + + +{% row(bgColor="#F2F2F2" margin="moderate" padding="top" id="fflow_grid") %} + +### YENICE VALLEY +RESORT IN MUGLA, TURKEY + +

+The concept of Yenice Valle grew from a love of traditional Turkish village life and the desire to sustain our natural environment. Yenice Valley has come to reality in a secluded valley, surrounded by tree-covered mountains, with accommodation built using traditional local materials, to include a treehouse, stone cottages, and a log cabin, each in plenty of space, well-furnished and fully equipped. The focal point is a stunning stone-built boutique hotel, which fits perfectly with the surrounding countryside. +

+ +![bed](img/bed.png#icon) + +

+55 ROOMS +

+ +||| + +![tr](img/turkey2.png#large) + + + +{% end %} + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### PARADISE HILLS +TOWNHOUSES IN DUBAI, UAE + +

+Paradise Hills is located right within the heart of Dubai and offers a unique luxurious experience. It is an ultra-modern gated community housing 170 pent suites and townhouses, accompanied with stellar amenities and remarkable landscaping in the extensive estate grounds. There are three suites and townhouses, containing 15 rooms, available for digital nomads. Paradise Hills' state-of-the-art amenities include, but are not limited to; community center with retail shops and services, 24-hour security, kids play areas, spacious green areas with water features, jogging tracks, and a dedicated multi-purpose building hall for various occasions and functions such as weddings, international conferences, and events. +

+ +![bed](img/bed.png#icon) + +

+15 ROOMS +

+ +||| + +![p_hills](img/dubai2.png#large) + +{% end %} + + + +{% row(bgColor="#F2F2F2" margin="moderate" padding="top" id="fflow_grid") %} + +### CITY OF PEACE +RESORT IN DAR ES SALAAM, TANZANIA + +

+We have a unique opportunity to acquire 2 million square metres of beachfront land just south of Dar-es-Salaam and turn it into a new home for digital nomads. The plot is 30km south-east of Dar-es-Salaam. It provides a refuge for digital nomads who wish to be away from city life and a staging point for those who want to visit the famous Serengeti National Park or Ngorongoro Crater, Lake Manyara, Sealous Game Reserve and Zanzibar. However, it is not unreasonably far from the business hub of Dar-es-Salaam and the airport. +

+ +

+There are 32 hectares of built-up land in the plot, consisting of 10 bungalows with thatched roofs. These bungalows have Wi-Fi, TVs, living areas, safes, tea & coffeemaking facilities and they all have terraces with ocean views. +

+ +![bed](img/bed.png#icon) + +

+60 ROOMS +

+ +||| + +![tr](img/dar2.png#large) + +{% end %} + + + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### FARMS +MULTIPLE LANDS IN TANZANIA + +

+Located in the middle of Lake Victoria, Lake Malawi and Lake Tanganyika, Tanzania has one of Africa's most fertile lands. The farm lands in Tanzania are significantly cheaper than lands in Zanzibar. We aim to acquire up to 500 hectares of land in mainland Tanzania. This acquisition will be done in phases based on the priorities of the project at the time. +

+ +

+Up to 50 hectares of land is planned to be acquired. Our team is still scouting for more farmlands across the Zanzibar archipelago. Many pieces of land are identified and we are in contact with the relevant authorities for further steps. Even though the identified farming lands are in many locations in Zanzibar, we plan to acquire a majority of the land from Bambi in Unguja Island and Pemba Island. The first land in Bambi has already been purchased. +

+ +||| + +![tr](img/bambi2.png#large) + +{% end %} \ No newline at end of file diff --git a/content/locations/LOCATIONS_img.png b/content/locations/LOCATIONS_img.png new file mode 100644 index 0000000..d22d2d9 Binary files /dev/null and b/content/locations/LOCATIONS_img.png differ diff --git a/content/locations/img/bambi2.png b/content/locations/img/bambi2.png new file mode 100644 index 0000000..f7e14bf Binary files /dev/null and b/content/locations/img/bambi2.png differ diff --git a/content/locations/img/bed.png b/content/locations/img/bed.png new file mode 100644 index 0000000..59d52db Binary files /dev/null and b/content/locations/img/bed.png differ diff --git a/content/locations/img/dar2.png b/content/locations/img/dar2.png new file mode 100644 index 0000000..dbce90a Binary files /dev/null and b/content/locations/img/dar2.png differ diff --git a/content/locations/img/dubai2.png b/content/locations/img/dubai2.png new file mode 100644 index 0000000..dda031a Binary files /dev/null and b/content/locations/img/dubai2.png differ diff --git a/content/locations/img/fun2.png b/content/locations/img/fun2.png new file mode 100644 index 0000000..053e247 Binary files /dev/null and b/content/locations/img/fun2.png differ diff --git a/content/locations/img/jp2.png b/content/locations/img/jp2.png new file mode 100644 index 0000000..9af4250 Binary files /dev/null and b/content/locations/img/jp2.png differ diff --git a/content/locations/img/nile2.png b/content/locations/img/nile2.png new file mode 100644 index 0000000..f3f10ec Binary files /dev/null and b/content/locations/img/nile2.png differ diff --git a/content/locations/img/turkey2.png b/content/locations/img/turkey2.png new file mode 100644 index 0000000..225fb09 Binary files /dev/null and b/content/locations/img/turkey2.png differ diff --git a/content/locations/index.md b/content/locations/index.md new file mode 100644 index 0000000..56e3923 --- /dev/null +++ b/content/locations/index.md @@ -0,0 +1,181 @@ +--- +title: "locations" +description: "" +date: 2018-09-14 +updated: 2021-02-20 +draft: false +weight: 1 +--- + + + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### JUNGLE PARADISE + +RESORT IN ZANZIBAR, TANZANIA + +

+Jungle Paradise is based at Mbweni in Zanzibar and is home to a boutique hotel, botanical gardens and ruins with a rich history. The location was instrumental in abolishing slavery and had a school where mainly slave children had a chance to get educated and become free. The ruins are surrounded by a beautiful botanic garden which supports over 600 different kinds of tree species. It has a mature rainforest atmosphere, only found in a few other places in Zanzibar and Pemba. It has many areas of native plants, including the coral rag forest on the cliff and mangroves on the shoreline. +

+ +

+This location in the capital is ideal for digital nomads as they have quick access to Zanzibar's business district and airport, while being in a remote and peaceful neighbourhood. +

+ +![bed](img/bed.png#icon) + +

+46 ROOMS +

+ +||| + +![jp](img/jp2.png#large) + +{% end %} + + + +{% row(bgColor="#F2F2F2" margin="moderate" padding="top" id="fflow_grid") %} + +### FUN BEACH +HOTEL IN ZANZIBAR, TANZANIA + +

+Fun Beach is a beachfront property in the south-east of Zanzibar which provides a far more relaxed, holiday vibe. It is located between Jambiani and Paje in Zanzibar, an ideal location in close proximity to the Zanzibar nightlife but sufficiently far from the busy tourist hot spots, therefore a perfect fit for digital nomads. +

+ +

+The top class restaurant offers breakfast, lunch and dinner in a range of cuisines - international, Indian, Arabian and more.There are two pools, sized 26m and 27m, on the beach front of the property flowing into each other. They provide a full view of the Indian Ocean. There is also a pool in the centre with small islands and sitting areas. The game room features billiards, ping pong, and a football table in addition to a TV and library area. Throughout Fun Beach there is ultra-fast wifi connectivity. +

+ +![bed](img/bed.png#icon) + +

+40 ROOMS +

+ +||| + +![fun](img/fun2.png#large) + +{% end %} + + + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### NILE VEDA +BOATS IN LUXOR, EGYPT + +

+Dahabiyas are traditional sailing boats used on the Nile river. This location includes four dahabiyas that offer peaceful and organic platforms for its visitors. The boats are located on the Nile River in Luxor, Egypt. They are originally designed for private trips along the Nile offering a unique and authentic experience with organic food, green energy, and a warm-hearted crew. The four dahabiyas total have 29 rooms and 10 suites that can host up to 78 people. Each room has a private bathroom. All boats have clean, modern and authentic communal areas for relaxation and co-working. There are many meeting spaces including an upper deck meeting room with a 360 degree panoramic view of the Nile. +

+ +![bed](img/bed.png#icon) + +

+39 ROOMS +

+ +||| + +![veda](img/nile2.png#large) + +{% end %} + + + + +{% row(bgColor="#F2F2F2" margin="moderate" padding="top" id="fflow_grid") %} + +### YENICE VALLEY +RESORT IN MUGLA, TURKEY + +

+The concept of Yenice Valle grew from a love of traditional Turkish village life and the desire to sustain our natural environment. Yenice Valley has come to reality in a secluded valley, surrounded by tree-covered mountains, with accommodation built using traditional local materials, to include a treehouse, stone cottages, and a log cabin, each in plenty of space, well-furnished and fully equipped. The focal point is a stunning stone-built boutique hotel, which fits perfectly with the surrounding countryside. +

+ +![bed](img/bed.png#icon) + +

+55 ROOMS +

+ +||| + +![tr](img/turkey2.png#large) + + + +{% end %} + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### PARADISE HILLS +TOWNHOUSES IN DUBAI, UAE + +

+Paradise Hills is located right within the heart of Dubai and offers a unique luxurious experience. It is an ultra-modern gated community housing 170 pent suites and townhouses, accompanied with stellar amenities and remarkable landscaping in the extensive estate grounds. There are three suites and townhouses, containing 15 rooms, available for digital nomads. Paradise Hills' state-of-the-art amenities include, but are not limited to; community center with retail shops and services, 24-hour security, kids play areas, spacious green areas with water features, jogging tracks, and a dedicated multi-purpose building hall for various occasions and functions such as weddings, international conferences, and events. +

+ +![bed](img/bed.png#icon) + +

+15 ROOMS +

+ +||| + +![p_hills](img/dubai2.png#large) + +{% end %} + + + +{% row(bgColor="#F2F2F2" margin="moderate" padding="top" id="fflow_grid") %} + +### CITY OF PEACE +RESORT IN DAR ES SALAAM, TANZANIA + +

+We have a unique opportunity to acquire 2 million square metres of beachfront land just south of Dar-es-Salaam and turn it into a new home for digital nomads. The plot is 30km south-east of Dar-es-Salaam. It provides a refuge for digital nomads who wish to be away from city life and a staging point for those who want to visit the famous Serengeti National Park or Ngorongoro Crater, Lake Manyara, Sealous Game Reserve and Zanzibar. However, it is not unreasonably far from the business hub of Dar-es-Salaam and the airport. +

+ +

+There are 32 hectares of built-up land in the plot, consisting of 10 bungalows with thatched roofs. These bungalows have Wi-Fi, TVs, living areas, safes, tea & coffeemaking facilities and they all have terraces with ocean views. +

+ +![bed](img/bed.png#icon) + +

+60 ROOMS +

+ +||| + +![tr](img/dar2.png#large) + +{% end %} + + + +{% row(bgColor="#FFFFFF" margin="moderate" padding="top" id="fflow_grid") %} + +### FARMS +MULTIPLE LANDS IN TANZANIA + +

+Located in the middle of Lake Victoria, Lake Malawi and Lake Tanganyika, Tanzania has one of Africa's most fertile lands. The farm lands in Tanzania are significantly cheaper than lands in Zanzibar. We aim to acquire up to 500 hectares of land in mainland Tanzania. This acquisition will be done in phases based on the priorities of the project at the time. +

+ +

+Up to 50 hectares of land is planned to be acquired. Our team is still scouting for more farmlands across the Zanzibar archipelago. Many pieces of land are identified and we are in contact with the relevant authorities for further steps. Even though the identified farming lands are in many locations in Zanzibar, we plan to acquire a majority of the land from Bambi in Unguja Island and Pemba Island. The first land in Bambi has already been purchased. +

+ +||| + +![tr](img/bambi2.png#large) + +{% end %} \ 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..e132fbe --- /dev/null +++ b/css/index.css @@ -0,0 +1,386 @@ +/*! 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-none 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-5xl xl:text-7xl font-bold leading-none my-4; + font-family: "lato", sans-serif; + line-height: 0.9; + + } + h2 strong { + @apply font-medium; + } + h3 { + @apply text-xl lg:text-4xl font-normal my-4; + } + h3 strong { + @apply font-medium; + } + h4 { + @apply text-xl lg:text-xl font-normal; + } + 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-xl leading-tight tracking-normal font-normal my-4; + 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 + mr-5 + my-4 + border-2 + shadow + } +} + +button:hover { + color: #984210; +} + +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 .freeflow { + background-color: transparent; + position: absolute; +} + +footer .freeflow { + width: 100vw; + background-color: #FFFFFF; + display: flex; + flex-direction: column; + align-items: center; + padding: 40px; +} + +footer .freeflow img { + width: 60px; +} + + +header .freeflow div { + box-shadow: none; + text-transform: uppercase; + font-weight: 700 !important; +} + +button { + background: transparent; + color: black; + border-radius: 10px; + border: 2px solid black; + box-shadow: none; + font-size: 20px; +} + +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; + } + + 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/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/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/RGAsset8.png b/static/images/RGAsset8.png new file mode 100644 index 0000000..c8ea897 Binary files /dev/null and b/static/images/RGAsset8.png differ diff --git a/static/images/nomads_logo.png b/static/images/nomads_logo.png new file mode 100644 index 0000000..f90d393 Binary files /dev/null and b/static/images/nomads_logo.png differ diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..2331478 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,18 @@ +/** @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: [], +} diff --git a/templates/_default/base.html b/templates/_default/base.html new file mode 100644 index 0000000..cd756af --- /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..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..2876ea7 --- /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=" ") %} + + \ 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..f335da8 --- /dev/null +++ b/templates/partials/header.html @@ -0,0 +1,226 @@ + + + + + + +{% 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 @@ +
    + {% 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" %} + {% 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/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/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/fflow_experiences.html b/templates/shortcodes/fflow_experiences.html new file mode 100644 index 0000000..02e6da3 --- /dev/null +++ b/templates/shortcodes/fflow_experiences.html @@ -0,0 +1,52 @@ + +
    +
    +
    + +
    +
    + +
    +
    +
    +

    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/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..0285595 --- /dev/null +++ b/templates/shortcodes/row.html @@ -0,0 +1,225 @@ + + + + +{% 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 ~ " lg:items-center" %} +{% endif %} + +{% set col_class = "flex-1 mb-4 md:mb-12 lg:mb-0 lg:mx-2 xl:mx-4" %} + + +{% set row_id = '' %} + +{% if id %} +{% set row_id = id %} + +{% endif %} + + + +{% set padding_class = " py-8 md:py-8 lg:py-28" %} + +{% if padding %} + {% if "none" in padding %} + {% set padding_class = " py-0" %} + {% elif "top" in padding %} + {% set padding_class = " py-2 md:py-4 lg:pt-28" %} + {% elif "bottom" in padding %} + {% set padding_class = " py-2 md:py-4 lg:pb-28" %} + {% 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-8 sm:mx-16 md:mx-20 lg:mx-28" %} + {% elif "narrow" in margin %} + {% set margin_class = " mx-12 sm:mx-20 md:mx-28 lg:mx-40" %} + {% elif "tight" in margin %} + {% set margin_class = " mx-20 sm:mx-32 md:mx-40 lg:mx-80 xl:mx-96" %} + {% elif "header" in margin %} + {% set margin_class = " mx-12 sm:mx-20 md:mx-28 lg:mx-40 my-10" %} + {% 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 mx-auto " %} + {% 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/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