first need to setup the orgmode plugin for nikola refer to here, then put this into init.el

;;; set up new nikola new post directly in emacs
;; does not work on windows
(defun publish-blog-post ()
  "nikola github-deploy"
  (interactive)
  (save-buffer)
  (let ((my-blog-repo  "path to your blog repo")))
  ;; (let (my-blog-repo))
  ;; (setq my-blog-repo "~/shelper.github.io")
  (cd my-blog-repo)
  (shell-command "nikola github_deploy"))

(defun new-blog-post (title)
  "new blog post to shelper.github.io"
  (interactive "sEnter post title: ")
  (let ((my-blog-repo  "path to your blog repo")))
  (cd my-blog-repo)
  (setq new-post-cmd (concat "nikola new_post -f orgmode -t " "\"" title "\""))
  (shell-command new-post-cmd)
  (setq new-post-file (concat my-blog-repo "/posts/" (replace-regexp-in-string " " "-" title) ".org"))
  (find-file new-post-file))

however, it seems mac does not work for org in nikola refer to: here