Standardize admin pages and blog editor
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m39s

This commit is contained in:
2026-07-09 11:33:17 +09:00
parent 9cf6675dc9
commit 55933649f6
27 changed files with 825 additions and 68 deletions
+81 -2
View File
@@ -1,4 +1,83 @@
@page
@model TaxBaik.Web.Pages.Admin.Blog.CreateModel
@{ ViewData["Title"] = "블로그 등록"; }
<section class="container py-5"><h1 class="h2 fw-bold">블로그 등록</h1></section>
@{
ViewData["Title"] = "블로그 등록";
}
<section class="container-fluid py-4" data-blog-editor-root>
<div class="row g-3">
<div class="col-12">
<div class="page-header">
<div class="row align-items-center">
<div class="col">
<div class="page-pretitle">Content</div>
<h2 class="page-title">블로그 등록</h2>
</div>
</div>
</div>
</div>
<div class="col-lg-8">
<form method="post" class="card">
<div class="card-body">
<div asp-validation-summary="All" class="alert alert-danger"></div>
<input type="hidden" asp-for="Input.Content" data-blog-editor-value />
<div class="mb-3">
<label asp-for="Input.Title" class="form-label"></label>
<input asp-for="Input.Title" class="form-control" />
<span asp-validation-for="Input.Title" class="text-danger small"></span>
</div>
<div class="mb-3">
<label class="form-label">본문</label>
<div class="d-flex flex-wrap gap-2 mb-2">
<button type="button" class="btn btn-sm btn-outline-secondary" data-blog-command="bold">Bold</button>
<button type="button" class="btn btn-sm btn-outline-secondary" data-blog-command="italic">Italic</button>
<button type="button" class="btn btn-sm btn-outline-secondary" data-blog-command="insertUnorderedList">UL</button>
<button type="button" class="btn btn-sm btn-outline-secondary" data-blog-command="formatBlock" data-blog-value="h2">H2</button>
<button type="button" class="btn btn-sm btn-outline-secondary" data-blog-command="formatBlock" data-blog-value="blockquote">Quote</button>
</div>
<div class="form-control" data-blog-editor contenteditable="true" style="min-height: 320px; overflow:auto;"></div>
<div class="form-hint text-muted small mt-2">HTML 태그는 그대로 저장되고 홈페이지에서 렌더링됩니다.</div>
</div>
<div class="row g-3">
<div class="col-md-4">
<label asp-for="Input.CategoryId" class="form-label"></label>
<input asp-for="Input.CategoryId" class="form-control" />
</div>
<div class="col-md-4">
<label asp-for="Input.IsPublished" class="form-label d-block"></label>
<input asp-for="Input.IsPublished" class="form-check-input" type="checkbox" />
</div>
<div class="col-md-4">
<label asp-for="Input.ThumbnailUrl" class="form-label"></label>
<input asp-for="Input.ThumbnailUrl" class="form-control" />
</div>
<div class="col-md-6">
<label asp-for="Input.SeoTitle" class="form-label"></label>
<input asp-for="Input.SeoTitle" class="form-control" />
</div>
<div class="col-md-6">
<label asp-for="Input.SeoDescription" class="form-label"></label>
<input asp-for="Input.SeoDescription" class="form-control" />
</div>
</div>
</div>
<div class="card-footer d-flex justify-content-between">
<a class="btn btn-outline-secondary" href="/admin/blog">취소</a>
<button class="btn btn-primary" type="submit">저장</button>
</div>
</form>
</div>
<div class="col-lg-4">
<div class="card">
<div class="card-header"><h3 class="card-title">미리보기</h3></div>
<div class="card-body">
<article class="markdown-body" data-blog-preview></article>
</div>
</div>
</div>
</div>
</section>
@section Scripts {
<script src="~/js/admin-blog-editor.js" asp-append-version="true"></script>
}