From 787747aa7fb95fcd821c0bc5dd14403877e8cb2a Mon Sep 17 00:00:00 2001 From: zenn Date: Fri, 1 May 2026 18:00:22 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EA=B3=BC=20=ED=83=9C=EA=B7=B8=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/admin/AdminPostForm.vue | 178 +++++++++++ components/admin/AdminTagForm.vue | 150 +++++++++ components/site/LeftSidebar.vue | 43 +-- db/migrations/001_initial_schema.sql | 11 + db/migrations/002_seed_development.sql | 6 +- db/migrations/003_add_tag_display_fields.sql | 18 ++ docker-compose.yml | 4 +- docs/convention.md | 1 + docs/deploy.md | 29 +- docs/history.md | 30 ++ docs/map.md | 29 ++ docs/spec.md | 20 +- docs/todo.md | 11 +- docs/update.md | 39 +++ layouts/admin.vue | 16 + middleware/admin-auth.global.js | 17 + nuxt.config.js | 9 + package-lock.json | 4 +- package.json | 7 +- pages/admin/index.vue | 34 +- pages/admin/login.vue | 79 +++++ pages/admin/posts/[id].vue | 98 +++++- pages/admin/posts/index.vue | 119 ++++++- pages/admin/posts/new.vue | 42 ++- pages/admin/tags/[id].vue | 94 ++++++ pages/admin/tags/index.vue | 109 ++++++- pages/admin/tags/new.vue | 48 +++ pages/index.vue | 52 +++- pages/pages/[slug].vue | 18 +- pages/posts/[slug].vue | 44 ++- pages/tags/[slug].vue | 53 +++- scripts/migrate-development-db.js | 123 ++++++++ server/repositories/content-repository.js | 308 ++++++++++++++++++- server/routes/admin/api/auth/login.post.js | 43 +++ server/routes/admin/api/auth/logout.post.js | 14 + server/routes/admin/api/auth/me.get.js | 8 + server/routes/admin/api/posts.get.js | 13 + server/routes/admin/api/posts.post.js | 35 +++ server/routes/admin/api/posts/[id].delete.js | 26 ++ server/routes/admin/api/posts/[id].get.js | 24 ++ server/routes/admin/api/posts/[id].put.js | 45 +++ server/routes/admin/api/tags.get.js | 13 + server/routes/admin/api/tags.post.js | 35 +++ server/routes/admin/api/tags/[id].delete.js | 26 ++ server/routes/admin/api/tags/[id].get.js | 24 ++ server/routes/admin/api/tags/[id].put.js | 45 +++ server/utils/admin-auth.js | 147 +++++++++ server/utils/admin-post-input.js | 20 ++ server/utils/admin-tag-input.js | 16 + server/utils/content-schema.js | 4 +- server/utils/sample-content.js | 8 +- 51 files changed, 2261 insertions(+), 128 deletions(-) create mode 100644 components/admin/AdminPostForm.vue create mode 100644 components/admin/AdminTagForm.vue create mode 100644 db/migrations/003_add_tag_display_fields.sql create mode 100644 middleware/admin-auth.global.js create mode 100644 pages/admin/login.vue create mode 100644 pages/admin/tags/[id].vue create mode 100644 pages/admin/tags/new.vue create mode 100644 scripts/migrate-development-db.js create mode 100644 server/routes/admin/api/auth/login.post.js create mode 100644 server/routes/admin/api/auth/logout.post.js create mode 100644 server/routes/admin/api/auth/me.get.js create mode 100644 server/routes/admin/api/posts.get.js create mode 100644 server/routes/admin/api/posts.post.js create mode 100644 server/routes/admin/api/posts/[id].delete.js create mode 100644 server/routes/admin/api/posts/[id].get.js create mode 100644 server/routes/admin/api/posts/[id].put.js create mode 100644 server/routes/admin/api/tags.get.js create mode 100644 server/routes/admin/api/tags.post.js create mode 100644 server/routes/admin/api/tags/[id].delete.js create mode 100644 server/routes/admin/api/tags/[id].get.js create mode 100644 server/routes/admin/api/tags/[id].put.js create mode 100644 server/utils/admin-auth.js create mode 100644 server/utils/admin-post-input.js create mode 100644 server/utils/admin-tag-input.js diff --git a/components/admin/AdminPostForm.vue b/components/admin/AdminPostForm.vue new file mode 100644 index 0000000..d5332e5 --- /dev/null +++ b/components/admin/AdminPostForm.vue @@ -0,0 +1,178 @@ + + +