@Linda-chan

Linda-chan

Линда Кайе
Linda-chan

Дата рождения: 01.11.1983

Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.

https://www.lindachan.net

10 я читаю 59 меня читают
15079 постов
25810 комментариев
Linda-chan
01 Jun 2021

У меня все рассказы в текстовых файлах, оформленных по стандарту. Есть утилита, которая красиво перегоняет текстовые файлы в HTML для сайта. А теперь я, наконец, запилила из кода утилиты библиотеку, которая парсит текстовые файлы в кучу объектов. Типа, объект рассказа, у него свойства «Серия», «Название», коллекция строк, ну и так далее. Короче, повозилась, придумывая структуру всего этого, но результат уже налицо: все выходные курила формат FB2, а сейчас уже у меня есть работоспособный конвертер, который ещё надо допилить по мелочам, но уже делающий готовые электронные книжки. Так же библиотека поможет мне генерировать тексты для отправки на всякие пиксивы и аотри. Теперь – самое сложное: переделать утилиту, чтобы она тоже использовала библиотеку.

01 Jun 2021

а не проще было сразу за calibre схватиться? или мадам поебаться?

01 Jun 2021

На выходе Сalibre даёт то ещё говнище.

#zlcuf/2 в ответ на /1
01 Jun 2021

Ну вот схватилась я за калибру, там список книжек, можно что-то добавить и даже почитать, текстовый файл волшебным образом не парсится и превращается в FB2 или EPub. Что дальше?

#zlcuf/3 в ответ на /1
01 Jun 2021

да. добавила, дальше выбираешь нужные и тыкаешь в кнопку "Конвертировать книги", при этом можно выбрать пачкой.
а дальше ебашишь по гайду.
https://manual.calibre-eboo...m/ru/conversion.html
если хочется, можно и скриптом.
https://manual.calibre-eboo...u/ebook-convert.html

Комментарий был отредактирован в 22:07:07 01.06.2021
#zlcuf/4 в ответ на /3
01 Jun 2021

Ткнула. Мне было предложено ручками заполнить данные, которые и так есть в рассказе, но это ладно – чудес не бывает. Перешла сразу к конвертации. Сначала он сказал, что не понимает, что такое «Формат ANP». Переименовала в TXT. Тогда он сказал мне, что как-то много текста для EPub. Все сообщения сопровождались стэк трейсами путона, в них было мало полезной информации, но я так поняла, что оно думает, что существует только два формата: маркдаун и неправильный. Оно взяло мой текст с красными строками и захерачило как один большой абзац. Тогда я включила эвристику. Оно пыхтело долго, догадалось, что у меня абзацы разделяются одним переносом и выдало что-то. В готовом варианте не было красных строк, зато были богомерзкие пустоты между абзацами. Там то тут то там торчали «<code>» в тексте. Все подзаголовки оно срезало, для верности склеив абзацы, которые шли до и после. Не знаю, может быть, если долго сидеть с напильником, можно это всё привести в чувства, но зачем?

#zlcuf/5 в ответ на /4
01 Jun 2021

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

Вообще там в кишках кругом xpath примерно для вснго, так что оно скорее под разгребание html-like заточено.
"<code>" - это странно и так быть точно не должно. богомерзкие пустоты убираются буквально через чуть-чуть css, как я понимаю. дай исходник погонять, я может быстро в чувство приведу его.

#zlcuf/6 в ответ на /5
01 Jun 2021

Собственно, моя мысль такова. У меня все рассказы отформатированы по единому стандарту. У меня есть парсер, который вытаскивает максимум инфы из исходного текста. И я могу легко и просто генерировать любые файлы, используя этот парсер. Без стороннего софта, который написан не мной и действует по каким-то своим соображениям. Результат получается какой нужен сразу и без напильников.

#zlcuf/8 в ответ на /6
02 Jun 2021

ну хоть целевые файлы ты генеришь библиотечным кодом? тогда окей.
а то я знаю любителей бегло пролистать спеку формата и потом нагенерить щербатой и кривоватой фигни.

#zlcuf/9 в ответ на /8
02 Jun 2021

Я полистала спеку формата, написала программу, которая через MSXML генерирует готовый XML, а потом валидирует его через XSD схемы от авторов формата. Или для такой героической задачи тоже нужны сторонние библиотеки?

#zlcuf/10 в ответ на /9
02 Jun 2021

<genre>unrecognised</genre>

а що так?

и ещё fbreader рендерит текст странно.


а вот если просто отформатить файл через xmllint --format (тупо расставляются переводы строк и пробелы), то отображает без этих дурацких символов в конце каждого слова.
Alreader на мобилке этим вроде не страдает.
В целом fb2 формат с небольшой ебанцой как и все, что помножается на баги в других парсерах.
И меня ещё смущает ченджлог - за што повальное codeложество?
можно же просто повесить id на section и навернуть для неё один css?
также <emphasis>&gt; - это пахнет костылём, есть <cite>.
Алсо по композиции ты уверена, что абзацы должны быть такими маленькими?
И ещё вкусовщина - раз уж у тебя длинные красивые тире, может и многоточия сделаешь типографскими?

#zlcuf/11 в ответ на /10
02 Jun 2021

а що так?

Лень. Процесс автоматизирован, для каждой книжки придумывать жанры лень, да и инопланетные они какие-то. Гейских романов пачка, для порно в 2.0 есть жанр nonfiction_pornography, а в 2.1 – home_sex. Ну и для контекста нужно придумывать, чего бы запилить.

Но я пока это обдумываю. Разработка идёт.

и ещё fbreader рендерит текст странно.

Это очень странно. У меня на мобилах FBReader выводит очень красиво и без странных символов. Собственно, я на нём и тестирую в ондройде, а на десктопе – в Калибре. С другой стороны, у меня там голый UTF-8 XML в одну строку, в строках обычные пробелы, никаких особых символов нет.

В целом fb2 формат с небольшой ебанцой как и все, что помножается на баги в других парсерах.

Не знаю, не знаю. FB2 очень прост и заведует только структурой документа без конкретного оформления (сделаем вид, что тэга style не существует), так что рендеринг текста и то, как этот текст в итоге будет выглядеть – полностью на совести читалок. Например, читалка в итоге решает, выводить абзацы с пустотой между ними или с отступами в начале каждого.

И меня ещё смущает ченджлог - за што повальное codeложество?

Потому что командую читалке выводить текст моношринным шрифтом, а каким, и как именно, и выводить ли вообще – решать читалке.

также <emphasis>&gt; - это пахнет костылём, есть <cite>.

cite – это немного про другое. Я подозреваю, что он решит, что это отдельный блок, а не обычный абзац, и всё посъезжает. А это именно что обычный абзац, но с неким смысловым выделением.

Алсо по композиции ты уверена, что абзацы должны быть такими маленькими?

Да.

И ещё вкусовщина - раз уж у тебя длинные красивые тире, может и многоточия сделаешь типографскими?

Нет :} Тогда мне придётся искать замену для «..?», «?..», «..!», «!..», «..?!», «?!..» и всему такому прочему. Нет никакого смысла в замене трёх точек тремя точками.

#zlcuf/12 в ответ на /11
02 Jun 2021

А вот я скачал файл и осуждаю вынос истории в отдельную секцию body. Для этого есть history же. И там даже есть одна запись.
Ну и «Этот рассказ посвящается Sing.» явно просится в epigraph.

Комментарий был отредактирован в 11:38:12 02.06.2021
#zlcuf/13 в ответ на /12
02 Jun 2021

не, я именно про то, что ты emphasis используешь в связке со стрелкой и по факту в этом месте цитируешь кусочек текста. это cite просто семантически.
вот так cite рендерится у Дорофеева в которого я подглядывал использование тегов.


Нет, три точки - это три точки, они у тебя могут перенестись случайно, а многоточие - это единый знак.
Думаю можно взять \u2025 для сочетаний с другим знаком препинания и \u2026 для обычного многоточия.
https://unicode-table.com/r...s/punctuation-marks/

#zlcuf/14 в ответ на /12
02 Jun 2021

Блок history – это история изменений самого FB2 файла, а не текста, который в нём содержится. В ченджлоге рассказывается о том, что происходило с оригинальными текстовыми файлами, а не с FB2, сгенерированным из них. Кроме того, блок history в читалках не показывается.

Разумеется, заполняя каждый раз этот блок одной единственной строчкой, я нарушаю его смысл, но хранить портянки на каждую автоматическую генерацию я не готова.

Ну и «Этот рассказ посвящается Sing.» явно просится в epigraph.

Не просится, поскольку из оригинального текстового файла в автоматическом режиме ты сможешь это понять только сыграв в угадайку.

#zlcuf/15 в ответ на /13
02 Jun 2021

не, я именно про то, что ты emphasis используешь в связке со стрелкой и по факту в этом месте цитируешь кусочек текста. это cite просто семантически.

В общем и целом, я не согласна, но надо подумать :} Я опасаюсь, что в сильно умных программах текст начнёт скакать как попало из-за этих блоков. Но тут тоже надо экспериментировать.

Нет, три точки - это три точки, они у тебя могут перенестись случайно, а многоточие - это единый знак.

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

Думаю можно взять \u2025 для сочетаний с другим знаком препинания и \u2026 для обычного многоточия.

Контрпродуктивно и не даёт в итоге ничего полезного.

#zlcuf/16 в ответ на /14
02 Jun 2021

Потому что командую читалке выводить текст моношринным шрифтом,

вообще это идеальная задача для css.

#zlcuf/18 в ответ на /12
02 Jun 2021

новый php ты всё равно не напишешь.

#zlcuf/20 в ответ на /19
02 Jun 2021

Это понятно, но тут я решила, что всё форматирование – забота читалки. Я просто говорю ей, что вот этот текст – форматировать не нужно, он как код. А читалка уже рисует его моношринным.

#zlcuf/21 в ответ на /20
02 Jun 2021

Сделала поддержку cite. Результат оказался... странным, но ожидаемым.

Комментарий был отредактирован в 12:52:56 02.06.2021
#zlcuf/22 в ответ на /14
02 Jun 2021

Если вставляется cite, то надо бы « >» убирать.

#zlcuf/23 в ответ на /22
02 Jun 2021

Ну, теоретически надо, но практически мне кажется, что нет.

#zlcuf/25 в ответ на /23
02 Jun 2021

потому что у тебя на empty-line понатыкан, очевидно.

#zlcuf/26 в ответ на /22
02 Jun 2021

Не, я про вот этот вот резкий съезд вправо и дополнительные пустоты по вертикали вдобавок к пустым строкам.

#zlcuf/27 в ответ на /26
02 Jun 2021

съезд вправо - это как раз всё правильно для цитаты. и твои отбивки пустыми строками - это тоже излишний костыль в этом месте очевидно. ридер должен сам понимать, что это цитата и соотв. образом делать отбивки или не делать, смотря как там настроено в нём.

#zlcuf/28 в ответ на /27
02 Jun 2021

Ридер может делать отбивки, а может не делать. В этом проблема. Этот момент я предпочитаю брать в свои руки.

#zlcuf/29 в ответ на /28
02 Jun 2021

Вот сразу же проверила, FBReader не делает ни отбивок, ни сдвига, только делает абзац курсивом. Если не вставить пустые строки, то логические блоки текста, которые и призваны разделять пустые строки, прилипнут друг к другу.

#zlcuf/30 в ответ на /28

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.