Skip to content
This repository has been archived by the owner on Oct 7, 2022. It is now read-only.

rust-lang-ru/rustycrate.ru

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Неофициальный русскоязычный сайт о Rust

Build Status ruRust/rustycrate.ru ruRust/rustycrate.ru Join the chat at https://gitter.im/ruRust/rustycrate.ru

Проверка правописания: Яндекс.Спеллер

Обзор проекта

Сайт работает на Jekyll. Это статический генератор сайтов. Когда мы запускаем jekyll build, Jekyll обрабатывает шаблоны Liquid, и мы получаем полностью готовый к развёртыванию сайт в директории _site. В процессе построения сайта Jekyll склеивает файлы, заменяет специальные теги на свойства страниц, генерирует определённые элементы в цикле и т.д. Пример шаблонной страницы можно увидеть здесь - это главная нашего сайта. Этот файл довольно подробно аннотирован комментариями - в нём можно разобраться.

Развёртывание сайта - это просто копирование файлов в директорию, которую раздаёт веб-сервер (например, nginx).

Вся динамичность и изменяемое содержимое достигается за счёт сторонних сервисов. Наш сайт находится в репозитории на GitHub. Мы пишем новые публикации в виде Pull Request'ов. Когда PR принят, Travis делает jekyll build, получает статический сайт, и разворачивает его на сервере. Так достигается динамичность публикаций.

Комментарии реализованы на Disqus. Disqus просто берёт id страницы (в нашем случае это часть URL, не включающая имя сайта: например, /%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5/2016/03/17/debugging-rust-with-gdb.html) и привязывает к нему набор комментариев, которые грузятся и отправляются асинхронно с помощью JavaScript. Они хранятся в Disqus, а не у нас.

Структура проекта

_config.yml - конфигурация Jekyll.

Файлы в корне с расширениями .html, .xml или .md - это страницы сайта. Они должны иметь "front matter" (обложку), в которой указан вид страницы и другая метаинформация. Эти файлы становятся простыми файлами .html после обработки Jekyll и сохраняют своё базовое имя. Например, in-progress.md превращается в in-progress.html.

Gemfile - это описание проекта Ruby. Jekyll написан на Ruby, и мы пользуемся пакетами Ruby для расширения функциональности. Также мы используем bundler для управления зависимостями.

Gemfile.lock - это файл, фиксирующий конкретные версии зависимостей. Используется Bundler.

.travis.yml - это конфигурация Travis.

Теперь о директориях. Все директории, начинающиеся с _, являются стандартными для сайтов на Jekyll.

css - директория со стилями. Там почти все стили откуда-то взяты (из Bootstrap, например). Главный файл - main.scss. Он включает в себя _sass/style.scss и больше ничего. _sass/style.scss - это главный файл стилей.

fonts - директория со шрифтами. Сейчас там только glyphicons из Bootstrap.

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

_includes - директория с частями HTML-файлов, которые включаются в готовые страницы с помощью Liquid. Например, head.html - это содержимое HTML-тега head, которое является общим для всех страниц сайта.

js - директория со скриптами. Никаких интересных скриптов здесь нет - всё взято из Bootstrap.

_layouts - директория с шаблонами страниц. Например, post.html описывает шаблон страницы публикации.

_locales - директория с файлами локализации.

_plugins - директория с плагинами. Они являются исходным кодом на Ruby.

_posts - директория с публикациями. Публикации написаны в формате Markdown. Поддерживаются все основные расширения, как на GitHub.

В директории _site появляется сгенерированный сайт, когда вы запускаете Jekyll.

Локальный запуск

Для локального запуска нужен Ruby.

Рекомендуемая версия - 2.2.3.

Рекомендуемый способ установки - RVM.

RVM нужен, чтобы легко поставить нужную версию Ruby. Вот как его установить:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby=2.2.3

После этого откройте новый терминал и сделайте:

rvm use --default 2.2.3

Затем в том же терминале клонируем и собираем сайт:

git clone https://github.com/ruRust/rustycrate.ru.git
cd rustycrate.ru
gem install bundler
bundle install --path vendor/bundle
bundle exec jekyll serve

Если не собирается

Пишите в Gitter-чат этого сайта - мы поможем разобраться.