diff --git a/content/extra_page_infos.json b/content/extra_page_infos.json
new file mode 100644
index 0000000..5e2d088
--- /dev/null
+++ b/content/extra_page_infos.json
@@ -0,0 +1,22 @@
+[
+ {
+ "title": "Nintendo Switch Emulator",
+ "path": "/",
+ "keywords": ["home"]
+ },
+ {
+ "title": "Download",
+ "path": "/download",
+ "keywords": ["download"]
+ },
+ {
+ "title": "Contribute",
+ "path": "/contribute",
+ "keywords": ["contribute"]
+ },
+ {
+ "title": "Build",
+ "path": "/build",
+ "keywords": ["build"]
+ }
+]
\ No newline at end of file
diff --git a/gridsome.config.js b/gridsome.config.js
index b94102e..af5d156 100644
--- a/gridsome.config.js
+++ b/gridsome.config.js
@@ -2,5 +2,18 @@ module.exports = {
siteName: 'Ryujinx',
siteUrl: 'https://ryujinx.org',
titleTemplate: 'Ryujinx - %s',
+ metadata: {
+ siteDescription: "Ryujinx is an open source Nintendo Switch emulator written in C# for Windows, Linux and OSX.",
+ siteKeywords: [
+ "ryujinx",
+ "switch",
+ "nintendo switch",
+ "emulator"
+ ],
+ siteAuthor: "Ryujinx",
+ siteCopyright: "Ryujinx",
+ siteTwitter: "@RyujinxEmu",
+ coverImage: "/public/logo.png"
+ },
plugins: []
}
diff --git a/gridsome.server.js b/gridsome.server.js
index d9403ce..41407bb 100644
--- a/gridsome.server.js
+++ b/gridsome.server.js
@@ -26,5 +26,6 @@ module.exports = function (api) {
api.loadSource(async actions => {
addJSONCollection(actions, "Team", "./content/team.json")
addJSONCollection(actions, "SocialNavbarElements", "./content/ui/navbar/social.json")
+ addJSONCollection(actions, "ExtraPagesInfo", "./content/extra_page_infos.json")
})
}
diff --git a/package.json b/package.json
index 4fec252..7ea658d 100644
--- a/package.json
+++ b/package.json
@@ -9,9 +9,6 @@
"explore": "gridsome explore"
},
"dependencies": {
- "@gridsome/source-filesystem": "^0.6.2",
- "@gridsome/transformer-json": "^0.2.1",
- "axios": "^0.19.2",
"gridsome": "^0.7.0",
"vuetify": "^1.0.0"
},
diff --git a/src/components/SEO.vue b/src/components/SEO.vue
new file mode 100644
index 0000000..80400e9
--- /dev/null
+++ b/src/components/SEO.vue
@@ -0,0 +1,61 @@
+
+
+
+
+query {
+ metadata {
+ siteAuthor
+ siteCopyright
+ siteName
+ siteUrl
+ siteDescription
+ siteKeywords
+ siteTwitter
+ coverImage
+ }
+}
+
+
+
\ No newline at end of file
diff --git a/src/layouts/Default.vue b/src/layouts/Default.vue
index f2e9b31..e0169b9 100644
--- a/src/layouts/Default.vue
+++ b/src/layouts/Default.vue
@@ -1,5 +1,7 @@
+
+
diff --git a/src/main.js b/src/main.js
index f35a93c..cf5a7c1 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,8 +1,10 @@
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import DefaultLayout from '~/layouts/Default.vue'
+import SEO from '~/components/SEO.vue'
-export default function (Vue, { appOptions, head }) {
+
+export default function (Vue, { appOptions, router, head }) {
// First inject custom CSS needed
head.link.push({
rel: 'stylesheet',
@@ -18,6 +20,10 @@ export default function (Vue, { appOptions, head }) {
const gIndex = head.meta.findIndex(e => e.name === 'generator')
if (gIndex !== -1) head.meta.splice(gIndex, 1)
+ // Remove the description tag as we generate a custom one in SEO
+ const dIndex = head.meta.findIndex(e => e.name === 'description')
+ if (dIndex !== -1) head.meta.splice(dIndex, 1)
+
const opts = {
theme: {
ryu_blue: '#00C4E1',
@@ -32,4 +38,7 @@ export default function (Vue, { appOptions, head }) {
// Set default layout as a global component
Vue.component('Layout', DefaultLayout)
+
+ // Set the SEO component
+ Vue.component('SEO', SEO)
}
diff --git a/src/pages/Build.vue b/src/pages/Build.vue
index d01b338..949bf3f 100644
--- a/src/pages/Build.vue
+++ b/src/pages/Build.vue
@@ -60,11 +60,18 @@
+
+query {
+ extraPagesInfo(path: "/build") {
+ path
+ title
+ keywords
+ }
+}
+
+
+}
+
diff --git a/src/pages/Download.vue b/src/pages/Download.vue
index ee24c39..1f31550 100644
--- a/src/pages/Download.vue
+++ b/src/pages/Download.vue
@@ -139,11 +139,18 @@
+
+query {
+ extraPagesInfo(path: "/download") {
+ path
+ title
+ keywords
+ }
+}
+
+
diff --git a/static/public/logo.png b/static/public/logo.png
new file mode 100644
index 0000000..78cd4a3
Binary files /dev/null and b/static/public/logo.png differ
diff --git a/static/public/wallp.png b/static/public/wallp.png
new file mode 100644
index 0000000..7f53bec
Binary files /dev/null and b/static/public/wallp.png differ