Commit ed575e55 authored by D's avatar D Committed by GitHub

Merge pull request #12154 from b3log/1.6.0

1.6.0
parents fc807440 a102b644
......@@ -19,7 +19,7 @@
<!--
Description: Static resources definition.
Version: 2.6.5.6, Jan 8, 2016
Version: 2.7.5.6, Aug 26, 2016
Author: Liang Ding
-->
<static-files>
......@@ -65,6 +65,10 @@
<include path="/css/**.css" />
<include path="/css/**/*.css" />
<include path="/css/fonts/*.eot" />
<include path="/css/fonts/*.svg" />
<include path="/css/fonts/*.ttf" />
<include path="/css/fonts/*.woff" />
<include path="/images/**.png" />
<include path="/images/**/*.png" />
......
......@@ -18,7 +18,7 @@
<label>${tags1WithTips1Label}</label>
<input id="tag" type="text"/>
</div>
<div>
<div class="comment-content">
<label>${abstract1Label}</label>
<textarea id="abstract" style="height: 200px;width: 100%;" name="abstract"></textarea>
</div>
......
......@@ -6,7 +6,8 @@
<title>${blogTitle} - ${adminConsoleLabel}</title>
<link type="text/css" rel="stylesheet" href="${staticServePath}/css/default-base${miniPostfix}.css?${staticResourceVersion}" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/css/default-admin${miniPostfix}.css?${staticResourceVersion}" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/js/lib/CodeMirror/codemirror.css?${staticResourceVersion}" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/js/lib/CodeMirrorEditor/codemirror.min.css?${staticResourceVersion}" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/js/lib/highlight/styles/github.css?${staticResourceVersion}" />
<link rel="icon" type="image/png" href="${staticServePath}/favicon.png" />
</head>
<body onhashchange="admin.setCurByHash();">
......@@ -27,15 +28,15 @@
<li>
<div id="tabs_main">
<a href="#main">
<span class="left usersIcon"></span>${adminIndexLabel}
<span class="icon-refresh"></span> ${adminIndexLabel}
</a>
</div>
</li>
<li>
<div id="tabArticleTitle" class="tab-current" onclick="admin.collapseNav(this)">
<span class="left postIcon"></span>
<span class="icon-article"></span>
${articleLabel}
<span class="ico-arrow-up"></span>
<span class="icon-chevron-up right"></span>
</div>
<ul id="tabArticleMgt">
<li>
......@@ -58,15 +59,15 @@
<li>
<div id="tabs_comment-list">
<a href="#comment-list">
<span class="left commentIcon"></span>${commentListLabel}
<span class="icon-cmts"></span> ${commentListLabel}
</a>
</div>
</li>
<li>
<div id="tabToolsTitle" onclick="admin.collapseNav(this)">
<span class="left preferenceIcon"></span>
<span class="icon-setting"></span>
${ToolLabel}
<span class="ico-arrow-down"></span>
<span class="icon-chevron-down right"></span>
</div>
<ul class="none" id="tabTools">
<li>
......@@ -104,7 +105,7 @@
<li>
<div id="tabs_about">
<a href="#about">
<span class="left aboutIcon"></span>${aboutLabel}
<span class="icon-info"></span> ${aboutLabel}
</a>
</div>
</li>
......@@ -129,14 +130,8 @@
Powered by <a href="http://b3log.org" target="_blank">B3log 开源</a><a href="http://b3log.org/services/#solo" target="_blank">Solo</a> ${version}
</div>
</div>
<script src="${staticServePath}/js/lib/jquery/jquery.min.js"></script>
<script src="${staticServePath}/js/lib/jquery/file-upload-9.10.1/vendor/jquery.ui.widget.js"></script>
<script src="${staticServePath}/js/lib/jquery/file-upload-9.10.1/jquery.iframe-transport.js"></script>
<script src="${staticServePath}/js/lib/jquery/file-upload-9.10.1/jquery.fileupload.js"></script>
<script src="${staticServePath}/js/lib/jquery/jquery.bowknot.min.js?${staticResourceVersion}"></script>
<script src="${servePath}/js/lib/tiny_mce/tiny_mce.js"></script>
<script src="${staticServePath}/js/lib/KindEditor/kindeditor-min.js"></script>
<script src="${staticServePath}/js/lib/CodeMirror/codemirror.js"></script>
<script src="${staticServePath}/js/lib/compress/admin-lib.min.js"></script>
<script src="${staticServePath}/js/lib/tiny_mce/tiny_mce.js"></script>
<script src="${staticServePath}/js/common${miniPostfix}.js"></script>
<#if "" == miniPostfix>
<script src="${staticServePath}/js/admin/admin.js"></script>
......
......@@ -316,7 +316,7 @@
</tbody>
</table>
</div>
<div id="tabPreferencePanel_skins" class="none">
<div id="tabPreferencePanel_skins" class="none form">
<button onclick="admin.preference.update()" class="right">${updateLabel}</button>
<div class="clear"></div>
<div id="skinMain">
......
......@@ -17,7 +17,7 @@
* admin style
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 2.0.5.1, Aug 23, 2016
* @version 2.0.6.2, Sep 2, 2016
*/
/* start resset */
......@@ -50,18 +50,227 @@ button.selected {
color: #D54121 !important;
border-color: #b0b5b9 !important;
}
@font-face {
font-family: 'icomoon';
src:url('fonts/icomoon.eot?1450');
src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?1450') format('truetype'),
url('fonts/icomoon.woff?1450') format('woff'),
url('fonts/icomoon.svg#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
/* end reset */
/* start ico */
.ico-arrow-down, .ico-arrow-up {
background: url("../images/arrows.png") repeat scroll 0 4px transparent;
float: right;
height: 20px;
margin: -3px 5px 0 0;
width: 18px;
[class^="icon-"], [class*=" icon-"] {
font-family: 'icomoon';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a[class^="icon-"],
a[class*=" icon-"] {
color: #333;
}
a[class^="icon-"]:hover,
a[class*=" icon-"]:hover {
text-decoration: none;
color: #4183c4;
}
.icon-upload:before {
content: "\f0ee";
}
.icon-copy:before {
content: "\e908";
}
.icon-time:before {
content: "\e906";
}
.icon-sortasc:before {
content: "\e905";
}
.icon-locked:before {
content: "\e61e";
}
.icon-close:before {
content: "\e909";
}
.icon-points:before {
content: "\e900";
}
.icon-goods:before {
content: "\e904";
}
.icon-bold:before {
content: "\e000";
}
.icon-italic:before {
content: "\e001";
}
.icon-quote:before {
content: "\e003";
}
.icon-unordered-list:before {
content: "\e004";
}
.icon-ordered-list:before {
content: "\e005";
}
.icon-link:before {
content: "\e006";
}
.icon-image:before {
content: "\e007";
}
.icon-play:before {
content: "\e008";
}
.icon-music:before {
content: "\e009";
}
.icon-contract:before {
content: "\e00a";
}
.icon-fullscreen:before {
content: "\e00b";
}
.icon-question:before {
content: "\e00c";
}
.icon-info:before {
content: "\e00d";
}
.icon-undo:before {
content: "\e00e";
}
.icon-redo:before {
content: "\e00f";
}
.icon-code:before {
content: "\e011";
}
.icon-preview:before {
content: "\e002";
}
.icon-navigation:before {
content: "\e903";
}
.icon-thumbs-down:before {
content: "\e901";
}
.icon-thumbs-up:before {
content: "\e902";
}
.icon-video:before {
content: "\f057";
}
.icon-feed:before {
content: "\e61f";
}
.icon-article:before {
content: "\e61d";
}
.icon-star:before {
content: "\e600";
}
.icon-register:before {
content: "\e602";
}
.icon-logout:before {
content: "\e603";
}
.icon-setting:before {
content: "\e604";
}
.icon-google:before {
content: "\e605";
}
.icon-search:before {
content: "\e606";
}
.icon-weibo:before {
content: "\e607";
}
.icon-date:before {
content: "\e608";
}
.ico-arrow-up {
background-position: 0 -30px;
.icon-view:before {
content: "\e609";
}
.icon-cmts:before {
content: "\e60a";
}
.icon-refresh:before {
content: "\e60b";
}
.icon-up:before {
content: "\e60c";
}
.icon-twitter:before {
content: "\e60d";
}
.icon-edit:before {
content: "\e60e";
}
.icon-tencent:before {
content: "\e60f";
}
.icon-tag:before {
content: "\e610";
}
.icon-tags:before {
content: "\e611";
}
.icon-addfile:before {
content: "\e612";
}
.icon-login:before {
content: "\e613";
}
.icon-articles:before {
content: "\e614";
}
.icon-userrole:before {
content: "\e615";
}
.icon-email:before {
content: "\e616";
}
.icon-flag:before {
content: "\e617";
}
.icon-chevron-down:before {
content: "\e618";
margin-right: 10px;
}
.icon-chevron-up:before {
content: "\e619";
margin-right: 10px;
}
.icon-reply:before {
content: "\e61a";
}
.icon-clock:before {
content: "\e61b";
}
.icon-compass:before {
content: "\e61c";
}
.icon-heart:before {
content: "\e9da";
}
.icon-wechat:before {
content: "\e907";
}
.aboutIcon {
background-position: -16px -48px;
......@@ -388,53 +597,6 @@ button.selected {
/* end comments */
/* start article */
.markdown-preivew {
background-color: #fff;
background-image: linear-gradient(#FFFFFF,#F3F3F3);
background-image: -ms-linear-gradient(#FFFFFF,#F3F3F3);
background-image: -o-linear-gradient(#FFFFFF,#F3F3F3);
background-image: -webkit-linear-gradient(#FFFFFF,#F3F3F3);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#FFFFFF', endColorstr='#F3F3F3');
border-color: #C0C0C0 #D9D9D9 #D9D9D9;
border-style: solid;
border-width: 1px;
float: left;
height: 500px;
margin-left: 20px;
overflow: auto;
width: 47%;
word-wrap: break-word;
}
.markdown-help.ico-help, .markdown-help.ico-close {
background-image: url("../images/icon.png");
background-position: -16px -47px;
cursor: pointer;
float: right;
height: 17px;
width: 17px;
}
.markdown-help.ico-close {
height: 16px;
background-position: -48px -16px;
}
.markdown-help-main, .markdown-preview-main {
color: #21759B;
padding: 0 12px
}
.markdown-help-main dt {
font-size: 14px;
font-weight: bold;
margin: 12px 0 6px 0;
}
.markdown-help-main dd {
margin-left: 12px;
}
button#submitArticle,
#unSubmitArticle {
background-color: #fa8564;
......@@ -446,6 +608,19 @@ button#submitArticle:hover,
background-color: #ec6459;
border-color: #ec6459;
}
.CodeMirror {
border-radius: 0 0 3px 3px;
box-shadow: 0 1px 2px rgba(0,0,0,0.075) inset;
border: 1px solid #ccc;
margin-bottom: 20px;
border-top-width: 0;
height: 470px;
}
.comment-content .CodeMirror {
height: 170px;
}
/* end article */
/* start preference */
......
This diff is collapsed.
This diff is collapsed.
......@@ -17,7 +17,7 @@
* @description index for admin
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 1.0.2.2, May 28, 2013
* @version 1.0.3.2, Sep 2, 2013
*/
var Admin = function () {
this.register = {};
......@@ -230,10 +230,10 @@ $.extend(Admin.prototype, {
var subNav = $(it).next();
subNav.slideToggle("normal", function () {
if (this.style.display !== "none") {
$(it).find(".ico-arrow-down")[0].className = "ico-arrow-up";
$(it).find(".icon-chevron-down")[0].className = "icon-chevron-up right";
$(it).addClass('tab-current');
} else {
$(it).find(".ico-arrow-up")[0].className = "ico-arrow-down";
$(it).find(".icon-chevron-up")[0].className = "icon-chevron-down right";
$(it).removeClass('tab-current');
}
......
......@@ -18,8 +18,17 @@
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.1.4, Aug 13, 2015
* @version 1.2.1.4, Aug 26, 2016
*/
Util.processClipBoard = function (text, cm) {
var text = toMarkdown(text, {converters: [
], gfm: true});
// ascii 160 替换为 30
text = $('<div>' + text + '</div>').text().replace(/\n{2,}/g, '\n\n').replace(/ /g, ' ');
return $.trim(text);
};
admin.editors.CodeMirror = {
/*
* @description 初始化编辑器
......@@ -32,124 +41,38 @@ admin.editors.CodeMirror = {
* @returns {obj} editor
*/
init: function (conf) {
var it = this;
// load preview and clear
var previewHTML = "<div class='clear'></div>";
if (conf.kind !== "simple") {
previewHTML = "<div class='markdown-preivew'>" +
"<div class='markdown-help ico-close'></div>" +
"<div class='clear'></div>" +
"<div class='markdown-preview-main none'></div>" +
"<div class='markdown-help-main'>" + Label.markdownHelpLabel + "</div>"
+ "</div><div class='clear'></div>";
}
$("#" + conf.id).after(previewHTML);
// init codemirror
if (conf.kind === "simple") {
this[conf.id] = CodeMirror.fromTextArea(document.getElementById(conf.id), {
mode: 'markdown',
lineWrapping: true,
lineNumbers: true,
matchBrackets: true,
theme: "default",
height: conf.height
});
} else {
// preview 执行队列
it[conf.id + "Timers"] = [];
// 该编辑器是否第一次触发 preivew 事件
it[conf.id + "IsFirst"] = true;
var $preview = $("#" + conf.id).parent().find(".markdown-preivew"),
$help = $("#" + conf.id).parent().find(".markdown-preivew").find(".markdown-help");
this[conf.id] = CodeMirror.fromTextArea(document.getElementById(conf.id), {
mode: 'markdown',
lineWrapping: true,
lineNumbers: true,
matchBrackets: true,
theme: "default",
height: conf.height,
onUpdate: function () {
var update = function () {
if (it[conf.id].getValue() === "") {
return;
}
$.ajax({
url: latkeConfig.servePath + "/console/markdown/2html",
type: "POST",
cache: false,
data: JSON.stringify({markdownText: it[conf.id].getValue()}),
success: function (data, textStatus) {
if (data.sc) {
if (it[conf.id + "IsFirst"] && $help.hasClass("ico-close")) {
$help.click();
}
it[conf.id + "IsFirst"] = false;
$preview.find(".markdown-preview-main").html(data.html);
} else {
$preview.find(".markdown-preview-main").html(data.msg);
}
}
});
}
it[conf.id + "Timers"].push(update);
}
});
this._callPreview(conf.id, it[conf.id + "Timers"]);
}
if (conf.kind === "simple") {
// 摘要不需要 preview,设置其宽度
$("#" + conf.id).next().width("99%");
} else {
// 有 preview 时,绑定 preview 事件
this._bindEvent(conf.id);
}
var commentEditor = new CodeMirrorEditor({
element: document.getElementById(conf.id),
dragDrop: false,
lineWrapping: true,
toolbar: [
{name: 'bold'},
{name: 'italic'},
'|',
{name: 'link'},
{name: 'quote'},
{name: 'unordered-list'},
{name: 'ordered-list'},
'|',
{name: 'redo'},
{name: 'undo'},
'|',
{name: 'preview'}
],
extraKeys: {
"Ctrl-/": "autocompleteEmoji"
},
status: false
});
commentEditor.render();
this[conf.id] = commentEditor.codemirror;
// after render, call back function
if (typeof (conf.fun) === "function") {
conf.fun();
}
},
/*
* @description 当有更新时每隔3秒 preview
* @param {string} id 编辑器 id
*/
_callPreview: function (id) {
setInterval(function () {
var timers = admin.editors.CodeMirror[id + "Timers"];
$(document).queue("myAnimation", [timers[timers.length - 1]]);
$(document).dequeue("myAnimation");
admin.editors.CodeMirror[id + "Timers"] = [];
}, 2000);
},
/*
* @description 绑定编辑器 preview 事件
* @param {string} id 编辑器id
*/
_bindEvent: function (id) {
var $preview = $("#" + id).parent().find(".markdown-preivew");
$preview.find(".markdown-help").click(function () {
var $it = $(this);
if ($it.hasClass("ico-help")) {
$it.removeClass("ico-help").addClass("ico-close");
$preview.find(".markdown-preview-main").hide();
$preview.find(".markdown-help-main").show();
} else {
$it.addClass("ico-help").removeClass("ico-close");
$preview.find(".markdown-preview-main").show();
$preview.find(".markdown-help-main").hide();
}
});
},
/*
* @description 获取编辑器值
* @param {string} id 编辑器id
......@@ -174,6 +97,6 @@ admin.editors.CodeMirror = {
*/
remove: function (id) {
this[id].toTextArea();
$(".markdown-preivew").remove();
$('.editor-toolbar').remove();
}
};
\ No newline at end of file
.CodeMirror {
line-height: 1em;
background-color: #FFF;
border-color: #C0C0C0 #D9D9D9 #D9D9D9;
border-right: 1px solid #D9D9D9;
border-style: solid;
border-width: 1px;
width: 50%;
float: left;
}
.CodeMirror-scroll {
overflow: auto;
height: 500px;
/* This is needed to prevent an IE[67] bug where the scrolled content
is visible outside of the scrolling box. */
position: relative;
outline: none;
outline: medium none;
}
.CodeMirror-gutter {
position: absolute; left: 0; top: 0;
z-index: 10;
background-color: #f3f3f3;
border-right: 1px solid #eee;
min-width: 2em;
height: 100%;
}
.CodeMirror-gutter-text {
color: #aaa;
text-align: right;
padding: .4em .2em .4em .4em;
white-space: pre !important;
}
.CodeMirror-lines {
padding: .4em;
white-space: pre;
}
.CodeMirror pre {
-moz-border-radius: 0;
-webkit-border-radius: 0;
-o-border-radius: 0;
border-radius: 0;
border-width: 0; margin: 0; padding: 0; background: transparent;
padding: 0; margin: 0;
white-space: pre;
word-wrap: normal;
line-height: inherit;
}
.CodeMirror-wrap pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal;
}
.CodeMirror-wrap .CodeMirror-scroll {
overflow-x: hidden;
}
.CodeMirror textarea {
outline: none !important;
}
.CodeMirror pre.CodeMirror-cursor {
z-index: 10;
position: absolute;
visibility: hidden;
border-left: 1px solid black;
border-right:none;
width:0;
}
.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}
.CodeMirror-focused pre.CodeMirror-cursor {
visibility: visible;
}
div.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-searching {
background: #ffa;
background: rgba(255, 255, 0, .4);
}
/* Default theme */
.cm-s-default span.cm-keyword {color: #708;}
.cm-s-default span.cm-atom {color: #219;}
.cm-s-default span.cm-number {color: #164;}
.cm-s-default span.cm-def {color: #00f;}
.cm-s-default span.cm-variable {color: black;}
.cm-s-default span.cm-variable-2 {color: #05a;}
.cm-s-default span.cm-variable-3 {color: #085;}
.cm-s-default span.cm-property {color: black;}
.cm-s-default span.cm-operator {color: black;}
.cm-s-default span.cm-comment {color: #a50;}
.cm-s-default span.cm-string {color: #a11;}
.cm-s-default span.cm-string-2 {color: #f50;}
.cm-s-default span.cm-meta {color: #555;}
.cm-s-default span.cm-error {color: #f00;}
.cm-s-default span.cm-qualifier {color: #555;}
.cm-s-default span.cm-builtin {color: #30a;}
.cm-s-default span.cm-bracket {color: #cc7;}
.cm-s-default span.cm-tag {color: #170;}
.cm-s-default span.cm-attribute {color: #00c;}
.cm-s-default span.cm-header {color: #a0a;}
.cm-s-default span.cm-quote {color: #090;}
.cm-s-default span.cm-hr {color: #999;}
.cm-s-default span.cm-link {color: #00c;}
span.cm-header, span.cm-strong {font-weight: bold;}
span.cm-em {font-style: italic;}
span.cm-emstrong {font-style: italic; font-weight: bold;}
span.cm-link {text-decoration: underline;}
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -16,8 +16,9 @@
#
# Description: Language configurations(zh_CN) of plugin b3log broadcast.
# Version: 1.0.0.1, Apr 24, 2013
# Version: 1.0.1.1, Sep 4, 2016
# Author: Liyuan Li
# Author: Liang Ding
#
userBroadcastLabel=User Broadcast
......@@ -27,4 +28,4 @@ contentLabel1=Content:
noEmptyLabel=No Empty
submitLabel=Submit
submitErrorLabel=Error
chanceBroadcastLabel=Time to post:
chanceBroadcastLabel1=Time to post:
......@@ -33,7 +33,9 @@
&nbsp; | &nbsp;${viewsLabel} ${article.articleViewCount}°C
</div>
</header>
${article.articleAbstract}
<div class="article-body">
${article.articleAbstract}
</div>
<div class="post-more-link">
<a href="${servePath}${article.articlePermalink}#more" rel="contents">
${readLabel} &raquo;
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment