├── static ├── robots.txt ├── tag.jpg ├── cover.jpg ├── logo.png ├── author.jpg ├── favicon.ico ├── favicon.png ├── facebookImage.png ├── twitterImage.png ├── images │ └── logo.svg ├── logo.svg └── alternateLogo.svg ├── src └── @draftbox-co │ └── gatsby-ghost-novela-theme │ └── components │ ├── fb-comments.jsx │ └── disqus.jsx ├── starters.yml ├── LICENSE ├── package.json ├── .gitignore ├── gatsby-config.js ├── siteConfig.js └── README.md /static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | -------------------------------------------------------------------------------- /static/tag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/tag.jpg -------------------------------------------------------------------------------- /static/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/cover.jpg -------------------------------------------------------------------------------- /static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/logo.png -------------------------------------------------------------------------------- /static/author.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/author.jpg -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/favicon.png -------------------------------------------------------------------------------- /static/facebookImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/facebookImage.png -------------------------------------------------------------------------------- /static/twitterImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/draftbox-co/gatsby-ghost-novela-starter/HEAD/static/twitterImage.png -------------------------------------------------------------------------------- /src/@draftbox-co/gatsby-ghost-novela-theme/components/fb-comments.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { FacebookProvider, Comments } from 'react-facebook'; 3 | 4 | const FbComments = props => { 5 | return process.env.GATSBY_FB_APP_ID ? ( 6 | 7 | 8 | 9 | ) : ( 10 | <> 11 | ); 12 | }; 13 | 14 | export default FbComments; 15 | -------------------------------------------------------------------------------- /src/@draftbox-co/gatsby-ghost-novela-theme/components/disqus.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { DiscussionEmbed } from "disqus-react"; 3 | 4 | const Disqus = props => { 5 | const disqusConfig = { 6 | shortname: process.env.GATSBY_DISQUS_SHORTNAME, 7 | identifier: props.slug, 8 | title: props.slug 9 | }; 10 | 11 | return process.env.GATSBY_DISQUS_SHORTNAME ? ( 12 | 13 | ) : ( 14 | <> 15 | ); 16 | }; 17 | 18 | export default Disqus; 19 | -------------------------------------------------------------------------------- /starters.yml: -------------------------------------------------------------------------------- 1 | - url: https://ghost-novela-preview.draftbox.co/ 2 | repo: https://github.com/draftbox-co/gatsby-ghost-novela-starter 3 | description: A Gatsby starter for creating blogs from headless Ghost CMS. 4 | tags: 5 | - AMP 6 | - Blog 7 | - CMS:Headless 8 | - CMS:Ghost 9 | - Disqus 10 | - Language:TypeScript 11 | - Markdown 12 | - MDX 13 | - Netlify 14 | - Pagination 15 | - PWA 16 | - RSS 17 | - SEO 18 | - Styling:CSS-in-JS - Novela 19 | - Styling:Theme-UI - Novela 20 | features: 21 | - Novela theme by Narrative 22 | - Data sourcing from headless Ghost 23 | - Responsive design 24 | - SEO optimized 25 | - OpenGraph structured data 26 | - Twitter Cards meta 27 | - Sitemap Generation 28 | - XML Sitemaps 29 | - Progressive Web App 30 | - Offline Support 31 | - RSS Feed 32 | - Composable and extensible 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Draftbox 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gatsby-ghost-novela-starter", 3 | "description": "A Gatsby starter for creating blogs from headless Ghost CMS.", 4 | "version": "1.0.0", 5 | "license": "MIT", 6 | "scripts": { 7 | "develop": "gatsby develop", 8 | "build": "gatsby build", 9 | "clean": "gatsby clean", 10 | "config": "git update-index --skip-worktree .ghost.json" 11 | }, 12 | "devDependencies": { 13 | "babel-eslint": "^10.1.0", 14 | "eslint": "^6.8.0", 15 | "eslint-plugin-ghost": "^1.0.0", 16 | "eslint-plugin-react": "^7.19.0", 17 | "gatsby": "2.21.1", 18 | "gh-pages": "^2.2.0", 19 | "react": "^16.13.0", 20 | "react-dom": "^16.13.0" 21 | }, 22 | "dependencies": { 23 | "@draftbox-co/gatsby-ghost-novela-theme": "1.0.34", 24 | "@draftbox-co/gatsby-plugin-crisp-chat-lazy": "^0.0.3", 25 | "@draftbox-co/gatsby-plugin-hotjar-lazy": "^0.0.1", 26 | "@draftbox-co/gatsby-plugin-olark-lazy": "^0.0.1", 27 | "@draftbox-co/gatsby-plugin-tawk-lazy": "^0.0.1", 28 | "dotenv": "^8.2.0", 29 | "gatsby": "2.21.1", 30 | "gatsby-plugin-disqus": "^1.1.4", 31 | "gatsby-plugin-google-analytics": "^2.2.2", 32 | "gatsby-plugin-google-tagmanager": "^2.3.5", 33 | "gatsby-plugin-mixpanel": "^3.1.6", 34 | "gatsby-plugin-segment-js": "^3.1.0", 35 | "react": "^16.13.0", 36 | "react-dom": "^16.13.0", 37 | "react-facebook": "^8.1.4" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Node template 2 | 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # Typescript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | .ghost.json 62 | 63 | # IDE 64 | .idea/* 65 | *.iml 66 | *.sublime-* 67 | 68 | # OSX 69 | .DS_Store 70 | .vscode 71 | 72 | # Docs Custom 73 | .cache/ 74 | public 75 | yarn-error.log 76 | .netlify/ 77 | <<<<<<< HEAD 78 | 79 | 80 | .env.* 81 | ======= 82 | >>>>>>> 5aabed8b04b189bc6e3111659d05be52c964befd 83 | -------------------------------------------------------------------------------- /gatsby-config.js: -------------------------------------------------------------------------------- 1 | let siteConfig; 2 | let ghostConfig; 3 | 4 | // loading site config 5 | try { 6 | siteConfig = require(`./siteConfig`); 7 | } catch (e) { 8 | siteConfig = null; 9 | } 10 | 11 | // loading ghost config 12 | try { 13 | ghostConfig = require(`./.ghost`); 14 | } catch (e) { 15 | ghostConfig = { 16 | development: { 17 | apiUrl: process.env.GHOST_API_URL, 18 | contentApiKey: process.env.GHOST_CONTENT_API_KEY, 19 | version: process.env.GHOST_VERSION, 20 | }, 21 | production: { 22 | apiUrl: process.env.GHOST_API_URL, 23 | contentApiKey: process.env.GHOST_CONTENT_API_KEY, 24 | version: process.env.GHOST_VERSION, 25 | }, 26 | }; 27 | } finally { 28 | const { apiUrl, contentApiKey } = 29 | process.env.NODE_ENV === `development` 30 | ? ghostConfig.development 31 | : ghostConfig.production; 32 | 33 | if (!apiUrl || !contentApiKey || contentApiKey.match(//)) { 34 | ghostConfig = null; //allow default config to take over 35 | } 36 | } 37 | 38 | // setting up plugins 39 | let gatsbyPlugins = [ 40 | { 41 | resolve: `@draftbox-co/gatsby-ghost-novela-theme`, 42 | options: { 43 | ghostConfig: ghostConfig, 44 | siteConfig: siteConfig, 45 | }, 46 | }, 47 | ]; 48 | 49 | if (process.env.SEGMENT_KEY) { 50 | gatsbyPlugins.push({ 51 | resolve: `gatsby-plugin-segment-js`, 52 | options: { 53 | prodKey: process.env.SEGMENT_KEY, 54 | devKey: process.env.SEGMENT_KEY, 55 | trackPage: true, 56 | delayLoad: true, 57 | delayLoadTime: 1000, 58 | }, 59 | }); 60 | } 61 | 62 | if (process.env.GA) { 63 | gatsbyPlugins.unshift({ 64 | resolve: `gatsby-plugin-google-analytics`, 65 | options: { 66 | trackingId: process.env.GA, 67 | head: true, 68 | }, 69 | }); 70 | } 71 | 72 | if (process.env.GATSBY_MIXPANEL_TOKEN) { 73 | gatsbyPlugins.push({ 74 | resolve: `gatsby-plugin-mixpanel`, 75 | options: { 76 | apiToken: process.env.GATSBY_MIXPANEL_TOKEN, 77 | enableOnDevMode: true, 78 | pageViews: "all", 79 | }, 80 | }); 81 | } 82 | 83 | if (process.env.GATSBY_HOTJAR_ID) { 84 | gatsbyPlugins.push({ 85 | resolve: `@draftbox-co/gatsby-plugin-hotjar-lazy`, 86 | options: { 87 | id: process.env.GATSBY_HOTJAR_ID, 88 | sv: 6, 89 | optimize: true, 90 | }, 91 | }); 92 | } 93 | 94 | if (process.env.GATSBY_GTAG_MANAGER_ID) { 95 | gatsbyPlugins.unshift({ 96 | resolve: `gatsby-plugin-google-tagmanager`, 97 | options: { 98 | id: process.env.GATSBY_GTAG_MANAGER_ID, 99 | includeInDevelopment: true, 100 | }, 101 | }); 102 | } 103 | 104 | if (process.env.GATSBY_TAWK_ID) { 105 | gatsbyPlugins.push({ 106 | resolve: `@draftbox-co/gatsby-plugin-tawk-lazy`, 107 | options: { 108 | tawkId: process.env.GATSBY_TAWK_ID, 109 | optimize: true 110 | }, 111 | }); 112 | } 113 | 114 | if (process.env.GATSBY_CRISP_ID) { 115 | gatsbyPlugins.push({ 116 | resolve: `@draftbox-co/gatsby-plugin-crisp-chat-lazy`, 117 | options: { 118 | websiteId: process.env.GATSBY_CRISP_ID, 119 | enableDuringDevelop: true, 120 | optimize: true 121 | }, 122 | }); 123 | } 124 | 125 | if (process.env.GATSBY_OLARK_ID) { 126 | gatsbyPlugins.push({ 127 | resolve: `@draftbox-co/gatsby-plugin-olark-lazy`, 128 | options: { 129 | olarkSiteID: process.env.GATSBY_OLARK_ID, 130 | optimize: true 131 | }, 132 | }); 133 | } 134 | 135 | module.exports = { 136 | plugins: gatsbyPlugins, 137 | }; 138 | -------------------------------------------------------------------------------- /static/images/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /siteConfig.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | siteUrl: "https://ghost-novela-preview.draftbox.co", 3 | postsPerPage: 12, 4 | siteTitleMeta: "Built with Draftbox", 5 | siteDescriptionMeta: 6 | "Lightning fast, secure front-end for your WordPress or Ghost blog, without coding.", 7 | shareImageWidth: 1000, 8 | shareImageHeight: 523, 9 | shortTitle: "Built with Draftbox", 10 | siteIcon: "favicon.png", 11 | backgroundColor: "#e9e9e9", 12 | themeColor: "#15171A", 13 | apiUrl: "https://ghost.theasdfghjkl.com", 14 | header: { 15 | navigation: [ 16 | { 17 | label: "Home", 18 | url: "https://ghost-novela-preview.draftbox.co/", 19 | }, 20 | { 21 | label: "Contact", 22 | url: "https://ghost-novela-preview.draftbox.co/contact", 23 | }, 24 | ], 25 | }, 26 | footer: { 27 | copyright: "Built with Draftbox", 28 | navigation: [ 29 | { 30 | label: "Home", 31 | url: "https://ghost-novela-preview.draftbox.co/", 32 | }, 33 | { 34 | label: "Sitemap", 35 | url: "https://ghost-novela-preview.draftbox.co/sitemap.xml", 36 | }, 37 | { 38 | label: "RSS", 39 | url: "https://ghost-novela-preview.draftbox.co/rss.xml", 40 | }, 41 | { 42 | label: "Contact", 43 | url: "https://ghost-novela-preview.draftbox.co/contact", 44 | }, 45 | { 46 | label: "External Link", 47 | url: "https://spectrum.chat/gatsby-js/themes?tab=posts", 48 | }, 49 | ], 50 | }, 51 | subscribeWidget: { 52 | visible: true, 53 | title: "Subscribe to Built with Draftbox", 54 | helpText: "Get the latest posts delivered right to your inbox.", 55 | successMessage: "Thanks for subscribing to Built with Draftbox.", 56 | }, 57 | socialLinks: { 58 | twitter: "https://twitter.com/draftboxhq", 59 | facebook: "https://facebook.com/", 60 | instagram: "https://www.instagram.com/", 61 | linkedin: "https://linkedin.com", 62 | github: "https://github.com/draftbox-co", 63 | pinterest: "", 64 | youtube: "", 65 | dribbble: "", 66 | behance: "", 67 | externalLink: "", 68 | whatsapp: "", 69 | }, 70 | contactWidget: { 71 | title: "Contact Built with Draftbox", 72 | successMessage: "We’ll get in touch with you soon.", 73 | }, 74 | metadata: { 75 | title: "Built with Draftbox", 76 | description: 77 | "Lightning fast, secure front-end for your WordPress or Ghost blog, without coding. Draftbox is a new-age blogging platform for everyone, built on Gatsby.", 78 | }, 79 | twitterCard: { 80 | title: "Built with Draftbox", 81 | description: 82 | "Lightning fast, secure front-end for your WordPress or Ghost blog, without coding. Draftbox is a new-age blogging platform for everyone, built on Gatsby.", 83 | imageUrl: "twitterImage.png", 84 | username: "@DraftboxHQ", 85 | }, 86 | facebookCard: { 87 | title: "Built with Draftbox", 88 | description: 89 | "Lightning fast, secure front-end for your WordPress or Ghost blog, without coding. Draftbox is a new-age blogging platform for everyone, built on Gatsby.", 90 | imageUrl: "facebookImage.png", 91 | appId: "", 92 | width: 1000, 93 | height: 523, 94 | }, 95 | siteTitle: "Built with Draftbox", 96 | siteDescription: 97 | "Lightning fast, secure front-end for your WordPress or Ghost blog, without coding.", 98 | language: "en", 99 | logoUrl: "logo.svg", 100 | iconUrl: 101 | "https://ghost.theasdfghjkl.com/content/images/2020/05/draftbox-colored-icon.png", 102 | coverUrl: "cover.jpg", 103 | alternateLogoUrl: "alternateLogo.svg", 104 | themeConfig: { 105 | variables: [ 106 | { varName: "--accent-color", value: "#6166DC" }, 107 | { varName: "--accent-color-dark", value: "#E9DAAC" }, 108 | { varName: "--success-color", value: "#46B17B" }, 109 | { varName: "--success-color-dark", value: "#46B17B" }, 110 | { 111 | varName: "--merriweather-font", 112 | value: `Merriweather`, 113 | }, 114 | { 115 | varName: "--merriweather-font-bold", 116 | value: `700`, 117 | }, 118 | { 119 | varName: "--system-font", 120 | value: `system-ui`, 121 | }, 122 | { 123 | varName: "--system-font-normal", 124 | value: `400`, 125 | }, 126 | { 127 | varName: "--system-font-semibold", 128 | value: `600`, 129 | }, 130 | { 131 | varName: "--system-font-bold", 132 | value: `700`, 133 | }, 134 | { 135 | varName: "--monospace-font", 136 | value: `Source Code Pro`, 137 | }, 138 | { 139 | varName: "--monospace-font-normal", 140 | value: `400`, 141 | }, 142 | ], 143 | fonts: [ 144 | { 145 | family: "Merriweather", 146 | variants: ["700"], 147 | //subsets: ['latin'] 148 | //text: 'Hello' 149 | fontDisplay: "swap", 150 | strategy: "selfHosted", // 'base64' || 'cdn' 151 | }, 152 | { 153 | family: "Source Code Pro", 154 | variants: ["400"], 155 | //subsets: ['latin'] 156 | //text: 'Hello' 157 | fontDisplay: "swap", 158 | strategy: "selfHosted", // 'base64' || 'cdn' 159 | }, 160 | ], 161 | }, 162 | }; 163 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Draftbox](https://res.cloudinary.com/thinkcdnimages/image/upload/v1589291053/Draftbox/draftbox-for-github.svg)](https://draftbox.co) 2 | 3 | # gatsby-ghost-novela-starter 4 | 5 | A Gatsby starter for creating blogs from headless Ghost CMS. 6 | 7 | Turn your Ghost blog into a lightning fast static website. This Gatsby theme is a front-end replacement of the Ghost Handlebars engine featuring the Novela skin and functionality. All content is sourced from a headless Ghost CMS. 8 | 9 | > This starter is being used at [Draftbox](https://draftbox.co). Get lightning fast, secure front-end for your WordPress or Ghost blog, in 5 minutes or less, without coding. For our fellow devs, we also provide code export feature. 10 | 11 | ## Demo 12 | 13 | > Play with the [Demo](https://ghost-novela-preview.draftbox.co/) to get a first impression. 14 | 15 |   16 | 17 | ## Features 18 | 19 | - Novela theme by Narrative 20 | - SEO optimized 21 | - Fully responsive 22 | - Gatsby images 23 | - Styled 404 page 24 | - RSS Feed 25 | - AMP Pages 26 | - Sitemap 27 | - Contact Form 28 | - Subscribe Form 29 | - Social Sharing 30 | - Google Analytics Integration 31 | - Segment Integration 32 | - Disqus Integration 33 | - Composable and extensible 34 | 35 | ## Getting Started 36 | 37 | 1. Install this starter by running 38 | 39 | ```bash 40 | gatsby new try-ghost https://github.com/draftbox-co/gatsby-ghost-novela-starter 41 | ``` 42 | 43 | 2. Change directory 44 | 45 | ```bash 46 | cd try-ghost 47 | ``` 48 | 49 | 3. Run 50 | 51 | ```bash 52 | gatsby develop 53 | ``` 54 | 55 | and visit your site at `http://localhost:8000`. 56 | 57 | ## 🧐 What's inside? 58 | 59 | A quick look at the top-level files and directories you'll see in a Gatsby project. 60 | 61 | . 62 | ├── node_modules 63 | ├── static 64 | ├── .gitignore 65 | ├── gatsby-config.js 66 | ├── yarn.lock 67 | ├── package.json 68 | └── README.md 69 | 70 | 1. **`/node_modules`**: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed. 71 | 72 | 2. **`/static`**: This directory will contain all of the static files required by theme such as `favicon`, `logo` and `robot.txt`. 73 | 74 | 3. **`.gitignore`**: This file tells git which files it should not track / not maintain a version history for. 75 | 76 | 4. **`gatsby-config.js`**: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. (Check out the [config docs](https://www.gatsbyjs.org/docs/gatsby-config/) for more detail). 77 | 78 | 5. **`yarn.lock`** (See `yarn.lock` below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. **(You won’t change this file directly).** 79 | 80 | 6. **`package.json`**: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project. 81 | 82 | 7. **`README.md`**: A text file containing useful reference information about your project. 83 | 84 | ## Configure 85 | 86 | ```js 87 | //siteConfig.js 88 | module.exports = { 89 | siteUrl: "https://ghost-novela-preview.draftbox.co", 90 | postsPerPage: 12, 91 | siteTitleMeta: "Built with Draftbox", 92 | siteDescriptionMeta: 93 | "Lightning fast, secure front-end for your WordPress or Ghost blog, without coding.", 94 | shareImageWidth: 1000, 95 | shareImageHeight: 523, 96 | shortTitle: "Built with Draftbox", 97 | siteIcon: "favicon.png", 98 | backgroundColor: "#e9e9e9", 99 | themeColor: "#15171A", 100 | apiUrl: "https://ghost.theasdfghjkl.com", 101 | header: { 102 | navigation: [ 103 | { 104 | label: "Home", 105 | url: "https://ghost-novela-preview.draftbox.co/", 106 | }, 107 | { 108 | label: "Contact", 109 | url: "https://ghost-novela-preview.draftbox.co/contact", 110 | }, 111 | ], 112 | }, 113 | footer: { 114 | copyright: "Built with Draftbox", 115 | navigation: [ 116 | { 117 | label: "Home", 118 | url: "https://ghost-novela-preview.draftbox.co/", 119 | }, 120 | { 121 | label: "Sitemap", 122 | url: "https://ghost-novela-preview.draftbox.co/sitemap.xml", 123 | }, 124 | { 125 | label: "RSS", 126 | url: "https://ghost-novela-preview.draftbox.co/rss.xml", 127 | }, 128 | { 129 | label: "Contact", 130 | url: "https://ghost-novela-preview.draftbox.co/contact", 131 | }, 132 | { 133 | label: "External Link", 134 | url: "https://spectrum.chat/gatsby-js/themes?tab=posts", 135 | }, 136 | ], 137 | }, 138 | subscribeWidget: { 139 | title: "Subscribe to Built with Draftbox", 140 | helpText: "Get the latest posts delivered right to your inbox.", 141 | successMessage: "Thanks for subscribing to Built with Draftbox.", 142 | }, 143 | socialLinks: { 144 | twitter: "https://twitter.com/draftboxhq", 145 | facebook: "https://facebook.com/", 146 | instagram: "https://www.instagram.com/", 147 | linkedin: "https://linkedin.com", 148 | github: "https://github.com/draftbox-co", 149 | }, 150 | contactWidget: { 151 | title: "Contact Built with Draftbox", 152 | successMessage: "We’ll get in touch with you soon.", 153 | }, 154 | }; 155 | ``` 156 | 157 | In the configuration shown above, the most important fields to be changed are `siteUrl`, `siteTitleMeta` and `siteDescriptionMeta`. Update at least those to fit your needs. 158 | 159 | ## Ghost Content API keys 160 | 161 | All content is sourced from a Ghost CMS. If you don't customize the file `.ghost.json` content is fetched from the demo location at `https://cms.gotsby.org`. Surely you want to source your own content. Change the keys to match your own Ghost CMS Content API keys: 162 | 163 | ```bash 164 | 165 | { 166 | "development": { 167 | "apiUrl": "http://localhost:2368", 168 | "contentApiKey": "9fccdb0e4ea5b572e2e5b92942" 169 | }, 170 | "production": { 171 | "apiUrl": "http://localhost:2368", 172 | "contentApiKey": "9fccdb0e4ea5b572e2e5b92942" 173 | } 174 | } 175 | ``` 176 | 177 | ## Deploy 178 | 179 | ```bash 180 | gatsby build 181 | ``` 182 | 183 | After completion of the build process your static site can be found in the `public/` folder. Copy those files over to your webserver. 184 | 185 | ## Optimizing 186 | 187 | You can disable the default Ghost Handlebars theme front-end by enabling the `Make this site private` flag within your Ghost settings. This enables password protection in front of the Ghost install and sets `` so your Gatsby front-end becomes the source of truth for SEO. 188 | 189 | ## Authors 190 | 191 | - Arun Priyadarshi ([@Gunnerforlife](https://github.com/Gunnerforlife)) – [Draftbox](https://draftbox.co) 192 | - Keyur Raval ([@thandaanda](https://github.com/thandaanda)) – [Draftbox](https://draftbox.co) 193 | - Shyam Lohar ([@shyamlohar](https://github.com/shyamlohar)) – [Draftbox](https://draftbox.co) 194 | - Tanmay Desai ([@tanmaydesai89](https://github.com/tanmaydesai89)) – [Draftbox](https://draftbox.co) 195 | 196 | ## Contributions 197 | 198 | PRs are welcome! Consider contributing to this project if you are missing feature that is also useful for others. 199 | 200 | ## Credits 201 | 202 | Theme Ported from [Novela](https://github.com/narative/gatsby-theme-novela) 203 | 204 | Special Thanks to [Ghost](https://ghost.org) 205 | 206 | # Copyright & License 207 | 208 | Copyright (c) 2020 [Draftbox](https://draftbox.co) - Released under the [MIT license](LICENSE). 209 | -------------------------------------------------------------------------------- /static/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/alternateLogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | --------------------------------------------------------------------------------