diff --git a/.gitignore b/.gitignore index b0eda16..d278557 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ /src/node_modules/@sapper/ /__sapper__/ -.vercel \ No newline at end of file +.vercel +data +backups \ No newline at end of file diff --git a/package.json b/package.json index ad8fe6f..bdf6869 100644 --- a/package.json +++ b/package.json @@ -6,19 +6,21 @@ "start": "node __sapper__/build" }, "dependencies": { + "axios": "^0.20.0", "compression": "^1.7.1", "polka": "next", - "sirv": "^0.4.0" + "sirv": "^1.0.0" }, "devDependencies": { - "npm-run-all": "^4.1.5", - "sapper": "^0.27.0", - "svelte": "^3.0.0", - "@rollup/plugin-commonjs": "^12.0.0", + "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-node-resolve": "^8.0.0", "@rollup/plugin-replace": "^2.2.0", + "npm-run-all": "^4.1.5", "rollup": "^2.3.4", - "rollup-plugin-svelte": "^5.0.1", - "rollup-plugin-terser": "^5.3.0" + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "sapper": "^0.28.0", + "sapper-environment": "^1.0.1", + "svelte": "^3.17.3" } } diff --git a/rollup.config.js b/rollup.config.js index f090650..3c5bc0c 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -10,7 +10,9 @@ const mode = process.env.NODE_ENV const dev = mode === 'development' const onwarn = (warning, onwarn) => - (warning.code === 'CIRCULAR_DEPENDENCY' && /[/\\]@sapper[/\\]/.test(warning.message)) || onwarn(warning) + (warning.code === 'MISSING_EXPORT' && /'preload'/.test(warning.message)) || + (warning.code === 'CIRCULAR_DEPENDENCY' && /[/\\]@sapper[/\\]/.test(warning.message)) || + onwarn(warning) export default { client: { @@ -31,6 +33,7 @@ export default { dedupe: ['svelte'], }), commonjs(), + !dev && terser({ module: true, @@ -51,6 +54,7 @@ export default { }), svelte({ generate: 'ssr', + hydratable: true, dev, }), resolve({ @@ -58,28 +62,9 @@ export default { }), commonjs(), ], - external: Object.keys(pkg.dependencies).concat( - require('module').builtinModules || Object.keys(process.binding('natives')) - ), + external: Object.keys(pkg.dependencies).concat(require('module').builtinModules), preserveEntrySignatures: 'strict', onwarn, }, - - // serviceworker: { - // input: config.serviceworker.input(), - // output: config.serviceworker.output(), - // plugins: [ - // resolve(), - // replace({ - // 'process.browser': true, - // 'process.env.NODE_ENV': JSON.stringify(mode), - // }), - // commonjs(), - // !dev && terser(), - // ], - - // preserveEntrySignatures: false, - // onwarn, - // }, } diff --git a/src/components/Nav.svelte b/src/components/Nav.svelte index 779c597..16c6b38 100644 --- a/src/components/Nav.svelte +++ b/src/components/Nav.svelte @@ -8,11 +8,16 @@ { name: 'Blog', href: 'https://blog.nicco.io' }, { name: 'Contact', href: '/contact' }, ] + + let nav - + - NB + NB {#each routes as { name, href }} - {name} + + {name} + + {/each} diff --git a/src/components/Project.svelte b/src/components/Project.svelte index 4f28ae1..dd2362f 100644 --- a/src/components/Project.svelte +++ b/src/components/Project.svelte @@ -34,16 +34,14 @@ - {project.name} + {project.title} - - {project.title} - {project.date} - + {project.description} {project.date} - {project.body} + + {@html project.content} + {project.link.replace(/https?:\/\//, '')} - diff --git a/src/components/Work.svelte b/src/components/Work.svelte new file mode 100644 index 0000000..71d88a4 --- /dev/null +++ b/src/components/Work.svelte @@ -0,0 +1,37 @@ + + + + + + {work.title} + {work.link.replace(/https?:\/\//, '')} + + + + {work.role} + {work.date} + + + {@html work.content} + diff --git a/src/lib/wp.js b/src/lib/wp.js new file mode 100644 index 0000000..dd74fba --- /dev/null +++ b/src/lib/wp.js @@ -0,0 +1,25 @@ +import axios from 'axios' + +const isDev = process.env.NODE_ENV !== 'production' +axios.defaults.baseURL = `${isDev ? 'http://localhost' : 'https://api.nicco.io'}/wp-json/wp/v2` + +function normalize(post) { + return { + ...post.acf, + id: post.id, + title: post.title.rendered, + content: post.content.rendered, + } +} + +export async function getOne(url, params = {}) { + const p = new URLSearchParams(params).toString() + const { data } = await axios(`${url}?${p}`) + if (!data.length) return null + else return normalize(data[0]) +} + +export async function getAll(url, params = {}) { + const { data } = await axios(url) + return data.map(normalize) +} diff --git a/src/routes/about.svelte b/src/routes/about.svelte index f490ce9..df75e36 100644 --- a/src/routes/about.svelte +++ b/src/routes/about.svelte @@ -1,5 +1,16 @@ + +
{project.body}
+ {@html project.content} +
+ {@html work.content} +