оболочка: HTML шаблон - PullRequest
0 голосов
/ 18 июня 2020

У меня есть небольшой проект, в котором используется файл шаблона HTML, например:

<p>Hi, I'm some text for this project!</p>

, и я хочу, чтобы его прочитал мой bash скрипт, но Sed ускользает по закрывающему тегу, который меньше оптимального;

На данный момент это выглядит так ($ postContents - это HTML текст выше);

## Replace <!-- TITLE --> in Head > Title and in Headder > H1 with RealName
sed -i "s/{{TITLE}}/$realname/g" $webdir/blog/$basefile
## Replace <!-- DATE --> With webdate
sed -i "s/{{DATE}}/$webdate/g" $webdir/blog/$basefile
## Replace <!-- CONTENTS --> With postContents
sed -i "s/{{CONTENTS}}/"$postContents"/g" $webdir/blog/$basefile

Имея вручную проверил, абсолютно уверен, что ловит закрывающий тег. Что мне нужно сделать, чтобы это заработало?

1 Ответ

0 голосов
/ 19 июня 2020

Лучше использовать реальный шаблонизатор.

Я думаю о модуле perl Template::Toolkit или python Jinja.

Использование утилиты tpage , установленный с модулем perl Template::Toolkit (пакет libtemplate-perl в Debian):

cat template.tpl
<!DOCTYPE html>
<html lang="fr">
<head>
</style>
<title>[% title %]</title>
</head>
<body>
<a href="[% href %]" title="[% htitle %]" ></a>
<br/>
</body>
</html>

Код

$ tpage --define title=bar --define href=https://x.j/qs --define htitle=bar template.tpl 

Вывод

<!DOCTYPE html>
<html lang="fr">
<head>
</style>
<title>bar</title>
</head>
<body>
<a href="https://x.j/qs" title="bar" ></a>
<br/>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...