显示evernote笔记的全部内容(应用样式,颜色,图片,不仅仅是文字)

时间:2016-02-09 17:27:20

标签: python django evernote

显示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/

enter image description here

我的尝试:

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>

输出:

  • 潜入Python(Mark Pilgrim)
    否则它将返回None。 - 突出显示Loc。 481-82 |添加于12月4日星期二06:42:31 GMT + 00:59

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>')

1 个答案:

答案 0 :(得分:1)

听起来你将不得不修改ENML到HTML转换器来处理你关心的mime类型的附件。例如,对于图像,用img src =“whateverTheSourceShouldBe.jpg”替换en-media。其他mime类型将更复杂 - 例如对于pdf,您可以使用pdf.js来呈现pdf,但这意味着您将在初始渲染之后必须附加到元素。即,使用唯一标识符(例如div id =“foo-pdf-somethingelse”)将其吐出到DOM,然后通过pdf.js附加到它。