publish jekyll blog with asciidoc!
blog with asciidoc
I like MD, but ASCIIDOC is my (current) favorite markup. I really need to be able to write my blog with asciidoc, then publish the HTML web page — these can/should be automated in VIM.
1. here is the code
"Asciidoc2Jekyll function s:esctitle(str) let str = a:str let str = tolower(str) let str = substitute(str, g:jekyll_title_pattern, '-', 'g') let str = substitute(str, '\(--\)\+', '-', 'g') let str = substitute(str, '\(^-\|-$\)', '', 'g') return str endfunction "(02/20/2013) publish a asciidoc-generated html blog function! Asciidoc2Jekyll(leveloffset, title) let os=a:leveloffset let title=a:title if title == '' let title = input("Post title: ") endif if title != '' let file_name = strftime("%Y-%m-%d-") . \s:esctitle(title) . \"." . "html" "exe "tabedit " . g:jekyll_path . "/_posts/" . file_name let full_name = g:jekyll_path . "/_posts/" . file_name let g:AsciidocCmd = ":0,\$w !asciidoc \-a numbered -a toc2 \-a toclevels=4 \-a iconsdir=/home/ping/bin/asciidoc-8.6.8/images/icons \-a icons -a data-uri -a showcomments \-o " . full_name . " " . " \-a leveloffset=" . os . "@" . " " . " \-b bootstrap-docs - " echo "the follow CLI will be executed\n" g:AsciidocCmd let isSure=input("are you sure?(y/n)",'y') if isSure == 'y' exec g:AsciidocCmd else return g:AsciidocCmd endif endif endf command! -nargs=* A2J :call Asciidoc2Jekyll(<f-args>) nn <expr> ,aj ':' . Asciidoc2Jekyll(-1, "new_post") . repeat("\<left>", 24) "git "todo: need to return the cmd but "not" to excute function! MyGit(commitmsg) let commitmsg=a:commitmsg let GitCmd=":! \git add -A .; \git commit -m \"" . \commitmsg . "\";" . " \git push origin master" "\repeat("\<left>", 30) return ":" . GitCmd endf command! -nargs=* MyGit exec MyGit(<q-args>) "command! -nargs=* MyGit call MyGit(<q-args>) "this works, but too ugly "nn ,gg :!git add -A .;git commit -m "msg: ";git push origin master" " \<left><left><left><left><left><left><left> " \<left><left><left><left><left><left><left> " \<left><left><left><left><left><left><left> " \<left><left><left><left><left> "this is much better nn <expr> ,gg ':' . MyGit("new post:") . repeat("\<left>", 24)
2. how to use it
-
generate html with asciidoc, save it the jekyll folder:
,aj
-
list current blogs, check the new blog:
,js
-
use git to publish it:
,gg
3. source code of this blog
== blog with asciidoc I like MD, but ASCIIDOC is my (current) favorite markup. I really need to be able to write my blog with asciidoc, then publish the HTML web page — these can/should be automated in VIM. === here is the code ---- "Asciidoc2Jekyll function s:esctitle(str) let str = a:str let str = tolower(str) let str = substitute(str, g:jekyll_title_pattern, '-', 'g') let str = substitute(str, '\(--\)\+', '-', 'g') let str = substitute(str, '\(^-\|-$\)', '', 'g') return str endfunction "(02/20/2013) publish a asciidoc-generated html blog function! Asciidoc2Jekyll(leveloffset, title) let os=a:leveloffset let title=a:title if title == '' let title = input("Post title: ") endif if title != '' let file_name = strftime("%Y-%m-%d-") . \s:esctitle(title) . \"." . "html" "exe "tabedit " . g:jekyll_path . "/_posts/" . file_name let full_name = g:jekyll_path . "/_posts/" . file_name let g:AsciidocCmd = ":0,\$w !asciidoc \-a numbered -a toc2 \-a toclevels=4 \-a iconsdir=/home/ping/bin/asciidoc-8.6.8/images/icons \-a icons -a data-uri -a showcomments \-o " . full_name . " " . " \-a leveloffset=" . os . "@" . " " . " \-b bootstrap-docs - " echo "the follow CLI will be executed\n" g:AsciidocCmd let isSure=input("are you sure?(y/n)",'y') if isSure == 'y' exec g:AsciidocCmd else return g:AsciidocCmd endif endif endf command! -nargs=* A2J :call Asciidoc2Jekyll(<f-args>) nn <expr> ,aj ':' . Asciidoc2Jekyll(-1, "new_post") . repeat("\<left>", 24) "git "todo: need to return the cmd but "not" to excute function! MyGit(commitmsg) let commitmsg=a:commitmsg let GitCmd=":! \git add -A .; \git commit -m \"" . \commitmsg . "\";" . " \git push origin master" "\repeat("\<left>", 30) return ":" . GitCmd endf command! -nargs=* MyGit exec MyGit(<q-args>) "command! -nargs=* MyGit call MyGit(<q-args>) "this works, but too ugly "nn ,gg :!git add -A .;git commit -m "msg: ";git push origin master" " \<left><left><left><left><left><left><left> " \<left><left><left><left><left><left><left> " \<left><left><left><left><left><left><left> " \<left><left><left><left><left> "this is much better nn <expr> ,gg ':' . MyGit("new post:") . repeat("\<left>", 24) ---- === how to use it * generate html with asciidoc, save it the jekyll folder: `,aj` * list current blogs, check the new blog: `,js` * use git to publish it: `,gg`
blog comments powered by Disqus