Gatsby 是 React + GraphQL based的網站/blog生成器. 可以用 React方式修改UI.
https://www.gatsbyjs.org/tutorial/, 建議 tutorial看完, 走完就有一個可以寫Markdown file的blog, 但沒什麼UI, /doc部份需要時再看
https://github.com/grimmer0125/gatsby-blog, 目前使用的的, 修改自lumen. 改的:
disqusShortname: 'grimmer'gatsby-plugin-favicon, 在gatsby-config.js裡設定)[非必要]也可以學習一下 GraphQL
layouts/index.jsx 跟 pages/index.jsx, 參考 https://www.gatsbyjs.org/tutorial/part-three/#our-first-layout-component, Gatsby使用了 react-routergatsby develop 會使用到 gatsby-node.js, 而在其中可以設定讓它使用gatsby的外掛把 Markdown files的資料轉成 GraphQL query data source (也可在gatsby-node.js插入一些資料). 而進而使用 React High order component的方式把資料傳到 page-template.jsx的React元件的props, 另外在gatsby-node.js也是動態新增此markdowm對應到的react page with url path, 參考 https://www.gatsbyjs.org/tutorial/part-six/.pages/ 下新增 react page 在再裡面使用 GraphQL query, 但這做法缺點是url path是固定的 (就是此react page js/jsx檔案的folder path). 參考 https://www.gatsbyjs.org/tutorial/part-six/#transformer-pluginsexport default graphql(gql query content)(TodoApp); 這樣的high order component設定, 但Gatsby則省略了 )(TodoApp);, gatsby develop 會自動在runtime時補上.Gatsby是使用到Webpack, 故改完文章頁面會自動更新.Gatsby local dev時, 有起一個 GraphQL server, 故可使用 GraphiQL 去測試 每個頁面使用到 GraphQL query部份. ref: https://www.gatsbyjs.org/tutorial/part-five/#introducing-graphiql,Type gatsby new myblog https://github.com/grimmer0125/gatsby-blog. It will git clone and npm install and remove git history.
pages/articles/ 下新增新文章的folder. folder檔名需要是日期---folderName, 無---的話 gatsby-node.js會parse exception.Metadata需包含以及需注意事項: https://github.com/grimmer0125/gatsby-blog/issues/1Metadata的彈性. e.g. 有些可自動判斷, 像是 title 由 folder名稱自動抓取.In the project root folder (e.g. myblog), type gatsby develop.