From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steinar Bang Subject: org2blog fails during upload with: org-export-barf-if-invalid-backend: Unknown "nil" back-end: Aborting export Date: Sun, 15 Dec 2019 15:14:09 +0100 Message-ID: <867e2xvfpq.fsf@dod.no> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:45186) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1igUfD-00056o-8I for emacs-orgmode@gnu.org; Sun, 15 Dec 2019 09:14:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1igUfA-0005bg-JG for emacs-orgmode@gnu.org; Sun, 15 Dec 2019 09:14:27 -0500 Received: from cadalora.default.sbang.uk0.bigv.io ([2001:41c9:1:424::90]:33560 helo=cadalora.bang.priv.no) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1igUfA-0004YG-8p for emacs-orgmode@gnu.org; Sun, 15 Dec 2019 09:14:24 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org Platform: Windows 10, GNU Emacs 26.3 (build 1, i686-w64-mingw32) of 2019-08-29 Org mode version 9.1.9 (release_9.1.9-65-g5e4542 @ c:/ProgramFile= s/emacs-26.3-i686/share/emacs/26.3/lisp/org/) Org2Blog Runtime: Org2Blog 1.1.1, MetaWeblog 1.1.1, XML-RPC 1.6.12 I've installed org2blog from melpa stable following the instructions in https://github.com/org2blog/org2blog#using-a-package I've created a template article and have successfully logged in to the blog https://github.com/org2blog/org2blog#make-your-first-post-in-less-5-minutes However exporting buffer fails with the error message org-export-barf-if-invalid-backend: Unknown "nil" back-end: Aborting export I have googled the error message and found this old thread: https://www.mail-archive.com/emacs-orgmode@gnu.org/msg105337.html I have manually loaded ox-org as suggested in the thread, but that didn't make the problem go away. https://www.mail-archive.com/emacs-orgmode@gnu.org/msg105374.html Does anyone know what the problem might be? Thanks! Stack trace from the error message: Debugger entered--Lisp error: (error "Unknown \"nil\" back-end: Aborting ex= port") signal(error ("Unknown \"nil\" back-end: Aborting export")) error("Unknown \"%s\" back-end: Aborting export" nil) org-export-barf-if-invalid-backend(nil) org-export-as(wp nil nil t (:section-numbers nil :with-priority nil :with= -sub-superscript nil :with-toc nil :with-tags nil :with-todo-keywords nil := wp-keep-new-lines nil :wp-latex t :wp-shortcode nil :tags-as-categories nil= :wp-shortcode-langs-map nil)) org-export-to-buffer(wp "*Org WordPress Export*" nil nil nil t (:section-= numbers nil :with-priority nil :with-sub-superscript nil :with-toc nil :wit= h-tags nil :with-todo-keywords nil :wp-keep-new-lines nil :wp-latex t :wp-s= hortcode nil :tags-as-categories nil :wp-shortcode-langs-map nil) #f(compil= ed-function () #)) ox-wp-export-as-wordpress(nil nil (:section-numbers nil :with-priority ni= l :with-sub-superscript nil :with-toc nil :with-tags nil :with-todo-keyword= s nil :wp-keep-new-lines nil :wp-latex t :wp-shortcode nil :tags-as-categor= ies nil :wp-shortcode-langs-map nil)) ox-wp-export-as-string(nil nil (:section-numbers nil :with-priority nil := with-sub-superscript nil :with-toc nil :with-tags nil :with-todo-keywords n= il :wp-keep-new-lines nil :wp-latex t :wp-shortcode nil :tags-as-categories= nil :wp-shortcode-langs-map nil)) (org-no-properties (ox-wp-export-as-string nil subtree-p export-options)) (org2blog--upload-files-replace-urls (org-no-properties (ox-wp-export-as-= string nil subtree-p export-options))) (save-excursion (org2blog--upload-files-replace-urls (org-no-properties (= ox-wp-export-as-string nil subtree-p export-options)))) (let ((result (save-excursion (org2blog--upload-files-replace-urls (org-n= o-properties (ox-wp-export-as-string nil subtree-p export-options)))))) res= ult) org2blog--export-as-html(nil (:section-numbers nil :with-priority nil :wi= th-sub-superscript nil :with-toc nil :with-tags nil :with-todo-keywords nil= :wp-keep-new-lines nil :wp-latex t :wp-shortcode nil :tags-as-categories n= il :wp-shortcode-langs-map nil)) (setcdr (assoc "description" post) (org2blog--export-as-html subtree-p ex= port-options)) (let ((post (if subtree-p (org2blog--parse-subtree-entry) (org2blog--pars= e-buffer-entry)))) (if tags-as-categories (progn (setcdr (assoc "categories= " post) (cdr (assoc "tags" post))) (setcdr (assoc "tags" post) nil))) (setc= dr (assoc "date" post) (org2blog--convert-timestamp-to-iso (org2blog--inser= t-current-time subtree-p (cdr (assoc "date" post))))) (setcdr (assoc "descr= iption" post) (org2blog--export-as-html subtree-p export-options)) post) (save-restriction (let ((post (if subtree-p (org2blog--parse-subtree-entr= y) (org2blog--parse-buffer-entry)))) (if tags-as-categories (progn (setcdr = (assoc "categories" post) (cdr (assoc "tags" post))) (setcdr (assoc "tags" = post) nil))) (setcdr (assoc "date" post) (org2blog--convert-timestamp-to-is= o (org2blog--insert-current-time subtree-p (cdr (assoc "date" post))))) (se= tcdr (assoc "description" post) (org2blog--export-as-html subtree-p export-= options)) post)) (save-excursion (save-restriction (let ((post (if subtree-p (org2blog--pa= rse-subtree-entry) (org2blog--parse-buffer-entry)))) (if tags-as-categories= (progn (setcdr (assoc "categories" post) (cdr (assoc "tags" post))) (setcd= r (assoc "tags" post) nil))) (setcdr (assoc "date" post) (org2blog--convert= -timestamp-to-iso (org2blog--insert-current-time subtree-p (cdr (assoc "dat= e" post))))) (setcdr (assoc "description" post) (org2blog--export-as-html s= ubtree-p export-options)) post))) (let* ((export-options (org2blog--collect-export-options)) (tags-as-categ= ories (plist-get export-options :tags-as-categories))) (save-excursion (sav= e-restriction (let ((post (if subtree-p (org2blog--parse-subtree-entry) (or= g2blog--parse-buffer-entry)))) (if tags-as-categories (progn (setcdr (assoc= "categories" post) (cdr ...)) (setcdr (assoc "tags" post) nil))) (setcdr (= assoc "date" post) (org2blog--convert-timestamp-to-iso (org2blog--insert-cu= rrent-time subtree-p (cdr ...)))) (setcdr (assoc "description" post) (org2b= log--export-as-html subtree-p export-options)) post)))) org2blog--export-as-post(nil) (let* ((from-buffer (eq source (quote buffer))) (from-subtree (eq source = (quote subtree))) (to-post (eq type (quote post))) (to-page (eq type (quote= page))) (thing (symbol-name type)) (made-new-entry nil) (post (org2blog--e= xport-as-post from-subtree)) (confirm (and (org2blog--blog-property-or :con= firm org2blog/wp-confirm-post) publish)) (show (or (org2blog-blog-has :show= ) org2blog/wp-show-post-in-browser)) post-id) (org2blog--create-categories = (cdr (assoc "categories" post))) (setq post-id (cdr (assoc "post-id" post))= ) (if confirm (progn (if (not (y-or-n-p (concat (format "Would you like to = publish your %s: =E2=80=9C%s=E2=80=9D (ID =E2=80=9C%s=E2=80=9D)" thing ... = post-id) "?"))) (progn (message (concat "Canceled publishing your %s: =E2= =80=9C%s=E2=80=9D (ID =E2=80=9C%s=E2=80=9D).") thing (cdr (assoc "title" po= st)) post-id) (throw (quote return) (list (quote failure) post-id "User can= celed")))))) (condition-case err (cond ((and to-post post-id) (metaweblog-e= dit-post org2blog-xmlrpc org2blog-username org2blog-password post-id post p= ublish)) ((and to-post (not post-id)) (setq post-id (metaweblog-new-post or= g2blog-xmlrpc org2blog-username org2blog-password org2blog-blogid post publ= ish)) (setq made-new-entry t)) ((and to-page post-id) (metaweblog-wp-edit-p= age org2blog-xmlrpc org2blog-username org2blog-password org2blog-blogid pos= t-id post publish)) ((and to-page (not post-id)) (setq post-id (metaweblog-= wp-new-page org2blog-xmlrpc org2blog-username org2blog-password org2blog-bl= ogid post publish)) (setq made-new-entry t))) ((debug error) (org2blog--err= or (format (concat "I=E2=80=99m sorry I ran into a problem " "on %s: =E2=80= =9C%s=E2=80=9D (ID =E2=80=9C%s=E2=80=9D) " "inside of =E2=80=98org2blog-ent= ry-save=E2=80=99.") thing (cdr (assoc "title" post)) post-id) (format "%s" = err)) (throw (quote return) (list (quote failure) post-id "RPC error")))) (= if made-new-entry (progn (run-hook-with-args (quote org2blog-buffer-entry-s= ave-hook) (org2blog--get-post-or-page post-id)) (if to-page (progn (conditi= on-case err (setq org2blog-pages (org2blog--load-pages ...)) ((debug error)= (org2blog--error ... ...))))) (if from-buffer (progn (goto-char (point-min= )) (if to-post (progn (insert ...))) (insert (concat "#+POSTID: " post-id "= \n")))) (if from-subtree (progn (if to-post (progn (org-entry-put ... "BLOG= " org2blog-blog-key))) (org-entry-put (point) "POSTID" post-id))))) (org2bl= og--save-details post post-id publish from-subtree) (let* ((did (format (if= publish "Published your %s: =E2=80=9C%s=E2=80=9D. Its ID is =E2=80=9C%s=E2= =80=9D. " "Saved your %s as a draft: =E2=80=9C%s=E2=80=9D. Its ID is =E2=80= =9C%s=E2=80=9D. ") thing (cdr (assoc "title" post)) post-id)) (showit (or (= and (atom show) (symbolp show) (not (listp show)) show) (car (cdr show)))) = (dont (equal showit (quote dont))) (show (equal showit (quote show))) (ask = (equal showit (quote ask)))) (cond (dont (message (concat did "It looks lik= e you decided not to automatically display " "your %s, so I won=E2=80=99t. = If you ever want to change " "it then try customizing " "=E2=80=98org2blog/= wp-show-post-in-browser=E2=80=99.") thing)) ((not org2blog-logged-in) (mess= age (concat did "It looks like you wanted to display your %s, but " "I coul= dn=E2=80=99t because you are not logged in to your " "blog. Please log in t= o your blog and try doing " "this again.") thing)) (show (message "%s" did)= (cond ((and from-buffer to-post) (org2blog-buffer-post-or-page-view)) ((an= d from-buffer to-page) (org2blog-buffer-post-or-page-view)) ((and from-subt= ree to-post) (org2blog-subtree-post-or-page-view)) ((and from-subtree to-pa= ge) (org2blog-subtree-post-or-page-view)))) ((and ask (y-or-n-p (format (co= ncat did "Would you like to display " "your %s: =E2=80=9C%s=E2=80=9D (ID = =E2=80=9C%s=E2=80=9D)? ") thing (cdr ...) post-id))) (cond ((and from-buffe= r to-post) (org2blog-buffer-post-or-page-view)) ((and from-buffer to-page) = (org2blog-buffer-post-or-page-view)) ((and from-subtree to-post) (org2blog-= subtree-post-or-page-view)) ((and from-subtree to-page) (org2blog-subtree-p= ost-or-page-view)))))) (throw (quote return) (list (quote success) post-id = "It worked"))) (catch (quote return) (widen) (let* ((from-buffer (eq source (quote buffe= r))) (from-subtree (eq source (quote subtree))) (to-post (eq type (quote po= st))) (to-page (eq type (quote page))) (thing (symbol-name type)) (made-new= -entry nil) (post (org2blog--export-as-post from-subtree)) (confirm (and (o= rg2blog--blog-property-or :confirm org2blog/wp-confirm-post) publish)) (sho= w (or (org2blog-blog-has :show) org2blog/wp-show-post-in-browser)) post-id)= (org2blog--create-categories (cdr (assoc "categories" post))) (setq post-i= d (cdr (assoc "post-id" post))) (if confirm (progn (if (not (y-or-n-p (conc= at ... "?"))) (progn (message (concat "Canceled publishing your %s: =E2=80= =9C%s=E2=80=9D (ID =E2=80=9C%s=E2=80=9D).") thing (cdr ...) post-id) (throw= (quote return) (list ... post-id "User canceled")))))) (condition-case err= (cond ((and to-post post-id) (metaweblog-edit-post org2blog-xmlrpc org2blo= g-username org2blog-password post-id post publish)) ((and to-post (not post= -id)) (setq post-id (metaweblog-new-post org2blog-xmlrpc org2blog-username = org2blog-password org2blog-blogid post publish)) (setq made-new-entry t)) (= (and to-page post-id) (metaweblog-wp-edit-page org2blog-xmlrpc org2blog-use= rname org2blog-password org2blog-blogid post-id post publish)) ((and to-pag= e (not post-id)) (setq post-id (metaweblog-wp-new-page org2blog-xmlrpc org2= blog-username org2blog-password org2blog-blogid post publish)) (setq made-n= ew-entry t))) ((debug error) (org2blog--error (format (concat "I=E2=80=99m = sorry I ran into a problem " "on %s: =E2=80=9C%s=E2=80=9D (ID =E2=80=9C%s= =E2=80=9D) " "inside of =E2=80=98org2blog-entry-save=E2=80=99.") thing (cdr= (assoc "title" post)) post-id) (format "%s" err)) (throw (quote return) (l= ist (quote failure) post-id "RPC error")))) (if made-new-entry (progn (run-= hook-with-args (quote org2blog-buffer-entry-save-hook) (org2blog--get-post-= or-page post-id)) (if to-page (progn (condition-case err (setq org2blog-pag= es ...) (... ...)))) (if from-buffer (progn (goto-char (point-min)) (if to-= post (progn ...)) (insert (concat "#+POSTID: " post-id "\n")))) (if from-su= btree (progn (if to-post (progn ...)) (org-entry-put (point) "POSTID" post-= id))))) (org2blog--save-details post post-id publish from-subtree) (let* ((= did (format (if publish "Published your %s: =E2=80=9C%s=E2=80=9D. Its ID is= =E2=80=9C%s=E2=80=9D. " "Saved your %s as a draft: =E2=80=9C%s=E2=80=9D. I= ts ID is =E2=80=9C%s=E2=80=9D. ") thing (cdr (assoc "title" post)) post-id)= ) (showit (or (and (atom show) (symbolp show) (not ...) show) (car (cdr sho= w)))) (dont (equal showit (quote dont))) (show (equal showit (quote show)))= (ask (equal showit (quote ask)))) (cond (dont (message (concat did "It loo= ks like you decided not to automatically display " "your %s, so I won=E2=80= =99t. If you ever want to change " "it then try customizing " "=E2=80=98org= 2blog/wp-show-post-in-browser=E2=80=99.") thing)) ((not org2blog-logged-in)= (message (concat did "It looks like you wanted to display your %s, but " "= I couldn=E2=80=99t because you are not logged in to your " "blog. Please lo= g in to your blog and try doing " "this again.") thing)) (show (message "%s= " did) (cond ((and from-buffer to-post) (org2blog-buffer-post-or-page-view)= ) ((and from-buffer to-page) (org2blog-buffer-post-or-page-view)) ((and fro= m-subtree to-post) (org2blog-subtree-post-or-page-view)) ((and from-subtree= to-page) (org2blog-subtree-post-or-page-view)))) ((and ask (y-or-n-p (form= at ... thing ... post-id))) (cond ((and from-buffer to-post) (org2blog-buff= er-post-or-page-view)) ((and from-buffer to-page) (org2blog-buffer-post-or-= page-view)) ((and from-subtree to-post) (org2blog-subtree-post-or-page-view= )) ((and from-subtree to-page) (org2blog-subtree-post-or-page-view)))))) (t= hrow (quote return) (list (quote success) post-id "It worked")))) (save-restriction (catch (quote return) (widen) (let* ((from-buffer (eq s= ource (quote buffer))) (from-subtree (eq source (quote subtree))) (to-post = (eq type (quote post))) (to-page (eq type (quote page))) (thing (symbol-nam= e type)) (made-new-entry nil) (post (org2blog--export-as-post from-subtree)= ) (confirm (and (org2blog--blog-property-or :confirm org2blog/wp-confirm-po= st) publish)) (show (or (org2blog-blog-has :show) org2blog/wp-show-post-in-= browser)) post-id) (org2blog--create-categories (cdr (assoc "categories" po= st))) (setq post-id (cdr (assoc "post-id" post))) (if confirm (progn (if (n= ot (y-or-n-p ...)) (progn (message ... thing ... post-id) (throw ... ...)))= )) (condition-case err (cond ((and to-post post-id) (metaweblog-edit-post o= rg2blog-xmlrpc org2blog-username org2blog-password post-id post publish)) (= (and to-post (not post-id)) (setq post-id (metaweblog-new-post org2blog-xml= rpc org2blog-username org2blog-password org2blog-blogid post publish)) (set= q made-new-entry t)) ((and to-page post-id) (metaweblog-wp-edit-page org2bl= og-xmlrpc org2blog-username org2blog-password org2blog-blogid post-id post = publish)) ((and to-page (not post-id)) (setq post-id (metaweblog-wp-new-pag= e org2blog-xmlrpc org2blog-username org2blog-password org2blog-blogid post = publish)) (setq made-new-entry t))) ((debug error) (org2blog--error (format= (concat "I=E2=80=99m sorry I ran into a problem " "on %s: =E2=80=9C%s=E2= =80=9D (ID =E2=80=9C%s=E2=80=9D) " "inside of =E2=80=98org2blog-entry-save= =E2=80=99.") thing (cdr ...) post-id) (format "%s" err)) (throw (quote retu= rn) (list (quote failure) post-id "RPC error")))) (if made-new-entry (progn= (run-hook-with-args (quote org2blog-buffer-entry-save-hook) (org2blog--get= -post-or-page post-id)) (if to-page (progn (condition-case err ... ...))) (= if from-buffer (progn (goto-char ...) (if to-post ...) (insert ...))) (if f= rom-subtree (progn (if to-post ...) (org-entry-put ... "POSTID" post-id))))= ) (org2blog--save-details post post-id publish from-subtree) (let* ((did (f= ormat (if publish "Published your %s: =E2=80=9C%s=E2=80=9D. Its ID is =E2= =80=9C%s=E2=80=9D. " "Saved your %s as a draft: =E2=80=9C%s=E2=80=9D. Its I= D is =E2=80=9C%s=E2=80=9D. ") thing (cdr ...) post-id)) (showit (or (and ..= . ... ... show) (car ...))) (dont (equal showit (quote dont))) (show (equal= showit (quote show))) (ask (equal showit (quote ask)))) (cond (dont (messa= ge (concat did "It looks like you decided not to automatically display " "y= our %s, so I won=E2=80=99t. If you ever want to change " "it then try custo= mizing " "=E2=80=98org2blog/wp-show-post-in-browser=E2=80=99.") thing)) ((n= ot org2blog-logged-in) (message (concat did "It looks like you wanted to di= splay your %s, but " "I couldn=E2=80=99t because you are not logged in to y= our " "blog. Please log in to your blog and try doing " "this again.") thin= g)) (show (message "%s" did) (cond (... ...) (... ...) (... ...) (... ...))= ) ((and ask (y-or-n-p ...)) (cond (... ...) (... ...) (... ...) (... ...)))= )) (throw (quote return) (list (quote success) post-id "It worked"))))) (save-excursion (save-restriction (catch (quote return) (widen) (let* ((f= rom-buffer (eq source (quote buffer))) (from-subtree (eq source (quote subt= ree))) (to-post (eq type (quote post))) (to-page (eq type (quote page))) (t= hing (symbol-name type)) (made-new-entry nil) (post (org2blog--export-as-po= st from-subtree)) (confirm (and (org2blog--blog-property-or :confirm org2bl= og/wp-confirm-post) publish)) (show (or (org2blog-blog-has :show) org2blog/= wp-show-post-in-browser)) post-id) (org2blog--create-categories (cdr (assoc= "categories" post))) (setq post-id (cdr (assoc "post-id" post))) (if confi= rm (progn (if (not ...) (progn ... ...)))) (condition-case err (cond ((and = to-post post-id) (metaweblog-edit-post org2blog-xmlrpc org2blog-username or= g2blog-password post-id post publish)) ((and to-post ...) (setq post-id ...= ) (setq made-new-entry t)) ((and to-page post-id) (metaweblog-wp-edit-page = org2blog-xmlrpc org2blog-username org2blog-password org2blog-blogid post-id= post publish)) ((and to-page ...) (setq post-id ...) (setq made-new-entry = t))) ((debug error) (org2blog--error (format ... thing ... post-id) (format= "%s" err)) (throw (quote return) (list ... post-id "RPC error")))) (if mad= e-new-entry (progn (run-hook-with-args (quote org2blog-buffer-entry-save-ho= ok) (org2blog--get-post-or-page post-id)) (if to-page (progn ...)) (if from= -buffer (progn ... ... ...)) (if from-subtree (progn ... ...)))) (org2blog-= -save-details post post-id publish from-subtree) (let* ((did (format ... th= ing ... post-id)) (showit (or ... ...)) (dont (equal showit ...)) (show (eq= ual showit ...)) (ask (equal showit ...))) (cond (dont (message ... thing))= ((not org2blog-logged-in) (message ... thing)) (show (message "%s" did) (c= ond ... ... ... ...)) ((and ask ...) (cond ... ... ... ...)))) (throw (quot= e return) (list (quote success) post-id "It worked")))))) org2blog-entry-save(buffer post nil) org2blog-buffer-post-save(nil) funcall-interactively(org2blog-buffer-post-save nil) call-interactively(org2blog-buffer-post-save) hydra--call-interactively-remap-maybe(org2blog-buffer-post-save) (progn (setq this-command (quote org2blog-buffer-post-save)) (hydra--call= -interactively-remap-maybe (function org2blog-buffer-post-save))) org2blog--hydra-main/org2blog-buffer-post-save-and-exit() funcall-interactively(org2blog--hydra-main/org2blog-buffer-post-save-and-= exit) call-interactively(org2blog--hydra-main/org2blog-buffer-post-save-and-exi= t nil nil) command-execute(org2blog--hydra-main/org2blog-buffer-post-save-and-exit)