Я начал работать над проектом Shiva с первого коммита в марте 2024 года, стремясь создать универсальный инструмент на Rust для парсинга и конвертации документов. За несколько месяцев проект значительно расширился, добавив поддержку множества форматов файлов, включая HTML, Markdown, простой текст, PDF, JSON, CSV, RTF, DOCX, XML, XLS, XLSX, ODS и Typst. Shiva — это проект с открытым исходным кодом, и его репозиторий доступен на github.com/igumnoff/shiva.

Цель проекта — предложить альтернативу таким известным инструментам, как Apache Tika, написанный на Java, и Pandoc, разработанный на Haskell. Эти инструменты уже давно стали стандартом для разработчиков, работающих с документами. Однако я надеюсь, что Shiva сможет предложить более простое и эффективное решение, которое сможет справляться с растущим разнообразием и сложностью цифровых документов. Проект развивается быстро, хотя впереди еще много работы, но мне радостно наблюдать за прогрессом.

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

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

Комментарии (3)


  1. belonesox
    24.10.2024 03:48

    Посмотрел, пока непонятно, это только «изоморфная конвертация» или все таки будет «техписательство»
    Наверное проект еще молодой, заброшу ожидания того, кто использует pandoc-пайплайны для технического документирования (может когда-нибудь получится, или сразу напишете, что это против вижена проекта):

    • синхронизация исходников с результатом (что-то типа «source-pos» в pandoc)

    • включение одних документов в другие (типа разных include-фильтров pandoc, но если это будет из коробки — лучше).

    • подстановки шаблонов/cущностей...

    и я так понял, плагинов не планируется?


    1. igumnov Автор
      24.10.2024 03:48

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


      1. belonesox
        24.10.2024 03:48

        Ну, long story short → я вижу эффективное техдокументирование близким к LaTeX-процессу, где есть код и предпросмотр, между ними легко перепрыгивать, код может «включать» другой код и шаблоны. Разве что заменить LaTeX-разметку (которая не для людей) на Markdown, а PDF-предпросмотр (кому теперь нужны страницы) на HTML-предпросмотр. Вот как это выглядит за 30 секунд.

        Я это сделал на Pandoc, но контрибуция в Haskell-сорсы для меня мучительна, а экстеншны не всегда удобно там подключаются... Но в целом, реализуемо (там масса тонкостей, как обрабатывать формулы, как...).

        Не хочу вас сейчас в это толкать (вдруг я склоняю вас к NIH-переизобретению-велосипедов), но может когда-нибудь... Ну разве что сейчас на уровне архитектуры наверно надо подумать о подключении экстеншнов, и опциональной информации «в исходном файле этот обьект был на такой строчке такого файла» и может, тут как-то форсить на мировом уровне для маркдауна спецификацию стандартного способа как «включать другие файлы».