Coder Social home page Coder Social logo

ondrabus / gatsby-starter-kontent-lumen Goto Github PK

View Code? Open in Web Editor NEW

This project forked from simply007/gatsby-starter-kontent-lumen

0.0 0.0 0.0 27.75 MB

Lumen is a minimal, lightweight and mobile-first starter for creating blogs using Gatsby and Kentico Kontent.

Home Page: https://gatsby-starter-kontent-lumen.netlify.com/

License: MIT License

JavaScript 54.99% HTML 10.90% SCSS 34.11%

gatsby-starter-kontent-lumen's Introduction

Gatsby Starter Kontent Lumen

GitHub license Stack Overflow Live demo

Netlify Status

Lumen is a minimal, lightweight and mobile-first starter for creating blogs using Gatsby.

This is an edited clone of gatsby-starter-lumen and gatsby-v2-starter-lumen migrated for getting content from headless CMS Kontent.

Page Screenshot

Features

  • Content from Kontent headless CMS.
  • Lost Grid (peterramsing/lost).
  • Beautiful typography inspired by matejlatin/Gutenberg.
  • Mobile-First approach in development.
  • Stylesheet built using SASS and BEM-Style naming.
  • Syntax highlighting in code blocks.
  • Sidebar menu built using a configuration block.
  • Archive organized by tags and categories.
  • Automatic Sitemap generation.
  • Google Analytics support.

Getting Started

Requirements

Create codebase

  1. Click on "Use this template" button to create your own repository from this template.

Create content source

  1. Go to app.kontent.ai and create empty project

  2. Go to "Project Settings", select API keys and copy

    • Project ID
  3. Install Kontent Backup Manager and import data to newly created project from kontent-backup.zip file (place appropriate values for apiKey and projectId arguments):

    npm i -g @kentico/kontent-backup-manager
    
    kbm --action=restore --apiKey=<Management API key> --projectId=<Project ID> --zipFilename=kontent-backup

    Alternatively, you can use the Template Manager UI for importing the content.

  4. Go to your Kontent project and publish all the imported items.

Join codebase and content data

Copy .env.template and name it .env then set the KONTENT_PROJECT_ID environment variable to value from Kontent -> "Project Settings" -> API keys -> Project ID.

This step could be done automatically by running npm run prepare-environment command defined in package.json.

You are now ready to use the site as your own!

Development

Install the dependencies and run development environment

npm install  
npm run prepare-environment # Creates a .env file from .env.template file if no .env file exists
npm run develop

Site production build

Install the dependencies and run production build

npm install
npm run prepare-environment # Creates a .env file from .env.template file if no .env file exists
npm run build

Preview Deploy

To allow this example load unpublished content via Preview Delivery API, you just need to adjust .env file created in "Join codebase to content data" section by setting these environment variables:

You could also walk through the Getting started with Gatsby Cloud and Kontent to set up your Preview environment on Gatsby Cloud plus enjoy the bonus in form of incremental builds.

If you are more fan of Netlify, you could follow Deploy to Netlify section and then provide the Environment variables mentioned above in Netlify.

Preview URLs

Once you've got your app running in a preview environment, you need to specify where (URL-wise) each type of your content can be accessed and viewed. For example, imagine your app runs at https://preview.example.com so you want to open "Project Settings", and select "Preview URLs" set it like this:

  • Article: https://preview.example.com/articles/{URLslug}
  • Author: https://preview.example.com
  • Category: https://preview.example.com/categories/{URLslug}
  • Menu: https://preview.example.com
  • Menu Item: https://preview.example.com/{URLslug}
  • Tag: https://preview.example.com/tags/{URLslug}

If you are using more complex and nested menu navigation, use example of the Gatsby Navigation example. In a nutshell, you want to register routes endpoint i.e. /preview/<LANGUAGE>/<CODENAME> to the same page as was registered for normal URL.

Production Deploy

Before deploying to production add own google analytics trackingId to [gatsby-config.js].

Deploy with Netlify

Netlify can run in any frontend web environment, but the quickest way to try it out is by running it on a pre-configured starter site with Netlify. Use the button below to build and deploy your own copy of the repository:

Deploy to Netlify

After clicking that button, you’ll authenticate with GitHub and choose a repository name. Netlify will then automatically create a repository in your GitHub account with a copy of the files from the template. Next, it will build and deploy the new site on Netlify, bringing you to the site dashboard when the build is complete. Next, you’ll need to set up Netlify’s Identity service to authorize users to log in to the CMS.

If you want to use Incremental builds, you need to enable Build Plugins Beta for your site.

If you want to deploy your own copy of the gatsby-lumen-starter project, in the netlify.toml file modify the KONTENT_PROJECT_ID environment variable to match the value from your Kontent project's "Project Settings" -> API keys -> Project ID, or set the Netlify environment variables through the Netlify UI.

Folder Structure

└── src
    ├── assets
    │   ├── fonts
    │   │   └── fontello-771c82e0
    │   │       ├── css
    │   │       └── font
    │   └── scss
    │       ├── base
    │       ├── mixins
    │       └── pages
    ├── components
    │   ├── Article
    │   ├── ArticleTemplateDetails
    │   ├── CategoryTemplateDetails
    │   ├── Links
    │   ├── Layout
    │   ├── Menu
    │   ├── PageTemplateDetails
    │   ├── Sidebar
    │   └── TagTemplateDetails
    ├── pages
    └── templates

Implementing Web spotlight

This example is ready to be used with Web Spotlight functionality. If you want to explore the possibilities, take a look to the Web Spotlight tutorial!

Web Spotlight preview

gatsby-starter-kontent-lumen's People

Contributors

abisz avatar alxshelepenok avatar axelclark avatar charandas avatar chmac avatar codejet avatar concreted avatar dariusz-wozniak avatar eyalroth avatar ihororlovskyi avatar kentico-michaelb avatar makma avatar marcelabomfim avatar mariolopjr avatar marktani avatar martinrosenberg avatar peterskoda avatar petrsvihlik avatar reed-jones avatar robertgregorywest avatar simply007 avatar swapnilmishra avatar vinnymac avatar vvasiloud avatar wichopy avatar ybbarng avatar yorunohikage avatar zollillo 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.