create-ginko 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1685) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +15 -8
  3. package/index.mjs +115 -44
  4. package/package.json +6 -1
  5. package/presets/gastro/app/pages/index.vue +6 -4
  6. package/presets/gastro-de/app/pages/index.vue +6 -4
  7. package/template-files.mjs +377 -0
  8. package/templates/blog/.env.example +8 -0
  9. package/templates/blog/.github/screenshots/home-dark.png +0 -0
  10. package/templates/blog/.github/screenshots/home-light.png +0 -0
  11. package/templates/blog/.github/workflows/ci.yml +27 -0
  12. package/templates/blog/DESIGN.md +197 -0
  13. package/templates/blog/LICENSE +21 -0
  14. package/templates/blog/MEDIA.md +29 -0
  15. package/templates/blog/NOTES.md +16 -0
  16. package/templates/blog/README.md +274 -0
  17. package/templates/blog/app/app.config.ts +29 -0
  18. package/templates/blog/app/app.vue +7 -0
  19. package/templates/blog/app/assets/css/main.css +18 -0
  20. package/templates/blog/app/assets/css/tokens.css +400 -0
  21. package/templates/blog/app/components/InitialsAvatar.vue +18 -0
  22. package/templates/blog/app/components/ProseBody.vue +13 -0
  23. package/templates/blog/app/components/block/Cards.vue +54 -0
  24. package/templates/blog/app/components/block/Cta.vue +26 -0
  25. package/templates/blog/app/components/block/Empty.vue +26 -0
  26. package/templates/blog/app/components/block/Features.vue +24 -0
  27. package/templates/blog/app/components/block/Hero.vue +47 -0
  28. package/templates/blog/app/components/block/PageHeader.vue +21 -0
  29. package/templates/blog/app/components/block/Section.vue +31 -0
  30. package/templates/blog/app/components/blog/Byline.vue +22 -0
  31. package/templates/blog/app/components/blog/PostList.vue +33 -0
  32. package/templates/blog/app/components/blog/TagList.vue +17 -0
  33. package/templates/blog/app/components/home/LatestPost.vue +31 -0
  34. package/templates/blog/app/components/people/List.vue +41 -0
  35. package/templates/blog/app/components/site/Contact.vue +38 -0
  36. package/templates/blog/app/components/site/Footer.vue +81 -0
  37. package/templates/blog/app/components/site/FooterStatus.vue +24 -0
  38. package/templates/blog/app/components/site/Header.vue +52 -0
  39. package/templates/blog/app/components/site/LanguageSwitch.vue +34 -0
  40. package/templates/blog/app/components/site/Logo.vue +17 -0
  41. package/templates/blog/app/components/site/NavLink.vue +19 -0
  42. package/templates/blog/app/components/site/NavSheet.vue +63 -0
  43. package/templates/blog/app/components/site/Notice.vue +21 -0
  44. package/templates/blog/app/components/site/PageCta.vue +14 -0
  45. package/templates/blog/app/components/site/SkipLink.vue +15 -0
  46. package/templates/blog/app/components/site/ThemeToggle.vue +28 -0
  47. package/templates/blog/app/components/ui/button/Button.vue +30 -0
  48. package/templates/blog/app/components/ui/button/index.ts +44 -0
  49. package/templates/blog/app/components/ui/sheet/Sheet.vue +16 -0
  50. package/templates/blog/app/components/ui/sheet/SheetClose.vue +13 -0
  51. package/templates/blog/app/components/ui/sheet/SheetContent.vue +54 -0
  52. package/templates/blog/app/components/ui/sheet/SheetDescription.vue +23 -0
  53. package/templates/blog/app/components/ui/sheet/SheetOverlay.vue +22 -0
  54. package/templates/blog/app/components/ui/sheet/SheetTitle.vue +23 -0
  55. package/templates/blog/app/components/ui/sheet/SheetTrigger.vue +13 -0
  56. package/templates/blog/app/components/ui/sheet/index.ts +7 -0
  57. package/templates/blog/app/composables/useBlog.ts +103 -0
  58. package/templates/blog/app/composables/usePageSeo.ts +50 -0
  59. package/templates/blog/app/composables/useSiteAppConfig.ts +79 -0
  60. package/templates/blog/app/error.vue +35 -0
  61. package/templates/blog/app/layouts/default.vue +23 -0
  62. package/templates/blog/app/lib/utils.ts +26 -0
  63. package/templates/blog/app/pages/about/[slug].vue +48 -0
  64. package/templates/blog/app/pages/index.vue +54 -0
  65. package/templates/blog/app/pages/legal/[slug].vue +46 -0
  66. package/templates/blog/app/pages/news/[slug].vue +94 -0
  67. package/templates/blog/app/pages/news/index.vue +54 -0
  68. package/templates/blog/app/pages/news/tags/[tag].vue +41 -0
  69. package/templates/blog/app/pages/team.vue +40 -0
  70. package/templates/blog/app/routes.ts +31 -0
  71. package/templates/blog/app/utils/telHref.ts +3 -0
  72. package/templates/blog/components.json +21 -0
  73. package/templates/blog/content/home.de.md +4 -0
  74. package/templates/blog/content/home.md +4 -0
  75. package/templates/blog/content/legal/1.privacy.de.md +30 -0
  76. package/templates/blog/content/legal/1.privacy.md +30 -0
  77. package/templates/blog/content/legal/2.terms.de.md +22 -0
  78. package/templates/blog/content/legal/2.terms.md +23 -0
  79. package/templates/blog/content/legal/3.imprint.de.md +14 -0
  80. package/templates/blog/content/legal/3.imprint.md +15 -0
  81. package/templates/blog/content/notices/1.sample.de.md +3 -0
  82. package/templates/blog/content/notices/1.sample.md +4 -0
  83. package/templates/blog/content/people/1.ida-wren.de.md +4 -0
  84. package/templates/blog/content/people/1.ida-wren.md +5 -0
  85. package/templates/blog/content/people/2.tom-marsh.de.md +4 -0
  86. package/templates/blog/content/people/2.tom-marsh.md +5 -0
  87. package/templates/blog/content/posts/counting-street-trees.de.md +24 -0
  88. package/templates/blog/content/posts/counting-street-trees.md +25 -0
  89. package/templates/blog/content/posts/forest-at-the-end-of-the-line.de.md +26 -0
  90. package/templates/blog/content/posts/forest-at-the-end-of-the-line.md +28 -0
  91. package/templates/blog/content/posts/lichen-on-the-old-bridge.de.md +11 -0
  92. package/templates/blog/content/posts/lichen-on-the-old-bridge.md +14 -0
  93. package/templates/blog/content/posts/owls-in-the-old-cemetery.de.md +22 -0
  94. package/templates/blog/content/posts/owls-in-the-old-cemetery.md +23 -0
  95. package/templates/blog/content/posts/rock-pools-at-low-tide.de.md +25 -0
  96. package/templates/blog/content/posts/rock-pools-at-low-tide.md +26 -0
  97. package/templates/blog/content/posts/rock-pools.jpg +0 -0
  98. package/templates/blog/content/posts/swifts-over-the-car-park.de.md +22 -0
  99. package/templates/blog/content/posts/swifts-over-the-car-park.md +23 -0
  100. package/templates/blog/content/posts/ten-minute-notebook.de.md +36 -0
  101. package/templates/blog/content/posts/ten-minute-notebook.md +38 -0
  102. package/templates/blog/content/posts/why-we-keep-field-notes.de.md +24 -0
  103. package/templates/blog/content/posts/why-we-keep-field-notes.md +25 -0
  104. package/templates/blog/content/posts/winter-birds-by-the-bike-shed.de.md +22 -0
  105. package/templates/blog/content/posts/winter-birds-by-the-bike-shed.md +23 -0
  106. package/templates/blog/content/site.md +4 -0
  107. package/templates/blog/eslint.config.mjs +12 -0
  108. package/templates/blog/eslint.tailwind.mjs +33 -0
  109. package/templates/blog/ginko.config.ts +59 -0
  110. package/templates/blog/gitignore +7 -0
  111. package/templates/blog/i18n/blog/de.json +18 -0
  112. package/templates/blog/i18n/blog/en.json +18 -0
  113. package/templates/blog/i18n/de.json +31 -0
  114. package/templates/blog/i18n/en.json +27 -0
  115. package/templates/blog/i18n/people/de.json +6 -0
  116. package/templates/blog/i18n/people/en.json +6 -0
  117. package/templates/blog/i18n/site/de.json +39 -0
  118. package/templates/blog/i18n/site/en.json +39 -0
  119. package/templates/blog/modules/feature-messages.ts +19 -0
  120. package/templates/blog/modules/feeds/index.ts +22 -0
  121. package/templates/blog/modules/feeds/routes.ts +13 -0
  122. package/templates/blog/modules/page-paths/index.ts +26 -0
  123. package/templates/blog/modules/page-paths/paths.ts +48 -0
  124. package/templates/blog/nuxt.config.ts +27 -0
  125. package/templates/blog/package.json +57 -0
  126. package/templates/blog/pnpm-workspace.yaml +6 -0
  127. package/templates/blog/public/media/forest-path.jpg +0 -0
  128. package/templates/blog/public/media/notebook.jpg +0 -0
  129. package/templates/blog/server/middleware/news-feed.ts +37 -0
  130. package/templates/blog/server/plugins/font-preload.ts +17 -0
  131. package/templates/blog/site-url.ts +21 -0
  132. package/templates/blog/tsconfig.json +9 -0
  133. package/templates/blog.json +11 -0
  134. package/templates/company/.env.example +8 -0
  135. package/templates/company/.github/screenshots/home-dark.png +0 -0
  136. package/templates/company/.github/screenshots/home-light.png +0 -0
  137. package/templates/company/.github/workflows/ci.yml +27 -0
  138. package/templates/company/DESIGN.md +197 -0
  139. package/templates/company/LICENSE +21 -0
  140. package/templates/company/MEDIA.md +32 -0
  141. package/templates/company/NOTES.md +19 -0
  142. package/templates/company/README.md +254 -0
  143. package/templates/company/app/app.config.ts +33 -0
  144. package/templates/company/app/app.vue +7 -0
  145. package/templates/company/app/assets/css/main.css +22 -0
  146. package/templates/company/app/assets/css/tokens.css +400 -0
  147. package/templates/company/app/bricks/logos-quotes.ts +47 -0
  148. package/templates/company/app/bricks/pages.ts +38 -0
  149. package/templates/company/app/bricks/services.ts +64 -0
  150. package/templates/company/app/components/InitialsAvatar.vue +18 -0
  151. package/templates/company/app/components/ProseBody.vue +13 -0
  152. package/templates/company/app/components/ServiceLine.vue +15 -0
  153. package/templates/company/app/components/block/Cards.vue +54 -0
  154. package/templates/company/app/components/block/Cta.vue +26 -0
  155. package/templates/company/app/components/block/Empty.vue +26 -0
  156. package/templates/company/app/components/block/Features.vue +24 -0
  157. package/templates/company/app/components/block/Hero.vue +47 -0
  158. package/templates/company/app/components/block/Logos.vue +22 -0
  159. package/templates/company/app/components/block/PageHeader.vue +21 -0
  160. package/templates/company/app/components/block/Quote.vue +19 -0
  161. package/templates/company/app/components/block/Section.vue +31 -0
  162. package/templates/company/app/components/blog/Byline.vue +22 -0
  163. package/templates/company/app/components/blog/PostList.vue +33 -0
  164. package/templates/company/app/components/blog/TagList.vue +17 -0
  165. package/templates/company/app/components/downloads/FileButton.vue +21 -0
  166. package/templates/company/app/components/downloads/List.vue +37 -0
  167. package/templates/company/app/components/event/Upcoming.vue +25 -0
  168. package/templates/company/app/components/jobs/List.vue +26 -0
  169. package/templates/company/app/components/people/List.vue +41 -0
  170. package/templates/company/app/components/people/TeamContact.vue +37 -0
  171. package/templates/company/app/components/site/Contact.vue +38 -0
  172. package/templates/company/app/components/site/Footer.vue +81 -0
  173. package/templates/company/app/components/site/Header.vue +52 -0
  174. package/templates/company/app/components/site/LanguageSwitch.vue +34 -0
  175. package/templates/company/app/components/site/Logo.vue +17 -0
  176. package/templates/company/app/components/site/NavLink.vue +19 -0
  177. package/templates/company/app/components/site/NavSheet.vue +63 -0
  178. package/templates/company/app/components/site/Notice.vue +21 -0
  179. package/templates/company/app/components/site/SkipLink.vue +15 -0
  180. package/templates/company/app/components/site/ThemeToggle.vue +28 -0
  181. package/templates/company/app/components/ui/button/Button.vue +30 -0
  182. package/templates/company/app/components/ui/button/index.ts +44 -0
  183. package/templates/company/app/components/ui/sheet/Sheet.vue +16 -0
  184. package/templates/company/app/components/ui/sheet/SheetClose.vue +13 -0
  185. package/templates/company/app/components/ui/sheet/SheetContent.vue +54 -0
  186. package/templates/company/app/components/ui/sheet/SheetDescription.vue +23 -0
  187. package/templates/company/app/components/ui/sheet/SheetOverlay.vue +22 -0
  188. package/templates/company/app/components/ui/sheet/SheetTitle.vue +23 -0
  189. package/templates/company/app/components/ui/sheet/SheetTrigger.vue +13 -0
  190. package/templates/company/app/components/ui/sheet/index.ts +7 -0
  191. package/templates/company/app/composables/useBlog.ts +103 -0
  192. package/templates/company/app/composables/useDownloads.ts +54 -0
  193. package/templates/company/app/composables/useEvents.ts +182 -0
  194. package/templates/company/app/composables/useJobs.ts +108 -0
  195. package/templates/company/app/composables/usePageSeo.ts +50 -0
  196. package/templates/company/app/composables/useServiceLine.ts +10 -0
  197. package/templates/company/app/composables/useServices.ts +93 -0
  198. package/templates/company/app/composables/useSiteAppConfig.ts +79 -0
  199. package/templates/company/app/error.vue +35 -0
  200. package/templates/company/app/layouts/default.vue +23 -0
  201. package/templates/company/app/lib/utils.ts +26 -0
  202. package/templates/company/app/pages/[...slug].vue +36 -0
  203. package/templates/company/app/pages/downloads.vue +20 -0
  204. package/templates/company/app/pages/events/[slug].vue +106 -0
  205. package/templates/company/app/pages/events/index.vue +20 -0
  206. package/templates/company/app/pages/index.vue +84 -0
  207. package/templates/company/app/pages/jobs/[slug].vue +63 -0
  208. package/templates/company/app/pages/jobs/index.vue +36 -0
  209. package/templates/company/app/pages/legal/[slug].vue +46 -0
  210. package/templates/company/app/pages/news/[slug].vue +94 -0
  211. package/templates/company/app/pages/news/index.vue +54 -0
  212. package/templates/company/app/pages/news/tags/[tag].vue +41 -0
  213. package/templates/company/app/pages/services/[slug].vue +90 -0
  214. package/templates/company/app/pages/services/index.vue +18 -0
  215. package/templates/company/app/pages/team.vue +40 -0
  216. package/templates/company/app/routes.ts +33 -0
  217. package/templates/company/app/utils/telHref.ts +3 -0
  218. package/templates/company/components.json +21 -0
  219. package/templates/company/content/downloads/hk-centrifugal-pumps.de.md +4 -0
  220. package/templates/company/content/downloads/hk-centrifugal-pumps.md +7 -0
  221. package/templates/company/content/downloads/pumping-stations.de.md +4 -0
  222. package/templates/company/content/downloads/pumping-stations.md +7 -0
  223. package/templates/company/content/downloads/ts-submersible-pumps.de.md +4 -0
  224. package/templates/company/content/downloads/ts-submersible-pumps.md +7 -0
  225. package/templates/company/content/events/1.municipal-water-forum.de.md +9 -0
  226. package/templates/company/content/events/1.municipal-water-forum.md +14 -0
  227. package/templates/company/content/events/2.pump-days-north.de.md +7 -0
  228. package/templates/company/content/events/2.pump-days-north.md +12 -0
  229. package/templates/company/content/events/3.industrial-water-expo.de.md +7 -0
  230. package/templates/company/content/events/3.industrial-water-expo.md +12 -0
  231. package/templates/company/content/home.de.md +6 -0
  232. package/templates/company/content/home.md +7 -0
  233. package/templates/company/content/jobs/apprenticeship-industrial-mechanic.de.md +22 -0
  234. package/templates/company/content/jobs/apprenticeship-industrial-mechanic.md +26 -0
  235. package/templates/company/content/jobs/sales-engineer.de.md +25 -0
  236. package/templates/company/content/jobs/sales-engineer.md +29 -0
  237. package/templates/company/content/jobs/service-technician.de.md +25 -0
  238. package/templates/company/content/jobs/service-technician.md +29 -0
  239. package/templates/company/content/jobs/summer-internship-assembly.de.md +8 -0
  240. package/templates/company/content/jobs/summer-internship-assembly.md +14 -0
  241. package/templates/company/content/legal/1.privacy.de.md +18 -0
  242. package/templates/company/content/legal/1.privacy.md +20 -0
  243. package/templates/company/content/legal/2.terms.de.md +19 -0
  244. package/templates/company/content/legal/2.terms.md +21 -0
  245. package/templates/company/content/legal/3.imprint.de.md +16 -0
  246. package/templates/company/content/legal/3.imprint.md +18 -0
  247. package/templates/company/content/logos/1.public-works.md +6 -0
  248. package/templates/company/content/logos/2.water-board.md +6 -0
  249. package/templates/company/content/logos/3.brewery.md +6 -0
  250. package/templates/company/content/logos/4.treatment-works.md +6 -0
  251. package/templates/company/content/notices/1.municipal-water-forum.de.md +3 -0
  252. package/templates/company/content/notices/1.municipal-water-forum.md +4 -0
  253. package/templates/company/content/pages/1.about.de.md +19 -0
  254. package/templates/company/content/pages/1.about.md +20 -0
  255. package/templates/company/content/people/1.katrin-albers.de.md +4 -0
  256. package/templates/company/content/people/1.katrin-albers.md +7 -0
  257. package/templates/company/content/people/2.tobias-brandt.de.md +4 -0
  258. package/templates/company/content/people/2.tobias-brandt.md +7 -0
  259. package/templates/company/content/people/3.miriam-ostendorf.de.md +4 -0
  260. package/templates/company/content/people/3.miriam-ostendorf.md +7 -0
  261. package/templates/company/content/people/4.sabine-krueger.de.md +4 -0
  262. package/templates/company/content/people/4.sabine-krueger.md +7 -0
  263. package/templates/company/content/posts/apprentices-start.de.md +12 -0
  264. package/templates/company/content/posts/apprentices-start.md +14 -0
  265. package/templates/company/content/posts/saturday-service.de.md +12 -0
  266. package/templates/company/content/posts/saturday-service.md +14 -0
  267. package/templates/company/content/posts/treatment-works-pumps.de.md +20 -0
  268. package/templates/company/content/posts/treatment-works-pumps.md +23 -0
  269. package/templates/company/content/posts/ts-pumps-atex.de.md +12 -0
  270. package/templates/company/content/posts/ts-pumps-atex.md +14 -0
  271. package/templates/company/content/quotes/1.public-works.de.md +4 -0
  272. package/templates/company/content/quotes/1.public-works.md +5 -0
  273. package/templates/company/content/quotes/2.brewery.de.md +4 -0
  274. package/templates/company/content/quotes/2.brewery.md +5 -0
  275. package/templates/company/content/serviceLine.de.md +3 -0
  276. package/templates/company/content/serviceLine.md +5 -0
  277. package/templates/company/content/services/1.hk-centrifugal-pumps.de.md +31 -0
  278. package/templates/company/content/services/1.hk-centrifugal-pumps.md +35 -0
  279. package/templates/company/content/services/2.ts-submersible-pumps.de.md +26 -0
  280. package/templates/company/content/services/2.ts-submersible-pumps.md +30 -0
  281. package/templates/company/content/services/3.pumping-stations.de.md +29 -0
  282. package/templates/company/content/services/3.pumping-stations.md +33 -0
  283. package/templates/company/content/services/4.pump-check.de.md +25 -0
  284. package/templates/company/content/services/4.pump-check.md +30 -0
  285. package/templates/company/content/services/5.repair-and-overhaul.de.md +20 -0
  286. package/templates/company/content/services/5.repair-and-overhaul.md +23 -0
  287. package/templates/company/content/site.de.md +3 -0
  288. package/templates/company/content/site.md +12 -0
  289. package/templates/company/eslint.config.mjs +12 -0
  290. package/templates/company/eslint.tailwind.mjs +33 -0
  291. package/templates/company/ginko.config.ts +99 -0
  292. package/templates/company/gitignore +7 -0
  293. package/templates/company/i18n/blog/de.json +18 -0
  294. package/templates/company/i18n/blog/en.json +18 -0
  295. package/templates/company/i18n/de.json +60 -0
  296. package/templates/company/i18n/downloads/de.json +6 -0
  297. package/templates/company/i18n/downloads/en.json +6 -0
  298. package/templates/company/i18n/en.json +58 -0
  299. package/templates/company/i18n/events/de.json +20 -0
  300. package/templates/company/i18n/events/en.json +20 -0
  301. package/templates/company/i18n/jobs/de.json +35 -0
  302. package/templates/company/i18n/jobs/en.json +35 -0
  303. package/templates/company/i18n/people/de.json +6 -0
  304. package/templates/company/i18n/people/en.json +6 -0
  305. package/templates/company/i18n/services/de.json +20 -0
  306. package/templates/company/i18n/services/en.json +20 -0
  307. package/templates/company/i18n/site/de.json +39 -0
  308. package/templates/company/i18n/site/en.json +39 -0
  309. package/templates/company/modules/feature-messages.ts +19 -0
  310. package/templates/company/modules/feeds/index.ts +22 -0
  311. package/templates/company/modules/feeds/routes.ts +13 -0
  312. package/templates/company/modules/page-paths/index.ts +26 -0
  313. package/templates/company/modules/page-paths/paths.ts +48 -0
  314. package/templates/company/nuxt.config.ts +29 -0
  315. package/templates/company/package.json +64 -0
  316. package/templates/company/pnpm-workspace.yaml +6 -0
  317. package/templates/company/public/logos/customer-four.svg +6 -0
  318. package/templates/company/public/logos/customer-one.svg +5 -0
  319. package/templates/company/public/logos/customer-three.svg +5 -0
  320. package/templates/company/public/logos/customer-two.svg +4 -0
  321. package/templates/company/public/media/pipework.jpg +0 -0
  322. package/templates/company/public/media/process-pumps.jpg +0 -0
  323. package/templates/company/public/media/pump-check.jpg +0 -0
  324. package/templates/company/public/media/treatment-works.jpg +0 -0
  325. package/templates/company/public/media/works-hall.jpg +0 -0
  326. package/templates/company/public/sheets/hk-centrifugal-pumps.pdf +0 -0
  327. package/templates/company/public/sheets/pumping-stations.pdf +0 -0
  328. package/templates/company/public/sheets/ts-submersible-pumps.pdf +0 -0
  329. package/templates/company/server/middleware/news-feed.ts +37 -0
  330. package/templates/company/server/plugins/font-preload.ts +17 -0
  331. package/templates/company/site-url.ts +21 -0
  332. package/templates/company/tsconfig.json +9 -0
  333. package/templates/company.json +18 -0
  334. package/templates/docs/.env.example +9 -0
  335. package/templates/docs/.github/screenshots/home-light.png +0 -0
  336. package/templates/docs/.github/screenshots/page-dark.png +0 -0
  337. package/templates/docs/.github/workflows/ci.yml +27 -0
  338. package/templates/docs/DESIGN.md +77 -0
  339. package/templates/docs/LICENSE +21 -0
  340. package/templates/docs/MEDIA.md +14 -0
  341. package/templates/docs/NOTES.md +18 -0
  342. package/templates/docs/README.md +255 -0
  343. package/templates/docs/app/app.config.ts +26 -0
  344. package/templates/docs/app/assets/css/main.css +14 -0
  345. package/templates/docs/content/changelog/v1-6-0.de.md +13 -0
  346. package/templates/docs/content/changelog/v1-6-0.md +18 -0
  347. package/templates/docs/content/changelog/v2-0-0.de.md +14 -0
  348. package/templates/docs/content/changelog/v2-0-0.md +19 -0
  349. package/templates/docs/content/changelog/v2-1-0.de.md +9 -0
  350. package/templates/docs/content/changelog/v2-1-0.md +14 -0
  351. package/templates/docs/content/docs/1.introduction.de.md +32 -0
  352. package/templates/docs/content/docs/1.introduction.md +31 -0
  353. package/templates/docs/content/docs/10.incidents-and-checks.de.md +82 -0
  354. package/templates/docs/content/docs/10.incidents-and-checks.md +81 -0
  355. package/templates/docs/content/docs/11.error-codes.de.md +36 -0
  356. package/templates/docs/content/docs/11.error-codes.md +35 -0
  357. package/templates/docs/content/docs/2.getting-started.de.md +57 -0
  358. package/templates/docs/content/docs/2.getting-started.md +56 -0
  359. package/templates/docs/content/docs/3.authentication.de.md +55 -0
  360. package/templates/docs/content/docs/3.authentication.md +54 -0
  361. package/templates/docs/content/docs/4.pagination.de.md +45 -0
  362. package/templates/docs/content/docs/4.pagination.md +44 -0
  363. package/templates/docs/content/docs/5.errors-and-retries.de.md +69 -0
  364. package/templates/docs/content/docs/5.errors-and-retries.md +66 -0
  365. package/templates/docs/content/docs/6.webhooks.de.md +53 -0
  366. package/templates/docs/content/docs/6.webhooks.md +52 -0
  367. package/templates/docs/content/docs/7.upgrading-to-v2.md +73 -0
  368. package/templates/docs/content/docs/8.client.de.md +57 -0
  369. package/templates/docs/content/docs/8.client.md +56 -0
  370. package/templates/docs/content/docs/9.monitors.de.md +96 -0
  371. package/templates/docs/content/docs/9.monitors.md +95 -0
  372. package/templates/docs/content/home.de.md +47 -0
  373. package/templates/docs/content/home.md +54 -0
  374. package/templates/docs/eslint.config.mjs +7 -0
  375. package/templates/docs/ginko.config.ts +36 -0
  376. package/templates/docs/gitignore +7 -0
  377. package/templates/docs/i18n/de.json +5 -0
  378. package/templates/docs/i18n/en.json +5 -0
  379. package/templates/docs/nuxt.config.ts +18 -0
  380. package/templates/docs/package.json +42 -0
  381. package/templates/docs/pnpm-workspace.yaml +6 -0
  382. package/templates/docs/public/favicon.svg +1 -0
  383. package/templates/docs/public/logo-dark.svg +1 -0
  384. package/templates/docs/public/logo.svg +1 -0
  385. package/templates/docs/site-url.ts +21 -0
  386. package/templates/docs/tsconfig.json +9 -0
  387. package/templates/docs.json +7 -0
  388. package/templates/events/.env.example +8 -0
  389. package/templates/events/.github/screenshots/home-dark.png +0 -0
  390. package/templates/events/.github/screenshots/home-light.png +0 -0
  391. package/templates/events/.github/workflows/ci.yml +27 -0
  392. package/templates/events/DESIGN.md +197 -0
  393. package/templates/events/LICENSE +21 -0
  394. package/templates/events/MEDIA.md +32 -0
  395. package/templates/events/NOTES.md +13 -0
  396. package/templates/events/README.md +247 -0
  397. package/templates/events/app/app.config.ts +30 -0
  398. package/templates/events/app/app.vue +7 -0
  399. package/templates/events/app/assets/css/main.css +22 -0
  400. package/templates/events/app/assets/css/tokens.css +400 -0
  401. package/templates/events/app/bricks/logos-quotes.ts +47 -0
  402. package/templates/events/app/bricks/pages.ts +38 -0
  403. package/templates/events/app/components/InitialsAvatar.vue +18 -0
  404. package/templates/events/app/components/ProseBody.vue +13 -0
  405. package/templates/events/app/components/block/Cards.vue +54 -0
  406. package/templates/events/app/components/block/Cta.vue +26 -0
  407. package/templates/events/app/components/block/Empty.vue +26 -0
  408. package/templates/events/app/components/block/Faq.vue +19 -0
  409. package/templates/events/app/components/block/Features.vue +24 -0
  410. package/templates/events/app/components/block/Gallery.vue +81 -0
  411. package/templates/events/app/components/block/Hero.vue +47 -0
  412. package/templates/events/app/components/block/Logos.vue +22 -0
  413. package/templates/events/app/components/block/PageHeader.vue +21 -0
  414. package/templates/events/app/components/block/Quote.vue +19 -0
  415. package/templates/events/app/components/block/Section.vue +31 -0
  416. package/templates/events/app/components/event/Programme.vue +16 -0
  417. package/templates/events/app/components/event/Upcoming.vue +25 -0
  418. package/templates/events/app/components/pages/Top.vue +11 -0
  419. package/templates/events/app/components/session/NowNext.vue +54 -0
  420. package/templates/events/app/components/session/Programme.vue +40 -0
  421. package/templates/events/app/components/session/Row.vue +61 -0
  422. package/templates/events/app/components/session/Speakers.vue +28 -0
  423. package/templates/events/app/components/site/Contact.vue +38 -0
  424. package/templates/events/app/components/site/Footer.vue +81 -0
  425. package/templates/events/app/components/site/Header.vue +52 -0
  426. package/templates/events/app/components/site/LanguageSwitch.vue +34 -0
  427. package/templates/events/app/components/site/Lightbox.vue +62 -0
  428. package/templates/events/app/components/site/Logo.vue +17 -0
  429. package/templates/events/app/components/site/NavLink.vue +19 -0
  430. package/templates/events/app/components/site/NavSheet.vue +63 -0
  431. package/templates/events/app/components/site/Notice.vue +21 -0
  432. package/templates/events/app/components/site/SkipLink.vue +15 -0
  433. package/templates/events/app/components/site/ThemeToggle.vue +28 -0
  434. package/templates/events/app/components/ui/accordion/Accordion.vue +16 -0
  435. package/templates/events/app/components/ui/accordion/AccordionContent.vue +26 -0
  436. package/templates/events/app/components/ui/accordion/AccordionItem.vue +24 -0
  437. package/templates/events/app/components/ui/accordion/AccordionTrigger.vue +35 -0
  438. package/templates/events/app/components/ui/accordion/index.ts +5 -0
  439. package/templates/events/app/components/ui/button/Button.vue +30 -0
  440. package/templates/events/app/components/ui/button/index.ts +44 -0
  441. package/templates/events/app/components/ui/sheet/Sheet.vue +16 -0
  442. package/templates/events/app/components/ui/sheet/SheetClose.vue +13 -0
  443. package/templates/events/app/components/ui/sheet/SheetContent.vue +54 -0
  444. package/templates/events/app/components/ui/sheet/SheetDescription.vue +23 -0
  445. package/templates/events/app/components/ui/sheet/SheetOverlay.vue +22 -0
  446. package/templates/events/app/components/ui/sheet/SheetTitle.vue +23 -0
  447. package/templates/events/app/components/ui/sheet/SheetTrigger.vue +13 -0
  448. package/templates/events/app/components/ui/sheet/index.ts +7 -0
  449. package/templates/events/app/composables/useEvents.ts +182 -0
  450. package/templates/events/app/composables/usePageSeo.ts +50 -0
  451. package/templates/events/app/composables/useSessions.ts +111 -0
  452. package/templates/events/app/composables/useSiteAppConfig.ts +79 -0
  453. package/templates/events/app/error.vue +35 -0
  454. package/templates/events/app/layouts/default.vue +23 -0
  455. package/templates/events/app/lib/utils.ts +26 -0
  456. package/templates/events/app/pages/[...slug].vue +36 -0
  457. package/templates/events/app/pages/events/[slug].vue +106 -0
  458. package/templates/events/app/pages/events/index.vue +20 -0
  459. package/templates/events/app/pages/faq.vue +39 -0
  460. package/templates/events/app/pages/index.vue +134 -0
  461. package/templates/events/app/pages/legal/[slug].vue +46 -0
  462. package/templates/events/app/pages/programme.vue +42 -0
  463. package/templates/events/app/pages/speakers/[slug].vue +62 -0
  464. package/templates/events/app/pages/speakers/index.vue +31 -0
  465. package/templates/events/app/routes.ts +31 -0
  466. package/templates/events/app/utils/sessions.ts +64 -0
  467. package/templates/events/app/utils/telHref.ts +3 -0
  468. package/templates/events/components.json +21 -0
  469. package/templates/events/content/events/1.open-data-days.de.md +9 -0
  470. package/templates/events/content/events/1.open-data-days.md +19 -0
  471. package/templates/events/content/events/2.open-data-meetup.de.md +7 -0
  472. package/templates/events/content/events/2.open-data-meetup.md +14 -0
  473. package/templates/events/content/events/3.last-edition.de.md +5 -0
  474. package/templates/events/content/events/3.last-edition.md +12 -0
  475. package/templates/events/content/events/4.next-edition.de.md +5 -0
  476. package/templates/events/content/events/4.next-edition.md +13 -0
  477. package/templates/events/content/faq/1.getting-there.de.md +4 -0
  478. package/templates/events/content/faq/1.getting-there.md +4 -0
  479. package/templates/events/content/faq/2.accessibility.de.md +4 -0
  480. package/templates/events/content/faq/2.accessibility.md +4 -0
  481. package/templates/events/content/faq/3.tickets.de.md +4 -0
  482. package/templates/events/content/faq/3.tickets.md +4 -0
  483. package/templates/events/content/faq/4.food.de.md +4 -0
  484. package/templates/events/content/faq/4.food.md +4 -0
  485. package/templates/events/content/faq/5.code-of-conduct.de.md +4 -0
  486. package/templates/events/content/faq/5.code-of-conduct.md +4 -0
  487. package/templates/events/content/faq/6.language.de.md +4 -0
  488. package/templates/events/content/faq/6.language.md +4 -0
  489. package/templates/events/content/faq/7.recordings.de.md +4 -0
  490. package/templates/events/content/faq/7.recordings.md +4 -0
  491. package/templates/events/content/faq/8.ticket-transfer.de.md +4 -0
  492. package/templates/events/content/faq/8.ticket-transfer.md +4 -0
  493. package/templates/events/content/gallery.de.md +9 -0
  494. package/templates/events/content/gallery.md +12 -0
  495. package/templates/events/content/home.de.md +6 -0
  496. package/templates/events/content/home.md +7 -0
  497. package/templates/events/content/legal/1.privacy.de.md +19 -0
  498. package/templates/events/content/legal/1.privacy.md +20 -0
  499. package/templates/events/content/legal/2.terms.de.md +19 -0
  500. package/templates/events/content/legal/2.terms.md +20 -0
  501. package/templates/events/content/legal/3.imprint.de.md +19 -0
  502. package/templates/events/content/legal/3.imprint.md +20 -0
  503. package/templates/events/content/logos/1.kaltenegger-it.md +6 -0
  504. package/templates/events/content/logos/2.nordlicht-hosting.md +6 -0
  505. package/templates/events/content/logos/3.hallgarten-stiftung.md +6 -0
  506. package/templates/events/content/logos/4.kanalcafe.md +6 -0
  507. package/templates/events/content/notices/1.ticket-sales.de.md +3 -0
  508. package/templates/events/content/notices/1.ticket-sales.md +4 -0
  509. package/templates/events/content/pages/1.venue.de.md +36 -0
  510. package/templates/events/content/pages/1.venue.md +37 -0
  511. package/templates/events/content/pages/2.code-of-conduct.de.md +25 -0
  512. package/templates/events/content/pages/2.code-of-conduct.md +25 -0
  513. package/templates/events/content/pages/3.sponsoring.de.md +17 -0
  514. package/templates/events/content/pages/3.sponsoring.md +17 -0
  515. package/templates/events/content/people/1.lena-hofer.de.md +4 -0
  516. package/templates/events/content/people/1.lena-hofer.md +6 -0
  517. package/templates/events/content/people/2.tobias-wagner.de.md +4 -0
  518. package/templates/events/content/people/2.tobias-wagner.md +6 -0
  519. package/templates/events/content/people/3.amira-haddad.de.md +4 -0
  520. package/templates/events/content/people/3.amira-haddad.md +6 -0
  521. package/templates/events/content/people/4.jonas-leitner.de.md +4 -0
  522. package/templates/events/content/people/4.jonas-leitner.md +6 -0
  523. package/templates/events/content/people/5.sophie-brunner.de.md +4 -0
  524. package/templates/events/content/people/5.sophie-brunner.md +6 -0
  525. package/templates/events/content/people/6.david-okafor.de.md +4 -0
  526. package/templates/events/content/people/6.david-okafor.md +6 -0
  527. package/templates/events/content/people/7.katrin-moser.de.md +4 -0
  528. package/templates/events/content/people/7.katrin-moser.md +6 -0
  529. package/templates/events/content/people/8.nina-pichler.de.md +4 -0
  530. package/templates/events/content/people/8.nina-pichler.md +6 -0
  531. package/templates/events/content/people/9.felix-gruber.de.md +3 -0
  532. package/templates/events/content/people/9.felix-gruber.md +5 -0
  533. package/templates/events/content/sessions/balcony-sensors.de.md +4 -0
  534. package/templates/events/content/sessions/balcony-sensors.md +10 -0
  535. package/templates/events/content/sessions/budget-stories.de.md +4 -0
  536. package/templates/events/content/sessions/budget-stories.md +11 -0
  537. package/templates/events/content/sessions/closing.de.md +4 -0
  538. package/templates/events/content/sessions/closing.md +11 -0
  539. package/templates/events/content/sessions/doors-open.de.md +3 -0
  540. package/templates/events/content/sessions/doors-open.md +9 -0
  541. package/templates/events/content/sessions/honest-charts.de.md +4 -0
  542. package/templates/events/content/sessions/honest-charts.md +11 -0
  543. package/templates/events/content/sessions/keynote-city.de.md +4 -0
  544. package/templates/events/content/sessions/keynote-city.md +11 -0
  545. package/templates/events/content/sessions/lightning-talks.de.md +4 -0
  546. package/templates/events/content/sessions/lightning-talks.md +10 -0
  547. package/templates/events/content/sessions/lunch-1.de.md +3 -0
  548. package/templates/events/content/sessions/lunch-1.md +9 -0
  549. package/templates/events/content/sessions/lunch-2.de.md +3 -0
  550. package/templates/events/content/sessions/lunch-2.md +9 -0
  551. package/templates/events/content/sessions/next-edition-keynote.de.md +3 -0
  552. package/templates/events/content/sessions/next-edition-keynote.md +9 -0
  553. package/templates/events/content/sessions/open-data-schools.de.md +4 -0
  554. package/templates/events/content/sessions/open-data-schools.md +11 -0
  555. package/templates/events/content/sessions/open-statistics.de.md +4 -0
  556. package/templates/events/content/sessions/open-statistics.md +11 -0
  557. package/templates/events/content/sessions/panel-who-pays.de.md +4 -0
  558. package/templates/events/content/sessions/panel-who-pays.md +11 -0
  559. package/templates/events/content/sessions/privacy-line.de.md +4 -0
  560. package/templates/events/content/sessions/privacy-line.md +11 -0
  561. package/templates/events/content/sessions/readable-metadata.de.md +4 -0
  562. package/templates/events/content/sessions/readable-metadata.md +11 -0
  563. package/templates/events/content/sessions/transport-data.de.md +4 -0
  564. package/templates/events/content/sessions/transport-data.md +11 -0
  565. package/templates/events/content/sessions/welcome.de.md +3 -0
  566. package/templates/events/content/sessions/welcome.md +10 -0
  567. package/templates/events/content/sessions/workshop-charts.de.md +4 -0
  568. package/templates/events/content/sessions/workshop-charts.md +11 -0
  569. package/templates/events/content/sessions/workshop-clean-data.de.md +4 -0
  570. package/templates/events/content/sessions/workshop-clean-data.md +11 -0
  571. package/templates/events/content/sessions/workshop-portal.de.md +4 -0
  572. package/templates/events/content/sessions/workshop-portal.md +11 -0
  573. package/templates/events/content/site.md +10 -0
  574. package/templates/events/eslint.config.mjs +12 -0
  575. package/templates/events/eslint.tailwind.mjs +33 -0
  576. package/templates/events/ginko.config.ts +75 -0
  577. package/templates/events/gitignore +7 -0
  578. package/templates/events/i18n/de.json +37 -0
  579. package/templates/events/i18n/en.json +37 -0
  580. package/templates/events/i18n/events/de.json +20 -0
  581. package/templates/events/i18n/events/en.json +20 -0
  582. package/templates/events/i18n/faq/de.json +6 -0
  583. package/templates/events/i18n/faq/en.json +6 -0
  584. package/templates/events/i18n/gallery/de.json +8 -0
  585. package/templates/events/i18n/gallery/en.json +8 -0
  586. package/templates/events/i18n/sessions/de.json +33 -0
  587. package/templates/events/i18n/sessions/en.json +33 -0
  588. package/templates/events/i18n/site/de.json +39 -0
  589. package/templates/events/i18n/site/en.json +39 -0
  590. package/templates/events/modules/feature-messages.ts +19 -0
  591. package/templates/events/modules/feeds/index.ts +22 -0
  592. package/templates/events/modules/feeds/routes.ts +13 -0
  593. package/templates/events/modules/page-paths/index.ts +26 -0
  594. package/templates/events/modules/page-paths/paths.ts +48 -0
  595. package/templates/events/nuxt.config.ts +27 -0
  596. package/templates/events/package.json +61 -0
  597. package/templates/events/pnpm-workspace.yaml +6 -0
  598. package/templates/events/public/logos/hallgarten-stiftung.svg +4 -0
  599. package/templates/events/public/logos/kaltenegger-it.svg +4 -0
  600. package/templates/events/public/logos/kanalcafe.svg +4 -0
  601. package/templates/events/public/logos/nordlicht-hosting.svg +4 -0
  602. package/templates/events/public/media/coffee-break.jpg +0 -0
  603. package/templates/events/public/media/hero.jpg +0 -0
  604. package/templates/events/public/media/talk.jpg +0 -0
  605. package/templates/events/public/media/venue.jpg +0 -0
  606. package/templates/events/public/media/workshop-tables.jpg +0 -0
  607. package/templates/events/server/plugins/font-preload.ts +17 -0
  608. package/templates/events/site-url.ts +21 -0
  609. package/templates/events/tsconfig.json +9 -0
  610. package/templates/events.json +18 -0
  611. package/templates/local-business/.env.example +8 -0
  612. package/templates/local-business/.github/screenshots/home-dark.png +0 -0
  613. package/templates/local-business/.github/screenshots/home-light.png +0 -0
  614. package/templates/local-business/.github/workflows/ci.yml +27 -0
  615. package/templates/local-business/DESIGN.md +197 -0
  616. package/templates/local-business/LICENSE +21 -0
  617. package/templates/local-business/MEDIA.md +27 -0
  618. package/templates/local-business/NOTES.md +31 -0
  619. package/templates/local-business/README.md +256 -0
  620. package/templates/local-business/app/app.config.ts +32 -0
  621. package/templates/local-business/app/app.vue +7 -0
  622. package/templates/local-business/app/assets/css/main.css +18 -0
  623. package/templates/local-business/app/assets/css/tokens.css +400 -0
  624. package/templates/local-business/app/bricks/pages.ts +38 -0
  625. package/templates/local-business/app/bricks/services.ts +64 -0
  626. package/templates/local-business/app/components/InitialsAvatar.vue +18 -0
  627. package/templates/local-business/app/components/ProseBody.vue +13 -0
  628. package/templates/local-business/app/components/block/Cards.vue +54 -0
  629. package/templates/local-business/app/components/block/Cta.vue +26 -0
  630. package/templates/local-business/app/components/block/Empty.vue +26 -0
  631. package/templates/local-business/app/components/block/Faq.vue +19 -0
  632. package/templates/local-business/app/components/block/Features.vue +24 -0
  633. package/templates/local-business/app/components/block/Gallery.vue +81 -0
  634. package/templates/local-business/app/components/block/Hero.vue +47 -0
  635. package/templates/local-business/app/components/block/PageHeader.vue +21 -0
  636. package/templates/local-business/app/components/block/Section.vue +31 -0
  637. package/templates/local-business/app/components/hours/Table.vue +119 -0
  638. package/templates/local-business/app/components/hours/Today.vue +55 -0
  639. package/templates/local-business/app/components/people/List.vue +41 -0
  640. package/templates/local-business/app/components/services/Actions.vue +18 -0
  641. package/templates/local-business/app/components/site/Contact.vue +38 -0
  642. package/templates/local-business/app/components/site/Footer.vue +81 -0
  643. package/templates/local-business/app/components/site/FooterStatus.vue +9 -0
  644. package/templates/local-business/app/components/site/Header.vue +52 -0
  645. package/templates/local-business/app/components/site/LanguageSwitch.vue +34 -0
  646. package/templates/local-business/app/components/site/Lightbox.vue +62 -0
  647. package/templates/local-business/app/components/site/Logo.vue +17 -0
  648. package/templates/local-business/app/components/site/NavLink.vue +19 -0
  649. package/templates/local-business/app/components/site/NavSheet.vue +63 -0
  650. package/templates/local-business/app/components/site/Notice.vue +21 -0
  651. package/templates/local-business/app/components/site/SkipLink.vue +15 -0
  652. package/templates/local-business/app/components/site/ThemeToggle.vue +28 -0
  653. package/templates/local-business/app/components/ui/accordion/Accordion.vue +16 -0
  654. package/templates/local-business/app/components/ui/accordion/AccordionContent.vue +26 -0
  655. package/templates/local-business/app/components/ui/accordion/AccordionItem.vue +24 -0
  656. package/templates/local-business/app/components/ui/accordion/AccordionTrigger.vue +35 -0
  657. package/templates/local-business/app/components/ui/accordion/index.ts +5 -0
  658. package/templates/local-business/app/components/ui/button/Button.vue +30 -0
  659. package/templates/local-business/app/components/ui/button/index.ts +44 -0
  660. package/templates/local-business/app/components/ui/sheet/Sheet.vue +16 -0
  661. package/templates/local-business/app/components/ui/sheet/SheetClose.vue +13 -0
  662. package/templates/local-business/app/components/ui/sheet/SheetContent.vue +54 -0
  663. package/templates/local-business/app/components/ui/sheet/SheetDescription.vue +23 -0
  664. package/templates/local-business/app/components/ui/sheet/SheetOverlay.vue +22 -0
  665. package/templates/local-business/app/components/ui/sheet/SheetTitle.vue +23 -0
  666. package/templates/local-business/app/components/ui/sheet/SheetTrigger.vue +13 -0
  667. package/templates/local-business/app/components/ui/sheet/index.ts +7 -0
  668. package/templates/local-business/app/components/visit/Book.vue +46 -0
  669. package/templates/local-business/app/composables/useHours.ts +81 -0
  670. package/templates/local-business/app/composables/usePageSeo.ts +50 -0
  671. package/templates/local-business/app/composables/useServices.ts +93 -0
  672. package/templates/local-business/app/composables/useSiteAppConfig.ts +79 -0
  673. package/templates/local-business/app/composables/useVisit.ts +19 -0
  674. package/templates/local-business/app/error.vue +35 -0
  675. package/templates/local-business/app/layouts/default.vue +23 -0
  676. package/templates/local-business/app/lib/utils.ts +26 -0
  677. package/templates/local-business/app/pages/[...slug].vue +36 -0
  678. package/templates/local-business/app/pages/contact.vue +62 -0
  679. package/templates/local-business/app/pages/faq.vue +39 -0
  680. package/templates/local-business/app/pages/index.vue +114 -0
  681. package/templates/local-business/app/pages/legal/[slug].vue +46 -0
  682. package/templates/local-business/app/pages/services/[slug].vue +90 -0
  683. package/templates/local-business/app/pages/services/index.vue +18 -0
  684. package/templates/local-business/app/pages/team.vue +40 -0
  685. package/templates/local-business/app/routes.ts +31 -0
  686. package/templates/local-business/app/utils/hours.ts +58 -0
  687. package/templates/local-business/app/utils/telHref.ts +3 -0
  688. package/templates/local-business/components.json +21 -0
  689. package/templates/local-business/content/faq/1.prescription.de.md +4 -0
  690. package/templates/local-business/content/faq/1.prescription.md +4 -0
  691. package/templates/local-business/content/faq/2.insurance.de.md +4 -0
  692. package/templates/local-business/content/faq/2.insurance.md +4 -0
  693. package/templates/local-business/content/faq/3.bring.de.md +4 -0
  694. package/templates/local-business/content/faq/3.bring.md +4 -0
  695. package/templates/local-business/content/faq/4.cancel.de.md +4 -0
  696. package/templates/local-business/content/faq/4.cancel.md +4 -0
  697. package/templates/local-business/content/faq/5.sessions.de.md +4 -0
  698. package/templates/local-business/content/faq/5.sessions.md +4 -0
  699. package/templates/local-business/content/faq/6.payment.de.md +4 -0
  700. package/templates/local-business/content/faq/6.payment.md +4 -0
  701. package/templates/local-business/content/gallery.de.md +7 -0
  702. package/templates/local-business/content/gallery.md +9 -0
  703. package/templates/local-business/content/home.de.md +5 -0
  704. package/templates/local-business/content/home.md +7 -0
  705. package/templates/local-business/content/hourPlans/1.summer-hours.de.md +3 -0
  706. package/templates/local-business/content/hourPlans/1.summer-hours.md +31 -0
  707. package/templates/local-business/content/hours.de.md +5 -0
  708. package/templates/local-business/content/hours.md +40 -0
  709. package/templates/local-business/content/legal/1.privacy.de.md +39 -0
  710. package/templates/local-business/content/legal/1.privacy.md +38 -0
  711. package/templates/local-business/content/legal/2.terms.de.md +22 -0
  712. package/templates/local-business/content/legal/2.terms.md +22 -0
  713. package/templates/local-business/content/legal/3.imprint.de.md +17 -0
  714. package/templates/local-business/content/legal/3.imprint.md +17 -0
  715. package/templates/local-business/content/notices/1.courtyard-works.de.md +3 -0
  716. package/templates/local-business/content/notices/1.courtyard-works.md +4 -0
  717. package/templates/local-business/content/pages/1.about.de.md +23 -0
  718. package/templates/local-business/content/pages/1.about.md +24 -0
  719. package/templates/local-business/content/people/1.anna-hofer.de.md +4 -0
  720. package/templates/local-business/content/people/1.anna-hofer.md +5 -0
  721. package/templates/local-business/content/people/2.lukas-brandstaetter.de.md +4 -0
  722. package/templates/local-business/content/people/2.lukas-brandstaetter.md +5 -0
  723. package/templates/local-business/content/people/3.mira-kovac.de.md +4 -0
  724. package/templates/local-business/content/people/3.mira-kovac.md +5 -0
  725. package/templates/local-business/content/people/4.elisabeth-gruber.de.md +4 -0
  726. package/templates/local-business/content/people/4.elisabeth-gruber.md +5 -0
  727. package/templates/local-business/content/services/1.physiotherapy.de.md +22 -0
  728. package/templates/local-business/content/services/1.physiotherapy.md +25 -0
  729. package/templates/local-business/content/services/2.manual-therapy.de.md +11 -0
  730. package/templates/local-business/content/services/2.manual-therapy.md +15 -0
  731. package/templates/local-business/content/services/3.sports-physiotherapy.de.md +18 -0
  732. package/templates/local-business/content/services/3.sports-physiotherapy.md +22 -0
  733. package/templates/local-business/content/services/4.lymphatic-drainage.de.md +18 -0
  734. package/templates/local-business/content/services/4.lymphatic-drainage.md +22 -0
  735. package/templates/local-business/content/services/5.massage.de.md +11 -0
  736. package/templates/local-business/content/services/5.massage.md +14 -0
  737. package/templates/local-business/content/services/6.home-visits.de.md +11 -0
  738. package/templates/local-business/content/services/6.home-visits.md +12 -0
  739. package/templates/local-business/content/site.de.md +3 -0
  740. package/templates/local-business/content/site.md +11 -0
  741. package/templates/local-business/content/visit.de.md +6 -0
  742. package/templates/local-business/content/visit.md +7 -0
  743. package/templates/local-business/eslint.config.mjs +12 -0
  744. package/templates/local-business/eslint.tailwind.mjs +33 -0
  745. package/templates/local-business/ginko.config.ts +98 -0
  746. package/templates/local-business/gitignore +7 -0
  747. package/templates/local-business/i18n/de.json +49 -0
  748. package/templates/local-business/i18n/en.json +49 -0
  749. package/templates/local-business/i18n/faq/de.json +6 -0
  750. package/templates/local-business/i18n/faq/en.json +6 -0
  751. package/templates/local-business/i18n/gallery/de.json +8 -0
  752. package/templates/local-business/i18n/gallery/en.json +8 -0
  753. package/templates/local-business/i18n/hours/de.json +27 -0
  754. package/templates/local-business/i18n/hours/en.json +27 -0
  755. package/templates/local-business/i18n/people/de.json +6 -0
  756. package/templates/local-business/i18n/people/en.json +6 -0
  757. package/templates/local-business/i18n/services/de.json +20 -0
  758. package/templates/local-business/i18n/services/en.json +20 -0
  759. package/templates/local-business/i18n/site/de.json +39 -0
  760. package/templates/local-business/i18n/site/en.json +39 -0
  761. package/templates/local-business/modules/feature-messages.ts +19 -0
  762. package/templates/local-business/modules/feeds/index.ts +22 -0
  763. package/templates/local-business/modules/feeds/routes.ts +13 -0
  764. package/templates/local-business/modules/page-paths/index.ts +26 -0
  765. package/templates/local-business/modules/page-paths/paths.ts +48 -0
  766. package/templates/local-business/nuxt.config.ts +29 -0
  767. package/templates/local-business/package.json +62 -0
  768. package/templates/local-business/pnpm-workspace.yaml +6 -0
  769. package/templates/local-business/public/media/massage.jpg +0 -0
  770. package/templates/local-business/public/media/treatment-room.jpg +0 -0
  771. package/templates/local-business/server/plugins/font-preload.ts +17 -0
  772. package/templates/local-business/site-url.ts +21 -0
  773. package/templates/local-business/tsconfig.json +9 -0
  774. package/templates/local-business.json +11 -0
  775. package/templates/nonprofit/.env.example +8 -0
  776. package/templates/nonprofit/.github/screenshots/home-dark.png +0 -0
  777. package/templates/nonprofit/.github/screenshots/home-light.png +0 -0
  778. package/templates/nonprofit/.github/workflows/ci.yml +27 -0
  779. package/templates/nonprofit/DESIGN.md +197 -0
  780. package/templates/nonprofit/LICENSE +21 -0
  781. package/templates/nonprofit/MEDIA.md +34 -0
  782. package/templates/nonprofit/NOTES.md +18 -0
  783. package/templates/nonprofit/README.md +227 -0
  784. package/templates/nonprofit/app/app.config.ts +34 -0
  785. package/templates/nonprofit/app/app.vue +7 -0
  786. package/templates/nonprofit/app/assets/css/main.css +35 -0
  787. package/templates/nonprofit/app/assets/css/tokens.css +400 -0
  788. package/templates/nonprofit/app/bricks/logos-quotes.ts +47 -0
  789. package/templates/nonprofit/app/bricks/pages.ts +38 -0
  790. package/templates/nonprofit/app/bricks/projects.ts +114 -0
  791. package/templates/nonprofit/app/components/InitialsAvatar.vue +18 -0
  792. package/templates/nonprofit/app/components/ProseBody.vue +13 -0
  793. package/templates/nonprofit/app/components/block/Cards.vue +54 -0
  794. package/templates/nonprofit/app/components/block/Cta.vue +26 -0
  795. package/templates/nonprofit/app/components/block/Empty.vue +26 -0
  796. package/templates/nonprofit/app/components/block/Features.vue +24 -0
  797. package/templates/nonprofit/app/components/block/Hero.vue +47 -0
  798. package/templates/nonprofit/app/components/block/Logos.vue +22 -0
  799. package/templates/nonprofit/app/components/block/PageHeader.vue +21 -0
  800. package/templates/nonprofit/app/components/block/Quote.vue +19 -0
  801. package/templates/nonprofit/app/components/block/Section.vue +31 -0
  802. package/templates/nonprofit/app/components/blog/Byline.vue +22 -0
  803. package/templates/nonprofit/app/components/blog/PostList.vue +33 -0
  804. package/templates/nonprofit/app/components/blog/TagList.vue +17 -0
  805. package/templates/nonprofit/app/components/downloads/FileButton.vue +21 -0
  806. package/templates/nonprofit/app/components/downloads/List.vue +37 -0
  807. package/templates/nonprofit/app/components/event/Next.vue +24 -0
  808. package/templates/nonprofit/app/components/event/Upcoming.vue +25 -0
  809. package/templates/nonprofit/app/components/pages/Top.vue +19 -0
  810. package/templates/nonprofit/app/components/people/List.vue +41 -0
  811. package/templates/nonprofit/app/components/people/TeamContact.vue +7 -0
  812. package/templates/nonprofit/app/components/site/Contact.vue +38 -0
  813. package/templates/nonprofit/app/components/site/Footer.vue +81 -0
  814. package/templates/nonprofit/app/components/site/Header.vue +52 -0
  815. package/templates/nonprofit/app/components/site/LanguageSwitch.vue +34 -0
  816. package/templates/nonprofit/app/components/site/Logo.vue +17 -0
  817. package/templates/nonprofit/app/components/site/NavLink.vue +19 -0
  818. package/templates/nonprofit/app/components/site/NavSheet.vue +63 -0
  819. package/templates/nonprofit/app/components/site/Notice.vue +21 -0
  820. package/templates/nonprofit/app/components/site/SkipLink.vue +15 -0
  821. package/templates/nonprofit/app/components/site/ThemeToggle.vue +28 -0
  822. package/templates/nonprofit/app/components/ui/button/Button.vue +30 -0
  823. package/templates/nonprofit/app/components/ui/button/index.ts +44 -0
  824. package/templates/nonprofit/app/components/ui/sheet/Sheet.vue +16 -0
  825. package/templates/nonprofit/app/components/ui/sheet/SheetClose.vue +13 -0
  826. package/templates/nonprofit/app/components/ui/sheet/SheetContent.vue +54 -0
  827. package/templates/nonprofit/app/components/ui/sheet/SheetDescription.vue +23 -0
  828. package/templates/nonprofit/app/components/ui/sheet/SheetOverlay.vue +22 -0
  829. package/templates/nonprofit/app/components/ui/sheet/SheetTitle.vue +23 -0
  830. package/templates/nonprofit/app/components/ui/sheet/SheetTrigger.vue +13 -0
  831. package/templates/nonprofit/app/components/ui/sheet/index.ts +7 -0
  832. package/templates/nonprofit/app/composables/useBlog.ts +103 -0
  833. package/templates/nonprofit/app/composables/useDownloads.ts +54 -0
  834. package/templates/nonprofit/app/composables/useEvents.ts +182 -0
  835. package/templates/nonprofit/app/composables/usePageSeo.ts +50 -0
  836. package/templates/nonprofit/app/composables/useProjects.ts +31 -0
  837. package/templates/nonprofit/app/composables/useSiteAppConfig.ts +79 -0
  838. package/templates/nonprofit/app/error.vue +35 -0
  839. package/templates/nonprofit/app/layouts/default.vue +23 -0
  840. package/templates/nonprofit/app/lib/utils.ts +26 -0
  841. package/templates/nonprofit/app/pages/[...slug].vue +36 -0
  842. package/templates/nonprofit/app/pages/downloads.vue +20 -0
  843. package/templates/nonprofit/app/pages/events/[slug].vue +106 -0
  844. package/templates/nonprofit/app/pages/events/index.vue +20 -0
  845. package/templates/nonprofit/app/pages/index.vue +64 -0
  846. package/templates/nonprofit/app/pages/legal/[slug].vue +46 -0
  847. package/templates/nonprofit/app/pages/news/[slug].vue +94 -0
  848. package/templates/nonprofit/app/pages/news/index.vue +54 -0
  849. package/templates/nonprofit/app/pages/news/tags/[tag].vue +41 -0
  850. package/templates/nonprofit/app/pages/projects/[slug].vue +49 -0
  851. package/templates/nonprofit/app/pages/projects/index.vue +24 -0
  852. package/templates/nonprofit/app/pages/team.vue +40 -0
  853. package/templates/nonprofit/app/routes.ts +32 -0
  854. package/templates/nonprofit/app/utils/telHref.ts +3 -0
  855. package/templates/nonprofit/components.json +21 -0
  856. package/templates/nonprofit/content/downloads/annual-report.ar.md +4 -0
  857. package/templates/nonprofit/content/downloads/annual-report.de.md +4 -0
  858. package/templates/nonprofit/content/downloads/annual-report.fr.md +4 -0
  859. package/templates/nonprofit/content/downloads/annual-report.md +7 -0
  860. package/templates/nonprofit/content/events/1.winter-clean-up.ar.md +9 -0
  861. package/templates/nonprofit/content/events/1.winter-clean-up.de.md +9 -0
  862. package/templates/nonprofit/content/events/1.winter-clean-up.fr.md +9 -0
  863. package/templates/nonprofit/content/events/1.winter-clean-up.md +14 -0
  864. package/templates/nonprofit/content/events/2.members-meeting.ar.md +9 -0
  865. package/templates/nonprofit/content/events/2.members-meeting.de.md +9 -0
  866. package/templates/nonprofit/content/events/2.members-meeting.fr.md +9 -0
  867. package/templates/nonprofit/content/events/2.members-meeting.md +15 -0
  868. package/templates/nonprofit/content/events/3.spring-clean-up.ar.md +9 -0
  869. package/templates/nonprofit/content/events/3.spring-clean-up.de.md +9 -0
  870. package/templates/nonprofit/content/events/3.spring-clean-up.fr.md +9 -0
  871. package/templates/nonprofit/content/events/3.spring-clean-up.md +14 -0
  872. package/templates/nonprofit/content/home.ar.md +6 -0
  873. package/templates/nonprofit/content/home.de.md +6 -0
  874. package/templates/nonprofit/content/home.fr.md +6 -0
  875. package/templates/nonprofit/content/home.md +7 -0
  876. package/templates/nonprofit/content/legal/1.privacy.ar.md +18 -0
  877. package/templates/nonprofit/content/legal/1.privacy.de.md +18 -0
  878. package/templates/nonprofit/content/legal/1.privacy.fr.md +18 -0
  879. package/templates/nonprofit/content/legal/1.privacy.md +20 -0
  880. package/templates/nonprofit/content/legal/2.terms.ar.md +17 -0
  881. package/templates/nonprofit/content/legal/2.terms.de.md +17 -0
  882. package/templates/nonprofit/content/legal/2.terms.fr.md +17 -0
  883. package/templates/nonprofit/content/legal/2.terms.md +19 -0
  884. package/templates/nonprofit/content/legal/3.imprint.ar.md +16 -0
  885. package/templates/nonprofit/content/legal/3.imprint.de.md +16 -0
  886. package/templates/nonprofit/content/legal/3.imprint.fr.md +16 -0
  887. package/templates/nonprofit/content/legal/3.imprint.md +18 -0
  888. package/templates/nonprofit/content/logos/1.partner-one.md +6 -0
  889. package/templates/nonprofit/content/logos/2.partner-two.md +6 -0
  890. package/templates/nonprofit/content/logos/3.partner-three.md +6 -0
  891. package/templates/nonprofit/content/notices/1.annual-report-online.ar.md +3 -0
  892. package/templates/nonprofit/content/notices/1.annual-report-online.de.md +3 -0
  893. package/templates/nonprofit/content/notices/1.annual-report-online.fr.md +3 -0
  894. package/templates/nonprofit/content/notices/1.annual-report-online.md +4 -0
  895. package/templates/nonprofit/content/pages/1.about.ar.md +21 -0
  896. package/templates/nonprofit/content/pages/1.about.de.md +21 -0
  897. package/templates/nonprofit/content/pages/1.about.fr.md +21 -0
  898. package/templates/nonprofit/content/pages/1.about.md +21 -0
  899. package/templates/nonprofit/content/pages/2.get-involved.ar.md +19 -0
  900. package/templates/nonprofit/content/pages/2.get-involved.de.md +19 -0
  901. package/templates/nonprofit/content/pages/2.get-involved.fr.md +19 -0
  902. package/templates/nonprofit/content/pages/2.get-involved.md +20 -0
  903. package/templates/nonprofit/content/pages/3.donate.ar.md +26 -0
  904. package/templates/nonprofit/content/pages/3.donate.de.md +26 -0
  905. package/templates/nonprofit/content/pages/3.donate.fr.md +26 -0
  906. package/templates/nonprofit/content/pages/3.donate.md +27 -0
  907. package/templates/nonprofit/content/people/1.jana-becker.ar.md +4 -0
  908. package/templates/nonprofit/content/people/1.jana-becker.de.md +4 -0
  909. package/templates/nonprofit/content/people/1.jana-becker.fr.md +4 -0
  910. package/templates/nonprofit/content/people/1.jana-becker.md +5 -0
  911. package/templates/nonprofit/content/people/2.yusuf-demir.ar.md +4 -0
  912. package/templates/nonprofit/content/people/2.yusuf-demir.de.md +4 -0
  913. package/templates/nonprofit/content/people/2.yusuf-demir.fr.md +4 -0
  914. package/templates/nonprofit/content/people/2.yusuf-demir.md +5 -0
  915. package/templates/nonprofit/content/people/3.claire-martin.ar.md +4 -0
  916. package/templates/nonprofit/content/people/3.claire-martin.de.md +4 -0
  917. package/templates/nonprofit/content/people/3.claire-martin.fr.md +4 -0
  918. package/templates/nonprofit/content/people/3.claire-martin.md +5 -0
  919. package/templates/nonprofit/content/people/4.lukas-hoffmann.ar.md +4 -0
  920. package/templates/nonprofit/content/people/4.lukas-hoffmann.de.md +4 -0
  921. package/templates/nonprofit/content/people/4.lukas-hoffmann.fr.md +4 -0
  922. package/templates/nonprofit/content/people/4.lukas-hoffmann.md +6 -0
  923. package/templates/nonprofit/content/posts/a-home-for-our-tools.ar.md +10 -0
  924. package/templates/nonprofit/content/posts/a-home-for-our-tools.de.md +10 -0
  925. package/templates/nonprofit/content/posts/a-home-for-our-tools.fr.md +10 -0
  926. package/templates/nonprofit/content/posts/a-home-for-our-tools.md +12 -0
  927. package/templates/nonprofit/content/posts/autumn-clean-up.ar.md +20 -0
  928. package/templates/nonprofit/content/posts/autumn-clean-up.de.md +20 -0
  929. package/templates/nonprofit/content/posts/autumn-clean-up.fr.md +20 -0
  930. package/templates/nonprofit/content/posts/autumn-clean-up.md +23 -0
  931. package/templates/nonprofit/content/posts/hedge-planting-plan.md +12 -0
  932. package/templates/nonprofit/content/posts/water-tests-with-schools.ar.md +16 -0
  933. package/templates/nonprofit/content/posts/water-tests-with-schools.de.md +16 -0
  934. package/templates/nonprofit/content/posts/water-tests-with-schools.fr.md +16 -0
  935. package/templates/nonprofit/content/posts/water-tests-with-schools.md +18 -0
  936. package/templates/nonprofit/content/posts/winter-clean-up.ar.md +14 -0
  937. package/templates/nonprofit/content/posts/winter-clean-up.de.md +14 -0
  938. package/templates/nonprofit/content/posts/winter-clean-up.fr.md +14 -0
  939. package/templates/nonprofit/content/posts/winter-clean-up.md +16 -0
  940. package/templates/nonprofit/content/projects/1.clean-banks.ar.md +9 -0
  941. package/templates/nonprofit/content/projects/1.clean-banks.de.md +9 -0
  942. package/templates/nonprofit/content/projects/1.clean-banks.fr.md +9 -0
  943. package/templates/nonprofit/content/projects/1.clean-banks.md +10 -0
  944. package/templates/nonprofit/content/projects/2.water-tests.ar.md +9 -0
  945. package/templates/nonprofit/content/projects/2.water-tests.de.md +9 -0
  946. package/templates/nonprofit/content/projects/2.water-tests.fr.md +9 -0
  947. package/templates/nonprofit/content/projects/2.water-tests.md +10 -0
  948. package/templates/nonprofit/content/projects/3.hedge-campaign.ar.md +10 -0
  949. package/templates/nonprofit/content/projects/3.hedge-campaign.de.md +10 -0
  950. package/templates/nonprofit/content/projects/3.hedge-campaign.fr.md +10 -0
  951. package/templates/nonprofit/content/projects/3.hedge-campaign.md +13 -0
  952. package/templates/nonprofit/content/projects/4.gloves-appeal.md +9 -0
  953. package/templates/nonprofit/content/quotes/1.volunteer.ar.md +4 -0
  954. package/templates/nonprofit/content/quotes/1.volunteer.de.md +4 -0
  955. package/templates/nonprofit/content/quotes/1.volunteer.fr.md +4 -0
  956. package/templates/nonprofit/content/quotes/1.volunteer.md +5 -0
  957. package/templates/nonprofit/content/quotes/2.teacher.ar.md +4 -0
  958. package/templates/nonprofit/content/quotes/2.teacher.de.md +4 -0
  959. package/templates/nonprofit/content/quotes/2.teacher.fr.md +4 -0
  960. package/templates/nonprofit/content/quotes/2.teacher.md +5 -0
  961. package/templates/nonprofit/content/site.ar.md +3 -0
  962. package/templates/nonprofit/content/site.de.md +3 -0
  963. package/templates/nonprofit/content/site.fr.md +3 -0
  964. package/templates/nonprofit/content/site.md +11 -0
  965. package/templates/nonprofit/eslint.config.mjs +12 -0
  966. package/templates/nonprofit/eslint.tailwind.mjs +33 -0
  967. package/templates/nonprofit/ginko.config.ts +77 -0
  968. package/templates/nonprofit/gitignore +7 -0
  969. package/templates/nonprofit/i18n/ar.json +37 -0
  970. package/templates/nonprofit/i18n/blog/ar.json +18 -0
  971. package/templates/nonprofit/i18n/blog/de.json +18 -0
  972. package/templates/nonprofit/i18n/blog/en.json +18 -0
  973. package/templates/nonprofit/i18n/blog/fr.json +18 -0
  974. package/templates/nonprofit/i18n/de.json +37 -0
  975. package/templates/nonprofit/i18n/downloads/ar.json +6 -0
  976. package/templates/nonprofit/i18n/downloads/de.json +6 -0
  977. package/templates/nonprofit/i18n/downloads/en.json +6 -0
  978. package/templates/nonprofit/i18n/downloads/fr.json +6 -0
  979. package/templates/nonprofit/i18n/en.json +37 -0
  980. package/templates/nonprofit/i18n/events/ar.json +20 -0
  981. package/templates/nonprofit/i18n/events/de.json +20 -0
  982. package/templates/nonprofit/i18n/events/en.json +20 -0
  983. package/templates/nonprofit/i18n/events/fr.json +20 -0
  984. package/templates/nonprofit/i18n/fr.json +37 -0
  985. package/templates/nonprofit/i18n/people/ar.json +6 -0
  986. package/templates/nonprofit/i18n/people/de.json +6 -0
  987. package/templates/nonprofit/i18n/people/en.json +6 -0
  988. package/templates/nonprofit/i18n/people/fr.json +6 -0
  989. package/templates/nonprofit/i18n/projects/ar.json +7 -0
  990. package/templates/nonprofit/i18n/projects/de.json +7 -0
  991. package/templates/nonprofit/i18n/projects/en.json +7 -0
  992. package/templates/nonprofit/i18n/projects/fr.json +7 -0
  993. package/templates/nonprofit/i18n/site/ar.json +39 -0
  994. package/templates/nonprofit/i18n/site/de.json +39 -0
  995. package/templates/nonprofit/i18n/site/en.json +39 -0
  996. package/templates/nonprofit/i18n/site/fr.json +39 -0
  997. package/templates/nonprofit/modules/feature-messages.ts +19 -0
  998. package/templates/nonprofit/modules/feeds/index.ts +22 -0
  999. package/templates/nonprofit/modules/feeds/routes.ts +13 -0
  1000. package/templates/nonprofit/modules/page-paths/index.ts +26 -0
  1001. package/templates/nonprofit/modules/page-paths/paths.ts +48 -0
  1002. package/templates/nonprofit/nuxt.config.ts +36 -0
  1003. package/templates/nonprofit/package.json +63 -0
  1004. package/templates/nonprofit/pnpm-workspace.yaml +6 -0
  1005. package/templates/nonprofit/public/files/annual-report-2025.pdf +0 -0
  1006. package/templates/nonprofit/public/logos/partner-one.svg +5 -0
  1007. package/templates/nonprofit/public/logos/partner-three.svg +5 -0
  1008. package/templates/nonprofit/public/logos/partner-two.svg +4 -0
  1009. package/templates/nonprofit/public/media/bank-clean-up.jpg +0 -0
  1010. package/templates/nonprofit/public/media/forest-stream.jpg +0 -0
  1011. package/templates/nonprofit/public/media/green-bank.jpg +0 -0
  1012. package/templates/nonprofit/public/media/planting.jpg +0 -0
  1013. package/templates/nonprofit/public/media/river-town.jpg +0 -0
  1014. package/templates/nonprofit/public/media/workshop.jpg +0 -0
  1015. package/templates/nonprofit/server/middleware/news-feed.ts +37 -0
  1016. package/templates/nonprofit/server/plugins/font-preload.ts +17 -0
  1017. package/templates/nonprofit/site-url.ts +21 -0
  1018. package/templates/nonprofit/tsconfig.json +9 -0
  1019. package/templates/nonprofit.json +20 -0
  1020. package/templates/portfolio/.env.example +8 -0
  1021. package/templates/portfolio/.github/screenshots/home-dark.png +0 -0
  1022. package/templates/portfolio/.github/screenshots/home-light.png +0 -0
  1023. package/templates/portfolio/.github/workflows/ci.yml +27 -0
  1024. package/templates/portfolio/DESIGN.md +197 -0
  1025. package/templates/portfolio/LICENSE +21 -0
  1026. package/templates/portfolio/MEDIA.md +35 -0
  1027. package/templates/portfolio/NOTES.md +18 -0
  1028. package/templates/portfolio/README.md +267 -0
  1029. package/templates/portfolio/app/app.config.ts +27 -0
  1030. package/templates/portfolio/app/app.vue +7 -0
  1031. package/templates/portfolio/app/assets/css/main.css +56 -0
  1032. package/templates/portfolio/app/assets/css/tokens.css +400 -0
  1033. package/templates/portfolio/app/bricks/pages.ts +38 -0
  1034. package/templates/portfolio/app/bricks/projects.ts +114 -0
  1035. package/templates/portfolio/app/components/InitialsAvatar.vue +18 -0
  1036. package/templates/portfolio/app/components/ProseBody.vue +13 -0
  1037. package/templates/portfolio/app/components/StartProject.vue +15 -0
  1038. package/templates/portfolio/app/components/block/Cards.vue +54 -0
  1039. package/templates/portfolio/app/components/block/Cta.vue +26 -0
  1040. package/templates/portfolio/app/components/block/Empty.vue +26 -0
  1041. package/templates/portfolio/app/components/block/Features.vue +24 -0
  1042. package/templates/portfolio/app/components/block/Gallery.vue +81 -0
  1043. package/templates/portfolio/app/components/block/Hero.vue +47 -0
  1044. package/templates/portfolio/app/components/block/PageHeader.vue +21 -0
  1045. package/templates/portfolio/app/components/block/Section.vue +31 -0
  1046. package/templates/portfolio/app/components/blog/Byline.vue +22 -0
  1047. package/templates/portfolio/app/components/blog/PostList.vue +33 -0
  1048. package/templates/portfolio/app/components/blog/TagList.vue +17 -0
  1049. package/templates/portfolio/app/components/pages/Top.vue +12 -0
  1050. package/templates/portfolio/app/components/people/List.vue +41 -0
  1051. package/templates/portfolio/app/components/people/TeamContact.vue +9 -0
  1052. package/templates/portfolio/app/components/projects/Body.vue +62 -0
  1053. package/templates/portfolio/app/components/projects/List.vue +38 -0
  1054. package/templates/portfolio/app/components/site/Contact.vue +38 -0
  1055. package/templates/portfolio/app/components/site/Footer.vue +81 -0
  1056. package/templates/portfolio/app/components/site/Header.vue +52 -0
  1057. package/templates/portfolio/app/components/site/LanguageSwitch.vue +34 -0
  1058. package/templates/portfolio/app/components/site/Lightbox.vue +62 -0
  1059. package/templates/portfolio/app/components/site/Logo.vue +17 -0
  1060. package/templates/portfolio/app/components/site/NavLink.vue +19 -0
  1061. package/templates/portfolio/app/components/site/NavSheet.vue +63 -0
  1062. package/templates/portfolio/app/components/site/Notice.vue +21 -0
  1063. package/templates/portfolio/app/components/site/SkipLink.vue +15 -0
  1064. package/templates/portfolio/app/components/site/ThemeToggle.vue +28 -0
  1065. package/templates/portfolio/app/components/ui/button/Button.vue +30 -0
  1066. package/templates/portfolio/app/components/ui/button/index.ts +44 -0
  1067. package/templates/portfolio/app/components/ui/sheet/Sheet.vue +16 -0
  1068. package/templates/portfolio/app/components/ui/sheet/SheetClose.vue +13 -0
  1069. package/templates/portfolio/app/components/ui/sheet/SheetContent.vue +54 -0
  1070. package/templates/portfolio/app/components/ui/sheet/SheetDescription.vue +23 -0
  1071. package/templates/portfolio/app/components/ui/sheet/SheetOverlay.vue +22 -0
  1072. package/templates/portfolio/app/components/ui/sheet/SheetTitle.vue +23 -0
  1073. package/templates/portfolio/app/components/ui/sheet/SheetTrigger.vue +13 -0
  1074. package/templates/portfolio/app/components/ui/sheet/index.ts +7 -0
  1075. package/templates/portfolio/app/composables/useBlog.ts +103 -0
  1076. package/templates/portfolio/app/composables/usePageSeo.ts +50 -0
  1077. package/templates/portfolio/app/composables/useProjectJsonLd.ts +26 -0
  1078. package/templates/portfolio/app/composables/useProjects.ts +31 -0
  1079. package/templates/portfolio/app/composables/useSiteAppConfig.ts +79 -0
  1080. package/templates/portfolio/app/composables/useStartProject.ts +12 -0
  1081. package/templates/portfolio/app/error.vue +35 -0
  1082. package/templates/portfolio/app/layouts/default.vue +23 -0
  1083. package/templates/portfolio/app/lib/utils.ts +26 -0
  1084. package/templates/portfolio/app/pages/[...slug].vue +36 -0
  1085. package/templates/portfolio/app/pages/index.vue +60 -0
  1086. package/templates/portfolio/app/pages/legal/[slug].vue +46 -0
  1087. package/templates/portfolio/app/pages/news/[slug].vue +94 -0
  1088. package/templates/portfolio/app/pages/news/index.vue +54 -0
  1089. package/templates/portfolio/app/pages/news/tags/[tag].vue +41 -0
  1090. package/templates/portfolio/app/pages/projects/[slug].vue +49 -0
  1091. package/templates/portfolio/app/pages/projects/index.vue +24 -0
  1092. package/templates/portfolio/app/pages/team.vue +40 -0
  1093. package/templates/portfolio/app/routes.ts +30 -0
  1094. package/templates/portfolio/app/utils/telHref.ts +3 -0
  1095. package/templates/portfolio/components.json +21 -0
  1096. package/templates/portfolio/content/home.de.md +4 -0
  1097. package/templates/portfolio/content/home.md +4 -0
  1098. package/templates/portfolio/content/legal/1.privacy.de.md +19 -0
  1099. package/templates/portfolio/content/legal/1.privacy.md +21 -0
  1100. package/templates/portfolio/content/legal/2.imprint.de.md +15 -0
  1101. package/templates/portfolio/content/legal/2.imprint.md +17 -0
  1102. package/templates/portfolio/content/notices/1.holm-chair.de.md +3 -0
  1103. package/templates/portfolio/content/notices/1.holm-chair.md +4 -0
  1104. package/templates/portfolio/content/pages/1.how-we-work.de.md +23 -0
  1105. package/templates/portfolio/content/pages/1.how-we-work.md +23 -0
  1106. package/templates/portfolio/content/people/1.maren-holt.de.md +4 -0
  1107. package/templates/portfolio/content/people/1.maren-holt.md +6 -0
  1108. package/templates/portfolio/content/people/2.ole-petersen.de.md +4 -0
  1109. package/templates/portfolio/content/people/2.ole-petersen.md +6 -0
  1110. package/templates/portfolio/content/posts/full-size-drawings.de.md +11 -0
  1111. package/templates/portfolio/content/posts/full-size-drawings.md +13 -0
  1112. package/templates/portfolio/content/posts/lime-plaster.de.md +11 -0
  1113. package/templates/portfolio/content/posts/lime-plaster.md +13 -0
  1114. package/templates/portfolio/content/projects/1.attic-flat-ottensen.de.md +19 -0
  1115. package/templates/portfolio/content/projects/1.attic-flat-ottensen.md +22 -0
  1116. package/templates/portfolio/content/projects/2.elbsand-vases.de.md +18 -0
  1117. package/templates/portfolio/content/projects/2.elbsand-vases.md +21 -0
  1118. package/templates/portfolio/content/projects/3.werftblick-entrance-hall.de.md +18 -0
  1119. package/templates/portfolio/content/projects/3.werftblick-entrance-hall.md +22 -0
  1120. package/templates/portfolio/content/projects/4.holm-chair.de.md +18 -0
  1121. package/templates/portfolio/content/projects/4.holm-chair.md +21 -0
  1122. package/templates/portfolio/content/site.md +13 -0
  1123. package/templates/portfolio/eslint.config.mjs +12 -0
  1124. package/templates/portfolio/eslint.tailwind.mjs +33 -0
  1125. package/templates/portfolio/ginko.config.ts +70 -0
  1126. package/templates/portfolio/gitignore +7 -0
  1127. package/templates/portfolio/i18n/blog/de.json +18 -0
  1128. package/templates/portfolio/i18n/blog/en.json +18 -0
  1129. package/templates/portfolio/i18n/de.json +47 -0
  1130. package/templates/portfolio/i18n/en.json +47 -0
  1131. package/templates/portfolio/i18n/gallery/de.json +8 -0
  1132. package/templates/portfolio/i18n/gallery/en.json +8 -0
  1133. package/templates/portfolio/i18n/people/de.json +6 -0
  1134. package/templates/portfolio/i18n/people/en.json +6 -0
  1135. package/templates/portfolio/i18n/projects/de.json +7 -0
  1136. package/templates/portfolio/i18n/projects/en.json +7 -0
  1137. package/templates/portfolio/i18n/site/de.json +39 -0
  1138. package/templates/portfolio/i18n/site/en.json +39 -0
  1139. package/templates/portfolio/modules/feature-messages.ts +19 -0
  1140. package/templates/portfolio/modules/feeds/index.ts +22 -0
  1141. package/templates/portfolio/modules/feeds/routes.ts +13 -0
  1142. package/templates/portfolio/modules/page-paths/index.ts +26 -0
  1143. package/templates/portfolio/modules/page-paths/paths.ts +48 -0
  1144. package/templates/portfolio/nuxt.config.ts +30 -0
  1145. package/templates/portfolio/package.json +60 -0
  1146. package/templates/portfolio/pnpm-workspace.yaml +6 -0
  1147. package/templates/portfolio/public/media/attic-light.jpg +0 -0
  1148. package/templates/portfolio/public/media/ceramic-vases.jpg +0 -0
  1149. package/templates/portfolio/public/media/concrete-stair.jpg +0 -0
  1150. package/templates/portfolio/public/media/material-samples.jpg +0 -0
  1151. package/templates/portfolio/public/media/oak-chair.jpg +0 -0
  1152. package/templates/portfolio/public/media/workshop-drawings.jpg +0 -0
  1153. package/templates/portfolio/server/middleware/news-feed.ts +37 -0
  1154. package/templates/portfolio/server/plugins/font-preload.ts +17 -0
  1155. package/templates/portfolio/site-url.ts +21 -0
  1156. package/templates/portfolio/tsconfig.json +9 -0
  1157. package/templates/portfolio.json +11 -0
  1158. package/templates/restaurant/.env.example +8 -0
  1159. package/templates/restaurant/.github/screenshots/home-dark.png +0 -0
  1160. package/templates/restaurant/.github/screenshots/home-light.png +0 -0
  1161. package/templates/restaurant/.github/workflows/ci.yml +27 -0
  1162. package/templates/restaurant/DESIGN.md +197 -0
  1163. package/templates/restaurant/LICENSE +21 -0
  1164. package/templates/restaurant/MEDIA.md +37 -0
  1165. package/templates/restaurant/README.md +249 -0
  1166. package/templates/restaurant/app/app.config.ts +33 -0
  1167. package/templates/restaurant/app/app.vue +7 -0
  1168. package/templates/restaurant/app/assets/css/main.css +20 -0
  1169. package/templates/restaurant/app/assets/css/tokens.css +400 -0
  1170. package/templates/restaurant/app/bricks/pages.ts +38 -0
  1171. package/templates/restaurant/app/components/InitialsAvatar.vue +18 -0
  1172. package/templates/restaurant/app/components/ProseBody.vue +13 -0
  1173. package/templates/restaurant/app/components/block/Cards.vue +54 -0
  1174. package/templates/restaurant/app/components/block/Cta.vue +26 -0
  1175. package/templates/restaurant/app/components/block/Empty.vue +26 -0
  1176. package/templates/restaurant/app/components/block/Features.vue +24 -0
  1177. package/templates/restaurant/app/components/block/Gallery.vue +81 -0
  1178. package/templates/restaurant/app/components/block/Hero.vue +47 -0
  1179. package/templates/restaurant/app/components/block/PageHeader.vue +21 -0
  1180. package/templates/restaurant/app/components/block/Section.vue +31 -0
  1181. package/templates/restaurant/app/components/event/Upcoming.vue +25 -0
  1182. package/templates/restaurant/app/components/hours/Table.vue +119 -0
  1183. package/templates/restaurant/app/components/hours/Today.vue +55 -0
  1184. package/templates/restaurant/app/components/menu/AllergenKey.vue +17 -0
  1185. package/templates/restaurant/app/components/menu/Allergens.vue +24 -0
  1186. package/templates/restaurant/app/components/menu/Diet.vue +16 -0
  1187. package/templates/restaurant/app/components/menu/Dish.vue +30 -0
  1188. package/templates/restaurant/app/components/menu/LunchDays.vue +42 -0
  1189. package/templates/restaurant/app/components/site/Contact.vue +38 -0
  1190. package/templates/restaurant/app/components/site/Footer.vue +81 -0
  1191. package/templates/restaurant/app/components/site/FooterStatus.vue +9 -0
  1192. package/templates/restaurant/app/components/site/Header.vue +52 -0
  1193. package/templates/restaurant/app/components/site/LanguageSwitch.vue +34 -0
  1194. package/templates/restaurant/app/components/site/Lightbox.vue +62 -0
  1195. package/templates/restaurant/app/components/site/Logo.vue +17 -0
  1196. package/templates/restaurant/app/components/site/NavLink.vue +19 -0
  1197. package/templates/restaurant/app/components/site/NavSheet.vue +63 -0
  1198. package/templates/restaurant/app/components/site/Notice.vue +21 -0
  1199. package/templates/restaurant/app/components/site/SkipLink.vue +15 -0
  1200. package/templates/restaurant/app/components/site/ThemeToggle.vue +28 -0
  1201. package/templates/restaurant/app/components/ui/button/Button.vue +30 -0
  1202. package/templates/restaurant/app/components/ui/button/index.ts +44 -0
  1203. package/templates/restaurant/app/components/ui/sheet/Sheet.vue +16 -0
  1204. package/templates/restaurant/app/components/ui/sheet/SheetClose.vue +13 -0
  1205. package/templates/restaurant/app/components/ui/sheet/SheetContent.vue +54 -0
  1206. package/templates/restaurant/app/components/ui/sheet/SheetDescription.vue +23 -0
  1207. package/templates/restaurant/app/components/ui/sheet/SheetOverlay.vue +22 -0
  1208. package/templates/restaurant/app/components/ui/sheet/SheetTitle.vue +23 -0
  1209. package/templates/restaurant/app/components/ui/sheet/SheetTrigger.vue +13 -0
  1210. package/templates/restaurant/app/components/ui/sheet/index.ts +7 -0
  1211. package/templates/restaurant/app/composables/useEvents.ts +182 -0
  1212. package/templates/restaurant/app/composables/useHours.ts +81 -0
  1213. package/templates/restaurant/app/composables/useMenu.ts +76 -0
  1214. package/templates/restaurant/app/composables/usePageSeo.ts +50 -0
  1215. package/templates/restaurant/app/composables/useSiteAppConfig.ts +79 -0
  1216. package/templates/restaurant/app/error.vue +35 -0
  1217. package/templates/restaurant/app/layouts/default.vue +23 -0
  1218. package/templates/restaurant/app/layouts/print.vue +9 -0
  1219. package/templates/restaurant/app/lib/utils.ts +26 -0
  1220. package/templates/restaurant/app/pages/[...slug].vue +36 -0
  1221. package/templates/restaurant/app/pages/events/[slug].vue +106 -0
  1222. package/templates/restaurant/app/pages/events/index.vue +20 -0
  1223. package/templates/restaurant/app/pages/gallery.vue +17 -0
  1224. package/templates/restaurant/app/pages/index.vue +163 -0
  1225. package/templates/restaurant/app/pages/legal/[slug].vue +46 -0
  1226. package/templates/restaurant/app/pages/lunch.vue +30 -0
  1227. package/templates/restaurant/app/pages/menu/index.vue +46 -0
  1228. package/templates/restaurant/app/pages/menu/print.vue +69 -0
  1229. package/templates/restaurant/app/pages/reservations.vue +52 -0
  1230. package/templates/restaurant/app/routes.ts +33 -0
  1231. package/templates/restaurant/app/utils/hours.ts +58 -0
  1232. package/templates/restaurant/app/utils/telHref.ts +3 -0
  1233. package/templates/restaurant/components.json +21 -0
  1234. package/templates/restaurant/content/events/1.wine-evening.de.md +10 -0
  1235. package/templates/restaurant/content/events/1.wine-evening.it.md +10 -0
  1236. package/templates/restaurant/content/events/1.wine-evening.md +16 -0
  1237. package/templates/restaurant/content/events/2.cooking-class.de.md +10 -0
  1238. package/templates/restaurant/content/events/2.cooking-class.it.md +10 -0
  1239. package/templates/restaurant/content/events/2.cooking-class.md +16 -0
  1240. package/templates/restaurant/content/gallery.de.md +15 -0
  1241. package/templates/restaurant/content/gallery.it.md +15 -0
  1242. package/templates/restaurant/content/gallery.md +21 -0
  1243. package/templates/restaurant/content/home.de.md +6 -0
  1244. package/templates/restaurant/content/home.it.md +6 -0
  1245. package/templates/restaurant/content/home.md +7 -0
  1246. package/templates/restaurant/content/hourPlans/1.winter-hours.de.md +3 -0
  1247. package/templates/restaurant/content/hourPlans/1.winter-hours.it.md +3 -0
  1248. package/templates/restaurant/content/hourPlans/1.winter-hours.md +41 -0
  1249. package/templates/restaurant/content/hours.de.md +4 -0
  1250. package/templates/restaurant/content/hours.it.md +4 -0
  1251. package/templates/restaurant/content/hours.md +45 -0
  1252. package/templates/restaurant/content/legal/1.privacy.de.md +28 -0
  1253. package/templates/restaurant/content/legal/1.privacy.it.md +28 -0
  1254. package/templates/restaurant/content/legal/1.privacy.md +29 -0
  1255. package/templates/restaurant/content/legal/2.terms.de.md +21 -0
  1256. package/templates/restaurant/content/legal/2.terms.it.md +21 -0
  1257. package/templates/restaurant/content/legal/2.terms.md +22 -0
  1258. package/templates/restaurant/content/legal/3.imprint.de.md +15 -0
  1259. package/templates/restaurant/content/legal/3.imprint.it.md +15 -0
  1260. package/templates/restaurant/content/legal/3.imprint.md +16 -0
  1261. package/templates/restaurant/content/lunch.de.md +3 -0
  1262. package/templates/restaurant/content/lunch.it.md +3 -0
  1263. package/templates/restaurant/content/lunch.md +25 -0
  1264. package/templates/restaurant/content/menu/1.liptauer.de.md +4 -0
  1265. package/templates/restaurant/content/menu/1.liptauer.it.md +4 -0
  1266. package/templates/restaurant/content/menu/1.liptauer.md +8 -0
  1267. package/templates/restaurant/content/menu/10.kaiserschmarrn.de.md +4 -0
  1268. package/templates/restaurant/content/menu/10.kaiserschmarrn.it.md +4 -0
  1269. package/templates/restaurant/content/menu/10.kaiserschmarrn.md +8 -0
  1270. package/templates/restaurant/content/menu/11.apple-strudel.de.md +4 -0
  1271. package/templates/restaurant/content/menu/11.apple-strudel.it.md +4 -0
  1272. package/templates/restaurant/content/menu/11.apple-strudel.md +8 -0
  1273. package/templates/restaurant/content/menu/12.apple-spritzer.de.md +4 -0
  1274. package/templates/restaurant/content/menu/12.apple-spritzer.it.md +4 -0
  1275. package/templates/restaurant/content/menu/12.apple-spritzer.md +8 -0
  1276. package/templates/restaurant/content/menu/13.elderflower-soda.de.md +3 -0
  1277. package/templates/restaurant/content/menu/13.elderflower-soda.it.md +3 -0
  1278. package/templates/restaurant/content/menu/13.elderflower-soda.md +7 -0
  1279. package/templates/restaurant/content/menu/14.melange.de.md +4 -0
  1280. package/templates/restaurant/content/menu/14.melange.it.md +4 -0
  1281. package/templates/restaurant/content/menu/14.melange.md +8 -0
  1282. package/templates/restaurant/content/menu/15.gruener-veltliner.de.md +4 -0
  1283. package/templates/restaurant/content/menu/15.gruener-veltliner.it.md +4 -0
  1284. package/templates/restaurant/content/menu/15.gruener-veltliner.md +8 -0
  1285. package/templates/restaurant/content/menu/16.zweigelt.de.md +4 -0
  1286. package/templates/restaurant/content/menu/16.zweigelt.it.md +4 -0
  1287. package/templates/restaurant/content/menu/16.zweigelt.md +8 -0
  1288. package/templates/restaurant/content/menu/17.maerzen.de.md +4 -0
  1289. package/templates/restaurant/content/menu/17.maerzen.it.md +4 -0
  1290. package/templates/restaurant/content/menu/17.maerzen.md +8 -0
  1291. package/templates/restaurant/content/menu/2.cured-char.de.md +4 -0
  1292. package/templates/restaurant/content/menu/2.cured-char.it.md +4 -0
  1293. package/templates/restaurant/content/menu/2.cured-char.md +8 -0
  1294. package/templates/restaurant/content/menu/3.frittaten-soup.de.md +4 -0
  1295. package/templates/restaurant/content/menu/3.frittaten-soup.it.md +4 -0
  1296. package/templates/restaurant/content/menu/3.frittaten-soup.md +8 -0
  1297. package/templates/restaurant/content/menu/4.pumpkin-soup.de.md +4 -0
  1298. package/templates/restaurant/content/menu/4.pumpkin-soup.it.md +4 -0
  1299. package/templates/restaurant/content/menu/4.pumpkin-soup.md +8 -0
  1300. package/templates/restaurant/content/menu/5.wiener-schnitzel.de.md +4 -0
  1301. package/templates/restaurant/content/menu/5.wiener-schnitzel.it.md +4 -0
  1302. package/templates/restaurant/content/menu/5.wiener-schnitzel.md +8 -0
  1303. package/templates/restaurant/content/menu/6.tafelspitz.de.md +4 -0
  1304. package/templates/restaurant/content/menu/6.tafelspitz.it.md +4 -0
  1305. package/templates/restaurant/content/menu/6.tafelspitz.md +8 -0
  1306. package/templates/restaurant/content/menu/7.roast-pork.de.md +4 -0
  1307. package/templates/restaurant/content/menu/7.roast-pork.it.md +4 -0
  1308. package/templates/restaurant/content/menu/7.roast-pork.md +8 -0
  1309. package/templates/restaurant/content/menu/8.kasnocken.de.md +4 -0
  1310. package/templates/restaurant/content/menu/8.kasnocken.it.md +4 -0
  1311. package/templates/restaurant/content/menu/8.kasnocken.md +8 -0
  1312. package/templates/restaurant/content/menu/9.lentil-goulash.de.md +4 -0
  1313. package/templates/restaurant/content/menu/9.lentil-goulash.it.md +4 -0
  1314. package/templates/restaurant/content/menu/9.lentil-goulash.md +8 -0
  1315. package/templates/restaurant/content/notices/1.cook-wanted.de.md +3 -0
  1316. package/templates/restaurant/content/notices/1.cook-wanted.it.md +3 -0
  1317. package/templates/restaurant/content/notices/1.cook-wanted.md +4 -0
  1318. package/templates/restaurant/content/pages/1.about.de.md +23 -0
  1319. package/templates/restaurant/content/pages/1.about.it.md +23 -0
  1320. package/templates/restaurant/content/pages/1.about.md +24 -0
  1321. package/templates/restaurant/content/reservations.de.md +20 -0
  1322. package/templates/restaurant/content/reservations.it.md +20 -0
  1323. package/templates/restaurant/content/reservations.md +20 -0
  1324. package/templates/restaurant/content/site.de.md +3 -0
  1325. package/templates/restaurant/content/site.it.md +3 -0
  1326. package/templates/restaurant/content/site.md +12 -0
  1327. package/templates/restaurant/eslint.config.mjs +12 -0
  1328. package/templates/restaurant/eslint.tailwind.mjs +33 -0
  1329. package/templates/restaurant/ginko.config.ts +79 -0
  1330. package/templates/restaurant/gitignore +7 -0
  1331. package/templates/restaurant/i18n/de.json +31 -0
  1332. package/templates/restaurant/i18n/en.json +31 -0
  1333. package/templates/restaurant/i18n/events/de.json +20 -0
  1334. package/templates/restaurant/i18n/events/en.json +20 -0
  1335. package/templates/restaurant/i18n/events/it.json +20 -0
  1336. package/templates/restaurant/i18n/gallery/de.json +8 -0
  1337. package/templates/restaurant/i18n/gallery/en.json +8 -0
  1338. package/templates/restaurant/i18n/gallery/it.json +8 -0
  1339. package/templates/restaurant/i18n/hours/de.json +27 -0
  1340. package/templates/restaurant/i18n/hours/en.json +27 -0
  1341. package/templates/restaurant/i18n/hours/it.json +27 -0
  1342. package/templates/restaurant/i18n/it.json +31 -0
  1343. package/templates/restaurant/i18n/menu/de.json +54 -0
  1344. package/templates/restaurant/i18n/menu/en.json +54 -0
  1345. package/templates/restaurant/i18n/menu/it.json +54 -0
  1346. package/templates/restaurant/i18n/site/de.json +39 -0
  1347. package/templates/restaurant/i18n/site/en.json +39 -0
  1348. package/templates/restaurant/i18n/site/it.json +39 -0
  1349. package/templates/restaurant/modules/feature-messages.ts +19 -0
  1350. package/templates/restaurant/modules/feeds/index.ts +22 -0
  1351. package/templates/restaurant/modules/feeds/routes.ts +13 -0
  1352. package/templates/restaurant/modules/page-paths/index.ts +26 -0
  1353. package/templates/restaurant/modules/page-paths/paths.ts +48 -0
  1354. package/templates/restaurant/nuxt.config.ts +27 -0
  1355. package/templates/restaurant/package.json +61 -0
  1356. package/templates/restaurant/pnpm-workspace.yaml +6 -0
  1357. package/templates/restaurant/public/media/garten.jpg +0 -0
  1358. package/templates/restaurant/public/media/gastraum.jpg +0 -0
  1359. package/templates/restaurant/public/media/gaststube.jpg +0 -0
  1360. package/templates/restaurant/public/media/kueche.jpg +0 -0
  1361. package/templates/restaurant/public/media/schnitzel.jpg +0 -0
  1362. package/templates/restaurant/public/media/strudel.jpg +0 -0
  1363. package/templates/restaurant/public/media/weinabend.jpg +0 -0
  1364. package/templates/restaurant/server/plugins/font-preload.ts +17 -0
  1365. package/templates/restaurant/site-url.ts +21 -0
  1366. package/templates/restaurant/tsconfig.json +9 -0
  1367. package/templates/restaurant.json +19 -0
  1368. package/templates/saas/.env.example +8 -0
  1369. package/templates/saas/.github/screenshots/home-dark.png +0 -0
  1370. package/templates/saas/.github/screenshots/home-light.png +0 -0
  1371. package/templates/saas/.github/workflows/ci.yml +27 -0
  1372. package/templates/saas/DESIGN.md +197 -0
  1373. package/templates/saas/LICENSE +21 -0
  1374. package/templates/saas/MEDIA.md +20 -0
  1375. package/templates/saas/NOTES.md +23 -0
  1376. package/templates/saas/README.md +264 -0
  1377. package/templates/saas/app/app.config.ts +37 -0
  1378. package/templates/saas/app/app.vue +7 -0
  1379. package/templates/saas/app/assets/css/main.css +30 -0
  1380. package/templates/saas/app/assets/css/tokens.css +400 -0
  1381. package/templates/saas/app/bricks/logos-quotes.ts +47 -0
  1382. package/templates/saas/app/bricks/pages.ts +38 -0
  1383. package/templates/saas/app/bricks/pricing.ts +60 -0
  1384. package/templates/saas/app/components/DocsPageEnd.vue +8 -0
  1385. package/templates/saas/app/components/InitialsAvatar.vue +18 -0
  1386. package/templates/saas/app/components/ProseBody.vue +13 -0
  1387. package/templates/saas/app/components/block/Cards.vue +54 -0
  1388. package/templates/saas/app/components/block/Cta.vue +26 -0
  1389. package/templates/saas/app/components/block/Empty.vue +26 -0
  1390. package/templates/saas/app/components/block/Faq.vue +19 -0
  1391. package/templates/saas/app/components/block/Features.vue +24 -0
  1392. package/templates/saas/app/components/block/Hero.vue +47 -0
  1393. package/templates/saas/app/components/block/Logos.vue +22 -0
  1394. package/templates/saas/app/components/block/PageHeader.vue +21 -0
  1395. package/templates/saas/app/components/block/Quote.vue +19 -0
  1396. package/templates/saas/app/components/block/Section.vue +31 -0
  1397. package/templates/saas/app/components/blog/Byline.vue +22 -0
  1398. package/templates/saas/app/components/blog/PostList.vue +33 -0
  1399. package/templates/saas/app/components/blog/TagList.vue +17 -0
  1400. package/templates/saas/app/components/changelog/Latest.vue +32 -0
  1401. package/templates/saas/app/components/help/Contact.vue +14 -0
  1402. package/templates/saas/app/components/pages/Top.vue +30 -0
  1403. package/templates/saas/app/components/pricing/More.vue +21 -0
  1404. package/templates/saas/app/components/pricing/Plans.vue +60 -0
  1405. package/templates/saas/app/components/site/Contact.vue +38 -0
  1406. package/templates/saas/app/components/site/Footer.vue +81 -0
  1407. package/templates/saas/app/components/site/Header.vue +52 -0
  1408. package/templates/saas/app/components/site/LanguageSwitch.vue +34 -0
  1409. package/templates/saas/app/components/site/Logo.vue +17 -0
  1410. package/templates/saas/app/components/site/NavLink.vue +19 -0
  1411. package/templates/saas/app/components/site/NavSheet.vue +63 -0
  1412. package/templates/saas/app/components/site/Notice.vue +21 -0
  1413. package/templates/saas/app/components/site/PageCta.vue +12 -0
  1414. package/templates/saas/app/components/site/SkipLink.vue +15 -0
  1415. package/templates/saas/app/components/site/ThemeToggle.vue +28 -0
  1416. package/templates/saas/app/components/ui/accordion/Accordion.vue +16 -0
  1417. package/templates/saas/app/components/ui/accordion/AccordionContent.vue +26 -0
  1418. package/templates/saas/app/components/ui/accordion/AccordionItem.vue +24 -0
  1419. package/templates/saas/app/components/ui/accordion/AccordionTrigger.vue +35 -0
  1420. package/templates/saas/app/components/ui/accordion/index.ts +5 -0
  1421. package/templates/saas/app/components/ui/button/Button.vue +30 -0
  1422. package/templates/saas/app/components/ui/button/index.ts +44 -0
  1423. package/templates/saas/app/components/ui/sheet/Sheet.vue +16 -0
  1424. package/templates/saas/app/components/ui/sheet/SheetClose.vue +13 -0
  1425. package/templates/saas/app/components/ui/sheet/SheetContent.vue +54 -0
  1426. package/templates/saas/app/components/ui/sheet/SheetDescription.vue +23 -0
  1427. package/templates/saas/app/components/ui/sheet/SheetOverlay.vue +22 -0
  1428. package/templates/saas/app/components/ui/sheet/SheetTitle.vue +23 -0
  1429. package/templates/saas/app/components/ui/sheet/SheetTrigger.vue +13 -0
  1430. package/templates/saas/app/components/ui/sheet/index.ts +7 -0
  1431. package/templates/saas/app/composables/useBlog.ts +103 -0
  1432. package/templates/saas/app/composables/useChangelog.ts +54 -0
  1433. package/templates/saas/app/composables/usePageSeo.ts +50 -0
  1434. package/templates/saas/app/composables/usePricing.ts +110 -0
  1435. package/templates/saas/app/composables/useSiteAppConfig.ts +79 -0
  1436. package/templates/saas/app/error.vue +35 -0
  1437. package/templates/saas/app/layouts/default.vue +23 -0
  1438. package/templates/saas/app/lib/utils.ts +26 -0
  1439. package/templates/saas/app/pages/[...slug].vue +36 -0
  1440. package/templates/saas/app/pages/changelog.vue +47 -0
  1441. package/templates/saas/app/pages/faq.vue +39 -0
  1442. package/templates/saas/app/pages/help/index.vue +21 -0
  1443. package/templates/saas/app/pages/index.vue +67 -0
  1444. package/templates/saas/app/pages/legal/[slug].vue +46 -0
  1445. package/templates/saas/app/pages/news/[slug].vue +94 -0
  1446. package/templates/saas/app/pages/news/index.vue +54 -0
  1447. package/templates/saas/app/pages/news/tags/[tag].vue +41 -0
  1448. package/templates/saas/app/pages/pricing.vue +27 -0
  1449. package/templates/saas/app/routes.ts +31 -0
  1450. package/templates/saas/app/utils/telHref.ts +3 -0
  1451. package/templates/saas/components.json +21 -0
  1452. package/templates/saas/content/changelog/v4-3-0.de.md +18 -0
  1453. package/templates/saas/content/changelog/v4-3-0.fr.md +18 -0
  1454. package/templates/saas/content/changelog/v4-3-0.md +20 -0
  1455. package/templates/saas/content/changelog/v4-4-0.de.md +15 -0
  1456. package/templates/saas/content/changelog/v4-4-0.fr.md +15 -0
  1457. package/templates/saas/content/changelog/v4-4-0.md +17 -0
  1458. package/templates/saas/content/changelog/v4-4-1.de.md +11 -0
  1459. package/templates/saas/content/changelog/v4-4-1.fr.md +11 -0
  1460. package/templates/saas/content/changelog/v4-4-1.md +13 -0
  1461. package/templates/saas/content/changelog/v4-5-0.de.md +19 -0
  1462. package/templates/saas/content/changelog/v4-5-0.fr.md +19 -0
  1463. package/templates/saas/content/changelog/v4-5-0.md +21 -0
  1464. package/templates/saas/content/changelog/v4-6-0.de.md +19 -0
  1465. package/templates/saas/content/changelog/v4-6-0.fr.md +19 -0
  1466. package/templates/saas/content/changelog/v4-6-0.md +21 -0
  1467. package/templates/saas/content/docs/1.getting-started.de.md +33 -0
  1468. package/templates/saas/content/docs/1.getting-started.fr.md +33 -0
  1469. package/templates/saas/content/docs/1.getting-started.md +32 -0
  1470. package/templates/saas/content/docs/2.shifts.de.md +24 -0
  1471. package/templates/saas/content/docs/2.shifts.fr.md +24 -0
  1472. package/templates/saas/content/docs/2.shifts.md +23 -0
  1473. package/templates/saas/content/docs/3.export.de.md +21 -0
  1474. package/templates/saas/content/docs/3.export.fr.md +21 -0
  1475. package/templates/saas/content/docs/3.export.md +20 -0
  1476. package/templates/saas/content/faq/1.billing.de.md +4 -0
  1477. package/templates/saas/content/faq/1.billing.fr.md +4 -0
  1478. package/templates/saas/content/faq/1.billing.md +4 -0
  1479. package/templates/saas/content/faq/2.cancellation.de.md +4 -0
  1480. package/templates/saas/content/faq/2.cancellation.fr.md +4 -0
  1481. package/templates/saas/content/faq/2.cancellation.md +4 -0
  1482. package/templates/saas/content/faq/3.data-export.de.md +4 -0
  1483. package/templates/saas/content/faq/3.data-export.fr.md +4 -0
  1484. package/templates/saas/content/faq/3.data-export.md +4 -0
  1485. package/templates/saas/content/faq/4.change-plan.de.md +4 -0
  1486. package/templates/saas/content/faq/4.change-plan.fr.md +4 -0
  1487. package/templates/saas/content/faq/4.change-plan.md +4 -0
  1488. package/templates/saas/content/faq/5.trial.de.md +4 -0
  1489. package/templates/saas/content/faq/5.trial.fr.md +4 -0
  1490. package/templates/saas/content/faq/5.trial.md +4 -0
  1491. package/templates/saas/content/faq/6.data-location.de.md +4 -0
  1492. package/templates/saas/content/faq/6.data-location.fr.md +4 -0
  1493. package/templates/saas/content/faq/6.data-location.md +4 -0
  1494. package/templates/saas/content/faq/7.data-processing.de.md +4 -0
  1495. package/templates/saas/content/faq/7.data-processing.fr.md +4 -0
  1496. package/templates/saas/content/faq/7.data-processing.md +4 -0
  1497. package/templates/saas/content/home.de.md +24 -0
  1498. package/templates/saas/content/home.fr.md +24 -0
  1499. package/templates/saas/content/home.md +26 -0
  1500. package/templates/saas/content/legal/1.privacy.de.md +20 -0
  1501. package/templates/saas/content/legal/1.privacy.fr.md +20 -0
  1502. package/templates/saas/content/legal/1.privacy.md +22 -0
  1503. package/templates/saas/content/legal/2.terms.de.md +20 -0
  1504. package/templates/saas/content/legal/2.terms.fr.md +20 -0
  1505. package/templates/saas/content/legal/2.terms.md +22 -0
  1506. package/templates/saas/content/legal/3.imprint.de.md +16 -0
  1507. package/templates/saas/content/legal/3.imprint.fr.md +16 -0
  1508. package/templates/saas/content/legal/3.imprint.md +18 -0
  1509. package/templates/saas/content/logos/1.sonnenlinde.md +6 -0
  1510. package/templates/saas/content/logos/2.elsterau.md +6 -0
  1511. package/templates/saas/content/logos/3.rosental.md +6 -0
  1512. package/templates/saas/content/logos/4.muldental.md +6 -0
  1513. package/templates/saas/content/notices/5.swap-requests.de.md +3 -0
  1514. package/templates/saas/content/notices/5.swap-requests.fr.md +3 -0
  1515. package/templates/saas/content/notices/5.swap-requests.md +4 -0
  1516. package/templates/saas/content/pages/1.security.de.md +25 -0
  1517. package/templates/saas/content/pages/1.security.fr.md +25 -0
  1518. package/templates/saas/content/pages/1.security.md +25 -0
  1519. package/templates/saas/content/pages/2.about.de.md +17 -0
  1520. package/templates/saas/content/pages/2.about.fr.md +17 -0
  1521. package/templates/saas/content/pages/2.about.md +17 -0
  1522. package/templates/saas/content/pages/3.contact.de.md +15 -0
  1523. package/templates/saas/content/pages/3.contact.fr.md +15 -0
  1524. package/templates/saas/content/pages/3.contact.md +15 -0
  1525. package/templates/saas/content/people/1.lena-hartmann.de.md +4 -0
  1526. package/templates/saas/content/people/1.lena-hartmann.fr.md +4 -0
  1527. package/templates/saas/content/people/1.lena-hartmann.md +5 -0
  1528. package/templates/saas/content/people/2.jonas-pohl.de.md +4 -0
  1529. package/templates/saas/content/people/2.jonas-pohl.fr.md +4 -0
  1530. package/templates/saas/content/people/2.jonas-pohl.md +5 -0
  1531. package/templates/saas/content/posts/rest-periods.de.md +20 -0
  1532. package/templates/saas/content/posts/rest-periods.fr.md +20 -0
  1533. package/templates/saas/content/posts/rest-periods.md +22 -0
  1534. package/templates/saas/content/posts/summer-holidays.de.md +16 -0
  1535. package/templates/saas/content/posts/summer-holidays.fr.md +16 -0
  1536. package/templates/saas/content/posts/summer-holidays.md +18 -0
  1537. package/templates/saas/content/posts/swap-requests.de.md +18 -0
  1538. package/templates/saas/content/posts/swap-requests.fr.md +18 -0
  1539. package/templates/saas/content/posts/swap-requests.md +20 -0
  1540. package/templates/saas/content/pricing/1.small.de.md +11 -0
  1541. package/templates/saas/content/pricing/1.small.fr.md +11 -0
  1542. package/templates/saas/content/pricing/1.small.md +15 -0
  1543. package/templates/saas/content/pricing/2.standard.de.md +11 -0
  1544. package/templates/saas/content/pricing/2.standard.fr.md +11 -0
  1545. package/templates/saas/content/pricing/2.standard.md +16 -0
  1546. package/templates/saas/content/pricing/3.group.de.md +11 -0
  1547. package/templates/saas/content/pricing/3.group.fr.md +11 -0
  1548. package/templates/saas/content/pricing/3.group.md +12 -0
  1549. package/templates/saas/content/quotes/1.ward-lead.de.md +4 -0
  1550. package/templates/saas/content/quotes/1.ward-lead.fr.md +4 -0
  1551. package/templates/saas/content/quotes/1.ward-lead.md +5 -0
  1552. package/templates/saas/content/site.de.md +3 -0
  1553. package/templates/saas/content/site.fr.md +3 -0
  1554. package/templates/saas/content/site.md +12 -0
  1555. package/templates/saas/eslint.config.mjs +12 -0
  1556. package/templates/saas/eslint.tailwind.mjs +33 -0
  1557. package/templates/saas/ginko.config.ts +109 -0
  1558. package/templates/saas/gitignore +7 -0
  1559. package/templates/saas/i18n/blog/de.json +18 -0
  1560. package/templates/saas/i18n/blog/en.json +18 -0
  1561. package/templates/saas/i18n/blog/fr.json +18 -0
  1562. package/templates/saas/i18n/changelog/de.json +9 -0
  1563. package/templates/saas/i18n/changelog/en.json +9 -0
  1564. package/templates/saas/i18n/changelog/fr.json +9 -0
  1565. package/templates/saas/i18n/de.json +48 -0
  1566. package/templates/saas/i18n/en.json +48 -0
  1567. package/templates/saas/i18n/faq/de.json +6 -0
  1568. package/templates/saas/i18n/faq/en.json +6 -0
  1569. package/templates/saas/i18n/faq/fr.json +6 -0
  1570. package/templates/saas/i18n/fr.json +48 -0
  1571. package/templates/saas/i18n/pricing/de.json +14 -0
  1572. package/templates/saas/i18n/pricing/en.json +14 -0
  1573. package/templates/saas/i18n/pricing/fr.json +14 -0
  1574. package/templates/saas/i18n/site/de.json +39 -0
  1575. package/templates/saas/i18n/site/en.json +39 -0
  1576. package/templates/saas/i18n/site/fr.json +39 -0
  1577. package/templates/saas/modules/feature-messages.ts +19 -0
  1578. package/templates/saas/modules/feeds/index.ts +22 -0
  1579. package/templates/saas/modules/feeds/routes.ts +13 -0
  1580. package/templates/saas/modules/page-paths/index.ts +26 -0
  1581. package/templates/saas/modules/page-paths/paths.ts +48 -0
  1582. package/templates/saas/nuxt.config.ts +30 -0
  1583. package/templates/saas/package.json +63 -0
  1584. package/templates/saas/pnpm-workspace.yaml +6 -0
  1585. package/templates/saas/public/logos/care-home-four.svg +4 -0
  1586. package/templates/saas/public/logos/care-home-one.svg +4 -0
  1587. package/templates/saas/public/logos/care-home-two.svg +4 -0
  1588. package/templates/saas/public/logos/clinic-three.svg +4 -0
  1589. package/templates/saas/public/media/rota.svg +76 -0
  1590. package/templates/saas/server/middleware/changelog-feed.ts +50 -0
  1591. package/templates/saas/server/middleware/news-feed.ts +37 -0
  1592. package/templates/saas/server/plugins/font-preload.ts +17 -0
  1593. package/templates/saas/shared/utils/changelog.ts +13 -0
  1594. package/templates/saas/site-url.ts +21 -0
  1595. package/templates/saas/tsconfig.json +9 -0
  1596. package/templates/saas.json +12 -0
  1597. package/templates/starter/.env.example +8 -0
  1598. package/templates/starter/.github/screenshots/home-dark.png +0 -0
  1599. package/templates/starter/.github/screenshots/home-light.png +0 -0
  1600. package/templates/starter/.github/workflows/ci.yml +27 -0
  1601. package/templates/starter/DESIGN.md +197 -0
  1602. package/templates/starter/LICENSE +21 -0
  1603. package/templates/starter/MEDIA.md +11 -0
  1604. package/templates/starter/README.md +199 -0
  1605. package/templates/starter/app/app.config.ts +21 -0
  1606. package/templates/starter/app/app.vue +7 -0
  1607. package/templates/starter/app/assets/css/main.css +19 -0
  1608. package/templates/starter/app/assets/css/tokens.css +400 -0
  1609. package/templates/starter/app/bricks/pages.ts +38 -0
  1610. package/templates/starter/app/components/InitialsAvatar.vue +18 -0
  1611. package/templates/starter/app/components/ProseBody.vue +13 -0
  1612. package/templates/starter/app/components/block/Cards.vue +54 -0
  1613. package/templates/starter/app/components/block/Cta.vue +26 -0
  1614. package/templates/starter/app/components/block/Empty.vue +26 -0
  1615. package/templates/starter/app/components/block/Features.vue +24 -0
  1616. package/templates/starter/app/components/block/Hero.vue +47 -0
  1617. package/templates/starter/app/components/block/PageHeader.vue +21 -0
  1618. package/templates/starter/app/components/block/Section.vue +31 -0
  1619. package/templates/starter/app/components/pages/Top.vue +11 -0
  1620. package/templates/starter/app/components/site/Contact.vue +38 -0
  1621. package/templates/starter/app/components/site/Footer.vue +81 -0
  1622. package/templates/starter/app/components/site/Header.vue +52 -0
  1623. package/templates/starter/app/components/site/LanguageSwitch.vue +34 -0
  1624. package/templates/starter/app/components/site/Logo.vue +17 -0
  1625. package/templates/starter/app/components/site/NavLink.vue +19 -0
  1626. package/templates/starter/app/components/site/NavSheet.vue +63 -0
  1627. package/templates/starter/app/components/site/Notice.vue +21 -0
  1628. package/templates/starter/app/components/site/SkipLink.vue +15 -0
  1629. package/templates/starter/app/components/site/ThemeToggle.vue +28 -0
  1630. package/templates/starter/app/components/ui/button/Button.vue +30 -0
  1631. package/templates/starter/app/components/ui/button/index.ts +44 -0
  1632. package/templates/starter/app/components/ui/sheet/Sheet.vue +16 -0
  1633. package/templates/starter/app/components/ui/sheet/SheetClose.vue +13 -0
  1634. package/templates/starter/app/components/ui/sheet/SheetContent.vue +54 -0
  1635. package/templates/starter/app/components/ui/sheet/SheetDescription.vue +23 -0
  1636. package/templates/starter/app/components/ui/sheet/SheetOverlay.vue +22 -0
  1637. package/templates/starter/app/components/ui/sheet/SheetTitle.vue +23 -0
  1638. package/templates/starter/app/components/ui/sheet/SheetTrigger.vue +13 -0
  1639. package/templates/starter/app/components/ui/sheet/index.ts +7 -0
  1640. package/templates/starter/app/composables/usePageSeo.ts +50 -0
  1641. package/templates/starter/app/composables/useSiteAppConfig.ts +79 -0
  1642. package/templates/starter/app/error.vue +35 -0
  1643. package/templates/starter/app/layouts/default.vue +23 -0
  1644. package/templates/starter/app/lib/utils.ts +26 -0
  1645. package/templates/starter/app/pages/[...slug].vue +36 -0
  1646. package/templates/starter/app/pages/index.vue +24 -0
  1647. package/templates/starter/app/pages/legal/[slug].vue +46 -0
  1648. package/templates/starter/app/routes.ts +14 -0
  1649. package/templates/starter/app/utils/telHref.ts +3 -0
  1650. package/templates/starter/components.json +21 -0
  1651. package/templates/starter/content/home.de.md +16 -0
  1652. package/templates/starter/content/home.md +16 -0
  1653. package/templates/starter/content/legal/1.privacy.de.md +28 -0
  1654. package/templates/starter/content/legal/1.privacy.md +29 -0
  1655. package/templates/starter/content/legal/2.terms.de.md +21 -0
  1656. package/templates/starter/content/legal/2.terms.md +22 -0
  1657. package/templates/starter/content/legal/3.imprint.de.md +16 -0
  1658. package/templates/starter/content/legal/3.imprint.md +16 -0
  1659. package/templates/starter/content/notices/1.welcome.de.md +4 -0
  1660. package/templates/starter/content/notices/1.welcome.md +5 -0
  1661. package/templates/starter/content/pages/1.about.de.md +20 -0
  1662. package/templates/starter/content/pages/1.about.md +18 -0
  1663. package/templates/starter/content/pages/2.contact.de.md +17 -0
  1664. package/templates/starter/content/pages/2.contact.md +15 -0
  1665. package/templates/starter/content/site.md +12 -0
  1666. package/templates/starter/eslint.config.mjs +12 -0
  1667. package/templates/starter/eslint.tailwind.mjs +33 -0
  1668. package/templates/starter/ginko.config.ts +42 -0
  1669. package/templates/starter/gitignore +7 -0
  1670. package/templates/starter/i18n/de.json +6 -0
  1671. package/templates/starter/i18n/en.json +6 -0
  1672. package/templates/starter/i18n/site/de.json +39 -0
  1673. package/templates/starter/i18n/site/en.json +39 -0
  1674. package/templates/starter/modules/feature-messages.ts +19 -0
  1675. package/templates/starter/modules/feeds/index.ts +22 -0
  1676. package/templates/starter/modules/feeds/routes.ts +13 -0
  1677. package/templates/starter/modules/page-paths/index.ts +26 -0
  1678. package/templates/starter/modules/page-paths/paths.ts +48 -0
  1679. package/templates/starter/nuxt.config.ts +27 -0
  1680. package/templates/starter/package.json +55 -0
  1681. package/templates/starter/pnpm-workspace.yaml +6 -0
  1682. package/templates/starter/server/plugins/font-preload.ts +17 -0
  1683. package/templates/starter/site-url.ts +21 -0
  1684. package/templates/starter/tsconfig.json +9 -0
  1685. package/templates/starter.json +11 -0
@@ -0,0 +1,26 @@
1
+ ---
2
+ # استبدلوا رابط التبرع وبيانات الحساب المصرفي ببياناتكم (رقم IBAN هذا غير صالح، فلا يصل إليه أي تحويل)،
3
+ # وتحققوا من أن الملاحظة الخاصة بإيصالات التبرع تنطبق على منظمتكم.
4
+ title: "تبرّعوا"
5
+ slug: tabarru
6
+ summary: "يموّل تبرعكم الأدوات، وأدوات فحص المياه، وساعات عمل منسّقنا."
7
+ actionLabel: "تبرّعوا عبر الإنترنت"
8
+ ---
9
+
10
+ ## بالبطاقة أو بالخصم المباشر
11
+
12
+ يقودكم زر «تبرّعوا عبر الإنترنت» إلى صفحة التبرعات لدينا، التي تديرها خدمة متخصصة، ويمكنكم الدفع فيها بالبطاقة أو بالخصم المباشر.
13
+
14
+ ## التحويل المصرفي
15
+
16
+ ⁨River Commons e.V.⁩\
17
+ IBAN: DE23 5209 9900 0004 7110 25\
18
+ البيان: تبرع
19
+
20
+ ## إيصالات التبرع
21
+
22
+ River Commons معترف بها في ألمانيا منظمةً غير ربحية (gemeinnützig). للتبرعات التي تزيد على 300 يورو نرسل إليكم إيصال تبرع لإقراركم الضريبي في ألمانيا. أما للمبالغ الأصغر فيكفي كشف الحساب المصرفي لدى مصلحة الضرائب الألمانية.
23
+
24
+ ## فيمَ يُستخدم تبرعكم
25
+
26
+ تبلى القفازات والملاقط، وتحتاج أدوات الفحص إلى التجديد، ويخطط منسّقنا لكل حملة تنظيف. يبيّن [تقريرنا السنوي]($page.downloads) ما أنفقناه وفيمَ أنفقناه.
@@ -0,0 +1,26 @@
1
+ ---
2
+ # Ersetzen Sie den Spendenlink und die Bankverbindung durch Ihre eigenen (diese IBAN hat falsche Prüfziffern, keine
3
+ # Überweisung kommt an) und prüfen Sie, ob der Hinweis zur Zuwendungsbestätigung für Ihre Organisation gilt.
4
+ title: "Spenden"
5
+ slug: spenden
6
+ summary: "Ihre Spende bezahlt Werkzeug, Testsets für die Wassermessungen und die Stunden unseres Koordinators."
7
+ actionLabel: "Online spenden"
8
+ ---
9
+
10
+ ## Karte oder Lastschrift
11
+
12
+ „Online spenden“ führt zu unserer Spendenseite. Ein Spendendienst betreibt sie; dort können Sie per Karte oder Lastschrift spenden.
13
+
14
+ ## Überweisung
15
+
16
+ River Commons e.V.\
17
+ IBAN: DE23 5209 9900 0004 7110 25\
18
+ Verwendungszweck: Spende
19
+
20
+ ## Zuwendungsbestätigung
21
+
22
+ River Commons ist als gemeinnützig anerkannt. Für Spenden über 300 Euro schicken wir Ihnen eine Zuwendungsbestätigung für Ihre Steuererklärung. Bei kleineren Beträgen genügt dem Finanzamt Ihr Kontoauszug.
23
+
24
+ ## Wofür Ihre Spende da ist
25
+
26
+ Handschuhe und Greifzangen nutzen sich ab, Testsets müssen ersetzt werden, und unser Koordinator plant jede Aufräumaktion. In unserem [Jahresbericht]($page.downloads) sehen Sie, wofür wir wie viel ausgegeben haben.
@@ -0,0 +1,26 @@
1
+ ---
2
+ # Remplacez le lien de don et les coordonnées bancaires par les vôtres (cet IBAN a de fausses clés de contrôle, aucun
3
+ # virement ne peut arriver) et vérifiez que la note sur les reçus fiscaux s’applique à votre organisation.
4
+ title: "Faire un don"
5
+ slug: faire-un-don
6
+ summary: "Votre don finance le matériel, les kits d’analyse de l’eau et les heures de notre coordinateur."
7
+ actionLabel: "Faire un don en ligne"
8
+ ---
9
+
10
+ ## Carte ou prélèvement
11
+
12
+ « Faire un don en ligne » mène à notre page de dons. Un service de dons la gère ; vous pouvez y payer par carte ou par prélèvement.
13
+
14
+ ## Virement bancaire
15
+
16
+ River Commons e.V.\
17
+ IBAN : DE23 5209 9900 0004 7110 25\
18
+ Référence : Don
19
+
20
+ ## Reçus fiscaux
21
+
22
+ River Commons est reconnue en Allemagne comme organisme à but non lucratif (gemeinnützig). Pour les dons de plus de 300 euros, nous vous envoyons un reçu pour votre déclaration d’impôts en Allemagne. Pour les montants plus faibles, votre relevé bancaire suffit à l’administration fiscale allemande.
23
+
24
+ ## À quoi sert votre don
25
+
26
+ Les gants et les pinces s’usent, les kits d’analyse doivent être remplacés et notre coordinateur prépare chaque nettoyage. Notre [rapport annuel]($page.downloads) montre ce que nous avons dépensé, et pour quoi.
@@ -0,0 +1,27 @@
1
+ ---
2
+ # Replace the donation link and the bank details with your own (this IBAN fails its check digits, so no transfer can reach it),
3
+ # and check that the note on donation receipts applies to your organisation.
4
+ title: "Donate"
5
+ slug: donate
6
+ summary: "Your donation pays for tools, water test kits and our coordinator’s hours."
7
+ actionLabel: "Donate online"
8
+ actionUrl: https://spenden.river-commons.example
9
+ ---
10
+
11
+ ## Card or direct debit
12
+
13
+ “Donate online” leads to our donation page. A donation service runs it; you can pay there by card or direct debit.
14
+
15
+ ## Bank transfer
16
+
17
+ River Commons e.V.\
18
+ IBAN: DE23 5209 9900 0004 7110 25\
19
+ Reference: Donation
20
+
21
+ ## Donation receipts
22
+
23
+ River Commons is recognised as a non-profit organisation (gemeinnützig). For donations of more than 300 euros, we send you a donation receipt for your tax return. For smaller amounts, your bank statement is enough for the tax office in Germany.
24
+
25
+ ## What your donation pays for
26
+
27
+ Gloves and grabbers wear out, test kits need replacing, and our coordinator plans every cleanup. Our [annual report]($page.downloads) shows what we spent, and on what.
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "رئيسة الجمعية"
3
+ bio: "تترأس يانا مجلس الإدارة. أطلقت أول حملة تنظيف مع بعض الجيران، وما زالت تنظّم حملة الربيع."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Vorsitzende"
3
+ bio: "Jana leitet den Vorstand. Sie hat die erste Aufräumaktion mit ein paar Nachbarinnen und Nachbarn begonnen und organisiert bis heute die im Frühjahr."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Présidente"
3
+ bio: "Jana préside le conseil d’administration. Elle a lancé le premier nettoyage avec quelques voisins et organise toujours celui du printemps."
4
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: Jana Becker
3
+ role: "Chair"
4
+ bio: "Jana chairs the board. She started the first cleanup with a few neighbours and still organises the spring one."
5
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "أمين الصندوق"
3
+ bio: "يتولى يوسف الحسابات، ويجيب عن الأسئلة المتعلقة برسوم العضوية والتبرعات."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Schatzmeister"
3
+ bio: "Yusuf führt die Kasse und beantwortet Fragen zu Mitgliedsbeiträgen und Spenden."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Trésorier"
3
+ bio: "Yusuf tient les comptes et répond aux questions sur les cotisations et les dons."
4
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: Yusuf Demir
3
+ role: "Treasurer"
4
+ bio: "Yusuf keeps the accounts and answers questions about membership fees and donations."
5
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "أمينة السر"
3
+ bio: "تكتب كلير محاضر الاجتماعات وتتابع علاقاتنا مع الشركاء في المدينة."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Schriftführerin"
3
+ bio: "Claire schreibt die Protokolle und pflegt die Kontakte zu unseren Partnern in der Stadt."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Secrétaire"
3
+ bio: "Claire rédige les procès-verbaux et entretient nos liens avec les partenaires de la ville."
4
+ ---
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: Claire Martin
3
+ role: "Secretary"
4
+ bio: "Claire writes the minutes and looks after our contacts with partners in town."
5
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "منسّق المتطوعين"
3
+ bio: "لوكاس هو موظفنا الوحيد، ويعمل بدوام جزئي. يخطط لحملات التنظيف، وهو أول من يتواصل معه المتطوعون الجدد."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Koordinator für Ehrenamtliche"
3
+ bio: "Lukas ist unser einziger Angestellter, in Teilzeit. Er plant die Aufräumaktionen und ist der erste Ansprechpartner für neue Ehrenamtliche."
4
+ ---
@@ -0,0 +1,4 @@
1
+ ---
2
+ role: "Coordinateur des bénévoles"
3
+ bio: "Lukas est notre seul salarié, à temps partiel. Il prépare les nettoyages et accueille les nouveaux bénévoles."
4
+ ---
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: Lukas Hoffmann
3
+ role: "Volunteer coordinator"
4
+ bio: "Lukas is our only employee, part time. He plans the cleanups and is the first contact for new volunteers."
5
+ email: lukas@river-commons.example
6
+ ---
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "مكان جديد لأدواتنا"
3
+ slug: makan-lil-adawat
4
+ description: "أعارتنا المدينة حاوية قرب الجسر، فصارت أدواتنا كلها في مكان واحد."
5
+ tags: ["الجمعية"]
6
+ ---
7
+
8
+ كانت القفازات والملاقط والأكياس محفوظة حتى الآن في عدة أقبية. والآن أعارتنا المدينة حاوية قرب الجسر، فصار كل شيء في مكان واحد وجاهزًا لكل حملة تنظيف.
9
+
10
+ يمكن للأعضاء الذين لديهم مفتاح أن يأخذوا ما يحتاجونه لحملات تنظيف صغيرة ينظمونها بأنفسهم. ومن يرغب في الحصول على مفتاح فليطلبه في اجتماع الجمعية العمومية القادم.
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "Ein neues Zuhause für unser Werkzeug"
3
+ slug: werkzeug-container
4
+ description: "Die Stadt leiht uns einen Container an der Brücke. Jetzt ist unser Werkzeug an einem Ort."
5
+ tags: ["Verein"]
6
+ ---
7
+
8
+ Bisher lagen Handschuhe, Greifzangen und Säcke in mehreren Kellern. Jetzt leiht uns die Stadt einen Container an der Brücke: Alles ist an einem Ort und für jede Aufräumaktion bereit.
9
+
10
+ Mitglieder mit Schlüssel können sich holen, was sie für eigene kleine Aufräumaktionen brauchen. Wer einen Schlüssel möchte, fragt bei der nächsten Mitgliederversammlung danach.
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "Un nouveau local pour notre matériel"
3
+ slug: local-materiel
4
+ description: "La ville nous prête un conteneur près du pont : tout notre matériel est enfin au même endroit."
5
+ tags: ["association"]
6
+ ---
7
+
8
+ Jusqu’ici, les gants, les pinces et les sacs étaient rangés dans plusieurs caves. La ville nous prête désormais un conteneur près du pont : tout est au même endroit, prêt pour chaque nettoyage.
9
+
10
+ Les membres qui ont une clé peuvent y prendre ce dont ils ont besoin pour leurs propres petits nettoyages. Pour obtenir une clé, demandez-la lors de la prochaine assemblée générale.
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: "A new home for our tools"
3
+ slug: a-home-for-our-tools
4
+ description: "The town lends us a container by the bridge, so all our tools are in one place."
5
+ date: 2026-08-28
6
+ authors: [people/claire-martin]
7
+ tags: ["association"]
8
+ ---
9
+
10
+ Until now, gloves, grabbers and bags were kept in several cellars. The town now lends us a container by the bridge, so everything is in one place and ready for each cleanup.
11
+
12
+ Members with a key can take out what they need for their own small cleanups. If you would like a key, ask at the next members' meeting.
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: "تنظيف الخريف: ما وجدناه على الضفة"
3
+ slug: tanzif-alkharif
4
+ description: "نظّف متطوعون الضفة بين الجسرين، وكان معظم ما وجدوه صغيرًا."
5
+ tags: ["تنظيف"]
6
+ image:
7
+ alt: "متطوعة ترتدي قفازات تلتقط زجاجة بلاستيكية من النهر وتضعها في كيس"
8
+ ---
9
+
10
+ في صباح يوم سبت من شهر سبتمبر، نظّف متطوعون من جميع الأعمار ضفة النهر بين الجسرين.
11
+
12
+ ## ما وجدناه
13
+
14
+ كان معظمه صغيرًا: أغطية زجاجات، وأعقاب سجائر، وقطع من الأغلفة البلاستيكية. هذه هي الأشياء التي تصل إلى البحر إذا لم يلتقطها أحد. ووجدنا أيضًا أشياء أكبر، منها عربة تسوّق وإطاران.
15
+
16
+ ## الخطوة التالية
17
+
18
+ جمعت خدمة النظافة في المدينة الأكياس الممتلئة يوم الاثنين. وأبلغنا المدينة بالأماكن التي تتجمع فيها النفايات بعد ارتفاع منسوب المياه، وسنتفقدها مرة أخرى في حملة تنظيف الشتاء.
19
+
20
+ شكرًا لكل من شارك.
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: "Herbstputz: Was wir am Ufer gefunden haben"
3
+ slug: herbstputz
4
+ description: "Freiwillige haben das Ufer zwischen den beiden Brücken aufgeräumt. Das meiste, was sie fanden, war klein."
5
+ tags: ["Aufräumaktion"]
6
+ image:
7
+ alt: "Eine Helferin mit Handschuhen holt eine Plastikflasche aus dem Fluss und steckt sie in einen Sack"
8
+ ---
9
+
10
+ An einem Samstagvormittag im September haben Freiwillige jeden Alters das Flussufer zwischen den beiden Brücken aufgeräumt.
11
+
12
+ ## Was wir gefunden haben
13
+
14
+ Das meiste war klein: Kronkorken, Zigarettenfilter und Fetzen von Plastikfolie. Genau das landet im Meer, wenn niemand es aufhebt. Es gab auch größere Funde, darunter einen Einkaufswagen und zwei Autoreifen.
15
+
16
+ ## Wie es weitergeht
17
+
18
+ Die Stadtreinigung hat die vollen Säcke am Montag abgeholt. Wir haben der Stadt gemeldet, wo sich nach Hochwasser Müll sammelt, und sehen uns diese Stellen beim Winterputz wieder an.
19
+
20
+ Danke an alle, die dabei waren.
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: "Nettoyage d’automne : ce que nous avons trouvé sur les berges"
3
+ slug: nettoyage-automne
4
+ description: "Des bénévoles ont nettoyé la berge entre les deux ponts. La plupart des déchets étaient petits."
5
+ tags: ["nettoyage"]
6
+ image:
7
+ alt: "Une bénévole gantée retire une bouteille en plastique de la rivière et la met dans un sac"
8
+ ---
9
+
10
+ Un samedi matin de septembre, des bénévoles de tous âges ont nettoyé la berge entre les deux ponts.
11
+
12
+ ## Ce que nous avons trouvé
13
+
14
+ La plupart des déchets étaient petits : capsules de bouteilles, mégots et morceaux de film plastique. Ce sont eux qui finissent dans la mer si personne ne les ramasse. Il y avait aussi des objets plus gros, dont un chariot de supermarché et deux pneus.
15
+
16
+ ## La suite
17
+
18
+ Le service de propreté de la ville a récupéré les sacs pleins le lundi. Nous avons signalé à la ville les endroits où les déchets s’accumulent après les crues, et nous les contrôlerons à nouveau lors du nettoyage d’hiver.
19
+
20
+ Merci à toutes celles et à tous ceux qui sont venus.
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: "Autumn cleanup: what we found on the bank"
3
+ slug: autumn-clean-up
4
+ description: "Volunteers cleared the bank between the two bridges. Most of what they found was small."
5
+ date: 2026-10-06
6
+ authors: [people/jana-becker]
7
+ tags: ["cleanup"]
8
+ image:
9
+ src: /media/bank-clean-up.jpg
10
+ alt: "A volunteer in gloves picks a plastic bottle out of the river and puts it into a bag"
11
+ ---
12
+
13
+ On a Saturday morning in September, volunteers of all ages cleared the river bank between the two bridges.
14
+
15
+ ## What we found
16
+
17
+ Most of it was small: bottle caps, cigarette filters and pieces of plastic wrap. These are the things that reach the sea if nobody picks them up. There were larger finds too, among them a shopping trolley and two tyres.
18
+
19
+ ## What happens next
20
+
21
+ The town's waste service collected the full bags on Monday. We have told the town where rubbish collects after high water, and we will check those places again at the winter cleanup.
22
+
23
+ Thank you to everyone who came.
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: "Draft: how we plan the hedge planting"
3
+ slug: hedge-planting-plan
4
+ description: "A draft: it stays off the site until `draft: true` is removed."
5
+ date: 2026-10-12
6
+ authors: [people/lukas-hoffmann]
7
+ tags: ["hedge"]
8
+ draft: true
9
+ ---
10
+
11
+ This post is a draft. A file with `draft: true` is never built into the site; the development server (`npm run dev`)
12
+ shows it, so you can read it before it goes online. Remove the line to publish it.
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: "فحص المياه مع المدرسة المجاورة"
3
+ slug: fahs-almiyah
4
+ description: "صار تلاميذ يفحصون مياه النهر معنا مرة كل شهر."
5
+ tags: ["المياه", "المدارس"]
6
+ ---
7
+
8
+ صار تلاميذ من مدرسة ثانوية قريبة من النهر يفحصون المياه معنا مرة كل شهر. يقيسون درجة الحرارة ودرجة الحموضة والنترات بأدوات فحص بسيطة، ثم يسجّلون النتائج في جدول مشترك.
9
+
10
+ ## لماذا نفعل ذلك
11
+
12
+ القياس الواحد لا يقول الكثير. أما القياسات الكثيرة على مدار عام فتُظهر كيف يتغير النهر بعد الأمطار الغزيرة، أو في صيف حار، أو حين تُسمَّد الحقول.
13
+
14
+ ## كيف تشاركون
15
+
16
+ يمكن للمعلمين الراغبين في تنفيذ ذلك مع صفوفهم مراسلة [لوكاس](mailto:lukas@river-commons.example). نحن نُحضر أدوات الفحص ونشرح طريقة استخدامها.
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: "Wassermessungen mit der Schule nebenan"
3
+ slug: wassermessungen-mit-schulen
4
+ description: "Schülerinnen und Schüler messen jetzt einmal im Monat mit uns das Flusswasser."
5
+ tags: ["Wasser", "Schulen"]
6
+ ---
7
+
8
+ Schülerinnen und Schüler einer weiterführenden Schule am Fluss messen jetzt einmal im Monat mit uns das Wasser. Mit einfachen Testsets bestimmen sie Temperatur, pH-Wert und Nitrat und tragen die Ergebnisse in eine gemeinsame Tabelle ein.
9
+
10
+ ## Warum wir das machen
11
+
12
+ Eine einzelne Messung sagt wenig. Viele Messungen über ein Jahr zeigen, wie sich der Fluss nach Starkregen, in einem heißen Sommer oder nach dem Düngen der Felder verändert.
13
+
14
+ ## Wie Sie mitmachen
15
+
16
+ Lehrkräfte, die das mit ihrer Klasse machen möchten, schreiben an [Lukas](mailto:lukas@river-commons.example). Wir bringen die Testsets mit und zeigen, wie sie funktionieren.
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: "Analyser l’eau avec l’école d’à côté"
3
+ slug: analyses-eau-ecoles
4
+ description: "Des élèves analysent désormais l’eau de la rivière avec nous une fois par mois."
5
+ tags: ["eau", "écoles"]
6
+ ---
7
+
8
+ Des élèves d’un collège proche de la rivière analysent désormais l’eau avec nous une fois par mois. Avec des kits simples, ils mesurent la température, le pH et les nitrates, puis reportent les résultats dans un tableau commun.
9
+
10
+ ## Pourquoi nous le faisons
11
+
12
+ Une seule mesure dit peu de choses. Beaucoup de mesures sur une année montrent comment la rivière change après de fortes pluies, pendant un été chaud ou quand les champs sont fertilisés.
13
+
14
+ ## Comment participer
15
+
16
+ Les enseignants qui souhaitent le faire avec leur classe peuvent écrire à [Lukas](mailto:lukas@river-commons.example). Nous apportons les kits et montrons comment ils fonctionnent.
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: "Testing the water with the school next door"
3
+ slug: water-tests-with-schools
4
+ description: "Pupils now test the river water with us once a month."
5
+ date: 2026-09-22
6
+ authors: [people/lukas-hoffmann]
7
+ tags: ["water", "schools"]
8
+ ---
9
+
10
+ Pupils from a secondary school near the river now test the water with us once a month. They measure temperature, pH and nitrate with simple test kits and add the results to a shared table.
11
+
12
+ ## Why we do it
13
+
14
+ One measurement says little. Many measurements over a year show how the river changes after heavy rain, in a hot summer or when the fields are fertilised.
15
+
16
+ ## How to join
17
+
18
+ Teachers who would like to do this with their class can write to [Lukas](mailto:lukas@river-commons.example). We bring the test kits and show how they work.
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: "تعالوا إلى تنظيف الشتاء"
3
+ slug: tanzif-alshitaa
4
+ description: "ثلاث ساعات على ضفة النهر في الشتاء، حين تكون النباتات منخفضة ويسهل رؤية النفايات."
5
+ tags: ["تنظيف"]
6
+ ---
7
+
8
+ تنظيف الشتاء هو موعدنا القادم على النهر: ثلاث ساعات على الضفة، حين تكون النباتات منخفضة ويسهل رؤية النفايات. تجدون التاريخ والوقت ونقطة اللقاء في أعلى صفحة [شاركوا معنا]($pages.get-involved).
9
+
10
+ ## ماذا تُحضرون
11
+
12
+ ملابس دافئة وأحذية متينة. نحن نُحضر القفازات والملاقط والأكياس.
13
+
14
+ لا حاجة إلى التسجيل. الأطفال مرحَّب بهم برفقة شخص بالغ.
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: "Kommen Sie zum Winterputz"
3
+ slug: winterputz
4
+ description: "Drei Stunden am Ufer im Winter, wenn die Pflanzen niedrig sind und man den Müll gut sieht."
5
+ tags: ["Aufräumaktion"]
6
+ ---
7
+
8
+ Der Winterputz ist unser nächster Termin am Fluss: drei Stunden am Ufer, wenn die Pflanzen niedrig sind und man den Müll gut sieht. Datum, Uhrzeit und Treffpunkt stehen oben auf der Seite [Mitmachen]($pages.get-involved).
9
+
10
+ ## Was Sie mitbringen
11
+
12
+ Warme Kleidung und feste Schuhe. Handschuhe, Greifzangen und Säcke bringen wir mit.
13
+
14
+ Keine Anmeldung nötig. Kinder sind in Begleitung eines Erwachsenen willkommen.
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: "Venez au nettoyage d’hiver"
3
+ slug: nettoyage-hiver
4
+ description: "Trois heures au bord de la rivière en hiver, quand la végétation est basse et que les déchets se voient bien."
5
+ tags: ["nettoyage"]
6
+ ---
7
+
8
+ Le nettoyage d’hiver est notre prochain rendez-vous au bord de la rivière : trois heures sur la berge, quand la végétation est basse et que les déchets se voient bien. La date, l’heure et le point de rendez-vous sont en haut de la page [Participer]($pages.get-involved).
9
+
10
+ ## Ce qu’il faut apporter
11
+
12
+ Des vêtements chauds et de bonnes chaussures. Nous apportons les gants, les pinces et les sacs.
13
+
14
+ Pas besoin de s’inscrire. Les enfants sont les bienvenus avec un adulte.
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: "Join our winter cleanup"
3
+ slug: winter-clean-up
4
+ description: "Three hours on the bank in winter, when the plants are low and the rubbish is easy to see."
5
+ date: 2026-10-13
6
+ authors: [people/lukas-hoffmann]
7
+ tags: ["cleanup"]
8
+ ---
9
+
10
+ Our winter cleanup is the next date on the river: three hours on the bank, when the plants are low and the rubbish is easy to see. The date, the time and the meeting point are at the top of the [Get involved]($pages.get-involved) page.
11
+
12
+ ## What to bring
13
+
14
+ Warm clothes and sturdy shoes. We bring gloves, grabbers and bags.
15
+
16
+ No sign-up needed. Children are welcome with an adult.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "ضفاف نظيفة"
3
+ slug: difaf-nazifa
4
+ summary: "ننظف ضفة النهر من النفايات عدة مرات في السنة، مع كل من يرغب في المساعدة."
5
+ image:
6
+ alt: "ضفة نهر خضراء بأزهار برية وأشجار تحت سماء زرقاء"
7
+ ---
8
+
9
+ ننظف الضفة في الشتاء والربيع والخريف. وفي كل مرة نتوزع في مجموعات صغيرة، لكل مجموعة مقطعها، لنغطي المدينة كلها. وتجمع خدمة النظافة في المدينة الأكياس الممتلئة. نسجّل الأماكن التي تتجمع فيها النفايات، ونُبلغ المدينة حين يحتاج مكان ما إلى سلة مهملات أو لافتة.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "Saubere Ufer"
3
+ slug: saubere-ufer
4
+ summary: "Mehrmals im Jahr befreien wir das Flussufer von Müll, zusammen mit allen, die mithelfen wollen."
5
+ image:
6
+ alt: "Ein grünes Flussufer mit Wildblumen und Bäumen unter blauem Himmel"
7
+ ---
8
+
9
+ Wir räumen das Ufer im Winter, im Frühjahr und im Herbst auf. Jedes Mal teilen wir uns in kleine Gruppen mit eigenem Abschnitt auf, so ist die ganze Stadt abgedeckt. Die Stadtreinigung holt die vollen Säcke ab. Wir notieren, wo sich Müll sammelt, und sagen der Stadt Bescheid, wenn eine Stelle einen Mülleimer oder ein Schild braucht.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "Des berges propres"
3
+ slug: berges-propres
4
+ summary: "Plusieurs fois par an, nous débarrassons les berges de leurs déchets, avec toutes les personnes qui veulent aider."
5
+ image:
6
+ alt: "Une berge verte avec des fleurs sauvages et des arbres sous un ciel bleu"
7
+ ---
8
+
9
+ Nous nettoyons les berges en hiver, au printemps et en automne. À chaque fois, nous formons de petits groupes, chacun avec son tronçon, pour couvrir toute la ville. Le service de propreté de la ville récupère les sacs pleins. Nous notons les endroits où les déchets s’accumulent et prévenons la ville quand un endroit a besoin d’une poubelle ou d’un panneau.
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "Clean banks"
3
+ slug: clean-banks
4
+ summary: "Several times a year we clear the river bank of rubbish, together with anyone who wants to help."
5
+ image:
6
+ src: /media/green-bank.jpg
7
+ alt: "A green river bank with wildflowers and trees under a blue sky"
8
+ ---
9
+
10
+ We clean the bank in winter, in spring and in autumn. Each time we split into small groups, each with its own stretch, so the whole town is covered. The town's waste service collects the full bags. We note where rubbish collects, and we tell the town when a place needs a bin or a sign.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "فحص المياه مع المدارس"
3
+ slug: fahs-almiyah
4
+ summary: "يقيس التلاميذ مياه النهر معنا مرة كل شهر، ويتعلمون كيف يتغير النهر على مدار السنة."
5
+ image:
6
+ alt: "مياه صافية لجدول بين أشجار ساقطة مكسوّة بالطحالب في غابة خضراء"
7
+ ---
8
+
9
+ بأدوات فحص بسيطة، تقيس الصفوف كل شهر في المكان نفسه درجة الحرارة ودرجة الحموضة والنترات. وتُسجَّل النتائج في جدول مشترك يمكن للجميع الاطلاع عليه. نحن نُحضر الأدوات ونشرح طريقة استخدامها، ويقرر المعلمون كيف يدمجون ذلك في دروسهم.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "Wassermessungen mit Schulen"
3
+ slug: wassermessungen
4
+ summary: "Schülerinnen und Schüler messen einmal im Monat mit uns das Flusswasser und lernen, wie sich der Fluss im Lauf des Jahres verändert."
5
+ image:
6
+ alt: "Klares Wasser eines Bachs zwischen bemoosten umgestürzten Bäumen in einem grünen Wald"
7
+ ---
8
+
9
+ Mit einfachen Testsets messen Klassen jeden Monat an derselben Stelle Temperatur, pH-Wert und Nitrat. Die Ergebnisse kommen in eine gemeinsame Tabelle, die alle lesen können. Wir bringen die Testsets mit und zeigen, wie sie funktionieren; die Lehrkräfte entscheiden, wie es in ihren Unterricht passt.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "Analyses de l’eau avec les écoles"
3
+ slug: analyses-eau
4
+ summary: "Une fois par mois, des élèves mesurent l’eau de la rivière avec nous et découvrent comment elle change au fil de l’année."
5
+ image:
6
+ alt: "L’eau claire d’un ruisseau entre des arbres tombés couverts de mousse, dans une forêt verte"
7
+ ---
8
+
9
+ Avec des kits simples, les classes mesurent chaque mois, au même endroit, la température, le pH et les nitrates. Les résultats sont reportés dans un tableau commun que chacun peut consulter. Nous apportons les kits et montrons comment ils fonctionnent ; les enseignants décident comment l’intégrer à leurs cours.
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "Water tests with schools"
3
+ slug: water-tests
4
+ summary: "Pupils measure the river water with us once a month and learn how the river changes over the year."
5
+ image:
6
+ src: /media/forest-stream.jpg
7
+ alt: "Clear water of a stream between mossy fallen trees in a green forest"
8
+ ---
9
+
10
+ With simple test kits, classes measure temperature, pH and nitrate at the same place each month. The results go into a shared table that anyone can read. We bring the kits and show how they work; teachers decide how it fits their lessons.
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "سياج نباتي للضفة"
3
+ slug: siyaj-lil-diffa
4
+ summary: "نريد زراعة شجيرات محلية على المقطع الأجرد أسفل الطاحونة القديمة. ساعدونا بتبرعكم ما دامت الحملة قائمة."
5
+ image:
6
+ alt: "متطوع يجثو على شريط من الأرض الجرداء ويزرع شجيرة صغيرة"
7
+ actionLabel: "تبرّعوا الآن"
8
+ ---
9
+
10
+ أسفل الطاحونة القديمة تبدو الضفة جرداء، وتنجرف تربتها بعد كل فيضان. سياج من الشجيرات المحلية يثبّت التربة ويوفّر مأوى للطيور والحشرات. وبإذن من المدينة سنزرعه في الربيع مع المتطوعين. يغطي تبرعكم ثمن الشتلات وأغطية حمايتها. تجدون بيانات الحساب المصرفي في صفحة [تبرّعوا]($pages.donate).
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: "Eine Hecke fürs Ufer"
3
+ slug: hecke-fuers-ufer
4
+ summary: "Wir wollen am kahlen Abschnitt unterhalb der alten Mühle heimische Sträucher pflanzen. Helfen Sie uns mit einer Spende, solange die Aktion läuft."
5
+ image:
6
+ alt: "Ein Helfer kniet auf einem Streifen kahler Erde und pflanzt einen jungen Strauch"
7
+ actionLabel: "Jetzt spenden"
8
+ ---
9
+
10
+ Unterhalb der alten Mühle ist das Ufer kahl, und nach jedem Hochwasser bricht Erde ab. Eine Hecke aus heimischen Sträuchern hält den Boden fest und gibt Vögeln und Insekten ein Zuhause. Mit Erlaubnis der Stadt pflanzen wir sie im Frühjahr mit Ehrenamtlichen. Ihre Spende bezahlt die Pflanzen und den Verbissschutz. Die Bankverbindung finden Sie auf unserer Seite [Spenden]($pages.donate).