В настоящее время я использую скрипт в MarsEdit.app, который имеет недостаток. Он проверяет документ HTML на случаи, когда абзацы заключены в теги <p>
следующим образом:
-- If already starts with <p>, don't prepend another one
if not {oneParagraph starts with "<p>"} then
set newBodyText to newBodyText & "<p>"
end if
set newBodyText to newBodyText & oneParagraph
Проблема здесь в том, что если абзац (или единственная строка) переносится любым другим тегом HTML, кроме тега <p>
, сценарий переносит теги <p>
по всей доске.
Другая часть скрипта, которая проверяет наличие конечных тегов в конце абзаца, делает почти то же самое.
-- If already ends with </p>, don't append another one
if not (oneParagraph ends with "</p>") then
set newBodyText to newBodyText & "</p>"
end if
set newBodyText to newBodyText & return
Пример:
<h5>
Foobar </h5>
становится
<p><h5>
Foobar </h5></p>
В другом вопросе Applescript и оператор «начинается с» , @lri был любезен, чтобы дать мне решение, связанное с ним.
on startswith(txt, l)
repeat with v in l
if txt starts with v then return true
end repeat
false
end startswith
startswith("abc", {"a", "d", "e"}) -- true
и другие его рекомендации также можно найти на этом сайте Обернуть строки тегами на applecript
Реализация этих рекомендаций с MarsEdit.app - еще одна проблема для меня.
Я загрузил весь скрипт на pastebin. Pastebin: MarsEdit.app, оберните строку скриптом tags
Если кто-нибудь может помочь мне отредактировать скрипт в соответствии с рекомендациями @ lri, это было бы здорово. Заранее спасибо.