Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Add meta tags to pages with new_header enabled #1942

Merged
merged 2 commits into from
Nov 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,12 @@ const meta = [
name: 'viewport',
content: 'width=device-width,initial-scale=1',
},
// Tells Google to only crawl Openverse when iframed
{ hid: 'googlebot', name: 'googlebot', content: 'noindex,indexifembedded' },
// By default, tell all robots not to index pages. Will be overridden in the
// search, content and home pages.
{ hid: 'robots', name: 'robots', content: 'noindex' },
// Tell Googlebot to crawl Openverse when iframed
// TODO: remove after the iframe is removed
{ hid: 'googlebot', name: 'googlebot', content: 'indexifembedded' },
{
vmid: 'monetization',
name: 'monetization',
Expand Down
20 changes: 15 additions & 5 deletions src/pages/about.vue
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,30 @@
</template>

<script lang="ts">
import { defineComponent } from '@nuxtjs/composition-api'
import { defineComponent, useMeta } from '@nuxtjs/composition-api'

import { useFeatureFlagStore } from '~/stores/feature-flag'
import { useI18n } from '~/composables/use-i18n'

import VLink from '~/components/VLink.vue'
import VContentPage from '~/components/VContentPage.vue'

export default defineComponent({
name: 'AboutPage',
components: { VLink, VContentPage },
head() {
return {
title: `${this.$t('about.title', {
setup() {
const i18n = useI18n()
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${i18n.t('about.title', {
openverse: 'Openverse',
})} | Openverse`,
}
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})
},
head: {},
})
</script>
22 changes: 16 additions & 6 deletions src/pages/external-sources.vue
Original file line number Diff line number Diff line change
Expand Up @@ -63,21 +63,31 @@
</i18n>
</VContentPage>
</template>
<script lang="ts">
import { defineComponent, useMeta } from '@nuxtjs/composition-api'

<script>
import { defineComponent } from '@nuxtjs/composition-api'
import { useFeatureFlagStore } from '~/stores/feature-flag'

import { useI18n } from '~/composables/use-i18n'

import VContentPage from '~/components/VContentPage.vue'
import VLink from '~/components/VLink.vue'

export default defineComponent({
name: 'ExternalSourcesPage',
components: { VContentPage, VLink },
head() {
return {
title: `${this.$t('external-sources-page.title')} | Openverse`,
}
setup() {
const i18n = useI18n()
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${i18n.t('external-sources-page.title')} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})
},
head: {},
})
</script>

Expand Down
21 changes: 15 additions & 6 deletions src/pages/feedback.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,10 @@
</template>

<script lang="ts">
import { defineComponent } from '@nuxtjs/composition-api'
import { defineComponent, useMeta } from '@nuxtjs/composition-api'

import { useFeatureFlagStore } from '~/stores/feature-flag'
import { useI18n } from '~/composables/use-i18n'

import VLink from '~/components/VLink.vue'
import VContentPage from '~/components/VContentPage.vue'
Expand All @@ -62,15 +65,21 @@ export default defineComponent({
name: 'FeedbackPage',
components: { VLink, VContentPage, VTabs, VTab, VTabPanel },
setup() {
const i18n = useI18n()
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${i18n.t('feedback.title')} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})

return {
forms,
tabs,
}
},
head() {
return {
title: `${this.$t('feedback.title')} | Openverse`,
}
},
head: {},
})
</script>
18 changes: 16 additions & 2 deletions src/pages/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ import {
onMounted,
ref,
useContext,
useMeta,
useRouter,
} from '@nuxtjs/composition-api'

Expand All @@ -140,6 +141,7 @@ import { isMinScreen } from '~/composables/use-media-query'

import { useMediaStore } from '~/stores/media'
import { useSearchStore } from '~/stores/search'
import { useFeatureFlagStore } from '~/stores/feature-flag'

import VLink from '~/components/VLink.vue'
import VLogoButtonOld from '~/components/VHeaderOld/VLogoButtonOld.vue'
Expand All @@ -148,6 +150,8 @@ import VSearchTypeRadio from '~/components/VContentSwitcher/VSearchTypeRadio.vue
import VSearchTypePopoverOld from '~/components/VContentSwitcherOld/VSearchTypePopoverOld.vue'
import VBrand from '~/components/VBrand/VBrand.vue'

import type { Dictionary } from 'vue-router/types/router'

import imageInfo from '~/assets/homepage_images/image_info.json'

export default defineComponent({
Expand All @@ -162,6 +166,16 @@ export default defineComponent({
},
layout: 'blank',
setup() {
const featureFlagStore = useFeatureFlagStore()
const themeColorMeta = [
{ hid: 'theme-color', name: 'theme-color', content: '#ffe033' },
]
useMeta({
meta: featureFlagStore.isOn('new_header')
? [...themeColorMeta, { hid: 'robots', name: 'robots', content: 'all' }]
: themeColorMeta,
})

const { app } = useContext()
const router = useRouter()
const mediaStore = useMediaStore()
Expand Down Expand Up @@ -197,7 +211,7 @@ export default defineComponent({
const contentSwitcher = ref<InstanceType<
typeof VSearchTypePopoverOld
> | null>(null)
const searchType = ref(ALL_MEDIA)
const searchType = ref<SupportedSearchType>(ALL_MEDIA)

const setSearchType = (type: SupportedSearchType) => {
searchType.value = type
Expand All @@ -212,7 +226,7 @@ export default defineComponent({

const newPath = app.localePath({
path: searchPath(searchType.value),
query: searchStore.searchQueryParams,
query: searchStore.searchQueryParams as Dictionary<string>,
})
router.push(newPath)
}
Expand Down
26 changes: 18 additions & 8 deletions src/pages/search-help.vue
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,10 @@
</template>

<script lang="ts">
import { defineComponent, useContext } from '@nuxtjs/composition-api'
import { defineComponent, useContext, useMeta } from '@nuxtjs/composition-api'

import { useFeatureFlagStore } from '~/stores/feature-flag'
import { useI18n } from '~/composables/use-i18n'

import VLink from '~/components/VLink.vue'
import VContentPage from '~/components/VContentPage.vue'
Expand All @@ -233,6 +236,19 @@ export default defineComponent({
components: { VLink, VContentPage },
setup() {
const { app } = useContext()

const i18n = useI18n()
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${i18n.t('search-guide.title', {
openverse: 'Openverse',
})} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})

const pathFromQuery = (queryString: string, quote = false) => {
return app.localePath({
path: 'search',
Expand All @@ -246,12 +262,6 @@ export default defineComponent({
}
return { pathFromQuery, providerSearchLink }
},
head() {
return {
title: `${this.$t('search-guide.title', {
openverse: 'Openverse',
})} | Openverse`,
}
},
head: {},
})
</script>
11 changes: 10 additions & 1 deletion src/pages/search/audio.vue
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ import { useUiStore } from '~/stores/ui'

import { IsMinScreenMdKey } from '~/types/provides'

import { useFeatureFlagStore } from '~/stores/feature-flag'

import VSnackbar from '~/components/VSnackbar.vue'
import VAudioTrack from '~/components/VAudioTrack/VAudioTrack.vue'
import VLoadMore from '~/components/VLoadMore.vue'
Expand All @@ -69,7 +71,14 @@ export default defineComponent({
},
props: propTypes,
setup(props) {
useMeta({ title: `${props.searchTerm} | Openverse` })
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${props.searchTerm} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})

const results = computed(() => props.resultItems.audio)

Expand Down
10 changes: 9 additions & 1 deletion src/pages/search/image.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { computed, defineComponent, useMeta } from '@nuxtjs/composition-api'

import { propTypes } from '~/pages/search/search-page.types'
import { useFocusFilters } from '~/composables/use-focus-filters'
import { useFeatureFlagStore } from '~/stores/feature-flag'

import VImageGrid from '~/components/VImageGrid/VImageGrid.vue'

Expand All @@ -20,7 +21,14 @@ export default defineComponent({
components: { VImageGrid },
props: propTypes,
setup(props) {
useMeta({ title: `${props.searchTerm} | Openverse` })
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${props.searchTerm} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})

const results = computed(() => props.resultItems.image)

Expand Down
20 changes: 10 additions & 10 deletions src/pages/search/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import { defineComponent, useMeta } from '@nuxtjs/composition-api'

import { propTypes } from '~/pages/search/search-page.types'
import { useFeatureFlagStore } from '~/stores/feature-flag'

import VAllResultsGrid from '~/components/VAllResultsGrid/VAllResultsGrid.vue'

Expand All @@ -14,16 +15,15 @@ export default defineComponent({
components: { VAllResultsGrid },
props: propTypes,
setup(props) {
useMeta({ title: `${props.searchTerm} | Openverse` })
},
head: {
meta: [
{
hid: 'robots',
name: 'robots',
content: 'noindex',
},
],
const featureFlagStore = useFeatureFlagStore()

useMeta({
title: `${props.searchTerm} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})
},
head: {},
})
</script>
21 changes: 14 additions & 7 deletions src/pages/sources.vue
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,11 @@
</template>

<script lang="ts">
import { defineComponent } from '@nuxtjs/composition-api'
import { defineComponent, useMeta } from '@nuxtjs/composition-api'

import { supportedMediaTypes } from '~/constants/media'
import { useI18n } from '~/composables/use-i18n'
import { useFeatureFlagStore } from '~/stores/feature-flag'

import VButton from '~/components/VButton.vue'
import VLink from '~/components/VLink.vue'
Expand All @@ -98,13 +100,18 @@ export default defineComponent({
name: 'SourcePage',
components: { VButton, VContentPage, VIcon, VLink, VSourcesTable },
setup() {
return { externalLinkIcon, supportedMediaTypes }
},
const i18n = useI18n()
const featureFlagStore = useFeatureFlagStore()

head() {
return {
title: `${this.$t('sources.title')} | Openverse`,
}
useMeta({
title: `${i18n.t('sources.title')} | Openverse`,
meta: featureFlagStore.isOn('new_header')
? [{ hid: 'robots', name: 'robots', content: 'all' }]
: undefined,
})

return { externalLinkIcon, supportedMediaTypes }
},
head: {},
})
</script>
2 changes: 2 additions & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@
"src/components/VHeader/VPageLinks.vue",
"src/components/VHeader/VSearchBar/**.vue",
"src/components/VImageDetails/VRelatedImages.vue",

"src/pages/about.vue",
"src/pages/feedback.vue",
"src/pages/search-help.vue",

Expand Down