Проблема с плагином Docpad Проблема: документ не определен
Я пытаюсь заставить плагин Docpad Contactify работать так, как ожидалось, но мне не повезло, и я надеялся получить здесь некоторую помощь, если это вообще возможно.
Таким образом, рассматриваемый плагин - https://github.com/thaume/docpad-plugin-contactify и он не устанавливается должным образом через nom, поэтому я добавил его через /plugins/. Во всяком случае, при запуске его чистой, я получаю 'ReferenceError: docpad не определен', вызванный этой строкой...
config = docpad.getConfig().plugins.contactify
поэтому я изменил это на...
config = @getConfig()
однако тогда я получаю следующую ошибку...
TypeError: Object function ContactifyPlugin() {
return ContactifyPlugin.__super__.constructor.apply(this, arguments);
} has no method 'getConfig'
Просто ищу способ отправки почты, и это единственный плагин Docpad, который делает это, поэтому я отчаянно отчаянно пытаюсь заставить его работать. Любой вклад будет приветствоваться!
1 ответ
Кажется, есть проблема с contactify и версией docpad. У меня он работал под docpad 6.46, и все казалось нормально. Когда я обновился до 6.66, contactctify сломался. Кажется, есть два соответствующих изменения. Контекст плагина, похоже, изменился, так что docpad больше не доступен напрямую в function(BasePlugin)
контекст и сам Docpad больше не имеет ,getConfig
метод (вместо этого вам нужно получить доступ к config
собственность напрямую)
Перемещение оскорбительного кода внутри serverExtend
Кажется, что метод исправляет проблему контекста, где сам docpad является свойством плагина this
контекст.
ContactifyPlugin.prototype.serverExtend = function(opts) {
docpad = this.docpad;
config = docpad.config.plugins.contactify;
smtp = nodemailer.createTransport('SMTP', config.transport);
var server;
server = opts.server;
...
Версия Coffeescript:
serverExtend: (opts) ->
docpad = @docpad
config = docpad.config.plugins.contactify
smtp = nodemailer.createTransport('SMTP', config.transport)
{server} = opts
...