cnblog优化指南
为什么要优化
cnblog用了一段时间,发现好多问题
- 编辑器功能不足,影响编辑效率
- 美化不足,影响视觉体验
功能优化
自动添加目录
根据h2,h3标签自动生成目录,点击目录的指定条目可以跳转的指定类容,每个内容小标题上都有回到顶部目录按钮。
我只做了两级目录,只有h2存在时才生成目录,且存在h3时,h3是h2的子目录,代码如下:
<script language="javascript" type="text/javascript"> //生成目录索引列表 function GenerateContentList() {var jquery_h23_list = $('#cnblogs_post_body h2,#cnblogs_post_body h3');//h2和h3为章节的子母标题var go_top = false;for(var i =0;i<jquery_h23_list.length;i++){if(jquery_h23_list[i].tagName == 'H2'){go_top = true;break;}}if((jquery_h23_list.length>0) && (go_top == true)){var content = '<a name="_labelTop"></a>';content += '<div id="navCategory">';content += '<p style="font-size:18px"><b>阅读目录</b></p>';content += '<ul>';var big_section = '';for(var i =0;i<jquery_h23_list.length;i++){var go_to_top = '<div style="text-align: right"><a href="#_labelTop">回到顶部</a><a name="_label' + i + '"></a></div>';$(jquery_h23_list[i]).before(go_to_top);if(jquery_h23_list[i].tagName == 'H2'){if(big_section != ''){big_section += '</ul></li>';content += big_section;}big_section = '<li><a href="#_label' + i + '"><strong>' + $(jquery_h23_list[i]).text() + '</strong></a><ul>';}else if(jquery_h23_list[i].tagName == 'H3'){if(big_section != ''){big_section += '<li><a href="#_label' + i + '">' + $(jquery_h23_list[i]).text() + '</a></li>';}}}if(big_section != ''){big_section += '</ul></li>';content += big_section;}content += '</ul>';content += '</div>';if($('#cnblogs_post_body').length != 0) {$($('#cnblogs_post_body')[0]).prepend(content);}} } GenerateContentList(); </script>
View Code
将以上代码copy到管理
-> 设置
-> 页脚Html代码
保存即可
我的h2,h3 CSS风格是:
#cnblogs_post_body h2 {font-size: 20px;font-weight: bold;line-height: 1.5;margin: 10px 0;background-color: #5f4935;padding: 4px;color: #ffffff;font-family: "Trebuchet MS"; } #cnblogs_post_body h3 {font-size: 18px;font-weight: bold;line-height: 1.5;margin: 10px 0;background-color:#f1e1c5;padding: 4px;font-family: "Trebuchet MS"; }
View Code
自定义风格
有时候需要添加html标签,自定义风格。应为cnblog除了插入代码,就是一个风格,重点就很难突出,层次也不鲜明。
比如有时程序运行日志,命令,txt文本,提示信息需要展示,它不属于代码,难道就用纯文本展示吗,我的方法是也给它一个代码块
然后将class替换成自己的风格。
例:
redis-benchmark -n 10000 -t set -k 1
比如在说一段话的时候要突出某个词,我的方法用<code>content</code>
表示突出显示的词,给code
定制对应css风格,
但是cnblog编辑器菜单没插入code
对应的按钮,可以编辑html页面,效率比较低,后面介绍高效率的方法。
我以上两个css风格分别是:
.ply_style_code_01 {padding: 8px;background-color: #f7f7f9;border: 1px solid #e1e1e8;margin-top: 5px;margin-bottom: 5px;font-size: 14px;font-family: Courier New; }code {white-space: nowrap;max-width: 100%;background: #fff;border: solid 1px #e1e4e5;font-size: 75%;padding: 0 5px;font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;color: #E74C3C;overflow-x: auto;margin-left: 3px;margin-right: 3px; }
View Code
HTML替换
要想自定义风格生效,就需要改html代码(或者改cnblog的原始风格)。
对于插入HTML标签,我是这么做的:
{%text%} ====> <code>text</code> {tag%text%} ====> <tag>text</tag> {tag attr=value%text%} ====> <tag attr='value'>text</tag>
也就是我需要写一个高亮的单词可以这么写,{%我们不一样%},正则匹配替换后:<code>我们不一样</code>,
我也可以自行写个H1标签,{h1%我是h1标签%},正则匹配替换后:<h1>我是h1标签</h1>
或者可选样式的一段话{p class=style1%想是啥样就是啥样%},正则匹配替换后:<p class="style1">想是啥样就是啥样</p>
需要替换的样式:
<pre class="brush:vbnet;gutter:false;"> <pre class="brush:vbnet;gutter:true;"> =====> <pre class="ply_style_code_01"><pre class="brush:scala;gutter:false;"> <pre class="brush:scala;gutter:true;"> =====> <pre class="ply_style_code_02">
在博客编写完需要提交前,编辑HTML代码,将HTML代码剪切到剪切板,快捷键运行python程序,从剪切板读取HTML代码,
完成上述规则的替换,将替换后的HTML代码写到剪切板(python 程序),ctrl + v
到HTML编辑器
python程序:
#pip install pyperclip import pyperclip as pc import re#将指定格式内容转换为HTML标签 #{%text%} ====> <code>text</code> #{tag%text%} ====> <tag>text</tag> #{tag attr=value%text%} ====> <tag attr='value'>text</tag>#替换指定样式 #<pre class="brush:vbnet;gutter:false;"> #<pre class="brush:vbnet;gutter:true;"> =====> <pre class="ply_style_code_01">#<pre class="brush:scala;gutter:false;"> #<pre class="brush:scala;gutter:true;"> =====> <pre class="ply_style_code_02">#1.获取剪切板内容 content = pc.paste()#2.将指定格式内容转换为HTML标签 def parse(arg):taget = arg.group()para = re.findall('{%(.+?)%}|{(\w+)%(.+?)%}|{(\w+) +(\w+)=(\w+)%(.+?)%}',taget,flags=re.DOTALL)text1,tag2,text2,tag3,attr3,value3,text3 = para[0]if text1:return '<code>{0}</code>'.format(text1)elif text2:return '<{0}>{1}</{2}>'.format(tag2,text2,tag2)elif text3:return '<{0} {1}={2}>{3}</{4}>'.format(tag3,attr3,value3,text3,tag3) content = re.sub('{%(.+?)%}|{(\w+)%(.+?)%}|{(\w+) +(\w+)=(\w+)%(.+?)%}',parse,content,flags=re.DOTALL)#3.替换指定样式 content = re.sub('<pre class="brush:vbnet;gutter:false;">|<pre class="brush:vbnet;gutter:true;">','<pre class="ply_style_code_01">',content) content = re.sub('<pre class="brush:scala;gutter:false;">|<pre class="brush:scala;gutter:true;">','<pre class="ply_style_code_02">',content)#4.将修改过的HTML代码放到剪切板 pc.copy(content)
View Code
将该程序添加到快捷键启动的方式(前提.py文件能直接运行,若不能运行看python有没有添加到环境变量):
右键发送到
->桌面快捷方式
,在右键快捷方式属性
,选中快捷键按上自己想要的快捷键。
转载于:https://www.cnblogs.com/plyonfly/p/11470709.html
cnblog优化指南相关推荐
- vue 同一个域名移动端pc端两套代码跳转_百度移动搜索优化:手机站优化指南
百度移动搜索是全球最大的中文手机搜索引擎,每天用户使用百度移动搜索发起的搜索请求高达数亿次.本文档旨在为手机站站长提供官方.明确的搜索引擎优化标准,使站长合理.可持续的提升手机站流量,获得长久.稳定的 ...
- 移动H5前端性能优化指南[转]
移动H5前端性能优化指南 米随随2015.01.23 移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用 2. 在Mobile侧我们提出三秒种渲染完成首屏指标 3. 基于第二点 ...
- WordPress 全方位优化指南(下)
上一篇 WordPress 全方位性能优化指南(上)主要从网站性能指标.优化缓存.MySQL 等方面给大家介绍了如何进行 WordPress 性能优化,但还远远不够,毕竟像 WordPress 这样的 ...
- php接口性能测试工具,PHP 应用性能优化指南
原标题:PHP 应用性能优化指南 PHP代码优化最佳实践 编写好的PHP代码是创建快速稳定Web应用的关键一步.从一开始就遵循一些最佳实践技巧将节省后期填坑的时间. 1. 尽可能的使用PHP的内置方法 ...
- 移动手机平台的HTML5前端优化指南
对于访问量大的网站来说,前端的优化是必须的,即使是优化1KB的大小对其影响也很大,下面来看看来自ISUX的米随随讲讲移动手机平台的HTML5前端优化,或许对你有帮助和启发. 概述 1. PC优化手段在 ...
- WordPress SEO ☞ WordPress网站终极优化指南
原文地址:http://www.eastdesign.net/wordpress-seo/ 最新消息,东方设计学院 WordPress SEO 系列视频教程正在持续更新中,目前为了不至于让视频传播过于 ...
- Java性能优化指南,及唯品会的实战
来了唯品会一年多,不少时间花在与服务化框架.业务应用的性能的缠斗上. 前几天正好趁着中生代社区的十月十城技术沙龙,把脑海中关于性能优化的记忆全部理了一遍-.讲完回家,又本着认真严谨的态度再理了一遍,终 ...
- 如何给网站瘦身?图文并茂的前端性能优化指南
提高网站的速度对网站的成功有巨大的影响,因为网站的加载速度直接影响到用户体验和搜索引擎排名.Browser Diet 是一个非常好的指南,列出了前端性能优化的各种技巧和工具. 您可能感兴趣的相关文章 ...
- jQuery性能优化指南(转载)
现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, ...
最新文章
- java map class_java – 将通用Class参数限制为实现Map的类
- mysql日常错误信息解决方法:InnoDB: and force InnoDB to continue crash recovery here.
- 如何显示已上演的更改?
- vim入门教程(实践第一)
- OpenCV简单的几何绘图的实例(附完整代码)
- 第22篇 js中的this指针的用法
- Go圈10月份优质博主推荐
- 一起走过一段不平凡的路
- FaceDetector(人脸识别)
- LeetCode 96——不同的二叉搜索树
- docker与虚拟机性能比较
- SpringContext扩展BeanFactory
- dell linux raid 查看,Ubuntu Linux下Dell服务器使用硬Raid后查看磁盘信息方法
- 游戏蛮牛Unity 用户文档
- 千兆路由器和百兆路由器
- kaldi中文语音识别
- ios 静态库合成_手把手教你制作.a静态库(iOS开发)
- 机器学习数据集划分留出法,留一法,交叉法,自助法
- Python总结-学习方向和方法
- 纯css更改图片颜色的技巧
热门文章
- D. Backspace
- MySQL操作之数据备份与还原
- 论文抽检判定抄袭的标准?
- LintCode 646. 第一个独特字符位置 JavaScript算法
- 我喜欢看的lol超神学院
- Eclipse运行时概述1(运行时插件模型,首选项)
- 四相八拍步进c语言程序,5线四相八拍步进电机的C51演示程序
- gemfire mysql_用GemFire做Hibernate二级缓存
- 图像检索:DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations
- ChatGPT旋风如何“卷”到汽车行业?