I've found the solution to my issue and described full explanation in my blog.
In a few words, I've created custom export backend and pass the block contents to an external script.
(require 'org)
(require 'ox)
(require 'ox-html)
;; Path for pygments or command name
(defvar pygments-path "pygmentize")
(defun pygments-org-html-code (code contents info)
;; Generating tmp file path.
;; Current date and time hash will ideally pass our needs.
(setq temp-source-file (format "/tmp/pygmentize-%s.txt"(md5 (current-time-string))))
;; Writing block contents to the file.
(with-temp-file temp-source-file (insert (org-element-property :value code)))
;; Exectuing the shell-command an reading an output
(shell-command-to-string (format "%s -l \"%s\" -f html %s"
pygments-path
(or (org-element-property :language code)
"")
temp-source-file)))
(org-export-define-derived-backend 'pelican-html 'html
:translate-alist '((src-block . pygments-org-html-code)
(example-block . pygments-org-html-code)))
You can use these org reader variables to load the emacs functions in pelican:
ORG_READER_EMACS_SETTINGS = os.path.abspath('lisp/config.el')
ORG_READER_BACKEND = "'pelican-html"