Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c9c0f36
Fix speakers page creation & fix minor ui errors
yiannisha May 6, 2023
ad187f4
Merge branch 'main' of github.com:yiannisha/tedxntua-2023
yiannisha May 6, 2023
f3b25d2
Merge branch 'TEDxNTUA:main' into main
yiannisha May 6, 2023
efccfb0
Merge pull request #71 from yiannisha/main
yiannisha May 6, 2023
fa3f5de
Minor fix
yiannisha May 6, 2023
dc257dc
Merge branch 'main' of github.com:yiannisha/tedxntua-2023
yiannisha May 6, 2023
ae43108
Merge pull request #73 from yiannisha/main
yiannisha May 6, 2023
d50c14f
Fix dissapearing text alignment
yiannisha May 6, 2023
92225ba
Merge branch 'TEDxNTUA:main' into main
yiannisha May 6, 2023
b365d4a
Merge pull request #74 from yiannisha/main
yiannisha May 6, 2023
58c66c3
More ui fixed
yiannisha May 6, 2023
d68b799
Merge branch 'main' of github.com:yiannisha/tedxntua-2023
yiannisha May 6, 2023
49e2704
Merge branch 'TEDxNTUA:main' into main
yiannisha May 6, 2023
8828a92
Merge pull request #75 from yiannisha/main
yiannisha May 6, 2023
a76f613
More minor changes and additions
yiannisha May 6, 2023
c0f6cc8
Merge branch 'main' of github.com:yiannisha/tedxntua-2023
yiannisha May 6, 2023
38cc833
Merge branch 'TEDxNTUA:main' into main
yiannisha May 6, 2023
762d050
Merge pull request #76 from yiannisha/main
yiannisha May 6, 2023
aec148b
Create CNAME
GiannisTsagkaropoulos Mar 2, 2025
f1c877f
feat: add script and gatsby.yml for build process and deploy to gh pages
GiannisTsagkaropoulos Mar 2, 2025
755f3ff
chore: handle null cases in data page template
GiannisTsagkaropoulos Mar 2, 2025
e51244b
chore: fix warnings for unused stylesheets and imports during build p…
GiannisTsagkaropoulos Mar 2, 2025
19e1625
chore: add back package-lock json
GiannisTsagkaropoulos Mar 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/gatsby.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Sample workflow for building and deploying a Gatsby site to GitHub Pages
#
# To get started with Gatsby see: https://www.gatsbyjs.com/docs/quick-start/
#
name: Deploy Gatsby site to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

# Default to bash
defaults:
run:
shell: bash

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Detect package manager
id: detect-package-manager
run: |
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
echo "manager=yarn" >> $GITHUB_OUTPUT
echo "command=install" >> $GITHUB_OUTPUT
exit 0
elif [ -f "${{ github.workspace }}/package.json" ]; then
echo "manager=npm" >> $GITHUB_OUTPUT
echo "command=ci" >> $GITHUB_OUTPUT
exit 0
else
echo "Unable to determine package manager"
exit 1
fi
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: ${{ steps.detect-package-manager.outputs.manager }}
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
with:
# Automatically inject pathPrefix in your Gatsby configuration file.
#
# You may remove this line if you want to manage the configuration yourself.
static_site_generator: gatsby
- name: Restore cache
uses: actions/cache@v4
with:
path: |
public
.cache
key: ${{ runner.os }}-gatsby-build-${{ hashFiles('public') }}
restore-keys: |
${{ runner.os }}-gatsby-build-
- name: Install dependencies
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
- name: Build with Gatsby
env:
PREFIX_PATHS: 'true'
run: ${{ steps.detect-package-manager.outputs.manager }} run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2023.tedxntua.com
5 changes: 3 additions & 2 deletions gatsby-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* @type {import('gatsby').GatsbyConfig}
*/
module.exports = {
pathPrefix: "/tedxntua-2023",
siteMetadata: {
title: `TEDxNTUA 2023`,
description: `TEDxNTUA 2023 is held this year, on Saturday, May 13th, at Athens Conservatoire. The theme of the event is MNEME. Join us in this journey, full of intriguing scientific talks, engaging performances and multifaceted workshops.`,
Expand All @@ -14,11 +15,11 @@ module.exports = {
options: {
spaceId: `u7sxm6fbdxv7`,
// Learn about environment variables: https://gatsby.dev/env-vars
accessToken: 'WDneuapWKR9HwpqeGmclxea2b7ZyFIDm-dA4Uy0gmMk',
accessToken: "WDneuapWKR9HwpqeGmclxea2b7ZyFIDm-dA4Uy0gmMk",
},
},
`gatsby-plugin-image`,
`gatsby-plugin-sharp`,
`gatsby-transformer-sharp`,
],
}
};
122 changes: 106 additions & 16 deletions gatsby-node.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ exports.createPages = ({ graphql, actions }) => {
image {
gatsbyImageData(width: 450, height: 450)
}
node_locale
matchId
slug
}
}
}
Expand All @@ -55,18 +58,44 @@ exports.createPages = ({ graphql, actions }) => {
throw result.errors;
}

result.data.allContentfulSpeakers.nodes.forEach(node => {
const urlAddress = node.name.toLowerCase().replace(/ /g, '-');
const seenNodes = []
for (const node of result.data.allContentfulSpeakers.nodes) {
// check if node has been seen again -> meaning data
// for both versions have been collected
const prevNode = seenNodes.find(prevNode => prevNode.matchId === node.matchId)
if (prevNode) {

const data = {
socialMediaUrl: node.socialMediaUrl,
image: node.image,
[node.node_locale]: {
name: node.name,
speciality: node.speciality,
bio: node.bio,
},
[prevNode.node_locale]: {
name: prevNode.name,
speciality: prevNode.speciality,
bio: prevNode.bio,
}
}

const urlAddress = node.slug;
createPage({
path: `/speakers/${urlAddress}/`,
component: template,
context: {
...node,
...data,
type: 'speaker',
pageName: urlAddress
},
});
});

continue;
}

seenNodes.push(node)
}
});

const performers = graphql(`
Expand All @@ -83,6 +112,9 @@ exports.createPages = ({ graphql, actions }) => {
name
socialMediaUrl
subtitle
node_locale
matchId
slug
}
}
}
Expand All @@ -92,21 +124,48 @@ exports.createPages = ({ graphql, actions }) => {
throw result.errors;
}

result.data.allContentfulPerformers.nodes.forEach(node => {
const urlAddress = node.name.toLowerCase().replace(/ /g, '-');
const seenNodes = []
for (const node of result.data.allContentfulPerformers.nodes) {
// check if node has been seen again -> meaning data
// for both versions have been collected
const prevNode = seenNodes.find(prevNode => prevNode.matchId === node.matchId)
if (prevNode) {

const data = {
socialMediaUrl: node.socialMediaUrl,
image: node.image,
[node.node_locale]: {
name: node.name,
subtitle: node.subtitle,
bio: node.bio,
},
[prevNode.node_locale]: {
name: prevNode.name,
subtitle: prevNode.subtitle,
bio: prevNode.bio,
}
}

const urlAddress = node.slug;
createPage({
path: `/performers/${urlAddress}/`,
component: template,
context: {
...node,
...data,
type: 'performer',
pageName: urlAddress
},
});
});
});

continue;
}

seenNodes.push(node)
}

});

const worksops = graphql(`
const workshops = graphql(`
query {
allContentfulWorkshops {
nodes {
Expand All @@ -123,6 +182,9 @@ exports.createPages = ({ graphql, actions }) => {
sideEventDescription {
raw
}
node_locale
matchId
slug
}
}
}
Expand All @@ -132,19 +194,47 @@ exports.createPages = ({ graphql, actions }) => {
throw result.errors;
}

result.data.allContentfulWorkshops.nodes.forEach(node => {
const urlAddress = node.name.toLowerCase().replace(/ /g, '-');
const seenNodes = []
for (const node of result.data.allContentfulWorkshops.nodes) {
// check if node has been seen again -> meaning data
// for both versions have been collected
const prevNode = seenNodes.find(prevNode => prevNode.matchId === node.matchId)
if (prevNode) {

const data = {
applicationFormUrl: node.applicationFormUrl,
websiteUrl: node.websiteUrl,
image: node.image,
[node.node_locale]: {
name: node.name,
sideEventDescription: node.sideEventDescription,
bio: node.bio,
},
[prevNode.node_locale]: {
name: prevNode.name,
sideEventDescription: prevNode.sideEventDescription,
bio: prevNode.bio,
}
}

const urlAddress = node.slug;
createPage({
path: `/workshops/${urlAddress}/`,
component: template,
context: {
...node,
...data,
type: 'workshop',
pageName: urlAddress
},
});
});
});

continue;
}

seenNodes.push(node)
}

});

return Promise.all([speakers, performers, worksops]);
return Promise.all([speakers, performers, workshops]);
}
65 changes: 65 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading