Menu

#42 detect ERROR: bad internal link

2.9999
open
nobody
None
2021-05-29
2021-05-07
No

документ подготовлен, сконвертирован и верифицирован в OOoFBTools. Но Флибуста на него смачно отругалась:

Добавление книги from-fb2.
ERROR: bad internal link: #1.
ERROR: bad internal link: #_.
ERROR: bad internal link: #.
Плохой, негодный файл

Действительно, указанные дефекты в файле пристутсвуют.
Надо их вылавливать в OOoFBTools

Discussion

  • Starikov Sergey

    Starikov Sergey - 2021-05-08

    Насколько я помню, это (контроль внутренних ссылок, т.е. сносок/примечаний) на уровне валидатора fb2 не ловится.
    «Ругань» сформирована отдельным дополнительным модулем проверки.

     
  • dikbsd

    dikbsd - 2021-05-12

    Мне бы текстовый файл для LO для теста.

     
    • Ildar Mulyukov

      Ildar Mulyukov - 2021-05-12

      Я словил эти ошибки на этом тексте:
      https://doc.rust-lang.org/stable/rust-by-example/print.html

       
      • dikbsd

        dikbsd - 2021-05-13

        Сделал конвертацию той странички, что Вы указали (по ссылке), не всю книгу. Ошибки не выявились..
        Не могли бы Вы прислать сгенерированный fb2 файл с указанием строк, где Флибуста видит ошибки ссылок?
        Спасибо.

         
  • Ildar Mulyukov

    Ildar Mulyukov - 2021-05-13

    FB2 файл, на который отругалась флибуста.
    Найти ошибки легко вручную по строке поиска href="#_" и т.п.

     
    • dikbsd

      dikbsd - 2021-05-13

      Спасибо, посмотрю.

       
  • dikbsd

    dikbsd - 2021-05-13

    Скопировал весь текст с указанной Вами ссылки, экспортировал в fb2 файл.
    Проблемный абаз:
    Ваш:
    <p>? is <emphasis>almost</emphasis><a l:href="#_">1</a> exactly equivalent to an unwrap which returns instead of panicking on Errs. Let's see how we can simplify the earlier example that used combinators:</p>

    У меня:
    <p>? is <emphasis>almost</emphasis><sup><a l:href="https://doc.rust-lang.org/stable/rust-by-example/print.html#†">1</a></sup> exactly equivalent to an unwrap which returns instead of panicking on Errs. Let's see how we can simplify the earlier example that used combinators:</p>

    Как видно, у меня экспортировалось корректно.

    1. Как Вы размещали текст с указанного Вами сайта? Copy/Paste, как я, или еще как-то?
    2. Мне нужен Ваш текстовый файл, который Вы экспортировали в fb2, чтобы посмотреть его и прогнать под отладчиком.
     
    • Starikov Sergey

      Starikov Sergey - 2021-05-13

      Реализация cope/paste может зависеть от платформы.
      Прошу указать версию офиса, тип сборки и платформу на которой он запускается.
      И выслать исходный .odt на почту разработчику.

       
      • Ildar Mulyukov

        Ildar Mulyukov - 2021-05-13

        7.1.0.2 / ALTLinux / x86_64
        Текст переносился двумя способами:
        1. copy+paste из Firefox
        2. Открытием сохранённого html из LO Writer с последующим сохранением в ODT.

         
        • Ildar Mulyukov

          Ildar Mulyukov - 2021-05-13

          Да, чуть не забыл. Так уж получилось, что я сначала сохранил страницу из
          веб на жёсткий диск. А потом открыл её в Firefox и скопировал оттуда.

           
  • dikbsd

    dikbsd - 2021-05-14

    Ильдар, я проделал все, что Вы описАли: Сохранил страничку через FireFox на жесткий диск. Потом открыл этот html файл в текстовом редакторе, и увидел что ФайерФох "выкинул" гиперссылку, заменив ее на "#†":

    <p><code class="hljs">?</code> is <em>almost</em><sup class="footnote-reference"><a href="#†">1</a></sup> exactly equivalent to an <code class="hljs">unwrap</code> which <code class="hljs">return</code>s
    instead of <code class="hljs">panic</code>king on <code class="hljs">Err</code>s. Let's see how we can simplify the earlier
    example that used combinators:</p>
    

    Поэтому, конвертер корректно экспортировал, что было. Можно, конечно ввести в конвертер проверку на правильность гиперссылок.... Как появится время.

    К слову: Если делать прямое копирование/вставку из браузера с открытой интернет странички, то во многих случаях текст вставляется в LO корректно (не буду категоричным - не везде проверял).

     

    Last edit: dikbsd 2021-05-14
    • dikbsd

      dikbsd - 2021-05-14

      Кстати, попробовал отлавливать эти коварные "#_" - с ходу не получится обрабатывать эти "битые" ссылки, так как символом "#" LO отмечает закладки, которые конвертер тоже экспортирует, как ссылку-переход по документу.

       
      • Ildar Mulyukov

        Ildar Mulyukov - 2021-05-18

        Можно, конечно ввести в конвертер проверку на правильность
        гиперссылок.... Как появится время.

        Именно в этом был первоначальный запрос.

         
        • dikbsd

          dikbsd - 2021-05-18

          Тут засада вот в чем: экспорт разбит на 2 этапа: 1. анализ (сбор данных) и 2. формирование структуры fb2.
          Вводить проверку на правильность гиперссылок на этапе Анализа - это раз в 10 замедлить скорость экспорта. Надо будет продумать, как и где лучше сделать проверку: или на этапе анализа, или же - после конвертации править 3-м этапом сгенерированный fb2 файл. Что будет проще и быстрее.
          Подумаем.

          А пока - лучше всего пока делать копи/пасте, а не открывать сохраненный html файл для экспорта.

          Спасибо за сообщения о проблемах...

           
          • Starikov Sergey

            Starikov Sergey - 2021-05-29

            Лично мне в данной ситуации наиболее правильным представляется вынос обсуждаемой проверки в пост-обработку (то есть на третий этап).

            И, помнится, подобные нежданчики встречались и с copy/paste…
            Правда когда и на каких версиях офиса я уже не вспомню.

             

Log in to post a comment.