diff --git a/config/settings.json b/config/settings.json index 3e47b27..ec11320 100644 --- a/config/settings.json +++ b/config/settings.json @@ -7,7 +7,7 @@ "LogoPath": "/static/images/zhr.jpg", "PageSize": "10", "ExpandMenu": "true", - "ShowArticleSign": "false", + "ShowArticleSign": "true", "Editor": "", "CacheExpired": "300", "TranslateKey": "y2RIaF6RifHnJeD1Szzw", @@ -18,5 +18,6 @@ "ShowComments": "true", "ShowGuestbook": "true", "ChangyanId": "cyrUoGjWj", - "ChangyanConf": "prod_c77d5188bc137c8d9181720d02506ab6" + "ChangyanConf": "prod_c77d5188bc137c8d9181720d02506ab6", + "CodeTheme": "" } \ No newline at end of file diff --git a/language/en-US.json b/language/en-US.json index 5853859..1d3c3d3 100644 --- a/language/en-US.json +++ b/language/en-US.json @@ -204,7 +204,8 @@ "message_id": "友言uid", "message_id_placeholder": "apply uid", "save": "Save", - "editor": "Default Editor" + "editor": "Default Editor", + "code_theme":"Code Block Theme" } } } diff --git a/language/zh-CN.json b/language/zh-CN.json index 0919bd4..e49c815 100644 --- a/language/zh-CN.json +++ b/language/zh-CN.json @@ -209,7 +209,8 @@ "author_name": "网站所有者", "author_name_placeholder": "网站所有者", "email_addr": "邮箱", - "email_addr_placeholder": "邮件地址" + "email_addr_placeholder": "邮件地址", + "code_theme": "代码块风格" } } } \ No newline at end of file diff --git a/public/css/dark_theme_code.css b/public/css/dark_theme_code.css new file mode 100644 index 0000000..fe60ff7 --- /dev/null +++ b/public/css/dark_theme_code.css @@ -0,0 +1,13 @@ +pre{ + background: transparent url(/static/images/code-bk.png) repeat scroll 0% 0%; + margin: 0; + padding: 15px 20px; + border-style: solid; + border-color: #eee; + border-width: 1px 0; + border-radius: 3px; + overflow: auto; + color: #f8f8f2; + font-size: 16px; + line-height: 19.2px; +} \ No newline at end of file diff --git a/public/css/monokai-sublime.min.css b/public/css/monokai-sublime.min.css new file mode 100644 index 0000000..589eff9 --- /dev/null +++ b/public/css/monokai-sublime.min.css @@ -0,0 +1 @@ +.hljs{display:block;overflow-x:auto;padding:0.5em;background:#23241f}.hljs,.hljs-tag,.hljs-subst{color:#f8f8f2}.hljs-strong,.hljs-emphasis{color:#a8a8a2}.hljs-bullet,.hljs-quote,.hljs-number,.hljs-regexp,.hljs-literal,.hljs-link{color:#ae81ff}.hljs-code,.hljs-title,.hljs-section,.hljs-selector-class{color:#a6e22e}.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-name,.hljs-attr{color:#f92672}.hljs-symbol,.hljs-attribute{color:#66d9ef}.hljs-params,.hljs-class .hljs-title{color:#f8f8f2}.hljs-string,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-id,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-variable{color:#e6db74}.hljs-comment,.hljs-deletion,.hljs-meta{color:#75715e} \ No newline at end of file diff --git a/public/css/posts_style_custom.css b/public/css/posts_style_custom.css index 874742d..3bcf112 100644 --- a/public/css/posts_style_custom.css +++ b/public/css/posts_style_custom.css @@ -18,4 +18,33 @@ border-radius: .8rem; background: #49b1f5; content: ""; +} +.hljs { + border: 0; + font-family: "Consulas", "Courier New", Courier, mono, serif; + font-size: 12px; + background: #eee !important; + display: block; + padding: 1px; + margin: 0; + width: 100%; + font-weight: 200; + color: #333; + white-space: pre-wrap +} +.hljs ul { + list-style: decimal; + padding: 0px; +} +.hljs ul li { + list-style: decimal; + border-left: 3px solid #6ce26c !important; + padding: 5px!important; + margin: 0 !important; + line-height: 14px; + word-break: break-all; + word-wrap: break-word; +} +.hljs ul li:nth-of-type(even) { + color: inherit; } \ No newline at end of file diff --git a/public/images/code-bk.png b/public/images/code-bk.png new file mode 100644 index 0000000..17b491e Binary files /dev/null and b/public/images/code-bk.png differ diff --git a/public/js/highlight_line_number.js b/public/js/highlight_line_number.js new file mode 100644 index 0000000..f162afe --- /dev/null +++ b/public/js/highlight_line_number.js @@ -0,0 +1,4 @@ +//代码高亮自定义 +$("code").each(function(){ + $(this).html(""); +}); \ No newline at end of file diff --git a/routes/admin.js b/routes/admin.js index 49f8141..52cfa6d 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -563,7 +563,8 @@ router.post('/saveSettings', (req, res, next) => { ChangyanId: req.body.ChangyanId, ChangyanConf: req.body.ChangyanConf, Email:req.body.EmailAddr, - Author:req.body.AuthorName + Author:req.body.AuthorName, + CodeTheme:req.body.CodeTheme }); res.end(); }); diff --git a/views/admin/settings.pug b/views/admin/settings.pug index 65408ed..1c867ec 100644 --- a/views/admin/settings.pug +++ b/views/admin/settings.pug @@ -80,6 +80,21 @@ block content li(data-value='markdown') a(href='#') Markdown input#Editor.hidden.hidden-field(type='text', name='Editor', readonly='readonly', aria-hidden='true',value=settings.Editor) + li.list-group-item.clearfix + .pull-left + | #{__("admin.settings.code_theme")} + .pull-right + #CodeThemelist.btn-group.selectlist(data-resize='auto', data-initialize='selectlist') + button.btn.btn-white.dropdown-toggle(data-toggle='dropdown', type='button') + span.selected-label + span.caret + span.sr-only Toggle Dropdown + ul.dropdown-menu(role='menu') + li(data-value='') + a(href='#') Github + li(data-value='Monokai') + a(href='#') Monokai + input#CodeTheme.hidden.hidden-field(type='text', name='CodeTheme', readonly='readonly', aria-hidden='true',value=settings.CodeTheme) li.list-group-item.clearfix .pull-left | #{__("admin.settings.cache_expire_time")} diff --git a/views/blog/article.pug b/views/blog/article.pug index b7da6cb..b44f76c 100644 --- a/views/blog/article.pug +++ b/views/blog/article.pug @@ -7,6 +7,9 @@ block content if (post.ContentType === 'markdown') link(href='/static/css/github-markdown.css', rel='stylesheet') + if (settings.CodeTheme==='Monokai') + link(href='/static/css/monokai-sublime.min.css', rel='stylesheet') + link(href='/static/css/dark_theme_code.css', rel='stylesheet') .detail-container .container .row @@ -91,6 +94,7 @@ block content script(type='text/javascript', src='/static/scrollNav/dist/jquery.scrollNav.min.js', charset='utf-8') script(type='text/javascript', src='https://cdn.bootcss.com/highlight.js/9.12.0/highlight.min.js', charset='utf-8') script(type='text/javascript', src='/static/js/article.js', charset='utf-8') + script(type='text/javascript', src='/static/js/highlight_line_number.js', charset='utf-8') script. var expandMenu = '#{settings.ExpandMenu}'; var logoPath = "#{settings.LogoPath}";