Примечание: Мы будем признательны, если вы отложите любые крупные рефакторинги (например, переименование устаревших пакетов Go), главным образом из-за потенциальной дополнительной работы по слиянию в будущем.
Мы приветствуем любые вклады в Hugo, будь то документация, темы, организацию, руководства, блоги, отчеты о багах, запросы на улучшения, реализации новых функций, pull-запросы, ответы на вопросы на форуме, помощь в управлении запросами и т.д.
Команда Hugo и её поддержка очень активны и полезны, и проект значительно выигрывает от этой активности. Мы создали шаг за шагом руководство, если вы не знакомы с GitHub или вкладом в открытые проекты в целом.
Примечание: этот репозиторий содержит только исходный код Hugo. Для только запросов на внесение изменений в документацию используйте репозиторий hugoDocs.
Изменения в кодовой базе и связанных документах, например, для новой функции, должны всё ещё осуществляться через один pull-запрос.
У нас есть активный форум обсуждения, где пользователи и разработчики могут задавать вопросы. Пожалуйста, не используйте трекер GitHub для задания вопросов.
Если вы считаете, что нашли дефект в Hugo или его документации, используйте трекер GitHub для сообщения
о проблеме разработчикам Hugo. Если вы не уверены, является ли это багом, начните с вопроса на форуме обсуждения.
При сообщении об ошибке, пожалуйста, предоставьте версию Hugo (hugo version
) и вашу операционную систему.
Hugo стал полностью функциональным генератором статических сайтов, поэтому любая новая функциональность должна:
Если функциональность имеет некоторую сложность, вкладчик ожидается поддерживать и поддерживать новую функцию в будущем (отвечать на вопросы на форуме, исправлять ошибки и т.д.). Любые значительные изменения кода должны обновлять открытые issues. Значительные изменения кода без ссылки на issue с одним из тегов bug
или enhancement
не будут приняты. Обратите внимание, что мы не принимаем новые функции, требующие CGO.
Есть одно исключение из этого правила, а именно LibSASS.
Исправления ошибок, конечно, всегда приветствуются.
Проект Hugo приветствует всех вкладчиков и вклады независимо от уровня навыков или опыта. Если вы заинтересованы в помощи проекту, мы поможем вам с вашим вкладом.
Чтобы создать лучший возможный продукт для наших пользователей и лучший опыт вклада для наших разработчиков, у нас есть набор правил, которые гарантируют, что все вклады приемлемы. Эти правила не предназначены как фильтр или барьер для участия. Если вы не знакомы с процессом вклада, команда Hugo поможет вам и научит, как привести ваш вклад в соответствие с этими правилами. Чтобы сделать процесс вклада как можно более плавным, мы просим следующего:
go fmt
./docs
.git rebase -i
. Нет ничего страшного в принудительном обновлении вашего pull request с помощью git push -f
.mage check
проходит успешно. Travis CI (Windows, Linux и macOS) завершит сборку с ошибкой, если mage check
завершится неудачно.Этот блоговый пост является хорошим ресурсом для изучения того, как писать хорошие сообщения о коммитах. Самым важным аспектом является то, что каждое сообщение о коммите должно иметь заголовок/тему в повелительном наклоне, начинающийся с заглавной буквы и без точки в конце: "js: Возвращать ошибку, если опция x не установлена", НЕ "возвращая какую-то ошибку."
Большинство заголовков/тем должны иметь префикс в нижнем регистре с двоеточием и одним пробелом. Префикс может быть:
media: Добавить текст/calendar
)markup/goldmark
допустимо, resources/resource_transformers/js
можно сократить до js
.errors: Решить правильные номера строк
all:
, например, all: Пересоздать Go код
docs:
.Пример:
tpl: Добавить пользовательскую функцию индекса
Добавить пользовательскую функцию шаблона индекса, которая отличается от стандартной библиотеки тем, что не возвращает ошибку "индекс за пределами диапазона", если индекс массива, среза или строки находится за пределами диапазона. Вместо этого мы просто возвращаем nil значения. Это должно помочь сделать новую функцию по умолчанию более полезной для пользователей Hugo.
Fixes #1949
С версии Hugo 0.48, Hugo использует встроенные в Go 1.11 возможности Go Modules для сборки. Самый простой способ — клонировать Hugo в директорию вне GOPATH
, как в следующем примере:
mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install
Для некоторых удобных целей сборки и тестирования также желательно установить Mage:
go install github.com/magefile/mage
Чтобы внести изменения в исходный код Hugo:
Создайте новую ветку для своих изменений (название ветки произвольное):
git checkout -b iss1234
После внесения изменений, сделайте коммит в вашей новой ветке:
git commit -a -v
Создайте форк Hugo на GitHub.
Добавьте ваш форк как новый удаленный репозиторий (название удаленного репозитория, "fork" в данном примере, произвольное):
git remote add fork git@github.com:USERNAME/hugo.git
Отправьте изменения в ваш новый удаленный репозиторий:
git push --set-upstream fork iss1234
Теперь вы готовы отправить pull request на основе новой ветки в вашем форке.
Hugo использует mage для синхронизации зависимостей, сборки Hugo, запуска тестового набора и других задач. Вы должны запускать mage из директории Hugo.
cd $HOME/go/src/github.com/gohugoio/hugo
Чтобы собрать Hugo:
mage hugo
Чтобы установить hugo в $HOME/go/bin
:
mage install
Чтобы запустить тесты:
mage hugoRace
mage -v check
Чтобы вывести список всех доступных команд вместе с описаниями:
mage -l
Примечание: С версии Hugo 0.43 мы добавили тег сборки extended
, который добавляет поддержку SCSS. Для сборки этого тега требуется установленный C компилятор. Вы можете включить этот тег при сборке следующим образом:
HUGO_BUILD_TAGS=extended mage install
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )