给hexo的post文件名加上日期

简介: hexo博客的默认文件名是没有日期的,如果你想加上日期要怎么做呢···我就用python写了一个小工具来做这个事情。

前段时间翻hexo的介绍的时候,里边提到有一个new_post_name的配置,可以让每次新建文章的文件名都改成日期-文件名的形式,这样子也是推荐做法。


# Writing
new_post_name: :year-:month-:day-:title.md # File name of new posts
default_layout: post


然而默认的方式是没有加日期的···我改了这个配置之后就变成了一半是有日期的,另外一半是没有日期的,视觉上看起来非常的尴尬。于是我忍耐了一小段时间之后,就写了下边这么一个python小脚本来把没有改时间的post的文件名都加上了时间。


因为ubuntu自带一个py2.7,所以这个就是2.7的,能不能在3.x上运行我也没有试过··

把下边的代码保存成py文件保存在source/_posts文件下边,一般ubuntu都可以无障碍执行,然后py 执行这个文件就好了,可以说是非常方便。


当然改好之后一定要记得在_config.yml里边修改new_post_name的配置呀!


最后感叹一下,python用来写点脚本实在是方便的不行。


import os
import re
entries = os.listdir(os.getcwd())
for entry in entries:
    if entry.endswith("md"):
        if re.match('^\d{4}-\d{1,2}-\d{1,2}', entry, flags=0) == None:
            with open(entry, 'r') as f:
                data = f.read()
                matchobj = re.search('\d{4}-\d{1,2}-\d{1,2}', data)
            newFileName = matchobj.group() + '-' +entry
            print "now rename file: " + entry + " to: " + newFileName
            os.rename(entry, newFileName)


最后再加一个修改完成之后的效果:


微信截图_20210909172002.png


看着前边整齐的日期,感觉强迫症都好了

相关文章
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
存储 边缘计算 运维
移动LTE背后:核心网络详解
移动LTE背后:核心网络详解
1437 4
|
Kubernetes 数据库 Docker
Kubernetes Node删除镜像
【7月更文挑战第1天】
433 8
|
编译器 Go C语言
通过例子学习在golang中调试程序
【7月更文挑战第4天】Go语言支持使用cgo进行汇编调试,官方文档在golang.org/doc/asm。注意,调试Go运行时可能遇到变量不可用或行号错误,需谨慎使用step命令。
368 1
通过例子学习在golang中调试程序
|
缓存 监控 持续交付
|
网络协议 Go C语言
在golang中调试时的指令和使用技巧
【7月更文挑战第4天】 本文介绍 Go调试工具`dlv`常用命令概览及其使用技巧。
886 2
在golang中调试时的指令和使用技巧
|
Go 开发者
代码整洁利器:go fmt命令详解
代码整洁利器:go fmt命令详解
1389 0
|
Windows
不会写免杀也能轻松过defender上线CS
不会写免杀也能轻松过defender上线CS
669 0
|
供应链 安全 IDE
7-zip 本地提权漏洞(CVE-2022-29072)
7-zip 本地提权漏洞(CVE-2022-29072)
|
JavaScript Java PHP
PHP注释的三种方法
PHP一共有三种注释方法,LAMPLNMP详细介绍: eg: 1、单行注释“//”;2、单行注释“#”;3、多行注释“/ 注释文字 /”。
4112 0