Легкий экспорт из github wiki (?)

Я собираю довольно много материала в вики GitHub. Мне очень нравится использовать wiki для сотрудничества с другими людьми, и IMHO платформа действительно хороша, мне она нравится!

Итак, я бы хотел использовать GH wiki для сбора материалов, редактирования, сохранения и т.д., но я также хотел бы экспортировать содержимое, чтобы создать pdf файл, который мы можем назвать "руководством". Я хотел бы генерировать обновленную версию руководства автоматически каждый раз, когда я хочу просто запустить несколько скриптов, я не могу приложить к этому слишком много усилий.

Я думаю, что можно каким-то образом экспортировать контент и использовать pandoc (http://johnmacfarlane.net/pandoc/), чтобы создать pdf файл, возможно, добавив индекс и файл стиля.

Еще одна интересная идея - опубликовать веб-сайт раз в месяц, сбрасывая содержимое непосредственно из вики.

Я думаю, что другие люди уже делали что-то подобное, но я ничего не нашел. Любая идея?

Ответ 1

Но... вики Github репо GitHub - это репозиторий git сам по себе (представленный в августе 2010 г.).

Вы можете клонировать его, нажимать на него или извлекать из него.

Каждая wiki - это репозиторий git, поэтому вы можете нажать и вытащить их, как что-нибудь еще.
Каждая вики уважает те же права, что и исходный репозиторий.
Просто добавьте ".wiki" к любому имени репозитория в URL, и вы готовы к работе.

Это делает "экспорт" частью вашего вопроса действительно тривиальным.

Оттуда вы найдете тонны script для преобразования страниц разметки в pdf:

Ответ 2

Я добавляю к этому ответу, если это поможет новым читателям :) вот что я сделал:

Я установил GitHub Desktop: https://desktop.github.com/

Затем, на странице wiki в моем репозитории, я нажал "Clone in Desktop" Clone

Это сохранили wiki локально как.md файл (после выполнения действий на экране)

Затем я использовал http://www.markdowntopdf.com/, чтобы преобразовать его в pdf (Примечание: я переименовал файлы для удаления символов, которые не будут работать в имени файла pdf перед загрузкой на веб-сайт)

Конечный результат был действительно приятным.

Ответ 3

Я обнаружил, что многие из этих решений трудно воспроизвести/получить правильную версию/понять/исправить/и т.д. Поэтому вместо этого я представим решение для док-станции с пэчворком, которое легко конвертируется в Windows (используя git bash )/MacOS/Linux в 5 "простых" командах

git clone {project_url}.wiki .

# Convert *.md to *.md.html using the actual github pipeline
docker run --rm -e DOCKER_USER_ID=`id -u` -e DOCKER_GROUP_ID=`id -u` \
            v "`pwd`:/src" -v "`pwd`:/out" andyneff/github-markdown-preview

# Fix hyperlinks, since wkhtmltopdf is stricter than github servers
docker run --rm -v `pwd`:/src -w /src perl \
    perl -p -i -e 's|(<a href=")([^/"#]+?)(#[^"]*)?(">.*?</a>)|\1\L\2\E.md.html\L\3\E\4|g'\
                  *.html

# Lowercase all filename so that hyperlink match
docker run --rm -v `pwd`:/src -w /src python \
    python -c 'import sys;import os; [os.rename(f, f.lower()) for f in sys.argv[1:]]' \
               *.md.html

#Convert html to pdf using QT webkit
docker run -it --rm -e DOCKER_USER_ID=`id -u` -e DOCKER_GROUP_ID=`id -u`\
           -v `pwd`:/work -w /work andyneff/wkhtmltopdf \
           wkhtmltopdf --encoding utf-8 --minimum-font-size 14 \
           --footer-left "[date]" --footer-right "[page] / [topage]" \
           --footer-font-size 10 \
           toc \
           *.html document.pdf

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

Ошибки:

  • Экстра широкие кодовые блоки будут отображаться с помощью полосы прокрутки и существенно отсекаются в pdf. Было бы лучше сделать блок кода не переполнением, но вы можете добавить --user-style-sheet user.css в команду wkhtmltopdf (до toc/cover) и добавить в свой user.css

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • Некоторая ссылка в финальном pdf отключена на +1 странице, некоторые - нет. Не уверен, что такое шаблон. Но якоря с идентификаторами (#), похоже, не имеют этой проблемы.

Ответ 4

Я выполнил именно это, создав переносимую документацию для Barcode Writer в Pure PostScript:

GitHub Wiki + Makefile + pandoc → PDF

Процесс описан в этом сообщении .

Ответ 5

Другой вариант, когда вы клонируете wiki, особенно если вы уже используете Atom, нужно использовать этот пакет Markdown для PDF. Отлично работает для меня.

Ответ 6

Я нашел действительно раздражающим необходимость конвертировать каждый документ по уценке отдельно (ссылки между документами по уценке потеряны), поэтому я в итоге написал простую программу на С# для собственного использования, которая делает это за один шаг: a) Загрузите последнюю версию вики от Github, б) конвертировать все документы уценки объединены в один PDF

Вы можете загрузить двоичные файлы (Windows или любую платформу, поддерживающую Mono) по адресу: https://github.com/borjafdezgauna/CoderDocTools/releases/latest

Если, например, вы хотите преобразовать репозиторий SimionZoo в PDF с помощью пользователя simionsoft, вы можете:

MarkdownToPDF.exe user=simionsoft project=SimionZoo output-file=SimionZoo.pdf

Ответ 7

Вы также можете попробовать html_links_to_pdf!

Это Python 3 script, сделанный для преобразования вики GitHub в формат PDF, используя тот же стиль, что и GitHub, но немного более чистый.