remove unnecessary files

This commit is contained in:
timurgordon
2024-04-02 02:51:00 -04:00
parent a3d9804ebf
commit 7b66d399b5
69 changed files with 4 additions and 3669 deletions

1
.env
View File

@@ -1 +0,0 @@
SHOWPRIVATE=true

16
.gitignore vendored
View File

@@ -1,35 +1,19 @@
examples/builder
examples/docker
examples/publisher
examples/texttools
examples/gittools
examples/tmux
examples/vredis2
*dSYM/
publisher/publish
install_publisher
.vmodules/
vex_webserver
publishtools/publishtools
.vscode
*.log
!.env.example
.cache
.DS_Store
src/.temp
content/person
content/project
node_modules
!.env.example
.env
.env.*
yarn.lock
.installed
package-lock.json
dist
.temp
run*
install*
public
static/css
tailwindcss

4
.gitmodules vendored
View File

@@ -1,4 +0,0 @@
[submodule "threefold_data"]
path = threefold_data
url = https://github.com/threefoldfoundation/threefold_data.git
ignore = dirty

View File

@@ -1,7 +0,0 @@
SHELL := /bin/bash
build:
. ./build.sh
start:
. ./start.sh

View File

@@ -1,46 +0,0 @@
echo "Starting build..."
# TODO: Check if current version is latest to avoid redundant installation
if [[ -f "tailwindcss" ]]
then
echo "Tailwind installed"
else
# rm tailwindcss
# 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
fi
# 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

View File

@@ -1,97 +0,0 @@
# The URL the site will be built for
base_url = "https://dev.threefold.io"
# Change this to your own URL! Please note this variable **must** be uncommented .
title = "ThreeFold"
description = "Our global digital backbone"
# When set to "true", a feed is automatically generated.
generate_feed = true
# The filename to use for the feed. Used as the template filename, too.
# Defaults to "atom.xml", which has a built-in template that renders an Atom 1.0 feed.
# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed.
feed_filename = "atom.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
# 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 = false
# 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 = 6
paginate_path = "blog-posts"
[[taxonomies]]
name = "partners-category"
feed = true
paginate_by = 6
paginate_path = "partner-card"
[[taxonomies]]
name = "news-category"
feed = true
paginate_by = 6
paginate_path = "news-card"
[[taxonomies]]
name = "roles"
feed = true
paginate_by = 2
paginate_path = "join-us"
[[taxonomies]]
name = "tags"
feed = true
paginate_by = 9
paginate_path = "tags"
[[taxonomies]]
name = "people"
feed = true
paginate_by = 9
paginate_path = "people"
[[taxonomies]]
name = "memberships"
feed = true
paginate_by = 8
paginate_path = "people/memberships"
[extra]
# Put all your custom variables here

View File

@@ -1,51 +0,0 @@
---
id: solar_comparison
title: "Exploring the Parallels Between Decentralized Energy and Internet Capacity"
image_caption: Solar and ThreeFold
description: Read how the decentralization of the energy and internet industries are empowering individuals and communities.
date: 2024-03-01
taxonomies:
people: [emilie_ouwerx]
tags: [threefold_grid, peer_to_peer, community, farming]
categories: [foundation]
extra:
imgPath: solar_comparison.png
---
In recent years, we've witnessed a transformation in how energy is generated and distributed, marking a shift towards a more sustainable and democratic system. This change has been most notable in the transition from centralized energy production, particularly nuclear power, to decentralized solar energy. The latter empowers individuals and communities to produce their energy locally, an alternative to the traditional approach to power generation.
<br>
Similarly, the Internet landscape, typically dominated by massive data centers and centralized servers, is experiencing a shift towards decentralization. These movements share a common ethos to empower individuals and communities.
### **The Rise of Decentralized Solar Energy**
Decentralized solar energy has transformed the landscape of power generation. Unlike the centralized model, where nuclear power plants are often miles away from the end-users and controlled by large corporations or government bodies, solar energy allows for energy production right where it's needed—at home or within the community.
<br>
By installing solar panels on rooftops or creating local solar farms, individuals can capture the sun's energy directly. This shift not only reduces our dependency on distant power plants and the complex grid systems but also mitigates the risks associated with them.
<br>
This localized energy production model enhances sustainability by tapping into an inexhaustible natural resource and encourages a more environmentally conscious and self-sufficient society. It signifies a move away from the centralized, traditional systems of energy production, returning power to the people and prioritizing the planet's well-being.
### **ThreeFold: Pioneering a Decentralized Digital Future**
Parallel to the energy sector's evolution, the digital world is also undergoing a transformation, led by innovative platforms like ThreeFold. Just as decentralized solar energy provides an alternative to the centralized power generation model, ThreeFold is reshaping the cloud computing landscape with its autonomous edge cloud.
<br>
ThreeFold's model deviates from the norm, where cloud services are dominated by a few massive data centers. Instead, we depend on our global network of independent nodes set up by individuals and businesses to contribute their own computing and storage resources to the cloud. This approach democratizes access to cloud resources, bolstering data privacy, security, and resilience against potential outages or cyberattacks.
<br>
![Image](solar.png#mx-auto)
<br>
Beyond merely disrupting the existing model, ThreeFold aims to foster a more sustainable, efficient, and user-centric internet. Distributing decentralized infrastructure worldwide reduces the environmental footprint associated with large data centers and promotes fairer internet resource distribution.
<br>
Both the shift towards decentralized solar energy and ThreeFold's revolutionary approach to cloud computing reflect a broader movement towards decentralization. This movement is not just about bringing alternatives to existing systems but about creating a more inclusive, resilient, and sustainable future for all.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -1,52 +0,0 @@
---
id: three_layers
title: "How the Internet Works"
image_caption: How the Internet Works
description: Learn about the layers of the Internet to grasp how digital information is processed, stored, and accessed.
date: 2024-03-04
taxonomies:
people: [emilie_ouwerx]
tags: [threefold_grid, peer_to_peer, technology]
categories: [foundation]
extra:
imgPath: three_layers.png
isFeatured: true
---
The Internet is complex and multi-layered, touching virtually every aspect of our modern lives. At its core, it comprises three essential layers: compute & storage, network, and application. Understanding these components is key to grasping how digital information is processed, stored, and accessed across the globe.
<br>
This blog post will explore these foundational aspects of the Internet and share insights into ThreeFold's journey in reshaping the global Cloud & Internet infrastructure.
### **The Three Layers of the Internet**
Understanding the three fundamental layers of the Internets architecture is crucial to grasping how digital services are delivered to end-users around the globe. Let's break down these components:
#### **Compute & Storage**
Compute is the powerhouse of the Internet, providing the necessary processing power to run the various software applications and services that populate the Internet. This involves everything from simple web hosting to complex computational tasks like data analysis and artificial intelligence. In essence, it's the brain behind the operations, turning code into action. Compute resources are provided by servers located in data centers, cloud platforms, and increasingly, decentralized networks.
<br>
Storage acts as the Internet's memory, a space where data is securely kept for future access. This includes everything from your personal photos and documents to the databases that store website content and user information. Efficient and reliable storage solutions are vital for keeping the Internet's vast amount of information organized and accessible.
#### **Network**
The network is the Internet's circulatory system, consisting of the physical and virtual connections that enable data to flow from one point to another. This includes the cables, satellites, routers, and protocols that transport information across the globe, ensuring that an email or a video call can reach its destination in milliseconds.
#### **Applications**
At the top of the Internet stack are applications — the user-facing software that provides the services and experiences we interact with daily. Applications range from web browsers and social media to more complex systems like blockchain platforms and decentralized apps (dApps). They are the interface through which users interact with the digital world.
### **Blockchain's Place in the Application Layer**
Blockchain technology, known for its decentralized and secure nature, resides within the application layer of the Internet. It offers a revolutionary approach to conducting transactions, managing data, and establishing trust online, offering a level of security, transparency, and efficiency previously unattainable with traditional centralized systems. As a part of the application layer, blockchain applications leverage the underlying compute, storage, and network infrastructure to operate efficiently and securely. The full blockchain landscape can run on top of ThreeFolds Internet stack.
### **ThreeFold Today: Focusing on Compute and Storage**
At ThreeFold, we're committed to enhancing the foundational layers of the Internet, with a particular focus to date on compute and storage. Our journey has been driven by the belief that decentralizing these components can lead to a more secure, efficient, and equitable digital world. By distributing compute power and storage capacity across a global network, we aim to reduce reliance on centralized data centers, mitigate privacy and security risks, and lower the environmental impact of digital infrastructure.
### **The Road Ahead: Expanding to Connectivity**
Looking to the future, ThreeFold plans to integrate advanced connectivity solutions into our ecosystem. Recognizing the importance of robust network infrastructure, we're dedicated to improving bandwidth and reducing latency to ensure seamless access to digital services for everyone, everywhere. This expansion is not only about enhancing Internet performance but also about empowering blockchain applications and other innovations that depend on strong connectivity to thrive.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,23 +0,0 @@
---
id: endfeb2024update
title: 💡 End of Feb Update from the Team
image_caption: End Of Feb Update
description: Stay tuned for the latest team updates from February and mark your calendars for our upcoming community call!
date: 2024-02-29
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [foundation]
extra:
imgPath: endfeb2024update.png
---
Follow the link below to find an update from the ThreeFold team!
<br/>
At a high level, as the grid is now commercially ready, we have been and are focused on making remaining improvements to ensure its scalability, reliability, and usability, and working with some core orgs and partners on bringing utilization to the grid at scale.
<br/>
Read the full update [here](https://forum.threefold.io/t/end-feb-2024-update-from-the-team/4233). We'll be going deeper into these topics in upcoming communication and on the community call in March.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,20 +0,0 @@
---
id: farmerbotupdaterecommended
title: 🔄 Farmerbot Update Recommended
image_caption: Farmer update recommedation
description: We are recommending all farmers using farmerbot to update to the new and improved version
date: 2024-02-20
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [technology]
extra:
imgPath: farmerbotupdaterecommended.png
---
After much testing, we are recommending all farmers using farmerbot to update to the new and improved version. You can find comprehensive instructions [here](https://www.manual.grid.tf/farmers/farmerbot/farmerbot_intro.html) in the manual.
<br/>
*Please find the highlights of the update [here](https://forum.threefold.io/t/update-on-new-farmerbot/4203). Thanks to all involved in bringing the upgrade live.*

View File

@@ -1,23 +0,0 @@
---
id: introducingtfrobot
title: 🤖 Introducing TFRobot
image_caption: Introducing TFRobot
description: A new and exciting ThreeFold tool has recently been launched!
date: 2024-02-26
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [technology]
extra:
imgPath: introducingtfrobot.png
---
Meet tfrobot, designed to help you quickly deploy many VMs on the ThreeFold Grid at once.
<br/>
Inside of [our full update](https://forum.threefold.io/t/introducing-tfrobot/4222): read about what tfrobot can do, how to get tfrobot, and how it helps to keep the grid strong.
<br/>
*Give tfrobot a try and let us know what you think. Questions are always welcomed! Thanks to the team and testers for pushing this important feature through. 🙏️*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -1,27 +0,0 @@
---
id: manualupdatesfeb2024
title: 📚 New on the Manual
image_caption: Manual Update
description: There have been plenty of updates to the manual since our last update in January!
date: 2024-02-27
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [technology]
extra:
imgPath: manualupdatesfeb2024.png
---
There are now two distinct sections, documentation (for tutorials and practical information), and knowledge base (for helpful context and info on the project, how it works, our history, and more).
<br/>
New content includes: Updated TF Dashboard, TFCMD & TFROBOT, Grid Deployment, Updated Farmerbot, Mycelium and Grid Billing.
<br/>
Dive into the [full update](https://forum.threefold.io/t/tfgrid-manual-updates-february-2024/4229) for more.
<br/>
*If there are specific topics or sections that you feel are missing from the manual, or if you have any questions, please let us know.*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,23 +0,0 @@
---
id: newdashboardtesting
title: 📣 New Dashboard Testing
image_caption: New UI/UX Dashboard
description: The new UI/UX of our new dashboard is up for testing.
date: 2024-02-02
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [foundation]
extra:
imgPath: newdashboardtesting.png
---
The new [UI/UX](https://next.dashboard.grid.tf/) of our new dashboard is up for testing.
<br/>
Great changes around the contracts page, nodes & farmer management pages, and everything you need for deployment is now neatly categorized and [much more](https://forum.threefold.io/t/the-new-and-improved-tf-grid-dashboard-ui-ux/4202).
<br/>
*Thanks to all those involved in this release and bringing it live! We are always open to [feedback](https://github.com/threefoldtech/test_feedback).*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 KiB

View File

@@ -1,27 +0,0 @@
---
id: tfherdaoevent
title: 🇹🇿 ThreeFold x H.E.R. DAO Dar Dev Meetup
image_caption: Dev meetup H.E.R
description: We're excited to announce our partnership with H.E.R. DAO for a developer meetup in Dar Es Salaam, Tanzania next week, showcasing demos on deploying on the ThreeFold Grid.
date: 2024-02-01
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [technology]
extra:
imgPath: tfherdaoevent.png
---
For those in Tanzania, we're excited to be partnering with H.E.R. DAO to run a developer meetup next week in Dar Es Salaam. The event will include demos of how to add capacity to and deploy on top of a sovereign internet infrastructure, the ThreeFold Grid.
<br/>
As well, we'll be hearing from Tracey Bowen, Founder of H.E.R. DAO., and exploring the beginnings of a Dar-based Dunia Yetu Coding Academy.
<br/>
Event details and RSVP [here](https://lu.ma/threefoldherdao).
<br/>
[H.E.R. DAO](https://www.her-dao.xyz/) *is a developer DAO championing innovation + diversity and we're proud to be collaborating!*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -1,16 +0,0 @@
---
id: tfherdaorecap
title: 🇹🇿 Recap- ThreeFold X H.E.R. DAO Developer Meetup
image_caption: Dev meetup H.E.R
description: Here is a recap and on all that happened on our developer meet along side H.E.R DAO in Dar Es Salaam
date: 2024-02-08
taxonomies:
people: [bernadette_amanda_caster]
tags: [technology,update,threefold_grid,community,news]
news-category: [technology]
extra:
imgPath: tfherdaorecap.png
---
This Monday, ThreeFold collaborated with H.E.R. DAO on a developer meetup in Dar Es Salaam to follow up on our first Dunia Yetu gathering last month. We invite you to [read about the meetup](https://www.threefold.io/blog/threefold-herdao-dar/) and learn about the next steps for the Dunia Yetu movement.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -1,361 +0,0 @@
:root {
--md-admonition-icon--note: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z'/></svg>");
--md-admonition-icon--abstract: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z'/></svg>");
--md-admonition-icon--info: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2z'/></svg>");
--md-admonition-icon--tip: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.58.58 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27z'/></svg>");
--md-admonition-icon--success: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='m9 20.42-6.21-6.21 2.83-2.83L9 14.77l9.88-9.89 2.83 2.83L9 20.42z'/></svg>");
--md-admonition-icon--question: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10z'/></svg>");
--md-admonition-icon--warning: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2 1 21z'/></svg>");
--md-admonition-icon--failure: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6.91 17.09 4 12 9.09 6.91 4 4 6.91 9.09 12 4 17.09 6.91 20 12 14.91 17.09 20 20 17.09 14.91 12 20 6.91z'/></svg>");
--md-admonition-icon--danger: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11 15H6l7-14v8h5l-7 14v-8z'/></svg>");
--md-admonition-icon--bug: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 12h-4v-2h4m0 6h-4v-2h4m6-6h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6.002 6.002 0 0 0-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8z'/></svg>");
--md-admonition-icon--example: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 13v-2h14v2H7m0 6v-2h14v2H7M7 7V5h14v2H7M3 8V5H2V4h2v4H3m-1 9v-1h3v4H2v-1h2v-.5H3v-1h1V17H2m2.25-7a.75.75 0 0 1 .75.75c0 .2-.08.39-.21.52L3.12 13H5v1H2v-.92L4 11H2v-1h2.25z'/></svg>");
--md-admonition-icon--quote: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3l-2 4z'/></svg>");
--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,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"></svg>');
-webkit-mask-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"></svg>');
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,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"></svg>');
-webkit-mask-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"></svg>');
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);
}

View File

@@ -1,94 +0,0 @@
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%);
}
.active {
color: #2E83FF;
}
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%);
}
}
*/

View File

@@ -1,9 +0,0 @@
/* === handling obliquing issues in Firefox */
@supports (-moz-appearance: none) {
.italic, i, cite, em, var, address, dfn, h3, .h3, h5, .h5 {
font-style: oblique 8deg;
}
}
/* === end, handling obliquing issues in Firefox */

View File

@@ -1,509 +0,0 @@
/*! purgecss start ignore */
/* @import "nav.css"; */
@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=Ubuntu&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&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*="#medium"] {
width: 400px;
margin: auto;
}
img[src*="#logo"] {
max-width: min(250px, 100%);
margin: auto;
}
img[src*="#icon"] {
width: 200px;
margin: auto;
}
img[src*="#social"] {
width: 100px;
margin: auto;
}
img[src*="#large"] {
width: 700px;
margin: auto;
}
img[src*="#tft_img"] {
width: 150px;
margin: auto;
}
img[src*="#absolute"] {
position: absolute;
left: 0;
top: 0;
}
a img:hover{
opacity: 0.5 !important;
cursor: pointer;
}
.footer-cust a{
color: #999;
cursor: pointer;
}
.footer-cust a:hover {
color: rgb(65, 65, 65);
}
.footer-cust h6{
margin-bottom: 15px;
}
.logo_size{
width:200px
}
h1 {
line-height: 3rem;
}
.blue{
color:#2E83FF
}
.nav p > a {
display: flex;
width: 100%;
flex-direction: column;
align-items: flex-start;
text-align: left;
line-height: 1.5rem;
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
border-radius: 0.25rem;
border-width: 2px;
border-color: transparent;
padding: 0.5rem;
margin-top: 0.75rem;
margin-bottom: 0.75rem;
display: inline-block;
border-width: 2px;
border-color: rgb(0 0 0 / var(--tw-border-opacity));
padding-left: 3rem;
padding-right: 3rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
text-transform: capitalize;
box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
}
.nav p > a:hover {
--tw-border-opacity: 1;
border-color: rgb(231 229 228 / var(--tw-border-opacity));
--tw-bg-opacity: 1;
background-color: rgb(245 245 244 / var(--tw-bg-opacity));
}
@layer components {
h1 {
@apply text-4xl lg:text-6xl font-normal;
color: #2b2b2b;
}
h2 {
@apply text-3xl lg:text-4xl my-4 font-normal leading-none;
color: #2b2b2b;
}
h2 strong {
@apply font-semibold;
}
h3 {
@apply text-2xl lg:text-3xl my-4 font-extralight;
color: #2b2b2b;
}
h3 strong {
@apply font-normal;
}
h4 {
@apply text-xl lg:text-2xl font-normal;
}
h5 {
@apply text-md my-1 tracking-widest text-zinc-500 font-semibold;
}
h6 {
@apply text-md not-italic font-normal my-1;
}
p {
@apply text-lg;
color: #3d3d3d;
}
blockquote {
@apply border-l-4 border-gray-400 mx-2 my-2 p-2;
}
li {
@apply text-base lg:text-base font-normal;
}
li li {
@apply text-sm lg:text-sm font-light;
}
button {
@apply
inline-block
lg:text-lg
lg:mr-3
py-1
my-4
border
rounded
shadow
border-gray-400
capitalize
bg-gray-200
}
.my-header h4{
color:#9f9f9f;
}
h3 a{
color:#2b2b2b;
}
h3 a:hover{
color:#2E83FF;
}
.article h2{
font-size: 2.25rem;
font-family: Lato,sans-serif!important;
line-height: 1.5;
font-weight: 700;
color:#333;
}
.article h1{
font-family: Lato,sans-serif!important;
}
}
.article p{
font-size: 1.125rem;
font-family: Lato,sans-serif!important;
line-height: 1.7;
color:#333
}
.post-content-text a, .article a{
color: #4ec48f;
}
.post-content-text a:hover, .article a:hover{
color: #2e9969;
}
.article li{
font-size: 1.125rem;
}
.main-title {
font-family: Lato,sans-serif!important;
}
button:hover :is(:where(a)) {
color: #5e5e5e;
}
button :is(:where(p)) {
color: #3d3b39;
font-weight: 400;
}
button a {
line-height: 1.3;
@apply
text-black
px-12
}
.long-text a{
padding-left: 2rem;
padding-right: 2rem;
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity));
}
a {
border-width: 0px;
}
header {
font-family: "Work Sans";
}
.nav_btn {
margin: 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;
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;
-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;
}
.my-test{
font-family: "Work Sans", sans-serif !important;
}
.post-content-text .my-test {
font-family: "Work Sans", sans-serif !important;
line-height: 1.7;
}
.post-content-text h2 {
font-family: Lato,sans-serif!important;
line-height: 1.5;
font-size: 2.25rem;
font-weight: 700;
}
.container-fluid {
width: 100%;
/* padding-right: 15px;
padding-left: 15px; */
margin-right: auto;
margin-left: auto;
}
.zola-anchor {
display: none;
}
@media (min-width: 1024px){
h2 {
font-size: 3.5rem;
}
}
@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;
}
.article h2{
font-size: 1.5rem;
}
img[src*="#medium"] {
width: 250px;
margin: auto;
}
img[src*="#sm_none"] {
display: none;
}
}
header #menu button {
@apply
lg:text-lg
px-6
py-1
lg:mr-5
my-3
shadow
bg-white
border-black
capitalize
leading-6
border-transparent
flex
flex-col
border-2
w-full
items-start
rounded
transition
hover:first:text-gray-500
hover:border-stone-200
hover:bg-stone-100
p-2
text-left
}
header #menu button a{
@apply
px-0
}

View File

@@ -1,466 +0,0 @@
main {
@apply pt-0;
}
article p{
@apply text-lg;
}
/*
html, body {
@apply dark:bg-black;
body {
@apply font-serif dark:text-gray-200;
}
*/
p {
/* for handling Markdown-created <p> and <li> */
@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-gray-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 {
@apply text-blue-600 font-semibold;
}
a:focus,
a:hover {
@apply 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 {
@apply font-sans leading-tight tracking-tight;
}
h1,
.h1 {
@apply text-4xl mb-4 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%;
}
}

View File

1
env.sh
View File

@@ -1 +0,0 @@
export NAME='threefoldio'

View File

@@ -1,208 +0,0 @@
#/bin/bash
git submodule update --recursive --remote
# readable shorthand for adding tab
add_tab() {
sed -i "" "s|$1| $1|g" "$2"
}
# readable shorthand for sed replace
replace() {
sed -i "" "s|$1|$2|g" "$3"
}
# check if certain word exists in a file
exists() {
if grep "$1" $2 > /dev/null
then
return 0
else
return 1
fi
}
# move line with a certain word $1
# below another line with certain word $2
move_below() {
if exists $1 $3; then
TARGET="$(grep -n "$1" "$3" | sed -n -e "s/^.*\(\($1\).*\)/\1/p")"
LINE_NUM="$(grep -n "$1" "$3" | head -n1 | sed 's/:.*//')"
sed -i "" "${LINE_NUM}d" "$3"
LINE_NUM="$(grep -n "$2" "$3" | head -n1 | sed 's/:.*//')"
LINE_NUM="$(($LINE_NUM + 1))"
sed -a -i "" "${LINE_NUM}i\\
$TARGET\\
" "$3"
fi
}
folder_exists() {
echo "content/$1/$2"
if [ -d "content/$1/$2" ]; then
return 0
fi
return 1
}
echo "Formatting people..."
dir="threefold_data/content/person"
for file in $(grep -ril 'name:' $dir);
do
path=${file%/*}
name=${path##*/}
if folder_exists "people" $name; then
continue
fi
sed -i "" "s|private: 1| private: 1\\
socialLinks: {\\
}|g" "$file"
sed -i "" "s|private: 0| private: 0\\
socialLinks: {\\
}|g" "$file"
move_below category: excerpt: $file
move_below memberships: excerpt: $file
move_below websites: socialLinks: $file
move_below projects: image: $file
move_below linkedin: socialLinks: $file
move_below github: linkedin: $file
move_below id: excerpt: $file
# move bio field below toml
BIO="$(grep -n 'bio:' "$file" | sed -n -e 's/^.*\(\(bio:\).*\)/\1/p')"
LINE_NUM="$(grep -n 'bio:' "$file" | head -n1 | sed 's/:.*//')"
sed -i "" "${LINE_NUM}d" "$file"
echo "\n$BIO" >> $file
sed -i "" "s|bio: ||g" "$file"
# adds comma after social links
WEBSITES="$(grep -n 'websites:' "$file" | sed -n -e 's/^.*\(\(websites:\).*\)/\1/p')"
sed -i "" "s|$WEBSITES|$WEBSITES,|g" "$file"
LINKEDIN="$(grep -n 'linkedin:' "$file" | sed -n -e 's/^.*\(\(linkedin:\).*\)/\1/p')"
sed -i "" "s|$LINKEDIN|$LINKEDIN,|g" "$file"
if exists "github" $file; then
GITHUB="$(grep -n 'github:' "$file" | sed -n -e 's/^.*\(\(github:\).*\)/\1/p')"
sed -i "" "s|$GITHUB|$GITHUB,|g" "$file"
fi
# put id into square brackets for people taxonomy
ID="$(grep -n 'id:' "$file" | sed -n -e 's/^.*\(\(id:\).*\)/\1/p')"
NAME="${ID#* }"
NAME="[$NAME]"
sed -i "" "s|$ID|id: $NAME|g" "$file"
# Change field names
replace "category:" "categories:" $file
replace "rank:" "weight:" $file
replace "excerpt:" "description:" $file
replace "name:" "title:" $file
replace "linkedin:" "LinkedIn:" $file
replace "projects:" "organizations:" $file
replace "projects:" "organizations:" $file
replace "image: ./" "imgPath: " $file
sed -i "" "s|imgPath:|extra:\\
imgPath:|g" "$file"
sed -i "" "s|id:|taxonomies:\\
people:|g" "$file"
add_tab "memberships:" $file
add_tab "categories:" $file
add_tab "cities:" $file
add_tab "countries:" $file
add_tab "organizations:" $file
add_tab "LinkedIn:" $file
add_tab "LinkedIn:" $file
add_tab "websites:" $file
add_tab "websites:" $file
add_tab "github:" $file
add_tab "github:" $file
mv $file ${file%/*}/index.md
mv ${file%/*} content/people
break
done;
echo "Formatting blogs..."
dir="threefold_data/content/blog"
for file in $(grep -ril 'authors:' $dir);
do
path=${file%/*}
name=${path##*/}
if folder_exists "blog" $name; then
continue
fi
echo $file
move_below created: excerpt: $file
move_below category: authors: $file
move_below tags: authors: $file
move_below image: category: $file
# Change field names
sed -i "" "s|category:|categories:|g" "$file"
sed -i "" "s|created:|date:|g" "$file"
sed -i "" "s|excerpt:|description:|g" "$file"
sed -i "" "s| ---|---|g" "$file"
sed -i "" "s|authors:|taxonomies:\\
people:|g" "$file"
sed -i "" "s|image: ./|extra:\\
imgPath: |g" "$file"
add_tab "tags" $file
add_tab "categories" $file
mv $file ${file%/*}/index.md
mv ${file%/*} content/blog
break
done;
echo "Formatting news..."
dir="threefold_data/content/news"
for file in $(grep -ril 'authors:' $dir);
do
path=${file%/*}
name=${path##*/}
if folder_exists "newsroom" $name; then
continue
fi
echo $file
move_below created: excerpt: $file
move_below category: authors: $file
move_below tags: authors: $file
move_below image: category: $file
# Change field names
sed -i "" "s|category:|news-category:|g" "$file"
sed -i "" "s|created:|date:|g" "$file"
sed -i "" "s|excerpt:|description:|g" "$file"
sed -i "" "s| ---|---|g" "$file"
sed -i "" "s|authors:|taxonomies:\\
people:|g" "$file"
sed -i "" "s|image: ./|extra:\\
imgPath: |g" "$file"
add_tab "tags" $file
add_tab "news-category" $file
mv $file ${file%/*}/index.md
mv ${file%/*} content/newsroom
break
done;
#
# mickey malul people taxonomy should be mickey_malul
# kristof's categories are not formatted correctly
# zero people it is the future blog bug

4
static/css/index.css Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,57 +0,0 @@
const colors = require('tailwindcss/colors')
module.exports = {
content: [
'./templates/**/*.html'
],
darkMode: false,
important: true,
theme: {
fontSize: {
'xs': '.75rem',
'sm': '.875rem',
'tiny': '.875rem',
'base': '1rem',
'md': '1.05rem',
'lg': '1.125rem',
'xl': '1.25rem',
'2xl': '1.5rem',
'3xl': '1.875rem',
'4xl': '2.25rem',
'5xl': '3rem',
'6xl': '4rem',
'7xl': '5rem',
},
colors: {
transparent: 'transparent',
white: '#ffffff',
black: '#000000',
gray: colors.gray,
slate: colors.slate,
stone: colors.stone,
zinc: colors.zinc,
yellow: colors.yellow,
orange: colors.orange,
sky: colors.sky,
blue: {
'100': '#bbeeff',
'200': '#00aaff',
'300': '#0088ff',
'400': '#0033ff',
'500': '#0000ff',
'600': '#0000bb',
'700': '#0000aa',
'800': '#000088',
'900': '#000066',
},
},
extend: {
screens: {
'2xl': '1450px',
// => @media (min-width: 992px) { ... }
},
},
},
plugins: [], // if we add forms, do it here
}

BIN
tailwindcss Executable file

Binary file not shown.

View File

@@ -1,101 +0,0 @@
{% extends "_default/base.html" %}
{% block content %}
{% if page.taxonomies.people %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(page.taxonomies.people[0]) %}
{% set author_path = 'people/' ~ page.taxonomies.people[0] ~ '/index.md' %}
{% set author = get_page(path=author_path) %}
{% endif %}
{% endif %}
<!-- Default page template for blog posts and basic informative markdown files -->
{% set split = page.content | split(pat="threefold.io") %}
{% if split | length < 2 %} {% set content=page.content %} {% else %} {% set content="" %} {% for part in split %} {% if
part is starting_with("/blog") %} {% set split_part=part | split(pat='/">' ) %} {% set link=split_part[0] %} {% set
link=link | replace(from="/blog/post" , to="/blog" ) %} {% set link=link | replace(from="_" , to="-" ) %} {% set
rest_part=split_part | slice(start=1) | join(sep='/">' ) %} {% set part=link ~ '/">' ~ rest_part %} {% endif %} {% if
loop.first %} {% set_global content=part%} {% else %} {% set_global content=content ~ "threefold.io" ~ part%} {% endif
%} {% endfor %} {% endif %} <main>
<div class="container mx-auto mt-10">
<div>
<article class="article lg:w-4/6 mx-auto">
<h1 class="lg:text-5xl text-2xl font-medium leading-none mt-0 text-gray-700">
{{ page.title }}
</h1>
<h4 class="lg:text-2xl text-base text-gray-600 leading-8">
{{ page.description }}
</h4>
<section class="post-author-list mb-3 mx-0">
<div class="flex items-center">
<div class="flex justify-between items-center">
<ul class="list-none flex author-list m-0">
<li class="author-list-item">
{% if author %}
{% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') |
replace(from='index.md', to=author.extra.imgPath)) %}
<img src="{{author_img}}" alt="{{author.title}}" class="
h-8
w-8
sm:h-10
sm:w-10
rounded-full
bg-gray-200
border-2 border-white
" />
</li>
{% endif %}
</ul>
</div>
<div class="pl-3 flex flex-col text-xs leading-none uppercase">
{% if author %}
<a href="{{author.permalink}}" class="text-gray-700 text-xs">{{ author.title }}</a>
{% endif %}
<p class="text-gray-700 text-xs">
<time datetime="{{ page.date }}"> {{ page.date | date(format="%B %e, %Y", timezone="America/Chicago")
}}</time><br />
<span id="time"
class="time"></span>
</p>
</div>
</div>
<div class="my-2 sharethis-inline-share-buttons"></div>
</section>
{% set img_url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md',
to=page.extra.imgPath)) %}
<img class="mb-8 mx-auto" src={{img_url}} alt="{{page.title ~ 'Picture'}}">
<div>{{ content | safe }}</div>
<section class="post-tags container relative py-10">
{% for tag in page.taxonomies.tags %}
{% set fullpath = "/tags/" ~ tag | replace(from='_', to='-' ) %}
<button class="
text-xs
bg-transparent
hover:text-blue-700
py-2
px-4
mr-2
border
hover:border-blue-500
border-gray-600
text-gray-700
rounded-full
"><a href="{{fullpath}}">{{ tag }}</a></button>
{% endfor %}
</section>
</article>
</div>
</div>
</main>
{% endblock content %}

View File

@@ -1,14 +0,0 @@
{% extends "index.html" %}
{% block content %}
<main class="pt-16">
<div class="flex flex-col md:flex-row">
{% include "partials/blogPosts.html" %}
{% include "partials/blogSidebar.html" %}
</div>
</main>
{% endblock content %}

View File

@@ -1,32 +0,0 @@
{% extends "_default/base.html" %}
<!-- blog template
the template for displaying the blog page.
consists of a featured blog row,
a paginated list of posts (sorted by date),
and a side nav for category and featured post navigation
-->
{% block content %}
<main>
<!--sets global featured variable as the most recent post with the isFeatured tag-->
{%- set section = get_section(path="blog/_index.md") %}
{% for page in section.pages %}
{% if page.extra.isFeatured %}
{%- set_global featured = page %}
{% break %}
{% endif %}
{% if not featured %}
{%- set_global featured = section.pages[0] %}
{% endif %}
{% endfor %}
<div class="flex flex-col md:flex-row container mx-auto my-6">
{% include "partials/blogPosts.html" %}
{% include "partials/blogSidebar.html" %}
</div>
</main>
{% endblock content %}

View File

@@ -1,18 +0,0 @@
{% extends "_default/base.html" %}
<!-- partners template
the template for displaying the partners page.
consists of a featured partners row,
a paginated list of posts (sorted by date),
and a side nav for category and featured post navigation
-->
{% block content %}
<main>
<!--sets global featured variable as the most recent post with the isFeatured tag-->
{%- set section = get_section(path="partners/_index.md") %}
{% include "partials/intro.html" %}
<div class="flex flex-row container mx-auto my-10">
{% include "partials/partnersCards.html" %}
{% include "partials/partnersSidebar.html" %}
</div>
</main>
{% endblock content %}

View File

@@ -1,88 +0,0 @@
{% extends "index.html" %}
{% block content %}
{% if not paginator %}
{% set paginator = section %}
{% endif %}
{% set path_array = current_path | split(pat="/") %}
{% set taxonomy = path_array[1] %}
{% set category = path_array[2] %}
{% if path_array | length < 3%}
{% set category = "All" %}
{% endif %}
<div class="mt-16 mx-auto max-w-7xl px-6 lg:px-8">
{% include "partials/filter_bar.html" %}
<div class="text-center main-title px-0 md:w-full">
<div class="my-4 flex flex-col items-start">
<h2 class="tracking-tight text-left text-3xl lg:text-5xl fw-500 leading-snug font-normal">
{{category | replace(from='-', to=' ' ) | title}}
</h2>
<div class="text-xl text-gray-800">
{{ paginator.total_pages ~ " People"}}
</div>
</div>
<hr/>
<div>
<div class="mx-auto mt-4 grid max-w-2xl grid-cols-1 gap-x-4 gap-y-8 sm:grid-cols-2 lg:mx-0 lg:max-w-none lg:grid-cols-3 xl:grid-cols-4">
{%- for page in paginator.pages %}
{% include "partials/person_card.html" %}
{%- endfor %}
</div>
<hr class="mt-6" />
<p class="text-center text-sm mt-2 mb-16">
{% if paginator.previous %}
<a
class="border-transparent"
aria-label="First page"
href="{{ paginator.first }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}{% include
"partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Previous page"
href="{{ paginator.previous }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% else %} {%
include "partials/icons/svgFirstPageIcon.html" %}{% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% endif %} {% if
paginator.next %}
<a
class="border-transparent"
aria-label="Next page"
href="{{ paginator.next }}"
>{% include "partials/icons/svgNextPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Last page"
href="{{ paginator.last }}"
>{% include "partials/icons/svgNextPageIcon.html" %}{% include
"partials/icons/svgNextPageIcon.html" %}</a
>
{% else %} {% include "partials/icons/svgLastPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgLastPageIcon.html" %}{% include
"partials/icons/svgLastPageIcon.html" %} {% endif %}
</p>
</div>
</div>
</div>
{% endblock content %}

View File

@@ -1,14 +0,0 @@
{% extends "index.html" %}
{% block content %}
<main class="pt-16">
<div class="flex flex-col md:flex-row">
{% include "partials/newsPosts.html" %}
{% include "partials/newsSidebar.html" %}
</div>
</main>
{% endblock content %}

View File

@@ -1,143 +0,0 @@
{% extends "_default/base.html" %}
{% block content %}
{% set split = page.content | split(pat="threefold.io") %}
{% if split | length < 2 %}
{% set content = page.content %}
{% else %}
{% set content = "" %}
{% for part in split %}
{% if part is starting_with("/blog") %}
{% set split_part = part | split(pat='/">') %}
{% set link = split_part[0] %}
{% set link = link | replace(from="/blog/post", to="/blog") %}
{% set link = link | replace(from="_", to="-") %}
{% set rest_part = split_part | slice(start=1) | join(sep='/">') %}
{% set part = link ~ '/">' ~ rest_part %}
{% endif %}
{% if part is starting_with("/people") %}
{% set split_part = part | split(pat='/">') %}
{% set link = split_part[0] %}
{% set link = link | replace(from="_", to="-") %}
{% set rest_part = split_part | slice(start=1) | join(sep='/">') %}
{% set part = link ~ '/">' ~ rest_part %}
{% endif %}
{% if loop.first %}
{% set_global content = part %}
{% else %}
{% set_global content = content ~ "threefold.io" ~ part %}
{% endif %}
{% endfor %}
{% endif %}
<!-- Default page template for news posts and basic informative markdown files -->
<main>
<div class="container sm:pxi-0 mx-auto overflow-x-hidden pt-16 lg:w-4/6">
<div class="pt-8">
<section class="post-header container mx-auto px-0 mb-4 border-b">
<h1 class="lg:text-5xl text-2xl font-medium leading-none mt-0">
{{ page.title }}
</h1>
<div class="lg:text-2xl text-base pt-4 pb-10 text-gray-700">{{ page.description }}</div>
</section>
<section class="post-author-list mb-10 mx-0">
<div class="flex items-center">
<div class="flex justify-between items-center">
<ul class="list-none flex author-list my-10 mr-2 px-0">
{% if page.taxonomies.people %}
{% for person in page.taxonomies.people %}
{% set author_path = 'people/' ~ person ~ '/index.md' %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(person) %}
{% set author = get_page(path=author_path) %}
{% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') | replace(from='index.md', to=author.extra.imgPath)) %}
<li class="author-list-item">
<a href="{{author.permalink}}" tooltip="{{author.title}}">
<img src="{{author_img}}" alt="{{ author.title }}" class="
w-10
h-10
rounded-full
bg-gray-200
border-2 border-white
" />
</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
<div class="pl-3 flex flex-col text-xs leading-none uppercase">
<p>
{% if page.taxonomies.people %}
{% for person in page.taxonomies.people %}
{% set author_path = 'people/' ~ person ~ '/index.md' %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(person) %}
{% set author = get_page(path=author_path) %}
{% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') | replace(from='index.md', to=author.extra.imgPath)) %}
<span>
<a href="{{author.permalink}}" tooltip="{{author.title}}" class="hover:underline text-gray-800">{{ author.title }}</a>
</span>
{% endif %}
{% endfor %}
{% endif %}
</p>
<p class="text-gray-700">
<time datetime="{{page.date}}">
{{ page.date | date(format="%B %e, %Y", timezone="America/Chicago") }}
</time>
{# &nbsp;&middot;&nbsp; {{ page.news.timeToRead }} min read #}
</p>
</div>
<div class="my-2 ml-auto sharethis-inline-share-buttons"></div>
</div>
</section>
</div>
<section class="post-image mx-auto w-full">
{% if page.extra.imgPath %}
{% set img_url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', to=page.extra.imgPath)) %}
<img src="{{img_url}}" />
{%endif%}
</section>
<div class="py-12">
<section class="
post-content
container
mx-auto
relative
font-serif
text-gray-700
">
<div class="post-content-text text-xl">{{ content | safe }}</div>
</section>
<section class="post-tags container mx-auto relative py-10">
{% for tag in page.taxonomies.tags %}
{% set fullpath = "/tags/" ~ tag | replace(from='_', to='-' ) %}
<a href="{{fullpath}}" class="
text-xs
bg-transparent
hover:text-blue-700
py-2
px-4
mr-2
border
hover:border-blue-500
border-gray-600
text-gray-700
rounded-full
">{{ tag }}</a>
{% endfor %}
</section>
</div>
</div>
</main>
{% endblock content %}

View File

@@ -1,70 +0,0 @@
{% block content %}
<div class="text-center main-title px-0 md:w-2/3 lg:w-2/3 mx-8 md:mx-12">
<h1
class="tracking-tight text-left text-2xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-10"
>
{% set path_array = current_path | split(pat="/") %}
{% set taxonomy = path_array[1] %}
{% set category = path_array[2] %}
ThreeFold stories and project info
{% if taxonomy == "categories" %} -
{{category | replace(from='-', to=' ' ) | title}}
{% endif %}
</h1>
<div>
<div class="mt-12 grid gap-5 max-w-lg mx-auto lg:grid-cols-2 xl:grid-cols-3 lg:max-w-none">
{%- for post in paginator.pages %}
{% if not post.extra.hidden %}
{% include "partials/postCard.html" %}
{%endif%} {%- endfor %}
</div>
<hr class="mt-6" />
<p class="text-center text-sm mt-2 mb-16">
{% if paginator.previous %}
<a
class="border-transparent"
aria-label="First page"
href="{{ paginator.first }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}{% include
"partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Previous page"
href="{{ paginator.previous }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% else %} {%
include "partials/icons/svgFirstPageIcon.html" %}{% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% endif %} {% if
paginator.next %}
<a
class="border-transparent"
aria-label="Next page"
href="{{ paginator.next }}"
>{% include "partials/icons/svgNextPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Last page"
href="{{ paginator.last }}"
>{% include "partials/icons/svgNextPageIcon.html" %}{% include
"partials/icons/svgNextPageIcon.html" %}</a
>
{% else %} {% include "partials/icons/svgLastPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgLastPageIcon.html" %}{% include
"partials/icons/svgLastPageIcon.html" %} {% endif %}
</p>
</div>
</div>
{% endblock content %}

View File

@@ -1,38 +0,0 @@
<div class="mx-8 md:mx-4 flex flex-col">
<div class="flex flex-col mb-12 mr-8 lg:mr-24">
<h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FILTER POSTS BY</h4>
<a id="all" class="mb-3 text-black font-normal" href="/blog">All</a>
{% set taxonomy = get_taxonomy(kind="categories") %}
{% set categories = taxonomy.items %}
{% for category in categories %}
{% set path = category.name | slugify %}
{% set fullpath = "/categories/" ~ path %}
<a id="{{path}}" class="mb-3 text-black font-normal" href={{fullpath}}> {{category.name}} </a>
{% endfor %}
</div>
{% set section = get_section(path="blog/_index.md")%}
<div class="lg:pt-6 flex flex-col mb-12 w-64 mr-8 lg:mr-24">
<h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FEATURED POSTS</h4>
{% for page in section.pages %}
{% if page.extra.isFeatured %}
<a class="mb-3 text-blue-700" href={{page.permalink}}>{{ page.title }}</a>
{% endif %}
{% endfor %}
</div>
</div>
<script>
function setActiveCategory() {
let activeCategory = window.location.pathname.split("/")[2]
if (typeof activeCategory === "undefined") { activeLink = document.getElementById("all") }
else { activeLink = document.getElementById(activeCategory)}
activeLink.className = activeLink.className.replace("text-black font-normal", "text-black font-semibold");
}
setActiveCategory()
</script>

View File

@@ -1,36 +0,0 @@
{% if featured.taxonomies.people %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(featured.taxonomies.people[0]) %}
{% set author_path = 'people/' ~ featured.taxonomies.people[0] ~ '/index.md' %}
{% set author = get_page(path=author_path) %}
{% endif %}
{% endif %}
<body>
<div class="md:grid md:grid-cols-2 md:gap-8 relative mt-16 lg:mt-16 items-center container mx-auto">
<div class="relative lg:ml-8 my-8 w-full md:w-auto">
<h3 class="text-base not-italic leading-6 text-gray-600">FEATURED POST</h3>
<a href={{featured.permalink}} class="">
<h2
class="mt-8 text-2xl main-title sm:text-3xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-4 md:mb-10 ">
{{ featured.title }}
</h2>
</a>
<h4 class="text-sm not-italic font-light leading-6 text-gray-600">
{{ featured.date | date(format="%B %e, %Y", timezone="America/Chicago")}} -
</h4>
</div>
<div class="mx-4 relative lg:mt-0 max-w-full">
<img class="relative mx-auto md:w-auto rounded md:max-w-full max-h-80" src={{featured.permalink}}{{featured.extra.imgPath}} alt="" />
</div>
</div>
<hr class="mt-6">
</div>
</div>
</body>

View File

@@ -1,42 +0,0 @@
<body>
<div class="md:grid md:grid-cols-2 md:gap-8 relative mt-16 lg:mt-16 items-center container mx-auto">
<div class="relative lg:ml-8 my-8 w-full md:w-auto">
<h3 class="text-base not-italic leading-6 text-gray-600">FEATURED NEWS</h3>
<a href={{featured.permalink}} class="">
<h2
class="mt-8 text-2xl main-title sm:text-3xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-4 md:mb-10 ">
{{ featured.title }}
</h2>
</a>
<h4 class="text-sm not-italic font-light leading-6 text-gray-600">
{{ featured.date | date(format="%B %e, %Y", timezone="America/Chicago")}} -
{% for author in featured.taxonomies.people %}
{% set author_path = 'people/' ~ author ~ '/index.md' %}
{% set author = get_page(path=author_path) %}
{% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') | replace(from='index.md', to=author.extra.imgPath)) %}
<a href="{{author.permalink}}" tooltip="{{author.title}}" class="capitalize text-gray-800"> <img
src="{{ author_img }}" alt="{{ author.title }}" class="
inline-flex
w-8
h-8
rounded-full
bg-gray-200
border-2 border-white
" /> {{ author.title }}</a>
{% endfor %}
</h4>
</div>
<div class="mx-4 relative lg:mt-0 max-w-full">
{% if featured.extra.imgPath %}
<img class="relative mx-auto md:w-auto md:max-w-full max-h-80" src={{featured.permalink}}{{featured.extra.imgPath}} alt="" />
{% endif %}
</div>
</div>
<hr class="mt-6">
</div>
</div>
</body>

View File

@@ -1,2 +0,0 @@
{% set page = get_page(path="footer/index.md") %}
{{page.content | safe}}

View File

@@ -1,2 +0,0 @@
{% set page = get_page(path="header.md") %}
{{page.content | safe}}

View File

@@ -1,9 +0,0 @@
{% block content %}
<div class="mb-6 mt-14">
<h2 class="mb-4 text-center text-4xl lg:text-5xl text-gray-900 md:mb-6">{{ section.title }}</h2>
<p class="mx-auto max-w-5xl text-center text-gray-900 md:text-lg">
{{ section.description }}
</p>
</div>
{# <hr class="mt-6"> #}
{% endblock content %}

View File

@@ -1,85 +0,0 @@
{% block content %}
{% if not paginator %}
{% set paginator = section %}
{% endif %}
{% set path_array = current_path | split(pat="/") %}
{% set taxonomy = path_array[1] %}
{% set category = path_array[2] %}
{% if path_array | length < 3%}
{% set category = "All" %}
{% endif %}
<div class="mt-16 mx-auto max-w-7xl px-6 lg:px-8">
{% include "partials/filter_bar.html" %}
<div class="text-center main-title px-0 md:w-full mx-8 md:mx-12">
<div class="my-4 flex flex-col items-start">
<h1 class="tracking-tight text-left text-2xl sm:text-3xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal">
{{category | replace(from='-', to=' ' ) | title}}
</h1>
test
<div class="text-xl text-gray-800">
{{ paginator.total_pages ~ " People"}}
</div>
</div>
<hr/>
<div>
<div class="mx-auto mt-4 grid max-w-2xl grid-cols-1 gap-x-4 gap-y-8 sm:grid-cols-2 lg:mx-0 lg:max-w-none lg:grid-cols-3 xl:grid-cols-4">
{%- for page in paginator.pages %}
{% include "partials/person_card.html" %}
{%- endfor %}
</div>
<hr class="mt-6" />
<p class="text-center text-sm mt-2 mb-16">
{% if paginator.previous %}
<a
class="border-transparent"
aria-label="First page"
href="{{ paginator.first }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}{% include
"partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Previous page"
href="{{ paginator.previous }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% else %} {%
include "partials/icons/svgFirstPageIcon.html" %}{% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% endif %} {% if
paginator.next %}
<a
class="border-transparent"
aria-label="Next page"
href="{{ paginator.next }}"
>{% include "partials/icons/svgNextPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Last page"
href="{{ paginator.last }}"
>{% include "partials/icons/svgNextPageIcon.html" %}{% include
"partials/icons/svgNextPageIcon.html" %}</a
>
{% else %} {% include "partials/icons/svgLastPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgLastPageIcon.html" %}{% include
"partials/icons/svgLastPageIcon.html" %} {% endif %}
</p>
</div>
</div>
</div>
{% endblock content %}

View File

@@ -1,57 +0,0 @@
<div class="flex flex-col rounded-lg shadow-lg overflow-hidden">
<div class="flex-1">
<a href={{ post.permalink }} class="block">
<div class="flex-shrink-0">
{% if post.extra.imgPath %}
{% set img_url = get_url(path='/' ~ post.relative_path | replace(from='_', to='-') | replace(from='index.md', to=post.extra.imgPath)) %}
<img class="h-48 w-full mx-auto object-cover" src={{img_url}} alt="" />
{% endif %}
</div>
<div class="flex-1 bg-white p-4 flex flex-col justify-between">
<h3 class="mt-2 text-xl leading-7 font-medium text-gray-900 text-left not-italic">
{{ post.title }}
</h3>
{% if post.description %}
<p class="mt-3 text-sm font-normal leading-5 text-gray-500 text-left">
{{ post.description }}
</p>
{% endif %}
</a>
<div class="flex items-center">
<div class="flex justify-between items-center">
<ul class="list-none flex author-list my-10 mr-2 px-0">
{% if post.taxonomies.people %}
{% for author in post.taxonomies.people %}
{% set author_path = 'people/' ~ author ~ '/index.md' %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(author) %}
{% set author = get_page(path=author_path) %}
{% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') | replace(from='index.md', to=author.extra.imgPath)) %}
<li class="author-list-item">
<a href="{{ author.permalink }}" tooltip="{{ author.title }}">
<img src="{{ author_img }}" alt="{{ author.title }}" class="
w-8
h-8
rounded-full
bg-gray-200
border-2 border-white
" />
</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
<p class="text-gray-700 text-xs">
<time datetime="{{post.date}}">
{{ post.date | date(format="%B %e, %Y", timezone="America/Chicago") }}
</time>
</p>
</div>
</div>
</div>
</div>

View File

@@ -1,70 +0,0 @@
{% block content %}
<div class="text-center main-title px-0 md:w-2/3 lg:w-2/3 mx-8 md:mx-12">
<h1
class="tracking-tight text-left text-2xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-10"
>
{% set path_array = current_path | split(pat="/") %}
{% set taxonomy = path_array[1] %}
{% set category = path_array[2] %}
News and updates from the ecosystem
{% if taxonomy == "news-category" %} -
{{category | replace(from='-', to=' ' ) | title}}
{% endif %}
</h1>
<div>
<div class="mt-12 grid gap-5 max-w-lg mx-auto lg:grid-cols-2 xl:grid-cols-3 lg:max-w-none">
{%- for post in paginator.pages %}
{% if "Engineering" == "Engineering"%}
{% include "partials/newsCard.html" %}
{%endif%} {%- endfor %}
</div>
<hr class="mt-6" />
<p class="text-center text-sm mt-2 mb-16">
{% if paginator.previous %}
<a
class="border-transparent"
aria-label="First page"
href="{{ paginator.first }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}{% include
"partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Previous page"
href="{{ paginator.previous }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% else %} {%
include "partials/icons/svgFirstPageIcon.html" %}{% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% endif %} {% if
paginator.next %}
<a
class="border-transparent"
aria-label="Next page"
href="{{ paginator.next }}"
>{% include "partials/icons/svgNextPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Last page"
href="{{ paginator.last }}"
>{% include "partials/icons/svgNextPageIcon.html" %}{% include
"partials/icons/svgNextPageIcon.html" %}</a
>
{% else %} {% include "partials/icons/svgLastPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgLastPageIcon.html" %}{% include
"partials/icons/svgLastPageIcon.html" %} {% endif %}
</p>
</div>
</div>
{% endblock content %}

View File

@@ -1,38 +0,0 @@
<div class="mx-8 md:mx-4 flex flex-col">
<div class="flex flex-col mb-12 mr-8 lg:mr-24">
<h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FILTER NEWS BY</h4>
<a id="all" class="mb-3 text-black font-normal" href="/newsroom">All</a>
{% set taxonomy = get_taxonomy(kind="news-category") %}
{% set categories = taxonomy.items %}
{% for category in categories %}
{% set path = category.name | slugify %}
{% set fullpath = "/news-category/" ~ path %}
<a id="{{path}}" class="mb-3 text-black font-normal" href={{fullpath}}> {{category.name}} </a>
{% endfor %}
</div>
{% set section = get_section(path="newsroom/_index.md")%}
<div class="lg:pt-6 flex flex-col mb-12 w-64 mr-8 lg:mr-24">
<h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FEATURED NEWS</h4>
{% for page in section.pages %}
{% if page.extra.isFeatured %}
<a class="mb-3 text-blue-700" href={{page.permalink}}>{{ page.title }}</a>
{% endif %}
{% endfor %}
</div>
</div>
<script>
function setActiveCategory() {
let activeCategory = window.location.pathname.split("/")[2]
if (typeof activeCategory === "undefined") { activeLink = document.getElementById("all") }
else { activeLink = document.getElementById(activeCategory)}
activeLink.className = activeLink.className.replace("text-black font-normal", "text-black font-semibold");
}
setActiveCategory()
</script>

View File

@@ -1,22 +0,0 @@
<div class="flex flex-col rounded-lg shadow-lg overflow-hidden">
<div class="flex-1">
<a href="{{post.permalink}}" class="block">
<div class="flex-shrink-0">
{% set url = get_url(path='/' ~ post.relative_path | replace(from='_', to='-') | replace(from='index.md', to=post.extra.imgPath)) %}
<img class="h-48 w-full mx-auto object-cover" src="{{url}}" alt="{{post.title ~ ' Picture'}}" />
</div>
<div class="flex-1 bg-white p-6 flex flex-col justify-between">
<h3 class="mt-2 text-xl leading-7 font-medium text-gray-900 text-left not-italic">
{{ post.title }}
</h3>
{% if post.description %}
<p class="mt-3 text-sm font-normal leading-6 text-gray-500 text-left">
{{ post.description }}
</p>
{% endif %}
</a>
</div>
</div>
</div>

View File

@@ -1,69 +0,0 @@
{% block content %}
<div class="text-center px-0 md:w-2/3 lg:w-2/3 mx-8 md:mx-12">
<h1
class="tracking-tight text-left text-2xl sm:text-3xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-10"
>
{% set path_array = current_path | split(pat="/") %}
{% set taxonomy = path_array[1] %}
{% set category = path_array[2] %}
{% if taxonomy == "partners-category" %} -
{{category | replace(from='-', to=' ' ) | title}}
{% endif %}
</h1>
<div>
<div class="mt-12 grid gap-5 max-w-lg mx-auto lg:grid-cols-2 xl:grid-cols-3 lg:max-w-none">
{%- for post in paginator.pages %}
{% if "Engineering" == "Engineering"%}
{% include "partials/partnerCard.html" %}
{%endif%} {%- endfor %}
</div>
<hr class="mt-6" />
<p class="text-center text-sm mt-2 mb-16">
{% if paginator.previous %}
<a
class="border-transparent"
aria-label="First page"
href="{{ paginator.first }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}{% include
"partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Previous page"
href="{{ paginator.previous }}"
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% else %} {%
include "partials/icons/svgFirstPageIcon.html" %}{% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% endif %} {% if
paginator.next %}
<a
class="border-transparent"
aria-label="Next page"
href="{{ paginator.next }}"
>{% include "partials/icons/svgNextPageIcon.html" %}</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a
class="border-transparent"
aria-label="Last page"
href="{{ paginator.last }}"
>{% include "partials/icons/svgNextPageIcon.html" %}{% include
"partials/icons/svgNextPageIcon.html" %}</a
>
{% else %} {% include "partials/icons/svgLastPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgLastPageIcon.html" %}{% include
"partials/icons/svgLastPageIcon.html" %} {% endif %}
</p>
</div>
</div>
{% endblock content %}

View File

@@ -1,24 +0,0 @@
<div class="mx-8 md:mx-4 flex flex-col">
<div class="flex flex-col mb-12 mr-8 lg:mr-16">
<h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FILTER PARTNERS BY</h4>
<a id="all" class="mb-3 text-black font-normal" href="/partners">All</a>
{% set taxonomy = get_taxonomy(kind="partners-category") %}
{% set categories = taxonomy.items %}
{% for category in categories %}
{% set path = category.name | slugify %}
{% set fullpath = "/partners-category/" ~ path %}
<a id="{{path}}" class="mb-3 text-black font-normal" href={{fullpath}}> {{category.name}} </a>
{% endfor %}
</div>
</div>
<script>
function setActiveCategory() {
let activeCategory = window.location.pathname.split("/")[2]
if (typeof activeCategory === "undefined") { activeLink = document.getElementById("all") }
else { activeLink = document.getElementById(activeCategory) }
activeLink.className = activeLink.className.replace("text-black font-normal", "text-black font-semibold");
}
setActiveCategory()
</script>

View File

@@ -1,26 +0,0 @@
<div class="flex flex-col px-0 sm:px-4 pb-2">
<a href="{{page.permalink}}" class="border-0 text-gray-700 hover:!text-gray-700 font-normal text-left">
{% set url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', to=page.extra.imgPath)) %}
<img src="{{url}}" alt="{{page.title ~ ' Picture'}}" />
<div>
<h2 class="text-2xl">{{page.title}}</h2>
<div class="text-md text-gray-700 text-left line-clamp-3 text-ellipsis">
{% if page.description %}
{{page.description}}
{% else %}
{{page.content | safe}}
{% endif %}
</div>
<div class="my-2 flex flex-row items-start flex-wrap">
{% if page.taxonomies.memberships %}
{% for tag in page.taxonomies.memberships %}
<a href="{{'/memberships/' ~ tag | replace(from='_', to='-' )}}" class="border-1 text-xs font-light bg-transparent hover:text-blue-700 py-1 px-2 mr-2 my-1 border hover:border-blue-500 border-gray-600 text-gray-700 rounded-full ">
{{tag}}
</a>
{% endfor %}
{% endif %}
</div>
</div>
</a>
</div>

View File

@@ -1,26 +0,0 @@
<div class="flex flex-col px-0 sm:px-4 pb-2">
<a href="{{page.permalink}}" class="border-0 text-gray-700 hover:!text-gray-700 font-normal text-left">
{% set url = get_url(path='/' ~ page.relative_path | replace(from='_', to='-') | replace(from='index.md', to=page.extra.imgPath)) %}
<img class="aspect-[14/13] w-full rounded-2xl object-cover" src="{{url}}" alt="{{page.title ~ ' Picture'}}" />
<div class="text-center">
<h2 class="text-xl">{{page.title}}</h2>
<div class="text-base text-gray-700 line-clamp-3 leading-5 text-ellipsis">
{% if page.description %}
{{page.description}}
{% else %}
{{page.content | safe}}
{% endif %}
</div>
{# <div class="my-2 flex flex-row items-start flex-wrap">
{% if page.taxonomies.memberships %}
{% for tag in page.taxonomies.memberships %}
<a href="{{'/memberships/' ~ tag | replace(from='_', to='-' )}}" class="border-1 text-xs font-light bg-transparent hover:text-blue-700 py-1 px-2 mr-2 my-1 border hover:border-blue-500 border-gray-600 text-gray-700 rounded-full ">
{{tag}}
</a>
{% endfor %}
{% endif %}
</div> #}
</div>
</a>
</div>

View File

@@ -1,75 +0,0 @@
{% if post.date %}
{% if post.taxonomies.people %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(post.taxonomies.people[0]) %}
{% set author_path = 'people/' ~ post.taxonomies.people[0] ~ '/index.md' %}
{% set author = get_page(path=author_path) %}
{% set content = get_page(path=author_path) %}
{% endif %}
{% endif %}
<div class="flex flex-col rounded-lg shadow-lg overflow-hidden">
<div class="flex-1 border-b">
<a href="{{ post.permalink }}" class="block">
{% if post.extra.imgPath %}
{% set img_url = get_url(path='/' ~ post.relative_path | replace(from='_', to='-') | replace(from='index.md',
to=post.extra.imgPath)) %}
<div class="flex-shrink-0">
<img class="h-48 w-full mx-auto object-cover" src={{img_url}} alt="{{post.title ~ ' Picture'}}" />
</div>
{%endif%}
<div class="flex-1 bg-white p-6 flex flex-col justify-between">
<h3 class="mt-2 text-xl leading-6 font-medium text-gray-900 text-left not-italic">
{{ post.title }}
</h3>
{% if post.description %}
<p class="mt-3 text-sm font-normal text-gray-500 text-left">
{{ post.description }}
</p>
{% endif %}
<div class="article hidden">{{ post.content | safe }}</div>
<div class="w-full post-card-meta py-3">
<div class="avatars">
<div class="flex">
<div class="flex">
<ul class="list-none flex author-list mr-2 pl-0">
{% if author %}
{% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') |
replace(from='index.md', to=author.extra.imgPath)) %}
<li class="author-list-item"><img alt="{{author.title}}" src="{{author_img}}"
class="w-8 h-8 rounded-full bg-gray-200 border-2 border-white"></li>
{% endif %}
</ul>
</div>
<div class="flex flex-col text-left leading-none uppercase">
{% if author %}
<p class="text-gray-700 text-xs">{{ author.title }}</p>
{% endif %}
<p class="text-gray-700 text-xs">
<time datetime="{{post.date}}">
{{ post.date | date(format="%B %e, %Y", timezone="America/Chicago") }}
</time>
</p>
<p class="flex justify-between lowercase my-2 items-center text-gray-700 text-xs"><span id="time"
class="time"></span>
</p>
</div>
<br />
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<style>
.border-b {
border-bottom-width: 1px !important;
}
</style>
{% endif %}

View File

@@ -1,33 +0,0 @@
{% if not section %}
{% set section = page %}
{% endif %}
<div class="flex space-x-4">
{%if section.extra.socialLinks%}
{% for key, link in section.extra.socialLinks %}
<a href="{{link}}" target="_blank" class="text-gray-400 hover:text-gray-500">
<span class="sr-only">{{key}}</span>
{% if key == "Facebook" %}
{% include "partials/icons/svgFacebookIcon.html" %}
{% elif key == "Github" %}
{% include "partials/icons/svgGithubIcon.html" %}
{% elif key == "Github2" %}
{% include "partials/icons/svgGithubIcon.html" %}
{% elif key == "Instagram" %}
{% include "partials/icons/svgInstagramIcon.html" %}
{% elif key == "LinkedIn" %}
{% include "partials/icons/svgLinkedInIcon.html" %}
{% elif key == "Twitter" %}
{% include "partials/icons/svgTwitterIcon.html" %}
{% elif key == "Dribbble" %}
{% include "partials/icons/svgDribbbleIcon.html" %}
{% elif key == "Telegram" %}
{% include "partials/icons/svgTelegram.html" %}
{% endif %}
</a>
{% endfor %}
{%endif%}
</div>

View File

@@ -1,57 +0,0 @@
{% extends "_default/base.html" %}
{% block content %}
<div class="container sm:pxi-0 mx-auto overflow-x-hidden pt-16 lg:w-4/6">
<div class="flex flex-row flex-wrap items-center mx-4 sm:mx-0">
<div class="w-full md:w-1/6 mx-auto sm:mx-0">
<img src="{{page.extra.partner_logo}}" class="
rounded-full
bg-gray-200
w-32
h-32
border-4 border-gray-400
mx-auto
md:mx-0
" />
</div>
<div class="w-full md:w-5/6 text-center md:text-left md:pl-8 lg:pl-0">
<h1 class="pb-0 mb-0 mt-0 text-4xl font-medium">
{{ page.title }}
</h1>
<div class="avatars">
<section class="container mx-auto py-2">
<ul class="list-none flex author-list my-2 px-0">
{% if page.extra.websites %}
<li class="mr-2">
<a href="{{page.extra.websites}}" target="_blank" rel="noopener noreferrer"
class="text-gray-400 hover:text-black linkedin_size mx-1">
<i class="fa-solid fa-globe fa-2x"></i> </a>
</li>
{% endif %}
{% if page.extra.linkedin %}
<li>
<a href="{{page.extra.linkedin}}" target="_blank" rel="noopener noreferrer"
class="text-gray-400 hover:text-black linkedin_size mx-1">
<i class="fa-brands fa-linkedin fa-2x"></i> </a>
</li>
{% endif %}
</ul>
{% for tag in page.taxonomies.tags %}
<a href="{{'/tags/' ~ tag}}" class="border-1 font-light text-xs bg-transparent hover:text-blue-700 py-2 px-4 mr-2 border hover:border-blue-500 border-gray-600 text-gray-700 rounded-full ">
{{tag}}
</a>
{% endfor %}
</section>
</div>
</div>
</div>
<div class="pt-8 border-b mx-4 sm:-mx-4"></div>
<section class="post-content container mx-auto relative text-gray-700">
<div class="post-content-text text-xl">{{ page.content | safe }}</div>
</section>
</div>
{% endblock content %}

View File

@@ -1,14 +0,0 @@
{% extends "index.html" %}
{% block content %}
<main class="pt-16">
<div class="flex flex-col md:flex-row">
{% include "partials/partnersCards.html" %}
{% include "partials/partnersSidebar.html" %}
</div>
</main>
{% endblock content %}

View File

@@ -1,70 +0,0 @@
{% extends "_default/base.html" %}
{% block content %}
{%- set section = get_section(path="people/_index.md") %}
{% include "partials/intro.html" %}
<div class="mx-auto max-w-7xl px-6 lg:px-8">
{% include "partials/filter_bar.html" %}
<div class="text-center main-title px-0 md:w-full">
{# <h1 class="tracking-tight text-left text-2xl sm:text-3xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-10">
{% set path_array = current_path | split(pat="/") %}
{% set taxonomy = path_array[1] %}
{% set category = path_array[2] %}
{{category | replace(from='-', to=' ' ) | title}}
</h1> #}
<div>
<div class="text-center mx-auto mt-4 grid max-w-2xl grid-cols-1 gap-x-4 gap-y-8 sm:grid-cols-2 lg:mx-0 lg:max-w-none lg:grid-cols-3 xl:grid-cols-4">
{% for person in section.pages %}
{% set page_path = person.path ~ 'index.md' | replace(from='-', to='_') | trim_start_matches(pat="/") %}
{% set people = get_section(path="people/_index.md") %}
{% set pages_str = people.pages | json_encode() | as_str %}
{% if pages_str is containing(person.title) %}
{% set page = get_page(path=page_path) %}
{% if page.extra.private >= 0 %}
{% if page.title != "ThreeFold_Community"%}
{% include "partials/person_card.html" %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
</div>
<hr class="mt-6">
<p class="text-center text-sm mt-2 mb-16">
{% if paginator.previous %}
<a class="border-transparent" aria-label="First page" href="{{ paginator.first }}">
{% include "partials/icons/svgPrevPageIcon.html" %}{% include
"partials/icons/svgPrevPageIcon.html" %}
</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a class="border-transparent" aria-label="Previous page" href="{{ paginator.previous }}">
{% include "partials/icons/svgPrevPageIcon.html" %}
</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% else %} {%
include "partials/icons/svgFirstPageIcon.html" %}{% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgFirstPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% endif %} {% if
paginator.next %}
<a class="border-transparent" aria-label="Next page" href="{{ paginator.next }}">
{% include "partials/icons/svgNextPageIcon.html" %}
</a
>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a class="border-transparent" aria-label="Last page" href="{{ paginator.last }}">
{% include "partials/icons/svgNextPageIcon.html" %}{% include
"partials/icons/svgNextPageIcon.html" %}
</a
>
{% else %} {% include "partials/icons/svgLastPageIcon.html" %}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {% include
"partials/icons/svgLastPageIcon.html" %}{% include
"partials/icons/svgLastPageIcon.html" %} {% endif %}
</p>
</div>
</div>
</div>
{% endblock content %}

View File

@@ -1,80 +0,0 @@
{% set styles = "background-image: url('images/V3.png');" %}
<section class="px-2 h-auto bg-center lg:py-28 p-12 bg-cover bg-no-repeat" style="{{styles}}">
<div class="relative lg:max-w-6xl mx-auto">
<div class="text-center rounded lg:px-6 mt-10 lg:mt-0 mx-auto">
{{body | markdown | safe }}
<div class="my-10 grid lg:grid-cols-4 lg:gap-8">
<!-- capacity -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img
class="mx-auto p-4"
src="images/V3-08.png"
width="150"
alt=""
>
<div id="capacity" class="leading-none font-extrabold text-3xl"></div>
<span class="block text-lg mt-4 font-normal capitalize">capacity</span>
</div>
<!-- Nodes -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img
class="mx-auto p-4"
src="images/V3-09.png"
width="150"
alt=""
>
<div id="nodes" class="leading-none font-extrabold text-3xl"></div>
<span class="block text-lg mt-4 font-normal capitalize">nodes</span>
</div>
<!-- countries -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img
class="mx-auto p-4"
src="images/V3-10.png"
width="150"
alt=""
>
<div id="countries" class="leading-none font-extrabold text-3xl"></div>
<span class="block text-lg mt-4 font-normal capitalize">countries</span>
</div>
<!-- cores -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img
class="mx-auto p-4"
src="images/V3-11.png"
width="150"
alt=""
>
<div id="cores" class="leading-none font-extrabold text-3xl"></div>
<span class="block text-lg mt-4 font-normal capitalize">cores</span>
</div>
</div>
<button class="my-8">
<a href="https://dashboard.grid.tf/explorer/statistics" target="_blank">
Explore ThreeFold Grid Capacity
</a>
</button>
<button class="my-8">
<a href="/host" target="_self">
Become a Cloud Provider
</a>
</button>
</div>
</div>
</section>
<style>
dd {
display: inline-block;
margin: auto;
border-radius: 50%;
line-height: 100px;
}
.bg-green {
background-color: #70dfc9;
}
.bg-pink {
background-color: #ea1ff7;
}
</style>

View File

@@ -1,82 +0,0 @@
{% set styles = "background-image: url('V3.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 / 1024 %}
{% set nodes = data.nodes %}
{% set countries = data.countries %}
{% set cores = data.totalCru %}
{% endif %}
{% if data %}
<section class="px-2 h-auto bg-center lg:py-28 p-12 bg-cover bg-no-repeat" style="{{styles}}">
<div class="relative lg:max-w-6xl mx-auto">
<div class="text-center rounded lg:px-6 mt-10 lg:mt-0 mx-auto">
{{body | markdown | safe }}
<div class="my-10 grid lg:grid-cols-4 lg:gap-8">
<!-- capacity -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img class="mx-auto p-4" src="V3-08.png" width="150" alt="">
<div class="leading-none font-extrabold text-3xl">
{{ capacity | round(precision=2) }}PB
<span class="block text-lg mt-4 font-normal capitalize">capacity</span>
</div>
</div>
<!-- Nodes -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img class="mx-auto p-4" src="V3-09.png" width="150" alt="">
<div class="leading-none font-extrabold text-3xl">
{{ nodes }}
<span class="block text-lg mt-4 font-normal capitalize">nodes</span>
</div>
</div>
<!-- countries -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img class="mx-auto p-4" src="V3-10.png" width="150" alt="">
<div class="leading-none font-extrabold text-3xl">
{{ countries }}
<span class="block text-lg mt-4 font-normal capitalize">countries</span>
</div>
</div>
<!-- cores -->
<div class="flex flex-col border border-gray-50 shadow-lg bg-white py-8 my-4">
<img class="mx-auto p-4" src="V3-11.png" width="150" alt="">
<div class="leading-none font-extrabold text-3xl">
{{ cores | num_format }}
<span class="block text-lg mt-4 font-normal capitalize">cores</span>
</div>
</div>
</div>
<button><a href="https://dashboard.grid.tf/explorer/statistics">Explore Grid Capacity</a></button>
<button><a href="/host">Become a Host</a></button>
</div>
</div>
</section>
{% endif %}
<style>
dd {
display: inline-block;
margin: auto;
border-radius: 50%;
line-height: 100px;
}
.bg-green {
background-color: #70dfc9;
}
.bg-pink {
background-color: #ea1ff7;
}
</style>

View File

@@ -1,20 +0,0 @@
<div class="text-gray-900 bg-cover bg-no-repeat mybg" style="background-image:url(expand/BG_wide.png)">
<div class="h-full">
<div class="flex flex-col items-center md:flex-row">
<div class="w-full md:w-1/2">
<div class="block">
<img
src="expand/togethericon.png" class="w-full h-full"/>
</div>
</div>
<div class="flex flex-col items-start justify-center w-full py-24 md:w-1/2">
<div class="flex flex-col items-start justify-center p-6">
<h1>Be the <strong>Internet</strong></h1>
<h3 class="my-0">Host a node, support a decentralized future</h3>
<p>By connecting a modern computer at your home or office to the ThreeFold Grid, you can provide Internet capacity to communities and builders, and be rewarded for doing this. Take part in shaping a new Internet era governed by all of us.</p>
<button class="mx-0"><a target="_blank" href="https://manual.grid.tf/TF_Farmer_Guide/tf_farmer_guide_readme.html">Get Started</a></button>
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,26 +0,0 @@
{% block content %}
<div class="quicklinks text-center">
<a class="center" href="https://gettft.com/gettft/" rel="some text" target="_blank">
{% set link = page.permalink ~ "get_tft_button.png"%}
<img class="py-2 mr-2 my-2 px-5 border-2 border-black" src="{{link}}" alt="gettft">
</a>
<a class="center"
href="https://manual.grid.tf/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr.html"
target="_blank">
{% set link = page.permalink ~ "stellar_logo.png"%}
<img class="py-2 mr-2 my-2 px-5 border-2 border-black" src="{{link}}" alt="stellar">
</a>
<a class="center"
href="https://pancakeswap.finance/swap?exactField=output&exactAmount=100&outputCurrency=0x8f0FB159380176D324542b3a7933F0C2Fd0c2bbf&inputCurrency=0xe9e7cea3dedca5984780bafc599bd69add087d56?use=v2"
target="_blank">
{% set link = page.permalink ~ "pancack_button.png"%}
<img class="py-2 mr-2 my-2 px-5 border-2 border-black" src="{{link}}" alt="pancakeswap">
</a>
<a class="center" href="https://app.1inch.io/#/56/swap/BNB/TFT" target="_blank">
{% set link = page.permalink ~ "iinch_button.png"%}
<img class="py-2 my-2 mr-2 px-5 border-2 border-black" src="{{link}}" alt="1inch">
</a>
</div>
{% endblock content %}

View File

@@ -1,48 +0,0 @@
{
"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"
}
]
}
]
}