@@ -0,0 +1,16 @@ | |||||
kind: pipeline | |||||
type: docker | |||||
name: default | |||||
steps: | |||||
- name: deploy | |||||
image: docker:dind | |||||
commands: | |||||
- apk add --upgrade npm bash findutils rsync sed | |||||
- WORKDIR="/var/docker-web/apps/$DRONE_REPO_NAME" | |||||
- rm -rf $WORKDIR | |||||
- mkdir $WORKDIR | |||||
- rsync -av --exclude ./node_modules /drone/src/ $WORKDIR | |||||
- cd $WORKDIR | |||||
- npm ci | |||||
- bash /var/docker-web/src/cli.sh up $DRONE_REPO_NAME |
@@ -0,0 +1,19 @@ | |||||
# Nuxt dev/build outputs | |||||
.output | |||||
.data | |||||
.nuxt | |||||
.nitro | |||||
.cache | |||||
dist | |||||
# Node dependencies | |||||
node_modules | |||||
# Logs | |||||
logs | |||||
*.log | |||||
# Misc | |||||
.DS_Store | |||||
.fleet | |||||
.idea |
@@ -0,0 +1,19 @@ | |||||
# INSTALL | |||||
FROM node:18-alpine as builder | |||||
WORKDIR /app | |||||
COPY . . | |||||
RUN npm ci && npm cache clean --force | |||||
ADD . . | |||||
# BUILD | |||||
RUN npm run build | |||||
# PROD | |||||
FROM node:18-alpine | |||||
WORKDIR /app | |||||
COPY --from=builder /app/.output /app/.output | |||||
COPY --from=builder /app/.nuxt /app/.nuxt | |||||
COPY --from=builder /app/.env /app/.env | |||||
ENV HOST 0.0.0.0 | |||||
EXPOSE 3000 | |||||
CMD source .env && node .output/server/index.mjs |
@@ -0,0 +1,156 @@ | |||||
# virages.io | |||||
- [ ] drone clone as $USER | |||||
- [ ] https://github.com/ncsu-libraries/annona | |||||
ws apps : | |||||
- logo virages | |||||
logo | |||||
https://codepen.io/lrsordi/pen/rvWZPm | |||||
ALL: https://storiiies-editor.cogapp.com/ | |||||
https://github.com/IIIF/awesome-iiif/tree/66f8c724ee7fdb44f750ed4d7cedad449bb5f7a3 | |||||
FRONT: OpenSeaDragon | |||||
FRONT OFFICE: https://annotorious.github.io/guides/annotorious-in-vue/ | |||||
BACK: vips (Zoomable or ZoomHub) | |||||
BACK office : https://annotorious.github.io/getting-started/ | |||||
https://github.com/IIIF/awesome-iiif | |||||
IIIF | |||||
Giga pixel | |||||
- [ ] load a picture from a props on mounted in a 2d canvas | |||||
- [ ] display that picture with a good ratio and cover the full window | |||||
- [ ] a method focusOn(x, y, zoom) will change the scale of the image targetting a specific point | |||||
- [ ] at any moment the picture is showing in a good ratio even when the window is resized | |||||
Watch an erotic dream world where desire, colorful fantasy and poetic body parts intertwine. | |||||
https://vimeo.com/ondemand/uneruedanssalongueur | |||||
calvitie | |||||
forme de nudité | |||||
ex : | |||||
- Hunter Thomson | |||||
- Gérard jugnot | |||||
- Sébastien Tellier | |||||
qu'apporte l'analyse | |||||
artistique ? | |||||
quel est son sens ? | |||||
l'analyse peint une âme à l'oeuvre, elle renvoit la passion à l'objet d'art. | |||||
En ce sens l'analyse peut enfermer l'oeuvre dans un cadre, dans des lignes droites comme elle peut démontrer son aura par l'interprétation voir la surpasser par la sur-interprétation. | |||||
un film aléatoire | |||||
https://shop.gandi.net/en/6514bca2-b7cc-11ec-87b3-00163eada87b/domain/suggest/7cf99682-e92f-45d9-a87c-01d4d07999ca?search=msledchildren.com | |||||
- [ ] display one picture !!!!!!!!! | |||||
- [ ] 2 dyn canvas size of the window | |||||
- [ ] 3 setView (position, zoom, duration) | |||||
- [ ] 4 crop selection | |||||
- [ ] 5 filters | |||||
- [ ] 6 journey | |||||
- [ ] 7 UI : https://www.nextrembrandt.com/ | |||||
- [ ] display 2 pictures | |||||
- [ ] overlay pictures | |||||
- [ ] freeway mode | |||||
- [ ] possible effect on art click https://tympanus.net/codrops/2023/03/14/fullscreen-clip-animation/ | |||||
# IA & painting Art: | |||||
- [ ] IA shcema to painting : https://github.com/alexjc/neural-doodle | |||||
- [ ] Depth Estimation of a painting | |||||
- [ ] Object Detection in painting | |||||
- [ ] Perspective Detection in painting | |||||
- [ ] Inpaint in ... well painting :) | |||||
### rembrandt: | |||||
https://www.youtube.com/results?search_query=tu+delft+rembrandt | |||||
### Depth map | |||||
Inpainting / Outpainting -> youtube | |||||
https://github.com/AUTOMATIC1111/stable-diffusion-webui | |||||
https://github.com/docker-mailserver/docker-mailserver | |||||
https://tresjs.org/examples/load-textures.html | |||||
https://atroposjs.com/docs/vue#whats-next | |||||
- découpe d'une image avec clip - d'abord basic ellipse ou cercle | |||||
MODULES: | |||||
- errance [tuiles + zoom + full screen] | |||||
- histoire [tuiles + scroll + zoom] | |||||
- analyse [click + zoom + animation | |||||
- épaisseurs [3d] | |||||
## Pourquoi virages alors que l'art génératif existe ? | |||||
Si visuellement l’art génératif illustre très bien un article, même en tâtonnant il est impossible d'avoir exactement ce que l'on désir. | |||||
C'est l'occasion à l'art visuel traditionnel de mettre en avant ce qui fait sa spécificité, l'intention de son auteur. | |||||
Le mot artiste ne veut rien dire. | |||||
Il n'y a pas d'artiste, | |||||
Il n'y a que de l'art et leurs auteurs. | |||||
### MARCHÉ : | |||||
https://www.tumblr.com | |||||
https://behance.net | |||||
https://vitali-studio.com | |||||
https://issuu.com | |||||
https://cargo.site | |||||
https://www.artsy.net/ | |||||
https://www.flickr.com | |||||
### THEMES: | |||||
plutôt que perdre du temps sur du web design fait et refait, | |||||
pourquoi ne pas créer des thèmes sur des modèles comme : | |||||
- https://www.apple.com/fr/newsroom/ | |||||
- https://www.louvre.fr/en/what-s-on/exhibitions/leonardo-da-vinci#exhibition-overview | |||||
- https://salvatormundirevisited.com/ | |||||
### CSS | |||||
backdrop-filter | |||||
Filter color on hover : | |||||
https://cosmicmagazine.com.au/ | |||||
Folio for photographie & paintings | |||||
OU | |||||
CMS pour portfolio au plus généralement site créatif (EvilSpins) | |||||
Virag.es is a fullstack "framework" since it's a CMS | |||||
Virag.es back should be build with the best back (prisma nest) framework & vue | |||||
## Photo | |||||
- meta | |||||
- raw compat | |||||
- correction ... | |||||
## Paintings | |||||
- explorable table | |||||
- compte-fils / thread counter (https://codesandbox.io/s/github/WebsiteBeaver/vue-magnifier) | |||||
- video ? | |||||
- animation half per half (comme pour Lucie 3) | |||||
- VHS effect : https://www.ssion.com/ | |||||
- painting light (filmer une peinture avec peu de lumière et avec une lumière à fond) | |||||
## Lister toutes les références & symbole dans une page qui s'appelerai Mythologie | |||||
## DESIGN / FEATURES : | |||||
- mobile first -> scroll first | |||||
- FEAT :: zoom | |||||
- FEAT :: blur / focus | |||||
- TOOL :: weaver's glass | |||||
- TOOL :: "duality" slider-mask | |||||
- TOOL :: themes | |||||
- TOOL :: specific metas (paint, COLORS (auto gen from photos ?), catégories or tags or both ? ), paper, paint, nuancier, | |||||
- TOOL :: class by 'sketchbook, a sketchbook as a sticker'logo ET/OU a name.' | |||||
- TOOL :: Layer; overlay several photos of the paint and add a cursor-switch, looking-glass, desktop light spot | |||||
- VIDEO :: joconde traveling | |||||
- TOOL :: influence desc | |||||
- TOOL :: pistes de lectures alphabet (numérique et lettres) |
@@ -0,0 +1,3 @@ | |||||
<template> | |||||
<NuxtPage /> | |||||
</template> |
@@ -0,0 +1,3 @@ | |||||
@tailwind base; | |||||
@tailwind components; | |||||
@tailwind utilities; |
@@ -0,0 +1,80 @@ | |||||
<template> | |||||
<div class="w-full h-screen"> | |||||
<section class="UI bg-red-800"> | |||||
<button @click="getAnotations()"> | |||||
get annotations | |||||
</button> | |||||
<button v-for="tool in tools" :key="tool" class="m-4 p-4" @click="anno.setDrawingTool(tool)"> | |||||
{{ tool }} | |||||
</button> | |||||
</section> | |||||
<img id="annotorious" src="https://files.erudi.fr/virages/snake.jpg"> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { Annotorious } from '@recogito/annotorious' | |||||
import SelectorPack from '@recogito/annotorious-selector-pack' | |||||
import BetterPolygon from '@recogito/annotorious-better-polygon' | |||||
import '@recogito/annotorious/dist/annotorious.min.css' | |||||
export default { | |||||
data () { | |||||
return { | |||||
anno: null, | |||||
tools: ['rect', 'polygon', 'point', 'circle', 'ellipse', 'freehand'] | |||||
} | |||||
}, | |||||
mounted () { | |||||
this.initAnno() | |||||
}, | |||||
methods: { | |||||
initAnno () { | |||||
this.anno = new Annotorious({ | |||||
image: document.getElementById('annotorious'), | |||||
widgets: ['COMMENT'] | |||||
}) | |||||
BetterPolygon(this.anno) | |||||
SelectorPack(this.anno, { | |||||
tools: this.tools | |||||
}) | |||||
this.anno.setDrawingTool('polygon') | |||||
this.anno.on('createAnnotation', function (annotation) { | |||||
console.log('Created annotation', annotation) | |||||
}) | |||||
this.anno.on('createSelection', function (selection) { | |||||
console.log('Created selection', selection) | |||||
}) | |||||
this.anno.on('deleteAnnotation', function (annotation) { | |||||
console.log('Delete annotation', annotation) | |||||
}) | |||||
this.anno.on('mouseEnterAnnotation', function (annotation, element) { | |||||
console.log('Mouse ENTERED annotation', annotation) | |||||
}) | |||||
this.anno.on('selectAnnotation', function (annotation, element) { | |||||
console.log('Select annotation', annotation) | |||||
}) | |||||
this.anno.on('cancelSelected', function (selection) { | |||||
console.log('UNSELECTED') | |||||
}) | |||||
this.anno.on('clickAnnotation', function (annotation, element) { | |||||
console.log('Clicked annotation', annotation) | |||||
}) | |||||
}, | |||||
getAnotations () { | |||||
const annotations = this.anno.getAnnotations() | |||||
console.log(annotations) | |||||
} | |||||
} | |||||
} | |||||
</script> |
@@ -0,0 +1,33 @@ | |||||
<template> | |||||
<article class="group hover:bg-sky-500 hover:cursor-pointer p-4"> | |||||
<figure class="mb-8"> | |||||
<figcaption class="text-center text-black z-article-title relative"> | |||||
<h2 class="bebas-neue-regular uppercase text-6xl"> | |||||
william turner | |||||
</h2> | |||||
<p class="noto-sans-400 text-2xl capitalize tracking-widest"> | |||||
the burning of the houses | |||||
</p> | |||||
</figcaption> | |||||
<img class="-mt-20 z-article-image" src="https://files.erudi.fr/virages/turner.jpg" alt=""> | |||||
</figure> | |||||
<footer class="footer"> | |||||
<h3 class="bebas-neue-regular uppercase text-5xl"> | |||||
Romantisme | |||||
</h3> | |||||
<section class="flex mt-6"> | |||||
<span class="bebas-neue-regular uppercase text-5xl mt-4"> | |||||
1834 | |||||
</span> | |||||
<div class="noto-sans-400 text-2xl ml-6"> | |||||
<div class="mb-2"> | |||||
paysage urbain | |||||
</div> | |||||
<div class="text-slate-600"> | |||||
huile sur toile | |||||
</div> | |||||
</div> | |||||
</section> | |||||
</footer> | |||||
</article> | |||||
</template> |
@@ -0,0 +1,3 @@ | |||||
export DOMAIN="virages.$MAIN_DOMAIN" | |||||
export PORT="7827" | |||||
export PORT_EXPOSED="80" |
@@ -0,0 +1,20 @@ | |||||
services: | |||||
virages: | |||||
image: alpine | |||||
container_name: virages | |||||
restart: unless-stopped | |||||
ports: | |||||
- $PORT:$PORT_EXPOSED | |||||
volumes: | |||||
- "${MEDIA_DIR}:/mnt/media" | |||||
environment: | |||||
VIRTUAL_HOST: "${DOMAIN}" | |||||
LETSENCRYPT_HOST: "${DOMAIN}" | |||||
PUID: "${PUID}" | |||||
PGID: "${PGID}" | |||||
networks: | |||||
default: | |||||
name: dockerweb | |||||
external: true |
@@ -0,0 +1 @@ | |||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="512px" height="512px"><linearGradient id="neWh_vRuogN2YpsZ_Gur0a" x1=".337" x2="58.343" y1=".337" y2="58.343" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#889097"/><stop offset="1" stop-color="#4c5963"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0a)" d="M42,39H6c-1.105,0-2-0.895-2-2V11c0-1.105,0.895-2,2-2h36c1.105,0,2,0.895,2,2v26 C44,38.105,43.105,39,42,39z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0b" x1="13" x2="13" y1="-4.391" y2="24.676" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f44f5a"/><stop offset=".443" stop-color="#ee3d4a"/><stop offset="1" stop-color="#e52030"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0b)" d="M6,11h14v14H6V11z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0c" x1="25" x2="25" y1="-2.826" y2="34.377" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd869"/><stop offset="1" stop-color="#fec52b"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0c)" d="M21,11h8v7h-8V11z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0d" x1="25" x2="25" y1="13.902" y2="43.007" gradientUnits="userSpaceOnUse"><stop offset=".002" stop-color="#427fdb"/><stop offset=".397" stop-color="#2668cb"/><stop offset=".763" stop-color="#1358bf"/><stop offset="1" stop-color="#0c52bb"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0d)" d="M21,26h8v11h-8V26z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0e" x1="13" x2="13" y1="7.152" y2="48.479" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".26" stop-color="#f0f1f2"/><stop offset=".678" stop-color="#d9dcdf"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0e)" d="M6,26h14v11H6V26z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0f" x1="25" x2="25" y1="7.152" y2="48.479" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".26" stop-color="#f0f1f2"/><stop offset=".678" stop-color="#d9dcdf"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0f)" d="M21,19h8v6h-8V19z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0g" x1="33.5" x2="33.5" y1="7.152" y2="48.479" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".26" stop-color="#f0f1f2"/><stop offset=".678" stop-color="#d9dcdf"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0g)" d="M30,11h7v7h-7V11z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0h" x1="40" x2="40" y1="7.152" y2="48.479" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".26" stop-color="#f0f1f2"/><stop offset=".678" stop-color="#d9dcdf"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0h)" d="M38,16h4v7h-4V16z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0i" x1="40" x2="40" y1="-4.391" y2="24.676" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f44f5a"/><stop offset=".443" stop-color="#ee3d4a"/><stop offset="1" stop-color="#e52030"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0i)" d="M38,11h4v4h-4V11z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0j" x1="36" x2="36" y1="-2.826" y2="34.377" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd869"/><stop offset="1" stop-color="#fec52b"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0j)" d="M30,24h12v13H30V24z"/><linearGradient id="neWh_vRuogN2YpsZ_Gur0k" x1="33.5" x2="33.5" y1="13.902" y2="43.007" gradientUnits="userSpaceOnUse"><stop offset=".002" stop-color="#427fdb"/><stop offset=".397" stop-color="#2668cb"/><stop offset=".763" stop-color="#1358bf"/><stop offset="1" stop-color="#0c52bb"/></linearGradient><path fill="url(#neWh_vRuogN2YpsZ_Gur0k)" d="M30,19h7v4h-7V19z"/></svg> |
@@ -0,0 +1,21 @@ | |||||
// https://nuxt.com/docs/api/configuration/nuxt-config | |||||
export default defineNuxtConfig({ | |||||
devtools: { enabled: true }, | |||||
css: ['~/assets/css/main.css'], | |||||
postcss: { | |||||
plugins: { | |||||
tailwindcss: {}, | |||||
autoprefixer: {}, | |||||
}, | |||||
}, | |||||
app: { | |||||
head: { | |||||
charset: 'utf-8', | |||||
viewport: 'width=device-width, initial-scale=1', | |||||
} | |||||
}, | |||||
compatibilityDate: '2024-07-10' | |||||
}) |
@@ -0,0 +1,25 @@ | |||||
{ | |||||
"name": "nuxt-app", | |||||
"private": true, | |||||
"type": "module", | |||||
"scripts": { | |||||
"build": "nuxt build", | |||||
"dev": "nuxt dev", | |||||
"generate": "nuxt generate", | |||||
"preview": "nuxt preview", | |||||
"postinstall": "nuxt prepare" | |||||
}, | |||||
"dependencies": { | |||||
"atropos": "^2.0.2", | |||||
"nuxt": "^3.12.3", | |||||
"unhead": "^1.9.15", | |||||
"vue": "^3.4.31", | |||||
"vue-router": "^4.4.0" | |||||
}, | |||||
"devDependencies": { | |||||
"autoprefixer": "^10.4.19", | |||||
"postcss": "^8.4.39", | |||||
"sass": "^1.77.6", | |||||
"tailwindcss": "^3.4.4" | |||||
} | |||||
} |
@@ -0,0 +1,37 @@ | |||||
<template> | |||||
<div class="flex justify-center main"> | |||||
<Article /> | |||||
<!-- <Annotorious /> --> | |||||
<Openseadragon /> | |||||
</div> | |||||
</template> | |||||
<style> | |||||
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap'); | |||||
.bebas-neue-regular { | |||||
font-family: 'Bebas Neue', sans-serif; | |||||
font-weight: 400; | |||||
font-style: normal; | |||||
} | |||||
.noto-sans-400 { | |||||
font-family: "Noto Sans", sans-serif; | |||||
font-optical-sizing: auto; | |||||
font-weight: 400; | |||||
font-style: normal; | |||||
font-variation-settings: | |||||
"wdth" 100; | |||||
} | |||||
.text-6xl { | |||||
font-size: 120px; | |||||
} | |||||
.main { | |||||
margin: 0 auto; | |||||
max-width: 860px; | |||||
} | |||||
.z-article-title { | |||||
z-index: 50; | |||||
} | |||||
.z-article-image { | |||||
z-index: 49; | |||||
} | |||||
</style> |
@@ -0,0 +1,5 @@ | |||||
<template> | |||||
<div class="bg-black h-screen w-full flex justify-center p-16"> | |||||
<img src="/logo.svg"> | |||||
</div> | |||||
</template> |
@@ -0,0 +1,70 @@ | |||||
export default eventHandler(() => { | |||||
return [ | |||||
{ | |||||
id: 0, | |||||
name: "L'efondras", | |||||
link: "https://leffondras.bandcamp.com/music", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 1, | |||||
name: "The kundalini genie", | |||||
link: "https://the-kundalini-genie.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 2, | |||||
name: "Fontaines D.C.", | |||||
link: "https://fontainesdc.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 3, | |||||
name: "Fontanarosa", | |||||
link: "https://fontanarosa.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 4, | |||||
name: "Johnny mafia", | |||||
link: "https://johnnymafia.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 5, | |||||
name: "New candys", | |||||
link: "https://newcandys.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 6, | |||||
name: "Magic shoppe", | |||||
link: "https://magicshoppe.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 7, | |||||
name: "Les jaguars", | |||||
link: "https://radiomartiko.bandcamp.com/album/surf-qu-b-cois", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 8, | |||||
name: "TRAAMS", | |||||
link: "https://traams.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 9, | |||||
name: "Blue orchid", | |||||
link: "https://blue-orchid.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
}, | |||||
{ | |||||
id: 10, | |||||
name: "I love UFO", | |||||
link: "https://bruitblanc.bandcamp.com", | |||||
style: [0, 1, 2] | |||||
} | |||||
] | |||||
}) |
@@ -0,0 +1,12 @@ | |||||
export default eventHandler(() => { | |||||
return [ | |||||
{ | |||||
id: 'ES00', | |||||
name: 'Zero' | |||||
}, | |||||
{ | |||||
id: 'ES01', | |||||
name: 'Zero B-Side' | |||||
} | |||||
] | |||||
}) |
@@ -0,0 +1,16 @@ | |||||
export default eventHandler(() => { | |||||
return [ | |||||
{ | |||||
"id": 0, | |||||
"name": "post-rock" | |||||
}, | |||||
{ | |||||
"id": 1, | |||||
"name": "math-rock" | |||||
}, | |||||
{ | |||||
"id": 2, | |||||
"name": "indie-pop" | |||||
} | |||||
] | |||||
}) |
@@ -0,0 +1,114 @@ | |||||
export default eventHandler(() => { | |||||
return [ | |||||
{ | |||||
id: 0, | |||||
number: 1, | |||||
compilation: 'ES00', | |||||
title: 'The grinding wheel', | |||||
artist: 0, | |||||
duration: 392, | |||||
bpm: 0, | |||||
link: 'https://arakirecords.bandcamp.com/track/the-grinding-wheel' | |||||
}, | |||||
{ | |||||
id: 1, | |||||
number: 2, | |||||
compilation: 'ES00', | |||||
title: 'Bleach', | |||||
artist: 1, | |||||
duration: 500, | |||||
bpm: 0, | |||||
link: 'https://the-kundalini-genie.bandcamp.com/track/bleach-2' | |||||
}, | |||||
{ | |||||
id: 2, | |||||
number: 3, | |||||
compilation: 'ES00', | |||||
title: 'Televised mind', | |||||
artist: 2, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://fontainesdc.bandcamp.com/track/televised-mind' | |||||
}, | |||||
{ | |||||
id: 3, | |||||
number: 4, | |||||
compilation: 'ES00', | |||||
title: 'In it', | |||||
artist: 3, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://howlinbananarecords.bandcamp.com/track/in-it' | |||||
}, | |||||
{ | |||||
id: 4, | |||||
number: 5, | |||||
compilation: 'ES00', | |||||
title: 'Bad michel', | |||||
artist: 4, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://johnnymafia.bandcamp.com/track/bad-michel-3' | |||||
}, | |||||
{ | |||||
id: 5, | |||||
number: 6, | |||||
compilation: 'ES00', | |||||
title: 'Overall', | |||||
artist: 5, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://newcandys.bandcamp.com/track/overall' | |||||
}, | |||||
{ | |||||
id: 6, | |||||
number: 6, | |||||
compilation: 'ES00', | |||||
title: 'Guitar jet', | |||||
artist: 5, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://radiomartiko.bandcamp.com/track/guitare-jet' | |||||
}, | |||||
{ | |||||
id: 7, | |||||
number: 6, | |||||
compilation: 'ES00', | |||||
title: 'Blowup', | |||||
artist: 5, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://magicshoppe.bandcamp.com/track/blowup' | |||||
}, | |||||
{ | |||||
id: 8, | |||||
number: 6, | |||||
compilation: 'ES00', | |||||
title: 'Intercontinental radio waves', | |||||
artist: 5, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://traams.bandcamp.com/track/intercontinental-radio-waves' | |||||
}, | |||||
{ | |||||
id: 9, | |||||
number: 6, | |||||
compilation: 'ES00', | |||||
title: 'Here comes the sun', | |||||
artist: 5, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://blue-orchid.bandcamp.com/track/here-come-the-sun' | |||||
}, | |||||
{ | |||||
id: 10, | |||||
number: 11, | |||||
compilation: 'ES00', | |||||
title: 'Like in the movies', | |||||
artist: 5, | |||||
duration: 0, | |||||
bpm: 0, | |||||
link: 'https://bruitblanc.bandcamp.com/track/like-in-the-movies-2' | |||||
}, | |||||
] | |||||
}) |
@@ -0,0 +1,3 @@ | |||||
{ | |||||
"extends": "../.nuxt/tsconfig.server.json" | |||||
} |
@@ -0,0 +1,15 @@ | |||||
/** @type {import('tailwindcss').Config} */ | |||||
module.exports = { | |||||
content: [ | |||||
"./components/**/*.{js,vue,ts}", | |||||
"./layouts/**/*.vue", | |||||
"./pages/**/*.vue", | |||||
"./plugins/**/*.{js,ts}", | |||||
"./app.vue", | |||||
"./error.vue", | |||||
], | |||||
theme: { | |||||
extend: {}, | |||||
}, | |||||
plugins: [], | |||||
} |
@@ -0,0 +1,4 @@ | |||||
{ | |||||
// https://nuxt.com/docs/guide/concepts/typescript | |||||
"extends": "./.nuxt/tsconfig.json" | |||||
} |