Бесплатное руководство по использованию редактора Medium для создания контента для размещения на личном веб-сайте.

Вот в чем дело: редактор Medium потрясающий. Есть medium-editor (клон редактора Medium с открытым исходным кодом), но он не дает того же ощущения. Я просто Средний редактор.

Поэтому, когда пришло время начать работу над блогом GO2CINEMA, первым вопросом, который я задал себе, был - могу ли я использовать Medium? Ответ - нет. К сожалению, Medium не дает достаточной гибкости, например Я не могу настроить, какие ссылки используют rel=nofollow, и я не могу использовать Medium по настраиваемому пути в домене (например, https://go2cinema.com/stories/).

Однако я могу использовать средний редактор. Видите ли, редактор Medium не только отлично выглядит, но и создает хорошо организованную абстракцию контента.

Возьмем для примера эту статью. Вы можете получить версию этой статьи в формате JSON, добавив ?format=json в конец URL-адреса, например Https://medium.com/@gajus/hacking-medium-to-create-a-self-hosted-blogging-platform-fd04fe24c752?format=json

Текст статьи описывается параграфами. У каждого абзаца есть идентификатор и метаданные, описывающие изображения и стили текста.

Нормализация данных

Помимо экономии времени на разработку CMS, анализ структуры данных Medium научил меня нескольким вещам о нормализации данных. А именно, я узнал, что статья, абзац, структура статьи (список абзацев при каждой редакции статьи), метаданные абзаца и разметка должны быть отдельными объектами.

Эта нормализация (с идентификатором, связанным с каждым абзацем) позволяет управлять версиями статей на уровне абзаца. В дополнение к управлению версиями, он включает любимые функции Medium, такие как выделение содержимого и комментарии, относящиеся к определенным разделам текста. Между тем, наличие разметки как отдельных объектов, ссылающихся на абзац, и, как следствие, абзацев, хранящихся в базе данных без разметки, позволяет упростить полнотекстовый поиск по базе данных историй.

Кроме того, определение тела статьи с помощью «абзацев» позволяет иметь различные типы абзацев: абзацы обычного текста, изображения и другие надстройки (например, подписка на рассылку новостей). Сравните это с традиционным блобом данных, представляющим тело статьи. В последнем случае для добавления различных типов «абзацев» потребуется комбинация разметки и разметки, подобной XML.

Риски

Естественно, что в рамках оценки преимуществ мне пришлось учитывать риски. Наиболее очевидный риск заключается в том, что Medium либо изменяет форму ответа API (вероятно; незначительное влияние), либо полностью ограничивает доступ к API (маловероятно; большое влияние), либо Medium полностью перестает существовать (маловероятно; большое влияние).

Это все риски, на которые я готов пойти в краткосрочной перспективе. В долгосрочной перспективе я буду создавать внутреннюю CMS для управления историями GO2CINEMA, вероятно, используя вышеупомянутый редактор среды с открытым исходным кодом.

Как это работает?

Так в чем же процесс? Вы публикуете статью, получаете JSON, отменяете публикацию? Вы можете уточнить?

Федерико Циволо попросил разъяснить, каков процесс.

Что ж, это довольно просто - как только я пишу статью с помощью редактора Medium, я сохраняю ее как черновик, не публикуя статью. Затем я добавляю ID статьи в базу данных GO2CINEMA. Служба статей GO2CINEMA объединяет Medium для получения последней версии статьи. Каждый раз, когда он обнаруживает новую версию статьи, он сохраняет копию статьи как новую редакцию статьи.

На высоком уровне структура базы данных выглядит так:

article (id, medium_id, headline, alternative_headline, [..])
article_revision (id, revision_number, paragraph_order, paragraph_id)
paragraph (id, article_id, article_revision_id, text, type)
markup (id, paragraph_id, start, end, type)

Я пропустил вспомогательные таблицы, такие как paragraph_image, article_image и т. Д.

Остальное зависит от GO2CINEMA - реконструкция статьи с использованием данных из базы данных.

Результат

Я использовал этот метод для создания первого сообщения о том, что должно стать публикацией GO2CINEMA.



Совместное использование файлов и пиратство« едят корни киноиндустрии?
Распространено мнение, что доходы киноиндустрии снижаются и виновато пиратство. Обобщаю выводы… go2cinema.com »



Дважды макнуть

Теперь, когда статья опубликована на основном веб-сайте, я даю Google пару дней, чтобы забрать статью, а затем использую функцию Medium import post, чтобы импортировать ее в публикацию https://medium.com/applaudience. (Публикация Medium для любителей кино, которую я веду).

Преимущество этого метода состоит в том, что он увеличивает шансы на появление статьи в результатах поиска, а поскольку Medium связывает импортированные статьи обратно с исходным содержанием, мы не рискуем попасть в поле зрения дублирующего радара Google.