Как сделать файл README модуля Perl совместимым с дисплеем Github Markdown?

Я создал файл README в модуле Perl в Markdown. Github рассматривает этот файл README как обычный текст. Я попробовал переименовать файл в "README.md", который отлично смотрится в Github, но невидим для инструментов Perl, которые ищут файл с именем "README".

Есть ли способ, которым я могу иметь как файл README, так и мое форматирование Markdown корректно интерпретироваться Github?

Единственная возможность, которую я мог придумать, состояла в том, чтобы иметь как README, так и README.md, но я бы предпочел не иметь необходимости вручную синхронизировать два файла.

Спасибо за вашу помощь.

Ответы

Ответ 1

Отформатируйте README в pod, переименуйте его README.pod, а затем работает в обоих местах! Пример

В моих целях я на самом деле просто создаю свой README.pod из основного блока, выполнив

$ podselect lib/My/Main/Module.pm > README.pod

Одно предостережение, называемое внешними ссылками, работает некорректно L<GitHub|http://github.com>, к сожалению, указывает на search.cpan.org, который ищет модуль GitHub. Я попытался сообщить им об этом сбое, но это ни к чему. Вместо этого вы можете просто использовать простые внешние ссылки (т.е. GitHub: L<http://github.com>), и они работают нормально.

Хорошие новости, похоже, они исправили это с момента последнего проверки!


Просто вопрос, какие части инструментария Perl ожидают файла README? Если вы имеете в виду включение его в свой tarball, просто обязательно добавьте файл в свой MANIFEST, и он должен быть включен.

Ответ 2

Слышали ли вы о POD? Это стандартный инструмент документации на Perl. POD - это простой текстовый формат документации, который действительно живет в вашем коде. Одна из команд, которые поставляются с perl, - perldoc. Вы можете использовать его для получения информации о любой команде Perl. Попробуйте следующее:

$ perldoc File::Find
$ perldoc -f split

Все модули Perl в CPAN должны содержать документацию POD. Фактически, именно так построены веб-страницы CPAN.

Итак, где я собираюсь с этим и как это вам поможет?

Вы должны включить документацию POD в свою программу Perl. Затем вы можете использовать команду pod2text, чтобы создать README для своей программы Perl:

$ pod2text myperl.pl > README

Это относится к половине вашей проблемы.

Другая половина немного сложнее. Вам необходимо установить из CPAN Pod::Markdown в вашей системе. Затем вы можете запустить команду pod2markdown, которая поставляется вместе с этим модулем для создания версии уценки вашего файла:

$ pod2markdown myperl.pl > README.md

Результаты:

  • Ваша документация живет, как и должно быть, в вашей программе Perl.
  • Пользователи могут использовать программу perldoc для распечатки полной документации вашей программы.
  • Вы можете использовать инструмент pod2text для создания вашего файла README.
  • Вы можете использовать инструмент pod2markdown для создания вашего файла README.md.
  • В качестве бонуса вы можете использовать модуль Pod:: Usage, который поставляется с Perl, чтобы показать документацию POD (или биты и фрагменты it) в качестве справочного текста, который отображается, когда пользователь запускает вашу программу с параметром -help.

Итак, в одном месте, где живет ваша документация, и вы используете пару вспомогательных программ для создания файлов Github и любых необходимых Perl-инструментов.

Ответ 3

Если вы не против использования Dist::Zilla, вы можете в значительной степени избавиться от полного поддержания README. Например Dist::Zilla::Plugin::ReadmeFromPod может создать ваш файл README, извлекая Pod из вашего основного модуля. Это означает, что вам больше не нужно писать README.

Я никогда не пробовал это самостоятельно, но вы могли бы посмотреть на что-то вроде Dist::Zilla::Plugin::ReadmeMarkdownFromPod, чтобы автоматически создавать README в методе уценки.

Это не может быть точный ответ, который вы ищете, но я думаю, что использование такого инструмента может сэкономить вам много времени, поскольку оно позволяет вам не повторять себя в своей документации.

Ответ 4

Другое решение, если вы действительно хотите распространять свой модуль с помощью Markdown README, который не связан с Pod, заключается в следующем:

  • переименуйте файл README в README.md
  • обновить предыдущее изменение в файле MANIFEST

Я думаю, что это может быть интересное решение, потому что больше людей знают синтаксис Markdown, чем Pod. Поскольку цель файла README должна быть прочитана кем угодно, Markdown следует рассмотреть.

Ответ 5

Единственный вариант, который я мог придумать, - это как README, так и README.md, но я бы предпочел не использовать вручную два файла в синхронизации.

Затем автоматически синхронизировать их?