diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..216565b --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,44 @@ +{ + "permissions": { + "allow": [ + "Bash(git init:*)", + "Bash(git add:*)", + "Bash(git commit:*)", + "Bash(git config:*)", + "Bash(npx create-next-app@latest:*)", + "Bash(npx create-next-app@14:*)", + "Bash(npm install:*)", + "Bash(timeout 30 npm run dev:*)", + "Bash(timeout 20 npm run dev:*)", + "Bash(git -C /home/PaginaNovelasYRpg add:*)", + "Bash(git -C /home/PaginaNovelasYRpg status)", + "Bash(git -C:*)", + "Bash(echo:*)", + "Bash(npx tsc:*)", + "Bash(pkill:*)", + "Bash(ls:*)", + "Bash(npm run build:*)", + "Bash(curl -s -X POST \"https://git.consultoria-as.com/api/v1/user/repos\" -H \"Content-Type: application/json\" -u \"consultoria-as:Aasi940812\" -d '{\"\"name\"\":\"\"cronicas-de-los-reinos\"\",\"\"description\"\":\"\"Las historias epicas de los MMORPGs que marcaron una era\"\",\"\"private\"\":false}')", + "Bash(python3:*)", + "Bash(git remote add:*)", + "Bash(git branch:*)", + "Bash(git push:*)", + "Bash(git remote set-url:*)", + "Bash(ip addr:*)", + "Bash(pm2 start:*)", + "Bash(pm2 startup:*)", + "Bash(pm2 save:*)", + "Bash(curl:*)", + "Bash(pm2 stop:*)", + "Bash(pm2 logs:*)", + "Bash(pm2 delete:*)", + "Bash(lsof:*)", + "Bash(xargs:*)", + "Bash(pm2 kill:*)", + "Bash(ss:*)", + "Bash(kill:*)", + "Bash(NODE_ENV=production npx next build:*)", + "Bash(pm2 restart:*)" + ] + } +} diff --git a/ecosystem.config.js b/ecosystem.config.js new file mode 100644 index 0000000..301dff4 --- /dev/null +++ b/ecosystem.config.js @@ -0,0 +1,15 @@ +module.exports = { + apps: [ + { + name: "cronicas-de-los-reinos", + cwd: "/home/PaginaNovelasYRpg", + script: "node_modules/.bin/next", + args: "start -H 0.0.0.0 -p 3000", + env: { + NODE_ENV: "production", + }, + max_restarts: 5, + restart_delay: 3000, + }, + ], +}; diff --git a/src/components/BookCover.tsx b/src/components/BookCover.tsx index bb3dcd0..7c5d48e 100644 --- a/src/components/BookCover.tsx +++ b/src/components/BookCover.tsx @@ -5,7 +5,7 @@ export default function BookCover({ game }: { game: GameWithChapters }) { return (
{/* Back to shelf */} -
+
- {/* Cover */} -
- {/* Decorative top */} -
- -

- {game.title} -

- -

- {game.subtitle} -

- - {/* Decorative divider */} -
-
+ {/* Cover - two column layout on large screens */} +
+ {/* Left: Title and description */} +
+ {/* Decorative top */}
-
+ +

+ {game.title} +

+ +

+ {game.subtitle} +

+ + {/* Decorative divider */} +
+
+
+
+
+ +

+ {game.description} +

-

- {game.description} -

- - {/* Table of Contents */} -
-

+ {/* Right: Table of Contents */} +
+

Indice

@@ -61,30 +64,30 @@ export default function BookCover({ game }: { game: GameWithChapters }) { {String(chapter.number).padStart(2, "0")} - + {chapter.title} - + ))}
-

- {/* Decorative bottom */} -
+ {/* Decorative bottom */} +
+
); diff --git a/src/components/BookShelf.tsx b/src/components/BookShelf.tsx index c0306eb..5792e50 100644 --- a/src/components/BookShelf.tsx +++ b/src/components/BookShelf.tsx @@ -3,22 +3,22 @@ import BookSpine from "./BookSpine"; export default function BookShelf({ games }: { games: GameMeta[] }) { return ( -
+
{/* Title */} -
-

+
+

Cronicas de los Reinos

-

+

Las historias epicas de los mundos que nos unieron

{/* Shelf */} -
+
{/* Books row */} -
+
{games.map((game) => ( ))} @@ -30,7 +30,7 @@ export default function BookShelf({ games }: { games: GameMeta[] }) {
{/* Footer */} -

+

Selecciona un tomo para comenzar a leer

diff --git a/src/components/BookSpine.tsx b/src/components/BookSpine.tsx index 98033e6..a420531 100644 --- a/src/components/BookSpine.tsx +++ b/src/components/BookSpine.tsx @@ -5,7 +5,7 @@ export default function BookSpine({ game }: { game: GameMeta }) { return (

{game.title}

{game.subtitle} diff --git a/src/components/ChapterReader.tsx b/src/components/ChapterReader.tsx index fb5fd66..59c3e3a 100644 --- a/src/components/ChapterReader.tsx +++ b/src/components/ChapterReader.tsx @@ -23,7 +23,7 @@ export default function ChapterReader({ {/* Header */} -

+
{/* Chapter heading */} -
+

Capitulo {chapter.number} de {totalChapters}

-

+

{chapter.title}

-
+
-
+
{/* Chapter content */} -
+
{/* Chapter navigation */} -