18

ノートブック内にHTMLやその他のリッチコンテンツを組み込むためのIPythonのMarkdownセルが好きです。コマンド出力を出力セルで同様にフォーマットできるかどうか知りたいのですが。

HTMLを出力する私の関数の1つは次のとおりです。

    print_html():
      print """
      <h2>Matplotlib's chart gallery (Click a chart to see the code to create it)</h2><br>
      <div align="center"> <iframe title="Matplotlib Gallery" width="950"
      height="250" src="http://matplotlib.org/gallery.html#api" frameborder="0"
      allowfullscreen></iframe></div>
    """

上記のHTMLコードをマークダウン(入力)セルに配置すると、Matplotlibライブラリへの適切なリンクが生成されます。ただし、出力セルではプレーンテキストです。リッチコンテンツにする方法はありますか?

4

3 に答える 3

20

ここで解決策を見つけました:http://mail.scipy.org/pipermail/ipython-user/2012-April/009838.html

参照のためにここで解決策を引用します:

ブライアン・グレンジャー:

"関数に、HTMLオブジェクトにラップされた生のHTMLを返すようにします。

from IPython.core.display import HTML
...
...
def foo():
    raw_html = "<h1>Yah, rendered HTML</h1>"
    return HTML(raw_html)

「」

今foo()を呼び出すと、私が望むようにリッチフォーマットされたhtmlが得られます。

于 2012-12-07T20:43:59.007 に答える
7

どういうわけかより高度なソリューションが最近ブログ投稿で公開されました:

http://guido.vonrudorff.de/ipython-notebook-code-output-as-markdown/

新しいIPythonマジックを作成して登録します%%asmarkdown。このコマンドを前に付ける各コードセルの出力は、純粋なマークダウンセルのようにレンダリングされます。元の質問の内容を使用すると、次のように動作します。

%%asmarkdown
print """
<h2>Matplotlib's chart gallery (Click a chart to see the code to create it)</h2><br>
<div align="center"> <iframe title="Matplotlib Gallery" width="950"
height="250" src="http://matplotlib.org/gallery.html#api" frameborder="0"
allowfullscreen></iframe></div>
"""
于 2015-10-24T02:07:46.317 に答える
4

コード例にいくつかの機能を追加するだけです

htmlContent = ''

def header(text):
    raw_html = '<h1>' + str(text) + '</h1>'
    return raw_html

def box(text):
    raw_html = '<div style="border:1px dotted black;padding:2em;">'+str(text)+'</div>'
    return raw_html

def addContent(raw_html):
    global htmlContent
    htmlContent += raw_html


# Example
addContent( header("This is a header") )
addContent( box("This is some text in a box") )

from IPython.core.display import HTML
HTML(htmlContent)

あなたにこれを与えます:

出力

于 2013-07-26T06:56:34.653 に答える