![]() #рубиновый_поезд
#айтишный_быт #проект_fanficmd Обнаружил нетривиальные свойства тегов Фанфикса. Например, теги выравнивания можно ставить в середине предложения, и они действуют не до закрывающего тега, а до СЛЕДУЮЩЕГО ОТКРЫВАЮЩЕГО тега выравнивания. Товарищ ReFeRy, это нормальное поведение? Можно его вписывать в спецификацию? 17 сентября 2015
|
![]() |
ReFeRy Онлайн
|
Не до следующего открывающего тега выравнивания, а до следующего штатного конца абзаца. Ибо закрывающим тэгом служит тэг конца абзаца, а выравнивание должно применяться именно к абзацам.
Зачем это нужно вообще учитывать? Речь ведь шла о форматировании текста для автора, а там с тегами все просто. |
![]() |
|
ReFeRy
Э-м-м, нет. Я проверил: текст "Лорем ипсумом <center>об</center> стенку, <right>мы шагаем широко!</right> Размахнувшись в зов вселенной, мы убьем всех дураков!" форматируется как: <p class="fict" id="c0p3">Лорем ипсумом <p class="fict" style="text-align: center;">об стенку, <p class="fict" style="text-align: right;">мы шагаем широко! Размахнувшись в зов вселенной, мы убьем всех дураков!</p> Т.е. с незакрытыми тегами и без учета закрывающего тега center/right. Учитывать нужно, ибо должно быть преобразование fanficsme > markdown. Вдруг автор так экзотически форматирует свой фанфик, а он не распарсится? |
![]() |
ReFeRy Онлайн
|
И все равно не понимаю, зачем нужно анализировать верстку текста для читателей - ведь автор-то будет импортировать свой авторский текст.
Вот здесь мы и видим, что я предусмотрел не все виды извращений со стороны авторов. Выравнивание внутри абзаца... наверное, стоит автоматически разносить теги на края абзаца, внутри которого они стоят, как это делает Word. 1 |
![]() |
ReFeRy Онлайн
|
Я не проверяю правильность порядка вложенности тегов. Если открывающие и закрывающие теги стоят подряд и перепутаны местами, это исправляю. А если они разнесены, то даже не пытаюсь. У меня нет анализа тегов с древовидным разбором, чисто регулярки. Может и на них это можно сделать, но я не делал.
Хотя приведен странный кусок - это именно вывод после сохранения текста? Или вручную написанный пример? |
![]() |
ReFeRy Онлайн
|
Могут. Они вообще очень много чего могут - все освоить не так-то и просто, особенно самостоятельно :)
|
![]() |
|
*улыбнулся и кивнул*
|
![]() |
ReFeRy Онлайн
|
Допилил пару перестановок:
1. Сделал корректную обработку переноса строки внутри тегов жирного и курсива (расставляет новые теги в конце и в начале строки). 2. Сделал автоматическое исправление ошибочного порядка закрытия тегов жирного и курсива внутри одной строки. P.S. Срабатывает в момент сохранения изменений в главе, в предпросмотре теперь будут косяки. 2 |
![]() |
ReFeRy Онлайн
|
<b>ляля
<i>многострочных</b> тегов</i> = <b>ляля</b> <b><i>многострочных</i></b> <i>тегов</i> |
![]() |
|
О. Ня.
Благодарю ^_^ *думает, сворачивать ли написание перестановкоустойчивого парсера, или фикбук таким тоже чудит* |
![]() |
ReFeRy Онлайн
|
В чем проблема проверить?)
Вот, что получается на фикбуке: <div class="public_beta"> <b>ляля<br/> <i>многострочных</b><br/> тегов</i><br/> </div> |
![]() |
|
Проблема в лени =-)
Благодарю-с. |