6

ipython notebookipython がインストールされていない同僚と共有したいことがあります。

だから私はそれをhtmlに変換しました:

ipython nbconvert my_notebook.ipynb

しかし、私の問題は、出力が非常に長くて読みにくいことです.htmlバージョンでノートブックビューアの折りたたみまたはスクロールオプションを使用できるかどうかを知りたいです.

基本的に、私はこれが欲しいです:出力例 ここに画像の説明を入力

ただし、html バージョンでは。これは可能ですか?

助けてくれてありがとう!

4

3 に答える 3

4

私が望んでいたことを正確に行うそのブログのおかげで、私は自分が望んでいたものを見つけました.

ipython 2.1 [編集: Jupyter でも動作する] で動作するように少し変更し、入力と出力の非表示のトリックを組み合わせました。

機能:

html ファイルを開くと、すべての入力が表示され、出力は非表示になります。入力フィールドをクリックすると、出力フィールドが表示されます。両方のフィールドを取得したら、もう一方をクリックして非表示にすることができます。

編集: 長い入力を非表示にし、約 1 行が常に表示されるようになりました (デフォルトで。入力番号をクリックするとすべてを表示できます。これは、出力がない場合に便利です (長い関数の定義のように) HTML ドキュメントで非表示にしたい)

nbconvert の実行中にテンプレートを追加する必要があります。

ipython nbconvert --template toggle my_notebook.ipynb

ここで、toggle は以下を含むファイルです。

{%- extends 'full.tpl' -%}

{% block output_group %}
<div class="output_hidden">
{{ super() }}
</div>
{% endblock output_group %}

{% block input_group -%}
<div class="input_hidden">
{{ super() }}
</div>
{% endblock input_group %}

{%- block input -%}
<div class="in_container">
<div class="in_hidden">
{{ super() }}
<div class="gradient">
</div>
</div>
</div>
{%- endblock input -%}


{%- block header -%}
{{ super() }}

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<style type="text/css">
div.output_wrapper {
  margin-top: 0px;
}
.output_hidden {
  display: block;
  margin-top: 5px;
}
.in_hidden {
   width: 100%;
   overflow: hidden;
   position: relative;
}

.in_container {
    width: 100%;
    margin-left: 20px;
    margin-right: 20px;
}

.gradient {
    width:100%;
    height:3px;  
    background:#eeeeee;
    position:absolute;
    bottom:0px;
    left:0;
    display: none;
    opacity: 0.4;
    border-bottom: 2px dashed #000;
}
div.input_prompt {
    color: #178CE3;
    font-weight: bold;
}
div.output_prompt {
    color: rgba(249, 33, 33, 1);
    font-weight: bold;
}
</style>

<script>
$(document).ready(function(){
  $(".output_hidden").click(function(){
      $(this).prev('.input_hidden').slideToggle();
  });
  $(".input_hidden").click(function(){
      $(this).next('.output_hidden').slideToggle();
  });
var slideHeight = 25;
$(".in_container").each(function () {
    var $this = $(this);
    var $in_hidden = $this.children(".in_hidden");
    var defHeight = $in_hidden.height();
    if (defHeight >= 61) {
        var $prompt = $this.prev(".input_prompt");
        var $gradient = $in_hidden.children(".gradient");
        $in_hidden.css("height", slideHeight + "px");
        $gradient.css("display", "block");
        $prompt.click(function () {
            var curHeight = $in_hidden.height();
            if (curHeight == slideHeight) {
                $in_hidden.animate({
                    height: defHeight
                }, "normal");
                $gradient.fadeOut();
            } 
            else {
                $in_hidden.animate({
                    height: slideHeight
                }, "normal");
                $gradient.fadeIn();
            }
            return false;
        });
    }
});
});

</script>
{%- endblock header -%}

基本的に、ノートブックを自由にカスタマイズしたい JavaScript と CSS を自由に挿入できます。

楽しむ !

于 2014-06-05T18:28:01.943 に答える
0

Ipython 2.0 には、ノートブック内に直接 HTML に保存する機能が含まれるようになりました。

スクロール バーは、古いバージョンでは 100 行を超える行で自動的に作成されました。Docsそれでも表示される場合は、html 出力にもバーが表示されるはずですよね?

于 2014-06-05T17:20:44.387 に答える