diff --git a/.eslintrc.js b/.eslintrc.js index 25a4edf..335ca16 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,23 +2,24 @@ module.exports = { root: true, env: { browser: true, - node: true + node: true, }, parserOptions: { - parser: 'babel-eslint' + parser: 'babel-eslint', }, - extends: [ - 'plugin:vue/recommended', - 'plugin:prettier/recommended' - ], + extends: ['plugin:vue/recommended', 'plugin:prettier/recommended'], // required to lint *.vue files - plugins: [ - 'vue', - 'prettier' - ], + plugins: ['vue', 'prettier'], // add your custom rules here rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' - } + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'comma-dangle': [ + 'error', + { + arrays: 'only-multiline', + objects: 'only-multiline', + }, + ], + }, } diff --git a/.gitignore b/.gitignore index 29669c1..6a1ea61 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,7 @@ typings/ .nuxt # Nuxt generate +public dist # vuepress build output diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d74a78..bf26956 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,8 +10,6 @@ cache: pages: script: - yarn generate - - mkdir public - - mv dist/* public/ artifacts: paths: - public diff --git a/.prettierrc b/.prettierrc index b2095be..36301bc 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,5 @@ { "semi": false, - "singleQuote": true + "singleQuote": true, + "trailingComma": "es5" } diff --git a/.vscode/settings.json b/.vscode/settings.json index d83c9db..21bda8b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,5 @@ { "eslint.enable": true, "eslint.packageManager": "yarn", - "eslint.validate": [ - "javascript", - "javascriptreact", - "vue" - ] -} \ No newline at end of file + "eslint.validate": ["javascript", "javascriptreact", "vue", "html"] +} diff --git a/assets/sass/_variables.sass b/assets/sass/_utilities.sass similarity index 86% rename from assets/sass/_variables.sass rename to assets/sass/_utilities.sass index b517129..8af3c32 100644 --- a/assets/sass/_variables.sass +++ b/assets/sass/_utilities.sass @@ -1,3 +1,4 @@ +@import '~bulma/sass/utilities/initial-variables' @import '~bulma/sass/utilities/functions' $pink: #F4ACB7 @@ -21,3 +22,5 @@ $warning: $bright $warning-invert: $bright-invert $link: $purple $link-invert: $purple-invert + +@import '~bulma/sass/utilities/all' diff --git a/assets/sass/mat.sass b/assets/sass/mat.sass index 10b0416..2c6d6c9 100644 --- a/assets/sass/mat.sass +++ b/assets/sass/mat.sass @@ -1,6 +1,4 @@ -@import '~bulma/sass/utilities/initial-variables' - -@import 'variables' +@import 'utilities' @import '~bulma/bulma' diff --git a/components/hero.vue b/components/hero.vue index 10951f2..bc8648a 100644 --- a/components/hero.vue +++ b/components/hero.vue @@ -5,20 +5,22 @@ section.hero.is-primary.is-bold(v-once) h1.title.has-text-danger matthew ess h2.subtitle.has-text-danger software developer, social justice warrior, wannabe artist .hero-foot - nav-tabs + .tabs.is-boxed.is-fullwidth.is-three-quarters + ul.has-text-weight-semibold.has-text-danger + li(v-if='compact') #[nuxt-link.has-text-weight-bold(to='/') matthew ess] + li #[nuxt-link(to='/projects') projects] + li #[nuxt-link(to='/resume') resume] + li #[nuxt-link(to='/blog') blog] diff --git a/components/navTabs.vue b/components/navTabs.vue deleted file mode 100644 index 287b922..0000000 --- a/components/navTabs.vue +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/content/FirstPost.md b/content/FirstPost.md new file mode 100644 index 0000000..46babfb --- /dev/null +++ b/content/FirstPost.md @@ -0,0 +1,22 @@ +--- +title: hi, world +tagline: my personal introduction to the world of words on the web +tags: + - first post + - introduction + - tech blog + - creative writing +--- + +hi, world! this is my first blog post. i'm hoping to use this as part creative outlet, part +self-encouragement to see technical projects through, and part place to document my learning so i +can go back and look at all the things i forgot, one day. + +to those of you who don't know me, here's a brief introduction: my name is mat! i'm a communist, +a [partner][1], and generally (at the very least) something of a curmudgeon. i have a number of +strong opinions, especially about technology and politics. i have a love for art, and, in another +life, i really wish that i'd studied philosophy or music. + +if you have ideas for me to blog about, feel free to reach out to me at mess [at] yelp [dot] com. + +[1]: https://macklovesmatt.com/ 'me and my partner' diff --git a/layouts/compact.vue b/layouts/compact.vue index 38801c6..f7bbe30 100644 --- a/layouts/compact.vue +++ b/layouts/compact.vue @@ -10,7 +10,7 @@ import hero from '../components/hero.vue' export default { - components: { hero } + components: { hero }, } diff --git a/layouts/default.vue b/layouts/default.vue index 306f431..adda551 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -10,7 +10,7 @@ import hero from '../components/hero.vue' export default { - components: { hero } + components: { hero }, } diff --git a/middleware/README.md b/middleware/README.md deleted file mode 100644 index 009e48c..0000000 --- a/middleware/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# MIDDLEWARE - -**This directory is not required, you can delete it if you don't want to use it.** - -This directory contains your application middleware. -The middleware lets you define custom function to be ran before rendering a page or a group of pages (layouts). - -More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware). diff --git a/nuxt.config.js b/nuxt.config.js index a5fc411..4222426 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -1,6 +1,6 @@ -const pkg = require('./package') // javascript.validate.enable false +import pkg from './package' -module.exports = { +export default { mode: 'universal', /* @@ -14,8 +14,8 @@ module.exports = { { charset: 'utf-8' }, { 'http-equiv': 'X-UA-Compatible', content: 'IE=edge,chrome=1' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, - { hid: 'description', name: 'description', content: pkg.description } - ] + { hid: 'description', name: 'description', content: pkg.description }, + ], }, /* @@ -31,12 +31,36 @@ module.exports = { /* ** Plugins to load before mounting the App */ - plugins: [], + plugins: ['~/plugins/filters.js'], /* ** Nuxt.js modules */ - modules: ['@nuxtjs/bulma'], + modules: ['@nuxtjs/bulma', 'nuxtent'], + + /* + ** Static Site Generation configuration + */ + generate: { + dir: 'public', + }, + + /* + ** Nuxtent configuration + */ + nuxtent: { + content: { + page: '/_slug', + permalink: '/blog/:slug', + isPost: false, + generate: ['get', 'getAll'], + }, + api: isStatic => { + return { + browserBaseURL: isStatic ? 'https://mat.services' : '', + } + }, + }, /* ** Build configuration @@ -45,9 +69,9 @@ module.exports = { postcss: { preset: { features: { - customProperties: false - } - } + customProperties: false, + }, + }, }, /* ** You can extend webpack config here @@ -59,9 +83,9 @@ module.exports = { enforce: 'pre', test: /\.(js|vue)$/, loader: 'eslint-loader', - exclude: /(node_modules)/ + exclude: /(node_modules)/, }) } - } - } + }, + }, } diff --git a/package.json b/package.json index 48b653a..25e4bc5 100644 --- a/package.json +++ b/package.json @@ -13,22 +13,25 @@ "precommit": "yarn lint" }, "dependencies": { + "@nuxtjs/axios": "^4.5.2", "@nuxtjs/bulma": "^1.2.0", "cross-env": "^5.2.0", - "nuxt": "^2.0.0" + "nuxt": "^2.0.0", + "nuxtent": "^1.4.1" }, "devDependencies": { "babel-eslint": "^8.2.1", - "eslint": "^5.0.1", + "eslint": "^5.7.0", "eslint-config-prettier": "^3.1.0", "eslint-loader": "^2.0.0", "eslint-plugin-prettier": "2.6.2", - "eslint-plugin-vue": "^4.0.0", + "eslint-plugin-vue": "^5.0.0-beta.3", "node-sass": "^4.9.3", "nodemon": "^1.11.0", "prettier": "1.14.3", "pug": "^2.0.3", "pug-plain-loader": "^1.0.0", - "sass-loader": "^7.1.0" + "sass-loader": "^7.1.0", + "webpack": "^4.20.2" } } diff --git a/pages/README.md b/pages/README.md deleted file mode 100644 index 7a6cffa..0000000 --- a/pages/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# PAGES - -This directory contains your Application Views and Routes. -The framework reads all the `*.vue` files inside this directory and create the router of your application. - -More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing). diff --git a/pages/blog.vue b/pages/blog.vue new file mode 100644 index 0000000..f9c3d9d --- /dev/null +++ b/pages/blog.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/pages/blog/_slug.vue b/pages/blog/_slug.vue new file mode 100644 index 0000000..7716648 --- /dev/null +++ b/pages/blog/_slug.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/pages/blog/index.vue b/pages/blog/index.vue index 8834243..bdc7f02 100644 --- a/pages/blog/index.vue +++ b/pages/blog/index.vue @@ -1,14 +1,49 @@ + + diff --git a/pages/index.vue b/pages/index.vue index f1f7be8..756cc21 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -8,23 +8,23 @@ p.content. i'm a communist, a #[a(href='https://mattandmack.website' target='_blank') partner], - a recently graduated student, and a software developer at yelp. + and a software developer at yelp. .tile.is-9 .notification.is-warning h1.title.is-4 what's inspiring me now .content - p bo burnham's 8th grade - p louis brennan's #[a(href='https://louisbrennan.bandcamp.com/album/dead-capital' target='_blank') dead capital] + p wes anderson's isle of dogs + p mitski's #[a(href='https://mitski.bandcamp.com/album/be-the-cowboy' target='_blank') be the cowboy] p thomas pynchon's gravity's rainbow .tile.is-4 .tile.is-9 .notification.is-danger h1.title.is-4 what i care about p.content. - as a communist, i'm passionate about anti-imperialism and decolonization. - i believe that software can be a tool for liberation, and those are the tools - i want to develop. feel free to get in touch with - me at mess [at] yelp [dot] com if you have similar goals. + as a communist, i think the most important tools are the ones that help + workers organize and empower themselves. i want my software to be a tool for + liberation, and i want to work on projects that embody that goal. reach out + to mess [at] yelp [dot] com if you want to work on or discuss something. p.content. "the philosophers have only interpreted the world, in various ways. the point, however, is to change it." diff --git a/pages/projects.vue b/pages/projects.vue index b443258..9d52ddb 100644 --- a/pages/projects.vue +++ b/pages/projects.vue @@ -1,53 +1,51 @@ + + - - diff --git a/pages/resume.vue b/pages/resume.vue index 813666d..134d098 100644 --- a/pages/resume.vue +++ b/pages/resume.vue @@ -30,13 +30,16 @@ .column p python 2 and 3 p flask, django, pyramid + p elixir and phoenix p java, junit testing, ruby on rails .column p html5, css, javascript p vue.js, react + p elm, reactive frontend programming p single page apps, components, flux .column p c, unix programming + p software deployment p macOS, linux, windows p source control, git @@ -44,23 +47,15 @@