nuxt.config.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { defineNuxtConfig } from 'nuxt/config';
  2. const description = 'I am a MSCA Research Fellow at the University of Padova working on educational videogames, but I also do other things.';
  3. // https://v3.nuxtjs.org/api/configuration/nuxt.config
  4. export default defineNuxtConfig({
  5. app: {
  6. head: {
  7. htmlAttrs: {
  8. lang: 'en'
  9. },
  10. noscript: [
  11. { children: `<div class="noscript">
  12. <center>Hi.</center>
  13. First of all: I am <strong>genuinely</strong> interested to know why you disabled JavaScript
  14. so <a href="/contact">please send me an e-mail</a> — no judgement.<br />
  15. Second: yes, I hate it too, but in this day and age JavaScript is kinda ubiquitous so I caved in.
  16. I am still making an effort but this site may look a bit weird and hardly usable without JS. Sorry…
  17. <noscript><p><img src="https://merida.morpheu5.net/balmyogre?idsite=1&amp;rec=1" style="border:0;" alt="" /></p></noscript>
  18. </div>`
  19. },
  20. ],
  21. meta: [
  22. { charset: 'utf-8' },
  23. { property: 'author', content: 'Andrea Franceschini' },
  24. { property: 'description', content: description },
  25. { property: 'DC.Creator', content: 'Andrea Franceschini' },
  26. { property: 'DC.Description', content: description },
  27. { property: 'DC.Rights', content: 'CC BY-NC-SA 4.0' },
  28. { property: 'twitter:site', content: '@morpheu5' },
  29. { property: 'twitter:creator', content: '@morpheu5' },
  30. { property: 'twitter:description', content: description },
  31. { property: 'twitter:card', content: 'summary_large_image' },
  32. { property: 'twitter:image:src', content: 'https://andreafranceschini.org/images/colopic.jpg' },
  33. { property: 'twitter:domain', content: 'https://andreafranceschini.org' },
  34. { property: 'og:type', content: 'website' },
  35. { property: 'og:image', content: 'https://andreafranceschini.org/images/colopic.jpg' },
  36. { property: 'og:description', content: description },
  37. { property: 'robots', content: 'All' },
  38. ],
  39. link: [
  40. { rel: 'icon', type: 'image/svg+xml', href: '/images/favicon.svg' },
  41. { rel: 'icon', type: 'image/png', href: '/images/favicon.png' }
  42. ]
  43. },
  44. },
  45. css: [
  46. "~/assets/css/tailwind.css",
  47. '@fortawesome/fontawesome-svg-core/styles.css',
  48. ],
  49. build: {
  50. analyze: true,
  51. transpile: [
  52. 'three'
  53. ],
  54. },
  55. modules: [
  56. '@nuxtjs/tailwindcss',
  57. '@nuxtjs/google-fonts',
  58. // ['@pinia/nuxt', { autoImports: ['defineStore'] }],
  59. '@pinia/nuxt',
  60. '@pinia-plugin-persistedstate/nuxt',
  61. ],
  62. components: true,
  63. telemetry: false,
  64. ssr: true,
  65. sourcemap: process.dev || false,
  66. typescript: {
  67. shim: false,
  68. typeCheck: true,
  69. strict: true,
  70. },
  71. googleFonts: {
  72. families: {
  73. Oswald: {
  74. wght: [400, 600],
  75. },
  76. "Open Sans": {
  77. wght: [400, 700],
  78. },
  79. },
  80. subsets: 'greek',
  81. download: true,
  82. // overwriting: true,
  83. },
  84. postcss: {
  85. // map: process.dev || false,
  86. plugins: {
  87. 'postcss-import': {},
  88. 'postcss-mixins': {},
  89. 'tailwindcss/nesting': {},
  90. 'tailwindcss': {},
  91. 'autoprefixer': {},
  92. 'postcss-preset-env': {},
  93. 'cssnano': {},
  94. },
  95. },
  96. })