Gatsby Kontent Packages
Monorepo with Gatsby Kontent packages.
The repository contains the development site (/site
) that could automatically load packages (packages
) thanks to yarn workspaces.
Content
Packages
Package | Summary | Version |
---|---|---|
Gatsby Source Kontent Plugin | plugin providing data from Kentico Kontent REST API to Gatsby GraphQL model | |
Gatsby Kontent Components | package containing React components useful when processing Kontent data to site |
Site
- Development Site - Site using for development purposes and code examples showcasing packages possibilities
Examples
Navigation showcase
- Navigation showcase - Showcase including the navigation best practices. Description, how to do the content modeling with all benefits of the modular content as well as have tree-based menu structure.
Resolution showcase
- Resolution showcase - Demonstration how to resolve the Rich Text element and it's inline images, inline content items, and content components.
Relationships showcase
- Relationships showcase - Schema customization examples demonstrating relationship possibilities among Kontent GraphQL nodes.
Development
Prerequisites
It is completely OK to use npm as a package manager in your application, npm is not supported just the packages development.
Install
-
Install packages
yarn # install all npm dependencies in the repository
-
Start watch mode packages
yarn watch # run watch mode through all packages source code
-
Run development site
yarn develop:site # run `gatsby develop` command in the development site
Now you are good to go. You could start browsing http://localhost:8000 for development site and http://localhost:8000/___graphql for GraphiQL explorer.
Tests
To run all tests, there is npm script prepared.
yarn test # run test script in all packages as well as in the development site
- Packages are using Jest framework for testing.
Build
To build all of the packages as well as a development site, you could use one command.
yarn build # run build script in all packages as well as in the development site
Lint
To lint all of the packages as well as a development site, you could use one command.
yarn lint # run lint script in all packages as well as in the development site
- Packages are using ESLint with Typescript plugins for linting.
Publishing
As a publishing framework, there is a Lerna framework set up. This package is using Fixed/Locked mode. All minor and major changes should publish all packages, in case of patch version, it is up to developer decision.
How to publish new version
If you have the rights to publish packages, just use lerna
and specify the version when prompted. All the changes made by lerna are automatically committed.
A typical scenario is when everything is ready and you want to publish the version, just use command.
npx lerna publish --tag-version-prefix=''
That should summarize the publish information and prompt you to define the version number and acknowledge the publish. Once everything is OK and you acknowledge the publish:
- the new version is published to npm
<YOUR VERSION>
is set tolerna.json
'sversion
- commit with this change (and package.json files version changes) is pushed to the repository
- commit also contains tag
<YOUR VERSION>
that could be used for creating GitHub release if you want
- commit also contains tag
💡 If you want to test out the beta version first (which is recommended) use following command and if everything is OK, release another patch version as the final version.
npx lerna publish --tag-version-prefix='' --dist-tag=beta