remove unnecessary files
16
.gitignore
vendored
@@ -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
@@ -1,4 +0,0 @@
|
||||
[submodule "threefold_data"]
|
||||
path = threefold_data
|
||||
url = https://github.com/threefoldfoundation/threefold_data.git
|
||||
ignore = dirty
|
||||
46
build.sh
@@ -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
|
||||
|
||||
|
||||
97
config.toml
@@ -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
|
||||
@@ -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>
|
||||
|
||||

|
||||
|
||||
<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.
|
||||
|
Before Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
@@ -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 Internet’s 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 ThreeFold’s 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.
|
||||
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 11 KiB |
@@ -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.
|
||||
|
Before Width: | Height: | Size: 11 KiB |
@@ -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.*
|
||||
|
||||
@@ -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. 🙏️*
|
||||
|
Before Width: | Height: | Size: 50 KiB |
@@ -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.*
|
||||
|
Before Width: | Height: | Size: 20 KiB |
@@ -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).*
|
||||
|
Before Width: | Height: | Size: 288 KiB |
@@ -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!*
|
||||
|
Before Width: | Height: | Size: 66 KiB |
@@ -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.
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 MiB |
@@ -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);
|
||||
}
|
||||
94
css/code.css
@@ -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%);
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -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 */
|
||||
509
css/index.css
@@ -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
|
||||
}
|
||||
466
css/layout.css
@@ -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%;
|
||||
}
|
||||
}
|
||||
208
format_data.sh
@@ -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
@@ -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
@@ -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 %}
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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 %}
|
||||
@@ -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 %}
|
||||
@@ -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
|
||||
>
|
||||
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Previous page"
|
||||
href="{{ paginator.previous }}"
|
||||
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
{% else %} {%
|
||||
include "partials/icons/svgFirstPageIcon.html" %}{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
|
||||
{% endif %} {% if
|
||||
paginator.next %}
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Next page"
|
||||
href="{{ paginator.next }}"
|
||||
>{% include "partials/icons/svgNextPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
<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" %}
|
||||
{% include
|
||||
"partials/icons/svgLastPageIcon.html" %}{% include
|
||||
"partials/icons/svgLastPageIcon.html" %} {% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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>
|
||||
{# · {{ 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 %}
|
||||
@@ -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
|
||||
>
|
||||
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Previous page"
|
||||
href="{{ paginator.previous }}"
|
||||
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
{% else %} {%
|
||||
include "partials/icons/svgFirstPageIcon.html" %}{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
|
||||
{% endif %} {% if
|
||||
paginator.next %}
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Next page"
|
||||
href="{{ paginator.next }}"
|
||||
>{% include "partials/icons/svgNextPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
<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" %}
|
||||
{% include
|
||||
"partials/icons/svgLastPageIcon.html" %}{% include
|
||||
"partials/icons/svgLastPageIcon.html" %} {% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -1,2 +0,0 @@
|
||||
{% set page = get_page(path="footer/index.md") %}
|
||||
{{page.content | safe}}
|
||||
@@ -1,2 +0,0 @@
|
||||
{% set page = get_page(path="header.md") %}
|
||||
{{page.content | safe}}
|
||||
@@ -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 %}
|
||||
@@ -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
|
||||
>
|
||||
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Previous page"
|
||||
href="{{ paginator.previous }}"
|
||||
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
{% else %} {%
|
||||
include "partials/icons/svgFirstPageIcon.html" %}{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
|
||||
{% endif %} {% if
|
||||
paginator.next %}
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Next page"
|
||||
href="{{ paginator.next }}"
|
||||
>{% include "partials/icons/svgNextPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
<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" %}
|
||||
{% include
|
||||
"partials/icons/svgLastPageIcon.html" %}{% include
|
||||
"partials/icons/svgLastPageIcon.html" %} {% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
@@ -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>
|
||||
@@ -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
|
||||
>
|
||||
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Previous page"
|
||||
href="{{ paginator.previous }}"
|
||||
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
{% else %} {%
|
||||
include "partials/icons/svgFirstPageIcon.html" %}{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
|
||||
{% endif %} {% if
|
||||
paginator.next %}
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Next page"
|
||||
href="{{ paginator.next }}"
|
||||
>{% include "partials/icons/svgNextPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
<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" %}
|
||||
{% include
|
||||
"partials/icons/svgLastPageIcon.html" %}{% include
|
||||
"partials/icons/svgLastPageIcon.html" %} {% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
|
||||
>
|
||||
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Previous page"
|
||||
href="{{ paginator.previous }}"
|
||||
>{% include "partials/icons/svgPrevPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
{% else %} {%
|
||||
include "partials/icons/svgFirstPageIcon.html" %}{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
|
||||
{% endif %} {% if
|
||||
paginator.next %}
|
||||
<a
|
||||
class="border-transparent"
|
||||
aria-label="Next page"
|
||||
href="{{ paginator.next }}"
|
||||
>{% include "partials/icons/svgNextPageIcon.html" %}</a
|
||||
>
|
||||
|
||||
<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" %}
|
||||
{% include
|
||||
"partials/icons/svgLastPageIcon.html" %}{% include
|
||||
"partials/icons/svgLastPageIcon.html" %} {% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 %}
|
||||
@@ -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>
|
||||
@@ -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 %}
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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
|
||||
>
|
||||
|
||||
<a class="border-transparent" aria-label="Previous page" href="{{ paginator.previous }}">
|
||||
{% include "partials/icons/svgPrevPageIcon.html" %}
|
||||
</a
|
||||
>
|
||||
|
||||
{% else %} {%
|
||||
include "partials/icons/svgFirstPageIcon.html" %}{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
{% include
|
||||
"partials/icons/svgFirstPageIcon.html" %}
|
||||
|
||||
{% endif %} {% if
|
||||
paginator.next %}
|
||||
<a class="border-transparent" aria-label="Next page" href="{{ paginator.next }}">
|
||||
{% include "partials/icons/svgNextPageIcon.html" %}
|
||||
</a
|
||||
>
|
||||
|
||||
<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" %}
|
||||
{% include
|
||||
"partials/icons/svgLastPageIcon.html" %}{% include
|
||||
"partials/icons/svgLastPageIcon.html" %} {% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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 %}
|
||||
48
vercel.json
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||