{"id":23041346,"url":"https://github.com/completejavascript/gatsby-blog-template","last_synced_at":"2025-08-14T21:31:45.461Z","repository":{"id":37112018,"uuid":"195067204","full_name":"completejavascript/gatsby-blog-template","owner":"completejavascript","description":"✍️ A GatsbyJS Blog Template for blogging purposes.","archived":false,"fork":false,"pushed_at":"2023-02-04T01:50:17.000Z","size":4711,"stargazers_count":39,"open_issues_count":19,"forks_count":18,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2023-03-01T08:32:27.582Z","etag":null,"topics":["gatsby","gatsby-blog","gatsby-starter","gatsby-template","gatsbyjs","netlify","react","reactjs","shiba","shiba-css"],"latest_commit_sha":null,"homepage":"https://gb-template.netlify.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/completejavascript.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-03T14:10:42.000Z","updated_at":"2022-12-14T22:04:02.000Z","dependencies_parsed_at":"2022-08-19T05:10:34.710Z","dependency_job_id":null,"html_url":"https://github.com/completejavascript/gatsby-blog-template","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/completejavascript%2Fgatsby-blog-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/completejavascript%2Fgatsby-blog-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/completejavascript%2Fgatsby-blog-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/completejavascript%2Fgatsby-blog-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/completejavascript","download_url":"https://codeload.github.com/completejavascript/gatsby-blog-template/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229865914,"owners_count":18136386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gatsby","gatsby-blog","gatsby-starter","gatsby-template","gatsbyjs","netlify","react","reactjs","shiba","shiba-css"],"created_at":"2024-12-15T19:32:31.846Z","updated_at":"2024-12-15T19:32:32.468Z","avatar_url":"https://github.com/completejavascript.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Netlify Status](https://api.netlify.com/api/v1/badges/89b8cdfb-af7f-48d5-863f-64fbbdfe8986/deploy-status)](https://app.netlify.com/sites/gb-template/deploys) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Maintainability](https://api.codeclimate.com/v1/badges/b23277cf6232a88f59ec/maintainability)](https://codeclimate.com/github/completejavascript/gatsby-blog-template/maintainability)\n\n# gatsby-blog-template\n\nA GatsbyJS Blog Template for blogging purpose.\n\n## Installation\n\nInstall this template (assuming [Gatsby](https://github.com/gatsbyjs/gatsby/) is installed and updated) by running from your CLI:\n\n```bash\ngatsby new YourProjectName https://github.com/completejavascript/gatsby-blog-template\nnpm run develop # or gatsby develop\n```\n\nOr you can fork the project, make your changes there and merge new features when needed.\n\nAlternatively:\n\n```bash\ngit clone https://github.com/completejavascript/gatsby-blog-template YourProjectName # Clone the project\ncd YourProjectname\nrm -rf .git # So you can have your own changes stored in VCS.\nnpm install # or yarn install\nnpm run develop # or gatsby develop \n```\n\nNavigate to localhost:8000.\n\n## Features\n\n  * Posts and pages in Markdown\n  * Tags and categories with pagination\n  * Homepage as list of articles, support \"Load more\" function\n  * Code highlight using [Prism.js](https://prismjs.com/) and Tomorrow Night theme\n  * Disqus for comment\n  * Style using [Shiba.CSS](https://github.com/completejavascript/shiba-css)\n\n## Configuration\n\nEdit the export object in `data/SiteConfig`:\n\n```js\nconst config = {\n  // Site info\n  siteTitle: \"Gatsby Blog Template\", // Site title.\n  siteTitleShort: \"GB Template\", // Short site title for homescreen (PWA). Preferably should be under 12 characters to prevent truncation.\n  siteTitleAlt: \"Gatsby Blog Template\", // Alternative site title for SEO.\n  siteLogo: \"/logos/logo-1024x1024.png\", // Logo used for SEO and manifest.\n  siteUrl: \"https://gb-template.netlify.com\", // Domain of your website without pathPrefix.\n  pathPrefix: \"\", // Prefixes all links. For cases when deployed to example.github.io/gatsby-advanced-starter/.\n  siteDescription: \"A GatsbyJS Blog Template for blogging purpose.\", // Website description used for RSS feeds/meta description tag.\n  siteRss: \"/rss.xml\", // Path to the RSS file.\n  siteLang: \"en\",\n  siteFBAppID: \"399626517562189\", // FB Application ID for using app insights\n  googleAnalyticsID: \"UA-96543695-7\", // GA tracking ID.\n  postDefaultCategoryID: \"\", // Default category for posts.\n  // Common for tag, category pages and widget\n  numberLatestPost: 8,\n  postsPerPage: 6,\n  // Use for post\n  dateFromFormat: \"YYYY-MM-DD HH:mm\", // Date format used in the frontmatter.\n  dateFormat: \"MMMM Do, YYYY\", // Date format for display.\n  postTagged: \"TAGGED\",\n  postInCategories: \"POSTED IN\",\n  postOnDate: \"Posted on\",\n  // Use for comment\n  lazyLoadComments: true,\n  disqusShortname: \"gb-template\", // Disqus shortname.\n  btnLoadComments: \"Load comments\",\n  // Use for home page\n  numberLoadmore: 6,\n  btnLoadmore: \"Load more\",\n  homeHasLoadmore: true,\n  homeHasThumbnail: true,\n  homeHeader: \"Home\",\n  // Use for page\n  pathPrefixPagination: \"/page\", // Prefix path for pagination\n  pageNotFoundTitle: \"Page Not Found\", // \n  pageNotFoundBtn: \"Back to our site\",\n  pageNotFoundContent: \"Looks like you've followed a broken link or entered a URL that doesn't exist on this site.\",\n  // Use for tag\n  pathPrefixTag: \"/tag\", // Prefix path for tags\n  tagHeader: \"Posts tagged as\", // use in header of tag-template page\n  tagHasThumbnail: true,\n  // Use for category\n  pathPrefixCategory: \"/category\", // Prefix path for category\n  categoryHeader: \"Posts in category\", // use in header of category-template page\n  categoryHasThumbnail: true,\n  // Use for widget\n  categoryWidgetTitle: \"Categories\",\n  tagWidgetTitle: \"Tags\",\n  latestPostsWidgetTitle: \"Latest posts\",\n  // Use for user info\n  userName: \"Lam Pham\", // Username to display in the author segment.\n  userEmail: \"completejavascript.super@gmail.com\", // Email used for RSS feed's author segment\n  userTwitter: \"CmpltJavaScript\", // Optionally renders \"Follow Me\" in the UserInfo segment.\n  userLocation: \"Hanoi, Vietnam\", // User location to display in the author segment.\n  userAvatar: \"https://www.gravatar.com/avatar/42fd3d526fde1ef76d5002e4ebd303e9.jpg?s=300\", // User avatar to display in the author segment.\n  userDescription:\n    \"Software Engineer, Web Developer, JavaScript Lover \u0026 Blogger @completejavascript.\", // User description to display in the author segment.\n  // Links to social profiles/projects you want to display in the author segment/navigation bar.\n  userLinks: [\n    {\n      label: \"Email\",\n      url: \"mailto:completejavascript.super@gmail.com\",\n      iconClassName: \"far envelope\"\n    },\n    {\n      label: \"Website\",\n      url: \"https://completejavascript.com/\",\n      iconClassName: \"fas globe\"\n    },\n    {\n      label: \"Twitter\",\n      url: \"https://twitter.com/CmpltJavaScript\",\n      iconClassName: \"fab twitter\"\n    },\n    { \n      label: \"Facebook\", \n      url: \"https://www.facebook.com/completejavascript/\", \n      iconClassName: \"fab facebook-f\" \n    },\n    { \n      label: \"Linkedin\", \n      url: \"https://www.linkedin.com/in/completejavascript/\", \n      iconClassName: \"fab linkedin-in\"\n    },\n  ],\n  // Use for navigation\n  navTitle: \"GB Template\",\n  navLinks: [\n    { label: \"About\", url: \"/about\" },\n    { label: \"Contact\", url: \"/contact\" },\n  ],\n  // Use for footer\n  socialLinks: [\n    { \n      label: \"Codepen\", \n      url: \"https://codepen.io/completejavascript/\", \n      iconClassName: \"fab codepen\" \n    },\n    { \n      label: \"FreeCodeCamp\", \n      url: \"\", // Ignore \n      iconClassName: \"fab free-code-camp\"\n    },\n    { \n      label: \"GitHub\",\n      url: \"https://github.com/completejavascript\",\n      iconClassName: \"fab github\"\n    },\n    { \n      label: \"Facebook\", \n      url: \"https://www.facebook.com/completejavascript/\", \n      iconClassName: \"fab facebook-f\"\n    },\n    { \n      label: \"Linkedin\", \n      url: \"https://www.linkedin.com/in/completejavascript/\", \n      iconClassName: \"fab linkedin-in\"\n    },\n    {\n      label: \"Twitter\",\n      url: \"https://twitter.com/CmpltJavaScript\",\n      iconClassName: \"fab twitter\"\n    },\n    {\n      label: \"RSS\",\n      url: \"https://gb-template.netlify.com/rss.xml\",\n      iconClassName: \"fas rss\"\n    },\n  ],\n  footerLinks: [\n    { label: \"Home\", url: \"/\" },\n    { label: \"About\", url: \"/about\" },\n    { label: \"Contact\", url: \"/contact\" },\n    { label: \"Terms of Use\", url: \"/terms\" },\n    { label: \"Privacy Policy\", url: \"/privacy\" },\n    { label: \"Sitemap\", url: \"https://gb-template.netlify.com/sitemap.xml\" },\n  ],\n  copyright: \"Copyright © 2019 Lam Pham. Unless otherwise noted, all code MIT license.\",\n  // Use for manifest\n  themeColor: \"#2196F3\", // Used for setting manifest and progress theme colors.\n  backgroundColor: \"#FFF\" // Used for setting manifest background color.\n};\n\n// Validate\n\n// Make sure pathPrefix is empty if not needed\nif (config.pathPrefix === \"/\" || config.pathPrefix === \"\") {\n  config.pathPrefix = \"\";\n} else {\n  // Make sure pathPrefix only contains the first forward slash\n  config.pathPrefix = `/${config.pathPrefix.replace(/^\\/|\\/$/g, \"\")}`;\n}\n\n// Make sure siteUrl doesn't have an ending forward slash\nif (config.siteUrl.substr(-1) === \"/\")\n  config.siteUrl = config.siteUrl.slice(0, -1);\n\n// Make sure siteRss has a starting forward slash\nif (config.siteRss \u0026\u0026 config.siteRss[0] !== \"/\")\n  config.siteRss = `/${config.siteRss}`;\n\nmodule.exports = config;\n```\n\n## Acknowledgements\n\nThis project is based on: \n  \n  * [gatsby-advanced-starter](https://github.com/vagr9k/gatsby-advanced-starter/)\n  * [taniarascia.com](https://github.com/taniarascia/taniarascia.com)\n  * [Shiba.CSS](https://github.com/completejavascript/shiba-css)\n\n## Author\n\n  * [Lam Pham](http://about.phamvanlam.com)\n\n## License\n\nThis project is open source and available under the [MIT License](https://github.com/completejavascript/gatsby-blog-template/blob/dev/LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompletejavascript%2Fgatsby-blog-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompletejavascript%2Fgatsby-blog-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompletejavascript%2Fgatsby-blog-template/lists"}