Hey Nick,
Thanks a lot for your detailed explanation, now I'm pretty clear about the error. But I just get the idea why we could not publish arbitrary org file as html to current directory, I guess it could be kind of troublesome that every time to set up the project first?
What do you think?
Chao
> I just start a new org file, say, PHY.org, type very simple words, then... and as you can see, the problem is that file-name-as-directory is called
> tried
> M-x org-publish-current-file.
>
> The *backtrace* tells:
> --------
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
> file-name-as-directory(nil)
with a nil argument, whereas it expects a string.
... and this tells us that org-publish-get-base-files got called and
> (let* ((project-plist ...) (base-dir ...) (include-list ...) (recurse ...)
> (extension ...) (match ...)) (setq org-publish-temp-files nil)
> (org-publish-get-base-files-1 base-dir recurse match exclude-regexp
> exclude-regexp) (mapc (lambda ... ...) include-list) org-publish-temp-files)
> org-publish-get-base-files(("options" :section-numbers nil
> :table-of-contents nil :style "<script
> type=\"text/javascript\">\n /* <![CDATA[ */\n
> org_html_manager.set(" TOC ", 1);\n org_html_manager.set("
> LOCAL_TOC ", 1);\n org_html_manager.set(" VIEW_BUTTONS ", "
> true ");\n org_html_manager.set(" MOUSE_HINT ", " underline
> "); // or background-color like '#eeeeee'\n
> org_html_manager.setup ();\n /* ]]> */\n
> </script>") nil)
somewhere in the execution of the let* form, it got the error.
So you look at that let* form in org-publish-get-base-files and you
see this:
(let* ((project-plist (cdr project))
(base-dir (file-name-as-directory
(plist-get project-plist :base-directory)))
...
which tells me that you *have* to have a project-plist and it *has*
to have a :base-directory property in order to be able to publish.
You just cannot take an arbitrary org file and publish it without
providing the publishing framework for it.
HTH,
Nick
> >
> > > Today I was trying to publish a single org file using
> > > org-publish-current-file, however, org refused to do so, the error
> > message
> > > is
> > >
> > > ====
> > > let*: Wrong type argument: stringp, nil
> > > ====
> > >
> > > I believe the org-publish function work well, for I could get the
> > > pre-defined project published smoothly. So do anyone has met similar
> > > problem?
> > >
> >
> > Please set debug-on-error to t and after recreating the error, post the
> > resulting backtrace. See the "Feedback" section of the Org manual for more
> > details on how to report problems.
> >
> > HTH,
> > Nick