Merge branch 'development' of github.com:threefoldtech/www_partners_v2 into development
This commit is contained in:
86
content/news/news1/news1.md
Normal file
86
content/news/news1/news1.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
id: news1
|
||||
title: Internet is growing wild
|
||||
tags: tech, internet, edge-cloud
|
||||
image: ./wild.png
|
||||
image_caption: internet
|
||||
excerpt: Our mission is to empower and inspire people to recognize abundance by living new experiences one hour at a time.
|
||||
author: andreas_hartl
|
||||
created: 2019-12-05
|
||||
---
|
||||
|
||||
|
||||
# Internet is growing wild
|
||||
|
||||
### The internet is growing in a way which is not sustainable, there has to be an alternative.
|
||||
|
||||
## Internet capacity needs to become localized
|
||||
|
||||
A big majority of users in the world connect to servers that are not present in their region and as such experience higher costs and low performance.
|
||||
|
||||
According to a study of datacentermap.com 80% of the datacenters of the current Internet service providers are based in the U.S. and Europe. The rest of the world has scarce Internet resources dotted around territories.
|
||||
|
||||
As a consequence most internet users use the Internet based services running on infrastructure which is located far away from their physical location and most likely outside their country borders. This decreases the general end-user experience (latency) but also adds unnecessary costs to transporting the information back and forth. Also, it adds legislation and compliance headaches to enterprises.
|
||||
|
||||
Our mission is to empower and inspire people to recognize abundance by living new experiences one hour at a time.
|
||||
|
||||
## The world needs a responsible internet
|
||||
|
||||
On a humanitarian level the opportunities for creativity, learning and development are currently negatively influenced by not having access to a performant and affordable internet services. Since Internet access is a human right, it should protect the status quo between the developed and less developed regions of our world.
|
||||
|
||||
The United Nations have declared access to the internet access to be a human right in 2016. See the UN resolution here.
|
||||
|
||||
## The Internet needs to perform better
|
||||
|
||||
Compute and Storage vendors create poor performing solutions. There have been yearly improvements in hardware following Moore's law. While this has allowed ThreeFold to progress and innovate, it has also led to software developers taking these advances for granted; cutting corners where they can, creating sub-optimal code and allowing software components to be layered on top of each other to achieve certain behavioural functionalities.
|
||||
|
||||
The inefficiencies have now led to a situation where organically grown IT architectures are immensely complex. They use a variety of components from different software and hardware vendors integrated by so called 'integrators'. The overall effort and cost involved to create, operate and maintain such architectures is growing continuously and requiring an ever increasing budget and resourcing to continue.
|
||||
|
||||
If we could go down to the core algorithms and take another look at these, innovate at the heart of technology instead of applying patches and pain killers, we would be able to create a lot more end-user capacity than what systems provide today. Systems will last longer and will not have to be replaced by faster ones. Also, less engineers will be needed to create, operate and maintain these systems. Combined, these elements would present a more stable and reliable platform that can achieve higher levels of uptime.
|
||||
|
||||
Only upsides, right? Well a huge downside of such an approach is that vendors will make less revenue and more importantly less margin as systems will run for longer, be more stable and require less updates.
|
||||
|
||||
But why would vendors innovate at the core of their solution?
|
||||
|
||||
## Currently the Internet is extremely unsustainable
|
||||
|
||||
Did you know that the current Internet is responsible of between 5 and 10% of global energy consumptions? Making it more harmful to our planet than the airline Industry. The good news is that we can achieve 10x more power efficiency by addressing certain areas such as storage.
|
||||
|
||||
ThreeFold believes IT can do a much better job at being more sustainable - in fact ThreeFold believes it can reduce the Internet’s carbon footprint by 10 times compared to other industry standards in IT capacity producing solutions.
|
||||
|
||||
Power consumption is a function of better compute and storage performance that in theory would require more racks and cooling. ThreeFold's architectural approach brought solutions that enables it's Farmers to achieve roughly 3 times the performance per rack (so it uses fewer racks) and the racks require less energy than typical racks in the industry.
|
||||
|
||||
Read more about how ThreeFold achieves sustainability in the following blog: 10x times power savings, is this possible?
|
||||
|
||||
|
||||
## Internet capacity is expensive
|
||||
|
||||
The biggest cost in running IT architectures is the human cost.
|
||||
|
||||
Today's complex, built out of ‘band aid and patches’ point solutions, organically grown and badly documented IT infrastructures need an armada of people to keep it ticking. Even though this is an example, one can learn a lot from the trends that are presented:
|
||||
|
||||
On average an IT budget takes 5% of overall revenues
|
||||
IT consumes 6.5% of the total number of Full-time equivalent in the company of which 85% are insourced and 15% on payroll. This means that the enterprise doesn't retain internal know-how to operate their IT.
|
||||
About 50% of IT budgets are spent on Infrastructure ane operations. Similarly, a big part goes to applications. A mere 5% is considered to be internal overhead within the IT department.
|
||||
Around 65% of the IT budget is spent on resources and services, around 35% is spent on hardware and software.
|
||||
These figures present industry average numbers and paint a troubling picture that IT is a sizeable part of an overall budget, and that most spending is going to have the right knowledge skills insourced to the organisation to run the core IT architecture it relies on. For any other discipline in any organisation this would present an unacceptable risk to the business and it's continuity - strangely not for IT.
|
||||
|
||||
## People are a source of downtime, more intelligence is needed
|
||||
|
||||
The biggest source of downtime in computer systems are people.
|
||||
|
||||
Getting people involved in fixing infrastructure problems creates the risk of accidentally causing more system downtime. A very recent example on this hit a large organisation cloud service provider.
|
||||
|
||||
20+ years ago when Internet data centers came into existence next to telecom points of presence (POP), the level of complication in architecting, building and maintaining these infrastructures exploded. From an already reasonable complicated technology setup to transport packets of data around the globe, these information warehouses were created where data was uploaded to, processed and the obtained results sent back to end users on the other side of the globe.
|
||||
|
||||
Managing a datacenter that contains solutions for information transportation, storage and processing is not an easy task and the growth of data volume uploaded, stored and processed has exponentially increased. The number of technologies invented and implemented in regards to the processing and storing of information has also exploded. This resulted in a double exponential growth in complexity to architect, build, operate and maintain these IT systems.
|
||||
|
||||
The time has come that we no longer rely on people to do the right thing in case of emergency - the complexity is overwhelming and the dependency on the availability of that information is huge. Having people to do manual deployments and operational responsibilities do not provide the agility and speed to keep up with the continuous exponential growth of the industry. It is time to take the human element out of IT and let smart and autonomous systems to take over. This will also let people focus on more creative activities.
|
||||
|
||||
## The Internet is growing fast, with the wrong solutions
|
||||
|
||||
The current growth of internet needs 4000+ new large scale data centers of computer systems.
|
||||
|
||||
The global data growth will reach more than 40 Zetabytes by 2020 which represents an average yearly growth of 42% starting at 4.5 Zetabytes in 2013*. To host all this data over 4000 new big data centers have to to be built. And to achieve this goal, $ 1 trillion USD investment capital is needed and land totalling the size of the UK would be needed e.g. siemens innovation strategy.
|
||||
|
||||
It is evident that the current solutions are super unsustainable and make no sense. Luckily, ThreeFold and many other start-ups are deploying new solutions.
|
||||
BIN
content/news/news1/wild.png
Normal file
BIN
content/news/news1/wild.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 402 KiB |
27
content/news/news2/news2.md
Normal file
27
content/news/news2/news2.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
id: news2
|
||||
title: You Are Unique
|
||||
tags: autonomy, equality, human
|
||||
image: ./unique.png
|
||||
image_caption: you
|
||||
excerpt: During a gathering with some friends, I noticed something that made me think about how important it is what we’re doing.
|
||||
author: sabrina_sadik
|
||||
created: 2019-12-05
|
||||
---
|
||||
|
||||
# You are unique
|
||||
|
||||
During a gathering with some friends, I noticed something that made me think about how important it is what we’re doing.
|
||||
|
||||
One of my friends was complaining about how he couldn’t log in to one of his social media platforms, because all of his passwords are different and he forgot which one he used for this particular platform. Another friend was saying how she tagged her sister on a funny meme, but her sister couldn’t find it on Facebook. Turns out she tagged her on Instagram. And then one of them said something that I keep hearing more and more from people, “Why do we have so many apps, I can’t find anything anymore!”
|
||||
|
||||
We exist so many times online, but why? There is only one me in the real world. Why should there not be only one me online? Why should I have 25 different profiles on 25 different platforms, with 25 different logins, when I am unique?
|
||||
|
||||
That is another dilemma that ThreeFold has a solution for with it's autonomous technology. 3Bot - a digital avatar like no other, that basically handles your entire online life. The focus lies on digital privacy, where only you can access your data, and no one else. The 3Bot has all the functionalities you need to interact and exchange information and value, there will be no need for that many applications on your device anymore. With 3Bot, everything changes.
|
||||
|
||||
The 3Bot is built on the ThreeFold Grid, and has the same values as ThreeFold. Freedom, Equality, and Fairness. It is important that your data is safe, and what can be safer than you being the only one who not only has access to it, but also the only one who owns that data? Your online world should not be that different from your offline world. In your offline world, you are the center of your own life. That is what ThreeFold is doing with the 3Bot, putting you in the center of your online life too.
|
||||
|
||||
One decentralized application, one digital wallet, one login and one you. Because you’re unique.
|
||||
|
||||
More information on www.threefold.io
|
||||
|
||||
BIN
content/news/news2/unique.png
Normal file
BIN
content/news/news2/unique.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 969 KiB |
38
content/news/news3/news3.md
Normal file
38
content/news/news3/news3.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
id: news3
|
||||
title: Central America to Pioneer a Regenerative Financial Ecosystem
|
||||
tags: blockchain, regeneration, education
|
||||
image: ./regeneration.png
|
||||
image_caption: regeneration
|
||||
excerpt: Integrity.Earth is proud to announce a launch partnership with SEEDS.
|
||||
author: franz_josef_allmayer
|
||||
created: 2019-10-08
|
||||
---
|
||||
|
||||
|
||||
# Central America to Pioneer a Regenerative Financial Ecosystem
|
||||
|
||||
Integrity.Earth is proud to announce a launch partnership with SEEDS.
|
||||
|
||||
SEEDS is a pioneering a financial ecosystem and conscious digital currency designed to empower humanity & regenerate ecosystems.
|
||||
|
||||
Integrity.Earth facilitates the convergence of the regenerative society into a co-creative development processes that respects a holistic understanding of our interwoven-ness with life.
|
||||
|
||||
This partnership will catalyze the emergence of bioregional economies of abundance and will be instrumental to the five year plan to Solving
|
||||
the Central American Migration Crisis through Regenerative Development.
|
||||
Together, we will sustain a program of Regenerative Development through community empowerment, focused on restoring essential ecological corridors and addressing the systemic causes of the migration crisis. We are pioneering a whole-system transdisciplinary approach that combines proven frameworks of best practices in ecological restoration in conjunction with meeting the socio-economic needs of communities.
|
||||
|
||||
Central America, with a high potential for regeneration, offers a unique opportunity to effectively address a complex systemic failure that risks driving millions to emigrate from the Northern Triangle (Guatemala, El Salvador and Honduras) and improve the resilience of Costa Rica and Panama through large-scale regenerative development.
|
||||
|
||||
Our pathway to restore ecological balance to the region while safeguarding the long-term livelihoods of communities starts with targeting essential biological corridors over a five-year period, where we intend to build capacity for broad impact, as follows:
|
||||
|
||||
Co-creating regenerative economies with all stakeholders through multidisciplinary solutions that build resilience at the local level.
|
||||
Enhancing community building and participation, especially the capacity of youth, through empowerment and education.
|
||||
Incubating entrepreneurs, cooperatives, and small enterprises, inclusive to women and youth, establishing value chains for sustainable market opportunities.
|
||||
Developing regenerative agriculture programs that optimise food production through land-use-planning and the recovery of local agrobiodiversity, linked with local ancestral knowledge.
|
||||
Developing regenerative tourism models and frameworks.
|
||||
Facilitate access to innovation technology for rural communities (i.e. sustainable energy production) allowing for youth to identify with local development
|
||||
Safeguarding and recovery of essential biological corridors that sustain biodiversity levels and build resilience to climate change.
|
||||
We are proposing a far-reaching, long-term solution that consolidates existing and emerging efforts in the region working towards systemic integrity. This will open up a pathway for effective replication and scale, allowing all of us to converge around a well-being economy that sustains life.
|
||||
|
||||
We are all stakeholders of this planet. We look forward to co-creating a sustainable planetary culture with you.
|
||||
BIN
content/news/news3/regeneration.png
Normal file
BIN
content/news/news3/regeneration.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 249 KiB |
@@ -22,7 +22,7 @@
|
||||
},
|
||||
{
|
||||
"name": "NewsRoom",
|
||||
"link": "/newsroom",
|
||||
"link": "/news",
|
||||
"external": false
|
||||
}
|
||||
],
|
||||
|
||||
@@ -86,7 +86,7 @@ module.exports = {
|
||||
typeName: 'Blog',
|
||||
path: './content/blog/**/*.md',
|
||||
templates: {
|
||||
BlogPost: '/news/:id'
|
||||
BlogPost: '/blog/post/:id'
|
||||
},
|
||||
refs: {
|
||||
author: 'Person',
|
||||
@@ -98,6 +98,25 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
use: '@gridsome/source-filesystem',
|
||||
options: {
|
||||
typeName: 'News',
|
||||
path: './content/news/**/*.md',
|
||||
templates: {
|
||||
NewsPost: '/news/:id'
|
||||
},
|
||||
refs: {
|
||||
author: 'Person',
|
||||
tags: {
|
||||
typeName: 'Tag',
|
||||
create: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
use: '@gridsome/source-filesystem',
|
||||
options: {
|
||||
@@ -131,8 +150,13 @@ module.exports = {
|
||||
},
|
||||
templates: {
|
||||
Blog: [{
|
||||
path: '/blog/post/:id'
|
||||
}],
|
||||
|
||||
News: [{
|
||||
path: '/news/:id'
|
||||
}],
|
||||
|
||||
Person: [{
|
||||
path: '/people/:id',
|
||||
component: '~/templates/Person.vue'
|
||||
|
||||
@@ -34,6 +34,17 @@ module.exports = function(api) {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
if (options.internal.typeName === 'News') {
|
||||
|
||||
options.tags = (typeof options.tags === 'string') ? options.tags.split(',').map(string => string.trim()) : options.tags;
|
||||
options.author = (typeof options.author === 'string') ? options.author.split(',').map(string => string.trim()) : options.author;
|
||||
return {
|
||||
...options
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
if (options.internal.typeName === 'Project') {
|
||||
options.tags = (typeof options.tags === 'string') ? options.tags.split(',').map(string => string.trim()) : options.tags;
|
||||
options.countries = (typeof options.countries === 'string') ? options.countries.split(',').map(string => string.trim()) : options.countries;
|
||||
@@ -87,16 +98,6 @@ module.exports = function(api) {
|
||||
})
|
||||
})
|
||||
|
||||
api.createPages(({ createPage }) => {
|
||||
createPage({
|
||||
path: '/newsroom',
|
||||
component: './src/templates/NewsRoom.vue',
|
||||
context: {
|
||||
private: private
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
api.createPages(async({
|
||||
graphql,
|
||||
createPage
|
||||
@@ -136,4 +137,44 @@ module.exports = function(api) {
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
api.createPages(async({
|
||||
graphql,
|
||||
createPage
|
||||
}) => {
|
||||
// Use the Pages API here: https://gridsome.org/docs/pages-api
|
||||
const {
|
||||
data
|
||||
} = await graphql(`{
|
||||
allNews {
|
||||
edges {
|
||||
previous {
|
||||
id
|
||||
}
|
||||
next {
|
||||
id
|
||||
}
|
||||
node {
|
||||
id
|
||||
path
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
data.allNews.edges.forEach(function(element) {
|
||||
createPage({
|
||||
path: element.node.path,
|
||||
component: './src/templates/NewsPost.vue',
|
||||
context: {
|
||||
previousElement: (element.previous) ? element.previous.id : '##empty##',
|
||||
nextElement: (element.next) ? element.next.id : '##empty##',
|
||||
id: element.node.id
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
81
src/pages/News.vue
Normal file
81
src/pages/News.vue
Normal file
@@ -0,0 +1,81 @@
|
||||
<template>
|
||||
<Layout>
|
||||
<div
|
||||
class="container sm:pxi-0 mx-auto overflow-hidden"
|
||||
:style="{ height: contentHeight + 'px' }"
|
||||
>
|
||||
<div class="flex flex-wrap with-large pt-8 pb-8 mx-4 sm:-mx-4">
|
||||
<PostListItem
|
||||
v-for="edge in $page.entries.edges"
|
||||
:key="edge.node.id"
|
||||
:record="edge.node"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pagination flex justify-center mb-8">
|
||||
<Pagination
|
||||
:baseUrl="baseurl"
|
||||
:currentPage="$page.entries.pageInfo.currentPage"
|
||||
:totalPages="$page.entries.pageInfo.totalPages"
|
||||
:maxVisibleButtons="5"
|
||||
v-if="$page.entries.pageInfo.totalPages > 1"
|
||||
/>
|
||||
</div>
|
||||
</Layout>
|
||||
</template>
|
||||
|
||||
<page-query>
|
||||
|
||||
query{
|
||||
|
||||
entries: allNews(sortBy: "created", order: DESC) {
|
||||
totalCount
|
||||
pageInfo {
|
||||
totalPages
|
||||
currentPage
|
||||
}
|
||||
edges {
|
||||
node {
|
||||
title
|
||||
excerpt
|
||||
image(width:800)
|
||||
path
|
||||
humanTime : created(format:"DD MMM YYYY")
|
||||
datetime : created
|
||||
author {
|
||||
id
|
||||
name
|
||||
image(width:64, height:64, fit:inside)
|
||||
path
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</page-query>
|
||||
|
||||
<script>
|
||||
import PostListItem from "~/components/PostListItem.vue";
|
||||
import Pagination from "~/components/Pagination.vue";
|
||||
|
||||
export default {
|
||||
metaInfo: {
|
||||
title: "Home",
|
||||
},
|
||||
components: {
|
||||
PostListItem,
|
||||
Pagination,
|
||||
},
|
||||
computed: {
|
||||
baseurl: function () {
|
||||
return "";
|
||||
},
|
||||
contentHeight() {
|
||||
if (process.isClient) {
|
||||
return window.innerHeight - 160;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
194
src/templates/NewsPost.vue
Normal file
194
src/templates/NewsPost.vue
Normal file
@@ -0,0 +1,194 @@
|
||||
<template>
|
||||
<Layout :hideHeader="true" :disableScroll="true">
|
||||
<div class="container sm:pxi-0 mx-auto overflow-x-hidden pt-20">
|
||||
<div class="pt-8">
|
||||
<section class="post-header container mx-auto px-0 mb-4 border-b">
|
||||
<h1 class="text-5xl font-medium leading-none mt-0">
|
||||
{{ $page.news.title }}
|
||||
</h1>
|
||||
<div
|
||||
class="text-2xl pt-4 pb-10 text-gray-700"
|
||||
v-html="$page.news.excerpt"
|
||||
></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 m-0">
|
||||
<li
|
||||
v-for="author in $page.news.author"
|
||||
:key="author.id"
|
||||
class="author-list-item"
|
||||
>
|
||||
<g-link :to="author.path" v-tooltip="author.name">
|
||||
<g-image
|
||||
:src="author.image"
|
||||
:alt="author.name"
|
||||
class="h-8 w-8 sm:h-10 sm:w-10 rounded-full bg-gray-200 border-2 border-white"
|
||||
/>
|
||||
</g-link>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="pl-3 flex flex-col text-xs leading-none uppercase">
|
||||
<p>
|
||||
<span
|
||||
v-for="(author, index) in $page.news.author"
|
||||
:key="author.id"
|
||||
>
|
||||
<g-link
|
||||
:to="author.path"
|
||||
v-tooltip="author.name"
|
||||
class="hover:underline"
|
||||
>{{ author.name }}</g-link
|
||||
>
|
||||
<span v-if="index < $page.news.author.length - 1">,</span>
|
||||
</span>
|
||||
</p>
|
||||
<p class="text-gray-700">
|
||||
<g-link :to="$page.news.path">
|
||||
<time :datetime="$page.news.datetime">{{
|
||||
$page.news.humanTime
|
||||
}}</time>
|
||||
</g-link>
|
||||
<!-- · {{ $page.news.timeToRead }} min read -->
|
||||
·
|
||||
<g-link :to="$page.news.path">
|
||||
<time :datetime="$page.news.datetime">{{
|
||||
$page.news.startDate
|
||||
}}</time>
|
||||
</g-link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<section class="post-image mx-auto w-full">
|
||||
<g-image :src="$page.news.image"></g-image>
|
||||
</section>
|
||||
|
||||
<div class="">
|
||||
<section
|
||||
class="post-content container mx-auto relative font-serif text-gray-700"
|
||||
>
|
||||
<div
|
||||
class="post-content-text text-xl"
|
||||
v-html="$page.news.content"
|
||||
></div>
|
||||
</section>
|
||||
|
||||
<section class="post-tags container mx-auto relative py-10">
|
||||
<g-link
|
||||
v-for="tag in $page.news.tags"
|
||||
:key="tag.id"
|
||||
:to="tag.path"
|
||||
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.title }}</g-link
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section
|
||||
class="post-related text-gray-700 pt-10 border-b border-b-gray-900"
|
||||
>
|
||||
<div class="container mx-auto">
|
||||
<div class="flex flex-wrap pt-8 pb-8 mx-4 sm:-mx-4">
|
||||
<PostListItem
|
||||
v-if="$page.previous"
|
||||
:record="$page.previous"
|
||||
:border="false"
|
||||
></PostListItem>
|
||||
<PostListItem
|
||||
v-if="$page.next"
|
||||
:record="$page.next"
|
||||
:border="false"
|
||||
></PostListItem>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Layout>
|
||||
</template>
|
||||
|
||||
<page-query>
|
||||
query($id: ID!, $previousElement: ID!, $nextElement: ID!) {
|
||||
news(id: $id) {
|
||||
title
|
||||
path
|
||||
image(width:1600, height:800)
|
||||
image_caption
|
||||
content
|
||||
excerpt
|
||||
humanTime : created(format:"DD MMMM YYYY")
|
||||
datetime : created(format:"ddd MMM DD YYYY hh:mm:ss zZ")
|
||||
timeToRead
|
||||
tags {
|
||||
id
|
||||
title
|
||||
path
|
||||
}
|
||||
author {
|
||||
id
|
||||
name
|
||||
image
|
||||
path
|
||||
}
|
||||
}
|
||||
|
||||
previous: news(id: $previousElement) {
|
||||
title
|
||||
excerpt
|
||||
image(width:800)
|
||||
path
|
||||
timeToRead
|
||||
author {
|
||||
id
|
||||
name
|
||||
image(width:64, height:64, fit:inside)
|
||||
path
|
||||
}
|
||||
}
|
||||
|
||||
next: news(id: $nextElement) {
|
||||
title
|
||||
excerpt
|
||||
image(width:800)
|
||||
path
|
||||
timeToRead
|
||||
author {
|
||||
id
|
||||
name
|
||||
image(width:64, height:64, fit:inside)
|
||||
path
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
</page-query>
|
||||
|
||||
<script>
|
||||
import PostListItem from "~/components/PostListItem.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
PostListItem,
|
||||
},
|
||||
metaInfo() {
|
||||
return {
|
||||
title: this.$page.news.title,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap");
|
||||
.post-card-excerpt,
|
||||
.post-content-text {
|
||||
font-family: "Roboto", sans-serif !important;
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
@@ -1,67 +0,0 @@
|
||||
<template>
|
||||
<Layout>
|
||||
<div class="container sm:pxi-0 mx-auto overflow-x-hidden">
|
||||
<div class="flex flex-wrap with-large pt-8 pb-8 mx-4 sm:-mx-4">
|
||||
<PostListItem v-for="edge in $page.entries.edges" :key="edge.node.id" :record="edge.node" />
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
</template>
|
||||
|
||||
<page-query>
|
||||
|
||||
query ($private: Int){
|
||||
entries: allProject (sortBy: "rank", order: DESC, filter: { private: { ne: $private }}){
|
||||
totalCount
|
||||
edges {
|
||||
node {
|
||||
title
|
||||
path
|
||||
members {
|
||||
id
|
||||
name
|
||||
image(width:64, height:64, fit:inside)
|
||||
path
|
||||
},
|
||||
tags {
|
||||
id
|
||||
title
|
||||
path
|
||||
}
|
||||
rank
|
||||
linkedin
|
||||
startDate : startdate(format:"MM YYYY")
|
||||
humanTime : created(format:"DD MMMM YYYY")
|
||||
datetime : created(format:"ddd MMM DD YYYY hh:mm:ss zZ")
|
||||
status
|
||||
excerpt
|
||||
image(width:800)
|
||||
path
|
||||
timeToRead
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</page-query>
|
||||
|
||||
<script>
|
||||
import PostListItem from '~/components/PostListItem.vue';
|
||||
import Pagination from "~/components/Pagination.vue";
|
||||
|
||||
export default {
|
||||
metaInfo: {
|
||||
title: "Projects"
|
||||
},
|
||||
components: {
|
||||
PostListItem,
|
||||
Pagination
|
||||
},
|
||||
computed: {
|
||||
baseurl: function() {
|
||||
return "/projects/"
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
Reference in New Issue
Block a user