なにがめんどいって日誌を見つつリストを作るのがめんどい。日誌つけてるんだから自動で生成してくれてもいいと思う。だが我が研究室の研究日誌(ブログ形式)の場合書き出しはできないは内部向けなおかげでRSSも見れないはでめんどくさい。
そこで考えた、
Evernoteで書いて本家の日誌にはコピペすればいいんじゃね?
EvernoteはXMLで書き出せるからRubyかなんかで「いつ、どんな作業をしたか」くらい抽出できるんじゃね?
というわけでやってみた
Rubyを使ってEvernoteのバックアップファイル(.enex)を読み込み、連想配列に格納するスクリプト。
This file contains hidden or 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
#Evernoteのバックアップファイル(.enex)をHashに格納するスクリプト | |
require 'kconv' | |
require "rexml/document" | |
doc = nil | |
File.open("mynote.enex") {|fp| | |
doc = REXML::Document.new fp | |
} | |
book = Array.new | |
doc.elements.each("en-export/note") { |note| | |
page = Hash.new | |
#タイトル | |
title = note.elements["title"].text | |
page['title'] = title | |
#タグ | |
tags = Array.new | |
note.elements.each("tag") { |tag| tags << tag.text} | |
page['tags'] = tags | |
#筆者 | |
author_temp = note.elements["note-attributes"].elements["author"] | |
author = author_temp.text if author_temp!=nil | |
page['author'] = author | |
#関連URL | |
sourceUrl = note.elements["note-attributes"].elements["source-url"] | |
url = sourceUrl.text if sourceUrl != nil | |
page['url'] = url | |
#作成日と更新日 | |
created_unix = note.elements["created"].text | |
created = Time.at(created_unix.to_i) | |
updated_unix = note.elements["updated"].text | |
updated = Time.at(updated_unix.to_i) | |
page['create'] = created.to_s | |
page['update'] = updated.to_s | |
#内容をplain text形式で | |
content = note.elements["content"].text.toutf8 | |
content.gsub!(/\n/,""); | |
content.gsub!(/<br\/>/,"\n"); | |
content.gsub!(/<\/?[^>]*>/,""); | |
page['content'] = content | |
book << page | |
} | |
p book |
ただXMLを読み込んで連想配列に格納してるだけなんだけどね。
あとはノートを書くときのタイトルで「文献調査[5時間]」とかしておけば、楽勝で作業記録を作成できるという訳ですよ。
まぁそれだけなんだけどね。
0 comments:
コメントを投稿