Code Monkey home page Code Monkey logo

si's Introduction

SI website

Netlify Status

This repository contains the code and content of the SI's website. The website was developed using Gatsby by Ilias Trichopoulos in collaboration with Konrad Seifert and is hosted on Netlify.

NetlifyCMS was integrated to provide CMS features for easy content editing. It is available at https://simoninstitute.ch/admin

Changes in the main branch of this repository will be deployed on the production website.

Table of contents

Pages

Page Description
Home page The page available at https://www.simoninstitute.ch/
Blog overview page The page available at https://www.simoninstitute.ch/blog/ listing all blog posts
Blog post page The page displaying the actual blog post
Blog tag page The page displaying all blog posts of a particular tag, available at https://www.simoninstitute.ch/blog/tag/[name-of-the-tag]/
Member detail page The page displaying information about a team member, available at https://www.simoninstitute.ch/about/member/[name-of-team-member]/
Our work page The page available at https://www.simoninstitute.ch/our-work/ listing areas of work with related blog posts.
Project detail page The page displaying information about a particular project, available at https://www.simoninstitute.ch/project/[name-of-the-project]/ (Archived)
Projects category page A page listing all projects of a particular category, available at https://www.simoninstitute.ch/our-work/category/[name-of-the-category]/ (Archived)
Projects tag page A page listing all projects that have a particular tag, available at https://www.simoninstitute.ch/our-work/tag/[name-of-the-tag]/ (Archived)
Legal page The page available at https://www.simoninstitute.ch/legal/
Fundraising page The page available at https://www.simoninstitute.ch/fundraising/
About page The page available at https://www.simoninstitute.ch/about/
Contact page The page available at https://www.simoninstitute.ch/contact/
Thank you page The page available at https://www.simoninstitute.ch/thank-you/, used as a redirect page for when someone contacts you through the contact form of the Contact page.
404 page The page someone lands to when the URL they are trying to load does not correspond to any page.

Content

All the content of the website lives in the /src/content folder. The content is grouped in subfolders that represent different content types. Do not change the names of these subfolders because the website will not know where to find the content. The subfolders are:

blog

Each subfolder inside the blog folder represents a blog post.

The name of the folder defines the URL of the blog post. For example, the src/content/blog/review-of-inception folder corresponds to the https://www.simoninstitute.ch/blog/post/review-of-inception/ page. Changing the name of the blog post folder will change the URL.

Inside a blog post folder there is an index.md file which contains the content of the blog post. See the blog post documentation for more details about the content structure of a blog post.

member

Each subfolder inside the member folder represents a member of the team.

The name of the folder defines the URL of the member detail page. For example, the src/content/member/konrad-seifert folder correspnds to the https://www.simoninstitute.ch/about/member/konrad-seifert/ page. Changing the name of the member folder will change the URL.

Similarly to the blog folder, inside the member folder there is an index.md file which contains the content of the team member. See the member documentation for more details about the member content structure.

project

Same as above, but for the project content type. The name of the folder defines the URL and changing it will alter the URL. See the project documentation for more details about the project content structure.

The project content type has been archived.

subpage

The subpage content type allows you to create simple pages with the "standard" layout. The standard layout is the "side-by-side" title and content layout that the project pages also use. The subfolders of this folder represent different pages where the name of the subfolder is the URL of the page. For example, the src/content/subpage/legal folder corresponds to the https://www.simoninstitute.ch/legal/ page.

As above, each subpage folder contains an index.md file with the contents of the page. The content structure is a more simplified version of the project content structure. See the subpage documentation for more details.

custom-page

Some pages need a customized layout. The files listed in this subfolder represent the content of each individual page. โš ๏ธ Changing the names of these files will not change the URLs of the pages and it will break the website because the customized layout template will not know where to find the content of the page.

For more details, see the documentation of the custom pages:

_configuration

The _configuration folder includes different kinds of configuration options for the website:

  • Texts of the 404 page
  • List of blog posts tags that are featured in the blog overview and blog tag overview pages.
  • The links of the footer
  • Metadata including the default SEO title and description
  • Navigation menu items

_project-categories

To display a blog posts in a section of the "Our work" page, a category needs to be assigned to it. To add/remove categories you'll need to edit this content type.

_team-groups

Each team member can have a group assigned to it. To add/remove groups you'll need to edit this content type.

Images

All images can be found in the /src/images folder. The idea of grouping all images together is to enable the feature of an "image gallery" once a CMS is integrated. You can upload images here and reference them in the content of the website.

Updating the content and previewing changes

To update the content and preview the changes before publishing them, follow this procedure:

  • Go to the update-content branch of this GitHub repository.
  • Perform the changes that you want and "commit" your changes.
  • Create a pull request against the main branch.
  • Wait for Netlify to create a preview link.
  • Check the preview link to visualize the changes you made.
  • Make further changes if needed.
  • Once happy with how the changes look like on the preview site, merge the pull request. This will trigger a production deployment and your changes will shortly become live.

3rd party services

The website relies on the following services:

  • GitHub: Hosting of the contents and the code of the website
  • Netlify: (Free) hosting of the actual website, connected to the GitHub repository.
  • Basin: Backend of the contact form.
  • Airtable: Application form.

Local development

CMS

Add the following at the top of the /static/admin/config.yml file:

local_backend: true

and run:

yarn start:cms

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.