├── .gitignore ├── .gitmodules ├── Makefile ├── README.md ├── content ├── first-post.ipynb └── first-post.ipynb-meta ├── develop_server.sh ├── fabfile.py ├── output ├── archives.html ├── author │ └── me.html ├── authors.html ├── categories.html ├── category │ └── posts.html ├── feeds │ ├── all.atom.xml │ └── posts.atom.xml ├── first-post.html ├── index.html ├── tag │ └── python.html ├── tags.html └── theme │ ├── css │ ├── main.css │ ├── pygment.css │ ├── reset.css │ ├── typogrify.css │ └── wide.css │ └── images │ └── icons │ ├── aboutme.png │ ├── bitbucket.png │ ├── delicious.png │ ├── facebook.png │ ├── github.png │ ├── gitorious.png │ ├── gittip.png │ ├── google-groups.png │ ├── google-plus.png │ ├── hackernews.png │ ├── lastfm.png │ ├── linkedin.png │ ├── reddit.png │ ├── rss.png │ ├── slideshare.png │ ├── speakerdeck.png │ ├── stackoverflow.png │ ├── twitter.png │ ├── vimeo.png │ └── youtube.png ├── pelicanconf.py ├── publishconf.py └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask stuff: 57 | instance/ 58 | .webassets-cache 59 | 60 | # Scrapy stuff: 61 | .scrapy 62 | 63 | # Sphinx documentation 64 | docs/_build/ 65 | 66 | # PyBuilder 67 | target/ 68 | 69 | # IPython Notebook 70 | .ipynb_checkpoints 71 | 72 | # pyenv 73 | .python-version 74 | 75 | # celery beat schedule file 76 | celerybeat-schedule 77 | 78 | # dotenv 79 | .env 80 | 81 | # virtualenv 82 | venv/ 83 | ENV/ 84 | 85 | # Spyder project settings 86 | .spyderproject 87 | 88 | # Rope project settings 89 | .ropeproject 90 | 91 | .idea -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "plugins/ipynb"] 2 | path = plugins/ipynb 3 | url = git://github.com/danielfrg/pelican-ipynb.git 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | PY?=python3 2 | PELICAN?=pelican 3 | PELICANOPTS= 4 | 5 | BASEDIR=$(CURDIR) 6 | INPUTDIR=$(BASEDIR)/content 7 | OUTPUTDIR=$(BASEDIR)/output 8 | CONFFILE=$(BASEDIR)/pelicanconf.py 9 | PUBLISHCONF=$(BASEDIR)/publishconf.py 10 | 11 | FTP_HOST=localhost 12 | FTP_USER=anonymous 13 | FTP_TARGET_DIR=/ 14 | 15 | SSH_HOST=localhost 16 | SSH_PORT=22 17 | SSH_USER=root 18 | SSH_TARGET_DIR=/var/www 19 | 20 | S3_BUCKET=my_s3_bucket 21 | 22 | CLOUDFILES_USERNAME=my_rackspace_username 23 | CLOUDFILES_API_KEY=my_rackspace_api_key 24 | CLOUDFILES_CONTAINER=my_cloudfiles_container 25 | 26 | DROPBOX_DIR=~/Dropbox/Public/ 27 | 28 | GITHUB_PAGES_BRANCH=gh-pages 29 | 30 | DEBUG ?= 0 31 | ifeq ($(DEBUG), 1) 32 | PELICANOPTS += -D 33 | endif 34 | 35 | RELATIVE ?= 0 36 | ifeq ($(RELATIVE), 1) 37 | PELICANOPTS += --relative-urls 38 | endif 39 | 40 | help: 41 | @echo 'Makefile for a pelican Web site ' 42 | @echo ' ' 43 | @echo 'Usage: ' 44 | @echo ' make html (re)generate the web site ' 45 | @echo ' make clean remove the generated files ' 46 | @echo ' make regenerate regenerate files upon modification ' 47 | @echo ' make publish generate using production settings ' 48 | @echo ' make serve [PORT=8000] serve site at http://localhost:8000' 49 | @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' 50 | @echo ' make devserver [PORT=8000] start/restart develop_server.sh ' 51 | @echo ' make stopserver stop local server ' 52 | @echo ' make ssh_upload upload the web site via SSH ' 53 | @echo ' make rsync_upload upload the web site via rsync+ssh ' 54 | @echo ' make dropbox_upload upload the web site via Dropbox ' 55 | @echo ' make ftp_upload upload the web site via FTP ' 56 | @echo ' make s3_upload upload the web site via S3 ' 57 | @echo ' make cf_upload upload the web site via Cloud Files' 58 | @echo ' make github upload the web site via gh-pages ' 59 | @echo ' ' 60 | @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' 61 | @echo 'Set the RELATIVE variable to 1 to enable relative urls ' 62 | @echo ' ' 63 | 64 | html: 65 | $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) 66 | 67 | clean: 68 | [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) 69 | 70 | regenerate: 71 | $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) 72 | 73 | serve: 74 | ifdef PORT 75 | cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT) 76 | else 77 | cd $(OUTPUTDIR) && $(PY) -m pelican.server 78 | endif 79 | 80 | serve-global: 81 | ifdef SERVER 82 | cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER) 83 | else 84 | cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0 85 | endif 86 | 87 | 88 | devserver: 89 | ifdef PORT 90 | $(BASEDIR)/develop_server.sh restart $(PORT) 91 | else 92 | $(BASEDIR)/develop_server.sh restart 93 | endif 94 | 95 | stopserver: 96 | $(BASEDIR)/develop_server.sh stop 97 | @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.' 98 | 99 | publish: 100 | $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) 101 | 102 | ssh_upload: publish 103 | scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) 104 | 105 | rsync_upload: publish 106 | rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude 107 | 108 | dropbox_upload: publish 109 | cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR) 110 | 111 | ftp_upload: publish 112 | lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit" 113 | 114 | s3_upload: publish 115 | s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type 116 | 117 | cf_upload: publish 118 | cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) . 119 | 120 | github: publish 121 | ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR) 122 | git push origin $(GITHUB_PAGES_BRANCH) 123 | 124 | .PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github 125 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | jupyter-blog 2 | --------------------- 3 | 4 | This is an example repo that shows a minimal configuration that allows you to create a personal blog using Jupyter notebooks. 5 | 6 | See [this](https://www.dataquest.io/blog/how-to-setup-a-data-science-blog/) blog post for more details, and a guide on how to setup and deploy a blog. 7 | 8 | Reproducing this example 9 | --------------------- 10 | 11 | You can reproduce this setup on your own computer by following the steps below: 12 | 13 | * Create a virtualenv. 14 | * Install everything in `requirements.txt`. 15 | * Setup your `.gitignore` file. 16 | * Run `pelican-quickstart`. 17 | * Create a `plugins` folder. 18 | * Run `git init`. 19 | * Run `git submodule add git://github.com/danielfrg/pelican-ipynb.git plugins/ipynb`. 20 | * Create any notebooks you want in the `content` folder. 21 | * Remember to create corresponding `.ipynb-meta` files. 22 | * Edit pelicanconf.py to the lines that activate the `pelican-ipynb` plugin. 23 | * Run `pelican content`. 24 | * Switch to the `output` directory and run `python -m pelican.server`. -------------------------------------------------------------------------------- /content/first-post.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# First post!\n", 8 | "\n", 9 | "This will be the first post in our new Pelican blog! You can add any code or markdown cells to this Jupyter notebook, and they will be rendered on your blog." 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 2, 15 | "metadata": { 16 | "collapsed": false 17 | }, 18 | "outputs": [ 19 | { 20 | "data": { 21 | "text/plain": [ 22 | "4" 23 | ] 24 | }, 25 | "execution_count": 2, 26 | "metadata": {}, 27 | "output_type": "execute_result" 28 | } 29 | ], 30 | "source": [ 31 | "import random\n", 32 | "\n", 33 | "random.randint(0,100)" 34 | ] 35 | }, 36 | { 37 | "cell_type": "code", 38 | "execution_count": 4, 39 | "metadata": { 40 | "collapsed": false 41 | }, 42 | "outputs": [ 43 | { 44 | "data": { 45 | "text/plain": [ 46 | "(array([ 2., 1., 1., 0., 2., 0., 1., 0., 0., 2.]),\n", 47 | " array([ 1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2,\n", 48 | " 9.1, 10. ]),\n", 49 | " )" 50 | ] 51 | }, 52 | "execution_count": 4, 53 | "metadata": {}, 54 | "output_type": "execute_result" 55 | }, 56 | { 57 | "data": { 58 | "image/png": "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\n", 59 | "text/plain": [ 60 | "" 61 | ] 62 | }, 63 | "metadata": {}, 64 | "output_type": "display_data" 65 | } 66 | ], 67 | "source": [ 68 | "import matplotlib.pyplot as plt\n", 69 | "\n", 70 | "%matplotlib inline\n", 71 | "\n", 72 | "plt.hist([10,5,7,10,1,1,2,3,5])" 73 | ] 74 | }, 75 | { 76 | "cell_type": "code", 77 | "execution_count": null, 78 | "metadata": { 79 | "collapsed": true 80 | }, 81 | "outputs": [], 82 | "source": [] 83 | } 84 | ], 85 | "metadata": { 86 | "kernelspec": { 87 | "display_name": "Python 3", 88 | "language": "python", 89 | "name": "python3" 90 | }, 91 | "language_info": { 92 | "codemirror_mode": { 93 | "name": "ipython", 94 | "version": 3 95 | }, 96 | "file_extension": ".py", 97 | "mimetype": "text/x-python", 98 | "name": "python", 99 | "nbconvert_exporter": "python", 100 | "pygments_lexer": "ipython3", 101 | "version": "3.4.2" 102 | } 103 | }, 104 | "nbformat": 4, 105 | "nbformat_minor": 0 106 | } 107 | -------------------------------------------------------------------------------- /content/first-post.ipynb-meta: -------------------------------------------------------------------------------- 1 | Title: First Post 2 | Slug: first-post 3 | Date: 2016-06-08 20:00 4 | Category: posts 5 | Tags: python 6 | Author: me 7 | Summary: My first post, read it to find out. 8 | -------------------------------------------------------------------------------- /develop_server.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ## 3 | # This section should match your Makefile 4 | ## 5 | PY=${PY:-python3} 6 | PELICAN=${PELICAN:-pelican} 7 | PELICANOPTS= 8 | 9 | BASEDIR=$(pwd) 10 | INPUTDIR=$BASEDIR/content 11 | OUTPUTDIR=$BASEDIR/output 12 | CONFFILE=$BASEDIR/pelicanconf.py 13 | 14 | ### 15 | # Don't change stuff below here unless you are sure 16 | ### 17 | 18 | SRV_PID=$BASEDIR/srv.pid 19 | PELICAN_PID=$BASEDIR/pelican.pid 20 | 21 | function usage(){ 22 | echo "usage: $0 (stop) (start) (restart) [port]" 23 | echo "This starts Pelican in debug and reload mode and then launches" 24 | echo "an HTTP server to help site development. It doesn't read" 25 | echo "your Pelican settings, so if you edit any paths in your Makefile" 26 | echo "you will need to edit your settings as well." 27 | exit 3 28 | } 29 | 30 | function alive() { 31 | kill -0 $1 >/dev/null 2>&1 32 | } 33 | 34 | function shut_down(){ 35 | PID=$(cat $SRV_PID) 36 | if [[ $? -eq 0 ]]; then 37 | if alive $PID; then 38 | echo "Stopping HTTP server" 39 | kill $PID 40 | else 41 | echo "Stale PID, deleting" 42 | fi 43 | rm $SRV_PID 44 | else 45 | echo "HTTP server PIDFile not found" 46 | fi 47 | 48 | PID=$(cat $PELICAN_PID) 49 | if [[ $? -eq 0 ]]; then 50 | if alive $PID; then 51 | echo "Killing Pelican" 52 | kill $PID 53 | else 54 | echo "Stale PID, deleting" 55 | fi 56 | rm $PELICAN_PID 57 | else 58 | echo "Pelican PIDFile not found" 59 | fi 60 | } 61 | 62 | function start_up(){ 63 | local port=$1 64 | echo "Starting up Pelican and HTTP server" 65 | shift 66 | $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS & 67 | pelican_pid=$! 68 | echo $pelican_pid > $PELICAN_PID 69 | cd $OUTPUTDIR 70 | $PY -m pelican.server $port & 71 | srv_pid=$! 72 | echo $srv_pid > $SRV_PID 73 | cd $BASEDIR 74 | sleep 1 75 | if ! alive $pelican_pid ; then 76 | echo "Pelican didn't start. Is the Pelican package installed?" 77 | return 1 78 | elif ! alive $srv_pid ; then 79 | echo "The HTTP server didn't start. Is there another service using port" $port "?" 80 | return 1 81 | fi 82 | echo 'Pelican and HTTP server processes now running in background.' 83 | } 84 | 85 | ### 86 | # MAIN 87 | ### 88 | [[ ($# -eq 0) || ($# -gt 2) ]] && usage 89 | port='' 90 | [[ $# -eq 2 ]] && port=$2 91 | 92 | if [[ $1 == "stop" ]]; then 93 | shut_down 94 | elif [[ $1 == "restart" ]]; then 95 | shut_down 96 | start_up $port 97 | elif [[ $1 == "start" ]]; then 98 | if ! start_up $port; then 99 | shut_down 100 | fi 101 | else 102 | usage 103 | fi 104 | -------------------------------------------------------------------------------- /fabfile.py: -------------------------------------------------------------------------------- 1 | from fabric.api import * 2 | import fabric.contrib.project as project 3 | import os 4 | import shutil 5 | import sys 6 | import SocketServer 7 | 8 | from pelican.server import ComplexHTTPRequestHandler 9 | 10 | # Local path configuration (can be absolute or relative to fabfile) 11 | env.deploy_path = 'output' 12 | DEPLOY_PATH = env.deploy_path 13 | 14 | # Remote server configuration 15 | production = 'root@localhost:22' 16 | dest_path = '/var/www' 17 | 18 | # Rackspace Cloud Files configuration settings 19 | env.cloudfiles_username = 'my_rackspace_username' 20 | env.cloudfiles_api_key = 'my_rackspace_api_key' 21 | env.cloudfiles_container = 'my_cloudfiles_container' 22 | 23 | # Github Pages configuration 24 | env.github_pages_branch = "gh-pages" 25 | 26 | # Port for `serve` 27 | PORT = 8000 28 | 29 | def clean(): 30 | """Remove generated files""" 31 | if os.path.isdir(DEPLOY_PATH): 32 | shutil.rmtree(DEPLOY_PATH) 33 | os.makedirs(DEPLOY_PATH) 34 | 35 | def build(): 36 | """Build local version of site""" 37 | local('pelican -s pelicanconf.py') 38 | 39 | def rebuild(): 40 | """`clean` then `build`""" 41 | clean() 42 | build() 43 | 44 | def regenerate(): 45 | """Automatically regenerate site upon file modification""" 46 | local('pelican -r -s pelicanconf.py') 47 | 48 | def serve(): 49 | """Serve site at http://localhost:8000/""" 50 | os.chdir(env.deploy_path) 51 | 52 | class AddressReuseTCPServer(SocketServer.TCPServer): 53 | allow_reuse_address = True 54 | 55 | server = AddressReuseTCPServer(('', PORT), ComplexHTTPRequestHandler) 56 | 57 | sys.stderr.write('Serving on port {0} ...\n'.format(PORT)) 58 | server.serve_forever() 59 | 60 | def reserve(): 61 | """`build`, then `serve`""" 62 | build() 63 | serve() 64 | 65 | def preview(): 66 | """Build production version of site""" 67 | local('pelican -s publishconf.py') 68 | 69 | def cf_upload(): 70 | """Publish to Rackspace Cloud Files""" 71 | rebuild() 72 | with lcd(DEPLOY_PATH): 73 | local('swift -v -A https://auth.api.rackspacecloud.com/v1.0 ' 74 | '-U {cloudfiles_username} ' 75 | '-K {cloudfiles_api_key} ' 76 | 'upload -c {cloudfiles_container} .'.format(**env)) 77 | 78 | @hosts(production) 79 | def publish(): 80 | """Publish to production via rsync""" 81 | local('pelican -s publishconf.py') 82 | project.rsync_project( 83 | remote_dir=dest_path, 84 | exclude=".DS_Store", 85 | local_dir=DEPLOY_PATH.rstrip('/') + '/', 86 | delete=True, 87 | extra_opts='-c', 88 | ) 89 | 90 | def gh_pages(): 91 | """Publish to GitHub Pages""" 92 | rebuild() 93 | local("ghp-import -b {github_pages_branch} {deploy_path}".format(**env)) 94 | local("git push origin {github_pages_branch}".format(**env)) 95 | -------------------------------------------------------------------------------- /output/archives.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blog 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 |
22 |

Archives for Blog

23 | 24 |
25 |
Wed 08 June 2016
26 |
First Post
27 |
28 |
29 |
30 |
31 |

blogroll

32 | 38 |
39 |
40 |

social

41 | 47 |
48 |
49 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /output/author/me.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blog - me 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 | 22 | 1170 |
1171 |
1172 |

blogroll

1173 |
1179 |
1180 |
1181 |

social

1182 | 1188 |
1189 |
1190 | 1191 | 1198 | 1199 | 1200 | -------------------------------------------------------------------------------- /output/authors.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blog - Authors 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 | 22 |
23 |

Authors on Blog

24 | 27 |
28 | 29 |
30 |
31 |

blogroll

32 | 38 |
39 |
40 |

social

41 | 47 |
48 |
49 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /output/categories.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blog 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 | 24 |
25 |
26 |

blogroll

27 | 33 |
34 |
35 |

social

36 | 42 |
43 |
44 | 45 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /output/feeds/all.atom.xml: -------------------------------------------------------------------------------- 1 | 2 | Blog/2016-06-08T20:00:00-07:00First Post2016-06-08T20:00:00-07:00metag:,2016-06-08:first-post.html<style type="text/css">/*! 3 | * 4 | * IPython notebook 5 | * 6 | */ 7 | /* CSS font colors for translated ANSI colors. */ 8 | .ansibold { 9 | font-weight: bold; 10 | } 11 | /* use dark versions for foreground, to improve visibility */ 12 | .ansiblack { 13 | color: black; 14 | } 15 | .ansired { 16 | color: darkred; 17 | } 18 | .ansigreen { 19 | color: darkgreen; 20 | } 21 | .ansiyellow { 22 | color: #c4a000; 23 | } 24 | .ansiblue { 25 | color: darkblue; 26 | } 27 | .ansipurple { 28 | color: darkviolet; 29 | } 30 | .ansicyan { 31 | color: steelblue; 32 | } 33 | .ansigray { 34 | color: gray; 35 | } 36 | /* and light for background, for the same reason */ 37 | .ansibgblack { 38 | background-color: black; 39 | } 40 | .ansibgred { 41 | background-color: red; 42 | } 43 | .ansibggreen { 44 | background-color: green; 45 | } 46 | .ansibgyellow { 47 | background-color: yellow; 48 | } 49 | .ansibgblue { 50 | background-color: blue; 51 | } 52 | .ansibgpurple { 53 | background-color: magenta; 54 | } 55 | .ansibgcyan { 56 | background-color: cyan; 57 | } 58 | .ansibggray { 59 | background-color: gray; 60 | } 61 | div.cell { 62 | /* Old browsers */ 63 | display: -webkit-box; 64 | -webkit-box-orient: vertical; 65 | -webkit-box-align: stretch; 66 | display: -moz-box; 67 | -moz-box-orient: vertical; 68 | -moz-box-align: stretch; 69 | display: box; 70 | box-orient: vertical; 71 | box-align: stretch; 72 | /* Modern browsers */ 73 | display: flex; 74 | flex-direction: column; 75 | align-items: stretch; 76 | border-radius: 2px; 77 | box-sizing: border-box; 78 | -moz-box-sizing: border-box; 79 | -webkit-box-sizing: border-box; 80 | border-width: 1px; 81 | border-style: solid; 82 | border-color: transparent; 83 | width: 100%; 84 | padding: 5px; 85 | /* This acts as a spacer between cells, that is outside the border */ 86 | margin: 0px; 87 | outline: none; 88 | border-left-width: 1px; 89 | padding-left: 5px; 90 | background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%); 91 | } 92 | div.cell.jupyter-soft-selected { 93 | border-left-color: #90CAF9; 94 | border-left-color: #E3F2FD; 95 | border-left-width: 1px; 96 | padding-left: 5px; 97 | border-right-color: #E3F2FD; 98 | border-right-width: 1px; 99 | background: #E3F2FD; 100 | } 101 | @media print { 102 | div.cell.jupyter-soft-selected { 103 | border-color: transparent; 104 | } 105 | } 106 | div.cell.selected { 107 | border-color: #ababab; 108 | border-left-width: 0px; 109 | padding-left: 6px; 110 | background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%); 111 | } 112 | @media print { 113 | div.cell.selected { 114 | border-color: transparent; 115 | } 116 | } 117 | div.cell.selected.jupyter-soft-selected { 118 | border-left-width: 0; 119 | padding-left: 6px; 120 | background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%); 121 | } 122 | .edit_mode div.cell.selected { 123 | border-color: #66BB6A; 124 | border-left-width: 0px; 125 | padding-left: 6px; 126 | background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%); 127 | } 128 | @media print { 129 | .edit_mode div.cell.selected { 130 | border-color: transparent; 131 | } 132 | } 133 | .prompt { 134 | /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */ 135 | min-width: 14ex; 136 | /* This padding is tuned to match the padding on the CodeMirror editor. */ 137 | padding: 0.4em; 138 | margin: 0px; 139 | font-family: monospace; 140 | text-align: right; 141 | /* This has to match that of the the CodeMirror class line-height below */ 142 | line-height: 1.21429em; 143 | /* Don't highlight prompt number selection */ 144 | -webkit-touch-callout: none; 145 | -webkit-user-select: none; 146 | -khtml-user-select: none; 147 | -moz-user-select: none; 148 | -ms-user-select: none; 149 | user-select: none; 150 | /* Use default cursor */ 151 | cursor: default; 152 | } 153 | @media (max-width: 540px) { 154 | .prompt { 155 | text-align: left; 156 | } 157 | } 158 | div.inner_cell { 159 | /* Old browsers */ 160 | display: -webkit-box; 161 | -webkit-box-orient: vertical; 162 | -webkit-box-align: stretch; 163 | display: -moz-box; 164 | -moz-box-orient: vertical; 165 | -moz-box-align: stretch; 166 | display: box; 167 | box-orient: vertical; 168 | box-align: stretch; 169 | /* Modern browsers */ 170 | display: flex; 171 | flex-direction: column; 172 | align-items: stretch; 173 | /* Old browsers */ 174 | -webkit-box-flex: 1; 175 | -moz-box-flex: 1; 176 | box-flex: 1; 177 | /* Modern browsers */ 178 | flex: 1; 179 | } 180 | @-moz-document url-prefix() { 181 | div.inner_cell { 182 | overflow-x: hidden; 183 | } 184 | } 185 | /* input_area and input_prompt must match in top border and margin for alignment */ 186 | div.input_area { 187 | border: 1px solid #cfcfcf; 188 | border-radius: 2px; 189 | background: #f7f7f7; 190 | line-height: 1.21429em; 191 | } 192 | /* This is needed so that empty prompt areas can collapse to zero height when there 193 | is no content in the output_subarea and the prompt. The main purpose of this is 194 | to make sure that empty JavaScript output_subareas have no height. */ 195 | div.prompt:empty { 196 | padding-top: 0; 197 | padding-bottom: 0; 198 | } 199 | div.unrecognized_cell { 200 | padding: 5px 5px 5px 0px; 201 | /* Old browsers */ 202 | display: -webkit-box; 203 | -webkit-box-orient: horizontal; 204 | -webkit-box-align: stretch; 205 | display: -moz-box; 206 | -moz-box-orient: horizontal; 207 | -moz-box-align: stretch; 208 | display: box; 209 | box-orient: horizontal; 210 | box-align: stretch; 211 | /* Modern browsers */ 212 | display: flex; 213 | flex-direction: row; 214 | align-items: stretch; 215 | } 216 | div.unrecognized_cell .inner_cell { 217 | border-radius: 2px; 218 | padding: 5px; 219 | font-weight: bold; 220 | color: red; 221 | border: 1px solid #cfcfcf; 222 | background: #eaeaea; 223 | } 224 | div.unrecognized_cell .inner_cell a { 225 | color: inherit; 226 | text-decoration: none; 227 | } 228 | div.unrecognized_cell .inner_cell a:hover { 229 | color: inherit; 230 | text-decoration: none; 231 | } 232 | @media (max-width: 540px) { 233 | div.unrecognized_cell > div.prompt { 234 | display: none; 235 | } 236 | } 237 | div.code_cell { 238 | /* avoid page breaking on code cells when printing */ 239 | } 240 | @media print { 241 | div.code_cell { 242 | page-break-inside: avoid; 243 | } 244 | } 245 | /* any special styling for code cells that are currently running goes here */ 246 | div.input { 247 | page-break-inside: avoid; 248 | /* Old browsers */ 249 | display: -webkit-box; 250 | -webkit-box-orient: horizontal; 251 | -webkit-box-align: stretch; 252 | display: -moz-box; 253 | -moz-box-orient: horizontal; 254 | -moz-box-align: stretch; 255 | display: box; 256 | box-orient: horizontal; 257 | box-align: stretch; 258 | /* Modern browsers */ 259 | display: flex; 260 | flex-direction: row; 261 | align-items: stretch; 262 | } 263 | @media (max-width: 540px) { 264 | div.input { 265 | /* Old browsers */ 266 | display: -webkit-box; 267 | -webkit-box-orient: vertical; 268 | -webkit-box-align: stretch; 269 | display: -moz-box; 270 | -moz-box-orient: vertical; 271 | -moz-box-align: stretch; 272 | display: box; 273 | box-orient: vertical; 274 | box-align: stretch; 275 | /* Modern browsers */ 276 | display: flex; 277 | flex-direction: column; 278 | align-items: stretch; 279 | } 280 | } 281 | /* input_area and input_prompt must match in top border and margin for alignment */ 282 | div.input_prompt { 283 | color: #303F9F; 284 | border-top: 1px solid transparent; 285 | } 286 | div.input_area > div.highlight { 287 | margin: 0.4em; 288 | border: none; 289 | padding: 0px; 290 | background-color: transparent; 291 | } 292 | div.input_area > div.highlight > pre { 293 | margin: 0px; 294 | border: none; 295 | padding: 0px; 296 | background-color: transparent; 297 | } 298 | /* The following gets added to the <head> if it is detected that the user has a 299 | * monospace font with inconsistent normal/bold/italic height. See 300 | * notebookmain.js. Such fonts will have keywords vertically offset with 301 | * respect to the rest of the text. The user should select a better font. 302 | * See: https://github.com/ipython/ipython/issues/1503 303 | * 304 | * .CodeMirror span { 305 | * vertical-align: bottom; 306 | * } 307 | */ 308 | .CodeMirror { 309 | line-height: 1.21429em; 310 | /* Changed from 1em to our global default */ 311 | font-size: 14px; 312 | height: auto; 313 | /* Changed to auto to autogrow */ 314 | background: none; 315 | /* Changed from white to allow our bg to show through */ 316 | } 317 | .CodeMirror-scroll { 318 | /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/ 319 | /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/ 320 | overflow-y: hidden; 321 | overflow-x: auto; 322 | } 323 | .CodeMirror-lines { 324 | /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */ 325 | /* we have set a different line-height and want this to scale with that. */ 326 | padding: 0.4em; 327 | } 328 | .CodeMirror-linenumber { 329 | padding: 0 8px 0 4px; 330 | } 331 | .CodeMirror-gutters { 332 | border-bottom-left-radius: 2px; 333 | border-top-left-radius: 2px; 334 | } 335 | .CodeMirror pre { 336 | /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */ 337 | /* .CodeMirror-lines */ 338 | padding: 0; 339 | border: 0; 340 | border-radius: 0; 341 | } 342 | /* 343 | 344 | Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> 345 | Adapted from GitHub theme 346 | 347 | */ 348 | .highlight-base { 349 | color: #000; 350 | } 351 | .highlight-variable { 352 | color: #000; 353 | } 354 | .highlight-variable-2 { 355 | color: #1a1a1a; 356 | } 357 | .highlight-variable-3 { 358 | color: #333333; 359 | } 360 | .highlight-string { 361 | color: #BA2121; 362 | } 363 | .highlight-comment { 364 | color: #408080; 365 | font-style: italic; 366 | } 367 | .highlight-number { 368 | color: #080; 369 | } 370 | .highlight-atom { 371 | color: #88F; 372 | } 373 | .highlight-keyword { 374 | color: #008000; 375 | font-weight: bold; 376 | } 377 | .highlight-builtin { 378 | color: #008000; 379 | } 380 | .highlight-error { 381 | color: #f00; 382 | } 383 | .highlight-operator { 384 | color: #AA22FF; 385 | font-weight: bold; 386 | } 387 | .highlight-meta { 388 | color: #AA22FF; 389 | } 390 | /* previously not defined, copying from default codemirror */ 391 | .highlight-def { 392 | color: #00f; 393 | } 394 | .highlight-string-2 { 395 | color: #f50; 396 | } 397 | .highlight-qualifier { 398 | color: #555; 399 | } 400 | .highlight-bracket { 401 | color: #997; 402 | } 403 | .highlight-tag { 404 | color: #170; 405 | } 406 | .highlight-attribute { 407 | color: #00c; 408 | } 409 | .highlight-header { 410 | color: blue; 411 | } 412 | .highlight-quote { 413 | color: #090; 414 | } 415 | .highlight-link { 416 | color: #00c; 417 | } 418 | /* apply the same style to codemirror */ 419 | .cm-s-ipython span.cm-keyword { 420 | color: #008000; 421 | font-weight: bold; 422 | } 423 | .cm-s-ipython span.cm-atom { 424 | color: #88F; 425 | } 426 | .cm-s-ipython span.cm-number { 427 | color: #080; 428 | } 429 | .cm-s-ipython span.cm-def { 430 | color: #00f; 431 | } 432 | .cm-s-ipython span.cm-variable { 433 | color: #000; 434 | } 435 | .cm-s-ipython span.cm-operator { 436 | color: #AA22FF; 437 | font-weight: bold; 438 | } 439 | .cm-s-ipython span.cm-variable-2 { 440 | color: #1a1a1a; 441 | } 442 | .cm-s-ipython span.cm-variable-3 { 443 | color: #333333; 444 | } 445 | .cm-s-ipython span.cm-comment { 446 | color: #408080; 447 | font-style: italic; 448 | } 449 | .cm-s-ipython span.cm-string { 450 | color: #BA2121; 451 | } 452 | .cm-s-ipython span.cm-string-2 { 453 | color: #f50; 454 | } 455 | .cm-s-ipython span.cm-meta { 456 | color: #AA22FF; 457 | } 458 | .cm-s-ipython span.cm-qualifier { 459 | color: #555; 460 | } 461 | .cm-s-ipython span.cm-builtin { 462 | color: #008000; 463 | } 464 | .cm-s-ipython span.cm-bracket { 465 | color: #997; 466 | } 467 | .cm-s-ipython span.cm-tag { 468 | color: #170; 469 | } 470 | .cm-s-ipython span.cm-attribute { 471 | color: #00c; 472 | } 473 | .cm-s-ipython span.cm-header { 474 | color: blue; 475 | } 476 | .cm-s-ipython span.cm-quote { 477 | color: #090; 478 | } 479 | .cm-s-ipython span.cm-link { 480 | color: #00c; 481 | } 482 | .cm-s-ipython span.cm-error { 483 | color: #f00; 484 | } 485 | .cm-s-ipython span.cm-tab { 486 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); 487 | background-position: right; 488 | background-repeat: no-repeat; 489 | } 490 | div.output_wrapper { 491 | /* this position must be relative to enable descendents to be absolute within it */ 492 | position: relative; 493 | /* Old browsers */ 494 | display: -webkit-box; 495 | -webkit-box-orient: vertical; 496 | -webkit-box-align: stretch; 497 | display: -moz-box; 498 | -moz-box-orient: vertical; 499 | -moz-box-align: stretch; 500 | display: box; 501 | box-orient: vertical; 502 | box-align: stretch; 503 | /* Modern browsers */ 504 | display: flex; 505 | flex-direction: column; 506 | align-items: stretch; 507 | z-index: 1; 508 | } 509 | /* class for the output area when it should be height-limited */ 510 | div.output_scroll { 511 | /* ideally, this would be max-height, but FF barfs all over that */ 512 | height: 24em; 513 | /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */ 514 | width: 100%; 515 | overflow: auto; 516 | border-radius: 2px; 517 | -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); 518 | box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); 519 | display: block; 520 | } 521 | /* output div while it is collapsed */ 522 | div.output_collapsed { 523 | margin: 0px; 524 | padding: 0px; 525 | /* Old browsers */ 526 | display: -webkit-box; 527 | -webkit-box-orient: vertical; 528 | -webkit-box-align: stretch; 529 | display: -moz-box; 530 | -moz-box-orient: vertical; 531 | -moz-box-align: stretch; 532 | display: box; 533 | box-orient: vertical; 534 | box-align: stretch; 535 | /* Modern browsers */ 536 | display: flex; 537 | flex-direction: column; 538 | align-items: stretch; 539 | } 540 | div.out_prompt_overlay { 541 | height: 100%; 542 | padding: 0px 0.4em; 543 | position: absolute; 544 | border-radius: 2px; 545 | } 546 | div.out_prompt_overlay:hover { 547 | /* use inner shadow to get border that is computed the same on WebKit/FF */ 548 | -webkit-box-shadow: inset 0 0 1px #000; 549 | box-shadow: inset 0 0 1px #000; 550 | background: rgba(240, 240, 240, 0.5); 551 | } 552 | div.output_prompt { 553 | color: #D84315; 554 | } 555 | /* This class is the outer container of all output sections. */ 556 | div.output_area { 557 | padding: 0px; 558 | page-break-inside: avoid; 559 | /* Old browsers */ 560 | display: -webkit-box; 561 | -webkit-box-orient: horizontal; 562 | -webkit-box-align: stretch; 563 | display: -moz-box; 564 | -moz-box-orient: horizontal; 565 | -moz-box-align: stretch; 566 | display: box; 567 | box-orient: horizontal; 568 | box-align: stretch; 569 | /* Modern browsers */ 570 | display: flex; 571 | flex-direction: row; 572 | align-items: stretch; 573 | } 574 | div.output_area .MathJax_Display { 575 | text-align: left !important; 576 | } 577 | div.output_area 578 | div.output_area 579 | div.output_area img, 580 | div.output_area svg { 581 | max-width: 100%; 582 | height: auto; 583 | } 584 | div.output_area img.unconfined, 585 | div.output_area svg.unconfined { 586 | max-width: none; 587 | } 588 | /* This is needed to protect the pre formating from global settings such 589 | as that of bootstrap */ 590 | .output { 591 | /* Old browsers */ 592 | display: -webkit-box; 593 | -webkit-box-orient: vertical; 594 | -webkit-box-align: stretch; 595 | display: -moz-box; 596 | -moz-box-orient: vertical; 597 | -moz-box-align: stretch; 598 | display: box; 599 | box-orient: vertical; 600 | box-align: stretch; 601 | /* Modern browsers */ 602 | display: flex; 603 | flex-direction: column; 604 | align-items: stretch; 605 | } 606 | @media (max-width: 540px) { 607 | div.output_area { 608 | /* Old browsers */ 609 | display: -webkit-box; 610 | -webkit-box-orient: vertical; 611 | -webkit-box-align: stretch; 612 | display: -moz-box; 613 | -moz-box-orient: vertical; 614 | -moz-box-align: stretch; 615 | display: box; 616 | box-orient: vertical; 617 | box-align: stretch; 618 | /* Modern browsers */ 619 | display: flex; 620 | flex-direction: column; 621 | align-items: stretch; 622 | } 623 | } 624 | div.output_area pre { 625 | margin: 0; 626 | padding: 0; 627 | border: 0; 628 | vertical-align: baseline; 629 | color: black; 630 | background-color: transparent; 631 | border-radius: 0; 632 | } 633 | /* This class is for the output subarea inside the output_area and after 634 | the prompt div. */ 635 | div.output_subarea { 636 | overflow-x: auto; 637 | padding: 0.4em; 638 | /* Old browsers */ 639 | -webkit-box-flex: 1; 640 | -moz-box-flex: 1; 641 | box-flex: 1; 642 | /* Modern browsers */ 643 | flex: 1; 644 | max-width: calc(100% - 14ex); 645 | } 646 | div.output_scroll div.output_subarea { 647 | overflow-x: visible; 648 | } 649 | /* The rest of the output_* classes are for special styling of the different 650 | output types */ 651 | /* all text output has this class: */ 652 | div.output_text { 653 | text-align: left; 654 | color: #000; 655 | /* This has to match that of the the CodeMirror class line-height below */ 656 | line-height: 1.21429em; 657 | } 658 | /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */ 659 | div.output_stderr { 660 | background: #fdd; 661 | /* very light red background for stderr */ 662 | } 663 | div.output_latex { 664 | text-align: left; 665 | } 666 | /* Empty output_javascript divs should have no height */ 667 | div.output_javascript:empty { 668 | padding: 0; 669 | } 670 | .js-error { 671 | color: darkred; 672 | } 673 | /* raw_input styles */ 674 | div.raw_input_container { 675 | line-height: 1.21429em; 676 | padding-top: 5px; 677 | } 678 | pre.raw_input_prompt { 679 | /* nothing needed here. */ 680 | } 681 | input.raw_input { 682 | font-family: monospace; 683 | font-size: inherit; 684 | color: inherit; 685 | width: auto; 686 | /* make sure input baseline aligns with prompt */ 687 | vertical-align: baseline; 688 | /* padding + margin = 0.5em between prompt and cursor */ 689 | padding: 0em 0.25em; 690 | margin: 0em 0.25em; 691 | } 692 | input.raw_input:focus { 693 | box-shadow: none; 694 | } 695 | p.p-space { 696 | margin-bottom: 10px; 697 | } 698 | div.output_unrecognized { 699 | padding: 5px; 700 | font-weight: bold; 701 | color: red; 702 | } 703 | div.output_unrecognized a { 704 | color: inherit; 705 | text-decoration: none; 706 | } 707 | div.output_unrecognized a:hover { 708 | color: inherit; 709 | text-decoration: none; 710 | } 711 | .rendered_html { 712 | color: #000; 713 | /* any extras will just be numbers: */ 714 | } 715 | 716 | 717 | 718 | .rendered_html :link { 719 | text-decoration: underline; 720 | } 721 | .rendered_html :visited { 722 | text-decoration: underline; 723 | } 724 | 725 | 726 | 727 | 728 | 729 | 730 | .rendered_html h1:first-child { 731 | margin-top: 0.538em; 732 | } 733 | .rendered_html h2:first-child { 734 | margin-top: 0.636em; 735 | } 736 | .rendered_html h3:first-child { 737 | margin-top: 0.777em; 738 | } 739 | .rendered_html h4:first-child { 740 | margin-top: 1em; 741 | } 742 | .rendered_html h5:first-child { 743 | margin-top: 1em; 744 | } 745 | .rendered_html h6:first-child { 746 | margin-top: 1em; 747 | } 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | .rendered_html * + ul { 757 | margin-top: 1em; 758 | } 759 | .rendered_html * + ol { 760 | margin-top: 1em; 761 | } 762 | 763 | 764 | .rendered_html pre, 765 | 766 | 767 | 768 | .rendered_html tr, 769 | .rendered_html th, 770 | 771 | .rendered_html td, 772 | 773 | 774 | .rendered_html * + table { 775 | margin-top: 1em; 776 | } 777 | 778 | .rendered_html * + p { 779 | margin-top: 1em; 780 | } 781 | 782 | .rendered_html * + img { 783 | margin-top: 1em; 784 | } 785 | .rendered_html img, 786 | 787 | .rendered_html img.unconfined, 788 | 789 | div.text_cell { 790 | /* Old browsers */ 791 | display: -webkit-box; 792 | -webkit-box-orient: horizontal; 793 | -webkit-box-align: stretch; 794 | display: -moz-box; 795 | -moz-box-orient: horizontal; 796 | -moz-box-align: stretch; 797 | display: box; 798 | box-orient: horizontal; 799 | box-align: stretch; 800 | /* Modern browsers */ 801 | display: flex; 802 | flex-direction: row; 803 | align-items: stretch; 804 | } 805 | @media (max-width: 540px) { 806 | div.text_cell > div.prompt { 807 | display: none; 808 | } 809 | } 810 | div.text_cell_render { 811 | /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/ 812 | outline: none; 813 | resize: none; 814 | width: inherit; 815 | border-style: none; 816 | padding: 0.5em 0.5em 0.5em 0.4em; 817 | color: #000; 818 | box-sizing: border-box; 819 | -moz-box-sizing: border-box; 820 | -webkit-box-sizing: border-box; 821 | } 822 | a.anchor-link:link { 823 | text-decoration: none; 824 | padding: 0px 20px; 825 | visibility: hidden; 826 | } 827 | h1:hover .anchor-link, 828 | h2:hover .anchor-link, 829 | h3:hover .anchor-link, 830 | h4:hover .anchor-link, 831 | h5:hover .anchor-link, 832 | h6:hover .anchor-link { 833 | visibility: visible; 834 | } 835 | .text_cell.rendered .input_area { 836 | display: none; 837 | } 838 | .text_cell.rendered 839 | .text_cell.unrendered .text_cell_render { 840 | display: none; 841 | } 842 | .cm-header-1, 843 | .cm-header-2, 844 | .cm-header-3, 845 | .cm-header-4, 846 | .cm-header-5, 847 | .cm-header-6 { 848 | font-weight: bold; 849 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 850 | } 851 | .cm-header-1 { 852 | font-size: 185.7%; 853 | } 854 | .cm-header-2 { 855 | font-size: 157.1%; 856 | } 857 | .cm-header-3 { 858 | font-size: 128.6%; 859 | } 860 | .cm-header-4 { 861 | font-size: 110%; 862 | } 863 | .cm-header-5 { 864 | font-size: 100%; 865 | font-style: italic; 866 | } 867 | .cm-header-6 { 868 | font-size: 100%; 869 | font-style: italic; 870 | } 871 | </style> 872 | <style type="text/css">.highlight .hll { background-color: #ffffcc } 873 | .highlight { background: #f8f8f8; } 874 | .highlight .c { color: #408080; font-style: italic } /* Comment */ 875 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 876 | .highlight .k { color: #008000; font-weight: bold } /* Keyword */ 877 | .highlight .o { color: #666666 } /* Operator */ 878 | .highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ 879 | .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ 880 | .highlight .cp { color: #BC7A00 } /* Comment.Preproc */ 881 | .highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ 882 | .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ 883 | .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ 884 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 885 | .highlight .ge { font-style: italic } /* Generic.Emph */ 886 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 887 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 888 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 889 | .highlight .go { color: #888888 } /* Generic.Output */ 890 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ 891 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 892 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 893 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 894 | .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ 895 | .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ 896 | .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ 897 | .highlight .kp { color: #008000 } /* Keyword.Pseudo */ 898 | .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ 899 | .highlight .kt { color: #B00040 } /* Keyword.Type */ 900 | .highlight .m { color: #666666 } /* Literal.Number */ 901 | .highlight .s { color: #BA2121 } /* Literal.String */ 902 | .highlight .na { color: #7D9029 } /* Name.Attribute */ 903 | .highlight .nb { color: #008000 } /* Name.Builtin */ 904 | .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ 905 | .highlight .no { color: #880000 } /* Name.Constant */ 906 | .highlight .nd { color: #AA22FF } /* Name.Decorator */ 907 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 908 | .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ 909 | .highlight .nf { color: #0000FF } /* Name.Function */ 910 | .highlight .nl { color: #A0A000 } /* Name.Label */ 911 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ 912 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ 913 | .highlight .nv { color: #19177C } /* Name.Variable */ 914 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ 915 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 916 | .highlight .mb { color: #666666 } /* Literal.Number.Bin */ 917 | .highlight .mf { color: #666666 } /* Literal.Number.Float */ 918 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */ 919 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */ 920 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */ 921 | .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ 922 | .highlight .sc { color: #BA2121 } /* Literal.String.Char */ 923 | .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ 924 | .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ 925 | .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ 926 | .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ 927 | .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ 928 | .highlight .sx { color: #008000 } /* Literal.String.Other */ 929 | .highlight .sr { color: #BB6688 } /* Literal.String.Regex */ 930 | .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ 931 | .highlight .ss { color: #19177C } /* Literal.String.Symbol */ 932 | .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ 933 | .highlight .vc { color: #19177C } /* Name.Variable.Class */ 934 | .highlight .vg { color: #19177C } /* Name.Variable.Global */ 935 | .highlight .vi { color: #19177C } /* Name.Variable.Instance */ 936 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */</style> 937 | <style type="text/css"> 938 | /* Temporary definitions which will become obsolete with Notebook release 5.0 */ 939 | .ansi-black-fg { color: #3E424D; } 940 | .ansi-black-bg { background-color: #3E424D; } 941 | .ansi-black-intense-fg { color: #282C36; } 942 | .ansi-black-intense-bg { background-color: #282C36; } 943 | .ansi-red-fg { color: #E75C58; } 944 | .ansi-red-bg { background-color: #E75C58; } 945 | .ansi-red-intense-fg { color: #B22B31; } 946 | .ansi-red-intense-bg { background-color: #B22B31; } 947 | .ansi-green-fg { color: #00A250; } 948 | .ansi-green-bg { background-color: #00A250; } 949 | .ansi-green-intense-fg { color: #007427; } 950 | .ansi-green-intense-bg { background-color: #007427; } 951 | .ansi-yellow-fg { color: #DDB62B; } 952 | .ansi-yellow-bg { background-color: #DDB62B; } 953 | .ansi-yellow-intense-fg { color: #B27D12; } 954 | .ansi-yellow-intense-bg { background-color: #B27D12; } 955 | .ansi-blue-fg { color: #208FFB; } 956 | .ansi-blue-bg { background-color: #208FFB; } 957 | .ansi-blue-intense-fg { color: #0065CA; } 958 | .ansi-blue-intense-bg { background-color: #0065CA; } 959 | .ansi-magenta-fg { color: #D160C4; } 960 | .ansi-magenta-bg { background-color: #D160C4; } 961 | .ansi-magenta-intense-fg { color: #A03196; } 962 | .ansi-magenta-intense-bg { background-color: #A03196; } 963 | .ansi-cyan-fg { color: #60C6C8; } 964 | .ansi-cyan-bg { background-color: #60C6C8; } 965 | .ansi-cyan-intense-fg { color: #258F8F; } 966 | .ansi-cyan-intense-bg { background-color: #258F8F; } 967 | .ansi-white-fg { color: #C5C1B4; } 968 | .ansi-white-bg { background-color: #C5C1B4; } 969 | .ansi-white-intense-fg { color: #A1A6B2; } 970 | .ansi-white-intense-bg { background-color: #A1A6B2; } 971 | 972 | .ansi-bold { font-weight: bold; } 973 | </style> 974 | <div class="cell border-box-sizing text_cell rendered"> 975 | <div class="prompt input_prompt"> 976 | </div> 977 | <div class="inner_cell"> 978 | <div class="text_cell_render border-box-sizing rendered_html"> 979 | <h1 id="First-post!">First post!<a class="anchor-link" href="#First-post!">¶</a></h1><p>This will be the first post in our new Pelican blog! You can add any code or markdown cells to this Jupyter notebook, and they will be rendered on your blog.</p> 980 | </div> 981 | </div> 982 | </div> 983 | <div class="cell border-box-sizing code_cell rendered"> 984 | <div class="input"> 985 | <div class="prompt input_prompt">In [2]:</div> 986 | <div class="inner_cell"> 987 | <div class="input_area"> 988 | <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">random</span> 989 | 990 | <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span> 991 | </pre></div> 992 | </div> 993 | </div> 994 | </div> 995 | <div class="output_wrapper"> 996 | <div class="output"> 997 | <div class="output_area"><div class="prompt output_prompt">Out[2]:</div> 998 | <div class="output_text output_subarea output_execute_result"> 999 | <pre>4</pre> 1000 | </div> 1001 | </div> 1002 | </div> 1003 | </div> 1004 | </div> 1005 | <div class="cell border-box-sizing code_cell rendered"> 1006 | <div class="input"> 1007 | <div class="prompt input_prompt">In [4]:</div> 1008 | <div class="inner_cell"> 1009 | <div class="input_area"> 1010 | <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span> 1011 | 1012 | <span class="o">%</span><span class="k">matplotlib</span> inline 1013 | 1014 | <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">([</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">])</span> 1015 | </pre></div> 1016 | </div> 1017 | </div> 1018 | </div> 1019 | <div class="output_wrapper"> 1020 | <div class="output"> 1021 | <div class="output_area"><div class="prompt output_prompt">Out[4]:</div> 1022 | <div class="output_text output_subarea output_execute_result"> 1023 | <pre>(array([ 2., 1., 1., 0., 2., 0., 1., 0., 0., 2.]), 1024 | array([ 1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 1025 | 9.1, 10. ]), 1026 | <a list of 10 patch objects>)</pre> 1027 | </div> 1028 | </div> 1029 | <div class="output_area"><div class="prompt"></div> 1030 | <div class="output_png output_subarea "> 1031 | <img src="data:image/png;base64,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 1091 | "> 1092 | </img></div> 1093 | </div> 1094 | </div> 1095 | </div> 1096 | </div> 1097 | <div class="cell border-box-sizing code_cell rendered"> 1098 | <div class="input"> 1099 | <div class="prompt input_prompt">In [ ]:</div> 1100 | <div class="inner_cell"> 1101 | <div class="input_area"> 1102 | <div class=" highlight hl-ipython3"><pre><span></span> 1103 | </pre></div> 1104 | </div> 1105 | </div> 1106 | </div> 1107 | </div> 1108 | <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { 1109 | var mathjaxscript = document.createElement('script'); 1110 | mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; 1111 | mathjaxscript.type = 'text/javascript'; 1112 | mathjaxscript.src = '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; 1113 | mathjaxscript[(window.opera ? "innerHTML" : "text")] = 1114 | "MathJax.Hub.Config({" + 1115 | " config: ['MMLorHTML.js']," + 1116 | " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + 1117 | " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + 1118 | " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + 1119 | " displayAlign: 'center'," + 1120 | " displayIndent: '0em'," + 1121 | " showMathMenu: true," + 1122 | " tex2jax: { " + 1123 | " inlineMath: [ ['$','$'] ], " + 1124 | " displayMath: [ ['$$','$$'] ]," + 1125 | " processEscapes: true," + 1126 | " preview: 'TeX'," + 1127 | " }, " + 1128 | " 'HTML-CSS': { " + 1129 | " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" + 1130 | " } " + 1131 | "}); "; 1132 | (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); 1133 | } 1134 | </script> 1135 | -------------------------------------------------------------------------------- /output/feeds/posts.atom.xml: -------------------------------------------------------------------------------- 1 | 2 | Blog/2016-06-08T20:00:00-07:00First Post2016-06-08T20:00:00-07:00metag:,2016-06-08:first-post.html<style type="text/css">/*! 3 | * 4 | * IPython notebook 5 | * 6 | */ 7 | /* CSS font colors for translated ANSI colors. */ 8 | .ansibold { 9 | font-weight: bold; 10 | } 11 | /* use dark versions for foreground, to improve visibility */ 12 | .ansiblack { 13 | color: black; 14 | } 15 | .ansired { 16 | color: darkred; 17 | } 18 | .ansigreen { 19 | color: darkgreen; 20 | } 21 | .ansiyellow { 22 | color: #c4a000; 23 | } 24 | .ansiblue { 25 | color: darkblue; 26 | } 27 | .ansipurple { 28 | color: darkviolet; 29 | } 30 | .ansicyan { 31 | color: steelblue; 32 | } 33 | .ansigray { 34 | color: gray; 35 | } 36 | /* and light for background, for the same reason */ 37 | .ansibgblack { 38 | background-color: black; 39 | } 40 | .ansibgred { 41 | background-color: red; 42 | } 43 | .ansibggreen { 44 | background-color: green; 45 | } 46 | .ansibgyellow { 47 | background-color: yellow; 48 | } 49 | .ansibgblue { 50 | background-color: blue; 51 | } 52 | .ansibgpurple { 53 | background-color: magenta; 54 | } 55 | .ansibgcyan { 56 | background-color: cyan; 57 | } 58 | .ansibggray { 59 | background-color: gray; 60 | } 61 | div.cell { 62 | /* Old browsers */ 63 | display: -webkit-box; 64 | -webkit-box-orient: vertical; 65 | -webkit-box-align: stretch; 66 | display: -moz-box; 67 | -moz-box-orient: vertical; 68 | -moz-box-align: stretch; 69 | display: box; 70 | box-orient: vertical; 71 | box-align: stretch; 72 | /* Modern browsers */ 73 | display: flex; 74 | flex-direction: column; 75 | align-items: stretch; 76 | border-radius: 2px; 77 | box-sizing: border-box; 78 | -moz-box-sizing: border-box; 79 | -webkit-box-sizing: border-box; 80 | border-width: 1px; 81 | border-style: solid; 82 | border-color: transparent; 83 | width: 100%; 84 | padding: 5px; 85 | /* This acts as a spacer between cells, that is outside the border */ 86 | margin: 0px; 87 | outline: none; 88 | border-left-width: 1px; 89 | padding-left: 5px; 90 | background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%); 91 | } 92 | div.cell.jupyter-soft-selected { 93 | border-left-color: #90CAF9; 94 | border-left-color: #E3F2FD; 95 | border-left-width: 1px; 96 | padding-left: 5px; 97 | border-right-color: #E3F2FD; 98 | border-right-width: 1px; 99 | background: #E3F2FD; 100 | } 101 | @media print { 102 | div.cell.jupyter-soft-selected { 103 | border-color: transparent; 104 | } 105 | } 106 | div.cell.selected { 107 | border-color: #ababab; 108 | border-left-width: 0px; 109 | padding-left: 6px; 110 | background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%); 111 | } 112 | @media print { 113 | div.cell.selected { 114 | border-color: transparent; 115 | } 116 | } 117 | div.cell.selected.jupyter-soft-selected { 118 | border-left-width: 0; 119 | padding-left: 6px; 120 | background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%); 121 | } 122 | .edit_mode div.cell.selected { 123 | border-color: #66BB6A; 124 | border-left-width: 0px; 125 | padding-left: 6px; 126 | background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%); 127 | } 128 | @media print { 129 | .edit_mode div.cell.selected { 130 | border-color: transparent; 131 | } 132 | } 133 | .prompt { 134 | /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */ 135 | min-width: 14ex; 136 | /* This padding is tuned to match the padding on the CodeMirror editor. */ 137 | padding: 0.4em; 138 | margin: 0px; 139 | font-family: monospace; 140 | text-align: right; 141 | /* This has to match that of the the CodeMirror class line-height below */ 142 | line-height: 1.21429em; 143 | /* Don't highlight prompt number selection */ 144 | -webkit-touch-callout: none; 145 | -webkit-user-select: none; 146 | -khtml-user-select: none; 147 | -moz-user-select: none; 148 | -ms-user-select: none; 149 | user-select: none; 150 | /* Use default cursor */ 151 | cursor: default; 152 | } 153 | @media (max-width: 540px) { 154 | .prompt { 155 | text-align: left; 156 | } 157 | } 158 | div.inner_cell { 159 | /* Old browsers */ 160 | display: -webkit-box; 161 | -webkit-box-orient: vertical; 162 | -webkit-box-align: stretch; 163 | display: -moz-box; 164 | -moz-box-orient: vertical; 165 | -moz-box-align: stretch; 166 | display: box; 167 | box-orient: vertical; 168 | box-align: stretch; 169 | /* Modern browsers */ 170 | display: flex; 171 | flex-direction: column; 172 | align-items: stretch; 173 | /* Old browsers */ 174 | -webkit-box-flex: 1; 175 | -moz-box-flex: 1; 176 | box-flex: 1; 177 | /* Modern browsers */ 178 | flex: 1; 179 | } 180 | @-moz-document url-prefix() { 181 | div.inner_cell { 182 | overflow-x: hidden; 183 | } 184 | } 185 | /* input_area and input_prompt must match in top border and margin for alignment */ 186 | div.input_area { 187 | border: 1px solid #cfcfcf; 188 | border-radius: 2px; 189 | background: #f7f7f7; 190 | line-height: 1.21429em; 191 | } 192 | /* This is needed so that empty prompt areas can collapse to zero height when there 193 | is no content in the output_subarea and the prompt. The main purpose of this is 194 | to make sure that empty JavaScript output_subareas have no height. */ 195 | div.prompt:empty { 196 | padding-top: 0; 197 | padding-bottom: 0; 198 | } 199 | div.unrecognized_cell { 200 | padding: 5px 5px 5px 0px; 201 | /* Old browsers */ 202 | display: -webkit-box; 203 | -webkit-box-orient: horizontal; 204 | -webkit-box-align: stretch; 205 | display: -moz-box; 206 | -moz-box-orient: horizontal; 207 | -moz-box-align: stretch; 208 | display: box; 209 | box-orient: horizontal; 210 | box-align: stretch; 211 | /* Modern browsers */ 212 | display: flex; 213 | flex-direction: row; 214 | align-items: stretch; 215 | } 216 | div.unrecognized_cell .inner_cell { 217 | border-radius: 2px; 218 | padding: 5px; 219 | font-weight: bold; 220 | color: red; 221 | border: 1px solid #cfcfcf; 222 | background: #eaeaea; 223 | } 224 | div.unrecognized_cell .inner_cell a { 225 | color: inherit; 226 | text-decoration: none; 227 | } 228 | div.unrecognized_cell .inner_cell a:hover { 229 | color: inherit; 230 | text-decoration: none; 231 | } 232 | @media (max-width: 540px) { 233 | div.unrecognized_cell > div.prompt { 234 | display: none; 235 | } 236 | } 237 | div.code_cell { 238 | /* avoid page breaking on code cells when printing */ 239 | } 240 | @media print { 241 | div.code_cell { 242 | page-break-inside: avoid; 243 | } 244 | } 245 | /* any special styling for code cells that are currently running goes here */ 246 | div.input { 247 | page-break-inside: avoid; 248 | /* Old browsers */ 249 | display: -webkit-box; 250 | -webkit-box-orient: horizontal; 251 | -webkit-box-align: stretch; 252 | display: -moz-box; 253 | -moz-box-orient: horizontal; 254 | -moz-box-align: stretch; 255 | display: box; 256 | box-orient: horizontal; 257 | box-align: stretch; 258 | /* Modern browsers */ 259 | display: flex; 260 | flex-direction: row; 261 | align-items: stretch; 262 | } 263 | @media (max-width: 540px) { 264 | div.input { 265 | /* Old browsers */ 266 | display: -webkit-box; 267 | -webkit-box-orient: vertical; 268 | -webkit-box-align: stretch; 269 | display: -moz-box; 270 | -moz-box-orient: vertical; 271 | -moz-box-align: stretch; 272 | display: box; 273 | box-orient: vertical; 274 | box-align: stretch; 275 | /* Modern browsers */ 276 | display: flex; 277 | flex-direction: column; 278 | align-items: stretch; 279 | } 280 | } 281 | /* input_area and input_prompt must match in top border and margin for alignment */ 282 | div.input_prompt { 283 | color: #303F9F; 284 | border-top: 1px solid transparent; 285 | } 286 | div.input_area > div.highlight { 287 | margin: 0.4em; 288 | border: none; 289 | padding: 0px; 290 | background-color: transparent; 291 | } 292 | div.input_area > div.highlight > pre { 293 | margin: 0px; 294 | border: none; 295 | padding: 0px; 296 | background-color: transparent; 297 | } 298 | /* The following gets added to the <head> if it is detected that the user has a 299 | * monospace font with inconsistent normal/bold/italic height. See 300 | * notebookmain.js. Such fonts will have keywords vertically offset with 301 | * respect to the rest of the text. The user should select a better font. 302 | * See: https://github.com/ipython/ipython/issues/1503 303 | * 304 | * .CodeMirror span { 305 | * vertical-align: bottom; 306 | * } 307 | */ 308 | .CodeMirror { 309 | line-height: 1.21429em; 310 | /* Changed from 1em to our global default */ 311 | font-size: 14px; 312 | height: auto; 313 | /* Changed to auto to autogrow */ 314 | background: none; 315 | /* Changed from white to allow our bg to show through */ 316 | } 317 | .CodeMirror-scroll { 318 | /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/ 319 | /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/ 320 | overflow-y: hidden; 321 | overflow-x: auto; 322 | } 323 | .CodeMirror-lines { 324 | /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */ 325 | /* we have set a different line-height and want this to scale with that. */ 326 | padding: 0.4em; 327 | } 328 | .CodeMirror-linenumber { 329 | padding: 0 8px 0 4px; 330 | } 331 | .CodeMirror-gutters { 332 | border-bottom-left-radius: 2px; 333 | border-top-left-radius: 2px; 334 | } 335 | .CodeMirror pre { 336 | /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */ 337 | /* .CodeMirror-lines */ 338 | padding: 0; 339 | border: 0; 340 | border-radius: 0; 341 | } 342 | /* 343 | 344 | Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> 345 | Adapted from GitHub theme 346 | 347 | */ 348 | .highlight-base { 349 | color: #000; 350 | } 351 | .highlight-variable { 352 | color: #000; 353 | } 354 | .highlight-variable-2 { 355 | color: #1a1a1a; 356 | } 357 | .highlight-variable-3 { 358 | color: #333333; 359 | } 360 | .highlight-string { 361 | color: #BA2121; 362 | } 363 | .highlight-comment { 364 | color: #408080; 365 | font-style: italic; 366 | } 367 | .highlight-number { 368 | color: #080; 369 | } 370 | .highlight-atom { 371 | color: #88F; 372 | } 373 | .highlight-keyword { 374 | color: #008000; 375 | font-weight: bold; 376 | } 377 | .highlight-builtin { 378 | color: #008000; 379 | } 380 | .highlight-error { 381 | color: #f00; 382 | } 383 | .highlight-operator { 384 | color: #AA22FF; 385 | font-weight: bold; 386 | } 387 | .highlight-meta { 388 | color: #AA22FF; 389 | } 390 | /* previously not defined, copying from default codemirror */ 391 | .highlight-def { 392 | color: #00f; 393 | } 394 | .highlight-string-2 { 395 | color: #f50; 396 | } 397 | .highlight-qualifier { 398 | color: #555; 399 | } 400 | .highlight-bracket { 401 | color: #997; 402 | } 403 | .highlight-tag { 404 | color: #170; 405 | } 406 | .highlight-attribute { 407 | color: #00c; 408 | } 409 | .highlight-header { 410 | color: blue; 411 | } 412 | .highlight-quote { 413 | color: #090; 414 | } 415 | .highlight-link { 416 | color: #00c; 417 | } 418 | /* apply the same style to codemirror */ 419 | .cm-s-ipython span.cm-keyword { 420 | color: #008000; 421 | font-weight: bold; 422 | } 423 | .cm-s-ipython span.cm-atom { 424 | color: #88F; 425 | } 426 | .cm-s-ipython span.cm-number { 427 | color: #080; 428 | } 429 | .cm-s-ipython span.cm-def { 430 | color: #00f; 431 | } 432 | .cm-s-ipython span.cm-variable { 433 | color: #000; 434 | } 435 | .cm-s-ipython span.cm-operator { 436 | color: #AA22FF; 437 | font-weight: bold; 438 | } 439 | .cm-s-ipython span.cm-variable-2 { 440 | color: #1a1a1a; 441 | } 442 | .cm-s-ipython span.cm-variable-3 { 443 | color: #333333; 444 | } 445 | .cm-s-ipython span.cm-comment { 446 | color: #408080; 447 | font-style: italic; 448 | } 449 | .cm-s-ipython span.cm-string { 450 | color: #BA2121; 451 | } 452 | .cm-s-ipython span.cm-string-2 { 453 | color: #f50; 454 | } 455 | .cm-s-ipython span.cm-meta { 456 | color: #AA22FF; 457 | } 458 | .cm-s-ipython span.cm-qualifier { 459 | color: #555; 460 | } 461 | .cm-s-ipython span.cm-builtin { 462 | color: #008000; 463 | } 464 | .cm-s-ipython span.cm-bracket { 465 | color: #997; 466 | } 467 | .cm-s-ipython span.cm-tag { 468 | color: #170; 469 | } 470 | .cm-s-ipython span.cm-attribute { 471 | color: #00c; 472 | } 473 | .cm-s-ipython span.cm-header { 474 | color: blue; 475 | } 476 | .cm-s-ipython span.cm-quote { 477 | color: #090; 478 | } 479 | .cm-s-ipython span.cm-link { 480 | color: #00c; 481 | } 482 | .cm-s-ipython span.cm-error { 483 | color: #f00; 484 | } 485 | .cm-s-ipython span.cm-tab { 486 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); 487 | background-position: right; 488 | background-repeat: no-repeat; 489 | } 490 | div.output_wrapper { 491 | /* this position must be relative to enable descendents to be absolute within it */ 492 | position: relative; 493 | /* Old browsers */ 494 | display: -webkit-box; 495 | -webkit-box-orient: vertical; 496 | -webkit-box-align: stretch; 497 | display: -moz-box; 498 | -moz-box-orient: vertical; 499 | -moz-box-align: stretch; 500 | display: box; 501 | box-orient: vertical; 502 | box-align: stretch; 503 | /* Modern browsers */ 504 | display: flex; 505 | flex-direction: column; 506 | align-items: stretch; 507 | z-index: 1; 508 | } 509 | /* class for the output area when it should be height-limited */ 510 | div.output_scroll { 511 | /* ideally, this would be max-height, but FF barfs all over that */ 512 | height: 24em; 513 | /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */ 514 | width: 100%; 515 | overflow: auto; 516 | border-radius: 2px; 517 | -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); 518 | box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); 519 | display: block; 520 | } 521 | /* output div while it is collapsed */ 522 | div.output_collapsed { 523 | margin: 0px; 524 | padding: 0px; 525 | /* Old browsers */ 526 | display: -webkit-box; 527 | -webkit-box-orient: vertical; 528 | -webkit-box-align: stretch; 529 | display: -moz-box; 530 | -moz-box-orient: vertical; 531 | -moz-box-align: stretch; 532 | display: box; 533 | box-orient: vertical; 534 | box-align: stretch; 535 | /* Modern browsers */ 536 | display: flex; 537 | flex-direction: column; 538 | align-items: stretch; 539 | } 540 | div.out_prompt_overlay { 541 | height: 100%; 542 | padding: 0px 0.4em; 543 | position: absolute; 544 | border-radius: 2px; 545 | } 546 | div.out_prompt_overlay:hover { 547 | /* use inner shadow to get border that is computed the same on WebKit/FF */ 548 | -webkit-box-shadow: inset 0 0 1px #000; 549 | box-shadow: inset 0 0 1px #000; 550 | background: rgba(240, 240, 240, 0.5); 551 | } 552 | div.output_prompt { 553 | color: #D84315; 554 | } 555 | /* This class is the outer container of all output sections. */ 556 | div.output_area { 557 | padding: 0px; 558 | page-break-inside: avoid; 559 | /* Old browsers */ 560 | display: -webkit-box; 561 | -webkit-box-orient: horizontal; 562 | -webkit-box-align: stretch; 563 | display: -moz-box; 564 | -moz-box-orient: horizontal; 565 | -moz-box-align: stretch; 566 | display: box; 567 | box-orient: horizontal; 568 | box-align: stretch; 569 | /* Modern browsers */ 570 | display: flex; 571 | flex-direction: row; 572 | align-items: stretch; 573 | } 574 | div.output_area .MathJax_Display { 575 | text-align: left !important; 576 | } 577 | div.output_area 578 | div.output_area 579 | div.output_area img, 580 | div.output_area svg { 581 | max-width: 100%; 582 | height: auto; 583 | } 584 | div.output_area img.unconfined, 585 | div.output_area svg.unconfined { 586 | max-width: none; 587 | } 588 | /* This is needed to protect the pre formating from global settings such 589 | as that of bootstrap */ 590 | .output { 591 | /* Old browsers */ 592 | display: -webkit-box; 593 | -webkit-box-orient: vertical; 594 | -webkit-box-align: stretch; 595 | display: -moz-box; 596 | -moz-box-orient: vertical; 597 | -moz-box-align: stretch; 598 | display: box; 599 | box-orient: vertical; 600 | box-align: stretch; 601 | /* Modern browsers */ 602 | display: flex; 603 | flex-direction: column; 604 | align-items: stretch; 605 | } 606 | @media (max-width: 540px) { 607 | div.output_area { 608 | /* Old browsers */ 609 | display: -webkit-box; 610 | -webkit-box-orient: vertical; 611 | -webkit-box-align: stretch; 612 | display: -moz-box; 613 | -moz-box-orient: vertical; 614 | -moz-box-align: stretch; 615 | display: box; 616 | box-orient: vertical; 617 | box-align: stretch; 618 | /* Modern browsers */ 619 | display: flex; 620 | flex-direction: column; 621 | align-items: stretch; 622 | } 623 | } 624 | div.output_area pre { 625 | margin: 0; 626 | padding: 0; 627 | border: 0; 628 | vertical-align: baseline; 629 | color: black; 630 | background-color: transparent; 631 | border-radius: 0; 632 | } 633 | /* This class is for the output subarea inside the output_area and after 634 | the prompt div. */ 635 | div.output_subarea { 636 | overflow-x: auto; 637 | padding: 0.4em; 638 | /* Old browsers */ 639 | -webkit-box-flex: 1; 640 | -moz-box-flex: 1; 641 | box-flex: 1; 642 | /* Modern browsers */ 643 | flex: 1; 644 | max-width: calc(100% - 14ex); 645 | } 646 | div.output_scroll div.output_subarea { 647 | overflow-x: visible; 648 | } 649 | /* The rest of the output_* classes are for special styling of the different 650 | output types */ 651 | /* all text output has this class: */ 652 | div.output_text { 653 | text-align: left; 654 | color: #000; 655 | /* This has to match that of the the CodeMirror class line-height below */ 656 | line-height: 1.21429em; 657 | } 658 | /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */ 659 | div.output_stderr { 660 | background: #fdd; 661 | /* very light red background for stderr */ 662 | } 663 | div.output_latex { 664 | text-align: left; 665 | } 666 | /* Empty output_javascript divs should have no height */ 667 | div.output_javascript:empty { 668 | padding: 0; 669 | } 670 | .js-error { 671 | color: darkred; 672 | } 673 | /* raw_input styles */ 674 | div.raw_input_container { 675 | line-height: 1.21429em; 676 | padding-top: 5px; 677 | } 678 | pre.raw_input_prompt { 679 | /* nothing needed here. */ 680 | } 681 | input.raw_input { 682 | font-family: monospace; 683 | font-size: inherit; 684 | color: inherit; 685 | width: auto; 686 | /* make sure input baseline aligns with prompt */ 687 | vertical-align: baseline; 688 | /* padding + margin = 0.5em between prompt and cursor */ 689 | padding: 0em 0.25em; 690 | margin: 0em 0.25em; 691 | } 692 | input.raw_input:focus { 693 | box-shadow: none; 694 | } 695 | p.p-space { 696 | margin-bottom: 10px; 697 | } 698 | div.output_unrecognized { 699 | padding: 5px; 700 | font-weight: bold; 701 | color: red; 702 | } 703 | div.output_unrecognized a { 704 | color: inherit; 705 | text-decoration: none; 706 | } 707 | div.output_unrecognized a:hover { 708 | color: inherit; 709 | text-decoration: none; 710 | } 711 | .rendered_html { 712 | color: #000; 713 | /* any extras will just be numbers: */ 714 | } 715 | 716 | 717 | 718 | .rendered_html :link { 719 | text-decoration: underline; 720 | } 721 | .rendered_html :visited { 722 | text-decoration: underline; 723 | } 724 | 725 | 726 | 727 | 728 | 729 | 730 | .rendered_html h1:first-child { 731 | margin-top: 0.538em; 732 | } 733 | .rendered_html h2:first-child { 734 | margin-top: 0.636em; 735 | } 736 | .rendered_html h3:first-child { 737 | margin-top: 0.777em; 738 | } 739 | .rendered_html h4:first-child { 740 | margin-top: 1em; 741 | } 742 | .rendered_html h5:first-child { 743 | margin-top: 1em; 744 | } 745 | .rendered_html h6:first-child { 746 | margin-top: 1em; 747 | } 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | .rendered_html * + ul { 757 | margin-top: 1em; 758 | } 759 | .rendered_html * + ol { 760 | margin-top: 1em; 761 | } 762 | 763 | 764 | .rendered_html pre, 765 | 766 | 767 | 768 | .rendered_html tr, 769 | .rendered_html th, 770 | 771 | .rendered_html td, 772 | 773 | 774 | .rendered_html * + table { 775 | margin-top: 1em; 776 | } 777 | 778 | .rendered_html * + p { 779 | margin-top: 1em; 780 | } 781 | 782 | .rendered_html * + img { 783 | margin-top: 1em; 784 | } 785 | .rendered_html img, 786 | 787 | .rendered_html img.unconfined, 788 | 789 | div.text_cell { 790 | /* Old browsers */ 791 | display: -webkit-box; 792 | -webkit-box-orient: horizontal; 793 | -webkit-box-align: stretch; 794 | display: -moz-box; 795 | -moz-box-orient: horizontal; 796 | -moz-box-align: stretch; 797 | display: box; 798 | box-orient: horizontal; 799 | box-align: stretch; 800 | /* Modern browsers */ 801 | display: flex; 802 | flex-direction: row; 803 | align-items: stretch; 804 | } 805 | @media (max-width: 540px) { 806 | div.text_cell > div.prompt { 807 | display: none; 808 | } 809 | } 810 | div.text_cell_render { 811 | /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/ 812 | outline: none; 813 | resize: none; 814 | width: inherit; 815 | border-style: none; 816 | padding: 0.5em 0.5em 0.5em 0.4em; 817 | color: #000; 818 | box-sizing: border-box; 819 | -moz-box-sizing: border-box; 820 | -webkit-box-sizing: border-box; 821 | } 822 | a.anchor-link:link { 823 | text-decoration: none; 824 | padding: 0px 20px; 825 | visibility: hidden; 826 | } 827 | h1:hover .anchor-link, 828 | h2:hover .anchor-link, 829 | h3:hover .anchor-link, 830 | h4:hover .anchor-link, 831 | h5:hover .anchor-link, 832 | h6:hover .anchor-link { 833 | visibility: visible; 834 | } 835 | .text_cell.rendered .input_area { 836 | display: none; 837 | } 838 | .text_cell.rendered 839 | .text_cell.unrendered .text_cell_render { 840 | display: none; 841 | } 842 | .cm-header-1, 843 | .cm-header-2, 844 | .cm-header-3, 845 | .cm-header-4, 846 | .cm-header-5, 847 | .cm-header-6 { 848 | font-weight: bold; 849 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 850 | } 851 | .cm-header-1 { 852 | font-size: 185.7%; 853 | } 854 | .cm-header-2 { 855 | font-size: 157.1%; 856 | } 857 | .cm-header-3 { 858 | font-size: 128.6%; 859 | } 860 | .cm-header-4 { 861 | font-size: 110%; 862 | } 863 | .cm-header-5 { 864 | font-size: 100%; 865 | font-style: italic; 866 | } 867 | .cm-header-6 { 868 | font-size: 100%; 869 | font-style: italic; 870 | } 871 | </style> 872 | <style type="text/css">.highlight .hll { background-color: #ffffcc } 873 | .highlight { background: #f8f8f8; } 874 | .highlight .c { color: #408080; font-style: italic } /* Comment */ 875 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 876 | .highlight .k { color: #008000; font-weight: bold } /* Keyword */ 877 | .highlight .o { color: #666666 } /* Operator */ 878 | .highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ 879 | .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ 880 | .highlight .cp { color: #BC7A00 } /* Comment.Preproc */ 881 | .highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ 882 | .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ 883 | .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ 884 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 885 | .highlight .ge { font-style: italic } /* Generic.Emph */ 886 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 887 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 888 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 889 | .highlight .go { color: #888888 } /* Generic.Output */ 890 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ 891 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 892 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 893 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 894 | .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ 895 | .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ 896 | .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ 897 | .highlight .kp { color: #008000 } /* Keyword.Pseudo */ 898 | .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ 899 | .highlight .kt { color: #B00040 } /* Keyword.Type */ 900 | .highlight .m { color: #666666 } /* Literal.Number */ 901 | .highlight .s { color: #BA2121 } /* Literal.String */ 902 | .highlight .na { color: #7D9029 } /* Name.Attribute */ 903 | .highlight .nb { color: #008000 } /* Name.Builtin */ 904 | .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ 905 | .highlight .no { color: #880000 } /* Name.Constant */ 906 | .highlight .nd { color: #AA22FF } /* Name.Decorator */ 907 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 908 | .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ 909 | .highlight .nf { color: #0000FF } /* Name.Function */ 910 | .highlight .nl { color: #A0A000 } /* Name.Label */ 911 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ 912 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ 913 | .highlight .nv { color: #19177C } /* Name.Variable */ 914 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ 915 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 916 | .highlight .mb { color: #666666 } /* Literal.Number.Bin */ 917 | .highlight .mf { color: #666666 } /* Literal.Number.Float */ 918 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */ 919 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */ 920 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */ 921 | .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ 922 | .highlight .sc { color: #BA2121 } /* Literal.String.Char */ 923 | .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ 924 | .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ 925 | .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ 926 | .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ 927 | .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ 928 | .highlight .sx { color: #008000 } /* Literal.String.Other */ 929 | .highlight .sr { color: #BB6688 } /* Literal.String.Regex */ 930 | .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ 931 | .highlight .ss { color: #19177C } /* Literal.String.Symbol */ 932 | .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ 933 | .highlight .vc { color: #19177C } /* Name.Variable.Class */ 934 | .highlight .vg { color: #19177C } /* Name.Variable.Global */ 935 | .highlight .vi { color: #19177C } /* Name.Variable.Instance */ 936 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */</style> 937 | <style type="text/css"> 938 | /* Temporary definitions which will become obsolete with Notebook release 5.0 */ 939 | .ansi-black-fg { color: #3E424D; } 940 | .ansi-black-bg { background-color: #3E424D; } 941 | .ansi-black-intense-fg { color: #282C36; } 942 | .ansi-black-intense-bg { background-color: #282C36; } 943 | .ansi-red-fg { color: #E75C58; } 944 | .ansi-red-bg { background-color: #E75C58; } 945 | .ansi-red-intense-fg { color: #B22B31; } 946 | .ansi-red-intense-bg { background-color: #B22B31; } 947 | .ansi-green-fg { color: #00A250; } 948 | .ansi-green-bg { background-color: #00A250; } 949 | .ansi-green-intense-fg { color: #007427; } 950 | .ansi-green-intense-bg { background-color: #007427; } 951 | .ansi-yellow-fg { color: #DDB62B; } 952 | .ansi-yellow-bg { background-color: #DDB62B; } 953 | .ansi-yellow-intense-fg { color: #B27D12; } 954 | .ansi-yellow-intense-bg { background-color: #B27D12; } 955 | .ansi-blue-fg { color: #208FFB; } 956 | .ansi-blue-bg { background-color: #208FFB; } 957 | .ansi-blue-intense-fg { color: #0065CA; } 958 | .ansi-blue-intense-bg { background-color: #0065CA; } 959 | .ansi-magenta-fg { color: #D160C4; } 960 | .ansi-magenta-bg { background-color: #D160C4; } 961 | .ansi-magenta-intense-fg { color: #A03196; } 962 | .ansi-magenta-intense-bg { background-color: #A03196; } 963 | .ansi-cyan-fg { color: #60C6C8; } 964 | .ansi-cyan-bg { background-color: #60C6C8; } 965 | .ansi-cyan-intense-fg { color: #258F8F; } 966 | .ansi-cyan-intense-bg { background-color: #258F8F; } 967 | .ansi-white-fg { color: #C5C1B4; } 968 | .ansi-white-bg { background-color: #C5C1B4; } 969 | .ansi-white-intense-fg { color: #A1A6B2; } 970 | .ansi-white-intense-bg { background-color: #A1A6B2; } 971 | 972 | .ansi-bold { font-weight: bold; } 973 | </style> 974 | <div class="cell border-box-sizing text_cell rendered"> 975 | <div class="prompt input_prompt"> 976 | </div> 977 | <div class="inner_cell"> 978 | <div class="text_cell_render border-box-sizing rendered_html"> 979 | <h1 id="First-post!">First post!<a class="anchor-link" href="#First-post!">¶</a></h1><p>This will be the first post in our new Pelican blog! You can add any code or markdown cells to this Jupyter notebook, and they will be rendered on your blog.</p> 980 | </div> 981 | </div> 982 | </div> 983 | <div class="cell border-box-sizing code_cell rendered"> 984 | <div class="input"> 985 | <div class="prompt input_prompt">In [2]:</div> 986 | <div class="inner_cell"> 987 | <div class="input_area"> 988 | <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">random</span> 989 | 990 | <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span> 991 | </pre></div> 992 | </div> 993 | </div> 994 | </div> 995 | <div class="output_wrapper"> 996 | <div class="output"> 997 | <div class="output_area"><div class="prompt output_prompt">Out[2]:</div> 998 | <div class="output_text output_subarea output_execute_result"> 999 | <pre>4</pre> 1000 | </div> 1001 | </div> 1002 | </div> 1003 | </div> 1004 | </div> 1005 | <div class="cell border-box-sizing code_cell rendered"> 1006 | <div class="input"> 1007 | <div class="prompt input_prompt">In [4]:</div> 1008 | <div class="inner_cell"> 1009 | <div class="input_area"> 1010 | <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span> 1011 | 1012 | <span class="o">%</span><span class="k">matplotlib</span> inline 1013 | 1014 | <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">([</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">])</span> 1015 | </pre></div> 1016 | </div> 1017 | </div> 1018 | </div> 1019 | <div class="output_wrapper"> 1020 | <div class="output"> 1021 | <div class="output_area"><div class="prompt output_prompt">Out[4]:</div> 1022 | <div class="output_text output_subarea output_execute_result"> 1023 | <pre>(array([ 2., 1., 1., 0., 2., 0., 1., 0., 0., 2.]), 1024 | array([ 1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 1025 | 9.1, 10. ]), 1026 | <a list of 10 patch objects>)</pre> 1027 | </div> 1028 | </div> 1029 | <div class="output_area"><div class="prompt"></div> 1030 | <div class="output_png output_subarea "> 1031 | <img src="data:image/png;base64,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 1091 | "> 1092 | </img></div> 1093 | </div> 1094 | </div> 1095 | </div> 1096 | </div> 1097 | <div class="cell border-box-sizing code_cell rendered"> 1098 | <div class="input"> 1099 | <div class="prompt input_prompt">In [ ]:</div> 1100 | <div class="inner_cell"> 1101 | <div class="input_area"> 1102 | <div class=" highlight hl-ipython3"><pre><span></span> 1103 | </pre></div> 1104 | </div> 1105 | </div> 1106 | </div> 1107 | </div> 1108 | <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { 1109 | var mathjaxscript = document.createElement('script'); 1110 | mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#'; 1111 | mathjaxscript.type = 'text/javascript'; 1112 | mathjaxscript.src = '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; 1113 | mathjaxscript[(window.opera ? "innerHTML" : "text")] = 1114 | "MathJax.Hub.Config({" + 1115 | " config: ['MMLorHTML.js']," + 1116 | " TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," + 1117 | " jax: ['input/TeX','input/MathML','output/HTML-CSS']," + 1118 | " extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," + 1119 | " displayAlign: 'center'," + 1120 | " displayIndent: '0em'," + 1121 | " showMathMenu: true," + 1122 | " tex2jax: { " + 1123 | " inlineMath: [ ['$','$'] ], " + 1124 | " displayMath: [ ['$$','$$'] ]," + 1125 | " processEscapes: true," + 1126 | " preview: 'TeX'," + 1127 | " }, " + 1128 | " 'HTML-CSS': { " + 1129 | " styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" + 1130 | " } " + 1131 | "}); "; 1132 | (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); 1133 | } 1134 | </script> 1135 | -------------------------------------------------------------------------------- /output/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blog 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 | 22 | 1170 |
1171 |
1172 |

blogroll

1173 |
1179 |
1180 |
1181 |

social

1182 | 1188 |
1189 |
1190 | 1191 | 1198 | 1199 | 1200 | -------------------------------------------------------------------------------- /output/tags.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blog - Tags 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 | 22 |
23 |

Tags for Blog

24 | 27 |
28 | 29 |
30 |
31 |

blogroll

32 | 38 |
39 |
40 |

social

41 | 47 |
48 |
49 | 50 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /output/theme/css/main.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Smashing HTML5 3 | Date: July 2009 4 | Description: Sample layout for HTML5 and CSS3 goodness. 5 | Version: 1.0 6 | License: MIT 7 | Licensed by: Smashing Media GmbH 8 | Original author: Enrique Ramírez 9 | */ 10 | 11 | /* Imports */ 12 | @import url("reset.css"); 13 | @import url("pygment.css"); 14 | @import url("typogrify.css"); 15 | @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz&subset=latin); 16 | 17 | /***** Global *****/ 18 | /* Body */ 19 | body { 20 | background: #F5F4EF; 21 | color: #000305; 22 | font-size: 87.5%; /* Base font size: 14px */ 23 | font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; 24 | line-height: 1.429; 25 | margin: 0; 26 | padding: 0; 27 | text-align: left; 28 | } 29 | 30 | /* Headings */ 31 | h1 {font-size: 2em } 32 | h2 {font-size: 1.571em} /* 22px */ 33 | h3 {font-size: 1.429em} /* 20px */ 34 | h4 {font-size: 1.286em} /* 18px */ 35 | h5 {font-size: 1.143em} /* 16px */ 36 | h6 {font-size: 1em} /* 14px */ 37 | 38 | h1, h2, h3, h4, h5, h6 { 39 | font-weight: 400; 40 | line-height: 1.1; 41 | margin-bottom: .8em; 42 | font-family: 'Yanone Kaffeesatz', arial, serif; 43 | } 44 | 45 | h3, h4, h5, h6 { margin-top: .8em; } 46 | 47 | hr { border: 2px solid #EEEEEE; } 48 | 49 | /* Anchors */ 50 | a {outline: 0;} 51 | a img {border: 0px; text-decoration: none;} 52 | a:link, a:visited { 53 | color: #C74350; 54 | padding: 0 1px; 55 | text-decoration: underline; 56 | } 57 | a:hover, a:active { 58 | background-color: #C74350; 59 | color: #fff; 60 | text-decoration: none; 61 | text-shadow: 1px 1px 1px #333; 62 | } 63 | 64 | h1 a:hover { 65 | background-color: inherit 66 | } 67 | 68 | /* Paragraphs */ 69 | div.line-block, 70 | p { margin-top: 1em; 71 | margin-bottom: 1em;} 72 | 73 | strong, b {font-weight: bold;} 74 | em, i {font-style: italic;} 75 | 76 | /* Lists */ 77 | ul { 78 | list-style: outside disc; 79 | margin: 0em 0 0 1.5em; 80 | } 81 | 82 | ol { 83 | list-style: outside decimal; 84 | margin: 0em 0 0 1.5em; 85 | } 86 | 87 | li { margin-top: 0.5em; 88 | margin-bottom: 1em; } 89 | 90 | .post-info { 91 | float:right; 92 | margin:10px; 93 | padding:5px; 94 | } 95 | 96 | .post-info p{ 97 | margin-top: 1px; 98 | margin-bottom: 1px; 99 | } 100 | 101 | .readmore { float: right } 102 | 103 | dl {margin: 0 0 1.5em 0;} 104 | dt {font-weight: bold;} 105 | dd {margin-left: 1.5em;} 106 | 107 | pre{background-color: rgb(238, 238, 238); padding: 10px; margin: 10px; overflow: auto;} 108 | 109 | /* Quotes */ 110 | blockquote { 111 | margin: 20px; 112 | font-style: italic; 113 | } 114 | cite {} 115 | 116 | q {} 117 | 118 | div.note { 119 | float: right; 120 | margin: 5px; 121 | font-size: 85%; 122 | max-width: 300px; 123 | } 124 | 125 | /* Tables */ 126 | table {margin: .5em auto 1.5em auto; width: 98%;} 127 | 128 | /* Thead */ 129 | thead th {padding: .5em .4em; text-align: left;} 130 | thead td {} 131 | 132 | /* Tbody */ 133 | tbody td {padding: .5em .4em;} 134 | tbody th {} 135 | 136 | tbody .alt td {} 137 | tbody .alt th {} 138 | 139 | /* Tfoot */ 140 | tfoot th {} 141 | tfoot td {} 142 | 143 | /* HTML5 tags */ 144 | header, section, footer, 145 | aside, nav, article, figure { 146 | display: block; 147 | } 148 | 149 | /***** Layout *****/ 150 | .body {clear: both; margin: 0 auto; width: 800px;} 151 | img.right, figure.right {float: right; margin: 0 0 2em 2em;} 152 | img.left, figure.left {float: left; margin: 0 2em 2em 0;} 153 | 154 | /* 155 | Header 156 | *****************/ 157 | #banner { 158 | margin: 0 auto; 159 | padding: 2.5em 0 0 0; 160 | } 161 | 162 | /* Banner */ 163 | #banner h1 {font-size: 3.571em; line-height: 0;} 164 | #banner h1 a:link, #banner h1 a:visited { 165 | color: #000305; 166 | display: block; 167 | font-weight: bold; 168 | margin: 0 0 .6em .2em; 169 | text-decoration: none; 170 | } 171 | #banner h1 a:hover, #banner h1 a:active { 172 | background: none; 173 | color: #C74350; 174 | text-shadow: none; 175 | } 176 | 177 | #banner h1 strong {font-size: 0.36em; font-weight: normal;} 178 | 179 | /* Main Nav */ 180 | #banner nav { 181 | background: #000305; 182 | font-size: 1.143em; 183 | height: 40px; 184 | line-height: 30px; 185 | margin: 0 auto 2em auto; 186 | padding: 0; 187 | text-align: center; 188 | width: 800px; 189 | 190 | border-radius: 5px; 191 | -moz-border-radius: 5px; 192 | -webkit-border-radius: 5px; 193 | } 194 | 195 | #banner nav ul {list-style: none; margin: 0 auto; width: 800px;} 196 | #banner nav li {float: left; display: inline; margin: 0;} 197 | 198 | #banner nav a:link, #banner nav a:visited { 199 | color: #fff; 200 | display: inline-block; 201 | height: 30px; 202 | padding: 5px 1.5em; 203 | text-decoration: none; 204 | } 205 | #banner nav a:hover, #banner nav a:active, 206 | #banner nav .active a:link, #banner nav .active a:visited { 207 | background: #C74451; 208 | color: #fff; 209 | text-shadow: none !important; 210 | } 211 | 212 | #banner nav li:first-child a { 213 | border-top-left-radius: 5px; 214 | -moz-border-radius-topleft: 5px; 215 | -webkit-border-top-left-radius: 5px; 216 | 217 | border-bottom-left-radius: 5px; 218 | -moz-border-radius-bottomleft: 5px; 219 | -webkit-border-bottom-left-radius: 5px; 220 | } 221 | 222 | /* 223 | Featured 224 | *****************/ 225 | #featured { 226 | background: #fff; 227 | margin-bottom: 2em; 228 | overflow: hidden; 229 | padding: 20px; 230 | width: 760px; 231 | 232 | border-radius: 10px; 233 | -moz-border-radius: 10px; 234 | -webkit-border-radius: 10px; 235 | } 236 | 237 | #featured figure { 238 | border: 2px solid #eee; 239 | float: right; 240 | margin: 0.786em 2em 0 5em; 241 | width: 248px; 242 | } 243 | #featured figure img {display: block; float: right;} 244 | 245 | #featured h2 {color: #C74451; font-size: 1.714em; margin-bottom: 0.333em;} 246 | #featured h3 {font-size: 1.429em; margin-bottom: .5em;} 247 | 248 | #featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;} 249 | #featured h3 a:hover, #featured h3 a:active {color: #fff;} 250 | 251 | /* 252 | Body 253 | *****************/ 254 | #content { 255 | background: #fff; 256 | margin-bottom: 2em; 257 | overflow: hidden; 258 | padding: 20px 20px; 259 | width: 760px; 260 | 261 | border-radius: 10px; 262 | -moz-border-radius: 10px; 263 | -webkit-border-radius: 10px; 264 | } 265 | 266 | /* 267 | Extras 268 | *****************/ 269 | #extras {margin: 0 auto 3em auto; overflow: hidden;} 270 | 271 | #extras ul {list-style: none; margin: 0;} 272 | #extras li {border-bottom: 1px solid #fff;} 273 | #extras h2 { 274 | color: #C74350; 275 | font-size: 1.429em; 276 | margin-bottom: .25em; 277 | padding: 0 3px; 278 | } 279 | 280 | #extras a:link, #extras a:visited { 281 | color: #444; 282 | display: block; 283 | border-bottom: 1px solid #F4E3E3; 284 | text-decoration: none; 285 | padding: .3em .25em; 286 | } 287 | 288 | #extras a:hover, #extras a:active {color: #fff;} 289 | 290 | /* Blogroll */ 291 | #extras .blogroll { 292 | float: left; 293 | width: 615px; 294 | } 295 | 296 | #extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;} 297 | 298 | /* Social */ 299 | #extras .social { 300 | float: right; 301 | width: 175px; 302 | } 303 | 304 | #extras div[class='social'] a { 305 | background-repeat: no-repeat; 306 | background-position: 3px 6px; 307 | padding-left: 25px; 308 | } 309 | 310 | /* Icons */ 311 | .social a[href*='about.me'] {background-image: url('../images/icons/aboutme.png');} 312 | .social a[href*='bitbucket.org'] {background-image: url('../images/icons/bitbucket.png');} 313 | .social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');} 314 | .social a[href*='digg.com'] {background-image: url('../images/icons/digg.png');} 315 | .social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');} 316 | .social a[href*='gitorious.org'] {background-image: url('../images/icons/gitorious.png');} 317 | .social a[href*='github.com'], 318 | .social a[href*='git.io'] { 319 | background-image: url('../images/icons/github.png'); 320 | background-size: 16px 16px; 321 | } 322 | .social a[href*='gittip.com'] {background-image: url('../images/icons/gittip.png');} 323 | .social a[href*='plus.google.com'] {background-image: url('../images/icons/google-plus.png');} 324 | .social a[href*='groups.google.com'] {background-image: url('../images/icons/google-groups.png');} 325 | .social a[href*='news.ycombinator.com'], 326 | .social a[href*='hackernewsers.com'] {background-image: url('../images/icons/hackernews.png');} 327 | .social a[href*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');} 328 | .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.png');} 329 | .social a[href*='reddit.com'] {background-image: url('../images/icons/reddit.png');} 330 | .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');} 331 | .social a[href*='slideshare.net'] {background-image: url('../images/icons/slideshare.png');} 332 | .social a[href*='speakerdeck.com'] {background-image: url('../images/icons/speakerdeck.png');} 333 | .social a[href*='stackoverflow.com'] {background-image: url('../images/icons/stackoverflow.png');} 334 | .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');} 335 | .social a[href*='vimeo.com'] {background-image: url('../images/icons/vimeo.png');} 336 | .social a[href*='youtube.com'] {background-image: url('../images/icons/youtube.png');} 337 | 338 | /* 339 | About 340 | *****************/ 341 | #about { 342 | background: #fff; 343 | font-style: normal; 344 | margin-bottom: 2em; 345 | overflow: hidden; 346 | padding: 20px; 347 | text-align: left; 348 | width: 760px; 349 | 350 | border-radius: 10px; 351 | -moz-border-radius: 10px; 352 | -webkit-border-radius: 10px; 353 | } 354 | 355 | #about .primary {float: left; width: 165px;} 356 | #about .primary strong {color: #C64350; display: block; font-size: 1.286em;} 357 | #about .photo {float: left; margin: 5px 20px;} 358 | 359 | #about .url:link, #about .url:visited {text-decoration: none;} 360 | 361 | #about .bio {float: right; width: 500px;} 362 | 363 | /* 364 | Footer 365 | *****************/ 366 | #contentinfo {padding-bottom: 2em; text-align: right;} 367 | 368 | /***** Sections *****/ 369 | /* Blog */ 370 | .hentry { 371 | display: block; 372 | clear: both; 373 | border-bottom: 1px solid #eee; 374 | padding: 1.5em 0; 375 | } 376 | li:last-child .hentry, #content > .hentry {border: 0; margin: 0;} 377 | #content > .hentry {padding: 1em 0;} 378 | .hentry img{display : none ;} 379 | .entry-title {font-size: 3em; margin-bottom: 10px; margin-top: 0;} 380 | .entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;} 381 | .entry-title a:visited {background-color: #fff;} 382 | 383 | .hentry .post-info * {font-style: normal;} 384 | 385 | /* Content */ 386 | .hentry footer {margin-bottom: 2em;} 387 | .hentry footer address {display: inline;} 388 | #posts-list footer address {display: block;} 389 | 390 | /* Blog Index */ 391 | #posts-list {list-style: none; margin: 0;} 392 | #posts-list .hentry {padding-left: 10px; position: relative;} 393 | 394 | #posts-list footer { 395 | left: 10px; 396 | position: relative; 397 | float: left; 398 | top: 0.5em; 399 | width: 190px; 400 | } 401 | 402 | /* About the Author */ 403 | #about-author { 404 | background: #f9f9f9; 405 | clear: both; 406 | font-style: normal; 407 | margin: 2em 0; 408 | padding: 10px 20px 15px 20px; 409 | 410 | border-radius: 5px; 411 | -moz-border-radius: 5px; 412 | -webkit-border-radius: 5px; 413 | } 414 | 415 | #about-author strong { 416 | color: #C64350; 417 | clear: both; 418 | display: block; 419 | font-size: 1.429em; 420 | } 421 | 422 | #about-author .photo {border: 1px solid #ddd; float: left; margin: 5px 1em 0 0;} 423 | 424 | /* Comments */ 425 | #comments-list {list-style: none; margin: 0 1em;} 426 | #comments-list blockquote { 427 | background: #f8f8f8; 428 | clear: both; 429 | font-style: normal; 430 | margin: 0; 431 | padding: 15px 20px; 432 | 433 | border-radius: 5px; 434 | -moz-border-radius: 5px; 435 | -webkit-border-radius: 5px; 436 | } 437 | #comments-list footer {color: #888; padding: .5em 1em 0 0; text-align: right;} 438 | 439 | #comments-list li:nth-child(2n) blockquote {background: #F5f5f5;} 440 | 441 | /* Add a Comment */ 442 | #add-comment label {clear: left; float: left; text-align: left; width: 150px;} 443 | #add-comment input[type='text'], 444 | #add-comment input[type='email'], 445 | #add-comment input[type='url'] {float: left; width: 200px;} 446 | 447 | #add-comment textarea {float: left; height: 150px; width: 495px;} 448 | 449 | #add-comment p.req {clear: both; margin: 0 .5em 1em 0; text-align: right;} 450 | 451 | #add-comment input[type='submit'] {float: right; margin: 0 .5em;} 452 | #add-comment * {margin-bottom: .5em;} 453 | -------------------------------------------------------------------------------- /output/theme/css/pygment.css: -------------------------------------------------------------------------------- 1 | .hll { 2 | background-color:#eee; 3 | } 4 | .c { 5 | color:#408090; 6 | font-style:italic; 7 | } 8 | .err { 9 | border:1px solid #FF0000; 10 | } 11 | .k { 12 | color:#007020; 13 | font-weight:bold; 14 | } 15 | .o { 16 | color:#666666; 17 | } 18 | .cm { 19 | color:#408090; 20 | font-style:italic; 21 | } 22 | .cp { 23 | color:#007020; 24 | } 25 | .c1 { 26 | color:#408090; 27 | font-style:italic; 28 | } 29 | .cs { 30 | background-color:#FFF0F0; 31 | color:#408090; 32 | } 33 | .gd { 34 | color:#A00000; 35 | } 36 | .ge { 37 | font-style:italic; 38 | } 39 | .gr { 40 | color:#FF0000; 41 | } 42 | .gh { 43 | color:#000080; 44 | font-weight:bold; 45 | } 46 | .gi { 47 | color:#00A000; 48 | } 49 | .go { 50 | color:#303030; 51 | } 52 | .gp { 53 | color:#C65D09; 54 | font-weight:bold; 55 | } 56 | .gs { 57 | font-weight:bold; 58 | } 59 | .gu { 60 | color:#800080; 61 | font-weight:bold; 62 | } 63 | .gt { 64 | color:#0040D0; 65 | } 66 | .kc { 67 | color:#007020; 68 | font-weight:bold; 69 | } 70 | .kd { 71 | color:#007020; 72 | font-weight:bold; 73 | } 74 | .kn { 75 | color:#007020; 76 | font-weight:bold; 77 | } 78 | .kp { 79 | color:#007020; 80 | } 81 | .kr { 82 | color:#007020; 83 | font-weight:bold; 84 | } 85 | .kt { 86 | color:#902000; 87 | } 88 | .m { 89 | color:#208050; 90 | } 91 | .s { 92 | color:#4070A0; 93 | } 94 | .na { 95 | color:#4070A0; 96 | } 97 | .nb { 98 | color:#007020; 99 | } 100 | .nc { 101 | color:#0E84B5; 102 | font-weight:bold; 103 | } 104 | .no { 105 | color:#60ADD5; 106 | } 107 | .nd { 108 | color:#555555; 109 | font-weight:bold; 110 | } 111 | .ni { 112 | color:#D55537; 113 | font-weight:bold; 114 | } 115 | .ne { 116 | color:#007020; 117 | } 118 | .nf { 119 | color:#06287E; 120 | } 121 | .nl { 122 | color:#002070; 123 | font-weight:bold; 124 | } 125 | .nn { 126 | color:#0E84B5; 127 | font-weight:bold; 128 | } 129 | .nt { 130 | color:#062873; 131 | font-weight:bold; 132 | } 133 | .nv { 134 | color:#BB60D5; 135 | } 136 | .ow { 137 | color:#007020; 138 | font-weight:bold; 139 | } 140 | .w { 141 | color:#BBBBBB; 142 | } 143 | .mf { 144 | color:#208050; 145 | } 146 | .mh { 147 | color:#208050; 148 | } 149 | .mi { 150 | color:#208050; 151 | } 152 | .mo { 153 | color:#208050; 154 | } 155 | .sb { 156 | color:#4070A0; 157 | } 158 | .sc { 159 | color:#4070A0; 160 | } 161 | .sd { 162 | color:#4070A0; 163 | font-style:italic; 164 | } 165 | .s2 { 166 | color:#4070A0; 167 | } 168 | .se { 169 | color:#4070A0; 170 | font-weight:bold; 171 | } 172 | .sh { 173 | color:#4070A0; 174 | } 175 | .si { 176 | color:#70A0D0; 177 | font-style:italic; 178 | } 179 | .sx { 180 | color:#C65D09; 181 | } 182 | .sr { 183 | color:#235388; 184 | } 185 | .s1 { 186 | color:#4070A0; 187 | } 188 | .ss { 189 | color:#517918; 190 | } 191 | .bp { 192 | color:#007020; 193 | } 194 | .vc { 195 | color:#BB60D5; 196 | } 197 | .vg { 198 | color:#BB60D5; 199 | } 200 | .vi { 201 | color:#BB60D5; 202 | } 203 | .il { 204 | color:#208050; 205 | } 206 | -------------------------------------------------------------------------------- /output/theme/css/reset.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Reset Stylesheet 3 | Description: Resets browser's default CSS 4 | Author: Eric Meyer 5 | Author URI: http://meyerweb.com/eric/tools/css/reset/ 6 | */ 7 | 8 | /* v1.0 | 20080212 */ 9 | html, body, div, span, applet, object, iframe, 10 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 11 | a, abbr, acronym, address, big, cite, code, 12 | del, dfn, em, font, img, ins, kbd, q, s, samp, 13 | small, strike, strong, sub, sup, tt, var, 14 | b, u, i, center, 15 | dl, dt, dd, ol, ul, li, 16 | fieldset, form, label, legend, 17 | table, caption, tbody, tfoot, thead, tr, th, td { 18 | background: transparent; 19 | border: 0; 20 | font-size: 100%; 21 | margin: 0; 22 | outline: 0; 23 | padding: 0; 24 | vertical-align: baseline; 25 | } 26 | 27 | body {line-height: 1;} 28 | 29 | ol, ul {list-style: none;} 30 | 31 | blockquote, q {quotes: none;} 32 | 33 | blockquote:before, blockquote:after, 34 | q:before, q:after { 35 | content: ''; 36 | content: none; 37 | } 38 | 39 | /* remember to define focus styles! */ 40 | :focus { 41 | outline: 0; 42 | } 43 | 44 | /* remember to highlight inserts somehow! */ 45 | ins {text-decoration: none;} 46 | del {text-decoration: line-through;} 47 | 48 | /* tables still need 'cellspacing="0"' in the markup */ 49 | table { 50 | border-collapse: collapse; 51 | border-spacing: 0; 52 | } -------------------------------------------------------------------------------- /output/theme/css/typogrify.css: -------------------------------------------------------------------------------- 1 | .caps {font-size:.92em;} 2 | .amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} 3 | .dquo {margin-left:-.38em;} 4 | -------------------------------------------------------------------------------- /output/theme/css/wide.css: -------------------------------------------------------------------------------- 1 | @import url("main.css"); 2 | 3 | body { 4 | font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; 5 | } 6 | 7 | .post-info{ 8 | display: none; 9 | } 10 | 11 | #banner nav { 12 | display: none; 13 | -moz-border-radius: 0px; 14 | margin-bottom: 20px; 15 | overflow: hidden; 16 | font-size: 1em; 17 | background: #F5F4EF; 18 | } 19 | 20 | #banner nav ul{ 21 | padding-right: 50px; 22 | } 23 | 24 | #banner nav li{ 25 | float: right; 26 | color: #000; 27 | } 28 | 29 | #banner nav li a { 30 | color: #000; 31 | } 32 | 33 | #banner h1 { 34 | margin-bottom: -18px; 35 | } 36 | 37 | #featured, #extras { 38 | padding: 50px; 39 | } 40 | 41 | #featured { 42 | padding-top: 20px; 43 | } 44 | 45 | #extras { 46 | padding-top: 0px; 47 | padding-bottom: 0px; 48 | } 49 | -------------------------------------------------------------------------------- /output/theme/images/icons/aboutme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/aboutme.png -------------------------------------------------------------------------------- /output/theme/images/icons/bitbucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/bitbucket.png -------------------------------------------------------------------------------- /output/theme/images/icons/delicious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/delicious.png -------------------------------------------------------------------------------- /output/theme/images/icons/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/facebook.png -------------------------------------------------------------------------------- /output/theme/images/icons/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/github.png -------------------------------------------------------------------------------- /output/theme/images/icons/gitorious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/gitorious.png -------------------------------------------------------------------------------- /output/theme/images/icons/gittip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/gittip.png -------------------------------------------------------------------------------- /output/theme/images/icons/google-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/google-groups.png -------------------------------------------------------------------------------- /output/theme/images/icons/google-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/google-plus.png -------------------------------------------------------------------------------- /output/theme/images/icons/hackernews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/hackernews.png -------------------------------------------------------------------------------- /output/theme/images/icons/lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/lastfm.png -------------------------------------------------------------------------------- /output/theme/images/icons/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/linkedin.png -------------------------------------------------------------------------------- /output/theme/images/icons/reddit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/reddit.png -------------------------------------------------------------------------------- /output/theme/images/icons/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/rss.png -------------------------------------------------------------------------------- /output/theme/images/icons/slideshare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/slideshare.png -------------------------------------------------------------------------------- /output/theme/images/icons/speakerdeck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/speakerdeck.png -------------------------------------------------------------------------------- /output/theme/images/icons/stackoverflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/stackoverflow.png -------------------------------------------------------------------------------- /output/theme/images/icons/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/twitter.png -------------------------------------------------------------------------------- /output/theme/images/icons/vimeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/vimeo.png -------------------------------------------------------------------------------- /output/theme/images/icons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dataquestio/jupyter-blog/9d006348787e7831203174051835a846f4052d24/output/theme/images/icons/youtube.png -------------------------------------------------------------------------------- /pelicanconf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- # 3 | from __future__ import unicode_literals 4 | 5 | AUTHOR = 'me' 6 | SITENAME = 'Blog' 7 | SITEURL = '' 8 | 9 | PATH = 'content' 10 | 11 | TIMEZONE = 'America/Los_Angeles' 12 | 13 | DEFAULT_LANG = 'en' 14 | 15 | # Feed generation is usually not desired when developing 16 | FEED_ALL_ATOM = None 17 | CATEGORY_FEED_ATOM = None 18 | TRANSLATION_FEED_ATOM = None 19 | AUTHOR_FEED_ATOM = None 20 | AUTHOR_FEED_RSS = None 21 | 22 | # Blogroll 23 | LINKS = (('Pelican', 'http://getpelican.com/'), 24 | ('Python.org', 'http://python.org/'), 25 | ('Jinja2', 'http://jinja.pocoo.org/'), 26 | ('You can modify those links in your config file', '#'),) 27 | 28 | # Social widget 29 | SOCIAL = (('You can add links in your config file', '#'), 30 | ('Another social link', '#'),) 31 | 32 | DEFAULT_PAGINATION = 10 33 | 34 | MARKUP = ('md', 'ipynb') 35 | 36 | PLUGIN_PATH = './plugins' 37 | PLUGINS = ['ipynb.markup'] 38 | 39 | # Uncomment following line if you want document-relative URLs when developing 40 | #RELATIVE_URLS = True 41 | -------------------------------------------------------------------------------- /publishconf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- # 3 | from __future__ import unicode_literals 4 | 5 | # This file is only used if you use `make publish` or 6 | # explicitly specify it as your config file. 7 | 8 | import os 9 | import sys 10 | sys.path.append(os.curdir) 11 | from pelicanconf import * 12 | 13 | SITEURL = '' 14 | RELATIVE_URLS = False 15 | 16 | FEED_ALL_ATOM = 'feeds/all.atom.xml' 17 | CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml' 18 | 19 | DELETE_OUTPUT_DIRECTORY = True 20 | 21 | # Following items are often useful when publishing 22 | 23 | #DISQUS_SITENAME = "" 24 | #GOOGLE_ANALYTICS = "" 25 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Markdown==2.6.6 2 | pelican==3.6.3 3 | jupyter>=1.0 4 | ipython>=4.0 5 | nbconvert>=4.0 6 | beautifulsoup4 7 | ghp-import==0.4.1 8 | matplotlib==1.5.1 --------------------------------------------------------------------------------