2013-09-12 3 views
31

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

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

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

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

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

ответ

44

Но ... Github wiki репо GitHub - это git repo сама по себе (introduced in August 2010).

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

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

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

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

+0

Спасибо! Если вы можете обрабатывать wiki как репо, все должно быть намного проще. – BigG

+1

@BigG Да, неудивительно, что много вещей в GitHub ... git repos;) – VonC

+0

Сценарий Gradle не работает с последним Gradle. Вот ссылка на фиксированный скрипт: https://gist.github.com/alexeyismirnov/85cdf7b1e9aea4d3494b – Alexey

0

Вы также можете попробуйте html_links_to_pdf!

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

4

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

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

Затем на вики-странице в моем хранилище, Я нажал «Clone в Desktop» Clone

Это спасло вики локально в виде .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.

Bugs:

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

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

Смежные вопросы