2014-08-27 100 views
3

我想創建一個可以更改html文檔的python腳本,我有點迷路,不知道從哪裏開始,我已經嘗試過幾個不起作用的東西所有,並不認爲它值得在這裏發表。將HTML轉換爲Django模板

的問題是,Django的,最好是寫像這樣的鏈接:

<link href="{% static 'assets/css/cssfile.css' %}"/> 
    <script src="{% static 'assets/js/jsfile.js' %}"></script> 
    <img src="{% static 'assets/images/desktop.png' %}"/> 

但我有一個模板,其實幾個模板,有很多靜態的資產被以正常的方式引用,像這樣:

<link href="assets/css/cssfile.css" rel="stylesheet"/> 
<script src="assets/js/jsfile.js"></script> 
<img src="assets/images/desktop.png"/> 

所以,我一直在試圖創建一個腳本,尋找「資產」和編輯的線,與href="{% static'更換href="assets ...然後在最後添加' %}。我認爲這對於使用模板的django開發人員來說是一個非常有價值的腳本,可能它已經在某處。

是否有任何自動化的方式來轉換正常的href/src屬性使用Django標籤?

+1

我認爲你的問題的標題是非常不清楚的:「Python。改變一個HTML文件。」你能改善它嗎? – guaka 2014-08-27 19:13:57

+1

我不確定問題是什麼。你正在尋找寫腳本的幫助,或者看看這樣的事情是否已經存在,或者..? – Fulluphigh 2014-08-27 19:16:08

+1

獲取正則表達式支持的編輯器。在vim上是類似':%s/\(src | href)=「\(assets \ /.+?\)/ \ 1 =」{%static'\ 2'%}「/ g ' – 2014-08-27 19:18:19

回答

4

我假設你知道正則表達式。我最喜歡的方式,使這種改變是使用正則表達式支持的編輯器,然後它是一個搜索&替換的問題。如果你使用的是Django,jetbrains的pycharm是非常值得的。我喜歡vim。

每個編輯器有捕獲羣體如何正則表達式工作的一些變化(請檢查您的編輯器/ IDE文檔),但是這樣的正則表達式的一般格式爲:

(src|href)="(assets\/.+?)" 

它尋找一個srchref屬性起始於assets,捕獲報價之間的所有內容。因此,捕獲組1的屬性和捕獲組2的值 - 替換表達式是:

\1="{% static '\2' %}" 

在一些編輯器,你必須使用$1$2代替\1\2。在vim中,你必須逃離parens IICR。另外,有些編輯不支持這種語法(.+?),因爲非貪婪的「捕獲所有內容」,您可能不得不使用[^"]+

+1

謝謝,我不擅長正則表達式,無論如何,我會嘗試並讓它你知道它是怎麼回事。我使用Sublime Text 3 btw。 – alejoss 2014-08-27 19:51:37

+0

如果啓用正則表達式(左側的小型[。*]'按鈕),這將在st3搜索/替換框中起作用。 – 2014-08-27 20:57:06

+0

它工作。先生,謝謝。 – alejoss 2014-08-29 16:51:16