Обработка HTML, обновление, а затем сохранение в Ghost - PullRequest
0 голосов
/ 02 октября 2018

Я использую Ghost ( ghost.org , v2.1.4) с Каспером (тема по умолчанию) и хочу публиковать подкасты.На данный момент, нет хорошего способа сделать это.Вот что я пытаюсь сделать:

  1. Когда сообщение содержит ссылку на файл .mp3, это сообщение становится подкастом
  2. Некоторый код, который нужно вставить прямо над этим URLи отобразит HTML5-совместимый проигрыватель (скажем, wavesurfer.js)
  3. . Сам URL обновляется до соответствующей ссылки: «Загрузить эпизод #xxx»
  4. Создается правильный тег enclosureи добавляется в сообщение в виде невидимого кода (?)
  5. Этот enclosure становится доступным для этого конкретного сообщения в ленте RSS для дальнейшего распространения подкастов
  6. Это обновленное сообщение сохраняется в базе данных

Я не совсем уверен, как лучше подойти к этому.Мне удалось заставить пункты с 1 по 3 работать с помощником Ghost content, поэтому всякий раз, когда в сообщении появляется URL .mp3, он становится медиаплеером со ссылкой для загрузки ниже.

Как мнедобавить приложение к сообщению, чтобы оно появилось в RSS?И как правильно потом взять весь этот объект post и отправить его обратно в базу данных в качестве обновления (я использую MySQL в то время)?

Любые предложения / указатели очень приветствуются, так как документацияограниченный и не всегда ясный о выполнении такого рода вещей.Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

Если честно, я не уверен, что то, что вы ищете, возможно с текущими точками расширения.И, как и для всех проблем, которые невозможны, у меня есть невозможное решение:)

В новейшей версии Ghost, такой как 2.1.4, вы можете включить Zapier в разделе «Приложения».Это дает вам возможность создавать хуки (называемые "zaps"), которые в основном являются обратными вызовами на основе http.Как и тот, который может автоматически публиковать новые сообщения в твиттере.

Вы можете создать свой собственный маленький сервис, например сервис Amazon Lambda или Azure Functions.Вы можете настроить zap (уже есть встроенный для Amazon Lambda, но вы должны иметь возможность создать его для функций Azure или даже просто для любого простого HTTP-сервиса), который вызывается при создании нового сообщения, и это пересылаетвызовите функцию Amazon Lambda или Azure (или собственную службу).Затем внутри вызываемой службы вы можете подключиться к базе данных MySql, запросить и изменить сообщение и сохранить его обратно.

Таким образом, рабочий процесс в основном выглядит следующим образом:

  1. Вы создаетесообщение
  2. Сообщение сохранено, это вызывает запуск, который вызывает, скажем, Amazon Lambda
  3. Внутри лямбды вы запрашиваете сообщение из базы данных MySQL
  4. Вы изменяетепост и сохранить его обратно

Я знаю, что это не идеально и кажется слишком сложным, но, по крайней мере, оно полностью автоматизировано.

Другой вариант - создать и зарегистрировать пользовательскийПризрачный помощник.По сути, это кусок кода Node.Js, на который можно ссылаться, например, {{content}} и другие помощники, и который можно запрограммировать на вывод любого произвольного фрагмента html в шаблон.В настоящее время я редактирую серию постов о пользовательских помощниках, которые я создал для своего блога Ghost, но пока вы можете проверить связанный репозиторий Github для кода и вики за самые важные ноу-хау.Опять же, это решение довольно запутанное, и все основано на неподдерживаемых недокументированных функциях.

...