web-dev-qa-db-ja.com

マークダウンセルにカスタムスタイルの段落を追加する

IPython NotebookMarkdown synthax で提供されるよりも多くのフォーマット要素を追加したい。

たとえば、基本的に異なるスタイル(たとえば、異なる背景色、境界線、アイコンなど)を持つ段落である「警告ボックス」または「メモボックス」を追加したいと思います。

セルにHTMLコードを追加できると思います。たとえば、<div>インラインスタイル。しかし、それを行う「適切な」方法は何ですか、つまり、ipython開発者が推進する方法を意味しますか?

例は高く評価されています。

NB:私はgit masterの現在の1.0devバージョンを使用しています。

23
user2304916

警告、メモ、成功(etc ...)ボックス(警告またはアラートボックスとも呼ばれます)を追加する簡単な方法は、ノートブックに既に含まれている bootstrap classes を使用するだけです。唯一の注意点は、リンクや他のスタイル(太字など)をHTMLでボックス内に指定する必要があることです。

このコードを含むマークダウンセル:

# Upload data files
<p class="lead">This <a href="https://jupyter.org/">Jupyter notebook</a>
shows how to upload data files to be converted
to [Photon-HDF5](http://photon-hdf5.org) format. </p>

<i>Please send feedback and report any problems to the 
[Photon-HDF5 google group](https://groups.google.com/forum/#!forum/photon-hdf5).</i>

<br>
<div class="alert alert-warning">
<b>NOTE</b> Uploading data files is only necessary when running the notebook online.
</div>

この出力になります:

enter image description here

あなたは変えられる alert-warningalert-successalert-infoまたはalert-dangerボックスの色を変更します。

16
user2304916

私自身の質問に答えています...

その他の解決策

ジムは、各ノートブックのマークダウンセルにカスタムCSSスタイルを追加することを提案しました。このソリューションは機能しますが、eachノートブックにスタイルを埋め込む必要があるため、便利ではありません。私の場合、グローバルスタイルが必要で、スタイルを変更するたびにすべてのノートブックを変更したくありません。

自然な解決策は、カスタムファイル(custom.css)スタイルを含みます。ただし、試行後 これらの手順 スタイルはノートブックに適用されません(ただし、サーバーからダウンロードできます)。

最善の解決策(これまでのところ)

IPythonノートブックのコレクションとして書かれた この印象的な本 を見ている解決策を見つけました。著者は、各ノートブックの最後に次のコードセルを追加します。

from IPython.core.display import HTML
def css_styling():
    styles = open("./styles/custom.css", "r").read()
    return HTML(styles)
css_styling()

ファイルを置くcustom.cssノートブックフォルダー(stylesサブフォルダー内)では、スタイルは最初のセルの実行後に読み込まれます。さらに、セルを再度実行する必要なしに、ノートブックを開くたびにスタイルが魔法のように読み込まれます

この魔法のトリックは、スタイルを最初に実行したときに出力セルに保存され、非表示ではありますが、他の出力と同様に保存されるため機能します。したがって、ノートブックを読み込み、結果として出力セルを読み込むと、スタイルが適用されます。

CSSの例

回答を完成させるために、「警告ボックス」の作成に使用したCSSスタイルを投稿します。

<style>
div.warn {    
    background-color: #fcf2f2;
    border-color: #dFb5b4;
    border-left: 5px solid #dfb5b4;
    padding: 0.5em;
    }
 </style>

このスタイルを保存し、前に示したコードセルを使用してロードします。ここで、ノートブックに警告ボックスを挿入するには、次の構文を使用します。

<div class=warn>
**Warning:** remember to do bookeping  
</div>

それは次のようにレンダリングされます:

enter image description here

より一般的なノートブックのスタイリングについては、 custom.css 上記の本の。

30
user2304916

更新:この手法はIPython 4.0/Jupyterでは機能しなくなりましたノートブックのレンダリング方法が変更されました。

そのようなスタイルを設定するための最良の方法は、ドキュメントの上部にマークダウンエントリを作成し、そこにスタイルを収集することだと思います。マークダウンセルには任意の有効なHTMLコードを含めることができるため、(たとえば)

<style>
    .warning { color: red; }
</style>

この使用例については、Q&A中に Matt DavisのPyCon 2013講演 を参照してください。

7
Jim Garrison

別の方法は、単にスタイルチェーンを作成し、それをコードセル内のiPython HTMLオブジェクトで開くことです。

from IPython.display import HTML
style = "<style>div.warn { background-color: #fcf2f2;border-color: #dFb5b4; border-left: 5px solid #dfb5b4; padding: 0.5em;}</style>"
HTML(style)

次に、それをマークダウンセルで使用します。

<div class="warn">Warning!</div>
4
Claude COULOMBE

これらのカスタムcssスタイルは、ipythonバージョン2以降ですでに追加されています。

<div class="alert">
As of IPython 2.0, the user interface has changed significantly
</div>

<div class="alert alert-success">
Enter edit mode by pressing `Enter`
</div>

<div class="alert alert-error">
Don't try to type into a cell in command mode
</div>

これをセルに貼り付けて、マークダウンタイプに変更するだけです。

例については this を、ipythonの最先端の機能については ipython in depth を確認してください。

4
Levon