我同时在使用两套信息记录工具,知识收集记录工具BooguNote + KMS Wiz,关于这两套系统具体介绍请见桌面记录神器- BooguNote & 我所使用的知识管理系统

我的使用习惯是在BooguNote中收集日常的琐碎知识点,包括我所想的和工作记录。每个小知识节点的长度大概在200-300字左右。这些被我称为的知识碎片显然 不能直接放入KMS。

BooguNote可以将里面的文字直接复制出来,会在父亲节点上加入+,子节点加入-,这种简单的txt不能满足我的要求。于是我花了点时间写了一个mm文件到ht ml的转换脚本。

BooguNote的文件格式是boo,可以转换成FreeMind的思维导图格式.mm,我认为用mm作为源数据格式适用范围更大。

#coding=utf-8
from xml.dom import minidom
import sys
import os

class MM2Html:

'转换MM->Html类'

def init(self):

self.html = '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

'''

self.level = 0

self.pos = [0 for x in range(0, 10)]

def procRoot(self, root):

'处理root节点'

for i in root.childNodes:

if i.nodeName == 'node':

self.procNode(i)

self.html += "

"

def procNode(self, node):

'处理Node节点'

if node.nodeName == 'node':

self.level += 1

Tltle处理

if self.isHead(node):

self.pos[self.level - 1] += 1

self.html += self.getHead(node.getAttribute("TEXT"))

for i in node.childNodes:

MM2Html.procNode(self, i)

文本节点处理

else:

self.html += '

%s
' %(str(20 * self.level) + 'px',node.getAttribute("TEXT"))

self.pos[self.level: 10] = [0 for x in range(0, 10)]

self.level -= 1

def procNodex(self, node):

deepth = self.position

def isHead(self, node):

'判断是否是标题'

for i in node.parentNode.childNodes:

for j in i.childNodes:

if j.nodeName == 'node':

return True

return False

def getHead(self, text):

'获取标题Html格式化后内容'

titlePrefix = ''

for i in range(0, self.level):

titlePrefix += str(self.pos[i]) + '.'

return "%s %s" %(self.level, titlePrefix, text, self.level)

def getFiles(type):

'获取当前目录下某类型文件'

files = os.listdir(os.getcwd())

fileList = list()

for file in files:

if os.path.splitext(file)[1].lower() == type:

fileList.append(file)

return fileList

if name == 'main':

cssFileName = 'style.css'

xmlFileNames = getFiles('.mm')

try:

cssStr = open(cssFileName, 'r').read()

except:

cssStr = ''

for xmlFileName in xmlFileNames:

try:

xmlFile = open(xmlFileName, "r")

xmlDoc = minidom.parse(xmlFile)

except:

print "Unexpected error:", sys.exc_info()[0]

root = xmlDoc.getElementsByTagName('node')[0]

html = open(xmlFileName.split('.')[0] + '.html', 'w')

mm2Html = MM2Html()

mm2Html.procRoot(root)

html.write(mm2Html.html.encode('utf-8'))

html.close()

脚本zip档点击这里下载,里面的CSS格式我用的我博客主题的reset.css,可以自行修改。

传送门:点击这里下载Boo2Html.zip

oh, SB了,还没说怎么用:把zip档里面的两个文件放到有mm的文件夹里面,双击运行即可(需要Python环境)。


原文链接: https://blog.alswl.com/2010/09/script-mm2html/
3a1ff193cee606bd1e2ea554a16353ee
欢迎关注我的微信公众号:窥豹

Comments

comments powered by Disqus