Compare commits

...

3 Commits

Author SHA1 Message Date
845418da60 started writting header component 2024-08-11 11:08:54 +09:00
28c9720239 created general outline of website 2024-07-28 22:08:11 +09:00
18c331d486 Inited Nuxt 2024-07-25 21:39:21 +09:00
35 changed files with 13716 additions and 0 deletions

24
.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
dist
# Node dependencies
node_modules
# Logs
logs
*.log
# Misc
.DS_Store
.fleet
.idea
# Local env files
.env
.env.*
!.env.example

1
.nuxtignore Normal file
View File

@@ -0,0 +1 @@
src-manager/

25
app.vue Normal file
View File

@@ -0,0 +1,25 @@
<script setup lang="ts">
useHead({
titleTemplate: (titleChunk: any) => {
return titleChunk ? `岐阜高専宇宙工学研究会 SERA - ${titleChunk}` : "岐阜高専宇宙工学研究会 SERA";
},
link: [
{rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg'}
],
htmlAttrs: {
lang: 'ja'
}
});
</script>
<template>
<div id="App">
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</div>
</template>
<style>
@import "assets/styles/app.css";
</style>

BIN
assets/databases/news.db Normal file

Binary file not shown.

Binary file not shown.

13
assets/styles/app.css Normal file
View File

@@ -0,0 +1,13 @@
@font-face {
font-family: "Noto Sans JP";
src: url('../fonts/NotoSansJP-VariableFont_wght.ttf') format('truetype');
}
#App {
display: grid;
font-family: "Noto Sans JP";
}
body {
margin: 0;
}

9
components/NewsList.vue Normal file
View File

@@ -0,0 +1,9 @@
<script setup lang="ts"></script>
<template>
<div>
Component: newslist
</div>
</template>
<style scoped></style>

9
components/TheFooter.vue Normal file
View File

@@ -0,0 +1,9 @@
<script setup lang="ts"></script>
<template>
<div>
Component: TheFooter
</div>
</template>
<style scoped></style>

44
components/TheHeader.vue Normal file
View File

@@ -0,0 +1,44 @@
<script setup lang="ts"></script>
<template>
<div>
<ul>
<li>
<NuxtLink to="/news">
News
</NuxtLink>
</li>
<li>
<NuxtLink to="/projects">
Projects
</NuxtLink>
</li>
<li>Link</li>
<li>Contact</li>
<li>
<NuxtLink to="/about">
About SERA
</NuxtLink>
</li>
</ul>
<NuxtLink to="/">
<img ref="/sera-logo-no-text.svg">
</NuxtLink>
<ul>
<li>
<NuxtLink to="/">For non-member</NuxtLink>
</li>
<li>
<NuxtLink to="/">Info</NuxtLink>
</li>
</ul>
</div>
</template>
<style scoped>
div {
display: grid;
grid-row: 1fr;
grid-template-columns: 1fr 1fr 1fr;
}
</style>

12
layouts/default.vue Normal file
View File

@@ -0,0 +1,12 @@
<script setup lang="ts"></script>
<template>
<div>
<TheHeader />
Layout: default
<slot />
<TheFooter />
</div>
</template>
<style scoped></style>

5
nuxt.config.ts Normal file
View File

@@ -0,0 +1,5 @@
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: '2024-04-03',
devtools: { enabled: true }
})

11021
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

17
package.json Normal file
View File

@@ -0,0 +1,17 @@
{
"name": "nuxt-app",
"private": true,
"type": "module",
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare"
},
"dependencies": {
"nuxt": "^3.12.4",
"sqlite3": "^5.1.7",
"vue": "latest"
}
}

View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: achievements
</div>
</template>

5
pages/about/gallery.vue Normal file
View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: gallery
</div>
</template>

5
pages/about/index.vue Normal file
View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: index
</div>
</template>

5
pages/about/sera.vue Normal file
View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: sera
</div>
</template>

10
pages/index.vue Normal file
View File

@@ -0,0 +1,10 @@
<script setup lang="ts"></script>
<template>
<div>
Page: index
<NewsList />
</div>
</template>
<style scoped></style>

9
pages/news/[article].vue Normal file
View File

@@ -0,0 +1,9 @@
<script setup lang="ts"></script>
<template>
<div>
Page: news/[article]
</div>
</template>
<style scoped></style>

9
pages/news/index.vue Normal file
View File

@@ -0,0 +1,9 @@
<script setup lang="ts"></script>
<template>
<div>
Page: news/index
</div>
</template>
<style scoped></style>

View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: cansat
</div>
</template>

View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: edu-robot
</div>
</template>

5
pages/projects/index.vue Normal file
View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: index
</div>
</template>

View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: kosen-x
</div>
</template>

View File

@@ -0,0 +1,5 @@
<template>
<div>
Page: rocket
</div>
</template>

39
public/favicon.svg Normal file
View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="149.7076mm"
height="149.44299mm"
viewBox="0 0 149.7076 149.44299"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1" /><g
id="layer4"
transform="translate(1.4656542e-6,-0.09332279)"><rect
style="fill:#ffffff;stroke:none;stroke-width:1.36385"
id="rect1"
width="149.44318"
height="149.44299"
x="0.13998656"
y="0.093322791" /></g><g
id="layer5"
transform="translate(1.4656542e-6,-0.09332279)"><g
id="layer2"
style="display:inline"
transform="matrix(7.4757793,0,0,7.4757793,-73.060581,51.796593)"><g
id="g7"><path
style="display:inline;opacity:1;fill:#800000;fill-opacity:1;stroke:#800000;stroke-width:0.965;stroke-dasharray:none;stroke-opacity:1"
d="M 16.405379,2.6374758 H 29.798654"
id="path7" /><path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.965;stroke-dasharray:none;stroke-opacity:1"
d="M 9.7729717,4.8127279 H 13.522351 L 14.97293,2.7720819 H 13.006042 V 2.4032904 l 1.303063,-1.91771498 h 3.368296 l -2.66561,4.24346628 v 0.1966886 h 2.331844"
id="path4" /><path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.965;stroke-dasharray:none;stroke-opacity:1"
d="m 17.636921,0.4840841 h 3.540397 l -2.784194,4.3274078"
id="path5" /><path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.965;stroke-dasharray:none;stroke-opacity:1"
d="m 21.171354,0.48272048 h 2.63071 l 0.08605,0.11063709 -2.200454,2.11440413 3.589569,3.0609688 H 25.40016 V 0.29217835 H 25.203468 L 19.874432,8.6575962"
id="path6" /></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="149.7076mm"
height="64.060745mm"
viewBox="0 0 149.7076 64.060745"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1"><linearGradient
id="swatch2"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2" /></linearGradient><linearGradient
id="swatch1"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1" /></linearGradient></defs><g
id="layer2"
style="display:inline"
transform="matrix(7.4757794,0,0,7.4757794,-73.06058,-1.1937238)"><g
id="g7"><path
style="display:inline;opacity:1;fill:#800000;fill-opacity:1;stroke:#800000;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1"
d="M 16.405379,2.6374758 H 29.798654"
id="path7" /><path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1"
d="M 9.7729717,4.8127279 H 13.522351 L 14.97293,2.7720819 H 13.006042 V 2.4032904 l 1.303063,-1.91771498 h 3.368296 l -2.66561,4.24346628 v 0.1966886 h 2.331844"
id="path4" /><path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1"
d="m 17.636921,0.4840841 h 3.540397 l -2.784194,4.3274078"
id="path5" /><path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1"
d="m 21.171354,0.48272048 h 2.63071 l 0.08605,0.11063709 -2.200454,2.11440413 3.589569,3.0609688 H 25.40016 V 0.29217835 H 25.203468 L 19.874432,8.6575962"
id="path6" /></g></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

77
public/sera-logo-text.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

3
server/tsconfig.json Normal file
View File

@@ -0,0 +1,3 @@
{
"extends": "../.nuxt/tsconfig.server.json"
}

18
src-manager/index.js Normal file
View File

@@ -0,0 +1,18 @@
const express = require('express');
const sqlite3 = require('sqlite3');
const path = require('path');
const app = express();
const port = 3001;
//const db = new sqlite3.Database("../assets/databases/news.db");
app.use(express.static('pages'));
app.use(express.static(path.join(__dirname, "../assets")));
app.use(express.static(path.join(__dirname, "../public")));
app.get('/api/hello', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Manager is now listening on port ${port}`);
});

2250
src-manager/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

15
src-manager/package.json Normal file
View File

@@ -0,0 +1,15 @@
{
"name": "manager",
"version": "1.0.0",
"description": "content manager for sera hp",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "kenryus",
"license": "ISC",
"dependencies": {
"express": "^4.19.2",
"sqlite3": "^5.1.7"
}
}

View File

@@ -0,0 +1,20 @@
<html>
<head>
<script src="https://unpkg.com/htmx.org@2.0.1" integrity="sha384-QWGpdj554B4ETpJJC9z+ZHJcA/i59TyjxEPXiiUgN2WmTyV5OEZWCD6gQhgkdpB/" crossorigin="anonymous"></script>
</head>
<body>
<h1>Content Manager</h1>
<p>Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.</p>
<button hx-get="/api/hello"
hx-trigger="click"
hx-swap="afterend"
hx-target="#list"
>
Click Me!
</button>
<p id="list"></p>
</body>
</html>

View File

4
tsconfig.json Normal file
View File

@@ -0,0 +1,4 @@
{
// https://nuxt.com/docs/guide/concepts/typescript
"extends": "./.nuxt/tsconfig.json"
}