Git Product home page Git Product logo

dat-foundation-website's Introduction

Dat Foundation website

This is a shiny new website for the Dat Foundation! It is built on VuePress, pulls its content from this GitHub repo, is editable with Netlify CMS, and is continuously integrated with Netlify.

Development

For local development:

Install dependencies using Yarn.

yarn install

Contributing

npm run dev

Things to note:

  • If you edit the VuePress config file (site/config.json) you'll have to restart the development server for any changes to take effect.

Build and deploy

To build the site:

npm run build

This repo is continuously integrated with Netlify and all commits to master will trigger a deploy.

Netlify CMS

Edit the site content at /admin with Netlify CMS!

Edit the CMS configuration in .vuepress/public/admin/config.yml

Login with Netlify Identity

This ties your contributions to your GitHub account.

Editorial Workflow

This is a layer of abstraction on top of standard Git pull requests and merges; learn more here.

Actions in Netlify UI ... Perform these Git actions
Save draft Commits to a new branch (named according to the pattern cms/collectionName-entrySlug), and opens a pull request
Edit draft Pushes another commit to the draft branch/pull request
Approve and publish draft Merges pull request and deletes branch

Content Structure

We deviated from the default VuePress content model in order to integrate Netlify CMS. Pages and Global content is stored in /site/_data as YML and imported directly into views and components as needed. This separation of data from view component is a solution to Netlify CMS occasionally overwriting template data when updating YML frontmatter via the editorial workflow. Unfortunately it makes it harder to take advantage of some of the default VuePress features, and hope that as Netlify CMS matures we can troubleshoot this.

Collections

Collections consist of objects that can be related to pages and other collection objects sitewide. Currently, the collections are People, Projects, Modules, Tags, and Events. These collections serve as a version-controlled directory of all people, projects, modules, and events related to the Dat Foundation, including how they're related to one another.

For example, before displaying a Person on the About/People page, you'd have to add them as a Person in the People collection. That Person is now represented by a single record in the People collection. Different pages can "use" that Person object via relation fields, and any changes you make to that object propagate sitewide at build.

Globals

Things that don't change often. This serves as the canonical source of truth for things like the Dat Foundation mission statement, values, etc. Also the site navigation!

Blog

The blog is a little bit different; it follows normal VuePress content structure in that it's just a directory of markdown files.

Development

For local development:

Install dependencies with npm or Yarn.

npm install

Run the development server.

npm run dev

Things to note:

  • If you edit the VuePress config file (site/config.json) you'll have to restart the development server for any changes to take effect.

Build and deploy

To build the site:

npm run build

This repo is continuously integrated with Netlify and all commits to master will trigger a deploy.

dat-foundation-website's People

Contributors

alekspickle avatar cblgh avatar da2x avatar dependabot[bot] avatar dpaez avatar frando avatar joehand avatar juliangruber avatar jwerle avatar martinheidegger avatar ninabreznik avatar okdistribute avatar rangermauve avatar sammacbeth avatar ushakov-igor avatar whoisgina avatar zootella avatar

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.