improved accessibilty: page title
This commit is contained in:
Generated
+27
-2
@@ -3488,6 +3488,11 @@
|
|||||||
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"deepmerge": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow=="
|
||||||
|
},
|
||||||
"default-gateway": {
|
"default-gateway": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
|
||||||
@@ -7483,6 +7488,11 @@
|
|||||||
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
|
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"lodash.isplainobject": {
|
||||||
|
"version": "4.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
|
||||||
|
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
|
||||||
|
},
|
||||||
"lodash.sortby": {
|
"lodash.sortby": {
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||||
@@ -7514,6 +7524,11 @@
|
|||||||
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
|
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"lodash.uniqueid": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz",
|
||||||
|
"integrity": "sha1-MmjyanyI5PSxdY1nknGBTjH6WyY="
|
||||||
|
},
|
||||||
"loglevel": {
|
"loglevel": {
|
||||||
"version": "1.6.1",
|
"version": "1.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
|
||||||
@@ -8123,8 +8138,7 @@
|
|||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"object-copy": {
|
"object-copy": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
@@ -11024,6 +11038,17 @@
|
|||||||
"vue-style-loader": "^4.1.0"
|
"vue-style-loader": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"vue-meta": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-1.6.0.tgz",
|
||||||
|
"integrity": "sha512-LLHejsOYbJiSEDSgZvjHB3fFY7lUxsDFLkuSqf5eBohEvhhddBTOHa3heoFTcI5sxsZSZt26uUzoLVe4CT6Y4A==",
|
||||||
|
"requires": {
|
||||||
|
"deepmerge": "^3.2.0",
|
||||||
|
"lodash.isplainobject": "^4.0.6",
|
||||||
|
"lodash.uniqueid": "^4.0.1",
|
||||||
|
"object-assign": "^4.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vue-router": {
|
"vue-router": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.18.0",
|
"axios": "^0.18.0",
|
||||||
"vue": "^2.6.10",
|
"vue": "^2.6.10",
|
||||||
|
"vue-meta": "^1.6.0",
|
||||||
"vue-router": "^3.0.2",
|
"vue-router": "^3.0.2",
|
||||||
"vuex": "^3.1.0"
|
"vuex": "^3.1.0"
|
||||||
},
|
},
|
||||||
|
|||||||
+26
-1
@@ -1,7 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="root">
|
<div id="root">
|
||||||
<header role="banner">
|
<header role="banner">
|
||||||
<h1>Les Guides de Paris</h1>
|
<h1
|
||||||
|
tabindex="0"
|
||||||
|
@click="closePost()"
|
||||||
|
@keydown.enter="closePost()"
|
||||||
|
>
|
||||||
|
Les Guides de Paris
|
||||||
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
<section class="container center-content">
|
<section class="container center-content">
|
||||||
<RouterView />
|
<RouterView />
|
||||||
@@ -10,6 +16,25 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapState, mapActions } from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
metaInfo: {
|
||||||
|
// if no subcomponents specify a metaInfo.title, this title will be used
|
||||||
|
title: 'Home',
|
||||||
|
// all titles will be injected into this template
|
||||||
|
titleTemplate: '%s | Guides de Paris'
|
||||||
|
},
|
||||||
|
computed: mapState({
|
||||||
|
opened: state => state.posts.opened
|
||||||
|
}),
|
||||||
|
methods: mapActions('posts', [
|
||||||
|
'closePost'
|
||||||
|
])
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
|
|
||||||
.container
|
.container
|
||||||
|
|||||||
@@ -5,22 +5,25 @@
|
|||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
@click="closePost()"
|
@click="closePost()"
|
||||||
@keydown.enter="openPost(post)"
|
@keydown.enter="closePost()"
|
||||||
>
|
>
|
||||||
close</a>
|
close
|
||||||
|
</a>
|
||||||
</section>
|
</section>
|
||||||
<ul v-else>
|
<ul v-else>
|
||||||
<li
|
<li
|
||||||
v-for="post in posts"
|
v-for="post in posts"
|
||||||
:key="post.id"
|
:key="post.id"
|
||||||
>
|
>
|
||||||
<h2>
|
<h2>
|
||||||
<a
|
<a
|
||||||
:href="'#post-'+post.id"
|
:href="'#post-'+post.id"
|
||||||
@click="openPost(post)"
|
@click="openPost(post)"
|
||||||
@keydown.enter="openPost(post)"
|
@keydown.enter="openPost(post)"
|
||||||
>
|
>
|
||||||
{{ post.title }}</a></h2>
|
{{ post.title }}
|
||||||
|
</a>
|
||||||
|
</h2>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</template>
|
</template>
|
||||||
@@ -33,12 +36,17 @@ export default {
|
|||||||
opened: state => state.posts.opened,
|
opened: state => state.posts.opened,
|
||||||
posts: state => state.posts.all
|
posts: state => state.posts.all
|
||||||
}),
|
}),
|
||||||
|
created () {
|
||||||
|
this.$store.dispatch('posts/getAllPosts')
|
||||||
|
},
|
||||||
methods: mapActions('posts', [
|
methods: mapActions('posts', [
|
||||||
'openPost',
|
'openPost',
|
||||||
'closePost'
|
'closePost'
|
||||||
]),
|
]),
|
||||||
created () {
|
metaInfo () {
|
||||||
this.$store.dispatch('posts/getAllPosts')
|
return {
|
||||||
|
title: this.opened !== null ? this.opened.title : 'home'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
|
import Meta from 'vue-meta'
|
||||||
import App from './App'
|
import App from './App'
|
||||||
import 'assets/css/app.styl'
|
import 'assets/css/app.styl'
|
||||||
|
|
||||||
|
Vue.use(Meta)
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
router,
|
router,
|
||||||
store,
|
store,
|
||||||
|
|||||||
Reference in New Issue
Block a user