为什么要优化
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 = ''; content += ''; if($('#cnblogs_post_body').length != 0) { $($('#cnblogs_post_body')[0]).prepend(content); } } } GenerateContentList(); script>
将以上代码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"; }
自定义风格
有时候需要添加html标签,自定义风格。应为cnblog除了插入代码,就是一个风格,重点就很难突出,层次也不鲜明。
比如有时程序运行日志,命令,txt文本,提示信息需要展示,它不属于代码,难道就用纯文本展示吗,我的方法是也给它一个代码块
然后将class替换成自己的风格。
例:
redis-benchmark -n 10000 -t set -k 1
比如在说一段话的时候要突出某个词,我的方法用
表示突出显示的词,给content
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; }
HTML替换
要想自定义风格生效,就需要改html代码(或者改cnblog的原始风格)。
对于插入HTML标签,我是这么做的:
{%text%} ====>text
{tag%text%} ====>text {tag attr=value%text%} ====>text
也就是我需要写一个高亮的单词可以这么写,{%我们不一样%},正则匹配替换后:我们不一样
,
我也可以自行写个H1标签,{h1%我是h1标签%},正则匹配替换后:
我是h1标签
或者可选样式的一段话{p class=style1%想是啥样就是啥样%},正则匹配替换后:
想是啥样就是啥样
需要替换的样式:
=====>=====>
在博客编写完需要提交前,编辑HTML代码,将HTML代码剪切到剪切板,快捷键运行python程序,从剪切板读取HTML代码,
完成上述规则的替换,将替换后的HTML代码写到剪切板(python 程序),ctrl + v
到HTML编辑器
python程序:
#pip install pyperclip import pyperclip as pc import re #将指定格式内容转换为HTML标签 #{%text%} ====>text
#{tag%text%} ====>text #{tag attr=value%text%} ====>text #替换指定样式 ##=====># #=====>#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 '{0}
'.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('|', '',content) content = re.sub('|', '',content) #4.将修改过的HTML代码放到剪切板 pc.copy(content)
将该程序添加到快捷键启动的方式(前提.py文件能直接运行,若不能运行看python有没有添加到环境变量):
右键发送到
->桌面快捷方式
,在右键快捷方式属性
,选中快捷键按上自己想要的快捷键。