Русскоязычный сайт о языке программирования Rust
Clone or download
Latest commit e1f0da4 Jan 7, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Добавляем настройки VSCode Jan 26, 2018
_assets Публикуем анонс конференции Nov 10, 2018
_includes Чиним убитые ссылки Oct 27, 2018
_layouts Удаляем кнопку правок Jun 28, 2018
_locales Локализуем jekyll Sep 9, 2015
_plugins Меняем cut на другой чтобы не ломать разметку Oct 19, 2016
_posts 2018-12-10-parity-meetup.md: Add 'cut' Dec 10, 2018
fonts Install Bootstrap Sep 6, 2015
js Прикручиваем EmojiOne Feb 19, 2017
.gitignore Публикуем анонс конференции Nov 10, 2018
.travis.yml htmlproofer: Ignore rustlang.org deadlinks for now (#309) Dec 10, 2018
.yaspellerrc yaspeller: Fix tabs & en -> ru letters Dec 10, 2018
CONTRIBUTING.md Исправляем ссылку Jul 4, 2016
Gemfile Переходим на новую пагинацию Apr 1, 2018
Gemfile.lock Переходим на новую пагинацию Apr 1, 2018
README.md Добавляем перенос строки в README Mar 12, 2017
_config.yml Переходим на новую пагинацию Apr 1, 2018
adopters.md Добавляем больше компаний в СНГ Apr 1, 2018
all-full.html Переносим эксклюзивы на главную, прячем всё остальное Jul 1, 2018
all.html Переносим эксклюзивы на главную, прячем всё остальное Jul 1, 2018
archive.html Переименовываем сайт Oct 19, 2016
articles-education.html Реализуем первый раздел нового меню Jun 28, 2018
books.md Меняем ссылку на перевод книги Oct 20, 2018
chats.md Реализуем промежуточную версию меню Jun 28, 2018
community-projects.md Удаляем кнопку правок Jun 28, 2018
contacts.html Ошибка в фамилии Feb 25, 2017
dictionary.md Update dictionary.md May 19, 2018
does-rust-suit-me.md Реализуем первый раздел нового меню Jun 28, 2018
editing-policy.md Добавляем редакционную политику (#228) Oct 8, 2017
feed.xml Реализуем карту сайта без плагинов Mar 12, 2016
googlea5495ce52829dd37.html Верифицируем владение сайтом для Google Mar 11, 2016
help.md Реализуем первый раздел нового меню Jun 28, 2018
howtos.html Меняем отображение категорий Mar 5, 2017
in-progress.md Update in-progress.md Nov 26, 2016
index-full.html Переносим эксклюзивы на главную, прячем всё остальное Jul 1, 2018
index.html Переносим эксклюзивы на главную, прячем всё остальное Jul 1, 2018
meetups.md Чиним убитые ссылки Oct 27, 2018
news.html Меняем отображение категорий Mar 5, 2017
patrons.md Обновляем доску почёта Nov 4, 2017
post.md Исправление опечаток 09.03.17 Mar 9, 2017
rules.md Чиним спеллчекер Aug 12, 2018
sitemap.xml Реализуем карту сайта без плагинов Mar 12, 2016
social.md Удаляем ссылки на реддит Jul 22, 2018
thoughts.html Меняем отображение категорий Mar 5, 2017
translation-rules.md Мелкие правки (#312) Jan 7, 2019
travis.trash.id_rsa.enc Use another key Sep 7, 2015
tutorials.html Меняем отображение категорий Mar 5, 2017
yandex_6b9a121b20becc7c.html Верифицируем владение сайтом для Яндекс.Вебмастер Mar 11, 2016

README.md

Неофициальный русскоязычный сайт о 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-чат этого сайта - мы поможем разобраться.