Перевести фрагмент HTML из А в Б - PullRequest
0 голосов
/ 15 октября 2019

Я использую Microsoft Word, отфильтрованный HTML для создания контента сайта. По понятной причине (слово меняет изображения), я хочу указать правильные пути к изображениям на моем сайте. Каждое изображение имеет связанную гиперссылку (помещенную в файл слова) на правильный путь к изображению. Похоже, Word не имеет возможности устанавливать реальные имена файлов для источника изображения, предпочитая помещать изображения в отдельный каталог с разными именами изображений. Черт побери и слово, слишком полезное, чтобы избежать.

Мне нужен скрипт bash (не обязательно соответствующий инструмент) для преобразования строк в файле $ 1:

src = ". _files /." to src = "matchfrom previous href = "/ SecureOffice_Images /." "где. - подстановочный знак

Пример ввода

<p class=MsoNormal align=center style='margin-bottom:0in;margin-bottom:.0001pt;
text-align:center'><span lang=EN-CA><a
href="/SecureOffice_Images/PuTTY_Login_Prompt.jpg"><span style='color:windowtext;
text-decoration:none'><img border=0 width=391 height=80 id="Picture 2"
src="Tools_files/image002.jpg"></span></a></span></p>

Пример вывода:

<p class=MsoNormal align=center style='margin-bottom:0in;margin-bottom:.0001pt;
text-align:center'><span lang=EN-CA><a
href="/SecureOffice_Images/PuTTY_Login_Prompt.jpg"><span style='color:windowtext;
text-decoration:none'><img border=0 width=391 height=80 id="Picture 2"
src="/SecureOffice_Images/PuTTY_Login_Prompt.jpg"></span></a></span></p>

src="Tools_files/image002.jpg" был заменен на src="/SecureOffice_Images/PuTTY_Login_Prompt.jpg"

, другими словами, значение "src =" заменяется предыдущим значением "href =" между тегами <p> </p>

У всех естьинструмент / код предложения? Скрипт будет работать на Linux.

Спасибо;Билл

1 Ответ

0 голосов
/ 15 октября 2019

Спасибо @ collapsar

Вы заставили меня подумать, что моя методология работы с изображениями требует слишком много работы / сложности, так как ссылка является отдельным элементом, требующим построения дерева элементов и выполнения межстрочного многострочного поиска +заменить, поэтому я посмотрел на упрощение проблемы (создание моей собственной методологии).

Новый подход: не используйте поля ссылок для указания РЕАЛЬНОГО пути к изображению, используйте поле «alt =», которое появится на том жестрока как поле "src =", где "href =" может не указывать (вводя сложность).

Новый ввод:

<p class=MsoNormal align=center style='margin-bottom:0in;margin-bottom:.0001pt;
text-align:center'><span lang=EN-CA><img border=0 width=429 height=409
id="Picture 19" src="Tools_files/image001.jpg"
alt="/SecureOffice_Images/PuTTY_Login.jpg"></span></p>

Новый вывод:

<p class=MsoNormal align=center style='margin-bottom:0in;margin-bottom:.0001pt;
text-align:center'><span lang=EN-CA><img border=0 width=429 height=409
id="Picture 19" 
src="/SecureOffice_Images/PuTTY_Login.jpg"></span></p>

Перевод Alg:

perl -pi -e 's|src=".*?"||g' $1
sed -i 's/alt=/src=/g' $1

Я пытался (предпочел) sed вместо perl, но не мог обойти жадность: sed -i 's/src=".*?"//g' $1 (Q - возможно с sed?)

Итак, теперь яУ меня есть способ автоматически перейти от MS Word, отфильтрованного HTML, к тому, что требует мой сайт. А пока запустите скрипт перевода вручную. В конечном счете, интегрируйте его с моими сценариями автоматического рендеринга оглавления и создания всплывающих окон.

К вашему сведению: вот сайт: www.rossco.org

С уважением;Билл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...