org-modeは簡単にHTMLを作成できてとても便利です。
しかし、なぜか別ディレクトリに出力する機能は存在しません。

確かに EXPORT_FILE_NAME プロパティを付ければ別のファイル名にできますが、
プロパティですのでsubtreeに限定されています。
M-x org-publishを使えば別ディレクトリに出力できますが、
同じディレクトリの別なHTMLも処理されてしまいます。
どっちにしても「帯に短したすきに長し」です。

原因は org-html-export-to-html 関数に出力ディレクトリを指定できないことです!
内部で呼んでいる org-export-output-file-name 関数には出力ディレクトリ指定できます。

そこで、 org-export-directory 変数を導入し、
その変数が設定してある場合はそのディレクトリに
HTML出力させるようなアドバイスを定義します。

別ディレクトリにHTML出力できれば、
特にsshfs等でサーバに接続している場合、
アップロードの手間を省けます。

exportすればその時点でアップロードされることになるからです。

(defvar org-export-directory nil)

(defun org-export-output-file-name--set-directory (orig-fn extension &optional subtreep pub-dir)
  (setq pub-dir (or pub-dir org-export-directory))
  (funcall orig-fn extension subtreep pub-dir))
(advice-add 'org-export-output-file-name :around 'org-export-output-file-name--set-directory)

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。