История появление этого блога описана в EverMind или о чем этот блог. В качестве движка был выбран WordPress потому что я с ним уже немного работал ранее и мне оказалось нужно написать для него плагин. Публикация постов осуществляется синхронизацией заметок в Evernote со специальным тегом EverMind.
Кодстайл
Текст — стандартный шрифт, размер 11px.
Заголовок — стандартный шрифт, размер 18px. Перед текстом идет "#"
Подзаголовок — жирный шрифт, размер 11px (стандартный). Перед текстом идет "##".
Цитата — наклонный текст в таблице с одной ячейкой или одной колонкой.
Картинка в таблице — скриншот с телефона который нужно показывать в половину ширины.
Поддержка поверх HTML еще и крайне урезанного кусочка синтаксиса Markdown реализована руками с помощью простейшего фильтра который делает поиск символов "#" и "##" и делает из них правильные h2, h3 теги.
Плагины, которые у меня работают
Evernote Sync
Без него этого блога не существовало бы, альтернатив ему нет если не рассматривать плагина делающей аналогичное, но на базе DropBox с разметкой Markdown.
Я связался с зазработчиком этого плагина и прислал ему несколько патчей которых мне не хватало чтобы сделать публикацию из Evernote в WordPress более удобной.
Akismet
Без комментариев.
OneSignal Push Notifications
Поддержка push-уведомлений в браузеры, MacOS и на мобильные. Настроил уведомления в Google Chrome, Firefox, Safari. Отправка уведомлений через отдельный сайт где можно делить получателей на группы, отслеживать статистику. Отписка реализована внутренняя без блокирования отправки уведомлений на уровне браузера.
Jetpack от WordPress.com
Целая куча плагинов в одном флаконе. Есть полезные типа "Внедренный шорткод", есть бесполезные типа "Любимое", а есть те которые проигрывают по функциональности другим плагинам "Файлы Sitemap".
Social Share WordPress Plugin – AccessPress Social Share
Кнопочки чтобы постом можно поделиться в других социальных сетях. Конкретно в этом плагине ничего особенного нет, просто он лучше всего подошел по дизайну и возможностям.
Не хватает:
- Кнопки для сервиса/приложения Pocket
Twitter Feed
Показывает в левой колонке последние несколько твитов. Делает это server 2 server, а не готовым виджетом от Twitter что дает возможность настроить внешний вид.
Markdown Shortcode
Поддержка синтаксиса Markdown внутри специальных блоков. В отличие от плагина Markdown Highlighter, нормально поддерживает highlight.js. Использую для вставки кода.
## Facebook Instant Articles
Автоматизирует создание Instant Articles в Facebook. Не завелся в автоматическом режиме, повисал на Login with Facebook. Не понятно для чего требовал создание своего Application в Facebook. В итоге я просто подключил руками и указал url к rss, который возвращает этот плагин, а именно https://vorobyev.name/evermind/instant-articles. Написал в блог 10 постов и отдал на review в Facebook. Его одобрили и я теперь смог проставлять Instant Articles атрибут Live. Однако это ни к чему не приводило.
Как оказалось позднее (крайне неочевидное и неожидаемое поведение, должен заметить) нужно было теперь написать пост в Facebook со ссылкой на ту же страницу с которой был взят Instant Article через RSS импорт. И именно в этом случае на мобильных устройствах по клику не будет открываться браузер с этой страницей, а будет открываться интерфейс Instant Article.
## Remove WP Canonical URL Admin Hack
Нужен чтобы в админском интерфейсе не было ошибок в консоли. Связано с тем что у меня запросы проксируются через nginx и сам WordPress в реальности развернут не в подкаталоге, а как отдельный сайт. Пришлось ставить руками т.к. структура каталогов внутри архива с плагином неправильная. К сожалению нормальной работе плагина "Facebook Instant Articles " это не помогло.
## Advanced Excerpt
Без этого плагина не будет корректно отрабатывать плагин markdown на анонсах постов для главной страницы. Плюс он позволяет более гибко управлять тем сколько каких символов куда идет, какие теги оставлять, а какие вырезать и так далее. Учитывая что в теме Customizr, которую я использую, я не пользуюсь картинками-превьюшками для постов – никаких конфликтов этот плагин не создает.
… продолжение следует
Плагины, которые я попробовал и отключил
Jetpack от WordPress.com > Markdown
Отключил т.к. он как мне показалось делал замену в процессе сохранения в редакторе, а мне для синхронизации с Evernote нужна замена на уровне кода.
Markdown Highlighter
Удобно, что заменяет Markdown во всем тексте, однако версия 0.1 мало что поддерживала, например комментарии в этом она проиграла плагину Parsedown for WordPress.
Parsedown for WordPress
Не смотря на то, что этот плагин выиграл у остальных плагинов, которые делают глобальную замену при выводе, его все равно пришлось отключить из-за невозможности смешивать Markdown + Html и происходило обрезание постов. В итоге я просто дописал пару preg_replace в своем собственном маленьком плагине-наборе "костылей" и хаков.
Social Login, Social Sharing by miniOrange
Вроде классный плагин и все есть даже комментарии Facebook и Google+, который выглядит вот так…
|
Но есть косяки:
- Вход через соцсети работает только 30 дней бесплатно;
- Иконки для входа при явно указанном расстоянии в 4px все равно слипаются вместе;
- При переключении источника комментариев страница скачет.
Jetpack от WordPress.com > Photon
Пришлось отключить т.к. он явно проставлял размеры картинкам и из-за этого не работали плагины для ретины, плюс импорт из Evernote работал некорректно.
## Telegram Bot & Channel
Довольно удобно и легко перепривязать к нему своего бота. Можно посылать сообщения, показывает список людей. Но совсем не понравился интерфейс добавления команд в бота. В итоге перешел для своего тестового бота @vodmalbot на chatfuel.com
Тонкости настройки сервера
Я настроил wordpress как отдельный сервис в apache2, чтобы не хранить каталог с wordpress внутри основного сайта vorobyev.name, но при этом чтобы он был доступен по url в основном домене, а не отдельно.
Плюс этот каталог я хочу чтобы назывался не evermind, а wordpress по имени движка. Из-за этого пришлось все-таки сделать симлинк evermind, а рут апача натравить на сам основной каталог vorobyev.name
И еще одна проблема в том что я проксирую от nginx до apache по http, а не https. А WordPress не понимает этого и приходится в файлике load.php переопределять метод is_ssl. Иначе начинаются бесконечные редиректы.
… продолжение следует