🎨 细节优化

pull/216/head
ruibaby 2019-02-15 16:20:43 +08:00
parent 1e648ddc45
commit a3934657ad
12 changed files with 198 additions and 152 deletions

View File

@ -45,11 +45,13 @@ public class FrontOthersController {
* rss * rss
* *
* @param model model * @param model model
*
* @return String * @return String
*
* @throws IOException IOException * @throws IOException IOException
* @throws TemplateException TemplateException * @throws TemplateException TemplateException
*/ */
@GetMapping(value = {"feed", "feed.xml", "atom", "atom.xml"}, produces = "application/xml;charset=UTF-8") @GetMapping(value = {"feed", "feed.xml", "rss", "rss.xml"}, produces = "application/xml;charset=UTF-8")
@ResponseBody @ResponseBody
public String feed(Model model) throws IOException, TemplateException { public String feed(Model model) throws IOException, TemplateException {
String rssPosts = OPTIONS.get(BlogPropertiesEnum.RSS_POSTS.getProp()); String rssPosts = OPTIONS.get(BlogPropertiesEnum.RSS_POSTS.getProp());
@ -71,11 +73,45 @@ public class FrontOthersController {
return FreeMarkerTemplateUtils.processTemplateIntoString(template, model); return FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
} }
/**
* atom.xml
*
* @param model model
*
* @return String
*
* @throws IOException IOException
* @throws TemplateException TemplateException
*/
@GetMapping(value = {"atom", "atom.xml"}, produces = "application/xml;charset=UTF-8")
@ResponseBody
public String atom(Model model) throws IOException, TemplateException {
String rssPosts = OPTIONS.get(BlogPropertiesEnum.RSS_POSTS.getProp());
if (StrUtil.isBlank(rssPosts)) {
rssPosts = "20";
}
final Sort sort = new Sort(Sort.Direction.DESC, "postDate");
final Pageable pageable = PageRequest.of(0, Integer.parseInt(rssPosts), sort);
final Page<Post> postsPage = postService.findPostByStatus(0, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable).map(post -> {
if (StrUtil.isNotEmpty(post.getPostPassword())) {
post.setPostContent("该文章为加密文章");
post.setPostSummary("该文章为加密文章");
}
return post;
});
final List<Post> posts = postsPage.getContent();
model.addAttribute("posts", posts);
final Template template = freeMarker.getConfiguration().getTemplate("common/web/atom.ftl");
return FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
}
/** /**
* XML * XML
* *
* @param model model * @param model model
*
* @return String * @return String
*
* @throws IOException IOException * @throws IOException IOException
* @throws TemplateException TemplateException * @throws TemplateException TemplateException
*/ */
@ -99,6 +135,7 @@ public class FrontOthersController {
* HTML * HTML
* *
* @param model model * @param model model
*
* @return String * @return String
*/ */
@GetMapping(value = "sitemap.html", produces = {"text/html"}) @GetMapping(value = "sitemap.html", produces = {"text/html"})
@ -119,7 +156,9 @@ public class FrontOthersController {
* robots * robots
* *
* @param model model * @param model model
*
* @return String * @return String
*
* @throws IOException IOException * @throws IOException IOException
* @throws TemplateException TemplateException * @throws TemplateException TemplateException
*/ */

View File

@ -46,6 +46,7 @@ admin.menu.profile = 个人资料
admin.menu.settings = 设置 admin.menu.settings = 设置
admin.menu.blog-settings = 博客设置 admin.menu.blog-settings = 博客设置
admin.menu.blog-backup = 博客备份 admin.menu.blog-backup = 博客备份
admin.menu.tools = 小工具
# header模块 # header模块
admin.module.header.a.title.turn-to-front = 跳转到前台 admin.module.header.a.title.turn-to-front = 跳转到前台
@ -95,6 +96,16 @@ admin.logs.th.log-action = 触发事件
admin.logs.th.log-result = 产生结果 admin.logs.th.log-result = 产生结果
admin.logs.th.log-datetime = 产生时间 admin.logs.th.log-datetime = 产生时间
# tools
admin.tools.title = 小工具
admin.tools.btn.import = 导入
admin.tools.markdown.name = Markdown 导入
admin.tools.markdown.full.name = Markdown 文档导入
admin.tools.markdown.desc = 支持 Hexo/Jekyll 导入并解析元数据
admin.tools.wordpress.name = WordPress 导入
admin.tools.wordpress.full.name = WordPress 数据导入
admin.tools.wordpress.desc = 尽情期待
# 附件管理页面 # 附件管理页面
admin.attachments.title = 附件管理 admin.attachments.title = 附件管理
admin.attachments.btn.upload = 上传 admin.attachments.btn.upload = 上传
@ -131,11 +142,11 @@ admin.categories.bread.posts = 文章管理
admin.categories.text.all-categories = 所有分类目录 admin.categories.text.all-categories = 所有分类目录
admin.categories.text.edit-category = 修改分类目录 admin.categories.text.edit-category = 修改分类目录
admin.categories.text.add-category = 添加分类目录 admin.categories.text.add-category = 添加分类目录
admin.categories.form.cate-name = 名称 admin.categories.form.cate-name = 名称
admin.categories.form.cate-name-tips = *页面上所显示的名称 admin.categories.form.cate-name-tips = *页面上所显示的名称
admin.categories.form.cate-url = 路径名称 admin.categories.form.cate-url = 路径名称
admin.categories.form.cate-url-tips = *这是文章路径上显示的名称,最好为英文 admin.categories.form.cate-url-tips = *这是文章路径上显示的名称,最好为英文
admin.categories.form.cate-desc = 描述 admin.categories.form.cate-desc = 描述
admin.categories.form.cate-desc-tips = *添加描述,部分主题可显示 admin.categories.form.cate-desc-tips = *添加描述,部分主题可显示
# 评论管理页面 # 评论管理页面
@ -146,14 +157,14 @@ admin.menus.title = 菜单管理
admin.menus.text.update-menu = 修改菜单 admin.menus.text.update-menu = 修改菜单
admin.menus.text.all-menus = 所有菜单 admin.menus.text.all-menus = 所有菜单
admin.menus.text.add-menu = 添加菜单 admin.menus.text.add-menu = 添加菜单
admin.menus.form.menu-name = 名称 admin.menus.form.menu-name = 名称
admin.menus.form.menu-name-tips = *页面上所显示的名称 admin.menus.form.menu-name-tips = *页面上所显示的名称
admin.menus.form.menu-url = 路径 admin.menus.form.menu-url = 路径
admin.menus.form.menu-url-tips = *菜单的路径 admin.menus.form.menu-url-tips = *菜单的路径
admin.menus.form.menu-sort = 排序编号 admin.menus.form.menu-sort = 排序编号
admin.menus.form.menu-icon = 图标 admin.menus.form.menu-icon = 图标
admin.menus.form.menu-icon-tips = *请根据主题的支持选填 admin.menus.form.menu-icon-tips = *请根据主题的支持选填
admin.menus.form.menu-target = 打开方式 admin.menus.form.menu-target = 打开方式
admin.menus.form.menu-target-self = 当前窗口 admin.menus.form.menu-target-self = 当前窗口
admin.menus.form.menu-target-blank = 新窗口 admin.menus.form.menu-target-blank = 新窗口
@ -321,9 +332,9 @@ admin.tags.title = 标签
admin.tags.text.edit-tag = 修改标签 admin.tags.text.edit-tag = 修改标签
admin.tags.text.add-tag = 添加标签 admin.tags.text.add-tag = 添加标签
admin.tags.text.all-tags = 所有标签 admin.tags.text.all-tags = 所有标签
admin.tags.form.tag-name = 名称 admin.tags.form.tag-name = 名称
admin.tags.form.tag-name-tips = *页面上所显示的名称 admin.tags.form.tag-name-tips = *页面上所显示的名称
admin.tags.form.tag-url = 路径名称 admin.tags.form.tag-url = 路径名称
admin.tags.form.tag-url-tips = *这是文章路径上显示的名称,最好为英文 admin.tags.form.tag-url-tips = *这是文章路径上显示的名称,最好为英文
# 主题管理页面 # 主题管理页面
@ -374,6 +385,7 @@ common.btn.define-add = 确定添加
common.btn.editing = 正在修改 common.btn.editing = 正在修改
common.btn.modify = 修改 common.btn.modify = 修改
common.btn.choose = 选择 common.btn.choose = 选择
common.btn.remove = 移除
common.radio.display = 显示 common.radio.display = 显示
common.radio.hide = 隐藏 common.radio.hide = 隐藏
common.radio.enable = 启用 common.radio.enable = 启用
@ -446,6 +458,11 @@ admin.editor.js.no-title = 标题不能为空!
admin.editor.text.category = 分类目录 admin.editor.text.category = 分类目录
admin.editor.text.tag = 标签 admin.editor.text.tag = 标签
admin.editor.select.tag.default = 选择添加 admin.editor.select.tag.default = 选择添加
admin.editor.post.password = 文章密码:
admin.editor.post.date = 发布时间:
admin.editor.page.custom.tpl = 自定义模板:
admin.editor.page.choose.tpl = 选择模板
admin.editor.page.no.tpl = 无自定义模板
# Java代码 # Java代码
code.admin.login.success = 登录成功! code.admin.login.success = 登录成功!

View File

@ -46,6 +46,7 @@ admin.menu.profile = Your Profile
admin.menu.settings = Settings admin.menu.settings = Settings
admin.menu.blog-settings = Blog Settings admin.menu.blog-settings = Blog Settings
admin.menu.blog-backup = Blog Backup admin.menu.blog-backup = Blog Backup
admin.menu.tools = Tools
# header module # header module
admin.module.header.a.title.turn-to-front = Turn to front admin.module.header.a.title.turn-to-front = Turn to front
@ -95,6 +96,16 @@ admin.logs.th.log-action = trigger event
admin.logs.th.log-result = produces result admin.logs.th.log-result = produces result
admin.logs.th.log-datetime = Time of production admin.logs.th.log-datetime = Time of production
# tools
admin.tools.title = Tools
admin.tools.btn.import = Import
admin.tools.markdown.name = Markdown import
admin.tools.markdown.full.name = Markdown document import
admin.tools.markdown.desc = Support Hexo/Jekyll import and analysis meta data
admin.tools.wordpress.name = WordPress import
admin.tools.wordpress.full.name = WordPress data import
admin.tools.wordpress.desc = Look forward to
# attachments page # attachments page
admin.attachments.title = Attachments manage admin.attachments.title = Attachments manage
admin.attachments.btn.upload = Upload admin.attachments.btn.upload = Upload
@ -131,11 +142,11 @@ admin.categories.bread.posts = Posts management
admin.categories.text.all-categories = All categories admin.categories.text.all-categories = All categories
admin.categories.text.edit-category = Edit category admin.categories.text.edit-category = Edit category
admin.categories.text.add-category = Add category admin.categories.text.add-category = Add category
admin.categories.form.cate-name = Category name admin.categories.form.cate-name = Category name:
admin.categories.form.cate-name-tips = *The name displayed on the page. admin.categories.form.cate-name-tips = *The name displayed on the page.
admin.categories.form.cate-url = Category url admin.categories.form.cate-url = Category url:
admin.categories.form.cate-url-tips = *This is the name displayed on the article path,preferably in English. admin.categories.form.cate-url-tips = *This is the name displayed on the article path,preferably in English.
admin.categories.form.cate-desc = Category description admin.categories.form.cate-desc = Category description:
admin.categories.form.cate-desc-tips = *Description of the classification,some topics can be displayed. admin.categories.form.cate-desc-tips = *Description of the classification,some topics can be displayed.
# comments page # comments page
@ -146,14 +157,14 @@ admin.menus.title = Menus manage
admin.menus.text.update-menu = Edit menu admin.menus.text.update-menu = Edit menu
admin.menus.text.all-menus = All menus admin.menus.text.all-menus = All menus
admin.menus.text.add-menu = Add menu admin.menus.text.add-menu = Add menu
admin.menus.form.menu-name = Menu name admin.menus.form.menu-name = Menu name:
admin.menus.form.menu-name-tips = *The name displayed on the page admin.menus.form.menu-name-tips = *The name displayed on the page
admin.menus.form.menu-url = Menu url admin.menus.form.menu-url = Menu url:
admin.menus.form.menu-url-tips = *Path to the menu admin.menus.form.menu-url-tips = *Path to the menu
admin.menus.form.menu-sort = Sort number admin.menus.form.menu-sort = Sort number:
admin.menus.form.menu-icon = Menu icon admin.menus.form.menu-icon = Menu icon:
admin.menus.form.menu-icon-tips = *Please fill in the support according to the theme admin.menus.form.menu-icon-tips = *Please fill in the support according to the theme
admin.menus.form.menu-target = Open mode admin.menus.form.menu-target = Open mode:
admin.menus.form.menu-target-self = Self admin.menus.form.menu-target-self = Self
admin.menus.form.menu-target-blank = Blank admin.menus.form.menu-target-blank = Blank
@ -321,9 +332,9 @@ admin.tags.title = Tags
admin.tags.text.edit-tag = Edit tag admin.tags.text.edit-tag = Edit tag
admin.tags.text.add-tag = Add tag admin.tags.text.add-tag = Add tag
admin.tags.text.all-tags = All tags admin.tags.text.all-tags = All tags
admin.tags.form.tag-name = Tag name admin.tags.form.tag-name = Tag name:
admin.tags.form.tag-name-tips = *The name displayed on the page admin.tags.form.tag-name-tips = *The name displayed on the page
admin.tags.form.tag-url = Tag url admin.tags.form.tag-url = Tag url:
admin.tags.form.tag-url-tips = *This is the name displayed on the article path, preferably in English admin.tags.form.tag-url-tips = *This is the name displayed on the article path, preferably in English
# themes page # themes page
@ -374,6 +385,7 @@ common.btn.define-add = OK
common.btn.editing = Editing common.btn.editing = Editing
common.btn.modify = Modify common.btn.modify = Modify
common.btn.choose = Choose common.btn.choose = Choose
common.btn.remove = Remove
common.radio.display = Display common.radio.display = Display
common.radio.hide = Hide common.radio.hide = Hide
common.radio.enable = Enable common.radio.enable = Enable
@ -446,6 +458,11 @@ admin.editor.js.no-title = The title can not be blank!
admin.editor.text.category = Categories admin.editor.text.category = Categories
admin.editor.text.tag = Tags admin.editor.text.tag = Tags
admin.editor.select.tag.default = Choose to add admin.editor.select.tag.default = Choose to add
admin.editor.post.password = Password:
admin.editor.post.date = Publish Date:
admin.editor.page.custom.tpl = Custom Template:
admin.editor.page.choose.tpl = Choose Template
admin.editor.page.no.tpl = No Template
# java code # java code
code.admin.login.success = Login successfully! code.admin.login.success = Login successfully!

View File

@ -46,6 +46,7 @@ admin.menu.profile = 个人资料
admin.menu.settings = 设置 admin.menu.settings = 设置
admin.menu.blog-settings = 博客设置 admin.menu.blog-settings = 博客设置
admin.menu.blog-backup = 博客备份 admin.menu.blog-backup = 博客备份
admin.menu.tools = 小工具
# header模块 # header模块
admin.module.header.a.title.turn-to-front = 跳转到前台 admin.module.header.a.title.turn-to-front = 跳转到前台
@ -95,6 +96,16 @@ admin.logs.th.log-action = 触发事件
admin.logs.th.log-result = 产生结果 admin.logs.th.log-result = 产生结果
admin.logs.th.log-datetime = 产生时间 admin.logs.th.log-datetime = 产生时间
# tools
admin.tools.title = 小工具
admin.tools.btn.import = 导入
admin.tools.markdown.name = Markdown 导入
admin.tools.markdown.full.name = Markdown 文档导入
admin.tools.markdown.desc = 支持 Hexo/Jekyll 导入并解析元数据
admin.tools.wordpress.name = WordPress 导入
admin.tools.wordpress.full.name = WordPress 数据导入
admin.tools.wordpress.desc = 尽情期待
# 附件管理页面 # 附件管理页面
admin.attachments.title = 附件管理 admin.attachments.title = 附件管理
admin.attachments.btn.upload = 上传 admin.attachments.btn.upload = 上传
@ -131,11 +142,11 @@ admin.categories.bread.posts = 文章管理
admin.categories.text.all-categories = 所有分类目录 admin.categories.text.all-categories = 所有分类目录
admin.categories.text.edit-category = 修改分类目录 admin.categories.text.edit-category = 修改分类目录
admin.categories.text.add-category = 添加分类目录 admin.categories.text.add-category = 添加分类目录
admin.categories.form.cate-name = 名称 admin.categories.form.cate-name = 名称
admin.categories.form.cate-name-tips = *页面上所显示的名称 admin.categories.form.cate-name-tips = *页面上所显示的名称
admin.categories.form.cate-url = 路径名称 admin.categories.form.cate-url = 路径名称
admin.categories.form.cate-url-tips = *这是文章路径上显示的名称,最好为英文 admin.categories.form.cate-url-tips = *这是文章路径上显示的名称,最好为英文
admin.categories.form.cate-desc = 描述 admin.categories.form.cate-desc = 描述
admin.categories.form.cate-desc-tips = *添加描述,部分主题可显示 admin.categories.form.cate-desc-tips = *添加描述,部分主题可显示
# 评论管理页面 # 评论管理页面
@ -146,14 +157,14 @@ admin.menus.title = 菜单管理
admin.menus.text.update-menu = 修改菜单 admin.menus.text.update-menu = 修改菜单
admin.menus.text.all-menus = 所有菜单 admin.menus.text.all-menus = 所有菜单
admin.menus.text.add-menu = 添加菜单 admin.menus.text.add-menu = 添加菜单
admin.menus.form.menu-name = 名称 admin.menus.form.menu-name = 名称
admin.menus.form.menu-name-tips = *页面上所显示的名称 admin.menus.form.menu-name-tips = *页面上所显示的名称
admin.menus.form.menu-url = 路径 admin.menus.form.menu-url = 路径
admin.menus.form.menu-url-tips = *菜单的路径 admin.menus.form.menu-url-tips = *菜单的路径
admin.menus.form.menu-sort = 排序编号 admin.menus.form.menu-sort = 排序编号
admin.menus.form.menu-icon = 图标 admin.menus.form.menu-icon = 图标
admin.menus.form.menu-icon-tips = *请根据主题的支持选填 admin.menus.form.menu-icon-tips = *请根据主题的支持选填
admin.menus.form.menu-target = 打开方式 admin.menus.form.menu-target = 打开方式
admin.menus.form.menu-target-self = 当前窗口 admin.menus.form.menu-target-self = 当前窗口
admin.menus.form.menu-target-blank = 新窗口 admin.menus.form.menu-target-blank = 新窗口
@ -321,9 +332,9 @@ admin.tags.title = 标签
admin.tags.text.edit-tag = 修改标签 admin.tags.text.edit-tag = 修改标签
admin.tags.text.add-tag = 添加标签 admin.tags.text.add-tag = 添加标签
admin.tags.text.all-tags = 所有标签 admin.tags.text.all-tags = 所有标签
admin.tags.form.tag-name = 名称 admin.tags.form.tag-name = 名称
admin.tags.form.tag-name-tips = *页面上所显示的名称 admin.tags.form.tag-name-tips = *页面上所显示的名称
admin.tags.form.tag-url = 路径名称 admin.tags.form.tag-url = 路径名称
admin.tags.form.tag-url-tips = *这是文章路径上显示的名称,最好为英文 admin.tags.form.tag-url-tips = *这是文章路径上显示的名称,最好为英文
# 主题管理页面 # 主题管理页面
@ -374,6 +385,7 @@ common.btn.define-add = 确定添加
common.btn.editing = 正在修改 common.btn.editing = 正在修改
common.btn.modify = 修改 common.btn.modify = 修改
common.btn.choose = 选择 common.btn.choose = 选择
common.btn.remove = 移除
common.radio.display = 显示 common.radio.display = 显示
common.radio.hide = 隐藏 common.radio.hide = 隐藏
common.radio.enable = 启用 common.radio.enable = 启用
@ -446,6 +458,11 @@ admin.editor.js.no-title = 标题不能为空!
admin.editor.text.category = 分类目录 admin.editor.text.category = 分类目录
admin.editor.text.tag = 标签 admin.editor.text.tag = 标签
admin.editor.select.tag.default = 选择添加 admin.editor.select.tag.default = 选择添加
admin.editor.post.password = 文章密码:
admin.editor.post.date = 发布时间:
admin.editor.page.custom.tpl = 自定义模板:
admin.editor.page.choose.tpl = 选择模板
admin.editor.page.no.tpl = 无自定义模板
# Java代码 # Java代码
code.admin.login.success = 登录成功! code.admin.login.success = 登录成功!

View File

@ -78,22 +78,22 @@
</div> </div>
<#if post??> <#if post??>
<div class="form-group"> <div class="form-group">
<label for="postDate" class="control-label">发布时间:</label> <label for="postDate" class="control-label"><@spring.message code='admin.editor.post.date' /></label>
<input type="text" class="form-control" id="postDate" name="postDate" value="${post.postDate!?string('yyyy-MM-dd HH:mm')}"> <input type="text" class="form-control" id="postDate" name="postDate" value="${post.postDate!?string('yyyy-MM-dd HH:mm')}">
</div> </div>
<#else> <#else>
<input type="hidden" class="form-control" id="postDate" name="postDate"> <input type="hidden" class="form-control" id="postDate" name="postDate">
</#if> </#if>
<div class="form-group"> <div class="form-group">
<label for="customTpl" class="control-label">自定义模板:</label> <label for="customTpl" class="control-label"><@spring.message code='admin.editor.page.custom.tpl' /></label>
<select class="form-control" id="customTpl" name="customTpl"> <select class="form-control" id="customTpl" name="customTpl">
<#if customTpls?? && customTpls?size gt 0> <#if customTpls?? && customTpls?size gt 0>
<option value="">选择模板</option> <option value=""><@spring.message code='admin.editor.page.choose.tpl' /></option>
<#list customTpls as tpl> <#list customTpls as tpl>
<option value="${tpl}" <#if post?? && (post.customTpl!) == '${tpl}'>selected</#if>>${tpl}</option> <option value="${tpl}" <#if post?? && (post.customTpl!) == '${tpl}'>selected</#if>>${tpl}</option>
</#list> </#list>
<#else> <#else>
<option value="">无自定义模板</option> <option value=""><@spring.message code='admin.editor.page.no.tpl' /></option>
</#if> </#if>
</select> </select>
</div> </div>
@ -120,13 +120,12 @@
</div> </div>
<div class="box-body"> <div class="box-body">
<div> <div>
<#if post??> <img src="<#if post??>${post.postThumbnail!'/static/halo-frontend/images/thumbnail/thumbnail.png'}<#else>/static/halo-frontend/images/thumbnail/thumbnail.png</#if>" class="img-responsive img-thumbnail" id="selectImg" onclick="halo.layerModal('/admin/attachments/select?id=selectImg','<@spring.message code="common.js.all-attachment" />')" style="cursor: pointer;">
<img src="${post.postThumbnail!'/static/halo-frontend/images/thumbnail/thumbnail.png'}" class="img-responsive img-thumbnail" id="selectImg" onclick="halo.layerModal('/admin/attachments/select?id=selectImg','<@spring.message code="common.js.all-attachment" />')" style="cursor: pointer;">
<#else >
<img src="/static/halo-frontend/images/thumbnail/thumbnail.png" class="img-responsive img-thumbnail" id="selectImg" onclick="halo.layerModal('/admin/attachments/select?id=selectImg','<@spring.message code="common.js.all-attachment" />')" style="cursor: pointer;">
</#if>
</div> </div>
</div> </div>
<div class="box-footer">
<button onclick="removeThumbnail()" class="btn btn-default btn-sm "><@spring.message code='common.btn.remove' /></button>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -257,6 +256,10 @@
} }
},'JSON'); },'JSON');
} }
function removeThumbnail(){
$("#selectImg").attr("src","/static/halo-frontend/images/thumbnail/thumbnail.png");
}
</script> </script>
</@footer> </@footer>
</#compress> </#compress>

View File

@ -68,11 +68,11 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="postPassword" class="control-label">文章密码:</label> <label for="postPassword" class="control-label"><@spring.message code='admin.editor.post.password' /></label>
<input type="password" class="form-control" id="postPassword" name="postPassword" value="${post.postPassword!}" autocomplete="off"> <input type="password" class="form-control" id="postPassword" name="postPassword" value="${post.postPassword!}" autocomplete="off">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="postDate" class="control-label">发布时间:</label> <label for="postDate" class="control-label"><@spring.message code='admin.editor.post.date' /></label>
<input type="text" class="form-control" id="postDate" name="postDate" value="${post.postDate!?string('yyyy-MM-dd HH:mm')}"> <input type="text" class="form-control" id="postDate" name="postDate" value="${post.postDate!?string('yyyy-MM-dd HH:mm')}">
</div> </div>
</div> </div>
@ -151,7 +151,7 @@
</div> </div>
</div> </div>
<div class="box-footer"> <div class="box-footer">
<button onclick="removeThumbnail()" class="btn btn-default btn-sm ">移除</button> <button onclick="removeThumbnail()" class="btn btn-default btn-sm "><@spring.message code='common.btn.remove' /></button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -66,7 +66,7 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="postPassword" class="control-label">文章密码:</label> <label for="postPassword" class="control-label"><@spring.message code='admin.editor.post.password' /></label>
<input type="password" class="form-control" id="postPassword" name="postPassword" autocomplete="off"> <input type="password" class="form-control" id="postPassword" name="postPassword" autocomplete="off">
</div> </div>
</div> </div>
@ -145,7 +145,7 @@
</div> </div>
</div> </div>
<div class="box-footer"> <div class="box-footer">
<button onclick="removeThumbnail()" class="btn btn-default btn-sm ">移除</button> <button onclick="removeThumbnail()" class="btn btn-default btn-sm "><@spring.message code='common.btn.remove' /></button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -27,9 +27,6 @@
font-size: 18px; font-size: 18px;
line-height: 30px; line-height: 30px;
} }
#uploadForm{
display: none;
}
.btn-delete:hover{ .btn-delete:hover{
color: red; color: red;
} }

View File

@ -1,16 +1,16 @@
<#compress > <#compress >
<#include "module/_macro.ftl"> <#include "module/_macro.ftl">
<@head>${options.blog_title!} | 小工具</@head> <@head>${options.blog_title!} | <@spring.message code='admin.tools.title' /></@head>
<div class="content-wrapper"> <div class="content-wrapper">
<section class="content-header" id="animated-header"> <section class="content-header" id="animated-header">
<h1 style="display: inline-block;">小工具</h1> <h1 style="display: inline-block;"><@spring.message code='admin.tools.title' /></h1>
<ol class="breadcrumb"> <ol class="breadcrumb">
<li> <li>
<a data-pjax="true" href="/admin"> <a data-pjax="true" href="/admin">
<i class="fa fa-dashboard"></i> <@spring.message code='admin.index.bread.index' /></a> <i class="fa fa-dashboard"></i> <@spring.message code='admin.index.bread.index' /></a>
</li> </li>
<li><a data-pjax="true" href="javascript:void(0)"><@spring.message code='admin.setting.bread.setting' /></a></li> <li><a data-pjax="true" href="javascript:void(0)"><@spring.message code='admin.setting.bread.setting' /></a></li>
<li class="active">小工具</li> <li class="active"><@spring.message code='admin.tools.title' /></li>
</ol> </ol>
</section> </section>
<section class="content container-fluid" id="animated-content"> <section class="content container-fluid" id="animated-content">
@ -19,18 +19,18 @@
<div class="box box-solid"> <div class="box box-solid">
<div class="box-body"> <div class="box-body">
<h4 style="background-color:#f7f7f7; font-size: 18px; text-align: center; padding: 7px 10px; margin-top: 0;"> <h4 style="background-color:#f7f7f7; font-size: 18px; text-align: center; padding: 7px 10px; margin-top: 0;">
Markdown 导入 <@spring.message code='admin.tools.markdown.name' />
</h4> </h4>
<div class="media"> <div class="media">
<div class="media-body"> <div class="media-body">
<div class="clearfix"> <div class="clearfix">
<p class="pull-right"> <p class="pull-right">
<a href="#" class="btn btn-success btn-sm ad-click-event" onclick="halo.layerModal('/admin/tools/markdownImport','Markdown 导入')"> <a href="#" class="btn btn-success btn-sm ad-click-event" onclick="halo.layerModal('/admin/tools/markdownImport','<@spring.message code="admin.tools.markdown.name" />')">
导入 <@spring.message code='admin.tools.btn.import' />
</a> </a>
</p> </p>
<h4 style="margin-top: 0">Markdown 文档导入</h4> <h4 style="margin-top: 0"><@spring.message code='admin.tools.markdown.full.name' /></h4>
<p>支持 Hexo/Jekyll 导入并解析元数据</p> <p><@spring.message code='admin.tools.markdown.desc' /></p>
</div> </div>
</div> </div>
</div> </div>
@ -41,18 +41,18 @@
<div class="box box-solid"> <div class="box box-solid">
<div class="box-body"> <div class="box-body">
<h4 style="background-color:#f7f7f7; font-size: 18px; text-align: center; padding: 7px 10px; margin-top: 0;"> <h4 style="background-color:#f7f7f7; font-size: 18px; text-align: center; padding: 7px 10px; margin-top: 0;">
WordPress 导入 <@spring.message code='admin.tools.wordpress.name' />
</h4> </h4>
<div class="media"> <div class="media">
<div class="media-body"> <div class="media-body">
<div class="clearfix"> <div class="clearfix">
<p class="pull-right"> <p class="pull-right">
<a href="javascript:void(0)" class="btn btn-success btn-sm ad-click-event"> <a href="javascript:void(0)" class="btn btn-success btn-sm ad-click-event">
导入 <@spring.message code='admin.tools.btn.import' />
</a> </a>
</p> </p>
<h4 style="margin-top: 0">WordPress 数据导入</h4> <h4 style="margin-top: 0"><@spring.message code='admin.tools.wordpress.full.name' /></h4>
<p>尽请期待</p> <p><@spring.message code='admin.tools.wordpress.desc' /></p>
</div> </div>
</div> </div>
</div> </div>

View File

@ -92,7 +92,7 @@
<ul class="treeview-menu"> <ul class="treeview-menu">
<li><a data-pjax="true" href="/admin/option"><i class="fa fa-circle-o"></i><@spring.message code='admin.menu.blog-settings' /></a></li> <li><a data-pjax="true" href="/admin/option"><i class="fa fa-circle-o"></i><@spring.message code='admin.menu.blog-settings' /></a></li>
<li><a data-pjax="true" href="/admin/backup"><i class="fa fa-circle-o"></i><@spring.message code='admin.menu.blog-backup' /></a></li> <li><a data-pjax="true" href="/admin/backup"><i class="fa fa-circle-o"></i><@spring.message code='admin.menu.blog-backup' /></a></li>
<li><a data-pjax="true" href="/admin/tools"><i class="fa fa-circle-o"></i>小工具</a></li> <li><a data-pjax="true" href="/admin/tools"><i class="fa fa-circle-o"></i><@spring.message code='admin.menu.tools' /></a></li>
</ul> </ul>
</li> </li>
</ul> </ul>

View File

@ -120,97 +120,6 @@
<#else > <#else >
<div class="animated fadeInUp" style="animation-delay: 0.1s"> <div class="animated fadeInUp" style="animation-delay: 0.1s">
<h4><@spring.message code='install.installed.message'/></h4> <h4><@spring.message code='install.installed.message'/></h4>
<pre style="font: 10px/7px monospace;border: none;">
.'+:
`+@#'##
+#.```#+
`.@` `` .# `
'+` ` @,`
+'` ``++
,#@@' ` ++ ;#
.@#'..'#` ,# .@ ``.,::;;:,,`
`#+` '@ `#` `@ `.:'##@@###+#++#@@#,
.@ `@' #' `@ ` `.;+#@@#':..` ``;: .'@#`
,@ ,@` ,@` @`.'@@##;,`` ` ., ` .## `
`# #+ #'` ##@+,.` ` + `#+
`#, ` :#` .@. `@.` . ` `,` .#:
;# `#, +#` `` ` `+';+` :` ` '#`
`@:` ++`:@@#: +`` + ' ,. ;@#``@,
` ,@` .@@#:``` .. ##.`: '` ;@@.`#@#;`+'
++ @: ` ` `.` , ,#@'`' ; #@@' +@@:`,#`
@; #: ` ,'` ,+ ..`@@``: .` ;@@:``++ .#`
`.@, :: ,, `` # +``` +` ``;`` :; ` .#`
;@. ` # `: `. `+;;+`` `+` ,@
`@@# `, @@@```' ` ` `: ;#``
`@+ ;` ` `: @@#` `;``` ` ` ;. #:
@'` +``: `.. +` ` .#`
+# ,. ` ' +.` ``#'
.@. :'``,+ ,'.` `.#@. ``
#' ..` `;';;#`
.@` ` ``:@,``
``#+ ` '@,
@` ` `#@``
;# .'#'` `
`#: ` ` ,;` `,#@+.
`@` :;'@+#@#;`` `
`.#`` '#+#@,. `
;# @:`
#; `:@
@. #.
@. `+'
@. ;#
@. :` .@`
@. ;. ``@`
@. ;, ` `#
@, ` +. `@
+' ;: @` @
,#` +, :; `@
``@` +; ``,# .@
`#; ;#.` ``'+ ;#`
:@ ` ` '@',..,;#+. ``#;
#: ` ```:;;:.` `@`
`` :@ ` ` ;#``
`#+ @,
`@:` +#`
,#. `,@.`
` ;@.` .@:`
'@, .@;`
```@+#; ```;@@ `
` `@' ,@+` ,#@.#'
## ```+@; `,#@'. `@.
`;@ ` ,@#' ` ` ` `;+@@;` ;@` `
#: `,@@#',` ` ```.;#@@@;. ` ` @@#,
`` ;@@` ;+@@@@@@@@##'.` ,@@@#:`
`+@@@:` ` ` ```.`` ` `@::#@@'`
.#@@+++ ` ,@` .+@@+.
` ` :#@@;` @, @, `+@@#.``;#@@@`
@@@@#, :@@@: ` ,# ``'#`` `'@@#@@@##@`
`;''+@@@#@:` #' .@`` ` ;@@#.
,#@@: @` @: `.@#@@'`
'@@'@. :# '# `@;`+@#``
`'#+ :@. ``#' .@ ``#+` ;' `
., #@`` @` @. ``:@,
`.@; .@ ++ `;`
`,` `;# :#
`#' @`
@. `@.
@` #'`
`@ ;#
,# .#
;+ `@`
#' @.
#: #:
@, `++
@` ;#`
`@` ,@
`@` `@ `
`@` `@`
`@` @`
`@` @.
`@` #: `
`@@@@@@@@@##################@@@@@@@@@@@@@@@@@@@@@@@#@@;
` `::::::::::::::::::::::::::::,:::::,,,,,,,,,,,,,,,,,:,.`
</pre>
</div> </div>
</#if> </#if>
</div> </div>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
<title>${options.blog_title!}</title>
<atom:link href="${options.blog_url!}/atom.xml" rel="self" type="application/rss+xml"/>
<link>${options.blog_url!}</link>
<description>${user.userDesc!}</description>
<language>zh-CN</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<generator>https://github.com/ruibaby/halo</generator>
</channel>
<#if posts?? && posts?size gt 0>
<#list posts as post>
<item>
<title>${post.postTitle!}</title>
<link>${options.blog_url!}/archives/${post.postUrl!}</link>
<comments>${options.blog_url!}/archives/${post.postUrl!}#comments</comments>
<pubDate>${post.postDate}</pubDate>
<dc:creator><![CDATA[${user.userDisplayName!}]]></dc:creator>
<#if post.categories?? && post.categories?size gt 0>
<#list post.categories as cate>
<category><![CDATA[${cate.cateName!}]]></category>
</#list>
</#if>
<description>
<![CDATA[
${post.postSummary!}
]]>
</description>
<content:encoded>
<![CDATA[
${post.postContent!}
]]>
</content:encoded>
<slash:comments>${post.comments?size}</slash:comments>
</item>
</#list>
</#if>
</rss>