1
0
Fork 0
ryanmoon.com/pages/projects/[slug].vue

37 lines
1.1 KiB
Vue

<script setup>
const { path } = useRoute()
// https://content.nuxtjs.org/guide/displaying/querying#with-useasyncdata
const { data, error } = await useAsyncData(`content-${path}`, () => {
return queryContent().where({ _path: path, public: true }).findOne()
})
// https://nuxt.com/docs/api/utils/create-error#createerror
if (error.value) {
showError(
createError({
statusCode: 404,
statusMessage: 'Not Found',
})
)
}
</script>
<template>
<div class="project" :id="data.slug">
<img class="hero" :src="'/img/project/' + data.slug + '/' + data.thumbnail" alt >
<h1>{{ data.project }}</h1>
<h2>{{ data.concept}}</h2>
<hr />
<label ><span className="icon-calendar"></span>Year of Completion</label>
<p>{{ data.completed}}</p>
<label ><span className="icon-layers"></span>Technology Stack</label>
<p>{{ data.stack}}</p>
<div v-if="data.live">
<label ><span className="icon-link"></span>Live Site</label>
<NuxtLink :to="data.url" target="_BLANK" >Check out the live product</NuxtLink>
</div>
<hr />
</div>
<ContentDoc class="content" />
</template>