之前有找過blogger用的編輯器,不過都用的不是很順手。
反到是gedit + reStructuredText用的很習慣,只缺沒有把寫完的文章轉換成HTML,並上傳到blogger.
所以,就寫了這個小程式。
反到是gedit + reStructuredText用的很習慣,只缺沒有把寫完的文章轉換成HTML,並上傳到blogger.
所以,就寫了這個小程式。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: UTF-8 -*- | |
import os, subprocess, re | |
from docutils import core | |
from docutils.writers.html4css1 import Writer,HTMLTranslator | |
class NoHeaderHTMLTranslator(HTMLTranslator): | |
def __init__(self, document): | |
HTMLTranslator.__init__(self,document) | |
self.head_prefix = ['','','','',''] | |
self.body_prefix = [] | |
self.body_suffix = [] | |
self.stylesheet = [] | |
_w = Writer() | |
_w.translator_class = NoHeaderHTMLTranslator | |
def reSTify(string): | |
html = core.publish_string(string,writer=_w) | |
html = re.sub('\<meta.*\>', '', html, re.I+re.U) | |
html = html.replace('<title></title>', '').replace('\n\n', '') | |
return html | |
# zenity 2.32不支援 --forms選項,只有3.4才有 | |
title = subprocess.Popen("zenity --entry --title='Title'", shell=True, stdout=subprocess.PIPE).communicate()[0] | |
tags = subprocess.Popen("zenity --entry --title='Tag'", shell=True, stdout=subprocess.PIPE).communicate()[0] | |
title = title.replace('\n', '') or '' | |
tags = tags.replace('\n', '') or '' | |
txtFile = '/dev/shm/blogger.post' | |
with file(os.getenv('GEDIT_CURRENT_DOCUMENT_PATH')) as f: | |
body = reSTify(f.read()) | |
with file(txtFile, 'w') as f: | |
f.write(body) | |
cmd = "google blogger post --title={0} --tags='{1}' --src={2}".format(title, tags, txtFile) | |
os.system(cmd) | |
os.remove(txtFile) | |
- 參考文章:
沒有留言:
張貼留言