[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: преобразовать man-ы в предпочтительный формат



On 2015-10-03, Victor Wagner wrote:

> Во-первых, в pdf можно преобразовывать сразу, получая разметку и высокое
> (относительно) качество верстки. Всё-таки troff, в формате которого
> пишутся man-страницы - исходно предназначен для верстки книг.
>
> Во-вторых, наиболее распространенный во всем мире формат электронных
> книг - .epub - это немногим более чем зазипованный html, а в html *roff
> тоже умеет преобразовывать.
>
> Другое дело, что для того чтобы сделать из кучки man - страниц
> электронную книг - manual, (как это вообще-то исходно задумано) нужно
> приложить некоторый труд по генерации оглавлений, алфавитных указателей
> и т.д.. Возможно, кто-то это уже проделал.

Мне путь https://metacpan.org/search?q=man кажется сложным.

Формируем HTML:

  mkdir $w
  for m in /usr/share/man/man[1-8]/*; do
    if [ ${m} = ${m%.gz} ]; then
      groff -man -Thtml $f >$w/${f##*/}.html
    else
      gzip -d -c $f | groff -man -Thtml >$w/${f##*/}.html
    fi
  done

Содержимое HTML файлов имеет простую структуру, потоково обрабатываем каждый файл,
формируя большой fb2 файл:

  {
    cat <<EOF
      $PRE
    EOF
    for $f in $w/*.html; do
      # на основании имиени файла?
      XXX-make-TOC-entry $f
    done
    ...
    for $f in $w/*.html; do
      # на основании содержимого фала
      XXX-make-SECTION-entry $f
    done
    cat <<EOF
      $POST
    EOF
  } > man.fb2

В разделе OPTIONS ".IP" директива создает таблицу. Наверно самая сложная
конструкция в потоке HTML.

Формат fb2: http://fictionbook.org/index.php/Документы;

В man страничках есть подобие гиперссылок, когда текст в виде WORD(N), fb2
поддерживает ссылки, можно сдедать упоминания WORD(N) кликабельными.

В epub много сторонних файлов, я бы не разбирался. В fb2 достаточно почитать
XSD схему.

Из fb2 можно гнать во что угодно.

Если у вас ридер способен читать CHM, то можно вообще быстро сделать.

Я из гонва, палок, sed, sh, find и Emacs сделаю CHM за 10 мин.

Для примера см. как я собирал документацию POSIX (файлик
SYSV3_POSIX_standard_chm-project.zip):

  https://www.mediafire.com/folder/u835715i5sqxo/book

Как запустить

  ~/.wine/drive_c/Program Files/HTML Help Workshop/hhw.exe

можно почитать у меня:

  http://gavenkoa.users.sourceforge.net/tips-html/chm.html

-- 
Best regards!


Reply to: