官术网_书友最值得收藏!

Customizing the CSS style in the notebook

In this recipe, we show how to customize the CSS in the notebook interface and in an exported HTML notebook.

Getting ready

You are expected to know a bit of CSS3 for this recipe. You can find many tutorials online (see the references at the end of this recipe).

You also need to download the Notebook dataset from the book's website (http://ipython-books.github.io), and extract it in the current directory.

How to do it...

  1. First, we create a new IPython profile to avoid cluttering our default profile as follows:
    In [1]: !ipython profile create custom_css
  2. In Python, we retrieve the path to this profile (~/.ipython) and to the custom.css file (empty by default).
    In [2]: dir = !ipython locate profile custom_css
            dir = dir[0]
    In [3]: import os
            csspath = os.path.realpath(os.path.join(
                        dir, 'static/custom/custom.css'))
    In [4]: csspath
    Out[4]: '~\.ipython\profile_custom_css\static\
                                           custom\custom.css'
  3. We can now edit this file here. We change the background color, the font size of code cells, the border of some cells, and we highlight the selected cells in edit mode.
    In [5]: %%writefile {csspath}
            
            body {
                /* Background color for the whole notebook. */
                background-color: #f0f0f0;
            }
            
            /* Level 1 headers. */
            h1 {
                text-align: right;
                color: red;
            }
            
            /* Code cells. */
            div.input_area > div.highlight > pre {
                font-size: 10px;
            }
            
            /* Output images. */
            div.output_area img {
                border: 3px #ababab solid;
                border-radius: 8px;
            }
            
            /* Selected cells. */
            div.cell.selected {
                border: 3px #ababab solid;
                background-color: #ddd;
            }
            
            /* Code cells in edit mode. */
            div.cell.edit_mode {
                border: 3px red solid;
                background-color: #faa;
            }
    Overwriting C:\Users\Cyrille\.ipython\profile_custom_css\static\custom\custom.css

    Opening a notebook with the custom_css profile (with the ipython notebook --profile=custom_css command) leads to a custom style as follows:

    Custom CSS in the interactive notebook interface

  4. We can also use this style sheet with nbconvert. We just have to convert a notebook to a static HTML document, and copy the custom.css file in the current directory. Here, we use a test notebook that has been downloaded from the book's website (see Getting ready):
    In [6]: !cp {csspath} custom.css
            !ipython nbconvert --to html data/test.ipynb
    [NbConvertApp] Writing 187617 bytes to test.html
  5. Here is what this HTML document looks like:
    In [7]: from IPython.display import IFrame
            IFrame('test.html', 600, 650)

There's more...

Here are a few tutorials and references about CSS:

See also

  • The Adding custom controls in the notebook toolbar recipe
主站蜘蛛池模板: 仲巴县| 酒泉市| 淄博市| 临江市| 农安县| 西丰县| 大竹县| 浮山县| 筠连县| 陇西县| 南乐县| 社会| 聊城市| 通海县| 黑山县| 镇平县| 高台县| 定兴县| 湘潭县| 油尖旺区| 富锦市| 乐平市| 庄河市| 西峡县| 沙洋县| 香格里拉县| 日照市| 利川市| 吉安市| 屏边| 沙雅县| 昆明市| 桃园县| 安仁县| 本溪市| 康乐县| 吴堡县| 五指山市| 莱阳市| 固原市| 濉溪县|