32

IPython NotebookのMarkdown シンタックスで提供されるよりも多くの書式要素を追加したいと考えています。

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

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

例を高く評価しました。

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

4

5 に答える 5

38

私自身の質問に答える...

その他のソリューション

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

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>

これは次のようにレンダリングされます。

ここに画像の説明を入力

より一般的なノートブックのスタイリングについてcustom.css は、上記の本からインスピレーションを得ることができます。

于 2013-08-13T01:19:59.263 に答える
7

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

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

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

この使用例については、Q&A の約 22 分間の Matt Davis の PyCon 2013 talkを参照してください。

于 2013-08-03T00:27:46.643 に答える
4

これらのカスタム 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>

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

例についてはこれを確認し、 ipythonの最先端の機能については ipython の詳細を確認してください。

于 2015-01-30T11:52:42.840 に答える