Существует недавняя тенденция в ведении блогов, которая заключается в отбрасывании PHP-платформ, таких как WordPress и Drupal, в коэффициент статических HTML-страниц, генерируемых при необходимости.
Статические блоги имеют много преимуществ перед PHP-движками:
- Они намного быстрее, так как во время выполнения нет накладных расходов на компоновку визуализированной страницы
- Там нет проблем безопасности в отношении SQL инъекций
- Наконец, создание сайта устраняет необходимость в промежуточной области с возможно несовпадающими конфигурациями
morevaadin.com — один из моих сайтов, созданный с помощью дистрибутива Open Publish поверх Drupal 7. Он предназначен только для показа статей о фреймворке Vaadin: здесь нет управления комментариями, никакого взаимодействия, никаких причудливых вещей. По сути, нет необходимости в платформе Drupal, и несколько HTML-файлов с некоторым JavaScript будет более чем достаточно. Вот о моем путешествии по портированию существующего сайта, с различными шагами, которые я прошел, чтобы достичь своей цели (спойлер: на момент написания статьи это не увенчалось успехом).
Первый шаг
Не имея предыдущего опыта, я выбрал Jekyll в качестве целевой платформы, поскольку он поддерживается Github .
Прежде чем что-то делать, я прошел процесс создания виртуальной машины Ubuntu с пакетами Ruby и RubyGems.
sudo apt-get install ruby sudo apt-get install rubygems
Миграция блога объяснила
Моя первая стратегия состояла в том, чтобы следовать инструкциям из этого поста в блоге , который, казалось, точно соответствовал моей цели. По сути, я должен был получить дамп SQL с моего сайта Drupal, выполнить его на локальной базе MySQL и выполнить какой-нибудь Ruby-скрипт, обертывающий SQL-скрипт.
Проблема в том, что предложенный сценарий SQL не был адаптирован к структуре моей базы: я исправил префиксы и типы узлов, но у меня все еще не было успеха при запуске сценария.
Другие скрипты
Я нашел другие сценарии в Интернете, но ни один из них не был адаптирован к структуре моей базы данных, и я не смог их запустить, несмотря на все мои усилия.
Эврика!
Возвращаясь к основам: учитывая, что ни один из созданных вручную сценариев не может быть запущен в моей базе данных, я решил заглянуть в документацию по Jekyll и обнаружил, что с мигратором Drupal 6.1 был обнаружен драгоценный камень.
Итак, я установил Jekyll — гем Ruby — и наконец смог запустить скрипт.
sudo gem install jekyll ruby -rubygems -e 'require "jekyll/migrators/drupal"; Jekyll::Drupal.process($MYSQL_INSTANCE, $LOGIN, $PASSWORD)
На данный момент я не получил ошибок при запуске сценария Ruby, но не выводил вообще. Однако я /var/lib/gems/1.8/gems/jekyll-0.11.2/lib/jekyll/migrators/drupal.rb
немного подправил сценарий, где закомментировал строки, касающиеся узлов и типов сущностей (30-31), а также целые теги (строки 53-60 и 69), и наконец получил некоторые результаты: _drafts
и _posts
папка с последней полной .md
файлов!
Запуск Jekyll с jekyll --server
окончательно сгенерированной _site
папкой с загрузкой страниц.
Проблемы
Есть некоторые проблемы с тем, что я получил:
- Некоторые страницы имеют неразборчивые разделы (
REXML could not parse this HTML/XML
) - Страницы не имеют расширений, несмотря на то, что они HTML, поэтому браузер не распознает тип MIME, когда они запускаются под Jekyll. Обычным способом было бы иметь index.html в папках, названных как пост
- Там нет индекса
Клонирование Октопресс и Джекилл
Учитывая мои очень ограниченные знания (не читайте ничего) о том, что происходит под прикрытием, и мое нежелание вносить дальнейшие изменения в сценарий, я попробовал то же самое на готовом шаблоне Octopress с возможным намерением перенести несколько страниц, которые у меня были. (не очень удовлетворительно с точки зрения разработчика программного обеспечения, но достаточно прагматично для моих нужд).
sudo apt-get install git git clone https://github.com/imathis/octopress
К сожалению, в скрипте произошла ошибка Итак, в отчаянной попытке я хотел попробовать Jekyll Bootstrap.
git clone https://github.com/plusjade/jekyll-bootstrap.git
И вот, я наконец-то получил ошибку, вывод и что-то для просмотра в браузере по адресу http: /0.0.0.0/index.html !
Текущая ситуация
Я настраивал и обновлял включенные файлы (те, что находятся в папке _included), и я начинаю получать что-то похожее на оригинальный макет.
Чтобы получить это, я должен был установить Pygments, код для префтификации:
sudo apt-get install python-pygments
На данный момент, в основном, есть 2 варианта: либо вручную портировать другие сообщения и доработать макет (а также перейти к исходной теме), либо инвестировать в процесс настройки, чтобы он работал.
В настоящее время я склоняюсь к первому варианту. Обратная связь приветствуется!