Статьи

Тото на Heroku позволяет вести блог в стиле ниндзя

Toto — очень простой движок для публикации блогов, написанный на Ruby и созданный Alexis Sellier , широко известный как @cloudhead (создатель LESS ). Тото — это простой блог-движок, что означает, что ему не нужна база данных, и, в отличие от многих других блоговых движков, она также не имеет админ-панели.

Статьи пишутся в текстовых файлах, и вы можете использовать markdown или html внутри файла. Сам Тото — это рубиновый камень, разработанный для работы на Heroku . Мы будем использовать Git , самую популярную распределенную систему контроля версий, для развертывания приложения и публикации статей. Это означает, что опубликовать новую статью так же просто, как команду Git push.

Предпосылки

В вашей системе должны быть установлены Ruby, Git и RubyGems. Поскольку мы развертываем приложение в Heroku, вам необходимо иметь учетную запись Heroku и установить гем Heroku. В этой статье описывается установка Ruby, RubyGems, Git и Heroku в Ubuntu. Если вы используете Windows, вам может понадобиться проверить документацию Heroku . Для локального запуска и тестирования нашего приложения мы используем легкий сервер с именем thin.

Мы используем Ubuntu OS, так что эта статья с точки зрения Linux. Чтобы установить toto в Ubuntu, запустите следующее из командной строки:

shameer@ubuntu:~/dev$sudo gem install toto

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

shameer@ubuntu:~/dev$sudo gem install thin

Я предполагаю, что вы уже установили Git. Теперь клонируйте шаблон Дороти из GitHub. Дороти является шаблоном по умолчанию для toto.

shameer@ubuntu:~/dev$git clone https://github.com/cloudhead/dorothy.git myblog

Перейдите в каталог myblog и запустите

shameer@ubuntu:~/dev/myblog$thin start

 

из командной строки. Вот и все! Теперь у вас есть пример блога toto. Вы можете получить доступ к блогу через браузер, используя

http://0.0.0.0:3000/ .

Хорошо, пришло время развернуть наше приложение. Создайте приложение Heroku из командной строки:

shameer@ubuntu:~/dev/myblog$heroku  create

Вы можете проверить веб-панель Heroku, чтобы увидеть созданное приложение. Если вы проверите файл конфигурации Git-репо, вы увидите новый пульт с именем ‘heroku’.

shameer@ubuntu:~/dev/myblog$cat .git/config

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/cloudhead/dorothy.git
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "heroku"]
url = [email protected]:freezing-meadow-8547.git
fetch = +refs/heads/*:refs/remotes/heroku/*

Теперь давайте отправим начальное приложение в Heroku:

shameer@ubuntu:~/dev/myblog$git push heroku master

Это развернет приложение в Heroku, и наше приложение запустится автоматически. Если вы проверите его в своем браузере, вы увидите, что он работает.

Тото файловая система

articles
public
  css
  images
  js
templates
  pages
    about.rhtml
    archives.rhtml
    article.rhtml
    index.rhtml
    index.builder
  layout.rhtml

 

Каталог статей содержит все наши статьи. Название каждой статьи должно быть в формате yyyy-mm-dd-your-long-article-title.txt . Важно, чтобы заголовок и имена файлов были одинаковыми. В папке Public будут находиться файлы css, js и image для шаблона, а папка Template будет содержать макет страницы (layout.rhtml) и шаблоны внутренних страниц, например about, архивы и т. Д.

Написание новой статьи

Чтобы опубликовать новую статью, вы можете открыть свой любимый текстовый редактор и начать писать. Вы можете использовать уценку или HTML в статье. Каждая статья будет иметь два раздела: мета и контент. Мета-часть — это просто пары ключ-значение в формате YAML для указания метаданных статьи. Если вы загляните в статью по умолчанию в папке article, вы увидите следующую метаинформацию.

title: The Wonderful Wizard of Oz
author: Lyman Frank Baum
date: 1900/05/17

Здесь заголовок и дата являются единственными обязательными битами информации. В дополнение к этому у нас также могут быть теги или категории в этом разделе, которые могут отображаться на странице статьи. Начните раздел содержимого, оставив одну строку после раздела meta. Как только вы закончите статью, перейдите в корневой каталог блога toto и из командной строки и запустите git status:

shameer@ubuntu:~/dev/myblog$ git status

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

shameer@ubuntu:~/dev/myblog$ git add .
shameer@ubuntu:~/dev/myblog$ git commit -m “Added second article”

Теперь у вас есть вторая статья, опубликованная на локальном сервере разработчиков. Если хотите, вы можете запустить тонкий сервер, чтобы увидеть изменения локально. Теперь опубликуйте статью в Heroku с помощью Git:

shameer@ubuntu:~/dev/myblog$ git push heroku master

Наша вторая статья теперь опубликована в Heroku.

Резюме

В этой статье я описал, как начать простой, невероятно быстрый блог, используя toto и Heroku. Я объяснил только основные черты toto. Фактически, он может сделать намного больше, чем мы обсуждали здесь, например, иметь более сложные шаблоны, пользовательские страницы и т. Д. Поскольку у него нет панели администратора для взлома, это очень безопасная платформа для использования.

В текущем тотале есть некоторые ограничения. Мы не можем использовать все функции HTML5 внутри статей, поскольку наш текущий анализатор разметки не поддерживает их. Также у нас нет выбора относительно структуры URL. Другим большим недостатком является то, что на сайте не может быть много динамического контента, такого как комментарии, поиск и т. Д. Хотя мы можем отображать теги и категории, у нас не может быть списка статей в определенной категории или теге. Я уверен, что настоящие ниндзя не будут довольны этими ограничениями. Чтобы преодолеть эти недостатки, нам нужно будет настроить наши шаблоны и весь движок, чтобы добавить больше функциональности. Я опишу, как это сделать, в моей следующей статье.