forked from mathieudutour/medium-to-own-blog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
add-gatsby-files.js
117 lines (96 loc) · 2.44 KB
/
add-gatsby-files.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
const fs = require('fs-extra')
const path = require('path')
const { withOutputPath } = require('./utils')
module.exports.addGatsbyFiles = profile => {
function replaceTemplate(content) {
return content
.replace(/{{ mediumUsername }}/g, profile.mediumUsername || '')
.replace(/{{ authorName }}/g, profile.authorName || '')
.replace(/{{ authorEmail }}/g, profile.authorEmail || '')
.replace(/{{ twitterUsername }}/g, profile.twitterUsername || '')
.replace(/{{ facebookUsername }}/g, profile.facebookUsername || '')
.replace(/{{ bio }}/g, profile.bio || '')
}
function copyTemplate(fileName) {
return fs
.readFile(path.join(__dirname, `./gatsby-template/${fileName}`), 'utf8')
.then(replaceTemplate)
.then(content =>
fs.writeFile(withOutputPath(profile, `./${fileName}`), content)
)
}
return Promise.all([
copyTemplate('README.md'),
copyTemplate('package.json'),
copyTemplate('netlify.toml'),
copyTemplate('gatsby-ssr.js'),
copyTemplate('gatsby-node.js'),
copyTemplate('gatsby-config.js'),
copyTemplate('gatsby-browser.js'),
copyTemplate('.travis.yml'),
fs.writeFile(
withOutputPath(profile, '.gitignore'),
`# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Typescript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# dotenv environment variables file
.env
# gatsby files
.cache/
public
# Mac files
.DS_Store
# Yarn
yarn-error.log
.pnp/
.pnp.js
# Yarn Integrity file
.yarn-integrity
`
),
copyTemplate('.eslintrc.yml'),
fs.copy(
path.join(__dirname, './gatsby-template/src'),
withOutputPath(profile, './src')
),
fs.copy(
path.join(__dirname, './gatsby-template/static'),
withOutputPath(profile, './static')
),
])
}