【293】博客园自动添加样式代码

如下的博客内容,只有标题和目录内容,通过python脚本对其HTML内容进行处理,为其添加标题样式以及锚点,并为目录添加对应的链接地址


目录:

  • 一、测试
  • 二、测试
  • 三、测试
  • 四、测试
  • 五、测试

一、测试

二、测试

三、测试

四、测试

五、测试


对应的HTML源代码如下所示:

<p>目录:</p>
<ul>
<li>一、测试</li>
<li>二、测试</li>
<li>三、测试</li>
<li>四、测试</li>
<li>五、测试</li>
</ul>
<p>一、测试</p>
<p>二、测试</p>
<p>三、测试</p>
<p>四、测试</p>
<p>五、测试</p>

操作步骤:将上面HTML复制,然后调用如下的方法,方法已经写好了

>>> from blog_diy import *
>>> blog1.titleChange()

会将结果自动复制到剪切板上,得到结果如下:

<p>目录:</p>
<ul>
<li><a href="#A01">一、测试</a></li>
<li><a href="#A02">二、测试</a></li>
<li><a href="#A03">三、测试</a></li>
<li><a href="#A04">四、测试</a></li>
<li><a href="#A05">五、测试</a></li>
</ul>
<div class="title_hh"><a name="A01"></a><strong>一、测试</strong></div>
<div class="arrow-left"> </div>
<div class="title_hh"><a name="A02"></a><strong>二、测试</strong></div>
<div class="arrow-left"> </div>
<div class="title_hh"><a name="A03"></a><strong>三、测试</strong></div>
<div class="arrow-left"> </div>
<div class="title_hh"><a name="A04"></a><strong>四、测试</strong></div>
<div class="arrow-left"> </div>
<div class="title_hh"><a name="A05"></a><strong>五、测试</strong></div>
<div class="arrow-left"> </div>

效果如下所示:


目录:

一、测试
 
二、测试
 
三、测试
 
四、测试
 
五、测试
 

内容如下,一级标题用“标题1”的样式,二级标题用“标题2”的样式


一、测试

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

1.1 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

1.2 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

1.3 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

二、测试

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

三、测试

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

3.1 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

3.2 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

3.3 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

四、测试

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

五、测试

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

5.1 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

5.2 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

5.3 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文


HTML 源代码如下:

<h1>一、测试</h1>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>1.1 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>1.2 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>1.3 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h1>二、测试</h1>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h1>三、测试</h1>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>3.1 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>3.2 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>3.3 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h1>四、测试</h1>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h1>五、测试</h1>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>5.1 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>5.2 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>
<h2>5.3 测试第二级标题</h2>
<p>  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文</p>

操作代码: 引用两个函数即可,首先需要复制上面源码,然后调用如下函数

>>> from blog_diy import *
>>> blog1.changeTitleAndContents_Tier1()
>>> blog1.changeTitleAndContents_Tier2()

实现效果如下:


目录:

一、测试
 

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

1.1 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

1.2 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

1.3 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

二、测试
 

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

三、测试
 

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

3.1 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

3.2 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

3.3 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

四、测试
 

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

五、测试
 

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

5.1 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

5.2 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文

5.3 测试第二级标题

  正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文


源码如下:

def changeTitleAndContents_Tier1():
	# 将得到的结果自动复制到剪贴板上
	# 本函数针对整个HTML代码
	# 包括前面目录部分自动添加 目录 & 链接
	# 后面标题部分自动添加标题样式以及锚点
	# 需要引用其他函数
	# 参数来自于剪切板复制
	# 标题特点,按照标题1格式的<h1>
	"为一级标题添加特殊样式、添加目录、为目录添加链接 的 HTML 代码(针对没有添加目录的源码)"
	
	# 为Unicode编码,为了统一复制来的数据编码
	contents = [u'<p>目录:</p>', u'<ul>']

	# 需要调用里面关于剪切板的函数
	from win_diy import *
	str_all = win.getClipboard()
	str_all_array = str_all.splitlines()
	
	# 查找其所在行
	# 转换为 Unicode 编码才可以操作
	# 为标题添加样式以及锚点
	i = 0
	for s in str_all_array:
		# 查找<h2>
		if s.find(u'<h1>') >= 0: 
			index_end = s.find(u'</')
			index = s.rfind(u'>', 0, index_end) + 1
			title = s[index:index_end]
			str_all_array[i] = getTitleByNum(title)
			# 添加Unicode编码字符,将目录内容叠加
			contents.append(contentAnchor(u'<li>' + title + '</li>'))
		i = i + 1

	# 最后叠加结尾部分
	contents.append(u'</ul>')
	# 将目录内容后面叠加原修改后列表,再将结果赋值给 str_all_array
	contents.extend(str_all_array)
	str_all_array = contents

	# 通过回车将列表合并起来
	n = '\n'
	win.addToClipboard(n.join(str_all_array))

def changeTitleAndContents_Tier2():
	# 将得到的结果自动复制到剪贴板上
	# 本函数针对整个HTML代码
	# 包括前面目录部分自动添加链接
	# 后面标题部分自动添加标题样式以及锚点
	# 需要引用其他函数
	# 参数来自于剪切板复制
	"为“二级”标题添加特殊样式的 HTML 代码 —— title 为名称 —— index 为锚点名称"
	# 为Unicode编码,为了统一复制来的数据编码
	contents_t2 = [u'\n<ul>', u'\n<ul>', u'\n<ul>', u'\n<ul>', u'\n<ul>', u'\n<ul>', u'\n<ul>', u'\n<ul>']
	flag = [0, 0, 0, 0, 0, 0, 0, 0]

	# 需要调用里面关于剪切板的函数
	from win_diy import *
	str_all = win.getClipboard()
	str_all_array = str_all.splitlines()
	
	# 转换为 Unicode 编码才可以操作
	# 直接遍历查找<h2>
	
	# 为标题添加样式以及锚点
	i = 0
	# 存储二级标题的第一个数字
	num_1 = '0'
	for s in str_all_array:
		# 查找<h2>
		if s.find(u'<h2>') >= 0: 
			# 由于左侧可能有多余的标签,需要先查询"</"
			# 类型一:<h2>4.1 必备参数</h2>
			# 类型二:<h2><span style="font-size: 15px;"><strong>4.3 缺省参数</strong></span></h2>
			index_end = s.find(u'</')
			# 从右侧查询,终点为index_end
			index = s.rfind(u'>', 0, index_end) + 1
			title = s[index:index_end]
			# 获取标题的数字内容,例如"4.1 必备参数"获取4和1
			index_dot = title.find(u'.')
			index_space = title.find(u' ')
			num_1 = title[0:index_dot]
			num_2 = title[(index_dot+1):index_space]
			# 添加样式和锚点,命名规则"N_4_1"
			str_all_array[i] = '<div class="title_hh2"><a name="A_'+num_1+'_'+num_2+'"></a>' + title + '</div>'
			# 如果存在二级标题,则为flag赋值
			flag[int(num_1)] = 1
			# 添加Unicode编码字符,将目录内容叠加
			contents_t2[int(num_1)] = contents_t2[int(num_1)] +'\n<li><a href="#A_'+num_1+'_'+num_2+'">'+title+'</a></li>'
		i = i + 1

	# 将二级目录添加到代码中,通过数字进行迭代
	# 迭代flag为1的部分
	for f in range(0, len(flag)):
		if flag[f] == 1:
			contents_t2[f] = contents_t2[f] + '\n</ul>'
			i = 0
			for line in str_all_array:
				if line.find(u"#A0"+str(f)) >= 0:
					index = line.find(u"</li>")
					str_all_array[i] = line[0:index] + contents_t2[f] + "\n</li>"
					print str_all_array[i]
				i = i + 1

	# 通过回车将列表合并起来
	n = '\n'
	win.addToClipboard(n.join(str_all_array))

转载于:https://www.cnblogs.com/alex-bn-lee/p/8315313.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML5电脑游戏代码博客园是一个专门分享和讨论HTML5电脑游戏代码的博客平台。在这个博客园中,我们可以找到各种不同类型的HTML5电脑游戏代码,并与其他开发者进行交流和分享经验。 HTML5是一种用于构建网页和应用程序的技术标准,它包括HTML、CSS和JavaScript等语言。通过HTML5,我们可以创建各种不同类型的游戏,包括拼图游戏、射击游戏、角色扮演游戏等。 在博客园中,我们可以找到一些优秀的HTML5电脑游戏代码示例,这些示例提供了游戏的源代码和演示链接,让我们可以直接在浏览器中体验这些游戏。此外,博客园中还有一些文章和教程,介绍了如何使用HTML5技术开发游戏,包括游戏的基本原理和开发工具的使用等。 通过参与博客园中的讨论,我们可以与其他开发者交流心得和问题,互相学习和进步。这个平台不仅仅是一个代码分享的地方,更是一个互动和共同成长的社区。无论是初学者还是有经验的开发者,都可以在这里找到学习和提升的机会。 总之,HTML5电脑游戏代码博客园是一个提供优秀HTML5游戏代码和交流分享的平台,通过参与其中,我们可以学习和分享HTML5游戏开发的经验,提升自己的技术水平。 ### 回答2: HTML5是一种用于开发网页内容和应用的标准技术,而电脑游戏是一种受欢迎的娱乐方式。在博客园上,我们可以找到一些关于HTML5电脑游戏代码的分享和讨论。 HTML5提供了一些功能强大的API和工具,使得开发者可以用它来创建各种类型的电脑游戏。其中一种常见的方式是使用Canvas元素来绘制游戏场景和图形。开发者可以通过JavaScript来操作这些图形,并实现游戏中的各种交互和逻辑。 在博客园上,我们可以找到一些编写HTML5电脑游戏的示例代码,以及一些关于如何使用不同游戏引擎和框架的教程。有些博客主可能会分享一些自己开发的小型游戏,同时还提供了源代码和详细的讲解,以帮助其他人学习和理解游戏开发的过程。 通过在博客园上分享HTML5电脑游戏代码,我们可以促进知识和经验的交流,让更多的人受益于这些优秀的项目和资源。同时,其他开发者可以在评论区或者通过私信的方式提出问题和交流意见,促进更进一步的学习和改进。 综上所述,博客园是一个很好的平台,可以找到一些关于HTML5电脑游戏代码的分享和讨论。通过在这个平台上的交流,我们可以相互学习和提高,推动HTML5游戏开发的进步。 ### 回答3: HTML5电脑游戏代码是指使用HTML5技术开发的电脑游戏的源代码。HTML5是一种用于创建和呈现网页内容的标准技术,它包括HTML、CSS和JavaScript等语言,可以在各种设备上运行,包括电脑。 博客园是一个知名的社区型博客平台,提供了用户自主发表博客文章的功能。在博客园上,用户可以分享自己的技术心得、游戏开发经验等内容。 如果要在博客园上分享HTML5电脑游戏代码,可以按照以下步骤进行: 1. 进入博客园官网,并登录自己的账号。 2. 点击页面上的“写新博客”或类似的按钮,开始撰写新的博客文章。 3. 在文章编辑页中,选择合适的标题和分类,以及补充必要的标签以方便他人搜索。 4. 在文章的正文部分,将HTML5电脑游戏的代码粘贴进去。 5. 根据需要,在代码附近提供详细的说明和解释,帮助读者理解代码的作用和使用方法。 6. 检查一遍文章内容,确保格式和代码的展示正确无误。 7. 点击保存或发布按钮,将博客文章保存并发布到自己的博客空间。 通过在博客园上分享HTML5游戏代码,可以让其他游戏开发者或对此感兴趣的读者学习和参考代码,互相交流和分享经验。同时,博客园也提供了评论功能,读者可以留下问题或反馈,进一步促进交流和讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值