Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v2] Merge in master #4114

Merged
merged 243 commits into from
Feb 17, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
243 commits
Select commit Hold shift + click to select a range
e6868a8
Revert "Update gatsby-browser.js (#3694)"
KyleAMathews Jan 26, 2018
d3b3ed2
Add 'page.layout' param to 'createPage' docs (#3717)
szimek Jan 26, 2018
5e7fce5
Publish
KyleAMathews Jan 26, 2018
041bc6a
Add missing (official) plugins & little fixes (#3718)
LekoArts Jan 26, 2018
0df55db
fix(transformer-remark): resolve htmlAst correctly (#3719)
elboman Jan 27, 2018
c117d8f
Added my new websites to showcase (#3729)
jurosh Jan 27, 2018
f005de6
Adjust default link header value in netlify plugin readme (#3723)
frankmarineau Jan 27, 2018
0896e85
Change "primatives" to "primitives" in GraphQL docs (#3716)
jdanford Jan 27, 2018
22fe988
[gatsby-transformer-remark] Reparse `raw` nodes in `htmlAst` (#3731)
ryaninvents Jan 27, 2018
6842c4a
Publish
KyleAMathews Jan 27, 2018
857ffd9
fix(gatsby-link): correct dependency declaration (#3707)
alvis Jan 27, 2018
908fa66
Publish
KyleAMathews Jan 27, 2018
37c330b
If someone uses a private repo git address accessed over ssh use that…
KyleAMathews Jan 27, 2018
5f630ea
Publish
KyleAMathews Jan 27, 2018
c147a08
Update CONTRIBUTING.md (#3737)
benjaminmikiten Jan 27, 2018
21f66ff
Add freeCodeCamp source (#3739)
avigoldman Jan 27, 2018
f397713
Add Hack Club to projects list (#3748)
lachlanjc Jan 28, 2018
7ecc23f
Link title not particularly accurate
KyleAMathews Jan 28, 2018
8798f08
Fix link syntax (#3749)
zachlatta Jan 28, 2018
aca9a8e
add basic documentation about publicURL field on File node (#3752)
pieh Jan 28, 2018
d11abd1
Format
KyleAMathews Jan 29, 2018
b7feec1
[www] Fix link to "Adding Markdown Pages" in List docs (#3747)
lachlanjc Jan 29, 2018
4d59fc5
[www] Add "gatsby-plugin-fela" to list of community plugins
mmintel Jan 29, 2018
f97b0a2
Semi-Colons (#3764)
gc Jan 29, 2018
402a643
Remove mention of not-written part 5 of the tutorial
KyleAMathews Jan 29, 2018
89a0604
[www] Add ERC dEX website to showcase (#3766)
ivanvanderbyl Jan 29, 2018
69048af
make ComponentRenderer shouldUpdateComponent return true when props c…
calcsam Jan 29, 2018
bb8f0f3
semi-colons (#3765)
gc Jan 29, 2018
128f0d1
[gatsby] Report an error when layout file is missing (#3762)
szimek Jan 29, 2018
8e94362
Publish
KyleAMathews Jan 29, 2018
36742df
[gatsby-plugin-netlify] create rewrite rules for pages that use match…
pieh Jan 29, 2018
1f516aa
Add a no-color option to disable the colors (#3755)
cricrio Jan 29, 2018
cffa918
[www] Add gatsby-source-unsplash to list of community plugins (#3768)
vacas5 Jan 29, 2018
72b2def
format
KyleAMathews Jan 29, 2018
a89057f
Publish
KyleAMathews Jan 29, 2018
d025ae1
Add setTimeout before calling onRouteUpdate to ensure React has writt…
KyleAMathews Jan 30, 2018
9b98b68
Improve errors for invalid data passed to createPage fixes #3771 (#3773)
KyleAMathews Jan 30, 2018
d7dae32
Fix not scrolling to top on PUSH fixes #3770 #3249 (#3775)
KyleAMathews Jan 30, 2018
9c2dafb
[examples/using-remark]: Custom React components in Markdown files (#…
ryaninvents Jan 30, 2018
a98211c
Publish
KyleAMathews Jan 30, 2018
42cdfba
[www] Prevent search shortcut from breaking other input elements (#3777)
m-allanson Jan 30, 2018
76ec2c1
Edits from Ben's feedback
shannonbux Jan 30, 2018
c49fc5e
Logos
shannonbux Jan 30, 2018
e3462e8
Delete React_logo_wordmark.png
shannonbux Jan 30, 2018
c7b7c46
Delete contentful_logo_with_tagline.png
shannonbux Jan 30, 2018
f9b96af
logos
shannonbux Jan 30, 2018
457b460
Added react and contentful logos
shannonbux Jan 30, 2018
f6de919
Update index.md
shannonbux Jan 30, 2018
a64e928
Delete React-logo.png
shannonbux Jan 30, 2018
df705dc
Delete contentful-logo.png
shannonbux Jan 30, 2018
9fe9348
logos smaller
shannonbux Jan 30, 2018
d4ad5dc
updated intro
shannonbux Jan 30, 2018
9ff20fd
Update index.md
shannonbux Jan 31, 2018
e9809fc
[www] Add gatsby-plugin-sentry to list of community plugins (#3788)
fk Jan 31, 2018
34f422a
[www] Add gatsby-plugin-meta-redirect to list of community plugins (#…
dannywils Feb 1, 2018
5bbc285
Form currently refreshes the page on pressing enter (#3779)
theiliad Feb 1, 2018
0583a45
Added some notes on how the contentful source plugin interacts with c…
ghardin137 Feb 1, 2018
6bbc0d1
More hot reloading fixes (#3769)
stevensurgnier Feb 1, 2018
1106bbb
Validate starterPath isn't a dot fixes #3789 (#3810)
KyleAMathews Feb 1, 2018
869bb2c
[gatsby] Pass location state to history (#3802)
nsimonson Feb 1, 2018
b02305e
Fix issue that Gatsby can't sometimes find layout and page files on W…
szimek Feb 1, 2018
dd71431
Publish
KyleAMathews Feb 1, 2018
e5993ce
Add iContract blog to readme (#3805)
Feb 1, 2018
d9a178c
[gatsby-plugin-less] Extend less-plugin with support for `modifyVars`…
barskern Feb 1, 2018
032726a
format
KyleAMathews Feb 1, 2018
614cc6c
Publish
KyleAMathews Feb 1, 2018
7fa2313
Fix a typo in the gatsby-plugin-less README (#3815)
daniman Feb 2, 2018
7bb93fe
Call done() from dev-404-page during production builds so build doesn…
KyleAMathews Feb 2, 2018
a034be3
Publish
KyleAMathews Feb 2, 2018
bb86493
Update README.md (#3828)
calcsam Feb 2, 2018
14c4de6
Added logos (#3781)
shannonbux Feb 2, 2018
75bc4e5
Log error in createPath (#3814)
monkbroc Feb 2, 2018
17b7912
add warning about query that is not getting executed if it's exported…
pieh Feb 2, 2018
1db796d
Update README.md (#3821)
html5cat Feb 2, 2018
966bd12
Update README.md
KyleAMathews Feb 2, 2018
4c9afab
Added Hampton starter (#3826)
davad Feb 2, 2018
7588004
[www] add search input to home page (#3662)
m-allanson Feb 2, 2018
d7b9080
Add name of file above code snippet (#3835)
Feb 3, 2018
4a34833
[www] Fix typo in styleshout link (#3839)
timfoley Feb 3, 2018
a83b7b8
Add "Dona Rita" website to Showcase (incl. source) (#3838)
Feb 3, 2018
928914e
check markdown images, ensure parent is File before referencing dir (…
calcsam Feb 4, 2018
e29d650
[www] Fix typo in docs/building-apps-with-gatsby.md (#3863)
SebastienBelmon Feb 5, 2018
90034b5
Bump scroll-behavior dependency to fix ios swipe jank (#3866)
KyleAMathews Feb 5, 2018
96424c1
Publish
KyleAMathews Feb 5, 2018
563b168
Fix positioning of search results at mobile breakpoint on homepage (#…
m-allanson Feb 5, 2018
18e18b2
[www] Add tutorial to awesome list (#3855)
LekoArts Feb 5, 2018
43c2614
[www] Update Netlify URL in Starter List (#3847)
LekoArts Feb 5, 2018
9e13203
Add gatsby-wordpress-starter (#3848)
ericwindmill Feb 5, 2018
7cea6f0
exclude offline plugin app shell from sitemap (#3844)
Fetten Feb 6, 2018
74ff6b3
[gatsby-source-contentful] Add support to prefer WebP images (#3832)
nsimonson Feb 6, 2018
6ae253d
Update docs for adding custom JavaScript to home.js (#3869)
steven-mercatante Feb 6, 2018
9024329
Blog post headless CMS (#3846)
shannonbux Feb 6, 2018
4969942
don't try to extract queries from directories with names ending in .j…
pieh Feb 6, 2018
d44ee51
Format
KyleAMathews Feb 6, 2018
d35eef0
[gatsby-source-filesystem] don't try to process same remote file mult…
pieh Feb 6, 2018
014bda5
Experimenting (#3843)
m-allanson Feb 6, 2018
f9a3ccd
Update README.md (#3822)
html5cat Feb 6, 2018
44fc910
Format
KyleAMathews Feb 6, 2018
a3fea82
Publish
KyleAMathews Feb 6, 2018
8261ac3
Use HTTPS over git:// when cloning starters (#3820)
davidjb Feb 6, 2018
d145574
Add gatsby-transformer-screenshot (#3526)
cassiebeckley Feb 6, 2018
541142b
Publish
KyleAMathews Feb 6, 2018
4534f57
[gatsby-plugin-feed] Fix missing colon in Readme (#3872)
jiahaog Feb 6, 2018
61c99a8
Revert "Use HTTPS over git:// when cloning starters (#3820)" (#3876)
calcsam Feb 6, 2018
ef08a22
Publish
KyleAMathews Feb 6, 2018
ce5edfd
use simple https to clone starters (#3875)
tsriram Feb 6, 2018
fb6313e
Publish
KyleAMathews Feb 6, 2018
bcce8f5
[www] Add gatsby-starter-simple-landing (#3877)
greglobinski Feb 6, 2018
c2ee835
bigger photo
shannonbux Feb 6, 2018
4c57ae4
Update index.md
shannonbux Feb 6, 2018
e004287
add www.aslezak.com to showcase (#3878)
amslezak Feb 6, 2018
049c322
Added new blog, new author and new avatar (#3879)
rosswhitehouse Feb 6, 2018
56e493d
Update index.md (#3883)
calcsam Feb 7, 2018
617790e
Add community source plugin to docs (#3884)
n370 Feb 7, 2018
c3199ab
[www] Fix small typo (#3891)
m-allanson Feb 7, 2018
41ff67d
Document all options for gatsby-remark-images fixes #3882 (#3894)
KyleAMathews Feb 7, 2018
5ad9d6e
Edits to wording
shannonbux Feb 7, 2018
7b8c0b9
[www] Add `PostLink` component example to docs/adding-a-list-of-markd…
fk Feb 7, 2018
fc71785
Add anchors to h1's in docs (#3892)
m-allanson Feb 7, 2018
484e5ae
exclude Netlify CMS styles in build-css phase (#3895)
erquhart Feb 7, 2018
547e685
Fix markdown table syntax in README (#3897)
KyleAMathews Feb 7, 2018
285dafc
Publish
KyleAMathews Feb 7, 2018
68b99ee
Fix typo (#3899)
devbridie Feb 7, 2018
5d31139
update prismjs-language-dependencies.js (#3898)
fyrkant Feb 7, 2018
b2dc358
Publish
KyleAMathews Feb 7, 2018
4268f48
Update snapshots and packages and format w/ new Prettier (#3902)
KyleAMathews Feb 7, 2018
ee5aa89
[gatsby-transformer-remark] Add `pathPrefix` to relative links (#3823)
bodia-uz Feb 7, 2018
82f7643
Use "npm-run-all" to run scripts (#3797)
danawoodman Feb 8, 2018
3931fec
[www] Starters: Fix case according to vendor name definition (#3903)
fk Feb 8, 2018
56aaa75
Publish
KyleAMathews Feb 8, 2018
f02cc2b
Merge branch 'master' of github.com:gatsbyjs/gatsby
KyleAMathews Feb 8, 2018
7a92eba
add info about org-mode transformer plugin (#3907)
xiaoxinghu Feb 8, 2018
84c93d3
[www] add gatsby-orga starter (#3908)
xiaoxinghu Feb 8, 2018
f927993
update odayaka.net to showcase (#3909)
odayakanaasa Feb 8, 2018
279103f
[www] Add ventura-digital.de to Showcase (#3916)
Fetten Feb 8, 2018
c3b0149
Minor edits for absolute beginners
yisela Feb 8, 2018
7d64a7c
Update tutorial.js (#3927)
KyleAMathews Feb 8, 2018
c4082e9
✨ Support filtering on linked nodes (#3691)
alvinthen Feb 8, 2018
8735828
Publish
KyleAMathews Feb 8, 2018
5f6b7d2
Set default NODE_ENV for `gatsby develop` (#3928)
m-allanson Feb 8, 2018
17a6d6a
Fix broken links (#3930)
KyleAMathews Feb 8, 2018
19afe41
Blog Post - Jam Out Your Blog (#3911)
vladpasculescu Feb 8, 2018
f13c1fa
Publish
KyleAMathews Feb 8, 2018
da572ca
fix(dev-404-page): route to 404 fails when using plugin-remove-traili…
Feb 8, 2018
68fe2ef
Automatic file validation for components in src/pages (#3881)
mhd-sln Feb 9, 2018
820d737
Field inferring changes and cleanup (#3688)
pieh Feb 9, 2018
8dcd7cc
Publish
KyleAMathews Feb 9, 2018
41841ec
Return a never to be resolved promise to prevent development server f…
KyleAMathews Feb 9, 2018
f98d3dd
Publish
KyleAMathews Feb 9, 2018
a7cbf43
format
KyleAMathews Feb 9, 2018
83df955
Add Cardiogram to README (#3934)
kyh Feb 9, 2018
e852596
Fix code highlight in tutorial (#3935)
jiahaog Feb 9, 2018
89eb694
small wording change
shannonbux Feb 9, 2018
784fa0c
Merge pull request #3924 from yisela/patch-1
shannonbux Feb 9, 2018
12bdd35
[api-ssr-docs] Import `Helmet` not `helmet` (#3940)
lauriejones Feb 9, 2018
4527a92
[www] Tutorial: Small wording changes for clarification (#3926)
yisela Feb 9, 2018
47cd466
[docs] Fix small typo (#3946)
djm158 Feb 9, 2018
3ee1c04
test "exports.default" when validating page component (#3941)
pieh Feb 9, 2018
ff236e3
Publish
KyleAMathews Feb 9, 2018
3d4f16a
update environment variables docs to explain how to implement dotenv …
pgegenfurtner Feb 9, 2018
216ed95
[www] Add dedicated „How to File an Issue“ page (#3945)
fk Feb 9, 2018
c70067a
Don't check if React is imported as can import component from other p…
KyleAMathews Feb 9, 2018
a6fd90f
Publish
KyleAMathews Feb 9, 2018
e3144e3
Add LaserTime Clinic website to Readme (#3951)
oleglegun Feb 9, 2018
b499a90
webpack commonsChunkPlugin isframework tester fix for windows dev (#3…
greglobinski Feb 9, 2018
507d3b2
Publish
KyleAMathews Feb 9, 2018
f759486
type inferring - handle array of Date objects (#3955)
pieh Feb 9, 2018
5160b03
Publish
KyleAMathews Feb 9, 2018
f8f52ba
Document how to create custom fragments (#3914)
jiahaog Feb 9, 2018
429a6ed
Update index.md (#3957)
KyleAMathews Feb 10, 2018
c0aa167
update showcase with Gatsby Manor (#3959)
nodox Feb 10, 2018
ab1d7f5
Adds new starter to docs :) (#3971)
LekoArts Feb 10, 2018
9940622
Fix error (#3985)
Feb 12, 2018
9429cbc
Add note about plugin options (#3987)
m-allanson Feb 12, 2018
a12677e
Add container as a styled div to styled-components doc (#3988)
assimelha Feb 12, 2018
db1590f
Add Dockerfile to start GraphiQL using www's data (#3992)
m-allanson Feb 12, 2018
14babb3
fix: prevent invalid graphql field names from being created (#3994)
DSchau Feb 12, 2018
10e6702
feat(gatsby-plugin-google-analytics): add head option (#3995)
Sekhmet Feb 12, 2018
0414068
Add browserAPIs and ssrAPIs to loaded plugin info (#3989)
m-allanson Feb 12, 2018
3739df7
Publish
KyleAMathews Feb 12, 2018
8ecfc20
add package json metadata for better display on npmjs.org (#3981)
DSchau Feb 13, 2018
f382392
Validate when creating a page that the page component exists (#3997)
KyleAMathews Feb 13, 2018
00c4ca6
Publish
KyleAMathews Feb 13, 2018
446d15d
[gatsby-transformer-react-docgen] Add note on PropTypes (#4008)
m-allanson Feb 13, 2018
224af0f
Update adding-tags-and-categories-to-blog-posts.md (#3999)
abrad45 Feb 13, 2018
d5d9815
[gatsby-remark-katex] Upgrade remark-math to latest (#4005)
macocha Feb 13, 2018
a2139a5
Add note about using Custom Domain with Github Pages (#4006)
gc Feb 13, 2018
b75b784
[docs] Add Gatsby Manor blog post (#3968)
nodox Feb 13, 2018
932fb92
don't use internal-only path when requiring promise polyfill (#4012)
busticated Feb 13, 2018
20299db
Fix tracking parent nodes when loading redux state from cache (#4013)
pieh Feb 13, 2018
41d7a7a
Publish
KyleAMathews Feb 13, 2018
8c52924
Add info about gatsby-plugin-sharp (#4019)
tulikavijay Feb 13, 2018
8273ddf
update contributing documentation to mention that npm run watch can b…
jmoujaes Feb 13, 2018
725c6e8
[gatsby-image] Allow specifying HTML tag for gatsby-image wrapping el…
dannywils Feb 13, 2018
7b1792a
Fix plugin loader checks (#4023)
m-allanson Feb 13, 2018
e6c5212
Publish
KyleAMathews Feb 13, 2018
c8d3c63
Fix tracking nodes with filtering/running sift (#4024)
pieh Feb 14, 2018
9c2a5ad
fix: add info message if gatsby-config.js could have been typo'd (#4017)
DSchau Feb 14, 2018
9269be2
fix: ensure graphql key is a valid graphql key value (#4000)
DSchau Feb 14, 2018
467a027
Improve the warning for when someone includes a graphql query in a no…
KyleAMathews Feb 14, 2018
3c1cae9
Publish
KyleAMathews Feb 14, 2018
79e5752
add gatsby-transformer-javascript-frontmatter, closes #3795 (#3947)
jbolda Feb 14, 2018
1cad524
Catch require error for hot-reloading gatsby-config.js fixes #3990 (#…
KyleAMathews Feb 14, 2018
80ea5e8
Publish
KyleAMathews Feb 14, 2018
42190dc
Don't exit on errors as during development, empty/incomplete page com…
KyleAMathews Feb 15, 2018
7f510cc
Remove component query from store when a user deletes it fixes #4032 …
KyleAMathews Feb 15, 2018
7ab6746
Publish
KyleAMathews Feb 15, 2018
dbb3237
add portfolio site to the readme showcase (#4043)
darrenbritton Feb 15, 2018
243a726
Add documentation for using boundActionCreators fixes #4029 (#4042)
ajayns Feb 15, 2018
0a6fb37
node tracking - add tests (#4045)
pieh Feb 15, 2018
4edf11f
Update README.md
KyleAMathews Feb 15, 2018
cf33a95
Add links to the end of the tutorial (#4051)
m-allanson Feb 15, 2018
94fe5d3
[www] Fix tutorial sidebar links active state, update deps (#4059)
fk Feb 15, 2018
a87290d
Use babylon to parse out exports from plugin files (#4057)
m-allanson Feb 15, 2018
2ce6c5c
Minor typo fix (#4063)
chmac Feb 15, 2018
006df2d
sort type names when creating union type name to keep union type name…
pieh Feb 16, 2018
893d0e2
Publish
KyleAMathews Feb 16, 2018
2ca2e35
Update minimum Node.js versions (#4075)
m-allanson Feb 16, 2018
24feca8
support tiff images and don't get stuck indefinitely when used, add b…
pieh Feb 16, 2018
16e3274
Remove .travis.yml file from www directory as it's never been used (#…
KyleAMathews Feb 16, 2018
b9ceb4c
[www] Tutorial: Highlight closing tag (#3925)
yisela Feb 16, 2018
3a713ad
Revert "define webpack loader.exclude with array for extensibility" (…
erquhart Feb 16, 2018
d520be2
Add documentation for mapping in gatsby-config (#4054)
ajayns Feb 16, 2018
6bd2632
Add new Tools-section and mention Gatsby-Docker (#4085)
aripalo Feb 16, 2018
2749637
Remove ReasonML site (#4084)
bernard-lin Feb 16, 2018
234e814
Added gatsby-source-dribbble plugin (#4086)
smakosh Feb 16, 2018
2e64b75
Adds add'l docs to gatsby-source-filesystem (#4060)
benjaminhoffman Feb 16, 2018
a45c1f7
[docs] Add A Bright Future For The Web blog post (#4073)
ryanwiemer Feb 16, 2018
f949ea6
Blogpost (#4083)
shannonbux Feb 16, 2018
af4ef77
Add portfolio of Preston Richey to README showcase (#4087)
prichey Feb 16, 2018
18073f6
gatsby.org -> gatsbyjs.org (#4088)
Feb 16, 2018
dd8b032
fix broken `path` dependency (#4090)
hugurp Feb 16, 2018
5a8aede
Remove tiff option from gatsby-plugin-sharp as it's converting all im…
KyleAMathews Feb 16, 2018
c246262
Publish
KyleAMathews Feb 16, 2018
acdf594
[www] Fix quotes, fixes „Invalid date“ of latest blog post (#4092)
fk Feb 16, 2018
ace0259
Auto-deploy GraphQL docker image (#4079)
m-allanson Feb 16, 2018
2a89c6d
Restore tiff option but without force option defaulting to true (#4094)
KyleAMathews Feb 16, 2018
5743934
Publish
KyleAMathews Feb 16, 2018
e24adfa
Add Beach Hut Poole to Site Showcase (#4106)
lloydh Feb 17, 2018
77794d2
Add gatsby-starter-redux to gatsby-starters (#4098)
cjkihl Feb 17, 2018
408156c
Catch and exit if someone mistakenly puts their gatsby-config.js in t…
KyleAMathews Feb 17, 2018
c6fa2e1
Publish
KyleAMathews Feb 17, 2018
d0b8dd9
Merge remote-tracking branch 'origin/master' into merge-master3
KyleAMathews Feb 17, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 34 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,40 @@
language: node_js
node_js:
- "6"
- "8"
sudo: required

services:
- docker

os:
- linux

os: [linux]
dist: trusty
sudo: required
cache:
yarn: true

before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH=$HOME/.yarn/bin:$PATH
jobs:
include:
- stage: build and test
if: type = pull_request
language: node_js
node_js:
- '6'
- '8'
cache:
yarn: true
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH=$HOME/.yarn/bin:$PATH
install:
- yarn run bootstrap
script:
- yarn test

- stage: www graphql docker image build and push
if: (NOT type = pull_request) AND branch = master
env:
- DOCKER_USER=mikeallanson
- secure: J8daWiar248dPWwrutZd83CeSif/+rMjB9hSOjq0pQDNj7QcOKjUwLsv6yMDJAcQCAAyobwRQTNYANGXmvQsi5ZppZe/P/enDPD/ZEPz3XkvxYYbXC7TNKVp8bnvYTWu6qO9ljkMsKGttsqaz+MyTx2MjV9pJhkmw2rfQ5iVn/80bORaCCMDcSB2ud/jLN+AVBFNMDUVEL9RnAXTq+CyQmSLvlvmJNCu9CXnb/Kt+IcbqswTjre/V2lVkzcXEvUYd0F9la3bsGVVQ9vBd3IumSIGnSOxD91DLUOeuh5K7FJxPoqqwM+bCn4zZWtQMOGpPDoYYllVejFHC16g/FBa6uC455OvqeS6fSCRXr9bqDxDLPhn7IyDAuG2jXps++sbd2RA8eXq8IGA4AqtTf4smiIXbOu3p3d2n9ww4Z/NgRpLHYRFcVwjG92okVN4by7n1+kr7wGx+alCkHTMDrLkkeZ0AEJphaxAH+TxP+SvCFY1z/OyNM0YzICrLXjf2w60Xz4wE563yUM8OLFm4GbeM33eQYRErTLADG9JtGDev+L5tS/Vo8+KGkL3creY7f9BgsNyfxbQbv84X7f+vSPlzl6u8V9EuVA80+5hE7artRtM+BxiT5pGM1983+QK2CPv4EptMYRa0EjlVbxyrfVYF22lsAqqgVApZGGneUxB0cQ= # DOCKER_PASS
before_install:
- chmod +x scripts/www-graphql-docker-push.sh
script:
- ./scripts/www-graphql-docker-push.sh

install:
- yarn run bootstrap

script:
- yarn test
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ Websites built with Gatsby:
* [Formidable](https://formidable.com/)
* [openFDA](https://open.fda.gov/)
([source](https://github.com/FDA/open.fda.gov))
* [ReasonML Docs](https://reasonml.github.io/)
([source](https://github.com/reasonml/reasonml.github.io))
* [Bricolage.io](https://www.bricolage.io/)
([source](https://github.com/KyleAMathews/blog))
* [Hack Club](https://hackclub.com/)
Expand Down Expand Up @@ -159,6 +157,8 @@ Websites built with Gatsby:
* [LaserTime Clinic](https://lasertime.ru) ([source](https://github.com/oleglegun/lasertime))
* [Gatsby Manor - themes for GatsbyJS](https://gatsbymanor.com)
* [Darren Britton's Portfolio](https://darrenbritton.com) ([source](https://github.com/darrenbritton/darrenbritton.github.io))
* [Portfolio / Blog of Preston Richey](https://prestonrichey.com/) ([source](https://github.com/prichey/prestonrichey.com))
* [Beach Hut Poole](https://www.beachhutpoole.co.uk/)

## Docs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ author: "Steven Natera"
---

I am proud to announce [Gatsby Manor](https://www.gatsbymanor.com/), a gallery
of themes for [Gatsby](https://www.Gatsby.org/). After 5 months of
of themes for Gatsby. After 5 months of
development, Gatsby Manor is now in public beta. Check out our
[themes](https://www.gatsbymanor.com/themes) then use our [getting started](https://www.gatsbymanor.com/docs/quick-start/getting-started) guide to
kickstart your Gatsby project.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions docs/blog/2018-02-16-bright-future-for-the-web/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: Gatsby And The JAMstack - A Bright Future For The Web
date: "2018-02-16"
image: "bright-future.jpg"
author: "Ryan Wiemer"
---

_This article was originally published on
[Medium](https://medium.com/@ryanwiemer/gatsby-and-the-jam-stack-91e31508f364)
on January 31, 2018._

Recently I relaunched my wife’s photography portfolio, [KNW Photography](https://www.knw.io/), using a combination of Gatsby, [Contentful](https://www.contentful.com/) and [Netlify](https://www.netlify.com/). This particular group of tools represents a new and exciting web development architecture known as the [JAMstack](https://jamstack.org/) (Javascript, APIs and Markup). In this post I will be sharing my personal thoughts on each of these new tools and why together they represent the “holy grail” of the static website world.

## Why Other Static Site Generators Didn’t Work For Me

In case you hadn’t noticed the web moves at an insane speed. With new frameworks and tools being introduced almost daily it can be intimidating even for the most experienced developers. Perhaps you have jumped on the bandwagon too early only to regret it later. Or maybe you have given up on new tools and are happy to settle with outdated …err I mean... trusted solutions. 😉 Admittedly it’s a balancing act but I believe that in order to stay relevant we need to evolve with the web while ensuring that selected tools are robust enough to last.

It was for those reasons that I was hesitant to pull the trigger on a static site generator. I feared that picking the wrong one would result in wasted time either immediately or later down the road. While static site generators have existed in some form for a while, see [Hugo](https://gohugo.io/), [Jekyll](https://jekyllrb.com/) and [Middleman](https://middlemanapp.com/), they have mostly been used by developers or code-savvy bloggers. Although these tools offer benefits such as greater speed, better security and simpler code what most of them lack in my opinion is a good solution for non technical users to update website content. Asking a non developer to edit a markdown file and commit it to GitHub is simply not realistic for most clients. Some businesses were even started to fill this niche such as [Siteleaf](https://www.siteleaf.com/) and [Forestry](https://forestry.io/) which provide a CMS for static sites built with Jekyll. Although those solutions solve part of the problem they felt too limiting for my taste and creating anything other than a simple blog is like fitting a square peg into a round hole.

## Gatsby And The Road To Success

![Road To Success](road-to-success.jpg)

One day after airing my grievances about the current state of static site generators on Slack a fellow developer recommend that I check out Gatsby. Gatsby is yet another static site generator but what really set it apart for me was how it was built with [React](https://reactjs.org/) and emphasized a rich plugin system. This was a big plus for me as I was itching to learn more about React and the plugin system alleviated some initial pain that I would have had dealing with mundane tasks. Out of the box you get a fantastic development environment with live reloading that required almost no configuration. With Gatsby specific plugins and React components it can handle pretty much anything you throw at it.

Next came integrating the statically generated site with data stored in a CMS. Again Gatsby was well suited for this and I was able to easily integrate with Contentful via the [gatsby-source-contentful](https://www.gatsbyjs.org/packages/gatsby-source-contentful/) plugin. Contentful is an example of a headless CMS, meaning that is is not tied to any particular technology or language. Contentful allows you to store content using a pleasant user interface and it can then output the data via an API. Best of all Contentful puts you in the driver seat and lets you define your own content model however you see fit. Think [WordPress Advanced Custom Fields](https://www.advancedcustomfields.com/) on steroids. With the content stored in Contentful Gatsby then uses the Contenful API along with the awesome power of [GraphQL](http://graphql.org/) to query data at build time. Cool stuff!

The final piece of the puzzle was determining where to host the website. I had recently experimented with Netlify on a somewhat [pointless website for my dog](https://www.doggoforhire.com/) and I was impressed by its ease of use and how they offered a fully featured developer tier for free. In no time I was able to get my Gatsby powered website up and running on Netlify. Then with the help of webhooks I was able to have Contentful tell Netlify to “rebuild” the website whenever a new post was published. Finally with Netlify’s form handling functionality I hooked up a contact form all without a single line of backend code or even a database.

## The Final Product

![Final Product](final-product.jpg)

After a little over a month of tinkering on the design during nights and weekends I had a fully functional website ready to be launched. During this process I learned a fair bit of how to code with React and the Gatsby community seemed genuinely nice and happy to help me to learn. The final product was a website that felt like it belonged in 2018 while still allowing my wife to easily update content with no assistance. Not only that the website was immensely faster than the previous WordPress version, served over HTTPS, utilized a CDN and cost me $0 dollars a month thanks to the extremely generous free tiers offered by Netlify and Contentful. 😍

If you are currently on the fence about static site generators or the JAMstack in general there has never been a better time to jump in. In my humble opinion with these tools it has finally reached the level of maturity to not just be feasible for client work but actually pretty darn amazing.

For those interested the source code for the website I built is available on GitHub: https://github.com/ryanwiemer/knw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 54 additions & 0 deletions docs/blog/2018-2-16-how-to-build-a-website-with-react/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: How to Build a Website with React
date: "2018-02-16"
author: Shannon Soper
---

# What is React?

React is a fantastic and wildly popular tool for building websites and apps, and it creates a world where JavaScript and HTML live in happy harmony in the same files and efficiently renders your ever-changing data to the browser.

## Declarative

With React, you can create reusable components that will always render the same data in the same way, which wasn't always the case pre-React. Let’s say you’re a huge Olympics fan and you build a React website for tracking scores. Users who visit your site won’t need to wait for the entire tree to deconstruct and reconstruct when they click a button on your site or when the newest data on the half-pipe is available. React components will efficiently update to accommodate the changing data.

## Reactive

React uses a virtual tree reconciliation method to _react_ to changes in input data. Whenever any data changes, instead of rebuilding the whole DOM tree (which would be slow) — it decides what changed in its virtual DOM and then makes the smallest number of DOM changes necessary.

Almost all frameworks nowadays (e.g. Angular, Vue, etc.) are approaching similar mechanisms. The virtual tree is in contrast to something like vanilla JS or jQuery where you are setting/updating DOM nodes directly.

## Easy to add to the rest of your stack

Switching your site(s) to new technologies optimally involves incrementally transferring your site over, page by page, to the new technology. This is difficult to do with some new frontend technologies which want to control the entire page. These technologies are like your friend who wants to take over every social event they get invited to.

React is not picky; it is happy to be used in only parts of your site, so you can incrementally refactor your code in React. It's more like an easy-going friend who is happy to help with just part of the party you're throwing. It plays nicely with others!

## Component-Based

React components and subcomponents tend to come from breaking your website down into the smallest bits possible, using the [single responsibility principle](https://en.wikipedia.org/wiki/Single_responsibility_principle).

For example, in a To-Do list, the hierarchy of components would include:

* Whole list
* Title
* add a to-do line
* to-do line
* subtasks within to-dos
* show completed to-dos button

![To-Do List](to-do-list.png)

The [Reactjs.org website recommends](https://reactjs.org/docs/thinking-in-react.html) that you work with your designer(s) when creating a hierarchy of React components and subcomponents, because the designers probably already have names for each small piece of the design, and you can make sure your components have the same names.

React components work just like other functions in any programming language because we call components with some input (called “property” in React) and spit out an output (a chunk of UI in React). Also, components are reusable and can contain other components. All these things are the same as other functions in other programming languages.

## Using React with Gatsby

GatsbyJS is a great way to build websites with React and actually solves some unique problems by making the following things more straightforward:

* _Pulling in data:_ In Gatsby, GraphQL and plugins help you use data from nearly any source (including both traditional CMSs and headless CMSs. Some people I’ve talked to recently even built their Gatsby sites with Google sheets as the data source.
* _Creating pages and routes:_ Gatsby also gives you an intuitive interface for creating pages and routes. So intuitive, in fact, that when I talked to a coworker, I said, “I remember creating pages and links to those pages from other pages, but I don’t remember creating any routes in Gatsby.” They responded, “Yeah, Gatsby took care of that for you.”
* _Solving performance problems:_ Gatsby sites rarely have performance problems due to Gatsby’s way of loading static files.

Gatsby combines the awesomeness of React with all the friendly helpfulness you’d hope for in a modern PWA framework. Happy coding, and let us know how it goes by joining us on [Twitter](https://twitter.com/gatsbyjs) and [Github](https://github.com/gatsbyjs/gatsby)!
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/blog/author.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,7 @@
bio: Founder of Gatsby Manor. Site Reliability Engineer. Open source addict. Writer at Hackernoon.
avatar: avatars/steven-natera.jpg
twitter: "@stevennatera"
- id: Ryan Wiemer
bio: Oakland based account manager that enjoys working on web and interactive projects - https://www.ryanwiemer.com
avatar: avatars/ryan-wiemer.jpg
twitter: "@ryanwiemer"
Binary file added docs/blog/avatars/ryan-wiemer.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
167 changes: 85 additions & 82 deletions docs/docs/adding-tags-and-categories-to-blog-posts.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,61 +104,80 @@ const Tags = ({ pathContext, data }) => {
<Link to="/tags">All tags</Link>
</div>
);
};
==== BASE ====
}
```

Tags.propTypes = {
pathContext: PropTypes.shape({
tag: PropTypes.string.isRequired,
}),
data: PropTypes.shape({
allMarkdownRemark: PropTypes.shape({
totalCount: PropTypes.number.isRequired,
edges: PropTypes.arrayOf(
PropTypes.shape({
node: PropTypes.shape({
frontmatter: PropTypes.shape({
path: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
}),
}),
}).isRequired,
),
}),
}),
};
Now we'll instruct Gatsby to create the tag pages. In the site's `gatsby-node.js` file we'll call the the [`createPages`](/docs/node-apis/#createPages) API to make a page for every tag.

export default Tags;
First create a function called `createTagPages`:

export const pageQuery = graphql`
query TagPage($tag: String) {
allMarkdownRemark(
limit: 2000
sort: { fields: [frontmatter___date], order: DESC }
filter: { frontmatter: { tags: { in: [$tag] } } }
) {
totalCount
edges {
node {
frontmatter {
title
path
}
}
}
}
}
`;
```
```javascript
const path = require("path");

**Note**: `propTypes` are included in this example to help you ensure you're getting all the data you need in the component, and to help serve as a guide while destructuring / using those props.
const createTagPages = (createPage, edges) => {
// Tell it to use our tags template.
const tagTemplate = path.resolve(`src/templates/tags.js`);
// Create an empty object to store the posts.
const posts = {};
console.log("creating posts");
==== BASE ====

## Modify `gatsby-node.js` to render pages using that template
==== BASE ====
// Loop through all nodes (our markdown posts) and add the tags to our post object.
==== BASE ====

Now we've got a template. Great! I'll assume you followed the tutorial for [Adding Markdown Pages](/docs/adding-tags-and-categories-to-blog-posts/) and provide a sample `createPages` that generates post pages as well as tag pages. In the site's `gatsby-node.js` file, include `lodash` (`const _ = require('lodash')`) and then make sure your [`createPages`](/docs/node-apis/#createPages) looks something like this:
==== BASE ====
edges.forEach(({ node }) => {
if (node.frontmatter.tags) {
node.frontmatter.tags.forEach(tag => {
if (!posts[tag]) {
posts[tag] = [];
==== BASE ====
}
==== BASE ====
posts[tag].push(node);
});
==== BASE ====
}
==== BASE ====
});
==== BASE ====

==== BASE ====
// Create the tags page with the list of tags from our posts object.
createPage({
path: "/tags",
component: tagTemplate,
context: {
posts,
},
});
==== BASE ====

==== BASE ====
// For each of the tags in the post object, create a tag page.

Object.keys(posts).forEach(tagName => {
const post = posts[tagName];
createPage({
path: `/tags/${tagName}`,
component: tagTemplate,
context: {
posts,
post,
tag: tagName,
},
});
});
};
```

```js
exports.createPages = ({ boundActionCreators, graphql }) => {
const { createPage } = boundActionCreators;
const path = require("path");

exports.createPages = ({ actions, graphql }) => {
const { createPage } = actions;

const blogPostTemplate = path.resolve('src/templates/blog.js');
const tagTemplate = path.resolve('src/templates/tags.js');
Expand All @@ -177,42 +196,26 @@ exports.createPages = ({ boundActionCreators, graphql }) => {
}
}
}
==== BASE ====
}
}
`).then(result => {
if (result.errors) {
return Promise.reject(result.errors);
}

const posts = result.data.allMarkdownRemark.edges;

// Create post detail pages
posts.forEach(({ node }) => {
createPage({
path: node.frontmatter.path,
component: blogPostTemplate,
});
});

// Tag pages:
let tags = [];
// Iterate through each post, putting all found tags into `tags`
_.each(posts, edge => {
if (_.get(edge, 'node.frontmatter.tags')) {
tags = tags.concat(edge.node.frontmatter.tags);
}
});
// Eliminate duplicate tags
tags = _.uniq(tags);

// Make tag pages
tags.forEach(tag => {
createPage({
path: `/tags/${_.kebabCase(tag)}/`,
component: tagTemplate,
context: {
tag,
},
==== BASE ====
`).then(result => {
console.log(result);
const posts = result.data.allMarkdownRemark.edges;

// call createTagPages with the result of posts
createTagPages(createPage, posts);

// this is the original code used to create the pages from markdown posts
result.data.allMarkdownRemark.edges.map(({ node }) => {
createPage({
path: node.fields.slug,
component: path.resolve(`./src/templates/blog-post.js`),
context: {
slug: node.fields.slug,
},
});
==== BASE ====
});
});
});
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/api-specification.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Plugins can extend Gatsby in many ways:
with URLs derived from their file names).
* Modifying webpack config (e.g. for styling options, adding support for other
compile-to-js languages)
* Adding things to the rendered HTML (e.g. meta tags, analytics JS snippits like
* Adding things to the rendered HTML (e.g. meta tags, analytics JS snippets like
Google Analytics)
* Writing out things to build directory based on site data (e.g. service worker,
sitemap, RSS feed)
Expand Down
Loading