zim-wiki team mailing list archive
Mailing list archive
Re: go with the dominant syntaxes: label/tags and tables
On Wednesday, September 28, 2011, Jaap Karssenberg wrote:
> If you want to plug into zim you could have a look at the "print to browser"
> plugin, which adds a button to the tasklist dialog for html export. If you
> want to make it a background script, try re-using the code of the tasklist
> plugin for accessing the index.
It's just two functions in my script that runs whenever I synchronize my flat files with the Web server. It's actually rather stupid, just pulling the text out of the txt files. I've attached it below though I doubt it would be of use to others, but perhaps an expire plugin that moves [x] tasks to a journal/calendar might be.
> No zim's "@" syntax does not predate the twitter convention. But you will
> find there are older systems using "@" for tags as well. Main reason I
> choose this syntax is that in HTML "#" is used for anchors, which is a
> feature we still want to add to zim.
> Actually work is ongoing to make zim support multiple syntaxes. No need to
> have one-size-fits all in this respect. See previous discussion on this
> list, as well as various syntax related feature requests in the bug tracker.
Yes, I saw some discussion of that a month or so ago, but I didn't know it was being actively developed. (My fingers are crossed.) BTW: no bugs are listed here:
Log completed zim tasks to work microblog
log_items = 
for activity, task in done_tasks:
# zim syntax for href/em to HTML
task = re.sub('\[\[(.*?)\|(.*)\]\]', ur'<a href="\1">\2</a>', task)
task = re.sub('\/\/(.*?)\/\/', ur'<em>\1</em>', task)
date_token = get_Now_YMD()
digest = hashlib.md5(task.encode('utf-8', 'replace')).hexdigest()
uid = "e" + date_token + "-" + digest[:4]
log_item = '<li class="event" id="%s">%s: %s] %s</li>\n' % \
(uid, date_token, activity, task)
OUT_FILE = HOME+'/data/2web/reagle.org/joseph/plan/plans/index.html'
fd = codecs.open(OUT_FILE, 'r', 'utf-8', 'replace')
content = fd.read()
insertion_regexp = re.compile('(<h2>Done Work</h2>\s*<ol>)')
newcontent = insertion_regexp.sub(u'\\1 \n %s' %
''.join(log_items), content, re.DOTALL|re.IGNORECASE)
fd = codecs.open(OUT_FILE, 'w', 'utf-8', 'replace')
print_usage("Sorry, output regexp subsitution failed.")
Removes completed '[x]' zim tasks form zim
if 'zim' in check_output(["ps", "axw"]):
print("Zim is presently running; tasks not retired.")
zim_files = locate('*.txt', directory)
for zim_filename in zim_files:
activity = 'misc'
new_wiki_page = 
with open(zim_filename, 'r') as wiki_page:
for line in wiki_page:
label = re.search('@\w+', line)
activity = label.group(0).strip()[1:]
if '[x]' in line:
item = line.split(']',1).strip()
new_wiki_page_fd = open(zim_filename, 'w')
new_wiki_page_fd.writelines("%s" % line for line in new_wiki_page)