Nojekyll что за файл

Обновлено: 06.07.2024

Что такое обходной путь для этого?

2 ответа

Я где-то слышал, что GitHub страниц поддерживают небольшое количество белых плагинов Jekyll, но, похоже, я нигде не могу найти полный список. Где можно найти эту информацию?

Доступ к метаданным репозитория возможен с сайта Jekyll, размещенного в ветке gh-pages на GitHub . Сейчас я создаю сайт, где это очень помогло бы, если бы у меня был доступ к метаданным другого (моего) репозитория (здесь он называется сторонним репозиторием, потому что технически это так). Есть ли.

В зависимости от того, имеете ли вы дело с сайтом пользователя/Организации ( UO ) или сайтом проекта ( P), выполните :

Теперь у вас есть что-то вроде осьминога . Посмотрите на их файл грабель, внутри есть несколько хороших комментариев.

Лучший способ-настроить Travis для автоматизации deployment из jekyll с помощью неподдерживаемых плагинов. Следуйте руководству Travis по началу работы, чтобы включить Travis для вашего репо.

Создайте script/cibuild со следующим содержимым

Создайте .travis.yml со следующим содержимым (измените по мере необходимости)

Deployment шаг (после каждого толчка):

  1. Сборка будет создана с помощью нашего пользовательского скрипта script/cibuild в каталоге _site
  2. _site будет перенесен в ветвь gh-pages .
  3. github страницы будут обслуживать сайт как есть, не создавая его заново (из-за файла .nojekyll )

Это первый раз, когда я собираюсь использовать Jekyll для создания статического сайта. Я хотел бы использовать дюжину плагинов, которые не входят в белый список для развертывания на Github. Мой вопрос: Можно ли развернуть такой сайт с десятком плагинов (не белых в списке) на github ? Просматривая.

Похожие вопросы:

Я хотел бы использовать Jekyll для своего сайта, но не могу понять, как его настроить. Вся документация, которую я видел, показывает, как использовать Jekyll для создания блога. Я просто хочу.

У меня есть хранилище с wiki, заполненное более чем 80 страницами. Я хочу визуализировать индекс всех wiki страниц на сайте Jekyll (GitHub страниц) для проекта, а также визуализировать каждую.

tl;dr я хочу, чтобы Markdown, относительные ссылки, Jekyll и Github страницы хорошо играли вместе. Я хотел бы иметь возможность просматривать файл, содержащий рабочие ссылки в стиле vanilla Markdown.

Я где-то слышал, что GitHub страниц поддерживают небольшое количество белых плагинов Jekyll, но, похоже, я нигде не могу найти полный список. Где можно найти эту информацию?

Доступ к метаданным репозитория возможен с сайта Jekyll, размещенного в ветке gh-pages на GitHub . Сейчас я создаю сайт, где это очень помогло бы, если бы у меня был доступ к метаданным другого.

Это первый раз, когда я собираюсь использовать Jekyll для создания статического сайта. Я хотел бы использовать дюжину плагинов, которые не входят в белый список для развертывания на Github. Мой.

У меня есть существующий сайт Github страницы с контентом на нем. Я хочу добавить функциональность блогов Jekyll на этот сайт, но я не хочу избавляться от контента, который у меня уже есть на сайте.

Как завести блог на Jekyll

Jekyll — генератор статичных сайтов. Грубо говоря, он просто помогает собрать из шаблонов и текстов набор HTML-файлов, которые можно разместить на любом веб-сервере. Этот сайт — Hexlet Guides — работает на Jekyll.

В отличие от движков для блогов или CMS вроде Wordpress или Ghost, конечный результат работы Jekyll — это не исполняемые программы на языке программирования, а статичные HTML-файлы. Поэтому для размещения сайта не нужен PHP, Node, базы данных и мощный хостинг. Раздача статических файлов создает минимальную нагрузку на сервер, поэтому чаще всего достаточно самого дешевого хостинга.

Jekyll-сайт можно разместить бесплатно на Github Pages, чем мы и займемся в этом руководстве.

Обзор

Рассмотрим схему работы Jekyll и схему публикации сайта вкратце:

  1. Вы создаёте шаблоны для вашего сайта: как выглядит главная страница, как выглядят страницы постов, категорий, шапки, подвалы и другие блоки сайта.
  2. Вы пишете посты в формате Markdown (доступны и другие форматы).
  3. Jekyll генерирует конечные HTML-страницы на основе шаблонов и Markdown-файлов.
  4. Вы публикуете HTML на веб-сервере и сайт становится доступным в интернете.

GitHub Pages позволяет размещать любые HTML-страницы, но он также поддерживает Jekyll на своей стороне. Это означает, что вы можете не отправлять сгенерированный HTML в Github, а отправлять только папку с вашим Jekyll-проектом и Markdown-файлами, а Github сам запустит генерацию HTML и разместит их у себя.

Установка Jekyll на локальную машину

Есть два способа работы с Jekyll на локальной машине: напрямую или через Docker. Второй способ намного проще и быстрее, но может быть непривычен, если вы никогда раньше не работали с Докером.

Прямая установка и запуск Jekyll

Jekyll — программа для командной строки, написанная на языке Ruby. Вам не нужно знать этот язык, чтобы работать с Jekyll, но нужно иметь интерпретатор этого языка в системе.

В зависимости от операционной системы, у вас может быть уже установлен Ruby.

В Windows можно использовать RubyInstaller. Работать с Jekyll нужно через командную строку. Для подготовки необходимого окружения в Windows используйте наш гайд Как начать разрабатывать в Windows.

В macOS Ruby есть в комплекте. Проверьте его версию:

Нужна версия 2.0 и выше. Если у вас по какой-то причине более ранняя версия, то обновите Ruby командой sudo gem install ruby .

Теперь установите Bundler. Это менеджер пакетов, именно через него мы в итоге установим Jekyll и другие необходимые для него пакеты:

Теперь установите Jekyll:

Теперь создайте блог:

Установка и запуск Jekyll через Docker

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

Официальный Докер-образ Jekyll — jekyll/jekyll.

Самый простой способ начать — использовать наш пакет с готовой темой, основанной на Bootstrap 4.

Файловая структура

Базовая структура директории с сайтом выглядит так:

  • ваши посты (например, в формате Markdown) находятся в папке _posts .
  • шаблоны страниц — в папке _layouts
  • используемые в шаблонах повторяющиеся блоки — в папке _includes
  • главная страница сайта — в index.html

Jekyll берет за основу шаблон, генерирует для каждого поста соответствующие страницы и собирает весь сайт в папке _site .

Конфигурация

_config.yml

В файле _config.yml описана конфигурация сайта.

Важная деталь: url — адрес вашего корневого сайта, а baseurl — путь к Jekyll-сайту.

Если ваш сайт находится в корне, то baseurl будет пустым.

Кроме базовых параметров, вы можете добавлять в этот файл собственные параметры. Они будут доступны в шаблонах. Например, в нашем базовом пакете есть такая строка в конфигурации:

Параметр используется в файле _includes/header.html :

Здесь сказано «если в конфигурации есть параметр twitter_username с непустым значением, то вывести ссылку на Твиттер».

Настройка темы

Jekyll идет в комплекте с базовой темой оформления. Наш пакет основан на популярном фреймворке Bootstrap 4.

Рассмотрим наш пример поближе:

  • _includes — блоки, используемые в нескольких местах
    • head.html — элемент <head> , где подключаются стили, указываются мета-теги и так далее
    • header.html — шапка сайта
    • footer.html — подвал сайта
    • post_footer.html — показывается под постом на странице поста (включается в конфигурации)
    • share_buttons.html — кнопки шеринга в соц. сетях под постом на странице поста (включаются и настраивается в конфигурации)
    • social_links.html — ссылки на соц. сети, показываются в шапке сайта (включается и настраиваются в конфигурации)
    • default.html — главный шаблон, используется на главной странице
    • post.html — шаблон поста, используется на странице поста
    • style.css — основной файл стилей сайта
    • likely.css — стили для кнопок шеринга в соц. сетях
    • likely.js — скрипт для кнопок шеринга в соц. сетях

    Front Matter

    Любой файл, содержащий блок Front Matter в формате YAML будет обработан Jekyll’ом как особый файл. Блок Front Matter должен идти в самом начале файла.

    Например, страница index.html — главная страница сайта — содержит такие строчки в начале:

    А так выглядит сам default layout (файл _layouts/default.html ):

    Таким образом Jekyll при сборке берет содержание файла index.html , вставляет в > шаблона и создает конечный index.html .

    Создание постов

    Пост также начинается с блока front matter:

    Здесь могут содержаться как переменные Jekyll’а, так и наши собственные переменные. Здесь мы указали две собственных переменных: title и cover_url . Они используются в шаблонах:

    В файле _layouts/post.html :

    В файле _includes/head.html :

    Здесь задаётся полный адрес обложки для социальных сетей. Подробнее об og-тегах можно узнать из урока «Интеграция с соц. сетями и семантический веб» бесплатного курса Основы HTML, CSS и веб-дизайна на Хекслете.

    Вы можете помещать картинки в любую директорию и включать их в посты и в front matter по относительному пути.

    Создание страниц

    Вы можете создавать любые директории и HTML-файлы самостоятельно, по аналогии с файлом index.html .

    Публикация в интернете

    Публикация HTML-файлов на веб-сервере

    Файлы из папки _site достаточно разместить на веб-сервере. Для этого подойдет практически любой хостинг. Подробнее о хостингах можно узнать из бесплатного курса Введение в веб-разработку на Хекслете.

    Публикация на Github Pages с поддержкой Jekyll

    Github — популярный хостинг git-репозиториев — поддерживает Jekyll. Это значит, что вы можете разместить всю папку со своим Jekyll-проектом в репозитории, и Github сам будет генерировать HTML-страницы. При этом вам не нужно включать папку _site в репозиторий. Конечные HTML-файлы не будут видны в репозитории ни в каком виде. Этот сервис называется Github Pages.

    Подробнее о Git и работе с Github можно узнать из бесплатного курса Системы контроля версий (GIT) на Хекслете.

    Сделайте коммит и отправьте его в github:

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

    Публикация на Github Pages без поддержки Jekyll

    Github Pages позволяет размещать любые HTML-файлы и не работать с Jekyll на стороне Github. Это означает, что вы можете просто размещать на Github свою папку _site . Такой способ позволяет вам использовать любые плагины, потому что генерация конечных файлов происходит на вашем компьютере, а Github выступает в роли простого веб-сервера.

    Схема работы идентичная, просто храните в репозитории конечные HTML-файлы вместо Jekyll-проекта.

    Подключение своего домена

    Дополнительные возможности

    Всё описанное в этом руководстве касается базовых возможностей и настроек по умолчанию. Официальная документация описывает множество дополнительных возможностей, таких как:

    Mало кто знает, что Github кроме превосходного хостинга ваших Git проектов может также хостить ваш персональный сайт. Например на нем расположен этот блог. В своей первой статье я расскажу как максимально удобно настроить эту функциональность.

    Введение

    Использование генераторов статических сайтов

    Созданный нами сайт не слишком удобен для работы, трудно писать содержание используя HTML, сложно поддерживать целостность ссылок. Использовать его например как блог очень затруднительно.

    Существует масса проектов генерации статических сайтов и блогов. При работе с ними фактически вы пишете страницы и статьи в удобном для вас формате, а затем генератор обновляет структуру сайта. По-умолчанию Github уже поддерживает написанный на ruby генератор Jekyll. То есть вам необязательно использовать только HTML синтаксис, из коробки вы можете писать в ваш сайт на Markdown. Подробнее читайте в документации Github Pages и Jekyll.

    Я предпочитаю генерировать страницы локально и проверять результат без выгрузки содержания на Github. Мне привычнее работать с Python поэтому в качестве генератора сайта мной используется Pelican. Ниже я покажу как поставить его и настроить для работы.

    Если вы предпочитаете ruby дальше можете не читать.

    Установка и настройка Pelican

    Предполагается, что вы знакомы с Python и VirtualEnv.

    1. Так как мы будем использовать Pelican нам необходимо выключить встроенный в Github генератор Jekyll. Это делается добавлением в корень репозитория файла .nojekyll .
    1. Теперь создадим и активируем виртуальное окружение для модулей нашего сайта:
    1. Установим в созданный нами VirtualEnv генератор Pelican и необходимый для него движок шаблонов Jinja2:
    1. Мы будем держать исходники сайта в поддиректории source, а созданные статические страницы в корне репозитория, чтобы Github их видел. Создадим файл source/hello.rst с нашей первой статьей:

    Я использую синтаксис RST, но вы можете использовать Markdown для своего сайта. Просто сохраняйте файлы с расширением *.md Pelican поддерживает и другие форматы, но надо ставить соответствующие модули.

    Опция -o . заставляет Pelican производить сборку статики в корне проекта.

    Если все прошло успешно в корне проекта вы увидите несколько HTML файлов. Откройте index.html в браузере и посмотрите на ваш сайт.

    Автоматизация

    Настроим наш сайт и немного автоматизируем рутинные операции.

    1. Создадим файл настроек нашего сайта source/settings.py :

    Подробнее про настройки Pelican, можно прочитать в его документации.

    И дадим ему права на исполнение:

    1. Следующим шагом создадим Git хук для автоматической генерации сайта при коммитах. Создадим и отредактируем файл .git/hooks/pre-commit :

    Не забудьте сделать его исполнемым.

    При каждом коммите изменений в репозиторий, проект будет пере-собран автоматически.

    На этом нашу предварительную работу по созданию github-сайта можно считать оконченной. В дальнейшем стоит поподробнее прочитать документацию Pelican, модифицировать стандартную или создать собственную тему оформления и подключить какой нибудь сервис комментариев.

    Джекил

    Если вы используете Ruby, вы, скорее всего, слышали о GitHub , удивительном и любимом репозитории DVC. Вы также, наверное, слышали о Jekyll , генераторе статических сайтов с поддержкой блогов. Что вы, возможно, не знаете, так это то, что GitHub позволяет вам бесплатно размещать свой сайт Jekyll на их сервисах GitHub Pages ! Как и любой другой бесплатный сервис, тут есть подвох. Это не реклама, ограничения пропускной способности или скрытые платежи, а использование плагинов Jekyll.

    Если вы не знакомы с Jekyll или GitHubPages, ознакомьтесь с Руководством по быстрому запуску и его введением в развертывание сайтов на страницах GitHub .

    Jekyll по умолчанию делает более чем достаточно, чтобы позволить вам взяться за дело. Вы можете писать свои посты в уценке, использовать простой движок шаблонов Liquid, чтобы ваш сайт выглядел красиво, а затем генерировать статические страницы с помощью jekyll build и получать готовые к развертыванию HTML-файлы и ресурсы. Поскольку это статические HTML-файлы (и, возможно, некоторые JavaScript), вы можете разместить их практически где угодно

    1. Персональный сервер
    2. Общий хостинг
    3. Общедоступная папка Dropbox
    4. GitHub Pages (очевидный правильный выбор)

    1 и 2 требуют времени и денег для поддержки, и попытка разместить сайт на Dropbox, вероятно, не является хорошей идеей для чего-то большего, чем тестирование. Служба GitHub Pages (предоставляемая пользователям, организациям и проектам для размещения сайтов о себе, своих организациях и проектах) работает на Jekyll; инструмент, который они построили и поддерживают, потому что они все кормят собак.

    Это где плагины входят (или, скорее, нет). С GitHub Pages довольно легко начать работать, даже если вы новичок в Ruby и Git. Но то, что они не говорят вам, это то, что, когда вы git push Jekyll в вашем репозитории user / gh-pages на Github, и он создает каталог _site для публичного использования, он не запускает никаких плагинов Jekyll, которые не являются частью официального репо.

    Это потому, что когда Github создает ваши страницы, он делает это с помощью jekyll build --safe . Параметр --safe предотвращает выполнение произвольного кода во время сборки, поскольку GitHub явно не хочет, чтобы вы выполняли произвольный код на их серверах.

    Интересный факт: механизм шаблонов жидкостей используется в Jekyll именно потому, что он безопасен и не допускает произвольного внедрения кода. Это делает его безопасно «редактируемым пользователем».

    jekyll build поэтому вы получите репо своего сайта вместо репо ваших файлов Jekyll. Вы можете убедиться, что GitHub не пытается создать ваш сайт, включив в .nojekyll файл .nojekyll .

    Простой Путь

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

    1. Переименуйте каталог с вашим сайтом Jekyll в compiled_site
    2. Создайте новый каталог (вне каталога compiled_site ) и назовите его jekyll_site
    3. Скопируйте все содержимое compiled_site в jekyll_site
    4. Запустите jekyll build в вашем новом jekyll_site
    5. В вашем каталоге compiled_site запустите git rm -r чтобы удалить все файлы
    6. Скопируйте все содержимое jekyll_site/_site в compiled_site
    7. Создайте файл .nojekyll в compiled_site
    8. Запустите git add --all :/ в compiled_site чтобы добавить все статические файлы в репозиторий git и удалить старые
    9. Запустите git commit -m "Built site locally"
    10. Запустите git push для обновления GitHub

    Менее простой, более удивительный путь

    Перед запуском вашего Rakefile обязательно исключите его из сборки в _site/ , добавив строку исключения в ваш _config.yml . Для строки исключения требуется массив, даже если существует только один файл.

    Теперь вместо использования jekyll build для подготовки своего сайта вы можете использовать rake build . Этот Rakefile будет

    Теперь вы можете cd в compiled_site и запустить

    Вы можете расширить свой Rakefile для обработки команд git add , git commit и git push , если вы хотите стать еще более изящными. В конце концов я расширил свой Rakefile чтобы управлять всем этим для меня с помощью веток git вместо нескольких каталогов (публикация на другой день!). Однако с этой настройкой вы можете использовать все необходимые плагины Jekyll, создавать свой сайт локально и по-прежнему размещать хост Ваш сайт на фантастических (и бесплатных!) страницах GitHub легко.

    Вы ведете блог как хакер? Используете ли вы страницы GitHub для размещения этих файлов Jekyll? Дайте мне знать в комментариях, какую автоматизацию вы встроите в свой процесс, и какие плагины Jekyll вы сможете использовать сейчас.

    Я пытаюсь развернуть проект Middleman на своей странице пользователя GitHub ([username].github.io). Я использую гем middleman-gh-pages, и инструкции кажутся достаточно простыми.

    Вот моя структура каталогов на master после публикации.


    Вот моя структура каталогов в ветке gh-pages после публикации.


    Предполагается, что username.github.io aka пользовательский/организационный сайт будет помещен в master ветку.

    Кажется, что gem-gem-gem-gm-pages только нажимает gh-pages (см. здесь публиковать задание), который является ветвью для страниц проекта ( username.github.io/projectName ).

    я вижу, что этот вопрос уже разрешен, но я все равно собираю свои два цента.

    Как развернуть проект Middleman для Github Pages вручную

    Примечание. В этом руководстве описывается, как развернуть веб-сайт проекта (например, username.github.io/projectname ). Если вы развертываете веб-сайт пользователя (например, username.github.io ), вам необходимо настроить некоторые параметры. Это не сложно понять!

    Конфигурация проекта

    config.rb

    Github Pages будет служить вашему веб-сайту проекта из подпапки. Это означает, что вы не можете ссылаться на свои страницы и активы с абсолютными URL-адресами. Попросите Middleman использовать относительные URL-адреса:

    Не забудьте использовать ссылку link_to для внутренних ссылок, не пишите <a href. вручную.

    .gitignore

    Убедитесь, что в файле .gitignore указан каталог сборки. Если это не так, добавьте:

    .nojekyll

    В Github Pages используется препроцессор Jekyll, который может помешать вашему статическому веб-сайту. Чтобы отключить магию Джекил, создайте пустой файл .nojekyll в source/ .

    Из корня проекта:

    Подготовка репо

    Вы должны сделать эту процедуру один раз.

    Опубликуйте свой проект в Github.

    Перейдите в каталог build/ . Если у вас его нет в вашем проекте, создайте его вручную или создайте свой проект с помощью bundle exec middleman build .

    Инициировать пустое git-репо:

    Добавьте репозиторий Github в качестве удаленного:

    Запустите новую ветвь gh-pages :

    Процедура развертывания

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

    Создайте свой проект.

    Начиная с корня проекта:

    Перейдите в каталог сборки:

    Добавить все файлы:

    Направьте их в Гитуб:

    Во время первого нажатия добавьте -u :

    Обратите внимание, что страницы Github требуют времени для показа вашего веб-сайта. Говорят, десять минут, но это может занять несколько часов. Будьте терпеливы, хотя всегда есть шанс, что вы что-то испортили. 🙂

    Последующие нажатия должны быть немедленными. Если толчок не отражен на вашем веб-сайте, попробуйте напасть на него с последующим нажатием.

    Читайте также: