Выкладываю несколько модернизированный скрипт для постинга из vim :
Прелюдия :
Нам понадобится vim с поддержкой python
Python markdown
Подсветка синтаксиса markdown для vim
Примерно такой кусок кода в .vimrc
python << EOF
import vim
import xmlrpclib
import markdown
blog_username = 'user'
blog_password = 'pass'
blog_url = 'http://dikiy.com/blog/xmlrpc.xml'
def post():
strid = ''
offsetline = 0
if vim.current.buffer[0].find('InfoLine:') != -1:
strid = vim.current.buffer[0].split(':')[1]
offsetline = 1
title = vim.current.buffer[offsetline + 0]
tema = vim.current.buffer[offsetline + 1]
keywords = vim.current.buffer[offsetline + 2]
text ='n'.join(vim.current.buffer[offsetline + 3:])
#extended = 'n'.join(vim.current.buffer[offsetline + 4:])
content = markdown.markdown(text)
wp = xmlrpclib.ServerProxy(blog_url)
post = {
'title': title,
'mt_keywords':keywords,
'description':content
#'mt_text_more':content
}
if strid == '':
strid = wp.metaWeblog.newPost(1, blog_username, blog_password, post, 1)
categories = []
blogcatlist = wp.mt.getCategoryList(1, blog_username,blog_password)
for c in range(len(blogcatlist)):
if blogcatlist[c]['categoryName'] == tema:
znak = blogcatlist[c]
categories.append(znak)
wp.mt.setPostCategories(strid, blog_username, blog_password, categories)
vim.current.buffer.append('n')
vim.current.buffer[:] = ['StrID=' + strid] + [i for i in vim.current.buffer[:]]
else:
wp.metaWeblog.editPost('1', blog_username, blog_password, post, 1)
vim.command('set nomodified')
EOF
Работает с bxcms но с небольшой переделкой того что касается категорий должно зашуршать и для wordpress.
Как это работает
создаём новый файл с расширением .mkd / например
$vim blog/new-post.mkd
-
Первая строка - название поста
-
Вторая строка - Категория из уже имеющихся
-
Третья строка - тэги через запятую
-
Четвёртая строка и всё нижеследующее собственно сам пост с разметкой markdown
После написания сохраняем, а постим командой
:py post();
Недавно прикрутил к блогу подсветку синтаксиса от Ивана Сагалаева
Ничего особо не настраивал. Надо бы bash другим стилем выделить...