2014-08-27 4 views
3

Я хочу создать скрипт python, который изменит html-документы, я как бы потерял и не знаю, с чего начать, я пробовал пару вещей, которые не работали в все и не думаю, что его стоит опубликовать здесь.Преобразование 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="assets с href="{% static' ... а затем добавляет ' %} в конце. Я думаю, что это был бы очень ценный скрипт для разработчиков django, которые работают с шаблонами, может быть, он уже где-то там.

Есть ли какой-либо автоматизированный способ преобразования нормальных атрибутов href/src для использования тегов Django?

+1

Я думаю, что название вашего вопроса очень неясно: «Python. Измените html-файл». Можете ли вы его улучшить? – guaka

+1

Я не уверен, в чем вопрос. Вы ищете помощь в написании сценария или хотите посмотреть, существует ли такая вещь, или ...? – Fulluphigh

+1

Получить редактор с поддержкой регулярных выражений. На vim это что-то вроде ':% s/\ (src | href) =" \ (assets \ /.+? \)/\ 1 = "{% static '\ 2'%}"/g ' –

ответ

4

Предполагаете, вы знаете регулярные выражения. Мой предпочтительный способ сделать такое изменение - использовать редактор с поддержкой регулярных выражений, тогда это вопрос поиска & replace. Если вы используете Django, pycharm от jetbrains хорошо стоит денег. Мне нравится vim.

Каждый редактор имеет некоторые вариации, как регулярное выражение работы захвата группы (пожалуйста, проверьте редактор/IDE документы), но общий формат такого регулярного выражения:

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

Он ищет src или href, начиная с assets, захватывая все между кавычками. Таким образом, группа захвата 1 является атрибутом и захвата группы 2 является значение - выражение замены является:

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

В некоторых редакторах вы должны использовать $1 и $2 вместо \1 и \2. В vim вы должны избегать Parens IICR. Кроме того, некоторые редакторы не поддерживают этот синтаксис (.+?) для не-жадного «захвата всего», вам, возможно, придется использовать [^"]+.

+1

Спасибо. Я не очень хорошо разбираюсь в регулярных выражениях. В любом случае, я попробую и пусть вы знаете, как все прошло. Я использую Sublime Text 3 btw. – alejoss

+0

Это будет работать с буквой ipsis в поле поиска/замены st3, если вы включите регулярные выражения (маленькая кнопка '. *]' Слева). –

+0

Это сработало. Сэр, спасибо. – alejoss

Смежные вопросы