- 新增 StudioController,依赖 studioUseCase 接口,遵循 ISP 接口隔离 - PostRepo 新增 FindByUserIDAndStatus 方法,按用户+状态分页查询 - PostService 新增 ListByUser、GetOverview 及 StudioOverview 统计 - /studio 页面路由(概览/管理/草稿箱/写文章/数据分析)+ /api/studio API - 复用 Vditor 编辑器,studio-editor.js 对接 /api/studio/posts 端点 - 新增 studio.css(B站风格三栏布局+统计卡片+状态筛选tabs) - 模板引擎注册 add/subtract 函数,分页模板中直接使用
73 lines
3.1 KiB
HTML
73 lines
3.1 KiB
HTML
{{template "layout/header.html" .}}
|
|
<body>
|
|
|
|
{{template "layout/nav.html" .}}
|
|
|
|
<div class="studio-wrapper">
|
|
{{template "studio/sidebar.html" .}}
|
|
|
|
<main class="studio-main">
|
|
<div class="editor-layout">
|
|
<form id="postForm" class="editor-form">
|
|
<input type="hidden" id="postId" value="{{if .Post}}{{.Post.ID}}{{end}}">
|
|
{{if .Post}}
|
|
<textarea id="editBody" style="display:none">{{.Post.Body}}</textarea>
|
|
{{end}}
|
|
|
|
<div class="editor-header">
|
|
<input type="text" id="postTitle" class="editor-title-input"
|
|
value="{{if .Post}}{{.Post.Title}}{{end}}"
|
|
placeholder="输入文章标题..."
|
|
maxlength="200" required autofocus>
|
|
</div>
|
|
|
|
<div class="editor-main">
|
|
<div class="editor-pane">
|
|
<div id="vditor"></div>
|
|
</div>
|
|
<aside class="editor-sidebar">
|
|
<div class="editor-sidebar-section">
|
|
<h4>快捷语法</h4>
|
|
<ul class="tips-list">
|
|
<li><code>#</code> <code>##</code> <code>###</code> 标题</li>
|
|
<li><code>**粗体**</code> <code>*斜体*</code></li>
|
|
<li><code>`行内代码`</code></li>
|
|
<li><code>```</code> 代码块</li>
|
|
<li><code>></code> 引用</li>
|
|
<li><code>-</code> 无序列表</li>
|
|
<li><code>[文字](链接)</code></li>
|
|
<li><code></code></li>
|
|
</ul>
|
|
</div>
|
|
<div class="editor-sidebar-section">
|
|
<h4>发布提示</h4>
|
|
<ul class="tips-list">
|
|
<li>标题控制在 50 字以内</li>
|
|
<li>正文清晰分段,便于阅读</li>
|
|
<li>代码使用代码块包裹</li>
|
|
<li>Ctrl+S 快速提交</li>
|
|
</ul>
|
|
</div>
|
|
</aside>
|
|
</div>
|
|
|
|
<div class="editor-statusbar">
|
|
<span class="status-item" id="wordCount">0 字</span>
|
|
<span class="status-item status-draft" id="draftStatus" style="display:none">草稿已保存</span>
|
|
<span class="status-spacer"></span>
|
|
<button type="submit" class="btn btn-primary btn-submit">{{if .Post}}保存修改{{else}}发布帖子{{end}}</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
{{template "layout/footer.html" .}}
|
|
|
|
<link rel="stylesheet" href="/static/vditor/dist/index.css">
|
|
<script src="/static/vditor/dist/index.min.js"></script>
|
|
<script src="/static/js/common.js"></script>
|
|
<script src="/static/js/studio-editor.js"></script>
|
|
</body>
|
|
</html>
|