Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. CMS

Створення CMS: rubyPress

by
Read Time:14 minsLanguages:

Ukrainian (українська мова) translation by Tanya Ira (you can also view the original English article)

Після створення системи управління контентом (CMS) базові структури, і реальний сервер, використовуючи піди Node.js ви готові спробувати свої сили на іншому мовою. 

В цей раз я з допомогою мови Ruby для створення сервера. Я знайшов, що шляхом створення такої ж програми на декількох мовах, ви почнете отримувати нові ідеї щодо поліпшення способів реалізації програми.   Ви також бачите більше можливостей, щоб додати функціонал в програму. Давайте почнемо.

Установка і завантаження бібліотек 

 Програми на Ruby, ви повинні мати останню версію, встановлену на вашій системі.  Приходять багато операційні системи попередньо встановлена з Рубіном в ці дні (Linux і OS X), але вони зазвичай мають більш стару версію. Цей підручник припускає, що ви Ruby версії 2.4.

 Найпростіший спосіб оновити до останньої версії Рубі використовувати РВМ. Щоб встановити RVM на Linux або Mac OS Х, введіть наступну команду в терміналі:

 Це дозволить створити безпечне підключення, щоб завантажити та встановити РВМ. Це встановлює останню стабільну версію Рубі, а також. Вам доведеться перезавантажити вашу оболонку, щоб завершити установку.

 Для Windows, ви можете завантажити інсталятор Windows Рубі. В даний час, цей пакет складає в Ruby 2.2.2, яка підходить для запуску бібліотеки і скрипти в цьому уроці.

 Після того, як мова Ruby встановлений правильно, тепер ви можете встановити бібліотеки. Рубі, як піти і вузлів, має менеджер пакетів для встановлення сторонніх бібліотек. У вікні терміналу введіть наступне:

 Це встановлює Сінатра, Рубі кермі, Kramdown, і тонкий бібліотеки. Сінатра-це платформа веб-додатків. Рубі кермі реалізує кермі шаблонизатора в Ruby.  Kramdown є Markdown для HTML-конвертер. Тонка Нефритова аналог бібліотеки, але він не містить макровизначення Нефрит. Таким чином, макроси, які використовуються в новинах і блозі індекси зараз нормально Нефрит.

Створення rubyPress.файл RB 

 У кореневому каталозі створіть файл rubyPress.RB і додайте наступний код. Я буду коментувати про кожному розділі по мірі їх додавання в файл.

 Перше, що потрібно зробити, це завантажити бібліотеки. На відміну від з Node.js ці не завантажуються в змінну. Бібліотек Ruby додати їх функцій в рамках програми.

Бібліотека кермі ініціалізується з різними визначеними допоміжними функціями. Певні допоміжні функції-дата, дата, і заощадити. 

 Дата допоміжну функцію бере поточну дату і час, і форматує її у відповідності зі рядком формату, що передаються помічником. функція cdate за винятком проходження дата першого.  Зберегти помічник дозволяє вказати ім'я і значення. Він створює новий помічник з ім'ям name і повертає значення. Це дозволяє створювати змінні, що задані раз і впливати на багатьох місцях. Ця функція також приймає версію перейти, яка очікує рядок з ім'ям, '|' в якості роздільника, і значення. 

Наступна частина коду для завантаження такі елементи веб-сайту. Це все в стилі і макет для вашої теми, і елементи у частині підкаталог.   Глобальна змінна, $частин, спочатку завантажується з сервера.JSON-файл. Ця інформація потім використовується для завантаження потрібної деталі для макета і зазначеної теми. Кермі шаблонизатор використовує цю інформацію, щоб заповнити шаблони.

 Наступний розділ містить визначення для всіх маршрутів. Сінатра-це повний сервер сумісний інші. Але для цієї CMS, я буду тільки використовувати дієслово get.  Кожен маршрут триває елементи від маршруту, щоб перейти до функції отримання потрібної сторінки. У Sinatra назва передує двокрапка вказує ділянці шляху, щоб передати в обробник маршруту. Ці елементи знаходяться в параметри хеш-таблиці.

Функція повертає сторінки ім'я сторінки з траси і передає макет у змінній $частини разом із повним шляхом до файлу підкачки потрібен для processPage функції.   Функція processPage приймає цю інформацію і створює відповідну сторінку, яка потім повертається. В Ruby, вихід останньої функції є її обчислене значення функції.

Функція пост-це просто як функція сторінки, за винятком того, що вона працює на всіх сторінках типу пост. Ця функція очікує повідомлення, тип, категорія посади, і сам пост. Це дозволить створити адреса для правильного відображення сторінок. 

 Функція figurePage використовує функцію processPage, щоб прочитати вміст сторінки з файлової системи. Ця функція одержує повний шлях до файлу без розширення. потім figurePage тести для файлу з вказаним іменем і розширенням HTML для читання HTML-файл. Другий варіант для розширення MD файлу Markdown. 

І нарешті, він перевіряє для розширенням бурштину на файл Нефрит. Пам'ятайте: Бурштин-це ім'я бібліотеки для обробки синтаксис Jade файли в ходу.   Я тримав це ж у функціональності. HTML-файл є просто здав назад, в той час як всі уцінки і Жад файли перетворюються в HTML, перш ніж перейти назад.

 Якщо файл не знайдений, то користувач отримає сторінку 404. Таким чином, ваш "сторінка не знайдена", сторінка виглядає так само, як і будь-якій іншій сторінці, крім змісту.

Функція processPage виконує всі доповнення шаблону на дані сторінки. Він починається з виклику функції figurePage отримати вміст сторінки. Потім він обробляє макет, переданий йому в кермо, щоб розгорнути шаблон. 

Потім функція processShortCode знайдете і обробити всі шорткоди в розділі. Результати передаються в кермо вдруге в процес будь макроси, залишених в короткі. Користувач отримує кінцевий результат. 

 Функція processShortCodes приймає заданий текст, знаходить кожен шорткод, і запускає вказаний короткий номер з аргументами і вміст шорткода. Я використовую шорткод підпрограму для обробки вміст на короткі номери, а також.

 Шорткод-це HTML-тег, який використовує -[ і ]- розмежувати відкриваючий тег і - [і ]- закриваючий тег. Відкриваючий тег містить параметри шорткода, а також. Таким чином, приклад шорткода буде:

 Цей шорткод визначає короткий коробка без будь-яких параметрів з вмістом це всередині коробки..  Короткий коробка обгортання вміст у відповідний HTML для того щоб зробити рамку навколо тексту з текстом в центрі вікна.  Якщо надалі ви хочете змінити, як видимий, ви тільки повинні змінити визначення шорткод. Це економить багато роботи.

Останнє, що у файлі-це $короткі хеш-таблиці, що містить підпрограми шорткод. Ці прості шорткоди, але ви можете створити інші шорткоди бути складним, як ви хочете. 

Всі шорткоди повинні приймати два значення: args і зміст. Ці рядки містять параметри шорткода і зміст шорткоди оточують.  Оскільки короткі номери всередині хеш-таблиці, я використовував лямбда-функції, щоб визначити їх. Лямбда-функція-це функція без імені. Єдиний спосіб для виконання цих функцій з хеш-масиву. 

Запуск сервера 

 Після того як ви створили rubyPress.файл РБ із зазначеним вище змістом, Ви можете запустити сервер з:

 Оскільки в рамках Сінатра працює з Ruby на Rails конструкції шафи, ви можете використовувати військовополонених для запуску сервера.  Військовополонених будуть створені файли вашої системи для запуску вашого сервера локально то ж як би з розміщених сайтів. Ви можете встановити для військовополонених з порошком, використовуючи наступні команди в командному рядку:

Порошок-це програма командного рядка рутини для управління сайтами PoW на вашому комп'ютері. Щоб отримати військовополонених, щоб побачити ваш сайт, ви повинні створити м'яку посилання на свій проект в каталог ~/.каталог військовополонених.  Якщо сервер в папку /Users/перевірка/документів/каталог rubyPress, слід виконати наступні команди: 

ЛН -и створює м'яку посилання в каталог, зазначений по-перше, з іменем, вказаним по-друге. Тоді пр буде налаштувати домен на комп'ютері з ім'ям м'яких посиланням.   У наведеному вище прикладі, йдучи в http://rubypress.dev веб-сайт у браузері буде завантажена сторінка з сервера.

Для запуску сервера, введіть наступну після створення м'якої ссылке: 

Перезавантажити сервер після внесення деяких змін в код, введіть наступне: 

rubyPress Main PagerubyPress Main PagerubyPress Main Page
Головна сторінка rubyPress 

 Зайшовши на сайт в браузері буде результат на картинці вище. Пр буде налаштувати сайт http://rubyPress.dev. Незалежно від того, який метод ви використовуєте, щоб запустити сайт, ви побачите той же сторінці.

Висновок 

Ну, ви зробили це. Інший CMS, але в цей раз в Рубі. Ця версія є найбільш короткої версії з відкритим кодом, створені в цій серії. Експериментів з кодом і подивитися, як можна розширити цю основу. 

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.