显示evernote笔记的全部内容(使用应用的样式,颜色,图片,而不仅仅是文本)
我想从展示程式化文本和图像开始:
图像/ GIF
图像/ JPEG
图像/ PNG
之后我计划渲染另一种MIME类型:
应用/ PDF
音频/ WAV
音频/ MPEG
我想用Python Django获得类似于这个项目的东西,用Node Js Express编写:
https://dngevernoteapp.mybluemix.net/?cm_mc_uid=86365386312514542865707&cm_mc_sid_undefined=1455035755
或
https://sandbox.evernote.com/
我的尝试:
1) views.py:
from fenml import ENMLToHTML
# the fenml.py is my internal fork of the
# https://github.com/CarlLee/ENML_PY/blob/master/__init__.py
# with slightly modified code.
from bs4 import BeautifulSoup
import html2text
....
title_contents[note.title] = html2text.html2text(BeautifulSoup(ENMLToHTML(content)).prettify())
callback.html:
<ul>
{% for title, content in title_contents.items %}
<li><b>{{ title }}</b><br>{{ content }}</li>
{% endfor %}
</ul>
输出:
2) views.py:
title_contents = {}
for note in result_list.notes:
content = note_store.getNoteContent(auth_token,
note_store.getNote(note.guid,
True,False, False, False).guid)
title_contents[ note.title ] = BeautifulSoup(ENMLToHTML(content)).prettify()
return render_to_response('oauth/callback.html', {'notebooks': notebooks,
'result_list': result_list,
'title_contents': title_contents})
输出:
•
('\xef\xbb\xbfDive Into Python (Mark Pilgrim)', u'<html>\n <body>\n otherwise it will return None.\n <br/>\n <br/>\n <span style="color:grey;">\n - Highlight Loc. 481-82 | Added on Tuesday, 4 December 12 06:42:31 GMT+00:59\n </span>\n </body>\n</html>')
答案 0 :(得分:1)
听起来你将不得不修改ENML到HTML转换器来处理你关心的mime类型的附件。例如,对于图像,用img src =“whateverTheSourceShouldBe.jpg”替换en-media。其他mime类型将更复杂 - 例如对于pdf,您可以使用pdf.js来呈现pdf,但这意味着您将在初始渲染之后必须附加到元素。即,使用唯一标识符(例如div id =“foo-pdf-somethingelse”)将其吐出到DOM,然后通过pdf.js附加到它。