404Page.vue 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <div class="w-full flex justify-center my-10">
  3. <div class="w-full md:w-1/2 flex flex-wrap justify-center text-center">
  4. <div class="mb-10">
  5. <h1 class="text-3xl font-extrabold">
  6. You found the swallow that carries coconuts!
  7. </h1>
  8. <span class="text-gray-500">But probably not the page you are looking for...</span>
  9. </div>
  10. <a
  11. href="https://www.youtube.com/watch?v=w8Rn_f75UHs"
  12. target="_blank"
  13. rel="noreferrer noopener"
  14. class="w-1/2"
  15. >
  16. <img
  17. src="../../assets/coconuts.svg"
  18. alt="Coconuts"
  19. width="300"
  20. height="500"
  21. class="mb-10"
  22. >
  23. </a>
  24. <h1 class="mx-10 md:text-2xl font-medium mb-10">
  25. {{ randomQuote }}
  26. </h1>
  27. <router-link
  28. class="action-button text-xl"
  29. to="/"
  30. >
  31. Zum Modulplaner
  32. <font-awesome-icon
  33. class="ml-2"
  34. icon="fa-solid fa-arrow-right"
  35. />
  36. </router-link>
  37. </div>
  38. </div>
  39. </template>
  40. <script setup lang="ts">
  41. // https://www.quoteambition.com/monty-python-and-the-holy-grail-quotes/
  42. import { computed } from "vue";
  43. const quotes = [
  44. `"Every time I try to talk to someone it's 'sorry this' and 'forgive me that' and 'I'm not worthy." - God`,
  45. `"Please! This is supposed to be a happy occasion. Let's not bicker and argue over who killed who."`,
  46. `"Listen, strange women lyin' in ponds distributin' swords is no system for a basis of government. Supreme executive power derives from a mandate from the masses, not from some farcical aquatic ceremony."`,
  47. `"On second thought, let's not go to Camelot. It is a silly place." - King Arthur`,
  48. `"Stop. Who would cross the Bridge of Death must answer me these questions three, ere the other side he see." - Bridgekeeper`,
  49. `"We dine well here in Camelot. We eat ham and jam and Spam a lot." - Knights of Camelot`,
  50. `"We are the knights who say—Ni!" - Knight`,
  51. `"What do you mean, an African or European swallow?" - King Arthur`,
  52. `"Oh, but you can't expect to wield supreme executive power just because some watery tart threw a sword at you." - Dennis`,
  53. `"Are you suggesting coconuts migrate?" - Soldier`,
  54. `Sir Bedevere: "Good. Now, why do witches burn?", Peasant 3: "Because they're made of—wood?", Sir Bedevere: "Good. So how do you tell whether she is made of wood?", Peasant 1: "Build a bridge out of her."`,
  55. `Swamp King: "One day all this will be yours!", Herbert: "What, the curtains?"`,
  56. `"That, my liege, is how we know the earth to be banana-shaped." - Sir Bedevere `,
  57. `"It's just a flesh wound." - The Black Knight`,
  58. `"She turned me into a newt!" - Angry Villager`,
  59. `"There are those who call me—Tim." - Tim The Enchanter`,
  60. `"What are you going to do, bleed on me?" - King Arthur`,
  61. `"The Black Knights always triumph!" - Black Knight`,
  62. `"It's not a question of where he grips it! It's a simple question of weight ratios! A five-ounce bird could not carry a one-pound coconut.” - Soldier With a Keen Interest in Birds`,
  63. `"Listen. In order to maintain air-speed velocity, a swallow needs to beat its wings 43 times every second, right?” - Soldier With a Keen Interest in Birds`,
  64. `"This new learning amazes me, Sir Bedevere. Explain to me again how sheep's bladders may be employed to prevent earthquakes.” - King Arthur`,
  65. ];
  66. const randomQuote = computed(() => {
  67. const rnd = Math.floor(Math.random() * quotes.length);
  68. return quotes[rnd];
  69. });
  70. </script>
  71. <style scoped>
  72. .action-button {
  73. @apply text-center
  74. text-gray-700
  75. bg-gray-200
  76. hover:bg-gray-300
  77. active:bg-gray-400
  78. dark:text-gray-300
  79. dark:bg-gray-600
  80. dark:hover:bg-gray-700
  81. dark:active:bg-gray-900
  82. rounded
  83. cursor-pointer
  84. py-2
  85. px-5
  86. transition-all
  87. duration-200;
  88. }
  89. </style>