我想创建一个可以更改html文档的python脚本,我有点迷茫,不知道从哪里开始,我尝试了几项根本行不通的事情,并且认为它不值得将它们张贴在这里。
问题在于,使用Django,最好编写如下所示的链接:
<link href="{% static 'assets/css/cssfile.css' %}"/>
<script src="{% static 'assets/js/jsfile.js' %}"></script>
<img src="{% static 'assets/images/desktop.png' %}"/>
Run Code Online (Sandbox Code Playgroud)
但是我有一个模板,实际上是几个模板,其中包含大量以常规方式引用的静态资产,如下所示:
<link href="assets/css/cssfile.css" rel="stylesheet"/>
<script src="assets/js/jsfile.js"></script>
<img src="assets/images/desktop.png"/>
Run Code Online (Sandbox Code Playgroud)
因此,我一直在尝试创建一个查找“资产”并编辑该行的脚本,替换href="assets为href="{% static'...,然后' %}在末尾添加。我认为对于使用模板的Django开发人员来说,这将是一个非常有价值的脚本,也许它已经存在于某个地方。
有没有任何自动的方法可以将常规href / src属性转换为使用Django标签?
我假设您知道正则表达式。我更喜欢进行这种更改的方法是使用支持正则表达式的编辑器,这是搜索和替换的问题。如果您使用的是Django,那么Jetbrains的pycharm绝对物有所值。我喜欢vim。
每个编辑器在正则表达式捕获组的工作方式上都有一些差异(请检查您的编辑器/ ide docs),但是这种正则表达式的一般格式为:
(src|href)="(assets\/.+?)"
Run Code Online (Sandbox Code Playgroud)
它正在搜索以开头的src或href属性assets,以捕获引号之间的所有内容。因此,捕获组1是属性,捕获组2是值-替换表达式为:
\1="{% static '\2' %}"
Run Code Online (Sandbox Code Playgroud)
在某些编辑器上,必须使用$1和$2代替\1和\2。在Vim中,您必须避开括号IICR。另外,某些编辑器.+?对于非贪婪的“捕获所有内容” 不支持此语法(),您可能不得不使用它[^"]+。
| 归档时间: |
|
| 查看次数: |
1392 次 |
| 最近记录: |