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 @@
-
-#nav-tabs
- .tabs.is-boxed.is-fullwidth
- ul.has-text-weight-semibold.has-text-danger
- li #[nuxt-link(to='/') home]
- li #[nuxt-link(to='/projects') projects]
- li #[nuxt-link(to='/resume') resume]
- //- li #[nuxt-link(to='/blog') blog]
-
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 @@
+
+#blog
+ nuxt-link(to='/blog')
+ h1.title.has-text-centered ~ a mess of words ~
+ #top
+ nuxt-child
+
+
+
+
+
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 @@
+
+#post
+ h1.title {{ post.title }}
+ h2.subtitle {{ post.tagline }}
+ p {{ post.date | prettifyDateLong }}
+ hr
+ .post-body.content(v-html='post.body')
+ a(href='#top') top
+
+
+
+
+
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 @@
-#blog
+ul.blog-items
+ li.blog-item(v-for='(post, index) in listing' v-if='!post.draft')
+ nuxt-link(:to='post.path')
+ span.post-title {{ post.title }}
+ span.post-date {{ post.date | prettifyDate }}
+ .post-tagline {{ post.tagline }}
+ hr(v-if='last(index)')
+
+
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 @@
#projects.is-half.has-text-centered-mobile
- h2.subtitle.has-text-centered Older Projects
+ h2.subtitle.has-text-centered older projects
hr
- h2.subtitle #[a(href='https://github.com/matthewess/boilertalk-frontend') Boilertalk]
+ h2.subtitle #[a(href='https://github.com/matthewess/boilertalk-frontend') boilertalk]
p.content.
- Boilertalk is a project I'm working on with my fiancée to enable social
+ boilertalk is a project i'm working on with my fiancée to enable social
psychology researchers to easily simulate a social media platform to
garner realistic interactions and behaviors from students for the purpose
of research studies.
- h2.subtitle #[a(href='https://github.com/purdue-csusb/openideas') OpenIdeas]
+ h2.subtitle #[a(href='https://github.com/purdue-csusb/openideas') openideas]
p.content.
- OpenIdeas is a platform I'm working on with Jay Hankins for
+ openideas is a platform i worked on with jay hankins for
#[a(href='https://purdueusb.com') Purdue USB] and the Purdue
- Undergraduate CS Community. We hope to implement it this year
+ Undergraduate CS Community. we hoped to implement it
to give students a way to voice concerns or improvements for
the department, then vote on and discuss them.
- h2.subtitle #[a(href='https://github.com/lemming-online/mischief') Mischief/Lemming]
+ h2.subtitle #[a(href='https://github.com/lemming-online/mischief') lemming]
p.content.
- Mischief is the backend component of the lemming project, a group
+ i worked on the backend component of the lemming project, a group
project for Purdue's senior design class that was meant as a queuing
system to help lab TAs or group leaders manage large groups of students
or members who need help with an assignment or project.
- h2.subtitle #[a(href='https://github.com/projectkuva/kuva-frontend') Kuva]
+ h2.subtitle #[a(href='https://github.com/projectkuva/kuva-frontend') kuva]
p.content.
- Kuva was a small iOS app meant as a regional, location centric clone
- of Instagram that would allow you to see and interact with popular photos
+ kuva was a small iOS app meant as a regional, location centric clone
+ of instagram that would allow you to see and interact with popular photos
taken by users nearby you.
hr
p.content.
check out my #[a.has-text-info(href='https://gitlab.com/matthewess') gitlab account],
- or my older #[a.has-text-info(href='https://github.com/matthewess') github account]
+ or my older #[a.has-text-info(href='https://github.com/matthewess') github account].
+
+
-
-
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 @@