* Try CarbonAds * Move location * add border, fix adblock msg * Fix advertisement label look (#636) Ever since changes for Carbon ads were introduced, the label did not match the appearance of the card, leaving the bottom right corner of the card not round. With more recent changes, where border was added, that became even more apparent - now the border covers the label, which does not look good; this effect only becomes worse when zooming. This commit attempts to mitigate these issues with the following: - To fix the border issues, label's absolute position is now calculated from the card wrapper, where the border is applied. This allows label to cover the border for seamless look. That is done by changing position of the card wrapper to relative instead of doing so for the ad contents container. - The label now tries to take over the border, to do so the bottom and right relative positions have been changed to -3px. - To account for the position change, the label is now a bit more padded, to make text content of it to look more or less as before, otherwise it would shift a bit. Not sure if the padding changes are accurate, but it does look close to how it looked before. * Fix message again * Update user ads position * Remove privacy toggles (placebo and didn't do anything) * Remove other code * Link docs page Co-authored-by: Sasha Sorokin <10401817+Brawaru@users.noreply.github.com>
371 lines
8.4 KiB
JavaScript
371 lines
8.4 KiB
JavaScript
import { sortRoutes } from '@nuxt/utils'
|
|
import axios from 'axios'
|
|
|
|
export default {
|
|
/*
|
|
** Nuxt target
|
|
** See https://nuxtjs.org/api/configuration-target
|
|
*/
|
|
target: 'server',
|
|
/*
|
|
** Headers of the page
|
|
** See https://nuxtjs.org/api/configuration-head
|
|
*/
|
|
head: {
|
|
htmlAttrs: {
|
|
lang: 'en',
|
|
},
|
|
title: 'Modrinth: Download and publish Minecraft Mods',
|
|
meta: [
|
|
{
|
|
charset: 'utf-8',
|
|
},
|
|
{
|
|
name: 'viewport',
|
|
content: 'width=device-width, initial-scale=1',
|
|
},
|
|
{
|
|
hid: 'description',
|
|
name: 'description',
|
|
content:
|
|
'Download Minecraft Fabric and Forge mods on Modrinth. Discover and publish projects on Modrinth with a modern, easy to use interface and API.',
|
|
},
|
|
|
|
{
|
|
hid: 'publisher',
|
|
name: 'publisher',
|
|
content: 'Rinth, Inc.',
|
|
},
|
|
{
|
|
hid: 'apple-mobile-web-app-title',
|
|
name: 'apple-mobile-web-app-title',
|
|
content: 'Modrinth',
|
|
},
|
|
{
|
|
hid: 'theme-color',
|
|
name: 'theme-color',
|
|
content: '#30b27b',
|
|
},
|
|
{
|
|
hid: 'color-scheme',
|
|
name: 'color-scheme',
|
|
content: 'light dark',
|
|
},
|
|
|
|
{
|
|
hid: 'og:site_name',
|
|
name: 'og:site_name',
|
|
content: 'Modrinth',
|
|
},
|
|
{
|
|
hid: 'og:description',
|
|
name: 'og:description',
|
|
content: 'An open source modding platform',
|
|
},
|
|
{
|
|
hid: 'og:title',
|
|
name: 'og:title',
|
|
content: 'Modrinth',
|
|
},
|
|
{
|
|
hid: 'og:type',
|
|
name: 'og:type',
|
|
content: 'website',
|
|
},
|
|
{
|
|
hid: 'og:url',
|
|
name: 'og:url',
|
|
content: 'https://www.modrinth.com',
|
|
},
|
|
{
|
|
hid: 'og:image',
|
|
name: 'og:image',
|
|
content: 'https://cdn.modrinth.com/modrinth-new.png',
|
|
},
|
|
{
|
|
hid: 'twitter:card',
|
|
name: 'twitter:card',
|
|
content: 'summary',
|
|
},
|
|
{
|
|
hid: 'twitter:site',
|
|
name: 'twitter:site',
|
|
content: '@modrinth',
|
|
},
|
|
],
|
|
link: [
|
|
{
|
|
rel: 'icon',
|
|
type: 'image/x-icon',
|
|
href: '/favicon.ico',
|
|
media: '(prefers-color-scheme:no-preference)',
|
|
},
|
|
{
|
|
rel: 'icon',
|
|
type: 'image/x-icon',
|
|
href: '/favicon-dark.ico',
|
|
media: '(prefers-color-scheme:dark)',
|
|
},
|
|
{
|
|
rel: 'icon',
|
|
type: 'image/x-icon',
|
|
href: '/favicon.ico',
|
|
media: '(prefers-color-scheme:light)',
|
|
},
|
|
{
|
|
rel: 'stylesheet',
|
|
href: 'https://cdn-raw.modrinth.com/fonts/inter/inter.css',
|
|
},
|
|
{
|
|
rel: 'search',
|
|
type: 'application/opensearchdescription+xml',
|
|
href: '/opensearch.xml',
|
|
title: 'Modrinth mods',
|
|
},
|
|
],
|
|
},
|
|
|
|
vue: {
|
|
config: {
|
|
devtools: false,
|
|
},
|
|
},
|
|
router: {
|
|
extendRoutes(routes, resolve) {
|
|
routes.splice(
|
|
routes.findIndex((x) => x.name === 'search'),
|
|
1
|
|
)
|
|
|
|
routes.push({
|
|
path: '/search',
|
|
component: resolve(__dirname, 'pages/search.vue'),
|
|
name: 'search',
|
|
chunkName: 'pages/search',
|
|
children: [
|
|
{
|
|
path: '/mods',
|
|
component: resolve(__dirname, 'pages/search/mods.vue'),
|
|
name: 'mods',
|
|
},
|
|
{
|
|
path: '/modpacks',
|
|
component: resolve(__dirname, 'pages/search/modpacks.vue'),
|
|
name: 'modpacks',
|
|
},
|
|
{
|
|
path: '/plugins',
|
|
component: resolve(__dirname, 'pages/search/plugins.vue'),
|
|
name: 'plugins',
|
|
},
|
|
{
|
|
path: '/resourcepacks',
|
|
component: resolve(__dirname, 'pages/search/resourcepacks.vue'),
|
|
name: 'resourcepacks',
|
|
},
|
|
],
|
|
})
|
|
|
|
sortRoutes(routes)
|
|
},
|
|
middleware: ['auth', 'analytics'],
|
|
},
|
|
/*
|
|
** Global CSS
|
|
*/
|
|
css: ['~assets/styles/global.scss'],
|
|
/*
|
|
** Plugins to load before mounting the App
|
|
** https://nuxtjs.org/guide/plugins
|
|
*/
|
|
plugins: [
|
|
'~/plugins/vue-tooltip.js',
|
|
'~/plugins/vue-notification.js',
|
|
'~/plugins/xss.js',
|
|
'~/plugins/vue-syntax.js',
|
|
'~/plugins/shorthands.js',
|
|
],
|
|
/*
|
|
** Auto import components
|
|
** See https://nuxtjs.org/api/configuration-components
|
|
*/
|
|
components: true,
|
|
/*
|
|
** Nuxt.js dev-modules
|
|
*/
|
|
buildModules: [
|
|
// Doc: https://github.com/nuxt-community/eslint-module
|
|
'@nuxtjs/eslint-module',
|
|
'@nuxtjs/svg',
|
|
'@nuxtjs/color-mode',
|
|
],
|
|
/*
|
|
** Nuxt.js modules
|
|
*/
|
|
modules: [
|
|
// Doc: https://axios.nuxtjs.org/usage
|
|
'@nuxtjs/dayjs',
|
|
'@nuxtjs/axios',
|
|
'@nuxtjs/robots',
|
|
'@nuxtjs/sitemap',
|
|
'@nuxtjs/style-resources',
|
|
'@nuxtjs/markdownit',
|
|
'cookie-universal-nuxt',
|
|
],
|
|
ads: {
|
|
// Module options
|
|
ghostMode: true,
|
|
geoEdgeId: '',
|
|
},
|
|
robots: {
|
|
Sitemap: 'https://modrinth.com/sitemap.xml',
|
|
},
|
|
sitemap: {
|
|
exclude: [
|
|
'/settings/**',
|
|
'/settings',
|
|
'/notifications',
|
|
'/moderation',
|
|
'/search',
|
|
'/search/**',
|
|
'/create/**',
|
|
],
|
|
routes: ['mods', 'modpacks', 'resourcepacks', 'plugins'],
|
|
},
|
|
/*
|
|
** Axios module configuration
|
|
** See https://axios.nuxtjs.org/options
|
|
*/
|
|
axios: {
|
|
baseURL: 'https://staging-api.modrinth.com/v2/',
|
|
headers: {
|
|
common: {
|
|
Accept: 'application/json',
|
|
},
|
|
},
|
|
},
|
|
dayjs: {
|
|
locales: ['en'],
|
|
defaultLocale: 'en',
|
|
plugins: ['relativeTime'],
|
|
},
|
|
/*
|
|
** Build configuration
|
|
** See https://nuxtjs.org/api/configuration-build/
|
|
*/
|
|
build: {
|
|
transpile: ['vue-tooltip', 'vue-notification'],
|
|
html: {
|
|
minify: {
|
|
collapseWhitespace: true, // as @dario30186 mentioned
|
|
removeComments: true, // 👈 add this line
|
|
},
|
|
},
|
|
babel: {
|
|
plugins: [
|
|
[
|
|
'@babel/plugin-proposal-private-methods',
|
|
{
|
|
loose: true,
|
|
},
|
|
],
|
|
],
|
|
},
|
|
},
|
|
markdownit: {
|
|
runtime: true,
|
|
preset: 'default',
|
|
html: true,
|
|
linkify: true,
|
|
breaks: false,
|
|
},
|
|
loading: {
|
|
color: '#1bd96a',
|
|
height: '2px',
|
|
},
|
|
env: {
|
|
owner: process.env.VERCEL_GIT_REPO_OWNER || 'modrinth',
|
|
slug: process.env.VERCEL_GIT_REPO_SLUG || 'knossos',
|
|
branch: process.env.VERCEL_GIT_COMMIT_REF || 'master',
|
|
hash: process.env.VERCEL_GIT_COMMIT_SHA || 'unknown',
|
|
domain: getDomain(),
|
|
authURLBase:
|
|
process.env.BROWSER_BASE_URL || 'https://staging-api.modrinth.com/v2/',
|
|
},
|
|
publicRuntimeConfig: {
|
|
axios: {
|
|
browserBaseURL: process.env.BROWSER_BASE_URL,
|
|
},
|
|
ads: {
|
|
ethicalAds: process.env.ETHICAL_ADS,
|
|
},
|
|
analytics: {
|
|
base_url:
|
|
process.env.BROWSER_ARIADNE_URL ||
|
|
'https://staging-ariadne.modrinth.com/v1/',
|
|
},
|
|
},
|
|
privateRuntimeConfig: {
|
|
axios: {
|
|
baseURL: process.env.BASE_URL,
|
|
headers: {
|
|
common: {
|
|
'x-ratelimit-key': process.env.RATE_LIMIT_IGNORE_KEY || '',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
hooks: {
|
|
render: {
|
|
routeDone(url, result, context) {
|
|
setTimeout(() => {
|
|
axios
|
|
.post(
|
|
`${
|
|
process.env.ARIADNE_URL ||
|
|
'https://staging-ariadne.modrinth.com/v1/'
|
|
}view`,
|
|
{
|
|
url: getDomain() + url,
|
|
},
|
|
{
|
|
headers: {
|
|
'Modrinth-Admin': process.env.ARIADNE_ADMIN_KEY || 'feedbeef',
|
|
'User-Agent':
|
|
context.req.rawHeaders[
|
|
context.req.rawHeaders.findIndex(
|
|
(x) => x === 'User-Agent'
|
|
) + 1
|
|
],
|
|
},
|
|
}
|
|
)
|
|
.then(() => {})
|
|
.catch((e) => {
|
|
console.error(
|
|
'An error occurred while registering the visit: ',
|
|
e
|
|
)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
function getDomain() {
|
|
if (process.env.NODE_ENV === 'production') {
|
|
if (process.env.SITE_URL) {
|
|
return process.env.SITE_URL
|
|
} else if (process.env.HEROKU_APP_NAME) {
|
|
return `https://${process.env.HEROKU_APP_NAME}.herokuapp.com`
|
|
} else if (process.env.VERCEL_URL) {
|
|
return `https://${process.env.VERCEL_URL}`
|
|
} else {
|
|
return 'https://modrinth.com'
|
|
}
|
|
} else {
|
|
return 'http://localhost:3000'
|
|
}
|
|
}
|