diff --git a/.doit.db.bak b/.doit.db.bak index bf717f66..a3ae6a57 100644 --- a/.doit.db.bak +++ b/.doit.db.bak @@ -1,13 +1,13 @@ -'render_taxonomies:output/categories/slideshow.xml', (35342848, 10286) +'render_taxonomies:output/categories/slideshow.xml', (35342848, 10426) 'render_pages:output/es/posts/how-to-pin-conda.html', (30601216, 19161) 'render_sources:output/posts/trading-logbook-update-3.ipynb', (8935936, 273) -'render_taxonomies:output/categories/first_post.xml', (5112320, 644) +'render_taxonomies:output/categories/first_post.xml', (5112320, 656) 'render_tags:output/es/categories/osx.html', (3075072, 2594) -'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (1223168, 743) -'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.html', (561152, 593) +'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (1223168, 754) +'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.html', (561152, 604) 'render_pages:output/es/posts/zen-mode-extension-for-the-ipython-notebook.html', (33943552, 19273) 'render_tags:output/es/categories/slideshow.html', (4967424, 8656) -'render_galleries:output/es/galleries/index.html', (29903360, 18311) +'render_galleries:output/es/galleries/index.html', (37337600, 19112) 'render_sources:output/posts/rise-meets-jupyterlab.ipynb', (8466432, 267) 'render_posts:cache/posts/under-the-sea-en-la-plata.html.es', (331264, 555) 'render_tags:output/es/categories/first_post.xml', (823296, 1047) @@ -21,10 +21,10 @@ 'render_tags:output/categories/videos.html', (3086336, 3544) 'render_sources:output/es/posts/how-to-pin-conda.ipynb', (2403328, 353) 'render_pages:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (33679872, 19316) -'render_taxonomies:output/2016/05/index.html', (30651392, 6184) +'render_taxonomies:output/2016/05/index.html', (38427648, 7314) 'render_tags:output/categories/pip.html', (3412480, 2594) 'render_taxonomies:output/es/categories/threads.html', (30280704, 7434) -'render_taxonomies:output/categories/nbviewer.xml', (5170176, 904) +'render_taxonomies:output/categories/nbviewer.xml', (5170176, 916) 'render_galleries:output/es/galleries/rise', (9375232, 145) 'render_taxonomies:output/categories/pip.html', (31123456, 10714) 'render_pages:output/es/posts/a-simple-overview-of-viper.html', (32166912, 19923) @@ -33,51 +33,51 @@ 'render_taxonomies:output/categories/performance.html', (33621504, 8382) 'render_taxonomies:output/es/categories/pdf.html', (33605632, 7545) 'render_tags:output/categories/win.xml', (3676160, 636) -'render_taxonomies:output/es/categories/binder.xml', (19898880, 1402) -'copy_assets:output/assets/images/glyphicons-halflings.png', (480256, 316) +'render_taxonomies:output/es/categories/binder.xml', (19898880, 1413) +'copy_assets:output/assets/images/glyphicons-halflings.png', (480256, 322) 'render_sources:output/posts/pyconar-2013.ipynb', (1135616, 249) 'render_tags:output/es/categories/first_post.html', (2833408, 3968) -'render_posts:cache/posts/reveal_converter-mini-tutorial.html', (182784, 568) +'render_posts:cache/posts/reveal_converter-mini-tutorial.html', (182784, 580) 'render_galleries:output/galleries/bokehmagic', (96256, 145) -'render_taxonomies:output/es/categories/local.xml', (7352320, 918) +'render_taxonomies:output/es/categories/local.xml', (7352320, 929) 'render_pages:output/posts/nikolas-zen-theme-finally-released.html', (33543680, 19210) -'render_posts:cache/posts/rise-meets-jupyterlab.html', (8386560, 394) +'render_posts:cache/posts/rise-meets-jupyterlab.html', (8386560, 400) 'render_pages', (741376, 56) 'render_pages:output/es/posts/zen-themes-updated.html', (33719296, 19099) 'render_sources:output/es/posts/under-the-sea-en-la-plata.ipynb', (39424, 275) 'render_taxonomies:output/es/categories/minimap.html', (34433024, 7489) 'render_pages:output/es/posts/nikola-nbconvert.html', (31951360, 19443) -'render_taxonomies:output/es/index-4.html', (32976896, 20433) +'render_taxonomies:output/es/index-4.html', (39090688, 20735) 'render_tags:output/es/categories/videos.html', (4097024, 3544) 'render_pages:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (30223872, 19414) 'render_posts:timeline_changes', (2141696, 109) -'create_bundles:output/assets/css/all.css', (1443840, 762) +'create_bundles:output/assets/css/all.css', (1443840, 784) 'render_pages:output/posts/my-ipython-powered-semi-automatic-git-workflow.html', (34012160, 19296) -'render_galleries:output/galleries/bokehmagic/index.html', (29637120, 19467) +'render_galleries:output/galleries/bokehmagic/index.html', (37142528, 20879) 'render_tags:output/es/categories/talks.xml', (433664, 1181) 'render_tags:output/categories/config.xml', (575488, 3082) -'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (2059776, 728) +'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (2059776, 740) 'render_tags:output/es/categories/spellcheck.html', (4800000, 3803) -'render_taxonomies:output/es/2013/index.html', (30029312, 5788) +'render_taxonomies:output/es/2013/index.html', (37065216, 6607) 'copy_assets:output/assets/js/baguetteBox.js', (29861376, 1117) -'render_galleries:output/galleries/index.html', (29492736, 18311) +'render_galleries:output/galleries/index.html', (37590016, 19112) 'render_pages:output/es/posts/rise-510-is-out.html', (33507328, 11860) -'copy_assets:output/assets/css/html4css1.css', (29380096, 1112) +'copy_assets:output/assets/css/html4css1.css', (29380096, 1290) 'render_sources:output/posts/zen-mode-extension-for-the-ipython-notebook.ipynb', (164864, 311) 'redirect', (56832, 56) 'render_tags:output/categories/pdf.html', (4884480, 3816) 'render_sources:output/posts/we-are-above-1000-stars.ipynb', (9292288, 271) 'render_tags:output/categories/pinned.xml', (2697728, 526) 'render_tags:output/es/categories/config.xml', (606208, 3082) -'render_taxonomies:output/categories/pdf.xml', (6673920, 889) -'render_galleries:output/galleries/loadwrite/index.html', (29169152, 19199) +'render_taxonomies:output/categories/pdf.xml', (6673920, 902) +'render_galleries:output/galleries/loadwrite/index.html', (36928512, 20474) 'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.html.es', (1043456, 605) 'render_taxonomies:output/categories/connectivity.html', (33258496, 7574) -'render_galleries:output/es/galleries/loadwrite/index.html', (29943296, 19199) +'render_galleries:output/es/galleries/loadwrite/index.html', (37357056, 20474) 'render_sources:output/posts/under-the-sea-en-la-plata.ipynb', (139776, 275) 'render_tags:output/categories/trading.html', (4249088, 4239) 'render_taxonomies:output/categories/rise.html', (34781696, 12284) -'render_galleries:output/galleries/Facu_RN/DSC05928.JPG', (897536, 276) +'render_galleries:output/galleries/Facu_RN/DSC05928.JPG', (897536, 283) 'render_indexes', (586752, 56) 'render_tags:output/categories/less.html', (3739136, 4343) 'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html.es', (123904, 705) @@ -85,44 +85,44 @@ 'render_sources:output/es/posts/a-simple-overview-of-viper.txt', (883200, 481) 'render_tags:output/categories/slideshow.xml', (4760064, 5735) 'render_galleries:output/es/galleries/.ipynb_checkpoints/rss.xml', (9370112, 4439) -'render_taxonomies:output/es/2012/10/index.html', (34118144, 6863) +'render_taxonomies:output/es/2012/10/index.html', (39642624, 7999) 'render_archive:output/es/2016/08/index.html', (3737088, 1798) 'render_taxonomies:output/categories/local.html', (32209408, 7574) -'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.html', (899584, 623) +'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.html', (899584, 635) 'render_tags:output/categories/spellcheck.xml', (585216, 882) 'render_tags:output/es/categories/connectivity.html', (4724736, 3845) -'render_taxonomies:output/es/index-1.html', (30578176, 22988) +'render_taxonomies:output/es/index-1.html', (39598080, 23334) 'render_archive:output/2013/12/index.html', (4862464, 2575) 'render_tags:output/es/categories/politics.xml', (909824, 928) -'render_taxonomies:output/es/categories/index.html', (35871744, 3590) -'render_taxonomies:output/es/2012/12/index.html', (33341952, 6223) -'render_taxonomies:output/es/2012/11/index.html', (30362624, 6157) +'render_taxonomies:output/es/categories/index.html', (37729792, 4347) +'render_taxonomies:output/es/2012/12/index.html', (38677504, 7353) +'render_taxonomies:output/es/2012/11/index.html', (38704640, 7288) 'render_sources:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.ipynb', (1717760, 327) 'render_sources:output/posts/powered-by-nikola.txt', (42496, 254) 'render_tags:output/es/categories/life.xml', (842240, 1041) -'render_taxonomies:output/categories/connectivity.xml', (5730304, 918) +'render_taxonomies:output/categories/connectivity.xml', (5730304, 929) 'render_posts:cache/posts/trading-logbook-update-22-nov-2013.html.es', (953344, 600) 'render_pages:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (33293312, 19328) -'copy_assets:output/assets/css/rst.css', (13465088, 1419) +'copy_assets:output/assets/css/rst.css', (37043200, 1591) 'render_galleries:output/galleries/loadwrite', (1909248, 145) 'render_galleries:output/es/galleries/trades', (2388992, 145) 'render_sources:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb.ipynb', (2033152, 311) -'render_galleries:output/es/galleries/deploy/rss.xml', (29432832, 18585) +'render_galleries:output/es/galleries/deploy/rss.xml', (36994048, 19392) 'render_sources:output/posts/one-line-deployment-of-your-site-to-gh-pages.ipynb', (1254912, 313) 'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.html.es', (1119744, 655) 'render_sources:output/es/posts/we-are-above-1000-stars.ipynb', (9346560, 271) -'render_galleries:output/galleries/trades/1.png', (2037760, 259) +'render_galleries:output/galleries/trades/1.png', (2037760, 265) 'render_taxonomies:output/categories/politics.html', (32508416, 7236) -'render_taxonomies:output/categories/pyconar.xml', (5970432, 617) -'render_taxonomies:output/categories/zen.xml', (6849024, 1925) +'render_taxonomies:output/categories/pyconar.xml', (5970432, 629) +'render_taxonomies:output/categories/zen.xml', (6849024, 1959) 'render_sources:output/es/posts/blogging-with-nikola-and-ipython.ipynb', (284160, 290) -'render_taxonomies:output/es/rss.xml', (36037632, 42037) +'render_taxonomies:output/es/rss.xml', (39705600, 42679) 'render_pages:output/es/posts/slider-for-nbconvert.html', (33093120, 18979) -'render_taxonomies:output/2013/11/index.html', (31287296, 6985) +'render_taxonomies:output/2013/11/index.html', (37834752, 8134) 'render_taxonomies:output/categories/nikola.html', (36207616, 18453) 'render_taxonomies:output/es/categories/slideshow.html', (35191296, 16942) -'render_galleries:output/galleries/zenmode/pic2.png', (1044480, 268) -'render_taxonomies:output/es/categories/ipyscript.xml', (5711872, 814) +'render_galleries:output/galleries/zenmode/pic2.png', (1044480, 276) +'render_taxonomies:output/es/categories/ipyscript.xml', (5711872, 827) 'render_pages:output/posts/beginning.html', (32366592, 19026) 'render_tags:output/es/categories/css.html', (2908160, 4327) 'render_galleries:output/galleries/zenmode', (1408512, 145) @@ -139,7 +139,7 @@ 'render_archive:output/2013/09/index.html', (4065792, 2575) 'render_tags:output/es/categories/politics.html', (2959872, 3849) 'render_sources:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.ipynb', (995840, 327) -'render_galleries:output/es/galleries/Inundacion/rss.xml', (29400576, 18979) +'render_galleries:output/es/galleries/Inundacion/rss.xml', (37214208, 19785) 'render_posts', (1870848, 56) 'render_taxonomies:output/categories/scipycon.html', (33244160, 7350) 'render_tags:output/categories/local.xml', (738816, 924) @@ -150,70 +150,70 @@ 'render_posts:cache/posts/powered-by-nikola.html.es', (1808896, 760) 'render_taxonomies:output/categories/pyconar.html', (33597952, 7273) 'render_galleries:output/galleries/loadwrite/themes1.thumbnail.png', (976384, 279) -'render_taxonomies:output/es/categories/zenmode.xml', (5310464, 834) +'render_taxonomies:output/es/categories/zenmode.xml', (5310464, 846) 'render_tags:output/es/categories/minimap.xml', (1729536, 839) 'render_posts:cache/posts/trading-logbook-update-3.html.es', (8869888, 409) 'render_taxonomies:output/es/categories/trading.html', (31795712, 8382) 'render_tags:output/categories/osx.xml', (4865536, 636) -'render_taxonomies:output/es/categories/pdf.xml', (5295616, 889) -'render_taxonomies:output/2013/08/index.html', (30369280, 9849) -'render_taxonomies:output/categories/scipycon.xml', (7177728, 694) +'render_taxonomies:output/es/categories/pdf.xml', (5295616, 902) +'render_taxonomies:output/2013/08/index.html', (39988224, 11047) +'render_taxonomies:output/categories/scipycon.xml', (7177728, 705) 'render_tags:output/es/categories/flood.html', (3667968, 3629) 'render_tags:output/es/categories/threads.html', (4843520, 3705) 'render_taxonomies:output/categories/viper.html', (31106560, 8881) 'render_galleries:output/galleries/bokehmagic/sin2.thumbnail.png', (704512, 275) 'render_sources:output/posts/live-trading-logbook.ipynb', (292352, 265) 'render_tags:output/categories/format.xml', (379392, 980) -'render_posts:cache/posts/rise-500-is-out.html', (8189952, 376) +'render_posts:cache/posts/rise-500-is-out.html', (8189952, 382) 'render_tags:output/categories/workflow.html', (4315648, 7002) -'render_galleries:output/galleries/loadwrite/themes1.png', (984064, 277) -'render_taxonomies:output/es/categories/trading.xml', (8719872, 1726) -'render_galleries:output/galleries/twitter/rss.xml', (29520896, 18588) +'render_galleries:output/galleries/loadwrite/themes1.png', (984064, 284) +'render_taxonomies:output/es/categories/trading.xml', (8719872, 1755) +'render_galleries:output/galleries/twitter/rss.xml', (37530112, 19395) 'render_pages:output/es/posts/improving-viper-slideshows-styling.html', (33699328, 19619) 'render_tags:output/es/categories/less.xml', (1848832, 1422) -'render_taxonomies:output/categories/config.xml', (18713088, 3041) -'render_taxonomies:output/categories/workflow.xml', (31613952, 4614) +'render_taxonomies:output/categories/config.xml', (39075840, 3088) +'render_taxonomies:output/categories/workflow.xml', (31613952, 4678) 'render_galleries:output/es/galleries/spellchecker', (2387456, 145) -'copy_assets:output/assets/js/jquery-1.10.2.min.js', (2032640, 300) -'render_galleries:output/galleries/rise/1004.png', (9037824, 261) +'copy_assets:output/assets/js/jquery-1.10.2.min.js', (2032640, 306) +'render_galleries:output/galleries/rise/1004.png', (9037824, 269) 'render_taxonomies:output/categories/workflow.html', (35532800, 11270) 'render_galleries:output/galleries', (560640, 145) -'render_galleries:output/galleries/Inundacion/inundacion1.png', (1082880, 288) -'render_posts:cache/posts/customizing-your-ipython-slides.html', (1243136, 573) -'render_galleries:output/es/galleries/trades/rss.xml', (29381632, 18865) +'render_galleries:output/galleries/Inundacion/inundacion1.png', (1082880, 296) +'render_posts:cache/posts/customizing-your-ipython-slides.html', (1243136, 584) +'render_galleries:output/es/galleries/trades/rss.xml', (37632000, 19669) 'render_posts:cache/posts/paraguay.html.es', (290304, 677) 'render_galleries:output/galleries/bokehmagic/sin.thumbnail.png', (1837056, 273) 'render_posts:cache/stories/about-me.html', (29014016, 542) -'render_galleries:output/es/galleries/rise/index.html', (34482176, 14039) +'render_galleries:output/es/galleries/rise/index.html', (36978688, 15287) 'render_archive', (1409024, 56) -'render_taxonomies:output/es/categories/gh-pages.xml', (22612992, 3567) +'render_taxonomies:output/es/categories/gh-pages.xml', (38478848, 3611) 'render_taxonomies:output/categories/win.html', (32519680, 10714) 'render_tags:output/es/categories/ipython.html', (4888576, 27669) 'render_sources:output/posts/dont-write-scripts-just-write-ipyscripts.ipynb', (1758208, 306) 'render_tags:output/categories/ipytmpl.html', (3333120, 3784) 'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html.es', (1846272, 684) 'render_pages:output/es/posts/blogging-with-nikola-and-ipython.html', (30412288, 19197) -'render_taxonomies:output/categories/viper.xml', (6474752, 2225) +'render_taxonomies:output/categories/viper.xml', (6474752, 2265) 'render_tags:output/categories/reveal.xml', (4589568, 6132) 'render_taxonomies:output/categories/jinja.html', (30964736, 9697) 'render_tags', (282112, 56) 'render_tags:output/es/categories/pdf.html', (3089920, 3816) 'render_archive:output/es/2013/02/index.html', (4456448, 2575) -'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (550400, 733) -'render_galleries:output/es/galleries/spellchecker/rss.xml', (29694976, 18915) +'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (550400, 745) +'render_galleries:output/es/galleries/spellchecker/rss.xml', (37549568, 19722) 'render_tags:output/categories/videos.xml', (310272, 623) -'render_taxonomies:output/2013/01/index.html', (31302656, 6441) +'render_taxonomies:output/2013/01/index.html', (38921728, 7579) 'render_sources:output/es/posts/rise-500-is-out.ipynb', (8220672, 255) 'render_archive:output/2012/09/index.html', (4521472, 2575) 'render_tags:output/es/categories/local.html', (3694080, 3845) 'copy_assets:output/assets/css/baguetteBox.css', (29491200, 1124) 'render_posts:cache/posts/blogging-with-nikola-and-ipython.html.es', (480768, 591) 'render_sources:output/es/posts/scipycon-argentina-2013.ipynb', (795648, 271) -'render_taxonomies:output/es/categories/typescript.xml', (8305152, 551) +'render_taxonomies:output/es/categories/typescript.xml', (8305152, 557) 'render_pages:output/posts/different-ways-to-lead-an-open-source-project.html', (33803776, 19287) -'render_taxonomies:output/es/categories/videos.xml', (7241216, 617) +'render_taxonomies:output/es/categories/videos.xml', (7241216, 629) 'render_posts:cache/posts/rise-meets-jupyterlab.html.es', (8299008, 399) -'render_taxonomies:output/es/categories/less.xml', (5920768, 1407) +'render_taxonomies:output/es/categories/less.xml', (5920768, 1429) 'render_sources:output/posts/slider-for-nbconvert.txt', (941568, 261) 'render_tags:output/categories/conda.xml', (4847616, 1026) 'render_pages:output/posts/dont-write-scripts-just-write-ipyscripts.html', (30431744, 19253) @@ -229,15 +229,15 @@ 'render_tags:output/es/categories/pinned.xml', (2667008, 526) 'render_galleries:output/galleries/twitter/1.thumbnail.png', (267776, 263) 'render_archive:output/2016/index.html', (4100608, 2560) -'render_galleries:output/es/galleries/binder/index.html', (29421568, 11147) -'render_taxonomies:output/es/categories/twitter.xml', (7297024, 889) -'render_posts:cache/posts/paraguay.html', (61440, 450) -'render_taxonomies:output/categories/theme.xml', (6200832, 1407) +'render_galleries:output/es/galleries/binder/index.html', (37468672, 12106) +'render_taxonomies:output/es/categories/twitter.xml', (7297024, 900) +'render_posts:cache/posts/paraguay.html', (61440, 462) +'render_taxonomies:output/categories/theme.xml', (6200832, 1429) 'render_tag_cloud', (5043200, 56) -'render_galleries:output/galleries/binder/terminal.png', (16535040, 274) +'render_galleries:output/galleries/binder/terminal.png', (16535040, 282) 'render_tags:output/categories/politics.html', (4629504, 3501) 'render_taxonomies:output/es/categories/reveal.html', (34737664, 17340) -'render_taxonomies:output/es/2016/08/index.html', (32847360, 6319) +'render_taxonomies:output/es/2016/08/index.html', (39999488, 7450) 'render_pages:output/posts/zen-mode-extension-for-the-ipython-notebook.html', (32950272, 19273) 'render_sources:output/es/posts/pyconar-2013.ipynb', (321024, 249) 'render_tags:output/categories/workflow.xml', (1924608, 4081) @@ -246,20 +246,20 @@ 'render_pages:output/posts/blogging-with-nikola-and-ipython.html', (32147456, 19197) 'render_galleries:output/galleries/deploy/1.thumbnail.png', (2145792, 262) 'render_taxonomies:output/es/categories/connectivity.html', (31681024, 7574) -'copy_files:output/Test.html', (640000, 236) -'render_taxonomies:output/es/2016/06/index.html', (32751616, 6208) +'copy_files:output/Test.html', (640000, 242) +'render_taxonomies:output/es/2016/06/index.html', (37912576, 7339) 'sitemap', (2054656, 56) -'render_taxonomies:output/categories/life.xml', (7225856, 1040) +'render_taxonomies:output/categories/life.xml', (7225856, 1055) 'render_tags:output/es/categories/mipyex.xml', (99328, 3343) 'render_archive:output/2013/index.html', (3026944, 2560) 'render_tags:output/categories/aikido.xml', (2381824, 501) 'render_tags:output/es/categories/pip.xml', (4677632, 636) -'render_galleries:output/es/galleries/twitter/index.html', (29359616, 18571) +'render_galleries:output/es/galleries/twitter/index.html', (37122560, 19518) 'render_pages:output/es/posts/teasers-with-the-ipython-notebook-plugin.html', (30974464, 19251) 'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.html.es', (242688, 624) 'render_sources:output/posts/paraguay.txt', (271872, 236) -'render_taxonomies:output/rss.xml', (36379136, 36708) -'render_posts:cache/posts/pyconar-2013.html', (1847296, 478) +'render_taxonomies:output/rss.xml', (37979136, 37271) +'render_posts:cache/posts/pyconar-2013.html', (1847296, 490) 'render_taxonomies:output/categories/reveal.html', (34817536, 17340) 'render_galleries:output/galleries/Facu_RN/DSC05917.thumbnail.JPG', (1649152, 278) 'render_taxonomies:output/es/categories/jinja.html', (31383040, 9697) @@ -270,117 +270,117 @@ 'render_pages:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (33519616, 19343) 'render_sources:output/es/posts/teasers-with-the-ipython-notebook-plugin.ipynb', (897024, 305) 'render_pages:output/posts/pyconar-2013.html', (34281472, 19056) -'render_galleries:output/galleries/spellchecker/index.html', (29657088, 18879) +'render_galleries:output/galleries/spellchecker/index.html', (37569536, 19985) 'render_tags:output/categories/ipyscript.html', (4690432, 3742) -'render_taxonomies:output/archive.html', (30054912, 5788) +'render_taxonomies:output/archive.html', (36875264, 6607) 'render_sources:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.ipynb', (1159680, 355) 'render_tags:output/categories/threads.xml', (1158656, 784) 'render_taxonomies:output/es/categories/extension.html', (33866752, 11471) -'render_galleries:output/galleries/loadwrite/writer1.png', (2055168, 278) -'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.html', (558080, 618) +'render_galleries:output/galleries/loadwrite/writer1.png', (2055168, 286) +'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.html', (558080, 630) 'render_sources:output/es/posts/facundo.txt', (1487872, 235) 'render_galleries:output/galleries/.ipynb_checkpoints', (9271296, 145) -'render_taxonomies:output/es/categories/theme.xml', (6377472, 1407) -'render_taxonomies:output/es/categories/zen.xml', (7110144, 1925) +'render_taxonomies:output/es/categories/theme.xml', (6377472, 1429) +'render_taxonomies:output/es/categories/zen.xml', (7110144, 1959) 'robots_file', (1241600, 56) -'render_galleries:output/galleries/trades/rss.xml', (29676032, 18865) -'copy_assets:output/assets/css/baguetteBox.min.css', (29101568, 1148) +'render_galleries:output/galleries/trades/rss.xml', (37163520, 19669) +'copy_assets:output/assets/css/baguetteBox.min.css', (29101568, 1334) 'render_pages:output/es/posts/live-trading-logbook.html', (32022016, 19112) 'render_archive:output/2013/05/index.html', (4859392, 2575) 'render_archive:output/2013/04/index.html', (3793408, 2575) 'render_tags:output/categories/magic.html', (3636224, 3742) 'render_galleries:output/galleries/Facu_RN/DSC05903.thumbnail.JPG', (1571840, 278) 'render_tags:output/es/categories/linux.html', (4337664, 2594) -'render_taxonomies:output/2012/11/index.html', (30332928, 6157) -'render_galleries:output/galleries/binder/rss.xml', (29136896, 11163) -'render_taxonomies:output/categories/python.xml', (36142592, 31999) -'create_bundles:output/assets/js/all-nocdn.js', (65536, 657) +'render_taxonomies:output/2012/11/index.html', (38301184, 7288) +'render_galleries:output/galleries/binder/rss.xml', (37480960, 11970) +'render_taxonomies:output/categories/python.xml', (37939712, 32491) +'create_bundles:output/assets/js/all-nocdn.js', (65536, 679) 'render_taxonomies', (6202368, 56) 'render_taxonomies:output/es/categories/spellcheck.html', (32839680, 7533) 'render_pages:output/es/posts/different-ways-to-lead-an-open-source-project.html', (32255488, 19287) -'create_bundles:output/assets/css/all-nocdn.css', (598016, 883) -'render_taxonomies:output/es/categories/jupyter.xml', (36270080, 8187) -'render_taxonomies:output/categories/zenmode.xml', (5421568, 834) -'render_posts:cache/posts/live-trading-logbook.html', (1222144, 518) +'create_bundles:output/assets/css/all-nocdn.css', (598016, 911) +'render_taxonomies:output/es/categories/jupyter.xml', (38415360, 8259) +'render_taxonomies:output/categories/zenmode.xml', (5421568, 846) +'render_posts:cache/posts/live-trading-logbook.html', (1222144, 530) 'render_sources:output/es/posts/ipython-plugin-for-nikola-updated.ipynb', (2060800, 291) -'render_galleries:output/galleries/Facu_RN/DSC05903.JPG', (193536, 276) +'render_galleries:output/galleries/Facu_RN/DSC05903.JPG', (193536, 284) 'render_tags:output/es/categories/magic.html', (4823552, 3742) 'render_galleries', (1016832, 56) -'render_posts:cache/posts/hello-world-again.html', (859648, 496) +'render_posts:cache/posts/hello-world-again.html', (859648, 508) 'render_pages:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (30512128, 19328) 'render_sources:output/es/posts/make-your-slides-with-ipython.ipynb', (975360, 283) 'render_archive:output/es/2012/12/index.html', (3698176, 2575) 'render_tags:output/es/categories/pdf.xml', (1089024, 895) 'render_pages:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (31884288, 19406) 'render_indexes:output/es/index-3.html', (3154432, 14063) -'render_taxonomies:output/es/categories/ipython.xml', (22235648, 26094) +'render_taxonomies:output/es/categories/ipython.xml', (39426560, 26516) 'render_archive:output/es/2014/03/index.html', (3451904, 2575) 'render_taxonomies:output/categories/linux.html', (34134016, 10714) 'render_tags:output/es/categories/reveal.html', (2845696, 9053) -'render_galleries:output/galleries/twitter/1.png', (292864, 261) +'render_galleries:output/galleries/twitter/1.png', (292864, 269) 'render_sources:output/es/posts/a-new-nikolas-theme-for-my-site-zen.ipynb', (999424, 295) 'render_sources:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.ipynb', (60416, 327) 'render_taxonomies:output/es/categories/aikido.html', (32186880, 8070) -'render_galleries:output/es/galleries/rise/rss.xml', (34466816, 14095) +'render_galleries:output/es/galleries/rise/rss.xml', (36839424, 14901) 'render_posts:cache/posts/scipycon-argentina-2013.html.es', (991744, 539) 'render_tags:output/es/categories/toggle.html', (3655168, 4463) 'render_taxonomies:output/categories/jupyterlab.html', (34393600, 7881) 'render_taxonomies:output/categories/github.html', (33251840, 6235) -'render_taxonomies:output/es/2014/03/index.html', (30863872, 6587) +'render_taxonomies:output/es/2014/03/index.html', (39331840, 7724) 'render_archive:output/es/2013/11/index.html', (2749952, 2575) 'render_archive:output/2014/index.html', (4032000, 2560) 'render_sources:output/posts/hello-world-again.txt', (60928, 254) -'render_taxonomies:output/categories/ipytmpl.xml', (6865408, 857) -'copy_assets:output/assets/js/jquery.timeago.js', (2031616, 293) +'render_taxonomies:output/categories/ipytmpl.xml', (6865408, 869) +'copy_assets:output/assets/js/jquery.timeago.js', (2031616, 299) 'render_tags:output/es/categories/blog.xml', (770560, 7665) 'render_tags:output/es/categories/python.xml', (2932224, 27527) 'render_tags:output/es/categories/zenmode.xml', (1253888, 840) -'sitemap:output/sitemap.xml', (36295168, 83872) +'sitemap:output/sitemap.xml', (40273408, 117784) 'render_tags:output/es/categories/facu.xml', (2298368, 501) 'render_pages:output/posts/one-line-deployment-of-your-site-to-gh-pages.html', (31198208, 19280) 'render_tags:output/categories/viper.html', (4916736, 5163) 'render_posts:cache/posts/rise-500-is-out.html.es', (7987712, 381) -'copy_assets:output/assets/fonts/fontawesome-webfont.ttf', (1816576, 312) -'render_taxonomies:output/es/categories/nikola.xml', (36278272, 13541) +'copy_assets:output/assets/fonts/fontawesome-webfont.ttf', (1816576, 316) +'render_taxonomies:output/es/categories/nikola.xml', (36278272, 13730) 'render_sources:output/es/posts/hello-world-again.txt', (968192, 445) 'render_tags:output/es/categories/aikido.html', (2796032, 3422) -'render_taxonomies:output/es/categories/slideshow.xml', (35166720, 10286) +'render_taxonomies:output/es/categories/slideshow.xml', (35166720, 10426) 'render_taxonomies:output/es/categories/twitter.html', (32902656, 7545) 'render_tags:output/es/categories/git.xml', (1166848, 3941) 'render_galleries:output/es/galleries/zenmode', (2387968, 145) 'render_tags:output/es/categories/theme.html', (3601408, 4343) -'render_galleries:output/es/galleries/rss.xml', (29083136, 18307) +'render_galleries:output/es/galleries/rss.xml', (37734400, 19108) 'render_pages:output/es/posts/hide-the-input-cells-from-your-ipython-slides.html', (33273856, 19286) 'render_tags:output/categories/linux.xml', (4322816, 636) -'render_taxonomies:output/2014/03/index.html', (32553472, 6587) -'render_taxonomies:output/es/categories/nbconvert.xml', (7273472, 9401) +'render_taxonomies:output/2014/03/index.html', (38620160, 7724) +'render_taxonomies:output/es/categories/nbconvert.xml', (7273472, 9559) 'render_sources:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides.ipynb', (758272, 335) -'render_taxonomies:output/categories/ipyscript.xml', (5275136, 814) +'render_taxonomies:output/categories/ipyscript.xml', (5275136, 827) 'render_tags:output/categories/nbconvert.xml', (1785856, 9542) 'render_pages:output/posts/a-simple-overview-of-viper.html', (34254336, 19146) 'render_archive:output/es/2016/05/index.html', (4428288, 2575) 'render_tags:output/categories/nbviewer.html', (4736512, 3831) 'render_archive:output/2016/05/index.html', (3832832, 2575) -'render_taxonomies:output/categories/osx.xml', (28794880, 4058) +'render_taxonomies:output/categories/osx.xml', (39297024, 4103) 'render_tags:output/es/categories/connectivity.xml', (549376, 924) 'render_sources:output/es/posts/rise-400b1-is-available-please-test-it.ipynb', (4707840, 301) 'render_tags:output/categories/local.html', (4728832, 3845) -'render_galleries:output/galleries/binder/index.html', (29782016, 11147) +'render_galleries:output/galleries/binder/index.html', (37692416, 12106) 'render_galleries:output/galleries/bokehmagic/sin3.thumbnail.png', (54784, 275) 'render_taxonomies:output/categories/zenmode.html', (33778176, 7490) -'copy_assets:output/assets/js/html5shiv-printshiv.min.js', (29188608, 1184) +'copy_assets:output/assets/js/html5shiv-printshiv.min.js', (29188608, 1375) 'render_tags:output/es/categories/linux.xml', (4946944, 636) 'render_tags:output/es/categories/aikido.xml', (2161152, 501) 'render_taxonomies:output/es/categories/config.html', (31043584, 9697) 'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html.es', (15373824, 506) 'render_tags:output/es/categories/viper.html', (4849152, 6288) 'render_posts:cache/posts/zen-themes-updated.html.es', (1413120, 520) -'render_taxonomies:output/categories/facundo.xml', (6355968, 1040) +'render_taxonomies:output/categories/facundo.xml', (6355968, 1055) 'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html.es', (907776, 644) -'copy_assets:output/assets/css/nikola_ipython.css', (163840, 301) +'copy_assets:output/assets/css/nikola_ipython.css', (163840, 307) 'render_tags:output/categories/connectivity.xml', (567808, 924) 'copy_files:output/CNAME', (1718272, 229) -'render_taxonomies:output/es/index-3.html', (33364992, 20391) +'render_taxonomies:output/es/index-3.html', (38936064, 20688) 'render_galleries:output/galleries/Facu_RN', (622080, 145) 'render_archive:output/es/archive.html', (4063232, 2560) 'render_tags:output/categories/themes.xml', (737280, 1315) @@ -391,17 +391,17 @@ 'render_pages:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (32649216, 19343) 'render_pages:output/posts/how-to-pin-conda.html', (31925248, 19161) 'render_posts:cache/posts/nikolas-zen-theme-finally-released.html.es', (1192448, 599) -'render_taxonomies:output/categories/ipython.xml', (32878592, 23680) +'render_taxonomies:output/categories/ipython.xml', (40204288, 24074) 'render_sources:output/posts/rise-510-is-out.ipynb', (12610048, 255) 'render_pages:output/es/posts/pyconar-2013.html', (30671872, 19056) 'render_indexes:output/index-3.html', (4986368, 14063) -'render_taxonomies:output/index-2.html', (34144768, 19860) -'render_posts:cache/posts/rise-510-is-out.html', (12781056, 376) -'render_galleries:output/galleries/Facu_RN/DSC05917.JPG', (1221632, 276) -'render_taxonomies:output/categories/format.xml', (7325696, 975) +'render_taxonomies:output/index-2.html', (39880704, 20163) +'render_posts:cache/posts/rise-510-is-out.html', (12781056, 382) +'render_galleries:output/galleries/Facu_RN/DSC05917.JPG', (1221632, 284) +'render_taxonomies:output/categories/format.xml', (7325696, 987) 'render_sources:output/es/posts/live-trading-logbook.ipynb', (788992, 265) 'render_taxonomies:output/categories/theme.html', (32629760, 8063) -'render_taxonomies:output/es/2013/11/index.html', (32299520, 6985) +'render_taxonomies:output/es/2013/11/index.html', (38890496, 8134) 'render_tags:output/es/categories/local.xml', (1265152, 924) 'render_tags:output/es/categories/workflow.html', (3357184, 7002) 'render_tags:output/categories/pyconar.xml', (778752, 623) @@ -409,11 +409,11 @@ 'render_sources:output/posts/hide-the-input-cells-from-your-ipython-slides.ipynb', (2063360, 315) 'render_tags:output/es/categories/flood.xml', (1015296, 708) 'render_taxonomies:output/es/categories/jupyter.html', (36562432, 14843) -'render_taxonomies:output/es/categories/toggle.xml', (18105856, 1525) -'render_taxonomies:output/categories/index.html', (35809792, 3590) +'render_taxonomies:output/es/categories/toggle.xml', (38729216, 1548) +'render_taxonomies:output/categories/index.html', (37687808, 4347) 'render_tags:output/categories/daniela.xml', (2160640, 501) 'render_sources:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.ipynb', (673792, 349) -'render_taxonomies:output/categories/facu.xml', (6773760, 501) +'render_taxonomies:output/categories/facu.xml', (6773760, 506) 'render_sources:output/posts/zen-themes-updated.ipynb', (95232, 262) 'render_tags:output/es/categories/daniela.html', (3743744, 3422) 'render_tags:output/categories/format.html', (3046400, 3901) @@ -423,55 +423,55 @@ 'render_tags:output/categories/facundo.html', (4463616, 3962) 'render_galleries:output/galleries/trades/1.thumbnail.png', (1518080, 261) 'render_archive:output/es/2012/10/index.html', (3644416, 2575) -'render_posts:cache/posts/make-your-slides-with-ipython.html', (291328, 563) +'render_posts:cache/posts/make-your-slides-with-ipython.html', (291328, 575) 'render_sources:output/posts/rise-500-is-out.ipynb', (7941120, 255) 'render_archive:output/2012/06/index.html', (3863552, 2575) 'render_tags:output/categories/conda.html', (3672064, 3947) -'render_taxonomies:output/2016/index.html', (30042624, 5788) +'render_taxonomies:output/2016/index.html', (36756480, 6607) 'render_taxonomies:output/categories/first_post.html', (30504448, 7300) 'render_pages:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (32997376, 19357) 'render_taxonomies:output/categories/magic.html', (31264256, 7470) 'render_sources:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb', (1795584, 348) 'render_sources:output/es/posts/hide-the-input-cells-from-your-ipython-slides.ipynb', (2059264, 315) 'copy_assets:output/assets/css/code.css', (884736, 141) -'render_galleries:output/galleries/Inundacion/rss.xml', (29813248, 18979) -'render_galleries:output/galleries/bokehmagic/themes.png', (1718784, 277) +'render_galleries:output/galleries/Inundacion/rss.xml', (37183488, 19785) +'render_galleries:output/galleries/bokehmagic/themes.png', (1718784, 284) 'render_tags:output/categories/mipyex.xml', (135680, 3343) -'render_posts:cache/posts/blogging-with-nikola-and-ipython.html', (156672, 579) +'render_posts:cache/posts/blogging-with-nikola-and-ipython.html', (156672, 591) 'render_taxonomies:output/es/categories/github.html', (30729216, 6235) -'render_taxonomies:output/categories/extension.xml', (6691328, 4815) +'render_taxonomies:output/categories/extension.xml', (6691328, 4883) 'scale_images', (55296, 56) -'render_taxonomies:output/index-1.html', (32348160, 17950) +'render_taxonomies:output/index-1.html', (32348160, 18221) 'render_tags:output/es/categories/mipyex.html', (2735104, 6264) 'copy_assets:output/assets/js/moment-with-locales.min.js', (29148160, 1587) 'render_taxonomies:output/es/categories/zen.html', (32013312, 8581) 'render_galleries:output/es/galleries/.ipynb_checkpoints', (9374720, 145) -'render_taxonomies:output/es/categories/workflow.xml', (30801920, 4614) +'render_taxonomies:output/es/categories/workflow.xml', (30801920, 4678) 'render_taxonomies:output/es/categories/nikola.html', (36541952, 20197) 'render_archive:output/2012/12/index.html', (4964352, 2575) 'render_tags:output/categories/reveal.html', (3304448, 9053) 'render_taxonomies:output/es/categories/family.html', (33906176, 7696) 'render_tags:output/es/categories/tutorials.html', (3640320, 3615) -'render_taxonomies:output/categories/reveal.xml', (34569216, 10684) -'render_taxonomies:output/2014/04/index.html', (32530432, 7295) +'render_taxonomies:output/categories/reveal.xml', (39680512, 10829) +'render_taxonomies:output/2014/04/index.html', (39138816, 8444) 'render_tags:output/categories/pdf.xml', (559616, 895) 'render_tags:output/categories/linux.html', (3313664, 2594) -'render_galleries:output/galleries/Facu_RN/rss.xml', (29299712, 21695) +'render_galleries:output/galleries/Facu_RN/rss.xml', (37609472, 22500) 'render_taxonomies:output/categories/javascript.html', (32242176, 13134) 'render_taxonomies:output/categories/themes.html', (33613312, 7953) 'render_archive:output/2013/01/index.html', (4369920, 2575) 'render_taxonomies:output/es/categories/css.html', (32306688, 8043) 'render_archive:output/es/2013/12/index.html', (4700672, 2575) -'render_taxonomies:output/2017/06/index.html', (31918080, 7036) -'render_taxonomies:output/2012/09/index.html', (34440704, 6210) +'render_taxonomies:output/2017/06/index.html', (37872640, 8178) +'render_taxonomies:output/2012/09/index.html', (39186432, 7333) 'render_sources:output/posts/viper.txt', (1142272, 230) -'render_taxonomies:output/es/2014/04/index.html', (31153664, 7295) +'render_taxonomies:output/es/2014/04/index.html', (40145920, 8444) 'render_sources:output/es/posts/trading-logbook-update-3.ipynb', (8629760, 273) -'render_posts:cache/posts/rise-400b1-is-available-please-test-it.html', (4866560, 445) +'render_posts:cache/posts/rise-400b1-is-available-please-test-it.html', (4866560, 451) 'render_sources:output/posts/reveal-converter-mini-tutorial.ipynb', (33280, 285) 'render_taxonomies:output/categories/toggle.html', (30387200, 8181) 'render_sources:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.ipynb', (2032128, 351) -'render_galleries:output/es/galleries/bokehmagic/rss.xml', (29246976, 19543) +'render_galleries:output/es/galleries/bokehmagic/rss.xml', (37267456, 20350) 'render_sources:output/es/posts/my-ipython-powered-semi-automatic-git-workflow.ipynb', (2160128, 318) 'render_taxonomies:output/categories/osx.html', (33981952, 10714) 'render_sources:output/es/stories/about-me.txt', (1090048, 326) @@ -481,380 +481,380 @@ 'render_tags:output/categories/performance.html', (4595712, 4239) 'render_pages:output/posts/facundo.html', (33914368, 18913) 'render_sources:output/posts/customizing-your-ipython-slides.ipynb', (975872, 287) -'copy_files:output/portfolio/Humor-Sans.ttf', (41984, 265) -'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.html', (948736, 593) +'copy_files:output/portfolio/Humor-Sans.ttf', (41984, 271) +'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.html', (948736, 605) 'render_indexes:output/es/index.html', (4468224, 14199) -'render_taxonomies:output/es/categories/flood.xml', (5279232, 708) +'render_taxonomies:output/es/categories/flood.xml', (5279232, 717) 'render_sources:output/posts/beginning.txt', (441344, 238) -'render_posts:cache/posts/scipycon-argentina-2013.html', (933888, 533) -'render_taxonomies:output/es/2012/index.html', (30023168, 5788) -'render_taxonomies:output/es/2013/10/index.html', (30496256, 8041) -'render_taxonomies:output/categories/jupyterlab.xml', (20237824, 1225) +'render_posts:cache/posts/scipycon-argentina-2013.html', (933888, 545) +'render_taxonomies:output/es/2012/index.html', (37523456, 6607) +'render_taxonomies:output/es/2013/10/index.html', (38435328, 9202) +'render_taxonomies:output/categories/jupyterlab.xml', (20237824, 1237) 'render_galleries:output/galleries/Facu_RN/DSC05925.thumbnail.JPG', (1847808, 278) 'render_posts:cache/posts/How-to-pin-Conda.html.es', (2448896, 385) 'render_galleries:output/galleries/spellchecker/1.thumbnail.png', (691200, 274) 'render_posts:cache/posts/viper.html.es', (1575424, 650) -'copy_assets:output/assets/css/theme.css', (14187520, 1445) +'copy_assets:output/assets/css/theme.css', (37258752, 1621) 'render_sources:output/es/posts/beginning.txt', (272896, 412) 'render_pages:output/es/posts/one-line-deployment-of-your-site-to-gh-pages.html', (30709760, 19280) -'render_posts:cache/posts/under-the-sea-en-la-plata.html', (378368, 543) -'render_taxonomies:output/es/categories/themes.xml', (6389760, 1297) +'render_posts:cache/posts/under-the-sea-en-la-plata.html', (378368, 553) +'render_taxonomies:output/es/categories/themes.xml', (6389760, 1321) 'render_archive:output/2014/03/index.html', (3986944, 2575) -'render_taxonomies:output/es/categories/first_post.xml', (22365696, 1340) -'render_taxonomies:output/es/categories/facundo.xml', (5173248, 1040) -'render_galleries:output/galleries/Inundacion/index.html', (29539840, 18943) -'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (822272, 663) +'render_taxonomies:output/es/categories/first_post.xml', (22365696, 1364) +'render_taxonomies:output/es/categories/facundo.xml', (5173248, 1055) +'render_galleries:output/galleries/Inundacion/index.html', (36854784, 20080) +'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (822272, 674) 'render_taxonomies:output/es/categories/blog.html', (30467584, 15258) 'render_tags:output/es/categories/twitter.html', (2828288, 3817) 'render_tags:output/categories/scipycon.html', (3260928, 3615) 'render_tags:output/es/categories/javascript.html', (4281344, 9077) 'render_sources:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.ipynb', (1256960, 331) -'copy_assets:output/assets/images/blue-mocha-grunge-reversed.jpg', (1757184, 332) +'copy_assets:output/assets/images/blue-mocha-grunge-reversed.jpg', (1757184, 338) 'render_archive:output/es/2013/10/index.html', (3620864, 2575) -'render_taxonomies:output/es/categories/performance.xml', (8614400, 1726) +'render_taxonomies:output/es/categories/performance.xml', (8614400, 1755) 'render_sources:output/es/posts/paraguay.txt', (272384, 409) -'render_taxonomies:output/es/categories/ipytmpl.xml', (7161344, 857) +'render_taxonomies:output/es/categories/ipytmpl.xml', (7161344, 869) 'render_pages:output/posts/make-your-slides-with-ipython.html', (30343168, 19175) 'render_tags:output/categories/aikido.html', (5000704, 3422) -'render_taxonomies:output/2012/index.html', (30017024, 5788) -'render_taxonomies:output/es/categories/aikido.xml', (21640192, 1414) +'render_taxonomies:output/2012/index.html', (36948992, 6607) +'render_taxonomies:output/es/categories/aikido.xml', (21640192, 1429) 'render_sources:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb', (948224, 348) 'render_taxonomies:output/categories/tutorials.html', (34228224, 7350) -'render_taxonomies:output/index-3.html', (31847936, 20391) +'render_taxonomies:output/index-3.html', (39528960, 20688) 'render_posts:cache/stories/about-me.html.es', (1867776, 697) -'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html', (15088640, 500) +'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html', (15088640, 506) 'render_taxonomies:output/categories/python.html', (35998720, 38655) 'render_tags:output/categories/talks.xml', (1799680, 1181) -'render_taxonomies:output/categories/pip.xml', (28427776, 4058) +'render_taxonomies:output/categories/pip.xml', (39155200, 4103) 'render_taxonomies:output/categories/less.html', (31279104, 8063) 'render_taxonomies:output/categories/slideshow.html', (35353600, 16942) -'render_taxonomies:output/es/categories/win.xml', (28766208, 4058) +'render_taxonomies:output/es/categories/win.xml', (40141312, 4103) 'render_tags:output/categories/pyconar.html', (4732928, 3544) 'render_archive:output/archive.html', (3598848, 2560) 'render_galleries:output/galleries/Inundacion', (559104, 145) 'render_tags:output/categories/slideshow.html', (3711488, 8656) -'render_taxonomies:output/categories/minimap.xml', (5835776, 833) +'render_taxonomies:output/categories/minimap.xml', (5835776, 846) 'render_sources:output/posts/a-simple-overview-of-viper.txt', (1264128, 272) 'render_taxonomies:output/es/categories/typescript.html', (34328064, 7207) -'copy_assets:output/assets/fonts/eMS0tViDqryBl0EG1pqFZfesZW2xOQ-xsNqO47m55DA.woff', (1499136, 362) +'copy_assets:output/assets/fonts/eMS0tViDqryBl0EG1pqFZfesZW2xOQ-xsNqO47m55DA.woff', (1499136, 368) 'render_tags:output/categories/ipython.xml', (2355200, 23350) 'render_tags:output/categories/family.xml', (2030080, 1041) 'render_tags:output/es/categories/win.html', (3072000, 2594) 'render_tags:output/es/categories/trading.html', (3037696, 4239) 'render_tags:output/categories/extension.xml', (1499648, 4879) -'render_galleries:output/galleries/Facu_RN/DSC05925.JPG', (1264640, 276) +'render_galleries:output/galleries/Facu_RN/DSC05925.JPG', (1264640, 284) 'render_tags:output/es/categories/less.html', (4184064, 4343) 'render_indexes:output/es/index-2.html', (4323840, 13504) -'render_taxonomies:output/es/2013/01/index.html', (31998976, 6441) -'render_galleries:output/es/galleries/spellchecker/index.html', (29558784, 18879) +'render_taxonomies:output/es/2013/01/index.html', (38140928, 7579) +'render_galleries:output/es/galleries/spellchecker/index.html', (36687360, 19985) 'render_tags:output/es/categories/tutorials.xml', (700416, 694) 'render_pages:output/es/posts/paraguay.html', (31970816, 19632) 'render_archive:output/es/2014/04/index.html', (4804096, 2575) 'render_pages:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (34447360, 19406) 'render_taxonomies:output/es/categories/ipyscript.html', (31705088, 7470) -'copy_files:output/ShortCV_English.pdf', (115200, 255) +'copy_files:output/ShortCV_English.pdf', (115200, 261) 'render_sources:output/posts/rise-400b1-is-available-please-test-it.ipynb', (3584512, 301) -'render_taxonomies:output/es/categories/scipycon.xml', (5172224, 694) +'render_taxonomies:output/es/categories/scipycon.xml', (5172224, 705) 'render_sources:output/posts/nikola-nbconvert.txt', (605696, 258) 'render_posts:cache/posts/a-simple-overview-of-viper.html.es', (2065408, 841) 'render_authors', (95744, 56) 'render_sources:output/es/posts/coming-back.ipynb', (212992, 247) -'render_galleries:output/galleries/spellchecker/2.png', (1757696, 272) +'render_galleries:output/galleries/spellchecker/2.png', (1757696, 280) 'render_tags:output/categories/ipython.html', (2967040, 26271) 'render_tags:output/categories/ipytmpl.xml', (1839616, 863) 'render_indexes:output/index.html', (2769408, 14199) -'render_galleries:output/galleries/Facu_RN/Facu3.png', (739840, 270) -'render_taxonomies:output/es/categories/mipyex.xml', (5679104, 3303) +'render_galleries:output/galleries/Facu_RN/Facu3.png', (739840, 278) +'render_taxonomies:output/es/categories/mipyex.xml', (5679104, 3348) 'render_taxonomies:output/categories/pinned.html', (31064064, 7181) 'render_galleries:output/galleries/binder/terminal.thumbnail.png', (16536064, 276) 'render_tags:output/es/categories/pip.html', (2993664, 2594) 'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.html.es', (1497088, 603) '_switch to py3', (1401856, 56) -'render_taxonomies:output/2017/12/index.html', (33112576, 5442) +'render_taxonomies:output/2017/12/index.html', (40256000, 6572) 'render_taxonomies:output/categories/ipytmpl.html', (31182336, 7513) -'render_galleries:output/galleries/Facu_RN/DSC05901.JPG', (1436160, 276) +'render_galleries:output/galleries/Facu_RN/DSC05901.JPG', (1436160, 283) 'render_galleries:output/galleries/Facu_RN/DSC05901.thumbnail.JPG', (1797120, 278) 'render_taxonomies:output/es/categories/ipytmpl.html', (30914560, 7513) 'render_taxonomies:output/categories/family.html', (33963008, 7696) 'render_galleries:output/galleries/Facu_RN/Facu2.thumbnail.png', (1463296, 272) -'render_taxonomies:output/2012/06/index.html', (34125312, 8693) +'render_taxonomies:output/2012/06/index.html', (39397376, 9889) 'render_tags:output/es/categories/ipytmpl.html', (3769344, 3784) 'render_tags:output/categories/minimap.html', (3150336, 3760) 'render_taxonomies:output/es/categories/base16.html', (33266176, 7435) 'render_galleries:output/galleries/Facu_RN/Facu5.thumbnail.png', (2123264, 272) -'render_galleries:output/es/galleries/binder/rss.xml', (29597184, 11163) +'render_galleries:output/es/galleries/binder/rss.xml', (37030912, 11970) 'copy_files', (1055744, 56) 'render_archive:output/es/2013/05/index.html', (2714624, 2575) -'render_taxonomies:output/categories/css.xml', (5630976, 1387) -'render_taxonomies:output/es/categories/javascript.xml', (5990400, 6478) -'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.html', (779776, 633) -'render_taxonomies:output/es/2017/07/index.html', (34355712, 6242) -'render_galleries:output/galleries/Facu_RN/DSC05918.JPG', (2062848, 276) +'render_taxonomies:output/categories/css.xml', (5630976, 1410) +'render_taxonomies:output/es/categories/javascript.xml', (5990400, 6577) +'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.html', (779776, 645) +'render_taxonomies:output/es/2017/07/index.html', (39768576, 7374) +'render_galleries:output/galleries/Facu_RN/DSC05918.JPG', (2062848, 284) 'render_taxonomies:output/categories/threads.html', (32545792, 7434) -'render_taxonomies:output/categories/conda.xml', (35216384, 4441) +'render_taxonomies:output/categories/conda.xml', (35216384, 4492) 'render_tags:output/categories/python.xml', (3278336, 25726) -'render_galleries:output/es/galleries/zenmode/rss.xml', (29228032, 18897) +'render_galleries:output/es/galleries/zenmode/rss.xml', (37314560, 19706) 'render_taxonomies:output/es/categories/pyconar.html', (32414720, 7273) -'render_taxonomies:output/categories/blog.xml', (22665216, 7287) +'render_taxonomies:output/categories/blog.xml', (22665216, 7413) 'render_pages:output/posts/ipython-plugin-for-nikola-updated.html', (30624256, 19203) 'render_tags:output/es/categories/gh-pages.xml', (2069504, 2529) -'render_galleries:output/es/galleries/Inundacion/index.html', (29470720, 18943) -'render_galleries:output/es/galleries/twitter/rss.xml', (29340672, 18588) +'render_galleries:output/es/galleries/Inundacion/index.html', (36666880, 20080) +'render_galleries:output/es/galleries/twitter/rss.xml', (37384192, 19395) 'render_pages:output/posts/slider-for-nbconvert.html', (33016832, 18979) 'render_tags:output/es/categories/pyconar.xml', (1728512, 623) 'render_sources:output/posts/48-themes-for-your-ipython-notebook.ipynb', (1488384, 296) 'render_tags:output/es/categories/ipython.xml', (2298880, 24748) -'copy_assets:output/assets/images/glyphicons-halflings-white.png', (1126912, 327) +'copy_assets:output/assets/images/glyphicons-halflings-white.png', (1126912, 333) 'render_sources:output/es/posts/improving-viper-slideshows-styling.txt', (22318592, 513) 'render_taxonomies:output/es/categories/performance.html', (32910336, 8382) 'render_tags:output/categories/jinja.xml', (1428992, 3082) 'render_tags:output/categories/nbconvert.html', (4072960, 12463) 'render_posts:cache/posts/rise-400b1-is-available-please-test-it.html.es', (4467712, 451) -'render_taxonomies:output/es/categories/pyconar.xml', (5351936, 617) +'render_taxonomies:output/es/categories/pyconar.xml', (5351936, 629) 'render_taxonomies:output/es/categories/pinned.html', (34320384, 7181) 'render_tags:output/categories/first_post.html', (4855808, 3565) 'render_sources:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook.ipynb', (870400, 323) -'render_taxonomies:output/categories/performance.xml', (8798720, 1726) -'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (9216, 683) +'render_taxonomies:output/categories/performance.xml', (8798720, 1755) +'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (9216, 695) 'render_tags:output/es/categories/nbconvert.html', (4372992, 12463) -'render_taxonomies:output/categories/videos.xml', (6920192, 617) +'render_taxonomies:output/categories/videos.xml', (6920192, 629) 'render_sources:output/posts/how-to-pin-conda.ipynb', (2447872, 353) 'render_tags:output/categories/javascript.html', (2916864, 9077) 'render_pages:output/posts/live-trading-logbook.html', (32774656, 19112) -'render_taxonomies:output/categories/binder.xml', (19995136, 1402) +'render_taxonomies:output/categories/binder.xml', (19995136, 1413) 'render_galleries:output/galleries/zenmode/pic1.thumbnail.png', (954880, 270) -'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.html', (1442816, 638) -'render_taxonomies:output/es/categories/magic.xml', (7242240, 814) +'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.html', (1442816, 650) +'render_taxonomies:output/es/categories/magic.xml', (7242240, 827) 'render_pages:output/posts/powered-by-nikola.html', (31309312, 19083) 'render_taxonomies:output/categories/typescript.html', (34164736, 7207) 'render_pages:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (30735872, 19427) -'render_taxonomies:output/2013/index.html', (30097920, 5788) +'render_taxonomies:output/2013/index.html', (37377536, 6607) 'render_tags:output/categories/life.html', (4574720, 3962) -'render_taxonomies:output/categories/politics.xml', (5171200, 580) +'render_taxonomies:output/categories/politics.xml', (5171200, 592) 'render_taxonomies:output/es/categories/nbviewer.html', (32195072, 7560) 'render_tags:output/categories/mipyex.html', (3614208, 6264) 'copy_assets', (568832, 56) 'render_pages:output/posts/viper-is-now-using-ipythonnbconvert.html', (33992704, 19217) -'render_galleries:output/galleries/bokehmagic/rss.xml', (29793280, 19543) -'render_posts:cache/posts/viper.html', (1648640, 435) -'render_taxonomies:output/categories/win.xml', (28629504, 4058) +'render_galleries:output/galleries/bokehmagic/rss.xml', (36796416, 20350) +'render_posts:cache/posts/viper.html', (1648640, 446) +'render_taxonomies:output/categories/win.xml', (38642176, 4103) 'render_sources:output/es/posts/mimic-the-ipython-notebook-cell-execution.ipynb', (139264, 307) 'render_taxonomies:output/categories/blog.html', (31001088, 13943) 'render_tags:output/es/categories/conda.html', (2880000, 3947) 'render_tags:output/categories/jupyter.html', (4747776, 3922) -'render_taxonomies:output/es/categories/viper.xml', (22209024, 4162) +'render_taxonomies:output/es/categories/viper.xml', (22209024, 4230) 'render_tags:output/es/categories/nbviewer.xml', (47616, 910) 'render_pages:output/es/posts/facundo.html', (32329216, 18913) 'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.html.es', (55808, 645) 'render_pages:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (32064000, 19328) 'render_galleries:output/galleries/binder', (16535552, 145) -'copy_assets:output/assets/css/ipython.min.css', (844288, 296) -'render_galleries:output/galleries/bokehmagic/sin2.png', (283648, 273) +'copy_assets:output/assets/css/ipython.min.css', (844288, 301) +'render_galleries:output/galleries/bokehmagic/sin2.png', (283648, 281) 'render_taxonomies:output/es/categories/scipycon.html', (33796096, 7350) -'render_galleries:output/galleries/rise/index.html', (34755072, 14039) -'render_taxonomies:output/es/categories/git.xml', (15972352, 4480) -'render_taxonomies:output/es/categories/nbviewer.xml', (5678080, 904) +'render_galleries:output/galleries/rise/index.html', (36824064, 15287) +'render_taxonomies:output/es/categories/git.xml', (15972352, 4544) +'render_taxonomies:output/es/categories/nbviewer.xml', (5678080, 916) 'render_pages:output/posts/rise-meets-jupyterlab.html', (34070016, 14238) 'render_tags:output/es/categories/blog.html', (3016192, 10586) 'render_taxonomies:output/categories/git.html', (31077376, 11136) 'render_taxonomies:output/es/categories/ipython.html', (31407616, 32750) 'render_pages:output/posts/a-new-nikolas-theme-for-my-site-zen.html', (33465344, 19217) 'render_taxonomies:output/categories/flood.html', (32622080, 7364) -'render_taxonomies:output/categories/gh-pages.xml', (22672896, 3567) +'render_taxonomies:output/categories/gh-pages.xml', (38872576, 3611) 'render_taxonomies:output/es/categories/life.html', (32439808, 7696) 'render_pages:output/es/posts/reveal-converter-mini-tutorial.html', (33642496, 19182) 'render_pages:output/posts/nikola-nbconvert.html', (31440384, 18966) -'render_taxonomies:output/es/categories/pip.xml', (28712960, 4058) +'render_taxonomies:output/es/categories/pip.xml', (38913536, 4103) 'render_sources:output/es/posts/different-ways-to-lead-an-open-source-project.ipynb', (1048064, 315) 'render_tags:output/es/categories/ipytmpl.xml', (1498112, 863) -'render_taxonomies:output/es/categories/osx.xml', (28803072, 4058) +'render_taxonomies:output/es/categories/osx.xml', (38999552, 4103) 'render_pages:output/posts/improving-viper-slideshows-styling.html', (31244800, 19047) 'render_tags:output/categories/less.xml', (792576, 1422) -'copy_assets:output/assets/xml/rss.xsl', (13917184, 1429) -'render_taxonomies:output/es/categories/life.xml', (6868992, 1040) +'copy_assets:output/assets/xml/rss.xsl', (37205504, 1602) +'render_taxonomies:output/es/categories/life.xml', (6868992, 1055) 'render_taxonomies:output/es/categories/binder.html', (33207296, 6909) -'copy_files:output/ShortCV_Spanish.pdf', (1565184, 255) -'render_posts:cache/posts/powered-by-nikola.html', (98816, 496) -'copy_assets:output/assets/css/main.css', (206336, 278) -'render_taxonomies:output/categories/local.xml', (5594112, 918) -'render_taxonomies:output/2012/12/index.html', (34335744, 6223) -'render_taxonomies:output/es/categories/css.xml', (5621760, 1387) +'copy_files:output/ShortCV_Spanish.pdf', (1565184, 261) +'render_posts:cache/posts/powered-by-nikola.html', (98816, 508) +'copy_assets:output/assets/css/main.css', (206336, 283) +'render_taxonomies:output/categories/local.xml', (5594112, 929) +'render_taxonomies:output/2012/12/index.html', (39933952, 7353) +'render_taxonomies:output/es/categories/css.xml', (5621760, 1410) 'render_tags:output/es/categories/opensource.xml', (2146304, 854) 'render_taxonomies:output/categories/gh-pages.html', (32579584, 10223) -'render_taxonomies:output/es/categories/extension.xml', (7115264, 4815) +'render_taxonomies:output/es/categories/extension.xml', (7115264, 4883) 'render_tags:output/categories/themes.html', (3214848, 4236) 'render_taxonomies:output/es/categories/git.html', (32637952, 11136) 'robots_file:output/robots.txt', (198144, 136) -'render_taxonomies:output/categories/themes.xml', (6667776, 1297) -'copy_assets:output/assets/js/miniPageNav.js', (26624, 293) +'render_taxonomies:output/categories/themes.xml', (6667776, 1321) +'copy_assets:output/assets/js/miniPageNav.js', (26624, 298) 'render_tags:output/categories/ipyscript.xml', (870912, 821) -'render_taxonomies:output/es/categories/jinja.xml', (19099136, 3041) +'render_taxonomies:output/es/categories/jinja.xml', (37846528, 3088) 'render_sources:output/es/posts/customizing-your-ipython-slides.ipynb', (296960, 287) 'render_indexes:output/index-4.html', (4482560, 11003) 'render_archive:output/2013/11/index.html', (4751872, 2575) -'render_taxonomies:output/categories/github.xml', (14987264, 728) +'render_taxonomies:output/categories/github.xml', (14987264, 733) 'render_galleries:output/galleries/Facu_RN/DSC05928.thumbnail.JPG', (684544, 278) 'render_tags:output/categories/magic.xml', (1338880, 821) 'render_posts:cache/posts/How-to-pin-Conda.html', (2448384, 385) 'render_tags:output/es/categories/slideshow.xml', (2701312, 5735) 'render_taxonomies:output/categories/extension.html', (30171648, 11471) -'render_taxonomies:output/categories/jinja.xml', (16744448, 3041) -'render_taxonomies:output/es/categories/github.xml', (13124096, 728) +'render_taxonomies:output/categories/jinja.xml', (39573504, 3088) +'render_taxonomies:output/es/categories/github.xml', (13124096, 733) 'render_galleries:output/galleries/Facu_RN/Facu3.thumbnail.png', (273408, 272) 'render_tags:output/es/categories/config.html', (4405760, 6003) 'render_taxonomies:output/categories/videos.html', (32005632, 7273) -'render_taxonomies:output/es/categories/rise.xml', (34919424, 5628) -'render_galleries:output/galleries/Facu_RN/Facu2.png', (954368, 270) +'render_taxonomies:output/es/categories/rise.xml', (40249856, 5691) +'render_galleries:output/galleries/Facu_RN/Facu2.png', (954368, 277) 'render_taxonomies:output/categories/zen.html', (31034880, 8581) 'render_pages:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (30115840, 19316) 'render_tags:output/categories/twitter.html', (4743680, 3817) 'render_posts:cache/posts/live-trading-logbook.html.es', (1605120, 529) -'render_taxonomies:output/es/2013/05/index.html', (31944704, 6377) -'render_taxonomies:output/es/categories/config.xml', (18547200, 3041) +'render_taxonomies:output/es/2013/05/index.html', (39311872, 7513) +'render_taxonomies:output/es/categories/config.xml', (38487552, 3088) 'render_galleries:output/galleries/Facu_RN/DSC05918.thumbnail.JPG', (2129920, 278) 'render_sources:output/posts/how-to-pin-the-conda.ipynb', (2402304, 271) -'render_galleries:output/galleries/rss.xml', (29735936, 18307) -'render_taxonomies:output/es/categories/linux.xml', (28798976, 4058) +'render_galleries:output/galleries/rss.xml', (37504000, 19108) +'render_taxonomies:output/es/categories/linux.xml', (39756288, 4103) 'render_tags:output/es/categories/nbviewer.html', (4260864, 3831) 'render_tags:output/categories/connectivity.html', (3388416, 3845) -'copy_assets:output/assets/fonts/evC1haE-MsorTl_A7_uSGT8E0i7KZn-EPnyo3HZu7kw.woff', (2062336, 362) +'copy_assets:output/assets/fonts/evC1haE-MsorTl_A7_uSGT8E0i7KZn-EPnyo3HZu7kw.woff', (2062336, 368) 'render_tags:output/es/categories/pyconar.html', (3485696, 3544) 'render_indexes:output/es/index-4.html', (3474432, 11003) 'render_taxonomies:output/categories/binder.html', (32969728, 6909) 'render_tags:output/categories/index.html', (4663296, 2564) -'render_galleries:output/galleries/twitter/index.html', (29884416, 18571) -'_scan_locs:sitemap', (36492800, 45345) +'render_galleries:output/galleries/twitter/index.html', (37091840, 19518) +'_scan_locs:sitemap', (39453184, 48705) 'render_sources:output/posts/improving-viper-slideshows-styling.txt', (1576448, 288) 'render_archive:output/es/2013/08/index.html', (4740608, 2575) 'render_pages:output/posts/customizing-your-ipython-slides.html', (31776256, 19189) 'render_tags:output/es/categories/viper.xml', (115712, 3367) 'render_tags:output/categories/zenmode.xml', (1208832, 840) 'render_tags:output/es/categories/format.html', (4016640, 3901) -'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (736256, 673) +'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (736256, 685) 'render_pages:output/posts/reveal-converter-mini-tutorial.html', (32683008, 19182) -'copy_assets:output/assets/fonts/fontawesome-webfont.woff', (2037248, 314) +'copy_assets:output/assets/fonts/fontawesome-webfont.woff', (2037248, 319) 'render_sources:output/posts/blogging-with-nikola-and-ipython.ipynb', (322048, 290) -'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.html', (983040, 619) +'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.html', (983040, 631) 'render_tags:output/es/categories/themes.xml', (1978880, 1315) 'render_taxonomies:output/categories/mipyex.html', (31603712, 9959) -'render_taxonomies:output/2014/index.html', (30084608, 5788) -'copy_assets:output/assets/fonts/fontawesome-webfont.eot', (1308672, 312) +'render_taxonomies:output/2014/index.html', (37024256, 6607) +'copy_assets:output/assets/fonts/fontawesome-webfont.eot', (1308672, 317) 'render_tags:output/categories/javascript.xml', (633344, 6156) 'render_posts:cache/posts/how-to-pin-the-conda.html', (2402816, 397) 'render_tags:output/categories/rise.html', (3138048, 3922) 'render_taxonomies:output/es/categories/linux.html', (30774784, 10714) -'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.html', (194560, 643) +'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.html', (194560, 655) 'render_tags:output/categories/facundo.xml', (1151488, 1041) -'render_taxonomies:output/es/2016/05/index.html', (31833600, 6184) -'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (220672, 724) -'render_taxonomies:output/categories/spellcheck.xml', (6881280, 877) +'render_taxonomies:output/es/2016/05/index.html', (39627776, 7314) +'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (220672, 735) +'render_taxonomies:output/categories/spellcheck.xml', (6881280, 888) 'render_taxonomies:output/es/categories/daniela.html', (31271936, 7157) -'copy_files:output/portfolio/.ipynb_checkpoints/portfolio-checkpoint.ipynb', (1894912, 326) +'copy_files:output/portfolio/.ipynb_checkpoints/portfolio-checkpoint.ipynb', (1894912, 332) 'render_pages:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (30755328, 19401) -'render_galleries:output/galleries/zenmode/rss.xml', (29321728, 18897) +'render_galleries:output/galleries/zenmode/rss.xml', (37709824, 19706) 'render_sources:output/posts/teasers-with-the-ipython-notebook-plugin.ipynb', (1435648, 305) 'render_galleries:output/galleries/deploy', (1408000, 145) -'render_taxonomies:output/2017/11/index.html', (34172416, 5234) +'render_taxonomies:output/2017/11/index.html', (39273984, 6366) 'render_tags:output/categories/zen.xml', (1530368, 1951) -'render_taxonomies:output/index-4.html', (30807040, 20433) +'render_taxonomies:output/index-4.html', (38319104, 20735) 'render_tags:output/es/categories/nikola.xml', (1539072, 11054) 'render_taxonomies:output/categories/css.html', (32217088, 8043) 'render_pages:output/posts/rise-500-is-out.html', (33078784, 14207) -'render_taxonomies:output/es/archive.html', (30078464, 5788) +'render_taxonomies:output/es/archive.html', (37307904, 6607) 'render_tags:output/categories/nbviewer.xml', (329728, 910) 'render_sources:output/es/posts/nikolas-zen-theme-finally-released.ipynb', (908800, 293) -'render_taxonomies:output/es/2013/08/index.html', (31096320, 9849) +'render_taxonomies:output/es/2013/08/index.html', (38685184, 11047) 'render_archive:output/es/2016/index.html', (4572160, 2560) 'render_sources:output/es/posts/reveal-converter-mini-tutorial.ipynb', (622592, 285) '_switch to py3:please!', (1848320, 88) -'copy_assets:output/assets/fonts/FontAwesome.otf', (884224, 296) -'render_taxonomies:output/es/categories/tutorials.xml', (6867968, 694) +'copy_assets:output/assets/fonts/FontAwesome.otf', (884224, 301) +'render_taxonomies:output/es/categories/tutorials.xml', (6867968, 705) 'render_tags:output/es/categories/scipycon.xml', (481792, 694) 'render_tags:output/categories/opensource.xml', (453632, 854) -'render_taxonomies:output/categories/typescript.xml', (8477696, 551) +'render_taxonomies:output/categories/typescript.xml', (8477696, 557) 'render_tags:output/es/categories/extension.html', (4237824, 7800) -'render_taxonomies:output/es/2013/12/index.html', (33497088, 10015) +'render_taxonomies:output/es/2013/12/index.html', (38738432, 11210) 'render_galleries:output/galleries/spellchecker/2.thumbnail.png', (135168, 274) -'render_galleries:output/galleries/deploy/rss.xml', (29842432, 18585) +'render_galleries:output/galleries/deploy/rss.xml', (37045248, 19392) 'render_pages:output/es/posts/powered-by-nikola.html', (30932480, 19778) 'render_tags:output/categories/pinned.html', (3859968, 3447) -'copy_assets:output/assets/js/fancydates.js', (14691840, 1462) +'copy_assets:output/assets/js/fancydates.js', (36747776, 1640) 'render_tags:output/categories/facu.html', (2884096, 3422) 'render_tags:output/es/categories/jupyter.xml', (3348480, 1001) -'render_galleries:output/galleries/bokehmagic/sin.png', (879616, 271) +'render_galleries:output/galleries/bokehmagic/sin.png', (879616, 279) 'render_taxonomies:output/es/categories/javascript.html', (34342400, 13134) 'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html.es', (1367040, 674) -'render_posts:cache/posts/trading-logbook-update-22-nov-2013.html', (1314816, 588) +'render_posts:cache/posts/trading-logbook-update-22-nov-2013.html', (1314816, 600) 'render_tags:output/categories/base16.xml', (780800, 786) -'render_posts:cache/posts/how-to-pin-conda.html', (2462208, 379) -'render_taxonomies:output/categories/family.xml', (7104000, 1040) +'render_posts:cache/posts/how-to-pin-conda.html', (2462208, 384) +'render_taxonomies:output/categories/family.xml', (7104000, 1055) 'render_tags:output/es/categories/osx.xml', (4782592, 636) 'render_tags:output/es/categories/facundo.html', (4811264, 3962) -'render_taxonomies:output/2013/04/index.html', (34362368, 6391) +'render_taxonomies:output/2013/04/index.html', (38382080, 7525) 'render_tags:output/es/categories/trading.xml', (794112, 1318) 'render_tags:output/es/categories/theme.xml', (1255424, 1422) 'render_galleries:output/galleries/Inundacion/inundacion1.thumbnail.png', (1184768, 290) 'render_tags:output/es/categories/base16.html', (3632128, 3707) -'render_taxonomies:output/categories/git.xml', (14628352, 4480) +'render_taxonomies:output/categories/git.xml', (14628352, 4544) 'render_taxonomies:output/es/categories/less.html', (33878528, 8063) 'render_taxonomies:output/categories/nbviewer.html', (31088640, 7560) 'render_sources:output/es/posts/how-to-pin-the-conda.ipynb', (2401792, 271) 'render_indexes:output/index-1.html', (3440128, 11539) -'copy_files:output/portfolio/portfolio.ipynb', (1917952, 266) -'render_taxonomies:output/es/index-2.html', (31645184, 19860) +'copy_files:output/portfolio/portfolio.ipynb', (1917952, 272) +'render_taxonomies:output/es/index-2.html', (38036480, 20163) 'render_tags:output/categories/blog.html', (3127808, 9830) 'render_archive:output/es/2014/05/index.html', (4246016, 2575) -'render_taxonomies:output/es/categories/blog.xml', (22765568, 8602) +'render_taxonomies:output/es/categories/blog.xml', (38093824, 8751) 'render_sources:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.ipynb', (330752, 331) 'render_tags:output/es/categories/pinned.html', (4766208, 3447) -'render_taxonomies:output/categories/daniela.xml', (5731328, 501) +'render_taxonomies:output/categories/daniela.xml', (5731328, 506) 'render_tags:output/categories/css.xml', (1176576, 1406) 'render_galleries:output/es/galleries/bokehmagic', (2385408, 145) 'render_tags:output/es/categories/opensource.html', (3171840, 3775) 'render_taxonomies:output/categories/spellcheck.html', (31115776, 7533) 'render_taxonomies:output/categories/format.html', (32083456, 7631) 'render_taxonomies:output/categories/facu.html', (30993920, 7157) -'render_galleries:output/es/galleries/Facu_RN/rss.xml', (29713920, 21695) +'render_galleries:output/es/galleries/Facu_RN/rss.xml', (36763136, 22500) 'render_galleries:output/galleries/Inundacion/inundacion2.thumbnail.png', (10240, 290) 'render_sources:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.ipynb', (377856, 349) -'render_taxonomies:output/categories/base16.xml', (6212096, 779) +'render_taxonomies:output/categories/base16.xml', (6212096, 791) 'render_sources:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.ipynb', (38912, 351) 'render_tags:output/categories/base16.html', (2783744, 3707) 'post_render', (1257472, 56) -'render_taxonomies:output/categories/threads.xml', (6009344, 778) +'render_taxonomies:output/categories/threads.xml', (6009344, 788) 'render_pages:output/posts/teasers-with-the-ipython-notebook-plugin.html', (30551040, 19251) 'render_taxonomies:output/es/categories/mipyex.html', (31490048, 9959) 'render_sources:output/posts/mimic-the-ipython-notebook-cell-execution.ipynb', (1899008, 307) -'render_taxonomies:output/categories/rise.xml', (34497024, 5628) -'render_posts:cache/posts/a-simple-overview-of-viper.html', (1654784, 541) -'render_taxonomies:output/2017/07/index.html', (33484800, 6242) +'render_taxonomies:output/categories/rise.xml', (38397440, 5691) +'render_posts:cache/posts/a-simple-overview-of-viper.html', (1654784, 553) +'render_taxonomies:output/2017/07/index.html', (38293504, 7374) 'render_pages:output/stories/about-me.html', (33224704, 19422) 'render_pages:output/es/posts/nikolas-zen-theme-finally-released.html', (32448000, 19210) -'render_galleries:output/galleries/Facu_RN/Facu5.png', (677888, 270) +'render_galleries:output/galleries/Facu_RN/Facu5.png', (677888, 278) 'render_pages:output/es/posts/ipython-plugin-for-nikola-updated.html', (33570816, 19203) -'render_galleries:output/es/galleries/bokehmagic/index.html', (29116928, 19467) +'render_galleries:output/es/galleries/bokehmagic/index.html', (36645888, 20879) 'render_tags:output/categories/theme.html', (3067392, 4343) -'render_taxonomies:output/es/categories/facu.xml', (5619712, 501) +'render_taxonomies:output/es/categories/facu.xml', (5619712, 506) 'render_archive:output/2012/10/index.html', (3782144, 2575) 'render_sources:output/es/posts/zen-mode-extension-for-the-ipython-notebook.ipynb', (796160, 311) -'render_taxonomies:output/es/index.html', (36118528, 23751) -'copy_assets:output/assets/images/blue-mocha-grunge.jpg', (909312, 310) +'render_taxonomies:output/es/index.html', (36118528, 23963) +'copy_assets:output/assets/images/blue-mocha-grunge.jpg', (909312, 316) 'render_taxonomies:output/categories/aikido.html', (33333760, 7779) -'render_galleries:output/galleries/zenmode/index.html', (29982208, 18864) +'render_galleries:output/galleries/zenmode/index.html', (37287936, 19961) 'render_sources:output/es/posts/dont-write-scripts-just-write-ipyscripts.ipynb', (268288, 306) 'render_sources:output/es/posts/slider-for-nbconvert.txt', (1185280, 261) 'generate_rss:output/es/rss.xml', (4205056, 7273) 'render_archive:output/es/2012/11/index.html', (4827648, 2575) -'render_taxonomies:output/2013/05/index.html', (32225280, 6377) +'render_taxonomies:output/2013/05/index.html', (39060992, 7513) 'render_taxonomies:output/es/categories/themes.html', (31190016, 7953) 'render_pages:output/es/posts/dont-write-scripts-just-write-ipyscripts.html', (30288384, 19253) 'render_pages:output/posts/paraguay.html', (31727104, 19019) 'render_posts:cache/posts/rise-510-is-out.html.es', (12781568, 382) -'render_galleries:output/es/galleries/Facu_RN/index.html', (29862912, 21486) -'copy_files:output/portfolio/portfolio.slides.html', (335360, 280) +'render_galleries:output/es/galleries/Facu_RN/index.html', (36881920, 23945) +'copy_files:output/portfolio/portfolio.slides.html', (335360, 286) 'render_archive:output/es/2016/06/index.html', (4687360, 2575) 'render_pages:output/posts/rise-400b1-is-available-please-test-it.html', (31812096, 16656) -'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html', (1989632, 633) +'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html', (1989632, 645) 'render_tags:output/categories/jupyter.xml', (3701248, 1001) 'render_tags:output/es/categories/videos.xml', (1824256, 623) 'render_tags:output/es/categories/rise.xml', (4396544, 1001) @@ -863,23 +863,23 @@ 'sitemap:output/sitemapindex.xml', (1487360, 256) 'render_taxonomies:output/categories/ipyscript.html', (32321536, 7470) 'render_sources:output/es/posts/powered-by-nikola.txt', (43008, 445) -'render_galleries:output/galleries/deploy/index.html', (29608448, 18569) +'render_galleries:output/galleries/deploy/index.html', (37448704, 19514) 'render_posts:cache/posts/48-themes-for-your-ipython-notebook.html.es', (1188352, 606) 'render_tags:output/categories/scipycon.xml', (1899520, 694) -'render_posts:cache/posts/zen-themes-updated.html', (1242112, 509) +'render_posts:cache/posts/zen-themes-updated.html', (37754368, 520) 'render_pages:output/es/posts/customizing-your-ipython-slides.html', (32097792, 19189) 'render_sources:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb', (15472640, 338) 'render_tags:output/categories/nikola.html', (3265024, 12962) 'render_tags:output/es/categories/jinja.html', (2926080, 6003) 'render_tags:output/categories/pip.xml', (4174848, 636) -'render_taxonomies:output/categories/tutorials.xml', (6975488, 694) -'render_posts:cache/posts/nikolas-zen-theme-finally-released.html', (0, 588) -'render_taxonomies:output/categories/toggle.xml', (19005440, 1525) -'render_taxonomies:output/2016/08/index.html', (30164992, 6319) +'render_taxonomies:output/categories/tutorials.xml', (6975488, 705) +'render_posts:cache/posts/nikolas-zen-theme-finally-released.html', (0, 598) +'render_taxonomies:output/categories/toggle.xml', (39174144, 1548) +'render_taxonomies:output/2016/08/index.html', (39955968, 7450) 'render_pages:output/es/posts/my-ipython-powered-semi-automatic-git-workflow.html', (33886720, 19296) 'render_sources:output/es/posts/viper.txt', (321536, 397) 'render_pages:output/es/posts/how-to-pin-the-conda.html', (2390528, 5548) -'render_posts:cache/posts/ipython-plugin-for-nikola-updated.html', (1127424, 583) +'render_posts:cache/posts/ipython-plugin-for-nikola-updated.html', (1127424, 595) 'render_tags:output/es/categories/reveal.xml', (4010496, 6132) 'render_archive:output/es/2013/index.html', (4553216, 2560) 'render_tags:output/es/categories/nbconvert.xml', (349184, 9542) @@ -889,7 +889,7 @@ 'render_pages:output/es/posts/make-your-slides-with-ipython.html', (32560128, 19175) 'render_posts:cache/posts/pyconar-2013.html.es', (1230336, 490) 'render_galleries:output/galleries/Facu_RN/Facu1.thumbnail.png', (163328, 272) -'render_taxonomies:output/es/categories/jupyterlab.xml', (20042752, 1225) +'render_taxonomies:output/es/categories/jupyterlab.xml', (20042752, 1237) 'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.html.es', (1529344, 644) 'render_taxonomies:output/es/categories/opensource.html', (36193792, 9862) 'render_pages:output/es/posts/coming-back.html', (34051072, 18940) @@ -899,12 +899,12 @@ 'render_tags:output/categories/minimap.xml', (517632, 839) 'render_tags:output/es/categories/base16.xml', (2035712, 786) 'render_tags:output/es/categories/family.html', (3042304, 3962) -'render_galleries:output/es/galleries/loadwrite/rss.xml', (29962752, 19253) +'render_galleries:output/es/galleries/loadwrite/rss.xml', (37667328, 20064) 'render_taxonomies:output/es/categories/viper.html', (32919040, 10818) -'render_galleries:output/galleries/loadwrite/loader1.png', (466944, 278) +'render_galleries:output/galleries/loadwrite/loader1.png', (466944, 286) 'render_sources:output/posts/facundo.txt', (220160, 235) -'render_taxonomies:output/es/categories/python.xml', (36226560, 35108) -'copy_assets:output/assets/css/nikola_rst.css', (29378560, 1118) +'render_taxonomies:output/es/categories/python.xml', (38800384, 35640) +'copy_assets:output/assets/css/nikola_rst.css', (29378560, 1299) 'render_tags:output/categories/life.xml', (940032, 1041) 'render_tags:output/categories/toggle.xml', (1385472, 1542) 'render_pages:output/posts/trading-logbook-update-22-nov-2013.html', (32602624, 19210) @@ -913,76 +913,76 @@ 'render_taxonomies:output/es/categories/politics.html', (32492544, 7849) 'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.html.es', (1817088, 631) 'render_galleries:output/galleries/.ipynb_checkpoints/index.html', (9021440, 4443) -'render_posts:cache/posts/48-themes-for-your-ipython-notebook.html', (251392, 594) +'render_posts:cache/posts/48-themes-for-your-ipython-notebook.html', (251392, 605) 'render_tags:output/categories/talks.html', (3106304, 4102) 'render_taxonomies:output/es/categories/talks.html', (31392768, 7825) 'render_pages:output/es/posts/a-new-nikolas-theme-for-my-site-zen.html', (31015424, 19217) 'render_pages:output/posts/mimic-the-ipython-notebook-cell-execution.html', (31564800, 19259) 'render_sources:output/posts/make-your-slides-with-ipython.ipynb', (967168, 283) 'render_tags:output/categories/tutorials.html', (4708352, 3615) -'render_taxonomies:output/es/categories/spellcheck.xml', (6563328, 877) +'render_taxonomies:output/es/categories/spellcheck.xml', (6563328, 888) 'render_sources:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook.ipynb', (677376, 323) 'render_taxonomies:output/es/categories/magic.html', (34273792, 7470) -'render_taxonomies:output/categories/less.xml', (6266368, 1407) +'render_taxonomies:output/categories/less.xml', (6266368, 1429) 'render_galleries:output/galleries/Facu_RN/Facu4.thumbnail.png', (967680, 272) 'render_taxonomies:output/es/categories/osx.html', (33661952, 10714) 'render_listings', (778240, 56) 'render_tags:output/categories/tutorials.xml', (2122240, 694) 'render_taxonomies:output/es/categories/theme.html', (30482944, 8063) -'render_taxonomies:output/es/categories/conda.xml', (35211776, 4441) +'render_taxonomies:output/es/categories/conda.xml', (35211776, 4492) 'render_galleries:output/galleries/trades/2.thumbnail.png', (855552, 261) 'render_archive:output/2013/02/index.html', (3345408, 2575) 'render_sources:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.ipynb', (273920, 327) 'render_pages:output/es/stories/about-me.html', (30307840, 19700) 'render_taxonomies:output/es/categories/toggle.html', (30785536, 8181) 'render_tags:output/categories/rise.xml', (4071936, 1001) -'render_galleries:output/galleries/Facu_RN/index.html', (29921792, 21486) +'render_galleries:output/galleries/Facu_RN/index.html', (37234176, 23945) 'render_galleries:output/es/galleries/Facu_RN', (2389504, 145) -'render_galleries:output/galleries/Inundacion/inundacion2.png', (1717248, 288) +'render_galleries:output/galleries/Inundacion/inundacion2.png', (1717248, 295) 'render_pages:output/posts/under-the-sea-en-la-plata.html', (30531584, 19147) 'render_tags:output/categories/nikola.xml', (124928, 10041) 'render_pages:output/es/posts/mimic-the-ipython-notebook-cell-execution.html', (30827520, 19259) 'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.html.es', (1105408, 661) -'render_taxonomies:output/es/2012/06/index.html', (32589824, 12682) -'render_taxonomies:output/es/categories/base16.xml', (5997056, 779) +'render_taxonomies:output/es/2012/06/index.html', (39941632, 13948) +'render_taxonomies:output/es/categories/base16.xml', (5997056, 791) 'render_tags:output/es/categories/talks.html', (3119104, 4102) -'render_taxonomies:output/categories/aikido.xml', (21641728, 1123) +'render_taxonomies:output/categories/aikido.xml', (21641728, 1134) 'render_tags:output/es/categories/css.xml', (871936, 1406) -'render_taxonomies:output/es/2012/09/index.html', (34247168, 6687) +'render_taxonomies:output/es/2012/09/index.html', (40133120, 7810) 'render_tags:output/es/categories/nikola.html', (3398144, 13975) 'render_galleries:output/galleries/rise', (9315840, 145) 'render_sources:output/es/posts/zen-themes-updated.ipynb', (479744, 262) 'render_taxonomies:output/es/categories/gh-pages.html', (32741376, 10223) 'render_tags:output/categories/threads.html', (4807168, 3705) -'render_taxonomies:output/categories/nbconvert.xml', (5881856, 9401) -'render_taxonomies:output/categories/magic.xml', (7548928, 814) +'render_taxonomies:output/categories/nbconvert.xml', (5881856, 9559) +'render_taxonomies:output/categories/magic.xml', (7548928, 827) 'render_tags:output/es/categories/themes.html', (3952640, 4236) -'render_taxonomies:output/2013/02/index.html', (31400960, 6426) -'render_galleries:output/galleries/trades/2.png', (1778176, 259) -'render_taxonomies:output/es/categories/politics.xml', (22319616, 1193) -'render_taxonomies:output/es/2017/index.html', (30010880, 5788) +'render_taxonomies:output/2013/02/index.html', (37932032, 7563) +'render_galleries:output/galleries/trades/2.png', (1778176, 267) +'render_taxonomies:output/es/categories/politics.xml', (22319616, 1217) +'render_taxonomies:output/es/2017/index.html', (36817408, 6607) 'render_tags:output/categories/jinja.html', (2717696, 6003) -'render_taxonomies:output/categories/javascript.xml', (5731840, 6478) -'render_galleries:output/galleries/rise/rss.xml', (34795008, 14095) +'render_taxonomies:output/categories/javascript.xml', (5731840, 6577) +'render_galleries:output/galleries/rise/rss.xml', (37071872, 14901) 'render_taxonomies:output/es/categories/win.html', (33971200, 10714) -'render_taxonomies:output/categories/flood.xml', (5311488, 708) -'render_taxonomies:output/es/categories/opensource.xml', (36107776, 3206) +'render_taxonomies:output/categories/flood.xml', (5311488, 717) +'render_taxonomies:output/es/categories/opensource.xml', (36107776, 3221) 'render_pages:output/posts/zen-themes-updated.html', (31225344, 19099) -'render_posts:cache/posts/beginning.html', (1732608, 455) +'render_posts:cache/posts/beginning.html', (1732608, 466) 'render_sources:output/posts/ipython-plugin-for-nikola-updated.ipynb', (323072, 291) 'render_sources:output/posts/coming-back.ipynb', (1463808, 247) 'render_tags:output/categories/zen.html', (3511808, 4872) 'render_pages:output/posts/48-themes-for-your-ipython-notebook.html', (31625728, 19218) 'render_sources:output/stories/about-me.txt', (1596416, 241) 'render_sources:output/posts/a-new-nikolas-theme-for-my-site-zen.ipynb', (194048, 295) -'render_taxonomies:output/categories/jupyter.xml', (36261888, 8187) +'render_taxonomies:output/categories/jupyter.xml', (39908352, 8259) 'render_tags:output/es/categories/family.xml', (61952, 1041) -'render_galleries:output/galleries/bokehmagic/sin3.png', (197632, 273) +'render_galleries:output/galleries/bokehmagic/sin3.png', (197632, 281) 'render_taxonomies:output/categories/minimap.html', (30906880, 7489) -'render_taxonomies:output/2013/10/index.html', (31294464, 8041) -'render_posts:cache/posts/we-are-above-1000-stars.html', (9356800, 400) +'render_taxonomies:output/2013/10/index.html', (40071168, 9202) +'render_posts:cache/posts/we-are-above-1000-stars.html', (9356800, 406) 'render_tags:output/categories/viper.xml', (80896, 2242) -'render_taxonomies:output/categories/talks.xml', (7043584, 1169) +'render_taxonomies:output/categories/talks.xml', (7043584, 1192) 'copy_assets:output/assets/css/ipython.min.css.map', (3710464, 640) 'render_pages:output/posts/coming-back.html', (30887936, 18940) 'render_posts:cache/posts/make-your-slides-with-ipython.html.es', (243712, 575) @@ -993,61 +993,61 @@ 'render_archive:output/es/2014/index.html', (4393984, 2560) 'render_posts:cache/posts/customizing-your-ipython-slides.html.es', (1042432, 585) 'render_sources:output/es/posts/48-themes-for-your-ipython-notebook.ipynb', (2085888, 296) -'render_taxonomies:output/categories/linux.xml', (28476928, 4058) +'render_taxonomies:output/categories/linux.xml', (39004160, 4103) 'render_archive:output/es/2012/06/index.html', (2996736, 2575) -'render_taxonomies:output/index-5.html', (30451200, 16006) +'render_taxonomies:output/index-5.html', (30451200, 16268) 'render_sources:output/es/posts/nikola-nbconvert.txt', (1185792, 450) 'render_archive:output/es/2012/09/index.html', (4502016, 2575) -'render_taxonomies:output/es/categories/threads.xml', (5326336, 778) +'render_taxonomies:output/es/categories/threads.xml', (5326336, 788) 'render_taxonomies:output/categories/opensource.html', (36174848, 9862) 'render_posts:cache/posts/facundo.html.es', (164352, 346) 'render_taxonomies:output/categories/talks.html', (31672832, 7825) 'render_taxonomies:output/es/categories/facu.html', (34374656, 7157) 'render_tags:output/categories/flood.html', (4755968, 3629) -'render_galleries:output/galleries/deploy/1.png', (1983488, 260) +'render_galleries:output/galleries/deploy/1.png', (1983488, 268) 'render_galleries:output/es/galleries', (2385920, 145) -'render_posts:cache/posts/coming-back.html', (1953792, 364) -'render_taxonomies:output/es/2014/index.html', (30048768, 5788) +'render_posts:cache/posts/coming-back.html', (1953792, 369) +'render_taxonomies:output/es/2014/index.html', (37260800, 6607) 'render_sources:output/posts/using-a-local-revealjs-library-with-your-ipython-slides.ipynb', (320512, 335) 'generate_rss:output/rss.xml', (4774912, 7273) -'render_taxonomies:output/2017/index.html', (30072320, 5788) -'render_posts:cache/posts/facundo.html', (883712, 346) +'render_taxonomies:output/2017/index.html', (37207552, 6607) +'render_posts:cache/posts/facundo.html', (883712, 352) 'render_pages:output/es/posts/we-are-above-1000-stars.html', (32041472, 14246) 'render_taxonomies:output/es/categories/videos.html', (33590272, 7273) -'copy_files:output/portfolio/damian.jpg', (2061312, 257) +'copy_files:output/portfolio/damian.jpg', (2061312, 263) 'render_pages:output/posts/hide-the-input-cells-from-your-ipython-slides.html', (31746560, 19286) 'render_indexes:output/es/index-1.html', (3797504, 14444) -'copy_assets:output/assets/js/toggle.js', (1214976, 280) +'copy_assets:output/assets/js/toggle.js', (1214976, 285) 'render_tags:output/categories/twitter.xml', (961024, 896) -'render_taxonomies:output/2013/09/index.html', (31500288, 11319) +'render_taxonomies:output/2013/09/index.html', (38023680, 12531) 'render_galleries:output/galleries/loadwrite/writer1.thumbnail.png', (322560, 280) 'render_galleries:output/galleries/twitter', (93696, 145) 'render_sources:output/es/posts/trading-logbook-update-22-nov-2013.ipynb', (1816064, 293) 'render_sources:output/posts/my-ipython-powered-semi-automatic-git-workflow.ipynb', (244736, 318) -'render_taxonomies:output/categories/opensource.xml', (36538368, 3206) +'render_taxonomies:output/categories/opensource.xml', (36538368, 3221) 'render_tags:output/es/categories/facu.html', (4440064, 3422) 'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html.es', (213504, 695) 'render_taxonomies:output/es/categories/jupyterlab.html', (33769984, 7881) -'render_taxonomies:output/es/2014/05/index.html', (32314880, 6343) -'render_galleries:output/es/galleries/zenmode/index.html', (29451776, 18864) +'render_taxonomies:output/es/2014/05/index.html', (38491136, 7480) +'render_galleries:output/es/galleries/zenmode/index.html', (36707840, 19961) 'render_pages:output/es/posts/viper-is-now-using-ipythonnbconvert.html', (33118208, 19217) -'render_galleries:output/es/galleries/deploy/index.html', (29190144, 18569) -'render_galleries:output/galleries/Facu_RN/Facu1.png', (1464320, 270) +'render_galleries:output/es/galleries/deploy/index.html', (37408768, 19514) +'render_galleries:output/galleries/Facu_RN/Facu1.png', (1464320, 278) 'render_pages:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (32702464, 19414) 'render_tags:output/categories/extension.html', (3844096, 7800) -'render_taxonomies:output/es/index-5.html', (33348608, 16006) -'render_taxonomies:output/categories/trading.xml', (8616448, 1726) -'render_taxonomies:output/es/categories/reveal.xml', (34508288, 10684) +'render_taxonomies:output/es/index-5.html', (33348608, 16268) +'render_taxonomies:output/categories/trading.xml', (8616448, 1755) +'render_taxonomies:output/es/categories/reveal.xml', (37850112, 10829) 'render_taxonomies:output/categories/ipython.html', (31347712, 30336) 'render_sources:output/posts/scipycon-argentina-2013.ipynb', (1016320, 271) 'render_galleries:output/es/galleries/loadwrite', (2384896, 145) 'render_pages:output/posts/viper.html', (31134208, 18997) 'render_posts:cache/posts/hello-world-again.html.es', (155648, 760) -'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (2108928, 673) +'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (2108928, 684) 'render_archive:output/2013/10/index.html', (4085760, 2575) 'render_tags:output/categories/daniela.html', (3949056, 3422) 'render_taxonomies:output/categories/facundo.html', (30793728, 7696) -'copy_assets:output/assets/xml/atom.xsl', (12945920, 1437) +'copy_assets:output/assets/xml/atom.xsl', (37203456, 1611) 'render_galleries:output/galleries/.ipynb_checkpoints/rss.xml', (9092096, 4439) 'render_tags:output/categories/git.html', (2707456, 6862) 'render_sources:output/posts/a-simple-minimap-for-your-nbconverted-ipynb.ipynb', (2063872, 311) @@ -1057,31 +1057,31 @@ 'render_tags:output/categories/css.html', (4443648, 4327) 'render_taxonomies:output/es/categories/python.html', (36418048, 41764) 'render_taxonomies:output/categories/twitter.html', (33563136, 7545) -'render_taxonomies:output/es/categories/family.xml', (6445568, 1040) +'render_taxonomies:output/es/categories/family.xml', (6445568, 1055) 'render_pages:output/es/posts/rise-meets-jupyterlab.html', (31512064, 14238) 'render_tags:output/es/categories/win.xml', (3831808, 636) -'copy_files:output/portfolio/custom.css', (569344, 255) -'render_posts:cache/posts/trading-logbook-update-3.html', (8721920, 403) +'copy_files:output/portfolio/custom.css', (569344, 261) +'render_posts:cache/posts/trading-logbook-update-3.html', (8721920, 408) 'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html.es', (1532416, 754) -'render_taxonomies:output/es/categories/daniela.xml', (7462912, 501) +'render_taxonomies:output/es/categories/daniela.xml', (7462912, 506) 'render_sources:output/es/posts/viper-is-now-using-ipythonnbconvert.ipynb', (1142784, 295) 'render_archive:output/2012/11/index.html', (3454976, 2575) -'render_galleries:output/galleries/loadwrite/rss.xml', (29577728, 19253) +'render_galleries:output/galleries/loadwrite/rss.xml', (36908032, 20064) 'render_taxonomies:output/categories/life.html', (31876096, 7696) -'render_posts:cache/posts/slider-for-nbconvert.html', (2084864, 385) +'render_posts:cache/posts/slider-for-nbconvert.html', (2084864, 390) 'render_tags:output/categories/gh-pages.xml', (1250304, 2529) 'render_pages:output/es/posts/beginning.html', (32930304, 19646) -'render_taxonomies:output/index.html', (36082688, 23460) +'render_taxonomies:output/index.html', (38759424, 23668) 'render_taxonomies:output/es/categories/rise.html', (34769408, 12284) -'copy_assets:output/assets/js/baguetteBox.min.js', (29489664, 1136) +'copy_assets:output/assets/js/baguetteBox.min.js', (29489664, 1320) 'render_galleries:output/galleries/bokehmagic/themes.thumbnail.png', (907264, 279) 'render_pages:output/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (32473088, 19427) 'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html.es', (898048, 685) -'render_taxonomies:output/es/2016/index.html', (30104064, 5788) -'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.html', (1866752, 643) -'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.html', (282624, 649) +'render_taxonomies:output/es/2016/index.html', (36749824, 6607) +'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.html', (1866752, 654) +'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.html', (282624, 660) 'render_archive:output/2014/04/index.html', (3820544, 2575) -'render_galleries:output/galleries/spellchecker/rss.xml', (29209088, 18915) +'render_galleries:output/galleries/spellchecker/rss.xml', (36727808, 19722) 'render_pages:output/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (31584256, 19357) 'render_tags:output/es/categories/zen.html', (4769792, 4872) 'render_sources:output/es/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb', (14029312, 338) @@ -1089,43 +1089,43 @@ 'render_tags:output/es/categories/rise.html', (4703744, 3922) 'render_archive:output/2014/05/index.html', (4028928, 2575) 'render_taxonomies:output/categories/config.html', (33058816, 9697) -'copy_assets:output/assets/js/html5.js', (14851584, 1429) +'copy_assets:output/assets/js/html5.js', (36905984, 1603) 'render_pages:output/posts/how-to-pin-the-conda.html', (2396160, 5548) 'render_galleries:output/galleries/loadwrite/loader1.thumbnail.png', (8704, 280) 'render_tags:output/es/categories/ipyscript.html', (4459520, 3742) 'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.html.es', (740352, 654) 'render_taxonomies:output/es/categories/local.html', (30379520, 7574) 'render_tags:output/es/categories/spellcheck.xml', (280576, 882) -'render_taxonomies:output/es/2017/12/index.html', (30691328, 5442) -'render_taxonomies:output/es/categories/format.xml', (6801408, 975) +'render_taxonomies:output/es/2017/12/index.html', (39981568, 6572) +'render_taxonomies:output/es/categories/format.xml', (6801408, 987) 'render_archive:output/es/2013/09/index.html', (4652032, 2575) -'render_taxonomies:output/es/categories/pinned.xml', (6669312, 525) +'render_taxonomies:output/es/categories/pinned.xml', (6669312, 531) 'render_galleries:output/galleries/zenmode/pic2.thumbnail.png', (2147328, 270) 'render_taxonomies:output/es/categories/tutorials.html', (31868416, 7350) 'render_tags:output/categories/spellcheck.html', (4839424, 3803) 'render_taxonomies:output/categories/nbconvert.html', (30142976, 16057) 'render_tags:output/es/categories/git.html', (4253696, 6862) -'render_taxonomies:output/categories/mipyex.xml', (6107136, 3303) -'render_taxonomies:output/2013/12/index.html', (33214464, 10015) -'render_taxonomies:output/es/categories/talks.xml', (5101568, 1169) +'render_taxonomies:output/categories/mipyex.xml', (6107136, 3348) +'render_taxonomies:output/2013/12/index.html', (39835136, 11210) +'render_taxonomies:output/es/categories/talks.xml', (5101568, 1192) 'render_tags:output/categories/theme.xml', (1427456, 1422) 'render_pages:output/es/posts/rise-400b1-is-available-please-test-it.html', (33448448, 16656) -'render_posts:cache/posts/improving-viper-slideshows-styling.html', (2084352, 426) +'render_posts:cache/posts/improving-viper-slideshows-styling.html', (2084352, 432) 'render_tags:output/es/categories/gh-pages.html', (3747328, 5450) 'render_taxonomies:output/categories/conda.html', (35155456, 11097) -'render_taxonomies:output/es/2013/02/index.html', (31619072, 6426) -'render_taxonomies:output/categories/twitter.xml', (5718528, 889) -'render_taxonomies:output/categories/pinned.xml', (5836800, 525) -'render_taxonomies:output/es/2013/09/index.html', (33831424, 11319) -'copy_assets:output/assets/css/bitter.css', (119296, 280) -'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (2064384, 693) -'render_taxonomies:output/es/2017/11/index.html', (32467456, 5234) +'render_taxonomies:output/es/2013/02/index.html', (37799424, 7563) +'render_taxonomies:output/categories/twitter.xml', (5718528, 900) +'render_taxonomies:output/categories/pinned.xml', (5836800, 531) +'render_taxonomies:output/es/2013/09/index.html', (39280640, 12531) +'copy_assets:output/assets/css/bitter.css', (119296, 286) +'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (2064384, 705) +'render_taxonomies:output/es/2017/11/index.html', (37972480, 6366) 'render_galleries:output/galleries/spellchecker', (1595392, 145) 'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html.es', (841216, 736) 'render_tags:output/es/categories/magic.xml', (1384448, 821) -'render_taxonomies:output/es/2017/06/index.html', (31482880, 7036) -'render_galleries:output/galleries/zenmode/pic1.png', (2085376, 268) -'render_galleries:output/galleries/trades/index.html', (29280768, 18829) +'render_taxonomies:output/es/2017/06/index.html', (39586304, 8178) +'render_galleries:output/galleries/zenmode/pic1.png', (2085376, 275) +'render_galleries:output/galleries/trades/index.html', (37428736, 19905) 'generate_rss', (834560, 56) 'render_archive:output/es/2012/index.html', (4026368, 2560) 'copy_assets:output/assets/js/flowr.js', (29420032, 1081) @@ -1133,30 +1133,30 @@ 'render_tags:output/es/categories/threads.xml', (1014272, 784) 'render_galleries:output/es/galleries/twitter', (2386432, 145) 'render_taxonomies:output/es/categories/workflow.html', (35875840, 11270) -'render_galleries:output/galleries/Facu_RN/Facu4.png', (1595904, 270) +'render_galleries:output/galleries/Facu_RN/Facu4.png', (1595904, 278) 'render_tags:output/es/categories/zen.xml', (96768, 1951) 'render_tags:output/categories/trading.xml', (1619456, 1318) -'render_taxonomies:output/es/2013/04/index.html', (32202752, 6391) +'render_taxonomies:output/es/2013/04/index.html', (38359552, 7525) 'render_pages:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (34189312, 19328) 'render_pages:output/es/posts/rise-500-is-out.html', (32794112, 14207) 'render_posts:cache/posts/improving-viper-slideshows-styling.html.es', (94208, 585) -'render_taxonomies:output/2012/10/index.html', (32091136, 6291) +'render_taxonomies:output/2012/10/index.html', (38902272, 7422) 'render_taxonomies:output/categories/trading.html', (31718400, 8382) 'render_sources:output/es/posts/rise-meets-jupyterlab.ipynb', (8233472, 267) 'render_pages:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (31463424, 19401) 'render_pages:output/es/posts/under-the-sea-en-la-plata.html', (33428992, 19147) 'render_posts:cache/posts/slider-for-nbconvert.html.es', (1796608, 385) 'render_sources:output/posts/trading-logbook-update-22-nov-2013.ipynb', (586240, 293) -'render_taxonomies:output/es/categories/connectivity.xml', (6696448, 918) +'render_taxonomies:output/es/categories/connectivity.xml', (6696448, 929) 'render_taxonomies:output/es/categories/nbconvert.html', (31688704, 16057) -'render_taxonomies:output/2016/06/index.html', (30952448, 6208) -'copy_assets:output/assets/images/cream-dust.png', (486400, 294) +'render_taxonomies:output/2016/06/index.html', (39407616, 7339) +'copy_assets:output/assets/images/cream-dust.png', (486400, 299) 'render_tags:output/es/categories/jupyter.html', (3123712, 3922) -'render_taxonomies:output/2014/05/index.html', (33160192, 6343) +'render_taxonomies:output/2014/05/index.html', (39147520, 7480) 'render_posts:cache/posts/how-to-pin-the-conda.html.es', (2390016, 397) 'render_tags:output/categories/win.html', (4600320, 2594) 'render_sources:output/es/posts/one-line-deployment-of-your-site-to-gh-pages.ipynb', (757760, 313) -'copy_assets:output/assets/fonts/fontawesome-webfont.svg', (751104, 313) +'copy_assets:output/assets/fonts/fontawesome-webfont.svg', (751104, 318) 'render_pages:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html', (33046528, 12068) 'render_posts:cache/posts/ipython-plugin-for-nikola-updated.html.es', (43520, 589) 'render_posts:cache/posts/how-to-pin-conda.html.es', (2455552, 385) @@ -1171,181 +1171,181 @@ 'render_tags:output/es/categories/facundo.xml', (861184, 1041) 'render_posts:cache/posts/coming-back.html.es', (599040, 370) 'render_posts:cache/posts/we-are-above-1000-stars.html.es', (8946688, 405) -'render_galleries:output/es/galleries/trades/index.html', (29150208, 18829) -'copy_assets:output/assets/fonts/SHIcXhdd5RknatSgOzyEkA.woff', (1978368, 320) +'render_galleries:output/es/galleries/trades/index.html', (36958720, 19905) +'copy_assets:output/assets/fonts/SHIcXhdd5RknatSgOzyEkA.woff', (1978368, 326) 'render_tags:output/categories/facu.xml', (2166784, 501) 'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html.es', (860160, 745) 'render_pages:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb.html', (33385472, 19272) -'render_galleries:output/galleries/spellchecker/1.png', (1900544, 272) +'render_galleries:output/galleries/spellchecker/1.png', (1900544, 279) 'render_taxonomies:output/es/categories/flood.html', (30135296, 7364) 'render_tags:output/categories/first_post.xml', (44544, 644) 'render_archive:output/2016/06/index.html', (4607488, 2575) -'render_taxonomies:output/categories/nikola.xml', (35984896, 11797) +'render_taxonomies:output/categories/nikola.xml', (35984896, 11969) 'render_tags:output/es/categories/performance.xml', (628736, 1318) -'render_taxonomies:output/es/categories/minimap.xml', (6893056, 833) -'render_taxonomies:output/2018/02/index.html', (33539072, 4425) +'render_taxonomies:output/es/categories/minimap.xml', (6893056, 846) +'render_taxonomies:output/2018/02/index.html', (39577088, 5556) 'render_posts:cache/posts/rise-520-is-out.html.es', (17712640, 381) -'render_taxonomies:output/es/2018/02/index.html', (31828992, 4425) -'render_taxonomies:output/2018/index.html', (30090752, 4020) +'render_taxonomies:output/es/2018/02/index.html', (38749696, 5556) +'render_taxonomies:output/2018/index.html', (37652480, 4839) 'render_sources:output/es/posts/rise-520-is-out.ipynb', (18273792, 255) -'render_taxonomies:output/es/2018/index.html', (30110208, 4020) -'render_posts:cache/posts/rise-520-is-out.html', (19190784, 376) +'render_taxonomies:output/es/2018/index.html', (37403648, 4839) +'render_posts:cache/posts/rise-520-is-out.html', (19190784, 382) 'render_sources:output/posts/rise-520-is-out.ipynb', (19578880, 255) 'render_pages:output/es/posts/rise-520-is-out.html', (33933312, 9897) 'render_pages:output/posts/rise-520-is-out.html', (32854016, 9897) 'render_galleries:output/es/galleries/binder', (19765248, 145) 'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html.es', (19836416, 558) 'render_sources:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.ipynb', (19900416, 373) -'render_taxonomies:output/2018/05/index.html', (32422400, 5100) +'render_taxonomies:output/2018/05/index.html', (40080384, 6237) 'render_sources:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.ipynb', (19943936, 373) -'render_taxonomies:output/es/2018/05/index.html', (30327808, 5100) +'render_taxonomies:output/es/2018/05/index.html', (40236544, 6237) 'render_pages:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (33785856, 10193) -'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (20119040, 553) +'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (20119040, 559) 'render_pages:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (33068544, 10193) 'render_sources:output/posts/rise-530-is-out.ipynb', (20334080, 255) -'render_posts:cache/posts/rise-530-is-out.html', (20388864, 376) +'render_posts:cache/posts/rise-530-is-out.html', (20388864, 382) 'render_posts:cache/posts/rise-530-is-out.html.es', (20556288, 382) 'render_pages:output/es/posts/rise-530-is-out.html', (30922240, 9898) 'render_sources:output/es/posts/rise-530-is-out.ipynb', (20726784, 255) 'render_pages:output/posts/rise-530-is-out.html', (33312768, 9898) -'render_galleries:output/galleries/acm/rss.xml', (29627392, 9441) -'render_galleries:output/es/galleries/acm/rss.xml', (30001152, 9441) -'render_galleries:output/es/galleries/acm/index.html', (29511168, 9406) -'render_galleries:output/galleries/acm/2.jpg', (20792320, 254) +'render_galleries:output/galleries/acm/rss.xml', (37493248, 10245) +'render_galleries:output/es/galleries/acm/rss.xml', (36785664, 10245) +'render_galleries:output/es/galleries/acm/index.html', (37013504, 10473) +'render_galleries:output/galleries/acm/2.jpg', (20792320, 262) 'render_galleries:output/es/galleries/acm', (20792832, 145) -'render_galleries:output/galleries/acm/index.html', (29832704, 9406) -'render_galleries:output/galleries/acm/1.jpg', (20798464, 255) +'render_galleries:output/galleries/acm/index.html', (37111808, 10473) +'render_galleries:output/galleries/acm/1.jpg', (20798464, 262) 'render_galleries:output/galleries/acm/2.thumbnail.jpg', (20798976, 256) 'render_galleries:output/galleries/acm/1.thumbnail.jpg', (20913152, 257) 'render_galleries:output/galleries/acm', (20913664, 145) 'render_sources:output/posts/rise-541-is-out.ipynb', (20950528, 255) -'render_posts:cache/posts/rise-541-is-out.html', (21061120, 376) +'render_posts:cache/posts/rise-541-is-out.html', (21061120, 382) 'render_pages:output/posts/rise-541-is-out.html', (30661632, 9898) 'render_pages:output/es/posts/rise-541-is-out.html', (31766016, 9898) -'render_taxonomies:output/2018/08/index.html', (32274944, 4426) -'render_taxonomies:output/es/2018/08/index.html', (31378432, 4426) +'render_taxonomies:output/2018/08/index.html', (37920256, 5556) +'render_taxonomies:output/es/2018/08/index.html', (39126016, 5556) 'render_sources:output/es/posts/rise-541-is-out.ipynb', (21248000, 255) 'render_posts:cache/posts/rise-541-is-out.html.es', (21297152, 382) 'render_taxonomies:output/es/categories/shodan.html', (30959104, 5605) -'render_taxonomies:output/es/categories/cordobaaikikai.xml', (21901824, 1055) +'render_taxonomies:output/es/categories/cordobaaikikai.xml', (21901824, 1065) 'render_pages:output/posts/my-aikido-shodan-test.html', (32231936, 9928) -'render_posts:cache/posts/my-aikido-shodan-test.html', (21384704, 394) +'render_posts:cache/posts/my-aikido-shodan-test.html', (21384704, 400) 'render_taxonomies:output/es/categories/cordobaaikikai.html', (33491456, 5605) 'render_taxonomies:output/categories/asaikido.html', (31071744, 5314) -'render_taxonomies:output/categories/asaikido.xml', (21425152, 764) +'render_taxonomies:output/categories/asaikido.xml', (21425152, 770) 'render_taxonomies:output/categories/shodan.html', (34369024, 5314) -'render_taxonomies:output/2018/09/index.html', (30491136, 4669) -'render_taxonomies:output/es/categories/shodan.xml', (21903360, 1055) -'render_taxonomies:output/categories/cordobaaikikai.xml', (21505024, 764) +'render_taxonomies:output/2018/09/index.html', (37925888, 5800) +'render_taxonomies:output/es/categories/shodan.xml', (21903360, 1065) +'render_taxonomies:output/categories/cordobaaikikai.xml', (21505024, 770) 'render_sources:output/es/posts/my-aikido-shodan-test.ipynb', (21506048, 478) -'render_taxonomies:output/es/2018/09/index.html', (32390656, 4960) +'render_taxonomies:output/es/2018/09/index.html', (37891584, 6095) 'render_taxonomies:output/es/categories/asaikido.html', (30159360, 5605) 'render_taxonomies:output/categories/cordobaaikikai.html', (31712768, 5314) 'render_sources:output/posts/my-aikido-shodan-test.ipynb', (21591552, 267) 'render_posts:cache/posts/my-aikido-shodan-test.html.es', (21934080, 544) 'render_pages:output/es/posts/my-aikido-shodan-test.html', (33323008, 10432) -'render_taxonomies:output/es/categories/asaikido.xml', (21914624, 1055) -'render_taxonomies:output/categories/shodan.xml', (21638656, 764) +'render_taxonomies:output/es/categories/asaikido.xml', (21914624, 1065) +'render_taxonomies:output/categories/shodan.xml', (21638656, 770) 'render_sources:output/es/posts/mi-examen-de-aikido-para-1er-dan.ipynb', (21639680, 279) 'render_sources:output/posts/mi-examen-de-aikido-para-1er-dan.ipynb', (21643264, 279) 'render_posts:cache/posts/my-aikido-shodan-test.es.html.es', (21836800, 409) -'render_posts:cache/posts/my-aikido-shodan-test.es.html', (21936640, 532) +'render_posts:cache/posts/my-aikido-shodan-test.es.html', (21936640, 543) 'render_pages:output/es/posts/mi-examen-de-aikido-para-1er-dan.html', (21890560, 5527) 'render_pages:output/posts/mi-examen-de-aikido-para-1er-dan.html', (21896192, 5527) -'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html', (21935104, 633) -'render_posts:cache/posts/slider-for-nbconvert.es.html', (21936128, 385) -'render_posts:cache/posts/rise-500-is-out.es.html', (21937664, 376) -'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html', (21938176, 553) -'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html', (21939200, 593) -'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html', (21940224, 683) -'render_posts:cache/posts/48-themes-for-your-ipython-notebook.es.html', (21941248, 594) -'render_posts:cache/posts/make-your-slides-with-ipython.es.html', (21942272, 563) -'render_posts:cache/posts/improving-viper-slideshows-styling.es.html', (22167552, 585) -'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html', (21943808, 673) -'render_posts:cache/posts/we-are-above-1000-stars.es.html', (21944832, 400) -'render_posts:cache/posts/trading-logbook-update-22-nov-2013.es.html', (21945344, 588) -'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html', (21946368, 649) -'render_posts:cache/posts/scipycon-argentina-2013.es.html', (21947392, 533) -'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html', (21948416, 733) -'render_posts:cache/posts/live-trading-logbook.es.html', (21949440, 518) -'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html', (21950464, 500) -'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.es.html', (21950976, 643) -'render_posts:cache/posts/rise-510-is-out.es.html', (21952000, 376) -'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html', (21952512, 728) -'render_posts:cache/posts/zen-themes-updated.es.html', (21953536, 509) -'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html', (21954560, 693) -'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html', (21955584, 643) -'render_posts:cache/posts/coming-back.es.html', (21956608, 364) -'render_posts:cache/posts/rise-520-is-out.es.html', (21957120, 376) -'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html', (21957632, 633) -'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html', (21958656, 673) -'render_posts:cache/posts/reveal_converter-mini-tutorial.es.html', (21959680, 568) -'render_posts:cache/posts/how-to-pin-conda.es.html', (21960704, 379) -'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html', (21961216, 663) -'render_posts:cache/posts/pyconar-2013.es.html', (21962240, 478) -'render_posts:cache/posts/rise-400b1-is-available-please-test-it.es.html', (21962752, 445) -'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.es.html', (21963264, 593) -'render_posts:cache/posts/ipython-plugin-for-nikola-updated.es.html', (21964288, 583) -'render_posts:cache/posts/rise-meets-jupyterlab.es.html', (21965312, 394) -'render_posts:cache/posts/rise-530-is-out.es.html', (21965824, 376) -'render_posts:cache/posts/trading-logbook-update-3.es.html', (21966336, 403) -'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html', (21966848, 743) -'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html', (21967872, 724) -'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.es.html', (21968896, 618) -'render_posts:cache/posts/nikolas-zen-theme-finally-released.es.html', (21969920, 588) -'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.es.html', (21970944, 623) -'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html', (21971968, 638) -'render_posts:cache/posts/facundo.es.html', (21972992, 346) -'render_posts:cache/posts/blogging-with-nikola-and-ipython.es.html', (21973504, 579) -'render_posts:cache/posts/customizing-your-ipython-slides.es.html', (21974528, 573) -'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.es.html', (21975552, 619) -'render_posts:cache/posts/rise-541-is-out.es.html', (21976576, 376) -'render_posts:cache/posts/under-the-sea-en-la-plata.es.html', (21977088, 543) -'render_posts:cache/posts/powered-by-nikola.es.html', (22462464, 748) -'render_posts:cache/posts/viper.es.html', (22168576, 638) -'render_posts:cache/posts/hello-world-again.es.html', (22284288, 748) +'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html', (21935104, 645) +'render_posts:cache/posts/slider-for-nbconvert.es.html', (21936128, 390) +'render_posts:cache/posts/rise-500-is-out.es.html', (21937664, 382) +'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html', (21938176, 559) +'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html', (21939200, 605) +'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html', (21940224, 695) +'render_posts:cache/posts/48-themes-for-your-ipython-notebook.es.html', (21941248, 605) +'render_posts:cache/posts/make-your-slides-with-ipython.es.html', (21942272, 575) +'render_posts:cache/posts/improving-viper-slideshows-styling.es.html', (22167552, 597) +'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html', (21943808, 685) +'render_posts:cache/posts/we-are-above-1000-stars.es.html', (21944832, 406) +'render_posts:cache/posts/trading-logbook-update-22-nov-2013.es.html', (21945344, 600) +'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html', (21946368, 660) +'render_posts:cache/posts/scipycon-argentina-2013.es.html', (21947392, 545) +'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html', (21948416, 745) +'render_posts:cache/posts/live-trading-logbook.es.html', (21949440, 530) +'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html', (21950464, 506) +'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.es.html', (21950976, 654) +'render_posts:cache/posts/rise-510-is-out.es.html', (21952000, 382) +'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html', (21952512, 740) +'render_posts:cache/posts/zen-themes-updated.es.html', (37756416, 520) +'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html', (21954560, 705) +'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html', (21955584, 655) +'render_posts:cache/posts/coming-back.es.html', (21956608, 369) +'render_posts:cache/posts/rise-520-is-out.es.html', (21957120, 382) +'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html', (21957632, 645) +'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html', (21958656, 684) +'render_posts:cache/posts/reveal_converter-mini-tutorial.es.html', (21959680, 580) +'render_posts:cache/posts/how-to-pin-conda.es.html', (21960704, 384) +'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html', (21961216, 674) +'render_posts:cache/posts/pyconar-2013.es.html', (21962240, 490) +'render_posts:cache/posts/rise-400b1-is-available-please-test-it.es.html', (21962752, 451) +'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.es.html', (21963264, 604) +'render_posts:cache/posts/ipython-plugin-for-nikola-updated.es.html', (21964288, 595) +'render_posts:cache/posts/rise-meets-jupyterlab.es.html', (21965312, 400) +'render_posts:cache/posts/rise-530-is-out.es.html', (21965824, 382) +'render_posts:cache/posts/trading-logbook-update-3.es.html', (21966336, 408) +'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html', (21966848, 754) +'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html', (21967872, 735) +'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.es.html', (21968896, 630) +'render_posts:cache/posts/nikolas-zen-theme-finally-released.es.html', (21969920, 598) +'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.es.html', (21970944, 635) +'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html', (21971968, 650) +'render_posts:cache/posts/facundo.es.html', (21972992, 352) +'render_posts:cache/posts/blogging-with-nikola-and-ipython.es.html', (21973504, 591) +'render_posts:cache/posts/customizing-your-ipython-slides.es.html', (21974528, 584) +'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.es.html', (21975552, 631) +'render_posts:cache/posts/rise-541-is-out.es.html', (21976576, 382) +'render_posts:cache/posts/under-the-sea-en-la-plata.es.html', (21977088, 553) +'render_posts:cache/posts/powered-by-nikola.es.html', (22462464, 772) +'render_posts:cache/posts/viper.es.html', (22168576, 660) +'render_posts:cache/posts/hello-world-again.es.html', (22284288, 772) 'render_posts:cache/stories/about-me.es.html', (28995584, 542) -'render_posts:cache/posts/beginning.es.html', (22490624, 674) -'render_posts:cache/posts/a-simple-overview-of-viper.es.html', (21981184, 829) -'render_posts:cache/posts/paraguay.es.html', (22463488, 665) +'render_posts:cache/posts/beginning.es.html', (22490624, 695) +'render_posts:cache/posts/a-simple-overview-of-viper.es.html', (21981184, 853) +'render_posts:cache/posts/paraguay.es.html', (22463488, 689) 'render_pages:output/posts/abandoning-the-oquanta-domain-name.html', (32117248, 9993) -'render_taxonomies:output/2019/index.html', (30064640, 4020) +'render_taxonomies:output/2019/index.html', (37662208, 4839) 'render_pages:output/es/posts/abandoning-the-oquanta-domain-name.html', (33036288, 9993) -'render_taxonomies:output/es/2019/01/index.html', (32386048, 4521) -'render_taxonomies:output/2019/01/index.html', (33854464, 4521) -'render_posts:cache/posts/abandoning-the-oquanta-domain-name.html', (22688256, 433) +'render_taxonomies:output/es/2019/01/index.html', (39319552, 5651) +'render_taxonomies:output/2019/01/index.html', (38646784, 5651) +'render_posts:cache/posts/abandoning-the-oquanta-domain-name.html', (22688256, 438) 'render_sources:output/es/posts/abandoning-the-oquanta-domain-name.ipynb', (22774784, 293) -'render_taxonomies:output/es/2019/index.html', (30038528, 4020) -'render_posts:cache/posts/abandoning-the-oquanta-domain-name.es.html', (22819328, 433) +'render_taxonomies:output/es/2019/index.html', (37704704, 4839) +'render_posts:cache/posts/abandoning-the-oquanta-domain-name.es.html', (22819328, 438) 'render_sources:output/posts/abandoning-the-oquanta-domain-name.ipynb', (22819840, 293) 'render_pages:output/es/posts/rise-550-is-out.html', (30643712, 7526) -'render_posts:cache/posts/rise-550-is-out.html', (27496448, 376) +'render_posts:cache/posts/rise-550-is-out.html', (27496448, 382) 'render_sources:output/es/posts/rise-550-is-out.ipynb', (27496960, 255) -'render_taxonomies:output/2019/04/index.html', (32516096, 3446) +'render_taxonomies:output/2019/04/index.html', (38248448, 4577) 'render_sources:output/posts/rise-550-is-out.ipynb', (27509248, 255) -'render_taxonomies:output/es/2019/04/index.html', (31459840, 3446) -'render_posts:cache/posts/rise-550-is-out.es.html', (27813888, 376) +'render_taxonomies:output/es/2019/04/index.html', (38263808, 4577) +'render_posts:cache/posts/rise-550-is-out.es.html', (27813888, 382) 'render_pages:output/posts/rise-550-is-out.html', (31840256, 7526) 'render_pages:output/posts/rise-560-is-out.html', (31557120, 7532) -'render_taxonomies:output/2019/11/index.html', (30658048, 3452) -'render_galleries:output/galleries/rise/dark_slides.png', (28114432, 275) -'render_taxonomies:output/es/2019/11/index.html', (30620672, 3452) -'render_posts:cache/posts/rise-560-is-out.es.html', (28219392, 381) +'render_taxonomies:output/2019/11/index.html', (38222848, 4578) +'render_galleries:output/galleries/rise/dark_slides.png', (28114432, 283) +'render_taxonomies:output/es/2019/11/index.html', (38631936, 4578) +'render_posts:cache/posts/rise-560-is-out.es.html', (28219392, 382) 'render_sources:output/es/posts/rise-560-is-out.ipynb', (28238848, 260) 'render_sources:output/posts/rise-560-is-out.ipynb', (28264960, 260) 'render_pages:output/es/posts/rise-560-is-out.html', (32538112, 7532) -'render_posts:cache/posts/rise-560-is-out.html', (28290560, 381) +'render_posts:cache/posts/rise-560-is-out.html', (28290560, 382) 'render_galleries:output/galleries/rise/dark_slides.thumbnail.png', (28302848, 277) -'render_taxonomies:output/es/index-6.html', (35846144, 9215) +'render_taxonomies:output/es/index-6.html', (38227456, 9430) 'render_sources:output/posts/rise-561-is-out.ipynb', (28608512, 260) -'render_posts:cache/posts/rise-561-is-out.html', (28628992, 381) -'render_taxonomies:output/2020/02/index.html', (30339584, 3451) -'render_taxonomies:output/es/2020/02/index.html', (34243584, 3451) -'render_posts:cache/posts/rise-561-is-out.es.html', (28700672, 381) +'render_posts:cache/posts/rise-561-is-out.html', (28628992, 382) +'render_taxonomies:output/2020/02/index.html', (38482944, 4578) +'render_taxonomies:output/es/2020/02/index.html', (38696448, 4578) +'render_posts:cache/posts/rise-561-is-out.es.html', (28700672, 382) 'render_pages:output/es/posts/rise-561-is-out.html', (34235904, 7531) -'render_taxonomies:output/index-6.html', (35672576, 9215) -'render_taxonomies:output/2020/index.html', (30094848, 3046) -'render_taxonomies:output/es/2020/index.html', (30035456, 3046) +'render_taxonomies:output/index-6.html', (39509504, 9430) +'render_taxonomies:output/2020/index.html', (37087232, 3865) +'render_taxonomies:output/es/2020/index.html', (37657600, 3865) 'render_sources:output/es/posts/rise-561-is-out.ipynb', (28784640, 260) 'render_pages:output/posts/rise-561-is-out.html', (33859072, 7531) 'render_sources:output/es/stories/about-me.ipynb', (28994560, 335) @@ -1356,20 +1356,17 @@ 'render_sources:output/es/stories/support-me.ipynb', (29026816, 341) 'render_sources:output/stories/support-me.ipynb', (29027328, 341) 'render_posts:cache/stories/support-me.html', (29027840, 373) -'render_posts:cache/stories/Support me.es.html', (29028352, 367) -'render_posts:cache/stories/Support me.html', (29028864, 367) -'render_posts:cache/stories/About me.es.html', (29064192, 361) -'render_posts:cache/stories/About me.html', (29082624, 361) -'render_posts:cache/posts/nikola-nbconvert.html', (30114816, 516) -'render_posts:cache/posts/nikola-nbconvert.es.html', (34392576, 645) -'render_galleries:output/galleries/rise/commission.png', (34481152, 272) +'render_posts:cache/stories/Support me.es.html', (29028352, 373) +'render_posts:cache/stories/About me.es.html', (29064192, 366) +'render_posts:cache/stories/About me.html', (29082624, 366) +'render_galleries:output/galleries/rise/commission.png', (34481152, 280) 'render_posts:cache/posts/supporting-rise.es.html', (34481664, 382) 'render_galleries:output/galleries/rise/commission.thumbnail.png', (34496512, 274) 'render_pages:output/posts/supporting-rise.html', (34502656, 5270) 'render_pages:output/es/posts/supporting-rise.html', (34519040, 5270) 'render_sources:output/posts/supporting-rise.ipynb', (34524672, 261) 'render_posts:cache/posts/supporting-rise.html', (34660352, 382) -'render_taxonomies:output/es/2020/04/index.html', (34660864, 2519) +'render_taxonomies:output/es/2020/04/index.html', (38792704, 3644) 'render_taxonomies:output/es/categories/kofi.html', (34693632, 2809) 'render_taxonomies:output/categories/kofi.xml', (34696704, 527) 'render_taxonomies:output/categories/support.xml', (34697728, 527) @@ -1378,41 +1375,465 @@ 'render_taxonomies:output/categories/support.html', (34811392, 2809) 'render_taxonomies:output/es/categories/support.html', (34814464, 2809) 'render_taxonomies:output/categories/kofi.html', (34859008, 2809) -'render_taxonomies:output/2020/04/index.html', (34905600, 2519) +'render_taxonomies:output/2020/04/index.html', (37904896, 3644) 'render_taxonomies:output/es/categories/kofi.xml', (34918400, 527) 'render_pages:output/posts/rise-571-is-out.html', (35000832, 5270) -'render_taxonomies:output/es/2020/10/index.html', (35006464, 2519) +'render_taxonomies:output/es/2020/10/index.html', (39748608, 3644) 'render_posts:cache/posts/rise-571-is-out.html', (35009024, 382) 'render_posts:cache/posts/rise-571-is-out.es.html', (35009536, 382) 'render_sources:output/posts/rise-571-is-out.ipynb', (35010048, 261) 'render_pages:output/es/posts/rise-571-is-out.html', (35058688, 5270) 'render_sources:output/es/posts/rise-571-is-out.ipynb', (35208704, 261) -'render_taxonomies:output/2020/10/index.html', (35209216, 2519) -'render_taxonomies:output/es/2021/index.html', (35454464, 2117) -'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35464704, 551) -'render_taxonomies:output/2021/08/index.html', (36204032, 3433) +'render_taxonomies:output/2020/10/index.html', (40200192, 3644) +'render_taxonomies:output/es/2021/index.html', (36955648, 2936) +'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35464704, 550) +'render_taxonomies:output/2021/08/index.html', (39201280, 4556) 'render_pages:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35508224, 5552) 'render_taxonomies:output/es/categories/myst.html', (36111360, 3723) -'render_taxonomies:output/2021/index.html', (35530240, 2117) -'render_taxonomies:output/es/categories/myst.xml', (36106240, 1441) +'render_taxonomies:output/2021/index.html', (37334528, 2936) +'render_taxonomies:output/es/categories/myst.xml', (36106240, 1439) 'render_taxonomies:output/categories/myst.html', (36189184, 3723) -'render_taxonomies:output/categories/myst.xml', (35997184, 1441) -'render_taxonomies:output/es/2021/08/index.html', (36483584, 3433) +'render_taxonomies:output/categories/myst.xml', (35997184, 1439) +'render_taxonomies:output/es/2021/08/index.html', (39079424, 4556) 'render_sources:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.ipynb', (35855360, 374) -'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html', (35855872, 551) +'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html', (35855872, 550) 'render_sources:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.ipynb', (35856896, 374) 'render_pages:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35887616, 5552) -'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html', (35983872, 530) -'render_taxonomies:output/es/categories/docutils.xml', (36080128, 774) +'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html', (35983872, 529) +'render_taxonomies:output/es/categories/docutils.xml', (36080128, 773) 'render_sources:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.ipynb', (36081152, 360) -'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (36081664, 530) 'render_taxonomies:output/categories/docutils.html', (36115456, 3056) 'render_taxonomies:output/categories/sphinx.html', (36185088, 3056) -'render_taxonomies:output/categories/docutils.xml', (36188160, 774) +'render_taxonomies:output/categories/docutils.xml', (36188160, 773) 'render_sources:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.ipynb', (36193280, 360) 'render_taxonomies:output/es/categories/sphinx.html', (36292096, 3056) -'render_taxonomies:output/es/categories/sphinx.xml', (36416000, 774) -'render_taxonomies:output/categories/sphinx.xml', (36417024, 774) +'render_taxonomies:output/es/categories/sphinx.xml', (36416000, 773) +'render_taxonomies:output/categories/sphinx.xml', (36417024, 773) 'render_taxonomies:output/es/categories/docutils.html', (36460032, 3056) 'render_pages:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (36463104, 5517) 'render_pages:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (36487168, 5517) +'render_sources:output/posts/rise-571-is-out/index.ipynb', (36577280, 261) +'render_sources:output/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.ipynb', (36577792, 341) +'render_sources:output/posts/viper/index.txt', (36578304, 236) +'render_sources:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.ipynb', (36578816, 379) +'render_sources:output/es/posts/trading-logbook-update-3/index.ipynb', (36579328, 278) +'render_sources:output/es/posts/pyconar-2013/index.ipynb', (36579840, 255) +'render_sources:output/posts/hide-the-input-cells-from-your-ipython-slides/index.ipynb', (36580352, 321) +'render_sources:output/posts/ipython-plugin-for-nikola-updated/index.ipynb', (36580864, 297) +'render_sources:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.ipynb', (36581376, 355) +'render_sources:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.ipynb', (36581888, 373) +'render_sources:output/es/posts/my-ipython-powered-semi-automatic-git-workflow/index.ipynb', (36582400, 323) +'render_sources:output/es/posts/scipycon-argentina-2013/index.ipynb', (36582912, 277) +'render_sources:output/posts/my-ipython-powered-semi-automatic-git-workflow/index.ipynb', (36583424, 323) +'render_sources:output/es/posts/beginning/index.txt', (36583936, 249) +'render_sources:output/posts/make-your-slides-with-ipython/index.ipynb', (36584448, 289) +'render_sources:output/posts/rise-550-is-out/index.ipynb', (36584960, 261) +'render_sources:output/stories/support-me/index.ipynb', (36585472, 255) +'render_sources:output/es/posts/rise-meets-jupyterlab/index.ipynb', (36585984, 273) +'render_sources:output/es/posts/make-your-slides-with-ipython/index.ipynb', (36586496, 289) +'render_sources:output/posts/dont-write-scripts-just-write-ipyscripts/index.ipynb', (36587008, 312) +'render_sources:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.ipynb', (36587520, 333) +'render_sources:output/posts/facundo/index.txt', (36588032, 241) +'render_sources:output/es/posts/trading-logbook-update-22-nov-2013/index.ipynb', (36588544, 299) +'render_sources:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.ipynb', (36589056, 341) +'render_sources:output/es/posts/rise-560-is-out/index.ipynb', (36589568, 261) +'render_sources:output/posts/pyconar-2013/index.ipynb', (36590080, 255) +'render_sources:output/es/posts/48-themes-for-your-ipython-notebook/index.ipynb', (36590592, 301) +'render_sources:output/es/posts/rise-550-is-out/index.ipynb', (36591104, 261) +'render_sources:output/es/posts/under-the-sea-en-la-plata/index.ipynb', (36591616, 281) +'render_sources:output/posts/different-ways-to-lead-an-open-source-project/index.ipynb', (36592128, 321) +'render_sources:output/posts/rise-400b1-is-available-please-test-it/index.ipynb', (36592640, 307) +'render_sources:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.ipynb', (36593152, 317) +'render_sources:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.ipynb', (36593664, 359) +'render_sources:output/posts/nikola-nbconvert/index.txt', (36594176, 257) +'render_sources:output/es/posts/supporting-rise/index.ipynb', (36594688, 261) +'render_sources:output/es/posts/we-are-above-1000-stars/index.ipynb', (36595200, 277) +'render_sources:output/es/posts/dont-write-scripts-just-write-ipyscripts/index.ipynb', (36595712, 312) +'render_sources:output/posts/trading-logbook-update-3/index.ipynb', (36596224, 278) +'render_sources:output/es/posts/mimic-the-ipython-notebook-cell-execution/index.ipynb', (36596736, 313) +'render_sources:output/es/posts/slider-for-nbconvert/index.txt', (36597248, 266) +'render_sources:output/es/posts/rise-541-is-out/index.ipynb', (36597760, 261) +'render_sources:output/posts/reveal-converter-mini-tutorial/index.ipynb', (36598272, 291) +'render_sources:output/posts/customizing-your-ipython-slides/index.ipynb', (36598784, 292) +'render_sources:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.ipynb', (36599296, 360) +'render_sources:output/posts/abandoning-the-oquanta-domain-name/index.ipynb', (36599808, 298) +'render_sources:output/posts/rise-510-is-out/index.ipynb', (36600320, 261) +'render_sources:output/posts/improving-viper-slideshows-styling/index.txt', (36600832, 294) +'render_sources:output/es/posts/hide-the-input-cells-from-your-ipython-slides/index.ipynb', (36601344, 321) +'render_sources:output/posts/paraguay/index.txt', (36601856, 242) +'render_sources:output/es/posts/rise-530-is-out/index.ipynb', (36602368, 261) +'render_sources:output/es/posts/abandoning-the-oquanta-domain-name/index.ipynb', (36602880, 298) +'render_sources:output/es/posts/rise-500-is-out/index.ipynb', (36603392, 261) +'render_sources:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.ipynb', (36603904, 357) +'render_sources:output/es/posts/rise-571-is-out/index.ipynb', (36604416, 261) +'render_sources:output/es/posts/a-new-nikolas-theme-for-my-site-zen/index.ipynb', (36604928, 301) +'render_sources:output/posts/beginning/index.txt', (36605440, 243) +'render_sources:output/posts/zen-mode-extension-for-the-ipython-notebook/index.ipynb', (36605952, 317) +'render_sources:output/es/posts/viper/index.txt', (36606464, 241) +'render_sources:output/es/posts/blogging-with-nikola-and-ipython/index.ipynb', (36606976, 296) +'render_sources:output/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.ipynb', (36607488, 360) +'render_sources:output/posts/live-trading-logbook/index.ipynb', (36608000, 271) +'render_sources:output/es/posts/rise-400b1-is-available-please-test-it/index.ipynb', (36608512, 307) +'render_sources:output/es/posts/viper-is-now-using-ipythonnbconvert/index.ipynb', (36609024, 300) +'render_sources:output/posts/mimic-the-ipython-notebook-cell-execution/index.ipynb', (36609536, 313) +'render_sources:output/posts/scipycon-argentina-2013/index.ipynb', (36610048, 277) +'render_sources:output/posts/how-to-pin-conda/index.ipynb', (36610560, 262) +'render_sources:output/es/posts/nikolas-zen-theme-finally-released/index.ipynb', (36611072, 298) +'render_sources:output/posts/a-new-nikolas-theme-for-my-site-zen/index.ipynb', (36611584, 301) +'render_sources:output/es/posts/my-aikido-shodan-test/index.ipynb', (36612096, 278) +'render_sources:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.ipynb', (36612608, 373) +'render_sources:output/es/posts/facundo/index.txt', (36613120, 241) +'render_sources:output/es/posts/teasers-with-the-ipython-notebook-plugin/index.ipynb', (36613632, 311) +'render_sources:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.ipynb', (36614144, 354) +'render_sources:output/posts/rise-530-is-out/index.ipynb', (36614656, 261) +'render_sources:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.ipynb', (36615168, 328) +'render_sources:output/posts/slider-for-nbconvert/index.txt', (36615680, 266) +'render_sources:output/es/posts/a-simple-overview-of-viper/index.txt', (36616192, 284) +'render_sources:output/es/posts/improving-viper-slideshows-styling/index.txt', (36616704, 300) +'render_sources:output/posts/teasers-with-the-ipython-notebook-plugin/index.ipynb', (36617216, 311) +'render_sources:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.ipynb', (36617728, 354) +'render_sources:output/posts/viper-is-now-using-ipythonnbconvert/index.ipynb', (36618240, 300) +'render_sources:output/posts/a-simple-overview-of-viper/index.txt', (36618752, 278) +'render_sources:output/es/posts/ipython-plugin-for-nikola-updated/index.ipynb', (36619264, 297) +'render_sources:output/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.ipynb', (36619776, 317) +'render_sources:output/posts/rise-541-is-out/index.ipynb', (36620288, 261) +'render_sources:output/es/posts/different-ways-to-lead-an-open-source-project/index.ipynb', (36620800, 321) +'render_sources:output/posts/powered-by-nikola/index.txt', (36621312, 260) +'render_sources:output/es/posts/how-to-pin-conda/index.ipynb', (36621824, 262) +'render_sources:output/es/posts/zen-themes-updated/index.ipynb', (36622336, 267) +'render_sources:output/es/stories/support-me/index.ipynb', (36622848, 255) +'render_sources:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.ipynb', (36623360, 333) +'render_sources:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.ipynb', (36623872, 344) +'render_sources:output/es/posts/powered-by-nikola/index.txt', (36624384, 266) +'render_sources:output/es/posts/paraguay/index.txt', (36624896, 248) +'render_sources:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.ipynb', (36625408, 359) +'render_sources:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.ipynb', (36625920, 332) +'render_sources:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.ipynb', (36626432, 355) +'render_sources:output/es/posts/one-line-deployment-of-your-site-to-gh-pages/index.ipynb', (36626944, 319) +'render_sources:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.ipynb', (36627456, 337) +'render_sources:output/es/stories/about-me/index.ipynb', (36627968, 250) +'render_sources:output/posts/48-themes-for-your-ipython-notebook/index.ipynb', (36628480, 301) +'render_sources:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.ipynb', (36628992, 357) +'render_sources:output/posts/one-line-deployment-of-your-site-to-gh-pages/index.ipynb', (36629504, 319) +'render_sources:output/es/posts/rise-520-is-out/index.ipynb', (36630016, 261) +'render_sources:output/es/posts/zen-mode-extension-for-the-ipython-notebook/index.ipynb', (36630528, 317) +'render_sources:output/posts/rise-560-is-out/index.ipynb', (36631040, 261) +'render_sources:output/posts/rise-561-is-out/index.ipynb', (36631552, 261) +'render_sources:output/posts/hello-world-again/index.txt', (36632064, 260) +'render_sources:output/es/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.ipynb', (36632576, 344) +'render_sources:output/posts/we-are-above-1000-stars/index.ipynb', (36633088, 277) +'render_sources:output/es/posts/hello-world-again/index.txt', (36633600, 266) +'render_sources:output/posts/blogging-with-nikola-and-ipython/index.ipynb', (36634112, 296) +'render_sources:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.ipynb', (36634624, 379) +'render_sources:output/posts/supporting-rise/index.ipynb', (36635136, 261) +'render_sources:output/es/posts/nikola-nbconvert/index.txt', (36635648, 264) +'render_sources:output/posts/nikolas-zen-theme-finally-released/index.ipynb', (36636160, 298) +'render_sources:output/posts/rise-520-is-out/index.ipynb', (36636672, 261) +'render_sources:output/posts/trading-logbook-update-22-nov-2013/index.ipynb', (36637184, 299) +'render_sources:output/es/posts/rise-510-is-out/index.ipynb', (36637696, 261) +'render_sources:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.ipynb', (36638208, 328) +'render_sources:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.ipynb', (36638720, 337) +'render_sources:output/es/posts/rise-561-is-out/index.ipynb', (36639232, 261) +'render_sources:output/es/posts/reveal-converter-mini-tutorial/index.ipynb', (36639744, 291) +'render_sources:output/posts/rise-meets-jupyterlab/index.ipynb', (36640256, 273) +'render_sources:output/stories/about-me/index.ipynb', (36640768, 250) +'render_sources:output/es/posts/live-trading-logbook/index.ipynb', (36641280, 271) +'render_sources:output/posts/under-the-sea-en-la-plata/index.ipynb', (36641792, 281) +'render_sources:output/posts/rise-500-is-out/index.ipynb', (36642304, 261) +'render_sources:output/posts/zen-themes-updated/index.ipynb', (36642816, 267) +'render_sources:output/posts/my-aikido-shodan-test/index.ipynb', (36643328, 273) +'render_sources:output/es/posts/customizing-your-ipython-slides/index.ipynb', (36643840, 292) +'render_sources:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.ipynb', (36644352, 332) +'render_sources:output/es/posts/coming-back/index.ipynb', (36644864, 252) +'render_sources:output/posts/coming-back/index.ipynb', (36645376, 252) +'copy_assets:output/assets/js/justified-layout.min.js', (36816896, 454) +'copy_assets:output/assets/css/rst_base.css', (37064704, 434) +'copy_assets:output/assets/js/luxon.min.js', (37091328, 431) +'copy_assets:output/assets/js/fancydates.min.js', (37258240, 440) +'copy_assets:output/assets/js/gallery.min.js', (37651968, 434) +'copy_assets:output/assets/js/gallery.js', (37661696, 427) +'render_posts:cache/stories/Support me.html', (37753856, 373) +'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (37755392, 529) +'render_posts:cache/posts/nikola-nbconvert.html', (37757952, 481) +'render_taxonomies:output/es/categories/local/index.html', (37758464, 3101) +'render_taxonomies:output/es/categories/life/index.html', (37762048, 3227) +'render_pages:output/es/posts/rise-550-is-out/index.html', (37765632, 3192) +'render_taxonomies:output/es/categories/ipyscript/index.html', (37769216, 2999) +'render_pages:output/posts/viper-is-now-using-ipythonnbconvert/index.html', (37772288, 3454) +'render_pages:output/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.html', (37775872, 3665) +'render_pages:output/posts/zen-themes-updated/index.html', (37779968, 3338) +'render_taxonomies:output/es/categories/config/index.html', (37783552, 5260) +'render_taxonomies:output/categories/flood/index.html', (37789184, 2889) +'render_taxonomies:output/es/categories/family/index.html', (37792256, 3227) +'render_pages:output/es/posts/zen-mode-extension-for-the-ipython-notebook/index.html', (37795840, 3512) +'render_pages:output/posts/rise-550-is-out/index.html', (37807104, 3192) +'render_taxonomies:output/es/categories/pinned/index.html', (37810688, 2703) +'render_pages:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html', (37813760, 3474) +'render_taxonomies:output/es/categories/docutils/index.html', (37817344, 2945) +'render_pages:output/es/posts/viper/index.html', (37820416, 3572) +'render_pages:output/es/posts/beginning/index.html', (37824000, 3622) +'render_pages:output/posts/ipython-plugin-for-nikola-updated/index.html', (37828096, 3442) +'render_taxonomies:output/categories/cordobaaikikai/index.html', (37831680, 2729) +'render_pages:output/es/posts/rise-meets-jupyterlab/index.html', (37842944, 3223) +'render_taxonomies:output/es/categories/daniela/index.html', (37861376, 2678) +'render_taxonomies:output/categories/binder/index.html', (37864448, 3585) +'render_taxonomies:output/es/categories/performance/index.html', (37868544, 3927) +'render_taxonomies:output/es/categories/conda/index.html', (37880832, 6664) +'render_pages:output/posts/rise-571-is-out/index.html', (37888000, 3193) +'render_pages:output/es/posts/zen-themes-updated/index.html', (37897728, 3338) +'render_taxonomies:output/categories/aikido/index.html', (37901312, 3093) +'render_pages:output/es/posts/rise-520-is-out/index.html', (37908992, 3192) +'render_taxonomies:output/categories/format/index.html', (38016512, 3159) +'render_pages:output/es/posts/pyconar-2013/index.html', (38020096, 3295) +'render_pages:output/posts/rise-541-is-out/index.html', (38056960, 3192) +'render_taxonomies:output/categories/extension/index.html', (38060544, 7055) +'render_pages:output/es/posts/rise-561-is-out/index.html', (38067712, 3193) +'render_pages:output/posts/rise-530-is-out/index.html', (38071296, 3193) +'render_taxonomies:output/categories/config/index.html', (38074880, 5260) +'render_pages:output/posts/48-themes-for-your-ipython-notebook/index.html', (38080512, 3457) +'render_taxonomies:output/categories/osx/index.html', (38084096, 6275) +'render_taxonomies:output/categories/typescript/index.html', (38090752, 2729) +'render_taxonomies:output/es/categories/win/index.html', (38103040, 6275) +'render_pages:output/posts/rise-meets-jupyterlab/index.html', (38109696, 3223) +'render_pages:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.html', (38113280, 3566) +'render_taxonomies:output/es/categories/zenmode/index.html', (38116864, 3018) +'render_pages:output/es/posts/abandoning-the-oquanta-domain-name/index.html', (38119936, 3287) +'render_pages:output/posts/a-new-nikolas-theme-for-my-site-zen/index.html', (38123520, 3456) +'render_taxonomies:output/es/categories/jupyter/index.html', (38127104, 10431) +'render_taxonomies:output/es/categories/magic/index.html', (38137856, 2999) +'render_pages:output/posts/we-are-above-1000-stars/index.html', (38148608, 3232) +'render_pages:output/posts/slider-for-nbconvert/index.html', (38152192, 3211) +'render_pages:output/es/posts/trading-logbook-update-22-nov-2013/index.html', (38155776, 3449) +'render_pages:output/es/posts/slider-for-nbconvert/index.html', (38159360, 3211) +'render_taxonomies:output/categories/kofi/index.html', (38162944, 2699) +'render_pages:output/posts/customizing-your-ipython-slides/index.html', (38166016, 3427) +'render_taxonomies:output/categories/javascript/index.html', (38169600, 8749) +'render_pages:output/es/posts/teasers-with-the-ipython-notebook-plugin/index.html', (38178816, 3490) +'render_pages:output/es/posts/improving-viper-slideshows-styling/index.html', (38182400, 3623) +'render_taxonomies:output/es/categories/nikola/index.html', (38186496, 15168) +'render_pages:output/posts/mimic-the-ipython-notebook-cell-execution/index.html', (38201856, 3497) +'render_taxonomies:output/es/categories/spellcheck/index.html', (38205440, 3060) +'render_pages:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.html', (38208512, 3568) +'render_taxonomies:output/es/categories/extension/index.html', (38212096, 7055) +'render_pages:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.html', (38219264, 3399) +'render_pages:output/posts/beginning/index.html', (38237184, 3264) +'render_taxonomies:output/categories/performance/index.html', (38240768, 3927) +'render_taxonomies:output/categories/jupyterlab/index.html', (38244864, 3409) +'render_pages:output/posts/my-ipython-powered-semi-automatic-git-workflow/index.html', (38253056, 3535) +'render_pages:output/es/posts/my-aikido-shodan-test/index.html', (38256640, 3518) +'render_pages:output/posts/facundo/index.html', (38260224, 3146) +'render_taxonomies:output/categories/support/index.html', (38268416, 2699) +'render_pages:output/posts/rise-510-is-out/index.html', (38271488, 3193) +'render_pages:output/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.html', (38275072, 3512) +'render_taxonomies:output/es/categories/nbconvert/index.html', (38278656, 11731) +'render_taxonomies:output/categories/shodan/index.html', (38290432, 2729) +'render_pages:output/posts/how-to-pin-conda/index.html', (38308864, 3197) +'render_taxonomies:output/es/categories/facundo/index.html', (38312448, 3227) +'render_taxonomies:output/categories/docutils/index.html', (38316032, 2945) +'render_taxonomies:output/es/categories/pdf/index.html', (38340096, 3074) +'render_taxonomies:output/categories/sphinx/index.html', (38343680, 2945) +'render_taxonomies:output/es/categories/slideshow/index.html', (38346752, 12598) +'render_taxonomies:output/es/categories/twitter/index.html', (38367232, 3072) +'render_taxonomies:output/categories/viper/index.html', (38370304, 4437) +'render_pages:output/posts/nikola-nbconvert/index.html', (38374912, 3191) +'render_pages:output/es/posts/rise-400b1-is-available-please-test-it/index.html', (38378496, 3308) +'render_taxonomies:output/categories/pdf/index.html', (38389760, 3074) +'render_pages:output/es/posts/hello-world-again/index.html', (38393344, 3731) +'render_pages:output/posts/powered-by-nikola/index.html', (38403584, 3322) +'render_taxonomies:output/es/categories/trading/index.html', (38407168, 3927) +'render_pages:output/es/posts/paraguay/index.html', (38411264, 3612) +'render_pages:output/es/posts/ipython-plugin-for-nikola-updated/index.html', (38424064, 3442) +'render_taxonomies:output/categories/zen/index.html', (38444544, 4131) +'render_taxonomies:output/categories/ipython/index.html', (38449152, 26246) +'render_taxonomies:output/es/categories/minimap/index.html', (38475776, 3018) +'render_pages:output/es/posts/nikolas-zen-theme-finally-released/index.html', (38616576, 3447) +'render_pages:output/posts/rise-520-is-out/index.html', (38628352, 3192) +'render_taxonomies:output/categories/opensource/index.html', (38636544, 5393) +'render_taxonomies:output/categories/talks/index.html', (38652928, 3364) +'render_pages:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.html', (38656512, 3639) +'render_pages:output/es/posts/supporting-rise/index.html', (38660608, 3193) +'render_taxonomies:output/es/categories/viper/index.html', (38664192, 5579) +'render_pages:output/es/posts/rise-510-is-out/index.html', (38669824, 3193) +'render_pages:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.html', (38673408, 3653) +'render_pages:output/posts/hello-world-again/index.html', (38701056, 3322) +'render_pages:output/es/posts/scipycon-argentina-2013/index.html', (38712320, 3371) +'render_pages:output/posts/hide-the-input-cells-from-your-ipython-slides/index.html', (38715904, 3525) +'render_taxonomies:output/categories/linux/index.html', (38719488, 6275) +'render_taxonomies:output/categories/politics/index.html', (38726144, 2764) +'render_taxonomies:output/categories/git/index.html', (38731264, 6716) +'render_pages:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.html', (38755328, 3665) +'render_taxonomies:output/es/categories/opensource/index.html', (38783488, 5393) +'render_taxonomies:output/es/categories/format/index.html', (38789120, 3159) +'render_pages:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.html', (38796800, 3512) +'render_pages:output/posts/trading-logbook-update-3/index.html', (38836224, 3237) +'render_pages:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.html', (38839808, 3595) +'render_taxonomies:output/categories/trading/index.html', (38843904, 3927) +'render_taxonomies:output/es/categories/support/index.html', (38848000, 2699) +'render_taxonomies:output/es/categories/base16/index.html', (38851072, 2963) +'render_taxonomies:output/es/categories/rise/index.html', (38854144, 7863) +'render_taxonomies:output/es/categories/ipytmpl/index.html', (38862336, 3041) +'render_taxonomies:output/categories/conda/index.html', (38865408, 6664) +'render_pages:output/es/posts/mimic-the-ipython-notebook-cell-execution/index.html', (38876672, 3497) +'render_taxonomies:output/es/categories/pip/index.html', (38880256, 6275) +'render_pages:output/posts/rise-400b1-is-available-please-test-it/index.html', (38886912, 3308) +'render_pages:output/posts/viper/index.html', (38898688, 3236) +'render_pages:output/es/stories/support-me/index.html', (38909952, 3324) +'render_pages:output/es/posts/customizing-your-ipython-slides/index.html', (38918144, 3427) +'render_pages:output/es/posts/rise-560-is-out/index.html', (38929408, 3193) +'render_taxonomies:output/categories/pyconar/index.html', (38932992, 2801) +'render_taxonomies:output/es/categories/politics/index.html', (38957056, 3118) +'render_taxonomies:output/categories/reveal/index.html', (38960640, 13001) +'render_taxonomies:output/categories/daniela/index.html', (38973952, 2678) +'render_taxonomies:output/es/categories/less/index.html', (38977024, 3601) +'render_taxonomies:output/es/categories/gh-pages/index.html', (38981120, 5783) +'render_pages:output/posts/reveal-converter-mini-tutorial/index.html', (38987264, 3421) +'copy_files:output/.ipynb_checkpoints/Test-checkpoint.html', (38990848, 302) +'render_posts:cache/posts/nikola-nbconvert.es.html', (38991360, 610) +'render_pages:output/es/posts/we-are-above-1000-stars/index.html', (38992384, 3232) +'render_pages:output/es/posts/my-ipython-powered-semi-automatic-git-workflow/index.html', (38995968, 3535) +'render_taxonomies:output/es/categories/workflow/index.html', (39008768, 6850) +'render_taxonomies:output/es/categories/css/index.html', (39015936, 3582) +'render_taxonomies:output/es/categories/reveal/index.html', (39019520, 13001) +'render_pages:output/posts/rise-561-is-out/index.html', (39032832, 3193) +'render_taxonomies:output/es/categories/first_post/index.html', (39036416, 3237) +'render_pages:output/posts/supporting-rise/index.html', (39040000, 3193) +'render_taxonomies:output/es/categories/blog/index.html', (39043584, 10352) +'render_taxonomies:output/categories/win/index.html', (39054336, 6275) +'render_pages:output/posts/coming-back/index.html', (39068672, 3172) +'render_pages:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.html', (39072256, 3582) +'render_pages:output/posts/different-ways-to-lead-an-open-source-project/index.html', (39084032, 3525) +'render_taxonomies:output/categories/magic/index.html', (39087616, 2999) +'render_taxonomies:output/es/categories/git/index.html', (39111680, 6716) +'render_pages:output/posts/paraguay/index.html', (39118848, 3258) +'render_pages:output/posts/improving-viper-slideshows-styling/index.html', (39122432, 3280) +'render_taxonomies:output/categories/themes/index.html', (39131648, 3493) +'render_pages:output/es/posts/hide-the-input-cells-from-your-ipython-slides/index.html', (39135232, 3525) +'render_taxonomies:output/categories/ipytmpl/index.html', (39159808, 3041) +'render_pages:output/es/posts/blogging-with-nikola-and-ipython/index.html', (39162880, 3437) +'render_pages:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.html', (39166464, 3644) +'render_taxonomies:output/categories/life/index.html', (39170560, 3227) +'render_taxonomies:output/categories/ipyscript/index.html', (39176192, 2999) +'render_pages:output/es/posts/coming-back/index.html', (39179264, 3172) +'render_pages:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.html', (39182848, 3554) +'render_pages:output/es/posts/one-line-deployment-of-your-site-to-gh-pages/index.html', (39194112, 3519) +'render_pages:output/posts/trading-logbook-update-22-nov-2013/index.html', (39197696, 3449) +'render_pages:output/posts/under-the-sea-en-la-plata/index.html', (39205888, 3383) +'render_taxonomies:output/categories/facu/index.html', (39209472, 2678) +'render_pages:output/posts/rise-560-is-out/index.html', (39212544, 3193) +'render_pages:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.html', (39216128, 3488) +'render_taxonomies:output/es/categories/cordobaaikikai/index.html', (39219712, 3024) +'render_taxonomies:output/categories/jupyter/index.html', (39222784, 10431) +'render_pages:output/posts/my-aikido-shodan-test/index.html', (39233536, 3223) +'render_taxonomies:output/es/categories/python/index.html', (39237120, 36489) +'render_taxonomies:output/categories/css/index.html', (39293440, 3582) +'render_taxonomies:output/categories/minimap/index.html', (39301632, 3018) +'render_pages:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.html', (39304704, 3653) +'render_taxonomies:output/categories/zenmode/index.html', (39308800, 3018) +'render_taxonomies:output/categories/gh-pages/index.html', (39325696, 5783) +'render_taxonomies:output/es/categories/threads/index.html', (39340032, 2960) +'render_taxonomies:output/categories/python/index.html', (39343104, 34663) +'render_taxonomies:output/es/categories/typescript/index.html', (39377920, 2729) +'render_taxonomies:output/categories/pinned/index.html', (39380992, 2703) +'render_taxonomies:output/categories/connectivity/index.html', (39384064, 3101) +'render_taxonomies:output/categories/blog/index.html', (39387648, 9585) +'render_taxonomies:output/categories/facundo/index.html', (39415296, 3227) +'render_pages:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.html', (39418880, 3639) +'render_taxonomies:output/categories/local/index.html', (39422976, 3101) +'render_pages:output/es/stories/about-me/index.html', (39502336, 3313) +'render_pages:output/es/posts/trading-logbook-update-3/index.html', (39505920, 3237) +'render_pages:output/posts/a-simple-overview-of-viper/index.html', (39519232, 3385) +'render_taxonomies:output/es/categories/sphinx/index.html', (39522816, 2945) +'render_taxonomies:output/categories/threads/index.html', (39525888, 2960) +'render_taxonomies:output/es/categories/osx/index.html', (39549952, 6275) +'render_taxonomies:output/categories/mipyex/index.html', (39556608, 5520) +'render_pages:output/es/posts/rise-541-is-out/index.html', (39562240, 3192) +'render_taxonomies:output/es/categories/jupyterlab/index.html', (39565824, 3409) +'render_taxonomies:output/es/categories/myst/index.html', (39569408, 3611) +'render_pages:output/posts/one-line-deployment-of-your-site-to-gh-pages/index.html', (39582720, 3519) +'render_taxonomies:output/categories/nbviewer/index.html', (39594496, 3088) +'render_taxonomies:output/es/categories/shodan/index.html', (39621632, 3024) +'render_taxonomies:output/es/categories/scipycon/index.html', (39624704, 2877) +'render_taxonomies:output/categories/twitter/index.html', (39635456, 3072) +'render_pages:output/es/posts/a-simple-overview-of-viper/index.html', (39638528, 3848) +'render_taxonomies:output/es/categories/binder/index.html', (39650816, 3585) +'render_taxonomies:output/es/categories/theme/index.html', (39654912, 3601) +'render_taxonomies:output/categories/pip/index.html', (39659008, 6275) +'render_taxonomies:output/es/categories/tutorials/index.html', (39665664, 2877) +'render_taxonomies:output/categories/myst/index.html', (39668736, 3611) +'render_pages:output/posts/make-your-slides-with-ipython/index.html', (39672832, 3414) +'render_pages:output/es/posts/powered-by-nikola/index.html', (39676416, 3731) +'render_pages:output/posts/live-trading-logbook/index.html', (39691776, 3351) +'render_pages:output/es/posts/nikola-nbconvert/index.html', (39695360, 3466) +'render_taxonomies:output/es/categories/talks/index.html', (39698944, 3364) +'render_taxonomies:output/categories/scipycon/index.html', (39702528, 2877) +'render_pages:output/es/posts/reveal-converter-mini-tutorial/index.html', (39752704, 3421) +'render_taxonomies:output/categories/toggle/index.html', (39760896, 3720) +'render_pages:output/es/posts/a-new-nikolas-theme-for-my-site-zen/index.html', (39764992, 3456) +'render_pages:output/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.html', (39776256, 3595) +'render_pages:output/posts/scipycon-argentina-2013/index.html', (39780352, 3371) +'render_taxonomies:output/es/categories/connectivity/index.html', (39783936, 3101) +'render_pages:output/posts/nikolas-zen-theme-finally-released/index.html', (39787520, 3447) +'render_taxonomies:output/categories/nikola/index.html', (39791104, 14141) +'render_taxonomies:output/es/categories/github/index.html', (39805440, 2905) +'render_pages:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.html', (39808512, 3439) +'render_pages:output/es/posts/make-your-slides-with-ipython/index.html', (39812096, 3414) +'render_taxonomies:output/categories/github/index.html', (39815680, 2905) +'render_taxonomies:output/categories/family/index.html', (39818752, 3227) +'render_taxonomies:output/categories/jinja/index.html', (39822336, 5260) +'render_taxonomies:output/es/categories/aikido/index.html', (39827968, 3388) +'render_pages:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html', (39831552, 3474) +'render_taxonomies:output/categories/slideshow/index.html', (39846400, 12598) +'render_taxonomies:output/categories/spellcheck/index.html', (39859200, 3060) +'render_pages:output/es/posts/viper-is-now-using-ipythonnbconvert/index.html', (39862272, 3454) +'render_taxonomies:output/es/categories/asaikido/index.html', (39865856, 3024) +'render_pages:output/posts/rise-500-is-out/index.html', (39868928, 3192) +'render_taxonomies:output/categories/rise/index.html', (39872512, 7863) +'render_pages:output/posts/blogging-with-nikola-and-ipython/index.html', (39901184, 3437) +'render_pages:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.html', (39904768, 3582) +'render_taxonomies:output/categories/asaikido/index.html', (39917056, 2729) +'render_taxonomies:output/categories/less/index.html', (39920128, 3601) +'render_taxonomies:output/categories/videos/index.html', (39924224, 2801) +'render_taxonomies:output/es/categories/pyconar/index.html', (39927296, 2801) +'render_pages:output/posts/abandoning-the-oquanta-domain-name/index.html', (39930368, 3287) +'render_taxonomies:output/categories/workflow/index.html', (39963648, 6850) +'render_pages:output/es/posts/facundo/index.html', (39970816, 3146) +'render_pages:output/es/posts/under-the-sea-en-la-plata/index.html', (39974400, 3383) +'render_pages:output/posts/teasers-with-the-ipython-notebook-plugin/index.html', (39977984, 3490) +'render_taxonomies:output/es/categories/ipython/index.html', (40007168, 27663) +'render_taxonomies:output/es/categories/javascript/index.html', (40035328, 8749) +'render_taxonomies:output/es/categories/toggle/index.html', (40044544, 3720) +'render_pages:output/es/posts/48-themes-for-your-ipython-notebook/index.html', (40048640, 3457) +'render_taxonomies:output/es/categories/mipyex/index.html', (40052224, 5520) +'render_taxonomies:output/es/categories/flood/index.html', (40057856, 2889) +'render_taxonomies:output/categories/first_post/index.html', (40060928, 2828) +'render_pages:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.html', (40064000, 3488) +'render_pages:output/es/posts/rise-571-is-out/index.html', (40067584, 3193) +'render_taxonomies:output/es/categories/kofi/index.html', (40087040, 2699) +'render_taxonomies:output/categories/nbconvert/index.html', (40090112, 11731) +'render_pages:output/es/posts/rise-500-is-out/index.html', (40101888, 3192) +'render_pages:output/posts/pyconar-2013/index.html', (40105472, 3295) +'render_taxonomies:output/es/categories/facu/index.html', (40109056, 2678) +'render_taxonomies:output/es/categories/themes/index.html', (40112128, 3493) +'render_taxonomies:output/categories/tutorials/index.html', (40115712, 2877) +'render_pages:output/es/posts/different-ways-to-lead-an-open-source-project/index.html', (40118784, 3525) +'render_pages:output/stories/about-me/index.html', (40122368, 3313) +'render_pages:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.html', (40125952, 3554) +'render_pages:output/es/posts/rise-530-is-out/index.html', (40129536, 3193) +'render_taxonomies:output/es/categories/videos/index.html', (40154624, 2801) +'render_pages:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.html', (40157696, 3644) +'render_pages:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.html', (40161792, 3568) +'render_taxonomies:output/es/categories/linux/index.html', (40165376, 6275) +'render_pages:output/es/posts/dont-write-scripts-just-write-ipyscripts/index.html', (40172032, 3493) +'render_pages:output/stories/support-me/index.html', (40175616, 3324) +'render_pages:output/es/posts/live-trading-logbook/index.html', (40179200, 3351) +'render_taxonomies:output/es/categories/jinja/index.html', (40182784, 5260) +'render_pages:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.html', (40188416, 3566) +'render_taxonomies:output/es/categories/zen/index.html', (40192000, 4131) +'render_pages:output/es/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.html', (40196608, 3399) +'render_taxonomies:output/es/categories/nbviewer/index.html', (40228864, 3088) +'render_taxonomies:output/categories/theme/index.html', (40232448, 3601) +'render_taxonomies:output/categories/base16/index.html', (40243200, 2963) +'render_pages:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.html', (40246272, 3439) +'render_pages:output/es/posts/how-to-pin-conda/index.html', (40262656, 3197) +'render_pages:output/posts/dont-write-scripts-just-write-ipyscripts/index.html', (40266240, 3493) +'render_pages:output/posts/zen-mode-extension-for-the-ipython-notebook/index.html', (40269824, 3512) diff --git a/.doit.db.dat b/.doit.db.dat index d21174b2..4791375f 100644 Binary files a/.doit.db.dat and b/.doit.db.dat differ diff --git a/.doit.db.dir b/.doit.db.dir index 624341d8..bdfc26de 100644 --- a/.doit.db.dir +++ b/.doit.db.dir @@ -1,13 +1,13 @@ -'render_taxonomies:output/categories/slideshow.xml', (35342848, 10286) +'render_taxonomies:output/categories/slideshow.xml', (35342848, 10426) 'render_pages:output/es/posts/how-to-pin-conda.html', (30601216, 19161) 'render_sources:output/posts/trading-logbook-update-3.ipynb', (8935936, 273) -'render_taxonomies:output/categories/first_post.xml', (5112320, 644) +'render_taxonomies:output/categories/first_post.xml', (5112320, 656) 'render_tags:output/es/categories/osx.html', (3075072, 2594) -'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (1223168, 743) -'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.html', (561152, 593) +'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (1223168, 754) +'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.html', (561152, 604) 'render_pages:output/es/posts/zen-mode-extension-for-the-ipython-notebook.html', (33943552, 19273) 'render_tags:output/es/categories/slideshow.html', (4967424, 8656) -'render_galleries:output/es/galleries/index.html', (29903360, 18311) +'render_galleries:output/es/galleries/index.html', (37337600, 19112) 'render_sources:output/posts/rise-meets-jupyterlab.ipynb', (8466432, 267) 'render_posts:cache/posts/under-the-sea-en-la-plata.html.es', (331264, 555) 'render_tags:output/es/categories/first_post.xml', (823296, 1047) @@ -21,10 +21,10 @@ 'render_tags:output/categories/videos.html', (3086336, 3544) 'render_sources:output/es/posts/how-to-pin-conda.ipynb', (2403328, 353) 'render_pages:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (33679872, 19316) -'render_taxonomies:output/2016/05/index.html', (30651392, 6184) +'render_taxonomies:output/2016/05/index.html', (38427648, 7314) 'render_tags:output/categories/pip.html', (3412480, 2594) 'render_taxonomies:output/es/categories/threads.html', (30280704, 7434) -'render_taxonomies:output/categories/nbviewer.xml', (5170176, 904) +'render_taxonomies:output/categories/nbviewer.xml', (5170176, 916) 'render_galleries:output/es/galleries/rise', (9375232, 145) 'render_taxonomies:output/categories/pip.html', (31123456, 10714) 'render_pages:output/es/posts/a-simple-overview-of-viper.html', (32166912, 19923) @@ -33,51 +33,51 @@ 'render_taxonomies:output/categories/performance.html', (33621504, 8382) 'render_taxonomies:output/es/categories/pdf.html', (33605632, 7545) 'render_tags:output/categories/win.xml', (3676160, 636) -'render_taxonomies:output/es/categories/binder.xml', (19898880, 1402) -'copy_assets:output/assets/images/glyphicons-halflings.png', (480256, 316) +'render_taxonomies:output/es/categories/binder.xml', (19898880, 1413) +'copy_assets:output/assets/images/glyphicons-halflings.png', (480256, 322) 'render_sources:output/posts/pyconar-2013.ipynb', (1135616, 249) 'render_tags:output/es/categories/first_post.html', (2833408, 3968) -'render_posts:cache/posts/reveal_converter-mini-tutorial.html', (182784, 568) +'render_posts:cache/posts/reveal_converter-mini-tutorial.html', (182784, 580) 'render_galleries:output/galleries/bokehmagic', (96256, 145) -'render_taxonomies:output/es/categories/local.xml', (7352320, 918) +'render_taxonomies:output/es/categories/local.xml', (7352320, 929) 'render_pages:output/posts/nikolas-zen-theme-finally-released.html', (33543680, 19210) -'render_posts:cache/posts/rise-meets-jupyterlab.html', (8386560, 394) +'render_posts:cache/posts/rise-meets-jupyterlab.html', (8386560, 400) 'render_pages', (741376, 56) 'render_pages:output/es/posts/zen-themes-updated.html', (33719296, 19099) 'render_sources:output/es/posts/under-the-sea-en-la-plata.ipynb', (39424, 275) 'render_taxonomies:output/es/categories/minimap.html', (34433024, 7489) 'render_pages:output/es/posts/nikola-nbconvert.html', (31951360, 19443) -'render_taxonomies:output/es/index-4.html', (32976896, 20433) +'render_taxonomies:output/es/index-4.html', (39090688, 20735) 'render_tags:output/es/categories/videos.html', (4097024, 3544) 'render_pages:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (30223872, 19414) 'render_posts:timeline_changes', (2141696, 109) -'create_bundles:output/assets/css/all.css', (1443840, 762) +'create_bundles:output/assets/css/all.css', (1443840, 785) 'render_pages:output/posts/my-ipython-powered-semi-automatic-git-workflow.html', (34012160, 19296) -'render_galleries:output/galleries/bokehmagic/index.html', (29637120, 19467) +'render_galleries:output/galleries/bokehmagic/index.html', (37142528, 20881) 'render_tags:output/es/categories/talks.xml', (433664, 1181) 'render_tags:output/categories/config.xml', (575488, 3082) -'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (2059776, 728) +'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (2059776, 740) 'render_tags:output/es/categories/spellcheck.html', (4800000, 3803) -'render_taxonomies:output/es/2013/index.html', (30029312, 5788) +'render_taxonomies:output/es/2013/index.html', (37065216, 6607) 'copy_assets:output/assets/js/baguetteBox.js', (29861376, 1117) -'render_galleries:output/galleries/index.html', (29492736, 18311) +'render_galleries:output/galleries/index.html', (37590016, 19112) 'render_pages:output/es/posts/rise-510-is-out.html', (33507328, 11860) -'copy_assets:output/assets/css/html4css1.css', (29380096, 1112) +'copy_assets:output/assets/css/html4css1.css', (29380096, 1290) 'render_sources:output/posts/zen-mode-extension-for-the-ipython-notebook.ipynb', (164864, 311) 'redirect', (56832, 56) 'render_tags:output/categories/pdf.html', (4884480, 3816) 'render_sources:output/posts/we-are-above-1000-stars.ipynb', (9292288, 271) 'render_tags:output/categories/pinned.xml', (2697728, 526) 'render_tags:output/es/categories/config.xml', (606208, 3082) -'render_taxonomies:output/categories/pdf.xml', (6673920, 889) -'render_galleries:output/galleries/loadwrite/index.html', (29169152, 19199) +'render_taxonomies:output/categories/pdf.xml', (6673920, 902) +'render_galleries:output/galleries/loadwrite/index.html', (36928512, 20472) 'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.html.es', (1043456, 605) 'render_taxonomies:output/categories/connectivity.html', (33258496, 7574) -'render_galleries:output/es/galleries/loadwrite/index.html', (29943296, 19199) +'render_galleries:output/es/galleries/loadwrite/index.html', (37357056, 20472) 'render_sources:output/posts/under-the-sea-en-la-plata.ipynb', (139776, 275) 'render_tags:output/categories/trading.html', (4249088, 4239) 'render_taxonomies:output/categories/rise.html', (34781696, 12284) -'render_galleries:output/galleries/Facu_RN/DSC05928.JPG', (897536, 276) +'render_galleries:output/galleries/Facu_RN/DSC05928.JPG', (897536, 283) 'render_indexes', (586752, 56) 'render_tags:output/categories/less.html', (3739136, 4343) 'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html.es', (123904, 705) @@ -85,44 +85,44 @@ 'render_sources:output/es/posts/a-simple-overview-of-viper.txt', (883200, 481) 'render_tags:output/categories/slideshow.xml', (4760064, 5735) 'render_galleries:output/es/galleries/.ipynb_checkpoints/rss.xml', (9370112, 4439) -'render_taxonomies:output/es/2012/10/index.html', (34118144, 6863) +'render_taxonomies:output/es/2012/10/index.html', (39642624, 7999) 'render_archive:output/es/2016/08/index.html', (3737088, 1798) 'render_taxonomies:output/categories/local.html', (32209408, 7574) -'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.html', (899584, 623) +'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.html', (899584, 635) 'render_tags:output/categories/spellcheck.xml', (585216, 882) 'render_tags:output/es/categories/connectivity.html', (4724736, 3845) -'render_taxonomies:output/es/index-1.html', (30578176, 22988) +'render_taxonomies:output/es/index-1.html', (39598080, 23334) 'render_archive:output/2013/12/index.html', (4862464, 2575) 'render_tags:output/es/categories/politics.xml', (909824, 928) -'render_taxonomies:output/es/categories/index.html', (35871744, 3590) -'render_taxonomies:output/es/2012/12/index.html', (33341952, 6223) -'render_taxonomies:output/es/2012/11/index.html', (30362624, 6157) +'render_taxonomies:output/es/categories/index.html', (37729792, 4347) +'render_taxonomies:output/es/2012/12/index.html', (38677504, 7353) +'render_taxonomies:output/es/2012/11/index.html', (38704640, 7288) 'render_sources:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.ipynb', (1717760, 327) 'render_sources:output/posts/powered-by-nikola.txt', (42496, 254) 'render_tags:output/es/categories/life.xml', (842240, 1041) -'render_taxonomies:output/categories/connectivity.xml', (5730304, 918) +'render_taxonomies:output/categories/connectivity.xml', (5730304, 929) 'render_posts:cache/posts/trading-logbook-update-22-nov-2013.html.es', (953344, 600) 'render_pages:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (33293312, 19328) -'copy_assets:output/assets/css/rst.css', (13465088, 1419) +'copy_assets:output/assets/css/rst.css', (37043200, 1591) 'render_galleries:output/galleries/loadwrite', (1909248, 145) 'render_galleries:output/es/galleries/trades', (2388992, 145) 'render_sources:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb.ipynb', (2033152, 311) -'render_galleries:output/es/galleries/deploy/rss.xml', (29432832, 18585) +'render_galleries:output/es/galleries/deploy/rss.xml', (36994048, 19391) 'render_sources:output/posts/one-line-deployment-of-your-site-to-gh-pages.ipynb', (1254912, 313) 'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.html.es', (1119744, 655) 'render_sources:output/es/posts/we-are-above-1000-stars.ipynb', (9346560, 271) -'render_galleries:output/galleries/trades/1.png', (2037760, 259) +'render_galleries:output/galleries/trades/1.png', (2037760, 265) 'render_taxonomies:output/categories/politics.html', (32508416, 7236) -'render_taxonomies:output/categories/pyconar.xml', (5970432, 617) -'render_taxonomies:output/categories/zen.xml', (6849024, 1925) +'render_taxonomies:output/categories/pyconar.xml', (5970432, 629) +'render_taxonomies:output/categories/zen.xml', (6849024, 1959) 'render_sources:output/es/posts/blogging-with-nikola-and-ipython.ipynb', (284160, 290) -'render_taxonomies:output/es/rss.xml', (36037632, 42037) +'render_taxonomies:output/es/rss.xml', (39705600, 42679) 'render_pages:output/es/posts/slider-for-nbconvert.html', (33093120, 18979) -'render_taxonomies:output/2013/11/index.html', (31287296, 6985) +'render_taxonomies:output/2013/11/index.html', (37834752, 8134) 'render_taxonomies:output/categories/nikola.html', (36207616, 18453) 'render_taxonomies:output/es/categories/slideshow.html', (35191296, 16942) -'render_galleries:output/galleries/zenmode/pic2.png', (1044480, 268) -'render_taxonomies:output/es/categories/ipyscript.xml', (5711872, 814) +'render_galleries:output/galleries/zenmode/pic2.png', (1044480, 276) +'render_taxonomies:output/es/categories/ipyscript.xml', (5711872, 827) 'render_pages:output/posts/beginning.html', (32366592, 19026) 'render_tags:output/es/categories/css.html', (2908160, 4327) 'render_galleries:output/galleries/zenmode', (1408512, 145) @@ -139,7 +139,7 @@ 'render_archive:output/2013/09/index.html', (4065792, 2575) 'render_tags:output/es/categories/politics.html', (2959872, 3849) 'render_sources:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.ipynb', (995840, 327) -'render_galleries:output/es/galleries/Inundacion/rss.xml', (29400576, 18979) +'render_galleries:output/es/galleries/Inundacion/rss.xml', (37214208, 19785) 'render_posts', (1870848, 56) 'render_taxonomies:output/categories/scipycon.html', (33244160, 7350) 'render_tags:output/categories/local.xml', (738816, 924) @@ -150,70 +150,70 @@ 'render_posts:cache/posts/powered-by-nikola.html.es', (1808896, 760) 'render_taxonomies:output/categories/pyconar.html', (33597952, 7273) 'render_galleries:output/galleries/loadwrite/themes1.thumbnail.png', (976384, 279) -'render_taxonomies:output/es/categories/zenmode.xml', (5310464, 834) +'render_taxonomies:output/es/categories/zenmode.xml', (5310464, 846) 'render_tags:output/es/categories/minimap.xml', (1729536, 839) 'render_posts:cache/posts/trading-logbook-update-3.html.es', (8869888, 409) 'render_taxonomies:output/es/categories/trading.html', (31795712, 8382) 'render_tags:output/categories/osx.xml', (4865536, 636) -'render_taxonomies:output/es/categories/pdf.xml', (5295616, 889) -'render_taxonomies:output/2013/08/index.html', (30369280, 9849) -'render_taxonomies:output/categories/scipycon.xml', (7177728, 694) +'render_taxonomies:output/es/categories/pdf.xml', (5295616, 902) +'render_taxonomies:output/2013/08/index.html', (39988224, 11047) +'render_taxonomies:output/categories/scipycon.xml', (7177728, 705) 'render_tags:output/es/categories/flood.html', (3667968, 3629) 'render_tags:output/es/categories/threads.html', (4843520, 3705) 'render_taxonomies:output/categories/viper.html', (31106560, 8881) 'render_galleries:output/galleries/bokehmagic/sin2.thumbnail.png', (704512, 275) 'render_sources:output/posts/live-trading-logbook.ipynb', (292352, 265) 'render_tags:output/categories/format.xml', (379392, 980) -'render_posts:cache/posts/rise-500-is-out.html', (8189952, 376) +'render_posts:cache/posts/rise-500-is-out.html', (8189952, 382) 'render_tags:output/categories/workflow.html', (4315648, 7002) -'render_galleries:output/galleries/loadwrite/themes1.png', (984064, 277) -'render_taxonomies:output/es/categories/trading.xml', (8719872, 1726) -'render_galleries:output/galleries/twitter/rss.xml', (29520896, 18588) +'render_galleries:output/galleries/loadwrite/themes1.png', (984064, 284) +'render_taxonomies:output/es/categories/trading.xml', (8719872, 1755) +'render_galleries:output/galleries/twitter/rss.xml', (37530112, 19395) 'render_pages:output/es/posts/improving-viper-slideshows-styling.html', (33699328, 19619) 'render_tags:output/es/categories/less.xml', (1848832, 1422) -'render_taxonomies:output/categories/config.xml', (18713088, 3041) -'render_taxonomies:output/categories/workflow.xml', (31613952, 4614) +'render_taxonomies:output/categories/config.xml', (39075840, 3088) +'render_taxonomies:output/categories/workflow.xml', (31613952, 4678) 'render_galleries:output/es/galleries/spellchecker', (2387456, 145) -'copy_assets:output/assets/js/jquery-1.10.2.min.js', (2032640, 300) -'render_galleries:output/galleries/rise/1004.png', (9037824, 261) +'copy_assets:output/assets/js/jquery-1.10.2.min.js', (2032640, 306) +'render_galleries:output/galleries/rise/1004.png', (9037824, 269) 'render_taxonomies:output/categories/workflow.html', (35532800, 11270) 'render_galleries:output/galleries', (560640, 145) -'render_galleries:output/galleries/Inundacion/inundacion1.png', (1082880, 288) -'render_posts:cache/posts/customizing-your-ipython-slides.html', (1243136, 573) -'render_galleries:output/es/galleries/trades/rss.xml', (29381632, 18865) +'render_galleries:output/galleries/Inundacion/inundacion1.png', (1082880, 296) +'render_posts:cache/posts/customizing-your-ipython-slides.html', (1243136, 584) +'render_galleries:output/es/galleries/trades/rss.xml', (37632000, 19669) 'render_posts:cache/posts/paraguay.html.es', (290304, 677) 'render_galleries:output/galleries/bokehmagic/sin.thumbnail.png', (1837056, 273) 'render_posts:cache/stories/about-me.html', (29014016, 542) -'render_galleries:output/es/galleries/rise/index.html', (34482176, 14039) +'render_galleries:output/es/galleries/rise/index.html', (36978688, 15287) 'render_archive', (1409024, 56) -'render_taxonomies:output/es/categories/gh-pages.xml', (22612992, 3567) +'render_taxonomies:output/es/categories/gh-pages.xml', (38478848, 3611) 'render_taxonomies:output/categories/win.html', (32519680, 10714) 'render_tags:output/es/categories/ipython.html', (4888576, 27669) 'render_sources:output/posts/dont-write-scripts-just-write-ipyscripts.ipynb', (1758208, 306) 'render_tags:output/categories/ipytmpl.html', (3333120, 3784) 'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html.es', (1846272, 684) 'render_pages:output/es/posts/blogging-with-nikola-and-ipython.html', (30412288, 19197) -'render_taxonomies:output/categories/viper.xml', (6474752, 2225) +'render_taxonomies:output/categories/viper.xml', (6474752, 2265) 'render_tags:output/categories/reveal.xml', (4589568, 6132) 'render_taxonomies:output/categories/jinja.html', (30964736, 9697) 'render_tags', (282112, 56) 'render_tags:output/es/categories/pdf.html', (3089920, 3816) 'render_archive:output/es/2013/02/index.html', (4456448, 2575) -'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (550400, 733) -'render_galleries:output/es/galleries/spellchecker/rss.xml', (29694976, 18915) +'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (550400, 745) +'render_galleries:output/es/galleries/spellchecker/rss.xml', (37549568, 19723) 'render_tags:output/categories/videos.xml', (310272, 623) -'render_taxonomies:output/2013/01/index.html', (31302656, 6441) +'render_taxonomies:output/2013/01/index.html', (38921728, 7579) 'render_sources:output/es/posts/rise-500-is-out.ipynb', (8220672, 255) 'render_archive:output/2012/09/index.html', (4521472, 2575) 'render_tags:output/es/categories/local.html', (3694080, 3845) 'copy_assets:output/assets/css/baguetteBox.css', (29491200, 1124) 'render_posts:cache/posts/blogging-with-nikola-and-ipython.html.es', (480768, 591) 'render_sources:output/es/posts/scipycon-argentina-2013.ipynb', (795648, 271) -'render_taxonomies:output/es/categories/typescript.xml', (8305152, 551) +'render_taxonomies:output/es/categories/typescript.xml', (8305152, 557) 'render_pages:output/posts/different-ways-to-lead-an-open-source-project.html', (33803776, 19287) -'render_taxonomies:output/es/categories/videos.xml', (7241216, 617) +'render_taxonomies:output/es/categories/videos.xml', (7241216, 629) 'render_posts:cache/posts/rise-meets-jupyterlab.html.es', (8299008, 399) -'render_taxonomies:output/es/categories/less.xml', (5920768, 1407) +'render_taxonomies:output/es/categories/less.xml', (5920768, 1429) 'render_sources:output/posts/slider-for-nbconvert.txt', (941568, 261) 'render_tags:output/categories/conda.xml', (4847616, 1026) 'render_pages:output/posts/dont-write-scripts-just-write-ipyscripts.html', (30431744, 19253) @@ -229,15 +229,15 @@ 'render_tags:output/es/categories/pinned.xml', (2667008, 526) 'render_galleries:output/galleries/twitter/1.thumbnail.png', (267776, 263) 'render_archive:output/2016/index.html', (4100608, 2560) -'render_galleries:output/es/galleries/binder/index.html', (29421568, 11147) -'render_taxonomies:output/es/categories/twitter.xml', (7297024, 889) -'render_posts:cache/posts/paraguay.html', (61440, 450) -'render_taxonomies:output/categories/theme.xml', (6200832, 1407) +'render_galleries:output/es/galleries/binder/index.html', (37468672, 12105) +'render_taxonomies:output/es/categories/twitter.xml', (7297024, 900) +'render_posts:cache/posts/paraguay.html', (61440, 462) +'render_taxonomies:output/categories/theme.xml', (6200832, 1429) 'render_tag_cloud', (5043200, 56) -'render_galleries:output/galleries/binder/terminal.png', (16535040, 274) +'render_galleries:output/galleries/binder/terminal.png', (16535040, 282) 'render_tags:output/categories/politics.html', (4629504, 3501) 'render_taxonomies:output/es/categories/reveal.html', (34737664, 17340) -'render_taxonomies:output/es/2016/08/index.html', (32847360, 6319) +'render_taxonomies:output/es/2016/08/index.html', (39999488, 7450) 'render_pages:output/posts/zen-mode-extension-for-the-ipython-notebook.html', (32950272, 19273) 'render_sources:output/es/posts/pyconar-2013.ipynb', (321024, 249) 'render_tags:output/categories/workflow.xml', (1924608, 4081) @@ -246,20 +246,20 @@ 'render_pages:output/posts/blogging-with-nikola-and-ipython.html', (32147456, 19197) 'render_galleries:output/galleries/deploy/1.thumbnail.png', (2145792, 262) 'render_taxonomies:output/es/categories/connectivity.html', (31681024, 7574) -'copy_files:output/Test.html', (640000, 236) -'render_taxonomies:output/es/2016/06/index.html', (32751616, 6208) +'copy_files:output/Test.html', (640000, 242) +'render_taxonomies:output/es/2016/06/index.html', (37912576, 7339) 'sitemap', (2054656, 56) -'render_taxonomies:output/categories/life.xml', (7225856, 1040) +'render_taxonomies:output/categories/life.xml', (7225856, 1055) 'render_tags:output/es/categories/mipyex.xml', (99328, 3343) 'render_archive:output/2013/index.html', (3026944, 2560) 'render_tags:output/categories/aikido.xml', (2381824, 501) 'render_tags:output/es/categories/pip.xml', (4677632, 636) -'render_galleries:output/es/galleries/twitter/index.html', (29359616, 18571) +'render_galleries:output/es/galleries/twitter/index.html', (37122560, 19518) 'render_pages:output/es/posts/teasers-with-the-ipython-notebook-plugin.html', (30974464, 19251) 'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.html.es', (242688, 624) 'render_sources:output/posts/paraguay.txt', (271872, 236) -'render_taxonomies:output/rss.xml', (36379136, 36708) -'render_posts:cache/posts/pyconar-2013.html', (1847296, 478) +'render_taxonomies:output/rss.xml', (37979136, 37271) +'render_posts:cache/posts/pyconar-2013.html', (1847296, 490) 'render_taxonomies:output/categories/reveal.html', (34817536, 17340) 'render_galleries:output/galleries/Facu_RN/DSC05917.thumbnail.JPG', (1649152, 278) 'render_taxonomies:output/es/categories/jinja.html', (31383040, 9697) @@ -270,117 +270,117 @@ 'render_pages:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (33519616, 19343) 'render_sources:output/es/posts/teasers-with-the-ipython-notebook-plugin.ipynb', (897024, 305) 'render_pages:output/posts/pyconar-2013.html', (34281472, 19056) -'render_galleries:output/galleries/spellchecker/index.html', (29657088, 18879) +'render_galleries:output/galleries/spellchecker/index.html', (37569536, 19986) 'render_tags:output/categories/ipyscript.html', (4690432, 3742) -'render_taxonomies:output/archive.html', (30054912, 5788) +'render_taxonomies:output/archive.html', (36875264, 6607) 'render_sources:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.ipynb', (1159680, 355) 'render_tags:output/categories/threads.xml', (1158656, 784) 'render_taxonomies:output/es/categories/extension.html', (33866752, 11471) -'render_galleries:output/galleries/loadwrite/writer1.png', (2055168, 278) -'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.html', (558080, 618) +'render_galleries:output/galleries/loadwrite/writer1.png', (2055168, 286) +'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.html', (558080, 630) 'render_sources:output/es/posts/facundo.txt', (1487872, 235) 'render_galleries:output/galleries/.ipynb_checkpoints', (9271296, 145) -'render_taxonomies:output/es/categories/theme.xml', (6377472, 1407) -'render_taxonomies:output/es/categories/zen.xml', (7110144, 1925) +'render_taxonomies:output/es/categories/theme.xml', (6377472, 1429) +'render_taxonomies:output/es/categories/zen.xml', (7110144, 1959) 'robots_file', (1241600, 56) -'render_galleries:output/galleries/trades/rss.xml', (29676032, 18865) -'copy_assets:output/assets/css/baguetteBox.min.css', (29101568, 1148) +'render_galleries:output/galleries/trades/rss.xml', (37163520, 19669) +'copy_assets:output/assets/css/baguetteBox.min.css', (29101568, 1334) 'render_pages:output/es/posts/live-trading-logbook.html', (32022016, 19112) 'render_archive:output/2013/05/index.html', (4859392, 2575) 'render_archive:output/2013/04/index.html', (3793408, 2575) 'render_tags:output/categories/magic.html', (3636224, 3742) 'render_galleries:output/galleries/Facu_RN/DSC05903.thumbnail.JPG', (1571840, 278) 'render_tags:output/es/categories/linux.html', (4337664, 2594) -'render_taxonomies:output/2012/11/index.html', (30332928, 6157) -'render_galleries:output/galleries/binder/rss.xml', (29136896, 11163) -'render_taxonomies:output/categories/python.xml', (36142592, 31999) -'create_bundles:output/assets/js/all-nocdn.js', (65536, 657) +'render_taxonomies:output/2012/11/index.html', (38301184, 7288) +'render_galleries:output/galleries/binder/rss.xml', (37480960, 11969) +'render_taxonomies:output/categories/python.xml', (37939712, 32491) +'create_bundles:output/assets/js/all-nocdn.js', (65536, 679) 'render_taxonomies', (6202368, 56) 'render_taxonomies:output/es/categories/spellcheck.html', (32839680, 7533) 'render_pages:output/es/posts/different-ways-to-lead-an-open-source-project.html', (32255488, 19287) -'create_bundles:output/assets/css/all-nocdn.css', (598016, 883) -'render_taxonomies:output/es/categories/jupyter.xml', (36270080, 8187) -'render_taxonomies:output/categories/zenmode.xml', (5421568, 834) -'render_posts:cache/posts/live-trading-logbook.html', (1222144, 518) +'create_bundles:output/assets/css/all-nocdn.css', (598016, 912) +'render_taxonomies:output/es/categories/jupyter.xml', (38415360, 8259) +'render_taxonomies:output/categories/zenmode.xml', (5421568, 846) +'render_posts:cache/posts/live-trading-logbook.html', (1222144, 530) 'render_sources:output/es/posts/ipython-plugin-for-nikola-updated.ipynb', (2060800, 291) -'render_galleries:output/galleries/Facu_RN/DSC05903.JPG', (193536, 276) +'render_galleries:output/galleries/Facu_RN/DSC05903.JPG', (193536, 284) 'render_tags:output/es/categories/magic.html', (4823552, 3742) 'render_galleries', (1016832, 56) -'render_posts:cache/posts/hello-world-again.html', (859648, 496) +'render_posts:cache/posts/hello-world-again.html', (859648, 508) 'render_pages:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (30512128, 19328) 'render_sources:output/es/posts/make-your-slides-with-ipython.ipynb', (975360, 283) 'render_archive:output/es/2012/12/index.html', (3698176, 2575) 'render_tags:output/es/categories/pdf.xml', (1089024, 895) 'render_pages:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (31884288, 19406) 'render_indexes:output/es/index-3.html', (3154432, 14063) -'render_taxonomies:output/es/categories/ipython.xml', (22235648, 26094) +'render_taxonomies:output/es/categories/ipython.xml', (39426560, 26516) 'render_archive:output/es/2014/03/index.html', (3451904, 2575) 'render_taxonomies:output/categories/linux.html', (34134016, 10714) 'render_tags:output/es/categories/reveal.html', (2845696, 9053) -'render_galleries:output/galleries/twitter/1.png', (292864, 261) +'render_galleries:output/galleries/twitter/1.png', (292864, 269) 'render_sources:output/es/posts/a-new-nikolas-theme-for-my-site-zen.ipynb', (999424, 295) 'render_sources:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.ipynb', (60416, 327) 'render_taxonomies:output/es/categories/aikido.html', (32186880, 8070) -'render_galleries:output/es/galleries/rise/rss.xml', (34466816, 14095) +'render_galleries:output/es/galleries/rise/rss.xml', (36839424, 14901) 'render_posts:cache/posts/scipycon-argentina-2013.html.es', (991744, 539) 'render_tags:output/es/categories/toggle.html', (3655168, 4463) 'render_taxonomies:output/categories/jupyterlab.html', (34393600, 7881) 'render_taxonomies:output/categories/github.html', (33251840, 6235) -'render_taxonomies:output/es/2014/03/index.html', (30863872, 6587) +'render_taxonomies:output/es/2014/03/index.html', (39331840, 7724) 'render_archive:output/es/2013/11/index.html', (2749952, 2575) 'render_archive:output/2014/index.html', (4032000, 2560) 'render_sources:output/posts/hello-world-again.txt', (60928, 254) -'render_taxonomies:output/categories/ipytmpl.xml', (6865408, 857) -'copy_assets:output/assets/js/jquery.timeago.js', (2031616, 293) +'render_taxonomies:output/categories/ipytmpl.xml', (6865408, 869) +'copy_assets:output/assets/js/jquery.timeago.js', (2031616, 299) 'render_tags:output/es/categories/blog.xml', (770560, 7665) 'render_tags:output/es/categories/python.xml', (2932224, 27527) 'render_tags:output/es/categories/zenmode.xml', (1253888, 840) -'sitemap:output/sitemap.xml', (36295168, 83874) +'sitemap:output/sitemap.xml', (40273408, 117787) 'render_tags:output/es/categories/facu.xml', (2298368, 501) 'render_pages:output/posts/one-line-deployment-of-your-site-to-gh-pages.html', (31198208, 19280) 'render_tags:output/categories/viper.html', (4916736, 5163) 'render_posts:cache/posts/rise-500-is-out.html.es', (7987712, 381) -'copy_assets:output/assets/fonts/fontawesome-webfont.ttf', (1816576, 312) -'render_taxonomies:output/es/categories/nikola.xml', (36278272, 13541) +'copy_assets:output/assets/fonts/fontawesome-webfont.ttf', (1816576, 316) +'render_taxonomies:output/es/categories/nikola.xml', (36278272, 13730) 'render_sources:output/es/posts/hello-world-again.txt', (968192, 445) 'render_tags:output/es/categories/aikido.html', (2796032, 3422) -'render_taxonomies:output/es/categories/slideshow.xml', (35166720, 10286) +'render_taxonomies:output/es/categories/slideshow.xml', (35166720, 10426) 'render_taxonomies:output/es/categories/twitter.html', (32902656, 7545) 'render_tags:output/es/categories/git.xml', (1166848, 3941) 'render_galleries:output/es/galleries/zenmode', (2387968, 145) 'render_tags:output/es/categories/theme.html', (3601408, 4343) -'render_galleries:output/es/galleries/rss.xml', (29083136, 18307) +'render_galleries:output/es/galleries/rss.xml', (37734400, 19108) 'render_pages:output/es/posts/hide-the-input-cells-from-your-ipython-slides.html', (33273856, 19286) 'render_tags:output/categories/linux.xml', (4322816, 636) -'render_taxonomies:output/2014/03/index.html', (32553472, 6587) -'render_taxonomies:output/es/categories/nbconvert.xml', (7273472, 9401) +'render_taxonomies:output/2014/03/index.html', (38620160, 7724) +'render_taxonomies:output/es/categories/nbconvert.xml', (7273472, 9559) 'render_sources:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides.ipynb', (758272, 335) -'render_taxonomies:output/categories/ipyscript.xml', (5275136, 814) +'render_taxonomies:output/categories/ipyscript.xml', (5275136, 827) 'render_tags:output/categories/nbconvert.xml', (1785856, 9542) 'render_pages:output/posts/a-simple-overview-of-viper.html', (34254336, 19146) 'render_archive:output/es/2016/05/index.html', (4428288, 2575) 'render_tags:output/categories/nbviewer.html', (4736512, 3831) 'render_archive:output/2016/05/index.html', (3832832, 2575) -'render_taxonomies:output/categories/osx.xml', (28794880, 4058) +'render_taxonomies:output/categories/osx.xml', (39297024, 4103) 'render_tags:output/es/categories/connectivity.xml', (549376, 924) 'render_sources:output/es/posts/rise-400b1-is-available-please-test-it.ipynb', (4707840, 301) 'render_tags:output/categories/local.html', (4728832, 3845) -'render_galleries:output/galleries/binder/index.html', (29782016, 11147) +'render_galleries:output/galleries/binder/index.html', (37692416, 12105) 'render_galleries:output/galleries/bokehmagic/sin3.thumbnail.png', (54784, 275) 'render_taxonomies:output/categories/zenmode.html', (33778176, 7490) -'copy_assets:output/assets/js/html5shiv-printshiv.min.js', (29188608, 1184) +'copy_assets:output/assets/js/html5shiv-printshiv.min.js', (29188608, 1375) 'render_tags:output/es/categories/linux.xml', (4946944, 636) 'render_tags:output/es/categories/aikido.xml', (2161152, 501) 'render_taxonomies:output/es/categories/config.html', (31043584, 9697) 'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html.es', (15373824, 506) 'render_tags:output/es/categories/viper.html', (4849152, 6288) 'render_posts:cache/posts/zen-themes-updated.html.es', (1413120, 520) -'render_taxonomies:output/categories/facundo.xml', (6355968, 1040) +'render_taxonomies:output/categories/facundo.xml', (6355968, 1055) 'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html.es', (907776, 644) -'copy_assets:output/assets/css/nikola_ipython.css', (163840, 301) +'copy_assets:output/assets/css/nikola_ipython.css', (163840, 307) 'render_tags:output/categories/connectivity.xml', (567808, 924) 'copy_files:output/CNAME', (1718272, 229) -'render_taxonomies:output/es/index-3.html', (33364992, 20391) +'render_taxonomies:output/es/index-3.html', (38936064, 20688) 'render_galleries:output/galleries/Facu_RN', (622080, 145) 'render_archive:output/es/archive.html', (4063232, 2560) 'render_tags:output/categories/themes.xml', (737280, 1315) @@ -391,17 +391,17 @@ 'render_pages:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (32649216, 19343) 'render_pages:output/posts/how-to-pin-conda.html', (31925248, 19161) 'render_posts:cache/posts/nikolas-zen-theme-finally-released.html.es', (1192448, 599) -'render_taxonomies:output/categories/ipython.xml', (32878592, 23680) +'render_taxonomies:output/categories/ipython.xml', (40204288, 24074) 'render_sources:output/posts/rise-510-is-out.ipynb', (12610048, 255) 'render_pages:output/es/posts/pyconar-2013.html', (30671872, 19056) 'render_indexes:output/index-3.html', (4986368, 14063) -'render_taxonomies:output/index-2.html', (34144768, 19860) -'render_posts:cache/posts/rise-510-is-out.html', (12781056, 376) -'render_galleries:output/galleries/Facu_RN/DSC05917.JPG', (1221632, 276) -'render_taxonomies:output/categories/format.xml', (7325696, 975) +'render_taxonomies:output/index-2.html', (39880704, 20163) +'render_posts:cache/posts/rise-510-is-out.html', (12781056, 382) +'render_galleries:output/galleries/Facu_RN/DSC05917.JPG', (1221632, 284) +'render_taxonomies:output/categories/format.xml', (7325696, 987) 'render_sources:output/es/posts/live-trading-logbook.ipynb', (788992, 265) 'render_taxonomies:output/categories/theme.html', (32629760, 8063) -'render_taxonomies:output/es/2013/11/index.html', (32299520, 6985) +'render_taxonomies:output/es/2013/11/index.html', (38890496, 8134) 'render_tags:output/es/categories/local.xml', (1265152, 924) 'render_tags:output/es/categories/workflow.html', (3357184, 7002) 'render_tags:output/categories/pyconar.xml', (778752, 623) @@ -409,11 +409,11 @@ 'render_sources:output/posts/hide-the-input-cells-from-your-ipython-slides.ipynb', (2063360, 315) 'render_tags:output/es/categories/flood.xml', (1015296, 708) 'render_taxonomies:output/es/categories/jupyter.html', (36562432, 14843) -'render_taxonomies:output/es/categories/toggle.xml', (18105856, 1525) -'render_taxonomies:output/categories/index.html', (35809792, 3590) +'render_taxonomies:output/es/categories/toggle.xml', (38729216, 1548) +'render_taxonomies:output/categories/index.html', (37687808, 4347) 'render_tags:output/categories/daniela.xml', (2160640, 501) 'render_sources:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.ipynb', (673792, 349) -'render_taxonomies:output/categories/facu.xml', (6773760, 501) +'render_taxonomies:output/categories/facu.xml', (6773760, 506) 'render_sources:output/posts/zen-themes-updated.ipynb', (95232, 262) 'render_tags:output/es/categories/daniela.html', (3743744, 3422) 'render_tags:output/categories/format.html', (3046400, 3901) @@ -423,55 +423,55 @@ 'render_tags:output/categories/facundo.html', (4463616, 3962) 'render_galleries:output/galleries/trades/1.thumbnail.png', (1518080, 261) 'render_archive:output/es/2012/10/index.html', (3644416, 2575) -'render_posts:cache/posts/make-your-slides-with-ipython.html', (291328, 563) +'render_posts:cache/posts/make-your-slides-with-ipython.html', (291328, 575) 'render_sources:output/posts/rise-500-is-out.ipynb', (7941120, 255) 'render_archive:output/2012/06/index.html', (3863552, 2575) 'render_tags:output/categories/conda.html', (3672064, 3947) -'render_taxonomies:output/2016/index.html', (30042624, 5788) +'render_taxonomies:output/2016/index.html', (36756480, 6607) 'render_taxonomies:output/categories/first_post.html', (30504448, 7300) 'render_pages:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (32997376, 19357) 'render_taxonomies:output/categories/magic.html', (31264256, 7470) 'render_sources:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb', (1795584, 348) 'render_sources:output/es/posts/hide-the-input-cells-from-your-ipython-slides.ipynb', (2059264, 315) 'copy_assets:output/assets/css/code.css', (884736, 141) -'render_galleries:output/galleries/Inundacion/rss.xml', (29813248, 18979) -'render_galleries:output/galleries/bokehmagic/themes.png', (1718784, 277) +'render_galleries:output/galleries/Inundacion/rss.xml', (37183488, 19785) +'render_galleries:output/galleries/bokehmagic/themes.png', (1718784, 284) 'render_tags:output/categories/mipyex.xml', (135680, 3343) -'render_posts:cache/posts/blogging-with-nikola-and-ipython.html', (156672, 579) +'render_posts:cache/posts/blogging-with-nikola-and-ipython.html', (156672, 591) 'render_taxonomies:output/es/categories/github.html', (30729216, 6235) -'render_taxonomies:output/categories/extension.xml', (6691328, 4815) +'render_taxonomies:output/categories/extension.xml', (6691328, 4883) 'scale_images', (55296, 56) -'render_taxonomies:output/index-1.html', (32348160, 17950) +'render_taxonomies:output/index-1.html', (32348160, 18221) 'render_tags:output/es/categories/mipyex.html', (2735104, 6264) 'copy_assets:output/assets/js/moment-with-locales.min.js', (29148160, 1587) 'render_taxonomies:output/es/categories/zen.html', (32013312, 8581) 'render_galleries:output/es/galleries/.ipynb_checkpoints', (9374720, 145) -'render_taxonomies:output/es/categories/workflow.xml', (30801920, 4614) +'render_taxonomies:output/es/categories/workflow.xml', (30801920, 4678) 'render_taxonomies:output/es/categories/nikola.html', (36541952, 20197) 'render_archive:output/2012/12/index.html', (4964352, 2575) 'render_tags:output/categories/reveal.html', (3304448, 9053) 'render_taxonomies:output/es/categories/family.html', (33906176, 7696) 'render_tags:output/es/categories/tutorials.html', (3640320, 3615) -'render_taxonomies:output/categories/reveal.xml', (34569216, 10684) -'render_taxonomies:output/2014/04/index.html', (32530432, 7295) +'render_taxonomies:output/categories/reveal.xml', (39680512, 10829) +'render_taxonomies:output/2014/04/index.html', (39138816, 8444) 'render_tags:output/categories/pdf.xml', (559616, 895) 'render_tags:output/categories/linux.html', (3313664, 2594) -'render_galleries:output/galleries/Facu_RN/rss.xml', (29299712, 21695) +'render_galleries:output/galleries/Facu_RN/rss.xml', (37609472, 22499) 'render_taxonomies:output/categories/javascript.html', (32242176, 13134) 'render_taxonomies:output/categories/themes.html', (33613312, 7953) 'render_archive:output/2013/01/index.html', (4369920, 2575) 'render_taxonomies:output/es/categories/css.html', (32306688, 8043) 'render_archive:output/es/2013/12/index.html', (4700672, 2575) -'render_taxonomies:output/2017/06/index.html', (31918080, 7036) -'render_taxonomies:output/2012/09/index.html', (34440704, 6210) +'render_taxonomies:output/2017/06/index.html', (37872640, 8178) +'render_taxonomies:output/2012/09/index.html', (39186432, 7333) 'render_sources:output/posts/viper.txt', (1142272, 230) -'render_taxonomies:output/es/2014/04/index.html', (31153664, 7295) +'render_taxonomies:output/es/2014/04/index.html', (40145920, 8444) 'render_sources:output/es/posts/trading-logbook-update-3.ipynb', (8629760, 273) -'render_posts:cache/posts/rise-400b1-is-available-please-test-it.html', (4866560, 445) +'render_posts:cache/posts/rise-400b1-is-available-please-test-it.html', (4866560, 451) 'render_sources:output/posts/reveal-converter-mini-tutorial.ipynb', (33280, 285) 'render_taxonomies:output/categories/toggle.html', (30387200, 8181) 'render_sources:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.ipynb', (2032128, 351) -'render_galleries:output/es/galleries/bokehmagic/rss.xml', (29246976, 19543) +'render_galleries:output/es/galleries/bokehmagic/rss.xml', (37267456, 20352) 'render_sources:output/es/posts/my-ipython-powered-semi-automatic-git-workflow.ipynb', (2160128, 318) 'render_taxonomies:output/categories/osx.html', (33981952, 10714) 'render_sources:output/es/stories/about-me.txt', (1090048, 326) @@ -481,380 +481,380 @@ 'render_tags:output/categories/performance.html', (4595712, 4239) 'render_pages:output/posts/facundo.html', (33914368, 18913) 'render_sources:output/posts/customizing-your-ipython-slides.ipynb', (975872, 287) -'copy_files:output/portfolio/Humor-Sans.ttf', (41984, 265) -'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.html', (948736, 593) +'copy_files:output/portfolio/Humor-Sans.ttf', (41984, 271) +'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.html', (948736, 605) 'render_indexes:output/es/index.html', (4468224, 14199) -'render_taxonomies:output/es/categories/flood.xml', (5279232, 708) +'render_taxonomies:output/es/categories/flood.xml', (5279232, 717) 'render_sources:output/posts/beginning.txt', (441344, 238) -'render_posts:cache/posts/scipycon-argentina-2013.html', (933888, 533) -'render_taxonomies:output/es/2012/index.html', (30023168, 5788) -'render_taxonomies:output/es/2013/10/index.html', (30496256, 8041) -'render_taxonomies:output/categories/jupyterlab.xml', (20237824, 1225) +'render_posts:cache/posts/scipycon-argentina-2013.html', (933888, 545) +'render_taxonomies:output/es/2012/index.html', (37523456, 6607) +'render_taxonomies:output/es/2013/10/index.html', (38435328, 9202) +'render_taxonomies:output/categories/jupyterlab.xml', (20237824, 1237) 'render_galleries:output/galleries/Facu_RN/DSC05925.thumbnail.JPG', (1847808, 278) 'render_posts:cache/posts/How-to-pin-Conda.html.es', (2448896, 385) 'render_galleries:output/galleries/spellchecker/1.thumbnail.png', (691200, 274) 'render_posts:cache/posts/viper.html.es', (1575424, 650) -'copy_assets:output/assets/css/theme.css', (14187520, 1445) +'copy_assets:output/assets/css/theme.css', (37258752, 1621) 'render_sources:output/es/posts/beginning.txt', (272896, 412) 'render_pages:output/es/posts/one-line-deployment-of-your-site-to-gh-pages.html', (30709760, 19280) -'render_posts:cache/posts/under-the-sea-en-la-plata.html', (378368, 543) -'render_taxonomies:output/es/categories/themes.xml', (6389760, 1297) +'render_posts:cache/posts/under-the-sea-en-la-plata.html', (378368, 553) +'render_taxonomies:output/es/categories/themes.xml', (6389760, 1321) 'render_archive:output/2014/03/index.html', (3986944, 2575) -'render_taxonomies:output/es/categories/first_post.xml', (22365696, 1340) -'render_taxonomies:output/es/categories/facundo.xml', (5173248, 1040) -'render_galleries:output/galleries/Inundacion/index.html', (29539840, 18943) -'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (822272, 663) +'render_taxonomies:output/es/categories/first_post.xml', (22365696, 1364) +'render_taxonomies:output/es/categories/facundo.xml', (5173248, 1055) +'render_galleries:output/galleries/Inundacion/index.html', (36854784, 20080) +'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (822272, 674) 'render_taxonomies:output/es/categories/blog.html', (30467584, 15258) 'render_tags:output/es/categories/twitter.html', (2828288, 3817) 'render_tags:output/categories/scipycon.html', (3260928, 3615) 'render_tags:output/es/categories/javascript.html', (4281344, 9077) 'render_sources:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.ipynb', (1256960, 331) -'copy_assets:output/assets/images/blue-mocha-grunge-reversed.jpg', (1757184, 332) +'copy_assets:output/assets/images/blue-mocha-grunge-reversed.jpg', (1757184, 338) 'render_archive:output/es/2013/10/index.html', (3620864, 2575) -'render_taxonomies:output/es/categories/performance.xml', (8614400, 1726) +'render_taxonomies:output/es/categories/performance.xml', (8614400, 1755) 'render_sources:output/es/posts/paraguay.txt', (272384, 409) -'render_taxonomies:output/es/categories/ipytmpl.xml', (7161344, 857) +'render_taxonomies:output/es/categories/ipytmpl.xml', (7161344, 869) 'render_pages:output/posts/make-your-slides-with-ipython.html', (30343168, 19175) 'render_tags:output/categories/aikido.html', (5000704, 3422) -'render_taxonomies:output/2012/index.html', (30017024, 5788) -'render_taxonomies:output/es/categories/aikido.xml', (21640192, 1414) +'render_taxonomies:output/2012/index.html', (36948992, 6607) +'render_taxonomies:output/es/categories/aikido.xml', (21640192, 1429) 'render_sources:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb', (948224, 348) 'render_taxonomies:output/categories/tutorials.html', (34228224, 7350) -'render_taxonomies:output/index-3.html', (31847936, 20391) +'render_taxonomies:output/index-3.html', (39528960, 20688) 'render_posts:cache/stories/about-me.html.es', (1867776, 697) -'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html', (15088640, 500) +'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html', (15088640, 506) 'render_taxonomies:output/categories/python.html', (35998720, 38655) 'render_tags:output/categories/talks.xml', (1799680, 1181) -'render_taxonomies:output/categories/pip.xml', (28427776, 4058) +'render_taxonomies:output/categories/pip.xml', (39155200, 4103) 'render_taxonomies:output/categories/less.html', (31279104, 8063) 'render_taxonomies:output/categories/slideshow.html', (35353600, 16942) -'render_taxonomies:output/es/categories/win.xml', (28766208, 4058) +'render_taxonomies:output/es/categories/win.xml', (40141312, 4103) 'render_tags:output/categories/pyconar.html', (4732928, 3544) 'render_archive:output/archive.html', (3598848, 2560) 'render_galleries:output/galleries/Inundacion', (559104, 145) 'render_tags:output/categories/slideshow.html', (3711488, 8656) -'render_taxonomies:output/categories/minimap.xml', (5835776, 833) +'render_taxonomies:output/categories/minimap.xml', (5835776, 846) 'render_sources:output/posts/a-simple-overview-of-viper.txt', (1264128, 272) 'render_taxonomies:output/es/categories/typescript.html', (34328064, 7207) -'copy_assets:output/assets/fonts/eMS0tViDqryBl0EG1pqFZfesZW2xOQ-xsNqO47m55DA.woff', (1499136, 362) +'copy_assets:output/assets/fonts/eMS0tViDqryBl0EG1pqFZfesZW2xOQ-xsNqO47m55DA.woff', (1499136, 368) 'render_tags:output/categories/ipython.xml', (2355200, 23350) 'render_tags:output/categories/family.xml', (2030080, 1041) 'render_tags:output/es/categories/win.html', (3072000, 2594) 'render_tags:output/es/categories/trading.html', (3037696, 4239) 'render_tags:output/categories/extension.xml', (1499648, 4879) -'render_galleries:output/galleries/Facu_RN/DSC05925.JPG', (1264640, 276) +'render_galleries:output/galleries/Facu_RN/DSC05925.JPG', (1264640, 284) 'render_tags:output/es/categories/less.html', (4184064, 4343) 'render_indexes:output/es/index-2.html', (4323840, 13504) -'render_taxonomies:output/es/2013/01/index.html', (31998976, 6441) -'render_galleries:output/es/galleries/spellchecker/index.html', (29558784, 18879) +'render_taxonomies:output/es/2013/01/index.html', (38140928, 7579) +'render_galleries:output/es/galleries/spellchecker/index.html', (36687360, 19986) 'render_tags:output/es/categories/tutorials.xml', (700416, 694) 'render_pages:output/es/posts/paraguay.html', (31970816, 19632) 'render_archive:output/es/2014/04/index.html', (4804096, 2575) 'render_pages:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html', (34447360, 19406) 'render_taxonomies:output/es/categories/ipyscript.html', (31705088, 7470) -'copy_files:output/ShortCV_English.pdf', (115200, 255) +'copy_files:output/ShortCV_English.pdf', (115200, 261) 'render_sources:output/posts/rise-400b1-is-available-please-test-it.ipynb', (3584512, 301) -'render_taxonomies:output/es/categories/scipycon.xml', (5172224, 694) +'render_taxonomies:output/es/categories/scipycon.xml', (5172224, 705) 'render_sources:output/posts/nikola-nbconvert.txt', (605696, 258) 'render_posts:cache/posts/a-simple-overview-of-viper.html.es', (2065408, 841) 'render_authors', (95744, 56) 'render_sources:output/es/posts/coming-back.ipynb', (212992, 247) -'render_galleries:output/galleries/spellchecker/2.png', (1757696, 272) +'render_galleries:output/galleries/spellchecker/2.png', (1757696, 280) 'render_tags:output/categories/ipython.html', (2967040, 26271) 'render_tags:output/categories/ipytmpl.xml', (1839616, 863) 'render_indexes:output/index.html', (2769408, 14199) -'render_galleries:output/galleries/Facu_RN/Facu3.png', (739840, 270) -'render_taxonomies:output/es/categories/mipyex.xml', (5679104, 3303) +'render_galleries:output/galleries/Facu_RN/Facu3.png', (739840, 278) +'render_taxonomies:output/es/categories/mipyex.xml', (5679104, 3348) 'render_taxonomies:output/categories/pinned.html', (31064064, 7181) 'render_galleries:output/galleries/binder/terminal.thumbnail.png', (16536064, 276) 'render_tags:output/es/categories/pip.html', (2993664, 2594) 'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.html.es', (1497088, 603) '_switch to py3', (1401856, 56) -'render_taxonomies:output/2017/12/index.html', (33112576, 5442) +'render_taxonomies:output/2017/12/index.html', (40256000, 6572) 'render_taxonomies:output/categories/ipytmpl.html', (31182336, 7513) -'render_galleries:output/galleries/Facu_RN/DSC05901.JPG', (1436160, 276) +'render_galleries:output/galleries/Facu_RN/DSC05901.JPG', (1436160, 283) 'render_galleries:output/galleries/Facu_RN/DSC05901.thumbnail.JPG', (1797120, 278) 'render_taxonomies:output/es/categories/ipytmpl.html', (30914560, 7513) 'render_taxonomies:output/categories/family.html', (33963008, 7696) 'render_galleries:output/galleries/Facu_RN/Facu2.thumbnail.png', (1463296, 272) -'render_taxonomies:output/2012/06/index.html', (34125312, 8693) +'render_taxonomies:output/2012/06/index.html', (39397376, 9889) 'render_tags:output/es/categories/ipytmpl.html', (3769344, 3784) 'render_tags:output/categories/minimap.html', (3150336, 3760) 'render_taxonomies:output/es/categories/base16.html', (33266176, 7435) 'render_galleries:output/galleries/Facu_RN/Facu5.thumbnail.png', (2123264, 272) -'render_galleries:output/es/galleries/binder/rss.xml', (29597184, 11163) +'render_galleries:output/es/galleries/binder/rss.xml', (37030912, 11969) 'copy_files', (1055744, 56) 'render_archive:output/es/2013/05/index.html', (2714624, 2575) -'render_taxonomies:output/categories/css.xml', (5630976, 1387) -'render_taxonomies:output/es/categories/javascript.xml', (5990400, 6478) -'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.html', (779776, 633) -'render_taxonomies:output/es/2017/07/index.html', (34355712, 6242) -'render_galleries:output/galleries/Facu_RN/DSC05918.JPG', (2062848, 276) +'render_taxonomies:output/categories/css.xml', (5630976, 1410) +'render_taxonomies:output/es/categories/javascript.xml', (5990400, 6577) +'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.html', (779776, 645) +'render_taxonomies:output/es/2017/07/index.html', (39768576, 7374) +'render_galleries:output/galleries/Facu_RN/DSC05918.JPG', (2062848, 284) 'render_taxonomies:output/categories/threads.html', (32545792, 7434) -'render_taxonomies:output/categories/conda.xml', (35216384, 4441) +'render_taxonomies:output/categories/conda.xml', (35216384, 4492) 'render_tags:output/categories/python.xml', (3278336, 25726) -'render_galleries:output/es/galleries/zenmode/rss.xml', (29228032, 18897) +'render_galleries:output/es/galleries/zenmode/rss.xml', (37314560, 19707) 'render_taxonomies:output/es/categories/pyconar.html', (32414720, 7273) -'render_taxonomies:output/categories/blog.xml', (22665216, 7287) +'render_taxonomies:output/categories/blog.xml', (22665216, 7413) 'render_pages:output/posts/ipython-plugin-for-nikola-updated.html', (30624256, 19203) 'render_tags:output/es/categories/gh-pages.xml', (2069504, 2529) -'render_galleries:output/es/galleries/Inundacion/index.html', (29470720, 18943) -'render_galleries:output/es/galleries/twitter/rss.xml', (29340672, 18588) +'render_galleries:output/es/galleries/Inundacion/index.html', (36666880, 20080) +'render_galleries:output/es/galleries/twitter/rss.xml', (37384192, 19395) 'render_pages:output/posts/slider-for-nbconvert.html', (33016832, 18979) 'render_tags:output/es/categories/pyconar.xml', (1728512, 623) 'render_sources:output/posts/48-themes-for-your-ipython-notebook.ipynb', (1488384, 296) 'render_tags:output/es/categories/ipython.xml', (2298880, 24748) -'copy_assets:output/assets/images/glyphicons-halflings-white.png', (1126912, 327) +'copy_assets:output/assets/images/glyphicons-halflings-white.png', (1126912, 333) 'render_sources:output/es/posts/improving-viper-slideshows-styling.txt', (22318592, 513) 'render_taxonomies:output/es/categories/performance.html', (32910336, 8382) 'render_tags:output/categories/jinja.xml', (1428992, 3082) 'render_tags:output/categories/nbconvert.html', (4072960, 12463) 'render_posts:cache/posts/rise-400b1-is-available-please-test-it.html.es', (4467712, 451) -'render_taxonomies:output/es/categories/pyconar.xml', (5351936, 617) +'render_taxonomies:output/es/categories/pyconar.xml', (5351936, 629) 'render_taxonomies:output/es/categories/pinned.html', (34320384, 7181) 'render_tags:output/categories/first_post.html', (4855808, 3565) 'render_sources:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook.ipynb', (870400, 323) -'render_taxonomies:output/categories/performance.xml', (8798720, 1726) -'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (9216, 683) +'render_taxonomies:output/categories/performance.xml', (8798720, 1755) +'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html', (9216, 695) 'render_tags:output/es/categories/nbconvert.html', (4372992, 12463) -'render_taxonomies:output/categories/videos.xml', (6920192, 617) +'render_taxonomies:output/categories/videos.xml', (6920192, 629) 'render_sources:output/posts/how-to-pin-conda.ipynb', (2447872, 353) 'render_tags:output/categories/javascript.html', (2916864, 9077) 'render_pages:output/posts/live-trading-logbook.html', (32774656, 19112) -'render_taxonomies:output/categories/binder.xml', (19995136, 1402) +'render_taxonomies:output/categories/binder.xml', (19995136, 1413) 'render_galleries:output/galleries/zenmode/pic1.thumbnail.png', (954880, 270) -'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.html', (1442816, 638) -'render_taxonomies:output/es/categories/magic.xml', (7242240, 814) +'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.html', (1442816, 650) +'render_taxonomies:output/es/categories/magic.xml', (7242240, 827) 'render_pages:output/posts/powered-by-nikola.html', (31309312, 19083) 'render_taxonomies:output/categories/typescript.html', (34164736, 7207) 'render_pages:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (30735872, 19427) -'render_taxonomies:output/2013/index.html', (30097920, 5788) +'render_taxonomies:output/2013/index.html', (37377536, 6607) 'render_tags:output/categories/life.html', (4574720, 3962) -'render_taxonomies:output/categories/politics.xml', (5171200, 580) +'render_taxonomies:output/categories/politics.xml', (5171200, 592) 'render_taxonomies:output/es/categories/nbviewer.html', (32195072, 7560) 'render_tags:output/categories/mipyex.html', (3614208, 6264) 'copy_assets', (568832, 56) 'render_pages:output/posts/viper-is-now-using-ipythonnbconvert.html', (33992704, 19217) -'render_galleries:output/galleries/bokehmagic/rss.xml', (29793280, 19543) -'render_posts:cache/posts/viper.html', (1648640, 435) -'render_taxonomies:output/categories/win.xml', (28629504, 4058) +'render_galleries:output/galleries/bokehmagic/rss.xml', (36796416, 20352) +'render_posts:cache/posts/viper.html', (1648640, 446) +'render_taxonomies:output/categories/win.xml', (38642176, 4103) 'render_sources:output/es/posts/mimic-the-ipython-notebook-cell-execution.ipynb', (139264, 307) 'render_taxonomies:output/categories/blog.html', (31001088, 13943) 'render_tags:output/es/categories/conda.html', (2880000, 3947) 'render_tags:output/categories/jupyter.html', (4747776, 3922) -'render_taxonomies:output/es/categories/viper.xml', (22209024, 4162) +'render_taxonomies:output/es/categories/viper.xml', (22209024, 4230) 'render_tags:output/es/categories/nbviewer.xml', (47616, 910) 'render_pages:output/es/posts/facundo.html', (32329216, 18913) 'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.html.es', (55808, 645) 'render_pages:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (32064000, 19328) 'render_galleries:output/galleries/binder', (16535552, 145) -'copy_assets:output/assets/css/ipython.min.css', (844288, 296) -'render_galleries:output/galleries/bokehmagic/sin2.png', (283648, 273) +'copy_assets:output/assets/css/ipython.min.css', (844288, 301) +'render_galleries:output/galleries/bokehmagic/sin2.png', (283648, 281) 'render_taxonomies:output/es/categories/scipycon.html', (33796096, 7350) -'render_galleries:output/galleries/rise/index.html', (34755072, 14039) -'render_taxonomies:output/es/categories/git.xml', (15972352, 4480) -'render_taxonomies:output/es/categories/nbviewer.xml', (5678080, 904) +'render_galleries:output/galleries/rise/index.html', (36824064, 15287) +'render_taxonomies:output/es/categories/git.xml', (15972352, 4544) +'render_taxonomies:output/es/categories/nbviewer.xml', (5678080, 916) 'render_pages:output/posts/rise-meets-jupyterlab.html', (34070016, 14238) 'render_tags:output/es/categories/blog.html', (3016192, 10586) 'render_taxonomies:output/categories/git.html', (31077376, 11136) 'render_taxonomies:output/es/categories/ipython.html', (31407616, 32750) 'render_pages:output/posts/a-new-nikolas-theme-for-my-site-zen.html', (33465344, 19217) 'render_taxonomies:output/categories/flood.html', (32622080, 7364) -'render_taxonomies:output/categories/gh-pages.xml', (22672896, 3567) +'render_taxonomies:output/categories/gh-pages.xml', (38872576, 3611) 'render_taxonomies:output/es/categories/life.html', (32439808, 7696) 'render_pages:output/es/posts/reveal-converter-mini-tutorial.html', (33642496, 19182) 'render_pages:output/posts/nikola-nbconvert.html', (31440384, 18966) -'render_taxonomies:output/es/categories/pip.xml', (28712960, 4058) +'render_taxonomies:output/es/categories/pip.xml', (38913536, 4103) 'render_sources:output/es/posts/different-ways-to-lead-an-open-source-project.ipynb', (1048064, 315) 'render_tags:output/es/categories/ipytmpl.xml', (1498112, 863) -'render_taxonomies:output/es/categories/osx.xml', (28803072, 4058) +'render_taxonomies:output/es/categories/osx.xml', (38999552, 4103) 'render_pages:output/posts/improving-viper-slideshows-styling.html', (31244800, 19047) 'render_tags:output/categories/less.xml', (792576, 1422) -'copy_assets:output/assets/xml/rss.xsl', (13917184, 1429) -'render_taxonomies:output/es/categories/life.xml', (6868992, 1040) +'copy_assets:output/assets/xml/rss.xsl', (37205504, 1602) +'render_taxonomies:output/es/categories/life.xml', (6868992, 1055) 'render_taxonomies:output/es/categories/binder.html', (33207296, 6909) -'copy_files:output/ShortCV_Spanish.pdf', (1565184, 255) -'render_posts:cache/posts/powered-by-nikola.html', (98816, 496) -'copy_assets:output/assets/css/main.css', (206336, 278) -'render_taxonomies:output/categories/local.xml', (5594112, 918) -'render_taxonomies:output/2012/12/index.html', (34335744, 6223) -'render_taxonomies:output/es/categories/css.xml', (5621760, 1387) +'copy_files:output/ShortCV_Spanish.pdf', (1565184, 261) +'render_posts:cache/posts/powered-by-nikola.html', (98816, 508) +'copy_assets:output/assets/css/main.css', (206336, 283) +'render_taxonomies:output/categories/local.xml', (5594112, 929) +'render_taxonomies:output/2012/12/index.html', (39933952, 7353) +'render_taxonomies:output/es/categories/css.xml', (5621760, 1410) 'render_tags:output/es/categories/opensource.xml', (2146304, 854) 'render_taxonomies:output/categories/gh-pages.html', (32579584, 10223) -'render_taxonomies:output/es/categories/extension.xml', (7115264, 4815) +'render_taxonomies:output/es/categories/extension.xml', (7115264, 4883) 'render_tags:output/categories/themes.html', (3214848, 4236) 'render_taxonomies:output/es/categories/git.html', (32637952, 11136) 'robots_file:output/robots.txt', (198144, 136) -'render_taxonomies:output/categories/themes.xml', (6667776, 1297) -'copy_assets:output/assets/js/miniPageNav.js', (26624, 293) +'render_taxonomies:output/categories/themes.xml', (6667776, 1321) +'copy_assets:output/assets/js/miniPageNav.js', (26624, 298) 'render_tags:output/categories/ipyscript.xml', (870912, 821) -'render_taxonomies:output/es/categories/jinja.xml', (19099136, 3041) +'render_taxonomies:output/es/categories/jinja.xml', (37846528, 3088) 'render_sources:output/es/posts/customizing-your-ipython-slides.ipynb', (296960, 287) 'render_indexes:output/index-4.html', (4482560, 11003) 'render_archive:output/2013/11/index.html', (4751872, 2575) -'render_taxonomies:output/categories/github.xml', (14987264, 728) +'render_taxonomies:output/categories/github.xml', (14987264, 733) 'render_galleries:output/galleries/Facu_RN/DSC05928.thumbnail.JPG', (684544, 278) 'render_tags:output/categories/magic.xml', (1338880, 821) 'render_posts:cache/posts/How-to-pin-Conda.html', (2448384, 385) 'render_tags:output/es/categories/slideshow.xml', (2701312, 5735) 'render_taxonomies:output/categories/extension.html', (30171648, 11471) -'render_taxonomies:output/categories/jinja.xml', (16744448, 3041) -'render_taxonomies:output/es/categories/github.xml', (13124096, 728) +'render_taxonomies:output/categories/jinja.xml', (39573504, 3088) +'render_taxonomies:output/es/categories/github.xml', (13124096, 733) 'render_galleries:output/galleries/Facu_RN/Facu3.thumbnail.png', (273408, 272) 'render_tags:output/es/categories/config.html', (4405760, 6003) 'render_taxonomies:output/categories/videos.html', (32005632, 7273) -'render_taxonomies:output/es/categories/rise.xml', (34919424, 5628) -'render_galleries:output/galleries/Facu_RN/Facu2.png', (954368, 270) +'render_taxonomies:output/es/categories/rise.xml', (40249856, 5691) +'render_galleries:output/galleries/Facu_RN/Facu2.png', (954368, 277) 'render_taxonomies:output/categories/zen.html', (31034880, 8581) 'render_pages:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html', (30115840, 19316) 'render_tags:output/categories/twitter.html', (4743680, 3817) 'render_posts:cache/posts/live-trading-logbook.html.es', (1605120, 529) -'render_taxonomies:output/es/2013/05/index.html', (31944704, 6377) -'render_taxonomies:output/es/categories/config.xml', (18547200, 3041) +'render_taxonomies:output/es/2013/05/index.html', (39311872, 7513) +'render_taxonomies:output/es/categories/config.xml', (38487552, 3088) 'render_galleries:output/galleries/Facu_RN/DSC05918.thumbnail.JPG', (2129920, 278) 'render_sources:output/posts/how-to-pin-the-conda.ipynb', (2402304, 271) -'render_galleries:output/galleries/rss.xml', (29735936, 18307) -'render_taxonomies:output/es/categories/linux.xml', (28798976, 4058) +'render_galleries:output/galleries/rss.xml', (37504000, 19108) +'render_taxonomies:output/es/categories/linux.xml', (39756288, 4103) 'render_tags:output/es/categories/nbviewer.html', (4260864, 3831) 'render_tags:output/categories/connectivity.html', (3388416, 3845) -'copy_assets:output/assets/fonts/evC1haE-MsorTl_A7_uSGT8E0i7KZn-EPnyo3HZu7kw.woff', (2062336, 362) +'copy_assets:output/assets/fonts/evC1haE-MsorTl_A7_uSGT8E0i7KZn-EPnyo3HZu7kw.woff', (2062336, 368) 'render_tags:output/es/categories/pyconar.html', (3485696, 3544) 'render_indexes:output/es/index-4.html', (3474432, 11003) 'render_taxonomies:output/categories/binder.html', (32969728, 6909) 'render_tags:output/categories/index.html', (4663296, 2564) -'render_galleries:output/galleries/twitter/index.html', (29884416, 18571) -'_scan_locs:sitemap', (36492800, 45345) +'render_galleries:output/galleries/twitter/index.html', (37091840, 19518) +'_scan_locs:sitemap', (39453184, 48705) 'render_sources:output/posts/improving-viper-slideshows-styling.txt', (1576448, 288) 'render_archive:output/es/2013/08/index.html', (4740608, 2575) 'render_pages:output/posts/customizing-your-ipython-slides.html', (31776256, 19189) 'render_tags:output/es/categories/viper.xml', (115712, 3367) 'render_tags:output/categories/zenmode.xml', (1208832, 840) 'render_tags:output/es/categories/format.html', (4016640, 3901) -'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (736256, 673) +'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html', (736256, 685) 'render_pages:output/posts/reveal-converter-mini-tutorial.html', (32683008, 19182) -'copy_assets:output/assets/fonts/fontawesome-webfont.woff', (2037248, 314) +'copy_assets:output/assets/fonts/fontawesome-webfont.woff', (2037248, 319) 'render_sources:output/posts/blogging-with-nikola-and-ipython.ipynb', (322048, 290) -'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.html', (983040, 619) +'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.html', (983040, 631) 'render_tags:output/es/categories/themes.xml', (1978880, 1315) 'render_taxonomies:output/categories/mipyex.html', (31603712, 9959) -'render_taxonomies:output/2014/index.html', (30084608, 5788) -'copy_assets:output/assets/fonts/fontawesome-webfont.eot', (1308672, 312) +'render_taxonomies:output/2014/index.html', (37024256, 6607) +'copy_assets:output/assets/fonts/fontawesome-webfont.eot', (1308672, 317) 'render_tags:output/categories/javascript.xml', (633344, 6156) 'render_posts:cache/posts/how-to-pin-the-conda.html', (2402816, 397) 'render_tags:output/categories/rise.html', (3138048, 3922) 'render_taxonomies:output/es/categories/linux.html', (30774784, 10714) -'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.html', (194560, 643) +'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.html', (194560, 655) 'render_tags:output/categories/facundo.xml', (1151488, 1041) -'render_taxonomies:output/es/2016/05/index.html', (31833600, 6184) -'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (220672, 724) -'render_taxonomies:output/categories/spellcheck.xml', (6881280, 877) +'render_taxonomies:output/es/2016/05/index.html', (39627776, 7314) +'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (220672, 735) +'render_taxonomies:output/categories/spellcheck.xml', (6881280, 888) 'render_taxonomies:output/es/categories/daniela.html', (31271936, 7157) -'copy_files:output/portfolio/.ipynb_checkpoints/portfolio-checkpoint.ipynb', (1894912, 326) +'copy_files:output/portfolio/.ipynb_checkpoints/portfolio-checkpoint.ipynb', (1894912, 332) 'render_pages:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (30755328, 19401) -'render_galleries:output/galleries/zenmode/rss.xml', (29321728, 18897) +'render_galleries:output/galleries/zenmode/rss.xml', (37709824, 19707) 'render_sources:output/posts/teasers-with-the-ipython-notebook-plugin.ipynb', (1435648, 305) 'render_galleries:output/galleries/deploy', (1408000, 145) -'render_taxonomies:output/2017/11/index.html', (34172416, 5234) +'render_taxonomies:output/2017/11/index.html', (39273984, 6366) 'render_tags:output/categories/zen.xml', (1530368, 1951) -'render_taxonomies:output/index-4.html', (30807040, 20433) +'render_taxonomies:output/index-4.html', (38319104, 20735) 'render_tags:output/es/categories/nikola.xml', (1539072, 11054) 'render_taxonomies:output/categories/css.html', (32217088, 8043) 'render_pages:output/posts/rise-500-is-out.html', (33078784, 14207) -'render_taxonomies:output/es/archive.html', (30078464, 5788) +'render_taxonomies:output/es/archive.html', (37307904, 6607) 'render_tags:output/categories/nbviewer.xml', (329728, 910) 'render_sources:output/es/posts/nikolas-zen-theme-finally-released.ipynb', (908800, 293) -'render_taxonomies:output/es/2013/08/index.html', (31096320, 9849) +'render_taxonomies:output/es/2013/08/index.html', (38685184, 11047) 'render_archive:output/es/2016/index.html', (4572160, 2560) 'render_sources:output/es/posts/reveal-converter-mini-tutorial.ipynb', (622592, 285) '_switch to py3:please!', (1848320, 88) -'copy_assets:output/assets/fonts/FontAwesome.otf', (884224, 296) -'render_taxonomies:output/es/categories/tutorials.xml', (6867968, 694) +'copy_assets:output/assets/fonts/FontAwesome.otf', (884224, 301) +'render_taxonomies:output/es/categories/tutorials.xml', (6867968, 705) 'render_tags:output/es/categories/scipycon.xml', (481792, 694) 'render_tags:output/categories/opensource.xml', (453632, 854) -'render_taxonomies:output/categories/typescript.xml', (8477696, 551) +'render_taxonomies:output/categories/typescript.xml', (8477696, 557) 'render_tags:output/es/categories/extension.html', (4237824, 7800) -'render_taxonomies:output/es/2013/12/index.html', (33497088, 10015) +'render_taxonomies:output/es/2013/12/index.html', (38738432, 11210) 'render_galleries:output/galleries/spellchecker/2.thumbnail.png', (135168, 274) -'render_galleries:output/galleries/deploy/rss.xml', (29842432, 18585) +'render_galleries:output/galleries/deploy/rss.xml', (37045248, 19391) 'render_pages:output/es/posts/powered-by-nikola.html', (30932480, 19778) 'render_tags:output/categories/pinned.html', (3859968, 3447) -'copy_assets:output/assets/js/fancydates.js', (14691840, 1462) +'copy_assets:output/assets/js/fancydates.js', (36747776, 1640) 'render_tags:output/categories/facu.html', (2884096, 3422) 'render_tags:output/es/categories/jupyter.xml', (3348480, 1001) -'render_galleries:output/galleries/bokehmagic/sin.png', (879616, 271) +'render_galleries:output/galleries/bokehmagic/sin.png', (879616, 279) 'render_taxonomies:output/es/categories/javascript.html', (34342400, 13134) 'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html.es', (1367040, 674) -'render_posts:cache/posts/trading-logbook-update-22-nov-2013.html', (1314816, 588) +'render_posts:cache/posts/trading-logbook-update-22-nov-2013.html', (1314816, 600) 'render_tags:output/categories/base16.xml', (780800, 786) -'render_posts:cache/posts/how-to-pin-conda.html', (2462208, 379) -'render_taxonomies:output/categories/family.xml', (7104000, 1040) +'render_posts:cache/posts/how-to-pin-conda.html', (2462208, 384) +'render_taxonomies:output/categories/family.xml', (7104000, 1055) 'render_tags:output/es/categories/osx.xml', (4782592, 636) 'render_tags:output/es/categories/facundo.html', (4811264, 3962) -'render_taxonomies:output/2013/04/index.html', (34362368, 6391) +'render_taxonomies:output/2013/04/index.html', (38382080, 7525) 'render_tags:output/es/categories/trading.xml', (794112, 1318) 'render_tags:output/es/categories/theme.xml', (1255424, 1422) 'render_galleries:output/galleries/Inundacion/inundacion1.thumbnail.png', (1184768, 290) 'render_tags:output/es/categories/base16.html', (3632128, 3707) -'render_taxonomies:output/categories/git.xml', (14628352, 4480) +'render_taxonomies:output/categories/git.xml', (14628352, 4544) 'render_taxonomies:output/es/categories/less.html', (33878528, 8063) 'render_taxonomies:output/categories/nbviewer.html', (31088640, 7560) 'render_sources:output/es/posts/how-to-pin-the-conda.ipynb', (2401792, 271) 'render_indexes:output/index-1.html', (3440128, 11539) -'copy_files:output/portfolio/portfolio.ipynb', (1917952, 266) -'render_taxonomies:output/es/index-2.html', (31645184, 19860) +'copy_files:output/portfolio/portfolio.ipynb', (1917952, 272) +'render_taxonomies:output/es/index-2.html', (38036480, 20163) 'render_tags:output/categories/blog.html', (3127808, 9830) 'render_archive:output/es/2014/05/index.html', (4246016, 2575) -'render_taxonomies:output/es/categories/blog.xml', (22765568, 8602) +'render_taxonomies:output/es/categories/blog.xml', (38093824, 8751) 'render_sources:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.ipynb', (330752, 331) 'render_tags:output/es/categories/pinned.html', (4766208, 3447) -'render_taxonomies:output/categories/daniela.xml', (5731328, 501) +'render_taxonomies:output/categories/daniela.xml', (5731328, 506) 'render_tags:output/categories/css.xml', (1176576, 1406) 'render_galleries:output/es/galleries/bokehmagic', (2385408, 145) 'render_tags:output/es/categories/opensource.html', (3171840, 3775) 'render_taxonomies:output/categories/spellcheck.html', (31115776, 7533) 'render_taxonomies:output/categories/format.html', (32083456, 7631) 'render_taxonomies:output/categories/facu.html', (30993920, 7157) -'render_galleries:output/es/galleries/Facu_RN/rss.xml', (29713920, 21695) +'render_galleries:output/es/galleries/Facu_RN/rss.xml', (36763136, 22499) 'render_galleries:output/galleries/Inundacion/inundacion2.thumbnail.png', (10240, 290) 'render_sources:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.ipynb', (377856, 349) -'render_taxonomies:output/categories/base16.xml', (6212096, 779) +'render_taxonomies:output/categories/base16.xml', (6212096, 791) 'render_sources:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.ipynb', (38912, 351) 'render_tags:output/categories/base16.html', (2783744, 3707) 'post_render', (1257472, 56) -'render_taxonomies:output/categories/threads.xml', (6009344, 778) +'render_taxonomies:output/categories/threads.xml', (6009344, 788) 'render_pages:output/posts/teasers-with-the-ipython-notebook-plugin.html', (30551040, 19251) 'render_taxonomies:output/es/categories/mipyex.html', (31490048, 9959) 'render_sources:output/posts/mimic-the-ipython-notebook-cell-execution.ipynb', (1899008, 307) -'render_taxonomies:output/categories/rise.xml', (34497024, 5628) -'render_posts:cache/posts/a-simple-overview-of-viper.html', (1654784, 541) -'render_taxonomies:output/2017/07/index.html', (33484800, 6242) +'render_taxonomies:output/categories/rise.xml', (38397440, 5691) +'render_posts:cache/posts/a-simple-overview-of-viper.html', (1654784, 553) +'render_taxonomies:output/2017/07/index.html', (38293504, 7374) 'render_pages:output/stories/about-me.html', (33224704, 19422) 'render_pages:output/es/posts/nikolas-zen-theme-finally-released.html', (32448000, 19210) -'render_galleries:output/galleries/Facu_RN/Facu5.png', (677888, 270) +'render_galleries:output/galleries/Facu_RN/Facu5.png', (677888, 278) 'render_pages:output/es/posts/ipython-plugin-for-nikola-updated.html', (33570816, 19203) -'render_galleries:output/es/galleries/bokehmagic/index.html', (29116928, 19467) +'render_galleries:output/es/galleries/bokehmagic/index.html', (36645888, 20881) 'render_tags:output/categories/theme.html', (3067392, 4343) -'render_taxonomies:output/es/categories/facu.xml', (5619712, 501) +'render_taxonomies:output/es/categories/facu.xml', (5619712, 506) 'render_archive:output/2012/10/index.html', (3782144, 2575) 'render_sources:output/es/posts/zen-mode-extension-for-the-ipython-notebook.ipynb', (796160, 311) -'render_taxonomies:output/es/index.html', (36118528, 23751) -'copy_assets:output/assets/images/blue-mocha-grunge.jpg', (909312, 310) +'render_taxonomies:output/es/index.html', (36118528, 23963) +'copy_assets:output/assets/images/blue-mocha-grunge.jpg', (909312, 316) 'render_taxonomies:output/categories/aikido.html', (33333760, 7779) -'render_galleries:output/galleries/zenmode/index.html', (29982208, 18864) +'render_galleries:output/galleries/zenmode/index.html', (37287936, 19962) 'render_sources:output/es/posts/dont-write-scripts-just-write-ipyscripts.ipynb', (268288, 306) 'render_sources:output/es/posts/slider-for-nbconvert.txt', (1185280, 261) 'generate_rss:output/es/rss.xml', (4205056, 7273) 'render_archive:output/es/2012/11/index.html', (4827648, 2575) -'render_taxonomies:output/2013/05/index.html', (32225280, 6377) +'render_taxonomies:output/2013/05/index.html', (39060992, 7513) 'render_taxonomies:output/es/categories/themes.html', (31190016, 7953) 'render_pages:output/es/posts/dont-write-scripts-just-write-ipyscripts.html', (30288384, 19253) 'render_pages:output/posts/paraguay.html', (31727104, 19019) 'render_posts:cache/posts/rise-510-is-out.html.es', (12781568, 382) -'render_galleries:output/es/galleries/Facu_RN/index.html', (29862912, 21486) -'copy_files:output/portfolio/portfolio.slides.html', (335360, 280) +'render_galleries:output/es/galleries/Facu_RN/index.html', (36881920, 23944) +'copy_files:output/portfolio/portfolio.slides.html', (335360, 286) 'render_archive:output/es/2016/06/index.html', (4687360, 2575) 'render_pages:output/posts/rise-400b1-is-available-please-test-it.html', (31812096, 16656) -'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html', (1989632, 633) +'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html', (1989632, 645) 'render_tags:output/categories/jupyter.xml', (3701248, 1001) 'render_tags:output/es/categories/videos.xml', (1824256, 623) 'render_tags:output/es/categories/rise.xml', (4396544, 1001) @@ -863,23 +863,23 @@ 'sitemap:output/sitemapindex.xml', (1487360, 256) 'render_taxonomies:output/categories/ipyscript.html', (32321536, 7470) 'render_sources:output/es/posts/powered-by-nikola.txt', (43008, 445) -'render_galleries:output/galleries/deploy/index.html', (29608448, 18569) +'render_galleries:output/galleries/deploy/index.html', (37448704, 19513) 'render_posts:cache/posts/48-themes-for-your-ipython-notebook.html.es', (1188352, 606) 'render_tags:output/categories/scipycon.xml', (1899520, 694) -'render_posts:cache/posts/zen-themes-updated.html', (1242112, 509) +'render_posts:cache/posts/zen-themes-updated.html', (37754368, 520) 'render_pages:output/es/posts/customizing-your-ipython-slides.html', (32097792, 19189) 'render_sources:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb', (15472640, 338) 'render_tags:output/categories/nikola.html', (3265024, 12962) 'render_tags:output/es/categories/jinja.html', (2926080, 6003) 'render_tags:output/categories/pip.xml', (4174848, 636) -'render_taxonomies:output/categories/tutorials.xml', (6975488, 694) -'render_posts:cache/posts/nikolas-zen-theme-finally-released.html', (0, 588) -'render_taxonomies:output/categories/toggle.xml', (19005440, 1525) -'render_taxonomies:output/2016/08/index.html', (30164992, 6319) +'render_taxonomies:output/categories/tutorials.xml', (6975488, 705) +'render_posts:cache/posts/nikolas-zen-theme-finally-released.html', (0, 598) +'render_taxonomies:output/categories/toggle.xml', (39174144, 1548) +'render_taxonomies:output/2016/08/index.html', (39955968, 7450) 'render_pages:output/es/posts/my-ipython-powered-semi-automatic-git-workflow.html', (33886720, 19296) 'render_sources:output/es/posts/viper.txt', (321536, 397) 'render_pages:output/es/posts/how-to-pin-the-conda.html', (2390528, 5548) -'render_posts:cache/posts/ipython-plugin-for-nikola-updated.html', (1127424, 583) +'render_posts:cache/posts/ipython-plugin-for-nikola-updated.html', (1127424, 595) 'render_tags:output/es/categories/reveal.xml', (4010496, 6132) 'render_archive:output/es/2013/index.html', (4553216, 2560) 'render_tags:output/es/categories/nbconvert.xml', (349184, 9542) @@ -889,7 +889,7 @@ 'render_pages:output/es/posts/make-your-slides-with-ipython.html', (32560128, 19175) 'render_posts:cache/posts/pyconar-2013.html.es', (1230336, 490) 'render_galleries:output/galleries/Facu_RN/Facu1.thumbnail.png', (163328, 272) -'render_taxonomies:output/es/categories/jupyterlab.xml', (20042752, 1225) +'render_taxonomies:output/es/categories/jupyterlab.xml', (20042752, 1237) 'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.html.es', (1529344, 644) 'render_taxonomies:output/es/categories/opensource.html', (36193792, 9862) 'render_pages:output/es/posts/coming-back.html', (34051072, 18940) @@ -899,12 +899,12 @@ 'render_tags:output/categories/minimap.xml', (517632, 839) 'render_tags:output/es/categories/base16.xml', (2035712, 786) 'render_tags:output/es/categories/family.html', (3042304, 3962) -'render_galleries:output/es/galleries/loadwrite/rss.xml', (29962752, 19253) +'render_galleries:output/es/galleries/loadwrite/rss.xml', (37667328, 20062) 'render_taxonomies:output/es/categories/viper.html', (32919040, 10818) -'render_galleries:output/galleries/loadwrite/loader1.png', (466944, 278) +'render_galleries:output/galleries/loadwrite/loader1.png', (466944, 286) 'render_sources:output/posts/facundo.txt', (220160, 235) -'render_taxonomies:output/es/categories/python.xml', (36226560, 35108) -'copy_assets:output/assets/css/nikola_rst.css', (29378560, 1118) +'render_taxonomies:output/es/categories/python.xml', (38800384, 35640) +'copy_assets:output/assets/css/nikola_rst.css', (29378560, 1299) 'render_tags:output/categories/life.xml', (940032, 1041) 'render_tags:output/categories/toggle.xml', (1385472, 1542) 'render_pages:output/posts/trading-logbook-update-22-nov-2013.html', (32602624, 19210) @@ -913,76 +913,76 @@ 'render_taxonomies:output/es/categories/politics.html', (32492544, 7849) 'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.html.es', (1817088, 631) 'render_galleries:output/galleries/.ipynb_checkpoints/index.html', (9021440, 4443) -'render_posts:cache/posts/48-themes-for-your-ipython-notebook.html', (251392, 594) +'render_posts:cache/posts/48-themes-for-your-ipython-notebook.html', (251392, 605) 'render_tags:output/categories/talks.html', (3106304, 4102) 'render_taxonomies:output/es/categories/talks.html', (31392768, 7825) 'render_pages:output/es/posts/a-new-nikolas-theme-for-my-site-zen.html', (31015424, 19217) 'render_pages:output/posts/mimic-the-ipython-notebook-cell-execution.html', (31564800, 19259) 'render_sources:output/posts/make-your-slides-with-ipython.ipynb', (967168, 283) 'render_tags:output/categories/tutorials.html', (4708352, 3615) -'render_taxonomies:output/es/categories/spellcheck.xml', (6563328, 877) +'render_taxonomies:output/es/categories/spellcheck.xml', (6563328, 888) 'render_sources:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook.ipynb', (677376, 323) 'render_taxonomies:output/es/categories/magic.html', (34273792, 7470) -'render_taxonomies:output/categories/less.xml', (6266368, 1407) +'render_taxonomies:output/categories/less.xml', (6266368, 1429) 'render_galleries:output/galleries/Facu_RN/Facu4.thumbnail.png', (967680, 272) 'render_taxonomies:output/es/categories/osx.html', (33661952, 10714) 'render_listings', (778240, 56) 'render_tags:output/categories/tutorials.xml', (2122240, 694) 'render_taxonomies:output/es/categories/theme.html', (30482944, 8063) -'render_taxonomies:output/es/categories/conda.xml', (35211776, 4441) +'render_taxonomies:output/es/categories/conda.xml', (35211776, 4492) 'render_galleries:output/galleries/trades/2.thumbnail.png', (855552, 261) 'render_archive:output/2013/02/index.html', (3345408, 2575) 'render_sources:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.ipynb', (273920, 327) 'render_pages:output/es/stories/about-me.html', (30307840, 19700) 'render_taxonomies:output/es/categories/toggle.html', (30785536, 8181) 'render_tags:output/categories/rise.xml', (4071936, 1001) -'render_galleries:output/galleries/Facu_RN/index.html', (29921792, 21486) +'render_galleries:output/galleries/Facu_RN/index.html', (37234176, 23944) 'render_galleries:output/es/galleries/Facu_RN', (2389504, 145) -'render_galleries:output/galleries/Inundacion/inundacion2.png', (1717248, 288) +'render_galleries:output/galleries/Inundacion/inundacion2.png', (1717248, 295) 'render_pages:output/posts/under-the-sea-en-la-plata.html', (30531584, 19147) 'render_tags:output/categories/nikola.xml', (124928, 10041) 'render_pages:output/es/posts/mimic-the-ipython-notebook-cell-execution.html', (30827520, 19259) 'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.html.es', (1105408, 661) -'render_taxonomies:output/es/2012/06/index.html', (32589824, 12682) -'render_taxonomies:output/es/categories/base16.xml', (5997056, 779) +'render_taxonomies:output/es/2012/06/index.html', (39941632, 13948) +'render_taxonomies:output/es/categories/base16.xml', (5997056, 791) 'render_tags:output/es/categories/talks.html', (3119104, 4102) -'render_taxonomies:output/categories/aikido.xml', (21641728, 1123) +'render_taxonomies:output/categories/aikido.xml', (21641728, 1134) 'render_tags:output/es/categories/css.xml', (871936, 1406) -'render_taxonomies:output/es/2012/09/index.html', (34247168, 6687) +'render_taxonomies:output/es/2012/09/index.html', (40133120, 7810) 'render_tags:output/es/categories/nikola.html', (3398144, 13975) 'render_galleries:output/galleries/rise', (9315840, 145) 'render_sources:output/es/posts/zen-themes-updated.ipynb', (479744, 262) 'render_taxonomies:output/es/categories/gh-pages.html', (32741376, 10223) 'render_tags:output/categories/threads.html', (4807168, 3705) -'render_taxonomies:output/categories/nbconvert.xml', (5881856, 9401) -'render_taxonomies:output/categories/magic.xml', (7548928, 814) +'render_taxonomies:output/categories/nbconvert.xml', (5881856, 9559) +'render_taxonomies:output/categories/magic.xml', (7548928, 827) 'render_tags:output/es/categories/themes.html', (3952640, 4236) -'render_taxonomies:output/2013/02/index.html', (31400960, 6426) -'render_galleries:output/galleries/trades/2.png', (1778176, 259) -'render_taxonomies:output/es/categories/politics.xml', (22319616, 1193) -'render_taxonomies:output/es/2017/index.html', (30010880, 5788) +'render_taxonomies:output/2013/02/index.html', (37932032, 7563) +'render_galleries:output/galleries/trades/2.png', (1778176, 267) +'render_taxonomies:output/es/categories/politics.xml', (22319616, 1217) +'render_taxonomies:output/es/2017/index.html', (36817408, 6607) 'render_tags:output/categories/jinja.html', (2717696, 6003) -'render_taxonomies:output/categories/javascript.xml', (5731840, 6478) -'render_galleries:output/galleries/rise/rss.xml', (34795008, 14095) +'render_taxonomies:output/categories/javascript.xml', (5731840, 6577) +'render_galleries:output/galleries/rise/rss.xml', (37071872, 14901) 'render_taxonomies:output/es/categories/win.html', (33971200, 10714) -'render_taxonomies:output/categories/flood.xml', (5311488, 708) -'render_taxonomies:output/es/categories/opensource.xml', (36107776, 3206) +'render_taxonomies:output/categories/flood.xml', (5311488, 717) +'render_taxonomies:output/es/categories/opensource.xml', (36107776, 3221) 'render_pages:output/posts/zen-themes-updated.html', (31225344, 19099) -'render_posts:cache/posts/beginning.html', (1732608, 455) +'render_posts:cache/posts/beginning.html', (1732608, 466) 'render_sources:output/posts/ipython-plugin-for-nikola-updated.ipynb', (323072, 291) 'render_sources:output/posts/coming-back.ipynb', (1463808, 247) 'render_tags:output/categories/zen.html', (3511808, 4872) 'render_pages:output/posts/48-themes-for-your-ipython-notebook.html', (31625728, 19218) 'render_sources:output/stories/about-me.txt', (1596416, 241) 'render_sources:output/posts/a-new-nikolas-theme-for-my-site-zen.ipynb', (194048, 295) -'render_taxonomies:output/categories/jupyter.xml', (36261888, 8187) +'render_taxonomies:output/categories/jupyter.xml', (39908352, 8259) 'render_tags:output/es/categories/family.xml', (61952, 1041) -'render_galleries:output/galleries/bokehmagic/sin3.png', (197632, 273) +'render_galleries:output/galleries/bokehmagic/sin3.png', (197632, 281) 'render_taxonomies:output/categories/minimap.html', (30906880, 7489) -'render_taxonomies:output/2013/10/index.html', (31294464, 8041) -'render_posts:cache/posts/we-are-above-1000-stars.html', (9356800, 400) +'render_taxonomies:output/2013/10/index.html', (40071168, 9202) +'render_posts:cache/posts/we-are-above-1000-stars.html', (9356800, 406) 'render_tags:output/categories/viper.xml', (80896, 2242) -'render_taxonomies:output/categories/talks.xml', (7043584, 1169) +'render_taxonomies:output/categories/talks.xml', (7043584, 1192) 'copy_assets:output/assets/css/ipython.min.css.map', (3710464, 640) 'render_pages:output/posts/coming-back.html', (30887936, 18940) 'render_posts:cache/posts/make-your-slides-with-ipython.html.es', (243712, 575) @@ -993,61 +993,61 @@ 'render_archive:output/es/2014/index.html', (4393984, 2560) 'render_posts:cache/posts/customizing-your-ipython-slides.html.es', (1042432, 585) 'render_sources:output/es/posts/48-themes-for-your-ipython-notebook.ipynb', (2085888, 296) -'render_taxonomies:output/categories/linux.xml', (28476928, 4058) +'render_taxonomies:output/categories/linux.xml', (39004160, 4103) 'render_archive:output/es/2012/06/index.html', (2996736, 2575) -'render_taxonomies:output/index-5.html', (30451200, 16006) +'render_taxonomies:output/index-5.html', (30451200, 16268) 'render_sources:output/es/posts/nikola-nbconvert.txt', (1185792, 450) 'render_archive:output/es/2012/09/index.html', (4502016, 2575) -'render_taxonomies:output/es/categories/threads.xml', (5326336, 778) +'render_taxonomies:output/es/categories/threads.xml', (5326336, 788) 'render_taxonomies:output/categories/opensource.html', (36174848, 9862) 'render_posts:cache/posts/facundo.html.es', (164352, 346) 'render_taxonomies:output/categories/talks.html', (31672832, 7825) 'render_taxonomies:output/es/categories/facu.html', (34374656, 7157) 'render_tags:output/categories/flood.html', (4755968, 3629) -'render_galleries:output/galleries/deploy/1.png', (1983488, 260) +'render_galleries:output/galleries/deploy/1.png', (1983488, 268) 'render_galleries:output/es/galleries', (2385920, 145) -'render_posts:cache/posts/coming-back.html', (1953792, 364) -'render_taxonomies:output/es/2014/index.html', (30048768, 5788) +'render_posts:cache/posts/coming-back.html', (1953792, 369) +'render_taxonomies:output/es/2014/index.html', (37260800, 6607) 'render_sources:output/posts/using-a-local-revealjs-library-with-your-ipython-slides.ipynb', (320512, 335) 'generate_rss:output/rss.xml', (4774912, 7273) -'render_taxonomies:output/2017/index.html', (30072320, 5788) -'render_posts:cache/posts/facundo.html', (883712, 346) +'render_taxonomies:output/2017/index.html', (37207552, 6607) +'render_posts:cache/posts/facundo.html', (883712, 352) 'render_pages:output/es/posts/we-are-above-1000-stars.html', (32041472, 14246) 'render_taxonomies:output/es/categories/videos.html', (33590272, 7273) -'copy_files:output/portfolio/damian.jpg', (2061312, 257) +'copy_files:output/portfolio/damian.jpg', (2061312, 263) 'render_pages:output/posts/hide-the-input-cells-from-your-ipython-slides.html', (31746560, 19286) 'render_indexes:output/es/index-1.html', (3797504, 14444) -'copy_assets:output/assets/js/toggle.js', (1214976, 280) +'copy_assets:output/assets/js/toggle.js', (1214976, 285) 'render_tags:output/categories/twitter.xml', (961024, 896) -'render_taxonomies:output/2013/09/index.html', (31500288, 11319) +'render_taxonomies:output/2013/09/index.html', (38023680, 12531) 'render_galleries:output/galleries/loadwrite/writer1.thumbnail.png', (322560, 280) 'render_galleries:output/galleries/twitter', (93696, 145) 'render_sources:output/es/posts/trading-logbook-update-22-nov-2013.ipynb', (1816064, 293) 'render_sources:output/posts/my-ipython-powered-semi-automatic-git-workflow.ipynb', (244736, 318) -'render_taxonomies:output/categories/opensource.xml', (36538368, 3206) +'render_taxonomies:output/categories/opensource.xml', (36538368, 3221) 'render_tags:output/es/categories/facu.html', (4440064, 3422) 'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html.es', (213504, 695) 'render_taxonomies:output/es/categories/jupyterlab.html', (33769984, 7881) -'render_taxonomies:output/es/2014/05/index.html', (32314880, 6343) -'render_galleries:output/es/galleries/zenmode/index.html', (29451776, 18864) +'render_taxonomies:output/es/2014/05/index.html', (38491136, 7480) +'render_galleries:output/es/galleries/zenmode/index.html', (36707840, 19962) 'render_pages:output/es/posts/viper-is-now-using-ipythonnbconvert.html', (33118208, 19217) -'render_galleries:output/es/galleries/deploy/index.html', (29190144, 18569) -'render_galleries:output/galleries/Facu_RN/Facu1.png', (1464320, 270) +'render_galleries:output/es/galleries/deploy/index.html', (37408768, 19513) +'render_galleries:output/galleries/Facu_RN/Facu1.png', (1464320, 278) 'render_pages:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html', (32702464, 19414) 'render_tags:output/categories/extension.html', (3844096, 7800) -'render_taxonomies:output/es/index-5.html', (33348608, 16006) -'render_taxonomies:output/categories/trading.xml', (8616448, 1726) -'render_taxonomies:output/es/categories/reveal.xml', (34508288, 10684) +'render_taxonomies:output/es/index-5.html', (33348608, 16268) +'render_taxonomies:output/categories/trading.xml', (8616448, 1755) +'render_taxonomies:output/es/categories/reveal.xml', (37850112, 10829) 'render_taxonomies:output/categories/ipython.html', (31347712, 30336) 'render_sources:output/posts/scipycon-argentina-2013.ipynb', (1016320, 271) 'render_galleries:output/es/galleries/loadwrite', (2384896, 145) 'render_pages:output/posts/viper.html', (31134208, 18997) 'render_posts:cache/posts/hello-world-again.html.es', (155648, 760) -'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (2108928, 673) +'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (2108928, 684) 'render_archive:output/2013/10/index.html', (4085760, 2575) 'render_tags:output/categories/daniela.html', (3949056, 3422) 'render_taxonomies:output/categories/facundo.html', (30793728, 7696) -'copy_assets:output/assets/xml/atom.xsl', (12945920, 1437) +'copy_assets:output/assets/xml/atom.xsl', (37203456, 1611) 'render_galleries:output/galleries/.ipynb_checkpoints/rss.xml', (9092096, 4439) 'render_tags:output/categories/git.html', (2707456, 6862) 'render_sources:output/posts/a-simple-minimap-for-your-nbconverted-ipynb.ipynb', (2063872, 311) @@ -1057,31 +1057,31 @@ 'render_tags:output/categories/css.html', (4443648, 4327) 'render_taxonomies:output/es/categories/python.html', (36418048, 41764) 'render_taxonomies:output/categories/twitter.html', (33563136, 7545) -'render_taxonomies:output/es/categories/family.xml', (6445568, 1040) +'render_taxonomies:output/es/categories/family.xml', (6445568, 1055) 'render_pages:output/es/posts/rise-meets-jupyterlab.html', (31512064, 14238) 'render_tags:output/es/categories/win.xml', (3831808, 636) -'copy_files:output/portfolio/custom.css', (569344, 255) -'render_posts:cache/posts/trading-logbook-update-3.html', (8721920, 403) +'copy_files:output/portfolio/custom.css', (569344, 261) +'render_posts:cache/posts/trading-logbook-update-3.html', (8721920, 408) 'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html.es', (1532416, 754) -'render_taxonomies:output/es/categories/daniela.xml', (7462912, 501) +'render_taxonomies:output/es/categories/daniela.xml', (7462912, 506) 'render_sources:output/es/posts/viper-is-now-using-ipythonnbconvert.ipynb', (1142784, 295) 'render_archive:output/2012/11/index.html', (3454976, 2575) -'render_galleries:output/galleries/loadwrite/rss.xml', (29577728, 19253) +'render_galleries:output/galleries/loadwrite/rss.xml', (36908032, 20062) 'render_taxonomies:output/categories/life.html', (31876096, 7696) -'render_posts:cache/posts/slider-for-nbconvert.html', (2084864, 385) +'render_posts:cache/posts/slider-for-nbconvert.html', (2084864, 390) 'render_tags:output/categories/gh-pages.xml', (1250304, 2529) 'render_pages:output/es/posts/beginning.html', (32930304, 19646) -'render_taxonomies:output/index.html', (36082688, 23460) +'render_taxonomies:output/index.html', (38759424, 23668) 'render_taxonomies:output/es/categories/rise.html', (34769408, 12284) -'copy_assets:output/assets/js/baguetteBox.min.js', (29489664, 1136) +'copy_assets:output/assets/js/baguetteBox.min.js', (29489664, 1320) 'render_galleries:output/galleries/bokehmagic/themes.thumbnail.png', (907264, 279) 'render_pages:output/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html', (32473088, 19427) 'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html.es', (898048, 685) -'render_taxonomies:output/es/2016/index.html', (30104064, 5788) -'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.html', (1866752, 643) -'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.html', (282624, 649) +'render_taxonomies:output/es/2016/index.html', (36749824, 6607) +'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.html', (1866752, 654) +'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.html', (282624, 660) 'render_archive:output/2014/04/index.html', (3820544, 2575) -'render_galleries:output/galleries/spellchecker/rss.xml', (29209088, 18915) +'render_galleries:output/galleries/spellchecker/rss.xml', (36727808, 19723) 'render_pages:output/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (31584256, 19357) 'render_tags:output/es/categories/zen.html', (4769792, 4872) 'render_sources:output/es/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb', (14029312, 338) @@ -1089,43 +1089,43 @@ 'render_tags:output/es/categories/rise.html', (4703744, 3922) 'render_archive:output/2014/05/index.html', (4028928, 2575) 'render_taxonomies:output/categories/config.html', (33058816, 9697) -'copy_assets:output/assets/js/html5.js', (14851584, 1429) +'copy_assets:output/assets/js/html5.js', (36905984, 1603) 'render_pages:output/posts/how-to-pin-the-conda.html', (2396160, 5548) 'render_galleries:output/galleries/loadwrite/loader1.thumbnail.png', (8704, 280) 'render_tags:output/es/categories/ipyscript.html', (4459520, 3742) 'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.html.es', (740352, 654) 'render_taxonomies:output/es/categories/local.html', (30379520, 7574) 'render_tags:output/es/categories/spellcheck.xml', (280576, 882) -'render_taxonomies:output/es/2017/12/index.html', (30691328, 5442) -'render_taxonomies:output/es/categories/format.xml', (6801408, 975) +'render_taxonomies:output/es/2017/12/index.html', (39981568, 6572) +'render_taxonomies:output/es/categories/format.xml', (6801408, 987) 'render_archive:output/es/2013/09/index.html', (4652032, 2575) -'render_taxonomies:output/es/categories/pinned.xml', (6669312, 525) +'render_taxonomies:output/es/categories/pinned.xml', (6669312, 531) 'render_galleries:output/galleries/zenmode/pic2.thumbnail.png', (2147328, 270) 'render_taxonomies:output/es/categories/tutorials.html', (31868416, 7350) 'render_tags:output/categories/spellcheck.html', (4839424, 3803) 'render_taxonomies:output/categories/nbconvert.html', (30142976, 16057) 'render_tags:output/es/categories/git.html', (4253696, 6862) -'render_taxonomies:output/categories/mipyex.xml', (6107136, 3303) -'render_taxonomies:output/2013/12/index.html', (33214464, 10015) -'render_taxonomies:output/es/categories/talks.xml', (5101568, 1169) +'render_taxonomies:output/categories/mipyex.xml', (6107136, 3348) +'render_taxonomies:output/2013/12/index.html', (39835136, 11210) +'render_taxonomies:output/es/categories/talks.xml', (5101568, 1192) 'render_tags:output/categories/theme.xml', (1427456, 1422) 'render_pages:output/es/posts/rise-400b1-is-available-please-test-it.html', (33448448, 16656) -'render_posts:cache/posts/improving-viper-slideshows-styling.html', (2084352, 426) +'render_posts:cache/posts/improving-viper-slideshows-styling.html', (2084352, 432) 'render_tags:output/es/categories/gh-pages.html', (3747328, 5450) 'render_taxonomies:output/categories/conda.html', (35155456, 11097) -'render_taxonomies:output/es/2013/02/index.html', (31619072, 6426) -'render_taxonomies:output/categories/twitter.xml', (5718528, 889) -'render_taxonomies:output/categories/pinned.xml', (5836800, 525) -'render_taxonomies:output/es/2013/09/index.html', (33831424, 11319) -'copy_assets:output/assets/css/bitter.css', (119296, 280) -'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (2064384, 693) -'render_taxonomies:output/es/2017/11/index.html', (32467456, 5234) +'render_taxonomies:output/es/2013/02/index.html', (37799424, 7563) +'render_taxonomies:output/categories/twitter.xml', (5718528, 900) +'render_taxonomies:output/categories/pinned.xml', (5836800, 531) +'render_taxonomies:output/es/2013/09/index.html', (39280640, 12531) +'copy_assets:output/assets/css/bitter.css', (119296, 286) +'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html', (2064384, 705) +'render_taxonomies:output/es/2017/11/index.html', (37972480, 6366) 'render_galleries:output/galleries/spellchecker', (1595392, 145) 'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html.es', (841216, 736) 'render_tags:output/es/categories/magic.xml', (1384448, 821) -'render_taxonomies:output/es/2017/06/index.html', (31482880, 7036) -'render_galleries:output/galleries/zenmode/pic1.png', (2085376, 268) -'render_galleries:output/galleries/trades/index.html', (29280768, 18829) +'render_taxonomies:output/es/2017/06/index.html', (39586304, 8178) +'render_galleries:output/galleries/zenmode/pic1.png', (2085376, 275) +'render_galleries:output/galleries/trades/index.html', (37428736, 19905) 'generate_rss', (834560, 56) 'render_archive:output/es/2012/index.html', (4026368, 2560) 'copy_assets:output/assets/js/flowr.js', (29420032, 1081) @@ -1133,30 +1133,30 @@ 'render_tags:output/es/categories/threads.xml', (1014272, 784) 'render_galleries:output/es/galleries/twitter', (2386432, 145) 'render_taxonomies:output/es/categories/workflow.html', (35875840, 11270) -'render_galleries:output/galleries/Facu_RN/Facu4.png', (1595904, 270) +'render_galleries:output/galleries/Facu_RN/Facu4.png', (1595904, 278) 'render_tags:output/es/categories/zen.xml', (96768, 1951) 'render_tags:output/categories/trading.xml', (1619456, 1318) -'render_taxonomies:output/es/2013/04/index.html', (32202752, 6391) +'render_taxonomies:output/es/2013/04/index.html', (38359552, 7525) 'render_pages:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html', (34189312, 19328) 'render_pages:output/es/posts/rise-500-is-out.html', (32794112, 14207) 'render_posts:cache/posts/improving-viper-slideshows-styling.html.es', (94208, 585) -'render_taxonomies:output/2012/10/index.html', (32091136, 6291) +'render_taxonomies:output/2012/10/index.html', (38902272, 7422) 'render_taxonomies:output/categories/trading.html', (31718400, 8382) 'render_sources:output/es/posts/rise-meets-jupyterlab.ipynb', (8233472, 267) 'render_pages:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html', (31463424, 19401) 'render_pages:output/es/posts/under-the-sea-en-la-plata.html', (33428992, 19147) 'render_posts:cache/posts/slider-for-nbconvert.html.es', (1796608, 385) 'render_sources:output/posts/trading-logbook-update-22-nov-2013.ipynb', (586240, 293) -'render_taxonomies:output/es/categories/connectivity.xml', (6696448, 918) +'render_taxonomies:output/es/categories/connectivity.xml', (6696448, 929) 'render_taxonomies:output/es/categories/nbconvert.html', (31688704, 16057) -'render_taxonomies:output/2016/06/index.html', (30952448, 6208) -'copy_assets:output/assets/images/cream-dust.png', (486400, 294) +'render_taxonomies:output/2016/06/index.html', (39407616, 7339) +'copy_assets:output/assets/images/cream-dust.png', (486400, 299) 'render_tags:output/es/categories/jupyter.html', (3123712, 3922) -'render_taxonomies:output/2014/05/index.html', (33160192, 6343) +'render_taxonomies:output/2014/05/index.html', (39147520, 7480) 'render_posts:cache/posts/how-to-pin-the-conda.html.es', (2390016, 397) 'render_tags:output/categories/win.html', (4600320, 2594) 'render_sources:output/es/posts/one-line-deployment-of-your-site-to-gh-pages.ipynb', (757760, 313) -'copy_assets:output/assets/fonts/fontawesome-webfont.svg', (751104, 313) +'copy_assets:output/assets/fonts/fontawesome-webfont.svg', (751104, 318) 'render_pages:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html', (33046528, 12068) 'render_posts:cache/posts/ipython-plugin-for-nikola-updated.html.es', (43520, 589) 'render_posts:cache/posts/how-to-pin-conda.html.es', (2455552, 385) @@ -1171,181 +1171,181 @@ 'render_tags:output/es/categories/facundo.xml', (861184, 1041) 'render_posts:cache/posts/coming-back.html.es', (599040, 370) 'render_posts:cache/posts/we-are-above-1000-stars.html.es', (8946688, 405) -'render_galleries:output/es/galleries/trades/index.html', (29150208, 18829) -'copy_assets:output/assets/fonts/SHIcXhdd5RknatSgOzyEkA.woff', (1978368, 320) +'render_galleries:output/es/galleries/trades/index.html', (36958720, 19905) +'copy_assets:output/assets/fonts/SHIcXhdd5RknatSgOzyEkA.woff', (1978368, 326) 'render_tags:output/categories/facu.xml', (2166784, 501) 'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html.es', (860160, 745) 'render_pages:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb.html', (33385472, 19272) -'render_galleries:output/galleries/spellchecker/1.png', (1900544, 272) +'render_galleries:output/galleries/spellchecker/1.png', (1900544, 279) 'render_taxonomies:output/es/categories/flood.html', (30135296, 7364) 'render_tags:output/categories/first_post.xml', (44544, 644) 'render_archive:output/2016/06/index.html', (4607488, 2575) -'render_taxonomies:output/categories/nikola.xml', (35984896, 11797) +'render_taxonomies:output/categories/nikola.xml', (35984896, 11969) 'render_tags:output/es/categories/performance.xml', (628736, 1318) -'render_taxonomies:output/es/categories/minimap.xml', (6893056, 833) -'render_taxonomies:output/2018/02/index.html', (33539072, 4425) +'render_taxonomies:output/es/categories/minimap.xml', (6893056, 846) +'render_taxonomies:output/2018/02/index.html', (39577088, 5556) 'render_posts:cache/posts/rise-520-is-out.html.es', (17712640, 381) -'render_taxonomies:output/es/2018/02/index.html', (31828992, 4425) -'render_taxonomies:output/2018/index.html', (30090752, 4020) +'render_taxonomies:output/es/2018/02/index.html', (38749696, 5556) +'render_taxonomies:output/2018/index.html', (37652480, 4839) 'render_sources:output/es/posts/rise-520-is-out.ipynb', (18273792, 255) -'render_taxonomies:output/es/2018/index.html', (30110208, 4020) -'render_posts:cache/posts/rise-520-is-out.html', (19190784, 376) +'render_taxonomies:output/es/2018/index.html', (37403648, 4839) +'render_posts:cache/posts/rise-520-is-out.html', (19190784, 382) 'render_sources:output/posts/rise-520-is-out.ipynb', (19578880, 255) 'render_pages:output/es/posts/rise-520-is-out.html', (33933312, 9897) 'render_pages:output/posts/rise-520-is-out.html', (32854016, 9897) 'render_galleries:output/es/galleries/binder', (19765248, 145) 'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html.es', (19836416, 558) 'render_sources:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.ipynb', (19900416, 373) -'render_taxonomies:output/2018/05/index.html', (32422400, 5100) +'render_taxonomies:output/2018/05/index.html', (40080384, 6237) 'render_sources:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.ipynb', (19943936, 373) -'render_taxonomies:output/es/2018/05/index.html', (30327808, 5100) +'render_taxonomies:output/es/2018/05/index.html', (40236544, 6237) 'render_pages:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (33785856, 10193) -'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (20119040, 553) +'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (20119040, 559) 'render_pages:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html', (33068544, 10193) 'render_sources:output/posts/rise-530-is-out.ipynb', (20334080, 255) -'render_posts:cache/posts/rise-530-is-out.html', (20388864, 376) +'render_posts:cache/posts/rise-530-is-out.html', (20388864, 382) 'render_posts:cache/posts/rise-530-is-out.html.es', (20556288, 382) 'render_pages:output/es/posts/rise-530-is-out.html', (30922240, 9898) 'render_sources:output/es/posts/rise-530-is-out.ipynb', (20726784, 255) 'render_pages:output/posts/rise-530-is-out.html', (33312768, 9898) -'render_galleries:output/galleries/acm/rss.xml', (29627392, 9441) -'render_galleries:output/es/galleries/acm/rss.xml', (30001152, 9441) -'render_galleries:output/es/galleries/acm/index.html', (29511168, 9406) -'render_galleries:output/galleries/acm/2.jpg', (20792320, 254) +'render_galleries:output/galleries/acm/rss.xml', (37493248, 10244) +'render_galleries:output/es/galleries/acm/rss.xml', (36785664, 10244) +'render_galleries:output/es/galleries/acm/index.html', (37013504, 10472) +'render_galleries:output/galleries/acm/2.jpg', (20792320, 262) 'render_galleries:output/es/galleries/acm', (20792832, 145) -'render_galleries:output/galleries/acm/index.html', (29832704, 9406) -'render_galleries:output/galleries/acm/1.jpg', (20798464, 255) +'render_galleries:output/galleries/acm/index.html', (37111808, 10472) +'render_galleries:output/galleries/acm/1.jpg', (20798464, 262) 'render_galleries:output/galleries/acm/2.thumbnail.jpg', (20798976, 256) 'render_galleries:output/galleries/acm/1.thumbnail.jpg', (20913152, 257) 'render_galleries:output/galleries/acm', (20913664, 145) 'render_sources:output/posts/rise-541-is-out.ipynb', (20950528, 255) -'render_posts:cache/posts/rise-541-is-out.html', (21061120, 376) +'render_posts:cache/posts/rise-541-is-out.html', (21061120, 382) 'render_pages:output/posts/rise-541-is-out.html', (30661632, 9898) 'render_pages:output/es/posts/rise-541-is-out.html', (31766016, 9898) -'render_taxonomies:output/2018/08/index.html', (32274944, 4426) -'render_taxonomies:output/es/2018/08/index.html', (31378432, 4426) +'render_taxonomies:output/2018/08/index.html', (37920256, 5556) +'render_taxonomies:output/es/2018/08/index.html', (39126016, 5556) 'render_sources:output/es/posts/rise-541-is-out.ipynb', (21248000, 255) 'render_posts:cache/posts/rise-541-is-out.html.es', (21297152, 382) 'render_taxonomies:output/es/categories/shodan.html', (30959104, 5605) -'render_taxonomies:output/es/categories/cordobaaikikai.xml', (21901824, 1055) +'render_taxonomies:output/es/categories/cordobaaikikai.xml', (21901824, 1065) 'render_pages:output/posts/my-aikido-shodan-test.html', (32231936, 9928) -'render_posts:cache/posts/my-aikido-shodan-test.html', (21384704, 394) +'render_posts:cache/posts/my-aikido-shodan-test.html', (21384704, 400) 'render_taxonomies:output/es/categories/cordobaaikikai.html', (33491456, 5605) 'render_taxonomies:output/categories/asaikido.html', (31071744, 5314) -'render_taxonomies:output/categories/asaikido.xml', (21425152, 764) +'render_taxonomies:output/categories/asaikido.xml', (21425152, 770) 'render_taxonomies:output/categories/shodan.html', (34369024, 5314) -'render_taxonomies:output/2018/09/index.html', (30491136, 4669) -'render_taxonomies:output/es/categories/shodan.xml', (21903360, 1055) -'render_taxonomies:output/categories/cordobaaikikai.xml', (21505024, 764) +'render_taxonomies:output/2018/09/index.html', (37925888, 5800) +'render_taxonomies:output/es/categories/shodan.xml', (21903360, 1065) +'render_taxonomies:output/categories/cordobaaikikai.xml', (21505024, 770) 'render_sources:output/es/posts/my-aikido-shodan-test.ipynb', (21506048, 478) -'render_taxonomies:output/es/2018/09/index.html', (32390656, 4960) +'render_taxonomies:output/es/2018/09/index.html', (37891584, 6095) 'render_taxonomies:output/es/categories/asaikido.html', (30159360, 5605) 'render_taxonomies:output/categories/cordobaaikikai.html', (31712768, 5314) 'render_sources:output/posts/my-aikido-shodan-test.ipynb', (21591552, 267) 'render_posts:cache/posts/my-aikido-shodan-test.html.es', (21934080, 544) 'render_pages:output/es/posts/my-aikido-shodan-test.html', (33323008, 10432) -'render_taxonomies:output/es/categories/asaikido.xml', (21914624, 1055) -'render_taxonomies:output/categories/shodan.xml', (21638656, 764) +'render_taxonomies:output/es/categories/asaikido.xml', (21914624, 1065) +'render_taxonomies:output/categories/shodan.xml', (21638656, 770) 'render_sources:output/es/posts/mi-examen-de-aikido-para-1er-dan.ipynb', (21639680, 279) 'render_sources:output/posts/mi-examen-de-aikido-para-1er-dan.ipynb', (21643264, 279) 'render_posts:cache/posts/my-aikido-shodan-test.es.html.es', (21836800, 409) -'render_posts:cache/posts/my-aikido-shodan-test.es.html', (21936640, 532) +'render_posts:cache/posts/my-aikido-shodan-test.es.html', (21936640, 543) 'render_pages:output/es/posts/mi-examen-de-aikido-para-1er-dan.html', (21890560, 5527) 'render_pages:output/posts/mi-examen-de-aikido-para-1er-dan.html', (21896192, 5527) -'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html', (21935104, 633) -'render_posts:cache/posts/slider-for-nbconvert.es.html', (21936128, 385) -'render_posts:cache/posts/rise-500-is-out.es.html', (21937664, 376) -'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html', (21938176, 553) -'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html', (21939200, 593) -'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html', (21940224, 683) -'render_posts:cache/posts/48-themes-for-your-ipython-notebook.es.html', (21941248, 594) -'render_posts:cache/posts/make-your-slides-with-ipython.es.html', (21942272, 563) -'render_posts:cache/posts/improving-viper-slideshows-styling.es.html', (22167552, 585) -'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html', (21943808, 673) -'render_posts:cache/posts/we-are-above-1000-stars.es.html', (21944832, 400) -'render_posts:cache/posts/trading-logbook-update-22-nov-2013.es.html', (21945344, 588) -'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html', (21946368, 649) -'render_posts:cache/posts/scipycon-argentina-2013.es.html', (21947392, 533) -'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html', (21948416, 733) -'render_posts:cache/posts/live-trading-logbook.es.html', (21949440, 518) -'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html', (21950464, 500) -'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.es.html', (21950976, 643) -'render_posts:cache/posts/rise-510-is-out.es.html', (21952000, 376) -'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html', (21952512, 728) -'render_posts:cache/posts/zen-themes-updated.es.html', (21953536, 509) -'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html', (21954560, 693) -'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html', (21955584, 643) -'render_posts:cache/posts/coming-back.es.html', (21956608, 364) -'render_posts:cache/posts/rise-520-is-out.es.html', (21957120, 376) -'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html', (21957632, 633) -'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html', (21958656, 673) -'render_posts:cache/posts/reveal_converter-mini-tutorial.es.html', (21959680, 568) -'render_posts:cache/posts/how-to-pin-conda.es.html', (21960704, 379) -'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html', (21961216, 663) -'render_posts:cache/posts/pyconar-2013.es.html', (21962240, 478) -'render_posts:cache/posts/rise-400b1-is-available-please-test-it.es.html', (21962752, 445) -'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.es.html', (21963264, 593) -'render_posts:cache/posts/ipython-plugin-for-nikola-updated.es.html', (21964288, 583) -'render_posts:cache/posts/rise-meets-jupyterlab.es.html', (21965312, 394) -'render_posts:cache/posts/rise-530-is-out.es.html', (21965824, 376) -'render_posts:cache/posts/trading-logbook-update-3.es.html', (21966336, 403) -'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html', (21966848, 743) -'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html', (21967872, 724) -'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.es.html', (21968896, 618) -'render_posts:cache/posts/nikolas-zen-theme-finally-released.es.html', (21969920, 588) -'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.es.html', (21970944, 623) -'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html', (21971968, 638) -'render_posts:cache/posts/facundo.es.html', (21972992, 346) -'render_posts:cache/posts/blogging-with-nikola-and-ipython.es.html', (21973504, 579) -'render_posts:cache/posts/customizing-your-ipython-slides.es.html', (21974528, 573) -'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.es.html', (21975552, 619) -'render_posts:cache/posts/rise-541-is-out.es.html', (21976576, 376) -'render_posts:cache/posts/under-the-sea-en-la-plata.es.html', (21977088, 543) -'render_posts:cache/posts/powered-by-nikola.es.html', (22462464, 748) -'render_posts:cache/posts/viper.es.html', (22168576, 638) -'render_posts:cache/posts/hello-world-again.es.html', (22284288, 748) +'render_posts:cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html', (21935104, 645) +'render_posts:cache/posts/slider-for-nbconvert.es.html', (21936128, 390) +'render_posts:cache/posts/rise-500-is-out.es.html', (21937664, 382) +'render_posts:cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html', (21938176, 559) +'render_posts:cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html', (21939200, 605) +'render_posts:cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html', (21940224, 695) +'render_posts:cache/posts/48-themes-for-your-ipython-notebook.es.html', (21941248, 605) +'render_posts:cache/posts/make-your-slides-with-ipython.es.html', (21942272, 575) +'render_posts:cache/posts/improving-viper-slideshows-styling.es.html', (22167552, 597) +'render_posts:cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html', (21943808, 685) +'render_posts:cache/posts/we-are-above-1000-stars.es.html', (21944832, 406) +'render_posts:cache/posts/trading-logbook-update-22-nov-2013.es.html', (21945344, 600) +'render_posts:cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html', (21946368, 660) +'render_posts:cache/posts/scipycon-argentina-2013.es.html', (21947392, 545) +'render_posts:cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html', (21948416, 745) +'render_posts:cache/posts/live-trading-logbook.es.html', (21949440, 530) +'render_posts:cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html', (21950464, 506) +'render_posts:cache/posts/different-ways-to-lead-an-open-source-project.es.html', (21950976, 654) +'render_posts:cache/posts/rise-510-is-out.es.html', (21952000, 382) +'render_posts:cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html', (21952512, 740) +'render_posts:cache/posts/zen-themes-updated.es.html', (37756416, 520) +'render_posts:cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html', (21954560, 705) +'render_posts:cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html', (21955584, 655) +'render_posts:cache/posts/coming-back.es.html', (21956608, 369) +'render_posts:cache/posts/rise-520-is-out.es.html', (21957120, 382) +'render_posts:cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html', (21957632, 645) +'render_posts:cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html', (21958656, 684) +'render_posts:cache/posts/reveal_converter-mini-tutorial.es.html', (21959680, 580) +'render_posts:cache/posts/how-to-pin-conda.es.html', (21960704, 384) +'render_posts:cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html', (21961216, 674) +'render_posts:cache/posts/pyconar-2013.es.html', (21962240, 490) +'render_posts:cache/posts/rise-400b1-is-available-please-test-it.es.html', (21962752, 451) +'render_posts:cache/posts/viper-is-now-using-ipythonnbconvert.es.html', (21963264, 604) +'render_posts:cache/posts/ipython-plugin-for-nikola-updated.es.html', (21964288, 595) +'render_posts:cache/posts/rise-meets-jupyterlab.es.html', (21965312, 400) +'render_posts:cache/posts/rise-530-is-out.es.html', (21965824, 382) +'render_posts:cache/posts/trading-logbook-update-3.es.html', (21966336, 408) +'render_posts:cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html', (21966848, 754) +'render_posts:cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html', (21967872, 735) +'render_posts:cache/posts/teasers-with-the-ipython-notebook-plugin.es.html', (21968896, 630) +'render_posts:cache/posts/nikolas-zen-theme-finally-released.es.html', (21969920, 598) +'render_posts:cache/posts/mimic-the-ipython-notebook-cell-execution.es.html', (21970944, 635) +'render_posts:cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html', (21971968, 650) +'render_posts:cache/posts/facundo.es.html', (21972992, 352) +'render_posts:cache/posts/blogging-with-nikola-and-ipython.es.html', (21973504, 591) +'render_posts:cache/posts/customizing-your-ipython-slides.es.html', (21974528, 584) +'render_posts:cache/posts/dont-write-scripts-just-write-ipyscripts.es.html', (21975552, 631) +'render_posts:cache/posts/rise-541-is-out.es.html', (21976576, 382) +'render_posts:cache/posts/under-the-sea-en-la-plata.es.html', (21977088, 553) +'render_posts:cache/posts/powered-by-nikola.es.html', (22462464, 772) +'render_posts:cache/posts/viper.es.html', (22168576, 660) +'render_posts:cache/posts/hello-world-again.es.html', (22284288, 772) 'render_posts:cache/stories/about-me.es.html', (28995584, 542) -'render_posts:cache/posts/beginning.es.html', (22490624, 674) -'render_posts:cache/posts/a-simple-overview-of-viper.es.html', (21981184, 829) -'render_posts:cache/posts/paraguay.es.html', (22463488, 665) +'render_posts:cache/posts/beginning.es.html', (22490624, 695) +'render_posts:cache/posts/a-simple-overview-of-viper.es.html', (21981184, 853) +'render_posts:cache/posts/paraguay.es.html', (22463488, 689) 'render_pages:output/posts/abandoning-the-oquanta-domain-name.html', (32117248, 9993) -'render_taxonomies:output/2019/index.html', (30064640, 4020) +'render_taxonomies:output/2019/index.html', (37662208, 4839) 'render_pages:output/es/posts/abandoning-the-oquanta-domain-name.html', (33036288, 9993) -'render_taxonomies:output/es/2019/01/index.html', (32386048, 4521) -'render_taxonomies:output/2019/01/index.html', (33854464, 4521) -'render_posts:cache/posts/abandoning-the-oquanta-domain-name.html', (22688256, 433) +'render_taxonomies:output/es/2019/01/index.html', (39319552, 5651) +'render_taxonomies:output/2019/01/index.html', (38646784, 5651) +'render_posts:cache/posts/abandoning-the-oquanta-domain-name.html', (22688256, 438) 'render_sources:output/es/posts/abandoning-the-oquanta-domain-name.ipynb', (22774784, 293) -'render_taxonomies:output/es/2019/index.html', (30038528, 4020) -'render_posts:cache/posts/abandoning-the-oquanta-domain-name.es.html', (22819328, 433) +'render_taxonomies:output/es/2019/index.html', (37704704, 4839) +'render_posts:cache/posts/abandoning-the-oquanta-domain-name.es.html', (22819328, 438) 'render_sources:output/posts/abandoning-the-oquanta-domain-name.ipynb', (22819840, 293) 'render_pages:output/es/posts/rise-550-is-out.html', (30643712, 7526) -'render_posts:cache/posts/rise-550-is-out.html', (27496448, 376) +'render_posts:cache/posts/rise-550-is-out.html', (27496448, 382) 'render_sources:output/es/posts/rise-550-is-out.ipynb', (27496960, 255) -'render_taxonomies:output/2019/04/index.html', (32516096, 3446) +'render_taxonomies:output/2019/04/index.html', (38248448, 4577) 'render_sources:output/posts/rise-550-is-out.ipynb', (27509248, 255) -'render_taxonomies:output/es/2019/04/index.html', (31459840, 3446) -'render_posts:cache/posts/rise-550-is-out.es.html', (27813888, 376) +'render_taxonomies:output/es/2019/04/index.html', (38263808, 4577) +'render_posts:cache/posts/rise-550-is-out.es.html', (27813888, 382) 'render_pages:output/posts/rise-550-is-out.html', (31840256, 7526) 'render_pages:output/posts/rise-560-is-out.html', (31557120, 7532) -'render_taxonomies:output/2019/11/index.html', (30658048, 3452) -'render_galleries:output/galleries/rise/dark_slides.png', (28114432, 275) -'render_taxonomies:output/es/2019/11/index.html', (30620672, 3452) -'render_posts:cache/posts/rise-560-is-out.es.html', (28219392, 381) +'render_taxonomies:output/2019/11/index.html', (38222848, 4578) +'render_galleries:output/galleries/rise/dark_slides.png', (28114432, 283) +'render_taxonomies:output/es/2019/11/index.html', (38631936, 4578) +'render_posts:cache/posts/rise-560-is-out.es.html', (28219392, 382) 'render_sources:output/es/posts/rise-560-is-out.ipynb', (28238848, 260) 'render_sources:output/posts/rise-560-is-out.ipynb', (28264960, 260) 'render_pages:output/es/posts/rise-560-is-out.html', (32538112, 7532) -'render_posts:cache/posts/rise-560-is-out.html', (28290560, 381) +'render_posts:cache/posts/rise-560-is-out.html', (28290560, 382) 'render_galleries:output/galleries/rise/dark_slides.thumbnail.png', (28302848, 277) -'render_taxonomies:output/es/index-6.html', (35846144, 9215) +'render_taxonomies:output/es/index-6.html', (38227456, 9430) 'render_sources:output/posts/rise-561-is-out.ipynb', (28608512, 260) -'render_posts:cache/posts/rise-561-is-out.html', (28628992, 381) -'render_taxonomies:output/2020/02/index.html', (30339584, 3451) -'render_taxonomies:output/es/2020/02/index.html', (34243584, 3451) -'render_posts:cache/posts/rise-561-is-out.es.html', (28700672, 381) +'render_posts:cache/posts/rise-561-is-out.html', (28628992, 382) +'render_taxonomies:output/2020/02/index.html', (38482944, 4578) +'render_taxonomies:output/es/2020/02/index.html', (38696448, 4578) +'render_posts:cache/posts/rise-561-is-out.es.html', (28700672, 382) 'render_pages:output/es/posts/rise-561-is-out.html', (34235904, 7531) -'render_taxonomies:output/index-6.html', (35672576, 9215) -'render_taxonomies:output/2020/index.html', (30094848, 3046) -'render_taxonomies:output/es/2020/index.html', (30035456, 3046) +'render_taxonomies:output/index-6.html', (39509504, 9430) +'render_taxonomies:output/2020/index.html', (37087232, 3865) +'render_taxonomies:output/es/2020/index.html', (37657600, 3865) 'render_sources:output/es/posts/rise-561-is-out.ipynb', (28784640, 260) 'render_pages:output/posts/rise-561-is-out.html', (33859072, 7531) 'render_sources:output/es/stories/about-me.ipynb', (28994560, 335) @@ -1356,20 +1356,17 @@ 'render_sources:output/es/stories/support-me.ipynb', (29026816, 341) 'render_sources:output/stories/support-me.ipynb', (29027328, 341) 'render_posts:cache/stories/support-me.html', (29027840, 373) -'render_posts:cache/stories/Support me.es.html', (29028352, 367) -'render_posts:cache/stories/Support me.html', (29028864, 367) -'render_posts:cache/stories/About me.es.html', (29064192, 361) -'render_posts:cache/stories/About me.html', (29082624, 361) -'render_posts:cache/posts/nikola-nbconvert.html', (30114816, 516) -'render_posts:cache/posts/nikola-nbconvert.es.html', (34392576, 645) -'render_galleries:output/galleries/rise/commission.png', (34481152, 272) +'render_posts:cache/stories/Support me.es.html', (29028352, 372) +'render_posts:cache/stories/About me.es.html', (29064192, 367) +'render_posts:cache/stories/About me.html', (29082624, 367) +'render_galleries:output/galleries/rise/commission.png', (34481152, 280) 'render_posts:cache/posts/supporting-rise.es.html', (34481664, 382) 'render_galleries:output/galleries/rise/commission.thumbnail.png', (34496512, 274) 'render_pages:output/posts/supporting-rise.html', (34502656, 5270) 'render_pages:output/es/posts/supporting-rise.html', (34519040, 5270) 'render_sources:output/posts/supporting-rise.ipynb', (34524672, 261) 'render_posts:cache/posts/supporting-rise.html', (34660352, 382) -'render_taxonomies:output/es/2020/04/index.html', (34660864, 2519) +'render_taxonomies:output/es/2020/04/index.html', (38792704, 3644) 'render_taxonomies:output/es/categories/kofi.html', (34693632, 2809) 'render_taxonomies:output/categories/kofi.xml', (34696704, 527) 'render_taxonomies:output/categories/support.xml', (34697728, 527) @@ -1378,41 +1375,465 @@ 'render_taxonomies:output/categories/support.html', (34811392, 2809) 'render_taxonomies:output/es/categories/support.html', (34814464, 2809) 'render_taxonomies:output/categories/kofi.html', (34859008, 2809) -'render_taxonomies:output/2020/04/index.html', (34905600, 2519) +'render_taxonomies:output/2020/04/index.html', (37904896, 3644) 'render_taxonomies:output/es/categories/kofi.xml', (34918400, 527) 'render_pages:output/posts/rise-571-is-out.html', (35000832, 5270) -'render_taxonomies:output/es/2020/10/index.html', (35006464, 2519) +'render_taxonomies:output/es/2020/10/index.html', (39748608, 3644) 'render_posts:cache/posts/rise-571-is-out.html', (35009024, 382) 'render_posts:cache/posts/rise-571-is-out.es.html', (35009536, 382) 'render_sources:output/posts/rise-571-is-out.ipynb', (35010048, 261) 'render_pages:output/es/posts/rise-571-is-out.html', (35058688, 5270) 'render_sources:output/es/posts/rise-571-is-out.ipynb', (35208704, 261) -'render_taxonomies:output/2020/10/index.html', (35209216, 2519) -'render_taxonomies:output/es/2021/index.html', (35454464, 2117) -'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35464704, 551) -'render_taxonomies:output/2021/08/index.html', (36204032, 3433) +'render_taxonomies:output/2020/10/index.html', (40200192, 3644) +'render_taxonomies:output/es/2021/index.html', (36955648, 2936) +'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35464704, 550) +'render_taxonomies:output/2021/08/index.html', (39201280, 4556) 'render_pages:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35508224, 5552) 'render_taxonomies:output/es/categories/myst.html', (36111360, 3723) -'render_taxonomies:output/2021/index.html', (35530240, 2117) -'render_taxonomies:output/es/categories/myst.xml', (36106240, 1441) +'render_taxonomies:output/2021/index.html', (37334528, 2936) +'render_taxonomies:output/es/categories/myst.xml', (36106240, 1439) 'render_taxonomies:output/categories/myst.html', (36189184, 3723) -'render_taxonomies:output/categories/myst.xml', (35997184, 1441) -'render_taxonomies:output/es/2021/08/index.html', (36483584, 3433) +'render_taxonomies:output/categories/myst.xml', (35997184, 1439) +'render_taxonomies:output/es/2021/08/index.html', (39079424, 4556) 'render_sources:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.ipynb', (35855360, 374) -'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html', (35855872, 551) +'render_posts:cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html', (35855872, 550) 'render_sources:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.ipynb', (35856896, 374) 'render_pages:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html', (35887616, 5552) -'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html', (35983872, 530) -'render_taxonomies:output/es/categories/docutils.xml', (36080128, 774) +'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html', (35983872, 529) +'render_taxonomies:output/es/categories/docutils.xml', (36080128, 773) 'render_sources:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.ipynb', (36081152, 360) -'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (36081664, 530) 'render_taxonomies:output/categories/docutils.html', (36115456, 3056) 'render_taxonomies:output/categories/sphinx.html', (36185088, 3056) -'render_taxonomies:output/categories/docutils.xml', (36188160, 774) +'render_taxonomies:output/categories/docutils.xml', (36188160, 773) 'render_sources:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.ipynb', (36193280, 360) 'render_taxonomies:output/es/categories/sphinx.html', (36292096, 3056) -'render_taxonomies:output/es/categories/sphinx.xml', (36416000, 774) -'render_taxonomies:output/categories/sphinx.xml', (36417024, 774) +'render_taxonomies:output/es/categories/sphinx.xml', (36416000, 773) +'render_taxonomies:output/categories/sphinx.xml', (36417024, 773) 'render_taxonomies:output/es/categories/docutils.html', (36460032, 3056) 'render_pages:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (36463104, 5517) 'render_pages:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (36487168, 5517) +'render_sources:output/posts/rise-571-is-out/index.ipynb', (36577280, 261) +'render_sources:output/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.ipynb', (36577792, 341) +'render_sources:output/posts/viper/index.txt', (36578304, 236) +'render_sources:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.ipynb', (36578816, 379) +'render_sources:output/es/posts/trading-logbook-update-3/index.ipynb', (36579328, 278) +'render_sources:output/es/posts/pyconar-2013/index.ipynb', (36579840, 255) +'render_sources:output/posts/hide-the-input-cells-from-your-ipython-slides/index.ipynb', (36580352, 321) +'render_sources:output/posts/ipython-plugin-for-nikola-updated/index.ipynb', (36580864, 297) +'render_sources:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.ipynb', (36581376, 355) +'render_sources:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.ipynb', (36581888, 373) +'render_sources:output/es/posts/my-ipython-powered-semi-automatic-git-workflow/index.ipynb', (36582400, 323) +'render_sources:output/es/posts/scipycon-argentina-2013/index.ipynb', (36582912, 277) +'render_sources:output/posts/my-ipython-powered-semi-automatic-git-workflow/index.ipynb', (36583424, 323) +'render_sources:output/es/posts/beginning/index.txt', (36583936, 249) +'render_sources:output/posts/make-your-slides-with-ipython/index.ipynb', (36584448, 289) +'render_sources:output/posts/rise-550-is-out/index.ipynb', (36584960, 261) +'render_sources:output/stories/support-me/index.ipynb', (36585472, 254) +'render_sources:output/es/posts/rise-meets-jupyterlab/index.ipynb', (36585984, 273) +'render_sources:output/es/posts/make-your-slides-with-ipython/index.ipynb', (36586496, 289) +'render_sources:output/posts/dont-write-scripts-just-write-ipyscripts/index.ipynb', (36587008, 312) +'render_sources:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.ipynb', (36587520, 333) +'render_sources:output/posts/facundo/index.txt', (36588032, 241) +'render_sources:output/es/posts/trading-logbook-update-22-nov-2013/index.ipynb', (36588544, 299) +'render_sources:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.ipynb', (36589056, 341) +'render_sources:output/es/posts/rise-560-is-out/index.ipynb', (36589568, 261) +'render_sources:output/posts/pyconar-2013/index.ipynb', (36590080, 255) +'render_sources:output/es/posts/48-themes-for-your-ipython-notebook/index.ipynb', (36590592, 301) +'render_sources:output/es/posts/rise-550-is-out/index.ipynb', (36591104, 261) +'render_sources:output/es/posts/under-the-sea-en-la-plata/index.ipynb', (36591616, 281) +'render_sources:output/posts/different-ways-to-lead-an-open-source-project/index.ipynb', (36592128, 321) +'render_sources:output/posts/rise-400b1-is-available-please-test-it/index.ipynb', (36592640, 307) +'render_sources:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.ipynb', (36593152, 317) +'render_sources:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.ipynb', (36593664, 359) +'render_sources:output/posts/nikola-nbconvert/index.txt', (36594176, 257) +'render_sources:output/es/posts/supporting-rise/index.ipynb', (36594688, 261) +'render_sources:output/es/posts/we-are-above-1000-stars/index.ipynb', (36595200, 277) +'render_sources:output/es/posts/dont-write-scripts-just-write-ipyscripts/index.ipynb', (36595712, 312) +'render_sources:output/posts/trading-logbook-update-3/index.ipynb', (36596224, 278) +'render_sources:output/es/posts/mimic-the-ipython-notebook-cell-execution/index.ipynb', (36596736, 313) +'render_sources:output/es/posts/slider-for-nbconvert/index.txt', (36597248, 266) +'render_sources:output/es/posts/rise-541-is-out/index.ipynb', (36597760, 261) +'render_sources:output/posts/reveal-converter-mini-tutorial/index.ipynb', (36598272, 291) +'render_sources:output/posts/customizing-your-ipython-slides/index.ipynb', (36598784, 292) +'render_sources:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.ipynb', (36599296, 360) +'render_sources:output/posts/abandoning-the-oquanta-domain-name/index.ipynb', (36599808, 298) +'render_sources:output/posts/rise-510-is-out/index.ipynb', (36600320, 261) +'render_sources:output/posts/improving-viper-slideshows-styling/index.txt', (36600832, 294) +'render_sources:output/es/posts/hide-the-input-cells-from-your-ipython-slides/index.ipynb', (36601344, 321) +'render_sources:output/posts/paraguay/index.txt', (36601856, 242) +'render_sources:output/es/posts/rise-530-is-out/index.ipynb', (36602368, 261) +'render_sources:output/es/posts/abandoning-the-oquanta-domain-name/index.ipynb', (36602880, 298) +'render_sources:output/es/posts/rise-500-is-out/index.ipynb', (36603392, 261) +'render_sources:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.ipynb', (36603904, 357) +'render_sources:output/es/posts/rise-571-is-out/index.ipynb', (36604416, 261) +'render_sources:output/es/posts/a-new-nikolas-theme-for-my-site-zen/index.ipynb', (36604928, 301) +'render_sources:output/posts/beginning/index.txt', (36605440, 243) +'render_sources:output/posts/zen-mode-extension-for-the-ipython-notebook/index.ipynb', (36605952, 317) +'render_sources:output/es/posts/viper/index.txt', (36606464, 241) +'render_sources:output/es/posts/blogging-with-nikola-and-ipython/index.ipynb', (36606976, 296) +'render_sources:output/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.ipynb', (36607488, 360) +'render_sources:output/posts/live-trading-logbook/index.ipynb', (36608000, 271) +'render_sources:output/es/posts/rise-400b1-is-available-please-test-it/index.ipynb', (36608512, 307) +'render_sources:output/es/posts/viper-is-now-using-ipythonnbconvert/index.ipynb', (36609024, 300) +'render_sources:output/posts/mimic-the-ipython-notebook-cell-execution/index.ipynb', (36609536, 313) +'render_sources:output/posts/scipycon-argentina-2013/index.ipynb', (36610048, 277) +'render_sources:output/posts/how-to-pin-conda/index.ipynb', (36610560, 262) +'render_sources:output/es/posts/nikolas-zen-theme-finally-released/index.ipynb', (36611072, 298) +'render_sources:output/posts/a-new-nikolas-theme-for-my-site-zen/index.ipynb', (36611584, 301) +'render_sources:output/es/posts/my-aikido-shodan-test/index.ipynb', (36612096, 278) +'render_sources:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.ipynb', (36612608, 373) +'render_sources:output/es/posts/facundo/index.txt', (36613120, 241) +'render_sources:output/es/posts/teasers-with-the-ipython-notebook-plugin/index.ipynb', (36613632, 311) +'render_sources:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.ipynb', (36614144, 354) +'render_sources:output/posts/rise-530-is-out/index.ipynb', (36614656, 261) +'render_sources:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.ipynb', (36615168, 328) +'render_sources:output/posts/slider-for-nbconvert/index.txt', (36615680, 266) +'render_sources:output/es/posts/a-simple-overview-of-viper/index.txt', (36616192, 284) +'render_sources:output/es/posts/improving-viper-slideshows-styling/index.txt', (36616704, 300) +'render_sources:output/posts/teasers-with-the-ipython-notebook-plugin/index.ipynb', (36617216, 311) +'render_sources:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.ipynb', (36617728, 354) +'render_sources:output/posts/viper-is-now-using-ipythonnbconvert/index.ipynb', (36618240, 300) +'render_sources:output/posts/a-simple-overview-of-viper/index.txt', (36618752, 278) +'render_sources:output/es/posts/ipython-plugin-for-nikola-updated/index.ipynb', (36619264, 297) +'render_sources:output/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.ipynb', (36619776, 317) +'render_sources:output/posts/rise-541-is-out/index.ipynb', (36620288, 261) +'render_sources:output/es/posts/different-ways-to-lead-an-open-source-project/index.ipynb', (36620800, 321) +'render_sources:output/posts/powered-by-nikola/index.txt', (36621312, 260) +'render_sources:output/es/posts/how-to-pin-conda/index.ipynb', (36621824, 262) +'render_sources:output/es/posts/zen-themes-updated/index.ipynb', (36622336, 267) +'render_sources:output/es/stories/support-me/index.ipynb', (36622848, 254) +'render_sources:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.ipynb', (36623360, 333) +'render_sources:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.ipynb', (36623872, 344) +'render_sources:output/es/posts/powered-by-nikola/index.txt', (36624384, 266) +'render_sources:output/es/posts/paraguay/index.txt', (36624896, 248) +'render_sources:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.ipynb', (36625408, 359) +'render_sources:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.ipynb', (36625920, 332) +'render_sources:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.ipynb', (36626432, 355) +'render_sources:output/es/posts/one-line-deployment-of-your-site-to-gh-pages/index.ipynb', (36626944, 319) +'render_sources:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.ipynb', (36627456, 337) +'render_sources:output/es/stories/about-me/index.ipynb', (36627968, 251) +'render_sources:output/posts/48-themes-for-your-ipython-notebook/index.ipynb', (36628480, 301) +'render_sources:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.ipynb', (36628992, 357) +'render_sources:output/posts/one-line-deployment-of-your-site-to-gh-pages/index.ipynb', (36629504, 319) +'render_sources:output/es/posts/rise-520-is-out/index.ipynb', (36630016, 261) +'render_sources:output/es/posts/zen-mode-extension-for-the-ipython-notebook/index.ipynb', (36630528, 317) +'render_sources:output/posts/rise-560-is-out/index.ipynb', (36631040, 261) +'render_sources:output/posts/rise-561-is-out/index.ipynb', (36631552, 261) +'render_sources:output/posts/hello-world-again/index.txt', (36632064, 260) +'render_sources:output/es/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.ipynb', (36632576, 344) +'render_sources:output/posts/we-are-above-1000-stars/index.ipynb', (36633088, 277) +'render_sources:output/es/posts/hello-world-again/index.txt', (36633600, 266) +'render_sources:output/posts/blogging-with-nikola-and-ipython/index.ipynb', (36634112, 296) +'render_sources:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.ipynb', (36634624, 379) +'render_sources:output/posts/supporting-rise/index.ipynb', (36635136, 261) +'render_sources:output/es/posts/nikola-nbconvert/index.txt', (36635648, 264) +'render_sources:output/posts/nikolas-zen-theme-finally-released/index.ipynb', (36636160, 298) +'render_sources:output/posts/rise-520-is-out/index.ipynb', (36636672, 261) +'render_sources:output/posts/trading-logbook-update-22-nov-2013/index.ipynb', (36637184, 299) +'render_sources:output/es/posts/rise-510-is-out/index.ipynb', (36637696, 261) +'render_sources:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.ipynb', (36638208, 328) +'render_sources:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.ipynb', (36638720, 337) +'render_sources:output/es/posts/rise-561-is-out/index.ipynb', (36639232, 261) +'render_sources:output/es/posts/reveal-converter-mini-tutorial/index.ipynb', (36639744, 291) +'render_sources:output/posts/rise-meets-jupyterlab/index.ipynb', (36640256, 273) +'render_sources:output/stories/about-me/index.ipynb', (36640768, 251) +'render_sources:output/es/posts/live-trading-logbook/index.ipynb', (36641280, 271) +'render_sources:output/posts/under-the-sea-en-la-plata/index.ipynb', (36641792, 281) +'render_sources:output/posts/rise-500-is-out/index.ipynb', (36642304, 261) +'render_sources:output/posts/zen-themes-updated/index.ipynb', (36642816, 267) +'render_sources:output/posts/my-aikido-shodan-test/index.ipynb', (36643328, 273) +'render_sources:output/es/posts/customizing-your-ipython-slides/index.ipynb', (36643840, 292) +'render_sources:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.ipynb', (36644352, 332) +'render_sources:output/es/posts/coming-back/index.ipynb', (36644864, 252) +'render_sources:output/posts/coming-back/index.ipynb', (36645376, 252) +'copy_assets:output/assets/js/justified-layout.min.js', (36816896, 454) +'copy_assets:output/assets/css/rst_base.css', (37064704, 434) +'copy_assets:output/assets/js/luxon.min.js', (37091328, 431) +'copy_assets:output/assets/js/fancydates.min.js', (37258240, 440) +'copy_assets:output/assets/js/gallery.min.js', (37651968, 434) +'copy_assets:output/assets/js/gallery.js', (37661696, 427) +'render_posts:cache/stories/Support me.html', (37753856, 372) +'render_posts:cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html', (37755392, 529) +'render_posts:cache/posts/nikola-nbconvert.html', (37757952, 481) +'render_taxonomies:output/es/categories/local/index.html', (37758464, 3101) +'render_taxonomies:output/es/categories/life/index.html', (37762048, 3227) +'render_pages:output/es/posts/rise-550-is-out/index.html', (37765632, 3192) +'render_taxonomies:output/es/categories/ipyscript/index.html', (37769216, 2999) +'render_pages:output/posts/viper-is-now-using-ipythonnbconvert/index.html', (37772288, 3454) +'render_pages:output/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.html', (37775872, 3665) +'render_pages:output/posts/zen-themes-updated/index.html', (37779968, 3338) +'render_taxonomies:output/es/categories/config/index.html', (37783552, 5260) +'render_taxonomies:output/categories/flood/index.html', (37789184, 2889) +'render_taxonomies:output/es/categories/family/index.html', (37792256, 3227) +'render_pages:output/es/posts/zen-mode-extension-for-the-ipython-notebook/index.html', (37795840, 3512) +'render_pages:output/posts/rise-550-is-out/index.html', (37807104, 3192) +'render_taxonomies:output/es/categories/pinned/index.html', (37810688, 2703) +'render_pages:output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html', (37813760, 3474) +'render_taxonomies:output/es/categories/docutils/index.html', (37817344, 2945) +'render_pages:output/es/posts/viper/index.html', (37820416, 3572) +'render_pages:output/es/posts/beginning/index.html', (37824000, 3622) +'render_pages:output/posts/ipython-plugin-for-nikola-updated/index.html', (37828096, 3442) +'render_taxonomies:output/categories/cordobaaikikai/index.html', (37831680, 2729) +'render_pages:output/es/posts/rise-meets-jupyterlab/index.html', (37842944, 3223) +'render_taxonomies:output/es/categories/daniela/index.html', (37861376, 2678) +'render_taxonomies:output/categories/binder/index.html', (37864448, 3585) +'render_taxonomies:output/es/categories/performance/index.html', (37868544, 3927) +'render_taxonomies:output/es/categories/conda/index.html', (37880832, 6664) +'render_pages:output/posts/rise-571-is-out/index.html', (37888000, 3193) +'render_pages:output/es/posts/zen-themes-updated/index.html', (37897728, 3338) +'render_taxonomies:output/categories/aikido/index.html', (37901312, 3093) +'render_pages:output/es/posts/rise-520-is-out/index.html', (37908992, 3192) +'render_taxonomies:output/categories/format/index.html', (38016512, 3159) +'render_pages:output/es/posts/pyconar-2013/index.html', (38020096, 3295) +'render_pages:output/posts/rise-541-is-out/index.html', (38056960, 3192) +'render_taxonomies:output/categories/extension/index.html', (38060544, 7055) +'render_pages:output/es/posts/rise-561-is-out/index.html', (38067712, 3193) +'render_pages:output/posts/rise-530-is-out/index.html', (38071296, 3193) +'render_taxonomies:output/categories/config/index.html', (38074880, 5260) +'render_pages:output/posts/48-themes-for-your-ipython-notebook/index.html', (38080512, 3457) +'render_taxonomies:output/categories/osx/index.html', (38084096, 6275) +'render_taxonomies:output/categories/typescript/index.html', (38090752, 2729) +'render_taxonomies:output/es/categories/win/index.html', (38103040, 6275) +'render_pages:output/posts/rise-meets-jupyterlab/index.html', (38109696, 3223) +'render_pages:output/es/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.html', (38113280, 3566) +'render_taxonomies:output/es/categories/zenmode/index.html', (38116864, 3018) +'render_pages:output/es/posts/abandoning-the-oquanta-domain-name/index.html', (38119936, 3287) +'render_pages:output/posts/a-new-nikolas-theme-for-my-site-zen/index.html', (38123520, 3456) +'render_taxonomies:output/es/categories/jupyter/index.html', (38127104, 10431) +'render_taxonomies:output/es/categories/magic/index.html', (38137856, 2999) +'render_pages:output/posts/we-are-above-1000-stars/index.html', (38148608, 3232) +'render_pages:output/posts/slider-for-nbconvert/index.html', (38152192, 3211) +'render_pages:output/es/posts/trading-logbook-update-22-nov-2013/index.html', (38155776, 3449) +'render_pages:output/es/posts/slider-for-nbconvert/index.html', (38159360, 3211) +'render_taxonomies:output/categories/kofi/index.html', (38162944, 2699) +'render_pages:output/posts/customizing-your-ipython-slides/index.html', (38166016, 3427) +'render_taxonomies:output/categories/javascript/index.html', (38169600, 8749) +'render_pages:output/es/posts/teasers-with-the-ipython-notebook-plugin/index.html', (38178816, 3490) +'render_pages:output/es/posts/improving-viper-slideshows-styling/index.html', (38182400, 3623) +'render_taxonomies:output/es/categories/nikola/index.html', (38186496, 15168) +'render_pages:output/posts/mimic-the-ipython-notebook-cell-execution/index.html', (38201856, 3497) +'render_taxonomies:output/es/categories/spellcheck/index.html', (38205440, 3060) +'render_pages:output/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.html', (38208512, 3568) +'render_taxonomies:output/es/categories/extension/index.html', (38212096, 7055) +'render_pages:output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.html', (38219264, 3399) +'render_pages:output/posts/beginning/index.html', (38237184, 3264) +'render_taxonomies:output/categories/performance/index.html', (38240768, 3927) +'render_taxonomies:output/categories/jupyterlab/index.html', (38244864, 3409) +'render_pages:output/posts/my-ipython-powered-semi-automatic-git-workflow/index.html', (38253056, 3535) +'render_pages:output/es/posts/my-aikido-shodan-test/index.html', (38256640, 3518) +'render_pages:output/posts/facundo/index.html', (38260224, 3146) +'render_taxonomies:output/categories/support/index.html', (38268416, 2699) +'render_pages:output/posts/rise-510-is-out/index.html', (38271488, 3193) +'render_pages:output/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.html', (38275072, 3512) +'render_taxonomies:output/es/categories/nbconvert/index.html', (38278656, 11731) +'render_taxonomies:output/categories/shodan/index.html', (38290432, 2729) +'render_pages:output/posts/how-to-pin-conda/index.html', (38308864, 3197) +'render_taxonomies:output/es/categories/facundo/index.html', (38312448, 3227) +'render_taxonomies:output/categories/docutils/index.html', (38316032, 2945) +'render_taxonomies:output/es/categories/pdf/index.html', (38340096, 3074) +'render_taxonomies:output/categories/sphinx/index.html', (38343680, 2945) +'render_taxonomies:output/es/categories/slideshow/index.html', (38346752, 12598) +'render_taxonomies:output/es/categories/twitter/index.html', (38367232, 3072) +'render_taxonomies:output/categories/viper/index.html', (38370304, 4437) +'render_pages:output/posts/nikola-nbconvert/index.html', (38374912, 3191) +'render_pages:output/es/posts/rise-400b1-is-available-please-test-it/index.html', (38378496, 3308) +'render_taxonomies:output/categories/pdf/index.html', (38389760, 3074) +'render_pages:output/es/posts/hello-world-again/index.html', (38393344, 3731) +'render_pages:output/posts/powered-by-nikola/index.html', (38403584, 3322) +'render_taxonomies:output/es/categories/trading/index.html', (38407168, 3927) +'render_pages:output/es/posts/paraguay/index.html', (38411264, 3612) +'render_pages:output/es/posts/ipython-plugin-for-nikola-updated/index.html', (38424064, 3442) +'render_taxonomies:output/categories/zen/index.html', (38444544, 4131) +'render_taxonomies:output/categories/ipython/index.html', (38449152, 26246) +'render_taxonomies:output/es/categories/minimap/index.html', (38475776, 3018) +'render_pages:output/es/posts/nikolas-zen-theme-finally-released/index.html', (38616576, 3447) +'render_pages:output/posts/rise-520-is-out/index.html', (38628352, 3192) +'render_taxonomies:output/categories/opensource/index.html', (38636544, 5393) +'render_taxonomies:output/categories/talks/index.html', (38652928, 3364) +'render_pages:output/es/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.html', (38656512, 3639) +'render_pages:output/es/posts/supporting-rise/index.html', (38660608, 3193) +'render_taxonomies:output/es/categories/viper/index.html', (38664192, 5579) +'render_pages:output/es/posts/rise-510-is-out/index.html', (38669824, 3193) +'render_pages:output/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.html', (38673408, 3653) +'render_pages:output/posts/hello-world-again/index.html', (38701056, 3322) +'render_pages:output/es/posts/scipycon-argentina-2013/index.html', (38712320, 3371) +'render_pages:output/posts/hide-the-input-cells-from-your-ipython-slides/index.html', (38715904, 3525) +'render_taxonomies:output/categories/linux/index.html', (38719488, 6275) +'render_taxonomies:output/categories/politics/index.html', (38726144, 2764) +'render_taxonomies:output/categories/git/index.html', (38731264, 6716) +'render_pages:output/es/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/index.html', (38755328, 3665) +'render_taxonomies:output/es/categories/opensource/index.html', (38783488, 5393) +'render_taxonomies:output/es/categories/format/index.html', (38789120, 3159) +'render_pages:output/es/posts/a-simple-minimap-for-your-nbconverted-ipynb/index.html', (38796800, 3512) +'render_pages:output/posts/trading-logbook-update-3/index.html', (38836224, 3237) +'render_pages:output/es/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.html', (38839808, 3595) +'render_taxonomies:output/categories/trading/index.html', (38843904, 3927) +'render_taxonomies:output/es/categories/support/index.html', (38848000, 2699) +'render_taxonomies:output/es/categories/base16/index.html', (38851072, 2963) +'render_taxonomies:output/es/categories/rise/index.html', (38854144, 7863) +'render_taxonomies:output/es/categories/ipytmpl/index.html', (38862336, 3041) +'render_taxonomies:output/categories/conda/index.html', (38865408, 6664) +'render_pages:output/es/posts/mimic-the-ipython-notebook-cell-execution/index.html', (38876672, 3497) +'render_taxonomies:output/es/categories/pip/index.html', (38880256, 6275) +'render_pages:output/posts/rise-400b1-is-available-please-test-it/index.html', (38886912, 3308) +'render_pages:output/posts/viper/index.html', (38898688, 3236) +'render_pages:output/es/stories/support-me/index.html', (38909952, 3323) +'render_pages:output/es/posts/customizing-your-ipython-slides/index.html', (38918144, 3427) +'render_pages:output/es/posts/rise-560-is-out/index.html', (38929408, 3193) +'render_taxonomies:output/categories/pyconar/index.html', (38932992, 2801) +'render_taxonomies:output/es/categories/politics/index.html', (38957056, 3118) +'render_taxonomies:output/categories/reveal/index.html', (38960640, 13001) +'render_taxonomies:output/categories/daniela/index.html', (38973952, 2678) +'render_taxonomies:output/es/categories/less/index.html', (38977024, 3601) +'render_taxonomies:output/es/categories/gh-pages/index.html', (38981120, 5783) +'render_pages:output/posts/reveal-converter-mini-tutorial/index.html', (38987264, 3421) +'copy_files:output/.ipynb_checkpoints/Test-checkpoint.html', (38990848, 302) +'render_posts:cache/posts/nikola-nbconvert.es.html', (38991360, 610) +'render_pages:output/es/posts/we-are-above-1000-stars/index.html', (38992384, 3232) +'render_pages:output/es/posts/my-ipython-powered-semi-automatic-git-workflow/index.html', (38995968, 3535) +'render_taxonomies:output/es/categories/workflow/index.html', (39008768, 6850) +'render_taxonomies:output/es/categories/css/index.html', (39015936, 3582) +'render_taxonomies:output/es/categories/reveal/index.html', (39019520, 13001) +'render_pages:output/posts/rise-561-is-out/index.html', (39032832, 3193) +'render_taxonomies:output/es/categories/first_post/index.html', (39036416, 3237) +'render_pages:output/posts/supporting-rise/index.html', (39040000, 3193) +'render_taxonomies:output/es/categories/blog/index.html', (39043584, 10352) +'render_taxonomies:output/categories/win/index.html', (39054336, 6275) +'render_pages:output/posts/coming-back/index.html', (39068672, 3172) +'render_pages:output/es/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.html', (39072256, 3582) +'render_pages:output/posts/different-ways-to-lead-an-open-source-project/index.html', (39084032, 3525) +'render_taxonomies:output/categories/magic/index.html', (39087616, 2999) +'render_taxonomies:output/es/categories/git/index.html', (39111680, 6716) +'render_pages:output/posts/paraguay/index.html', (39118848, 3258) +'render_pages:output/posts/improving-viper-slideshows-styling/index.html', (39122432, 3280) +'render_taxonomies:output/categories/themes/index.html', (39131648, 3493) +'render_pages:output/es/posts/hide-the-input-cells-from-your-ipython-slides/index.html', (39135232, 3525) +'render_taxonomies:output/categories/ipytmpl/index.html', (39159808, 3041) +'render_pages:output/es/posts/blogging-with-nikola-and-ipython/index.html', (39162880, 3437) +'render_pages:output/es/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.html', (39166464, 3644) +'render_taxonomies:output/categories/life/index.html', (39170560, 3227) +'render_taxonomies:output/categories/ipyscript/index.html', (39176192, 2999) +'render_pages:output/es/posts/coming-back/index.html', (39179264, 3172) +'render_pages:output/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.html', (39182848, 3554) +'render_pages:output/es/posts/one-line-deployment-of-your-site-to-gh-pages/index.html', (39194112, 3519) +'render_pages:output/posts/trading-logbook-update-22-nov-2013/index.html', (39197696, 3449) +'render_pages:output/posts/under-the-sea-en-la-plata/index.html', (39205888, 3383) +'render_taxonomies:output/categories/facu/index.html', (39209472, 2678) +'render_pages:output/posts/rise-560-is-out/index.html', (39212544, 3193) +'render_pages:output/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.html', (39216128, 3488) +'render_taxonomies:output/es/categories/cordobaaikikai/index.html', (39219712, 3024) +'render_taxonomies:output/categories/jupyter/index.html', (39222784, 10431) +'render_pages:output/posts/my-aikido-shodan-test/index.html', (39233536, 3223) +'render_taxonomies:output/es/categories/python/index.html', (39237120, 36489) +'render_taxonomies:output/categories/css/index.html', (39293440, 3582) +'render_taxonomies:output/categories/minimap/index.html', (39301632, 3018) +'render_pages:output/es/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/index.html', (39304704, 3653) +'render_taxonomies:output/categories/zenmode/index.html', (39308800, 3018) +'render_taxonomies:output/categories/gh-pages/index.html', (39325696, 5783) +'render_taxonomies:output/es/categories/threads/index.html', (39340032, 2960) +'render_taxonomies:output/categories/python/index.html', (39343104, 34663) +'render_taxonomies:output/es/categories/typescript/index.html', (39377920, 2729) +'render_taxonomies:output/categories/pinned/index.html', (39380992, 2703) +'render_taxonomies:output/categories/connectivity/index.html', (39384064, 3101) +'render_taxonomies:output/categories/blog/index.html', (39387648, 9585) +'render_taxonomies:output/categories/facundo/index.html', (39415296, 3227) +'render_pages:output/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/index.html', (39418880, 3639) +'render_taxonomies:output/categories/local/index.html', (39422976, 3101) +'render_pages:output/es/stories/about-me/index.html', (39502336, 3314) +'render_pages:output/es/posts/trading-logbook-update-3/index.html', (39505920, 3237) +'render_pages:output/posts/a-simple-overview-of-viper/index.html', (39519232, 3385) +'render_taxonomies:output/es/categories/sphinx/index.html', (39522816, 2945) +'render_taxonomies:output/categories/threads/index.html', (39525888, 2960) +'render_taxonomies:output/es/categories/osx/index.html', (39549952, 6275) +'render_taxonomies:output/categories/mipyex/index.html', (39556608, 5520) +'render_pages:output/es/posts/rise-541-is-out/index.html', (39562240, 3192) +'render_taxonomies:output/es/categories/jupyterlab/index.html', (39565824, 3409) +'render_taxonomies:output/es/categories/myst/index.html', (39569408, 3611) +'render_pages:output/posts/one-line-deployment-of-your-site-to-gh-pages/index.html', (39582720, 3519) +'render_taxonomies:output/categories/nbviewer/index.html', (39594496, 3088) +'render_taxonomies:output/es/categories/shodan/index.html', (39621632, 3024) +'render_taxonomies:output/es/categories/scipycon/index.html', (39624704, 2877) +'render_taxonomies:output/categories/twitter/index.html', (39635456, 3072) +'render_pages:output/es/posts/a-simple-overview-of-viper/index.html', (39638528, 3848) +'render_taxonomies:output/es/categories/binder/index.html', (39650816, 3585) +'render_taxonomies:output/es/categories/theme/index.html', (39654912, 3601) +'render_taxonomies:output/categories/pip/index.html', (39659008, 6275) +'render_taxonomies:output/es/categories/tutorials/index.html', (39665664, 2877) +'render_taxonomies:output/categories/myst/index.html', (39668736, 3611) +'render_pages:output/posts/make-your-slides-with-ipython/index.html', (39672832, 3414) +'render_pages:output/es/posts/powered-by-nikola/index.html', (39676416, 3731) +'render_pages:output/posts/live-trading-logbook/index.html', (39691776, 3351) +'render_pages:output/es/posts/nikola-nbconvert/index.html', (39695360, 3466) +'render_taxonomies:output/es/categories/talks/index.html', (39698944, 3364) +'render_taxonomies:output/categories/scipycon/index.html', (39702528, 2877) +'render_pages:output/es/posts/reveal-converter-mini-tutorial/index.html', (39752704, 3421) +'render_taxonomies:output/categories/toggle/index.html', (39760896, 3720) +'render_pages:output/es/posts/a-new-nikolas-theme-for-my-site-zen/index.html', (39764992, 3456) +'render_pages:output/posts/using-a-local-revealjs-library-with-your-ipython-slides/index.html', (39776256, 3595) +'render_pages:output/posts/scipycon-argentina-2013/index.html', (39780352, 3371) +'render_taxonomies:output/es/categories/connectivity/index.html', (39783936, 3101) +'render_pages:output/posts/nikolas-zen-theme-finally-released/index.html', (39787520, 3447) +'render_taxonomies:output/categories/nikola/index.html', (39791104, 14141) +'render_taxonomies:output/es/categories/github/index.html', (39805440, 2905) +'render_pages:output/es/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.html', (39808512, 3439) +'render_pages:output/es/posts/make-your-slides-with-ipython/index.html', (39812096, 3414) +'render_taxonomies:output/categories/github/index.html', (39815680, 2905) +'render_taxonomies:output/categories/family/index.html', (39818752, 3227) +'render_taxonomies:output/categories/jinja/index.html', (39822336, 5260) +'render_taxonomies:output/es/categories/aikido/index.html', (39827968, 3388) +'render_pages:output/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html', (39831552, 3474) +'render_taxonomies:output/categories/slideshow/index.html', (39846400, 12598) +'render_taxonomies:output/categories/spellcheck/index.html', (39859200, 3060) +'render_pages:output/es/posts/viper-is-now-using-ipythonnbconvert/index.html', (39862272, 3454) +'render_taxonomies:output/es/categories/asaikido/index.html', (39865856, 3024) +'render_pages:output/posts/rise-500-is-out/index.html', (39868928, 3192) +'render_taxonomies:output/categories/rise/index.html', (39872512, 7863) +'render_pages:output/posts/blogging-with-nikola-and-ipython/index.html', (39901184, 3437) +'render_pages:output/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/index.html', (39904768, 3582) +'render_taxonomies:output/categories/asaikido/index.html', (39917056, 2729) +'render_taxonomies:output/categories/less/index.html', (39920128, 3601) +'render_taxonomies:output/categories/videos/index.html', (39924224, 2801) +'render_taxonomies:output/es/categories/pyconar/index.html', (39927296, 2801) +'render_pages:output/posts/abandoning-the-oquanta-domain-name/index.html', (39930368, 3287) +'render_taxonomies:output/categories/workflow/index.html', (39963648, 6850) +'render_pages:output/es/posts/facundo/index.html', (39970816, 3146) +'render_pages:output/es/posts/under-the-sea-en-la-plata/index.html', (39974400, 3383) +'render_pages:output/posts/teasers-with-the-ipython-notebook-plugin/index.html', (39977984, 3490) +'render_taxonomies:output/es/categories/ipython/index.html', (40007168, 27663) +'render_taxonomies:output/es/categories/javascript/index.html', (40035328, 8749) +'render_taxonomies:output/es/categories/toggle/index.html', (40044544, 3720) +'render_pages:output/es/posts/48-themes-for-your-ipython-notebook/index.html', (40048640, 3457) +'render_taxonomies:output/es/categories/mipyex/index.html', (40052224, 5520) +'render_taxonomies:output/es/categories/flood/index.html', (40057856, 2889) +'render_taxonomies:output/categories/first_post/index.html', (40060928, 2828) +'render_pages:output/es/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/index.html', (40064000, 3488) +'render_pages:output/es/posts/rise-571-is-out/index.html', (40067584, 3193) +'render_taxonomies:output/es/categories/kofi/index.html', (40087040, 2699) +'render_taxonomies:output/categories/nbconvert/index.html', (40090112, 11731) +'render_pages:output/es/posts/rise-500-is-out/index.html', (40101888, 3192) +'render_pages:output/posts/pyconar-2013/index.html', (40105472, 3295) +'render_taxonomies:output/es/categories/facu/index.html', (40109056, 2678) +'render_taxonomies:output/es/categories/themes/index.html', (40112128, 3493) +'render_taxonomies:output/categories/tutorials/index.html', (40115712, 2877) +'render_pages:output/es/posts/different-ways-to-lead-an-open-source-project/index.html', (40118784, 3525) +'render_pages:output/stories/about-me/index.html', (40122368, 3314) +'render_pages:output/es/posts/a-poor-man-spell-checker-for-the-ipython-notebook/index.html', (40125952, 3554) +'render_pages:output/es/posts/rise-530-is-out/index.html', (40129536, 3193) +'render_taxonomies:output/es/categories/videos/index.html', (40154624, 2801) +'render_pages:output/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/index.html', (40157696, 3644) +'render_pages:output/es/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/index.html', (40161792, 3568) +'render_taxonomies:output/es/categories/linux/index.html', (40165376, 6275) +'render_pages:output/es/posts/dont-write-scripts-just-write-ipyscripts/index.html', (40172032, 3493) +'render_pages:output/stories/support-me/index.html', (40175616, 3323) +'render_pages:output/es/posts/live-trading-logbook/index.html', (40179200, 3351) +'render_taxonomies:output/es/categories/jinja/index.html', (40182784, 5260) +'render_pages:output/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/index.html', (40188416, 3566) +'render_taxonomies:output/es/categories/zen/index.html', (40192000, 4131) +'render_pages:output/es/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless/index.html', (40196608, 3399) +'render_taxonomies:output/es/categories/nbviewer/index.html', (40228864, 3088) +'render_taxonomies:output/categories/theme/index.html', (40232448, 3601) +'render_taxonomies:output/categories/base16/index.html', (40243200, 2963) +'render_pages:output/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/index.html', (40246272, 3439) +'render_pages:output/es/posts/how-to-pin-conda/index.html', (40262656, 3197) +'render_pages:output/posts/dont-write-scripts-just-write-ipyscripts/index.html', (40266240, 3493) +'render_pages:output/posts/zen-mode-extension-for-the-ipython-notebook/index.html', (40269824, 3512) diff --git a/.ipynb_checkpoints/Customization-checkpoint.md b/.ipynb_checkpoints/Customization-checkpoint.md new file mode 100644 index 00000000..3c537bf7 --- /dev/null +++ b/.ipynb_checkpoints/Customization-checkpoint.md @@ -0,0 +1,43 @@ +My customizations... + +* toogle.tpl at the top directory +* Added toggle.js, and miniPageNav.js to js folder +* Added toggle.js, and miniPageNav.js to bundles: + assets/js/all-nocdn.js=jquery-1.10.2.min.js,jquery.timeago.js,toggle.js,miniPageNav.js +* add to {% macro html_sourcelink() %} in zen-ipython/templates/arusahni_helper.tmpl +   |   + Minimap +* create zen-ipython/templates/post.tmpl and add: +

Did you like the content? Great!

+ + +

Or visit my support page for more information.

+
+

Btw, don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link + at the top of the post if you want to play with it ;-)

+* create zen-ipython/templates/index.tmpl and add: + {% block extra_head %} + {{ super() }} + + {% endblock %} +* add to nikola-ipython.css: + .page-content > .content h1, .page-content > .content .h1 { + text-align: center; + } +* change bundles: + assets/css/all-nocdn.css=bitter.css,main.css,rst.css,code.css,ipython.min.css,nikola_ipython.css,custom.css + assets/css/all.css=main.css,rst.css,code.css,ipython.min.css,nikola_ipython.css,custom.css + assets/js/all-nocdn.js=jquery-1.10.2.min.js,jquery.timeago.js,toggle.js,miniPageNav.js +* Fontawesome through https + https://github.com/getnikola/nikola-themes/commit/c9039ee96cd2322de435f526f3eb384d6234649b + +Last iteration (Nov 2024) + +I commented out the toogle piece from the conf.py file becuase it is curerntly broken and less useful for now. +TODO: Remove all these toogle pieces. +TODO: Remove all the minipage nav as well (not working with Github). +TODO: Use newer font awesome or some alternative. \ No newline at end of file diff --git a/.ipynb_checkpoints/conf-checkpoint.py b/.ipynb_checkpoints/conf-checkpoint.py new file mode 100644 index 00000000..d600274f --- /dev/null +++ b/.ipynb_checkpoints/conf-checkpoint.py @@ -0,0 +1,1046 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals +import time + +# !! This is the configuration of Nikola. !! # +# !! You should edit it to your liking. !! # + + +# ! Some settings can be different in different languages. +# ! A comment stating (translatable) is used to denote those. +# ! There are two ways to specify a translatable setting: +# ! (a) BLOG_TITLE = "My Blog" +# ! (b) BLOG_TITLE = {"en": "My Blog", "es": "Mi Blog"} +# ! Option (a) is used when you don't want that setting translated. +# ! Option (b) is used for settings that are different in different languages. + + +# Data about this site +BLOG_AUTHOR = "Damian Avila" # (translatable) +BLOG_TITLE = {"en": "Damian's blog", "es": "El blog de Damian"} # (translatable) +# This is the main URL for your site. It will be used +# in a prominent link +SITE_URL = "http://damianavila.github.io/blog/" +# This is the URL where Nikola's output will be deployed. +# If not set, defaults to SITE_URL +# BASE_URL = "http://demo.damian.info/" +BLOG_EMAIL = "damianavila82@yahoo.com.ar" +BLOG_DESCRIPTION = {"en": "My place to share some thoughts with the world.", + "es": "Mi lugar para compartir algunas ideas con el mundo."} # (translatable) + +# Nikola is multilingual! +# +# Currently supported languages are: +# +# en English +# ar Arabic +# az Azerbaijani +# bg Bulgarian +# ca Catalan +# cs Czech [ALTERNATIVELY cz] +# da Danish +# de German +# el Greek [NOT gr] +# eo Esperanto +# es Spanish +# et Estonian +# eu Basque +# fa Persian +# fi Finnish +# fil Filipino +# fr French +# hi Hindi +# hr Croatian +# id Indonesian +# it Italian +# ja Japanese [NOT jp] +# ko Korean +# nb Norwegian Bokmål +# nl Dutch +# pl Polish +# pt_br Portuguese (Brasil) +# ru Russian +# sk Slovak +# sl Slovene +# sr Serbian (Cyrillic) +# sv Swedish +# tl Tagalog +# tr Turkish [NOT tr_TR] +# uk Ukrainian +# ur Urdu +# zh_TW Chinese (Taiwan) +# zh_cn Chinese (Simplified) +# +# If you want to use Nikola with a non-supported language you have to provide +# a module containing the necessary translations +# (cf. the modules at nikola/data/themes/base/messages/). +# If a specific post is not translated to a language, then the version +# in the default language will be shown instead. + +# What is the default language? +DEFAULT_LANG = "en" + +# What other languages do you have? +# The format is {"translationcode" : "path/to/translation" } +# the path will be used as a prefix for the generated pages location +TRANSLATIONS = { + DEFAULT_LANG: "", + "es": "./es", +} + +# What will translated input files be named like? + +# If you have a page something.rst, then something.pl.rst will be considered +# its Polish translation. +# (in the above example: path == "something", ext == "rst", lang == "pl") +# this pattern is also used for metadata: +# something.meta -> something.pl.meta + +TRANSLATIONS_PATTERN = "{path}.{lang}.{ext}" + +# Links for the sidebar / navigation bar. (translatable) +# This is a dict. The keys are languages, and values are tuples. +# +# For regular links: +# ('https://getnikola.com/', 'Nikola Homepage') +# +# For submenus: +# ( +# ( +# ('http://apple.com/', 'Apple'), +# ('http://orange.com/', 'Orange'), +# ), +# 'Fruits' +# ) +# +# WARNING: Support for submenus is theme-dependent. +# Only one level of submenus is supported. +# WARNING: Some themes, including the default Bootstrap 3 theme, +# may present issues if the menu is too large. +# (in bootstrap3, the navbar can grow too large and cover contents.) +# WARNING: If you link to directories, make sure to follow +# ``STRIP_INDEXES``. If it’s set to ``True``, end your links +# with a ``/``, otherwise end them with ``/index.html`` — or +# else they won’t be highlighted when active. + +NAVIGATION_LINKS = { + DEFAULT_LANG: ( + ('/index.html', 'Home', 'icon-home'), + ('/archive.html', 'Archives', 'icon-folder-open-alt'), + ('/categories/index.html', 'Tags', 'icon-tags'), + ('/rss.xml', 'RSS', 'icon-rss'), + ('/stories/about-me/index.html', 'About me', 'icon-user'), + ('/stories/support-me/index.html', 'Support me', 'icon-usd'), + ('https://x.com/damian_avila', 'My x', 'icon-remove'), + ('https://github.com/damianavila', 'My Github', 'icon-github'), + ), + 'es': ( + ('/es/index.html', 'Inicio', 'icon-home'), + ('/es/archive.html', 'Archivos', 'icon-folder-open-alt'), + ('/es/categories/index.html', 'Etiquetas', 'icon-tags'), + ('/es/rss.xml', 'RSS', 'icon-rss'), + ('/es/stories/about-me.html', 'Sobre mi...', 'icon-user'), + ('/es/stories/support-me.html', 'Dame tu apoyo..', 'icon-usd'), + ('https://twitter.com/damian_avila', 'Mi Twitter', 'icon-twitter'), + ('https://github.com/damianavila', 'Mi Github', 'icon-github'), + ), +} + +# Name of the theme to use. +THEME = "zen-ipython" + +# Below this point, everything is optional + +# Post's dates are considered in UTC by default, if you want to use +# another time zone, please set TIMEZONE to match. Check the available +# list from Wikipedia: +# http://en.wikipedia.org/wiki/List_of_tz_database_time_zones +# (e.g. 'Europe/Zurich') +# Also, if you want to use a different time zone in some of your posts, +# you can use the ISO 8601/RFC 3339 format (ex. 2012-03-30T23:00:00+02:00) +TIMEZONE = "America/Argentina/Cordoba" + +# If you want to use ISO 8601 (also valid RFC 3339) throughout Nikola +# (especially in new_post), set this to True. +# Note that this does not affect DATE_FORMAT. +# FORCE_ISO8601 = False + +# Date format used to display post dates. +# (str used by datetime.datetime.strftime) +# DATE_FORMAT = '%Y-%m-%d %H:%M' + +# Date format used to display post dates, if local dates are used. +# (str used by moment.js) +# JS_DATE_FORMAT = 'YYYY-MM-DD HH:mm' + +# Date fanciness. +# +# 0 = using DATE_FORMAT and TIMEZONE +# 1 = using JS_DATE_FORMAT and local user time (via moment.js) +# 2 = using a string like “2 days ago” +# +# Your theme must support it, bootstrap and bootstrap3 already do. +# DATE_FANCINESS = 0 + +# While Nikola can select a sensible locale for each language, +# sometimes explicit control can come handy. +# In this file we express locales in the string form that +# python's locales will accept in your OS, by example +# "en_US.utf8" in Unix-like OS, "English_United States" in Windows. +# LOCALES = dict mapping language --> explicit locale for the languages +# in TRANSLATIONS. You can omit one or more keys. +# LOCALE_FALLBACK = locale to use when an explicit locale is unavailable +# LOCALE_DEFAULT = locale to use for languages not mentioned in LOCALES; if +# not set the default Nikola mapping is used. + +# POSTS and PAGES contains (wildcard, destination, template) tuples. +# +# The wildcard is used to generate a list of reSt source files +# (whatever/thing.txt). +# +# That fragment could have an associated metadata file (whatever/thing.meta), +# and optionally translated files (example for Spanish, with code "es"): +# whatever/thing.es.txt and whatever/thing.es.meta +# +# This assumes you use the default TRANSLATIONS_PATTERN. +# +# From those files, a set of HTML fragment files will be generated: +# cache/whatever/thing.html (and maybe cache/whatever/thing.html.es) +# +# These files are combined with the template to produce rendered +# pages, which will be placed at +# output / TRANSLATIONS[lang] / destination / pagename.html +# +# where "pagename" is the "slug" specified in the metadata file. +# +# The difference between POSTS and PAGES is that POSTS are added +# to feeds and are considered part of a blog, while PAGES are +# just independent HTML pages. +# + +POSTS = ( + ("posts/*.ipynb", "posts", "post.tmpl"), + ("posts/*.txt", "posts", "post.tmpl"), + ("posts/*.rst", "posts", "post.tmpl"), +) +PAGES = ( + ("stories/*.ipynb", "stories", "story.tmpl"), + ("stories/*.txt", "stories", "story.tmpl"), + ("stories/*.rst", "stories", "story.tmpl"), +) + +# One or more folders containing files to be copied as-is into the output. +# The format is a dictionary of {source: relative destination}. +# Default is: +# FILES_FOLDERS = {'files': ''} +# Which means copy 'files' into 'output' + +# One or more folders containing listings to be processed and stored into +# the output. The format is a dictionary of {source: relative destination}. +# Default is: +# LISTINGS_FOLDERS = {'listings': 'listings'} +# Which means process listings from 'listings' into 'output/listings' + +# A mapping of languages to file-extensions that represent that language. +# Feel free to add or delete extensions to any list, but don't add any new +# compilers unless you write the interface for it yourself. +# +# 'rest' is reStructuredText +# 'markdown' is MarkDown +# 'html' assumes the file is HTML and just copies it +COMPILERS = { + "rest": ('.rst', '.txt'), + "markdown": ('.md', '.mdown', '.markdown'), + "textile": ('.textile',), + "txt2tags": ('.t2t',), + "bbcode": ('.bb',), + "wiki": ('.wiki',), + "ipynb": ('.ipynb',), + "html": ('.html', '.htm'), + # PHP files are rendered the usual way (i.e. with the full templates). + # The resulting files have .php extensions, making it possible to run + # them without reconfiguring your server to recognize them. + "php": ('.php',), + # Pandoc detects the input from the source filename + # but is disabled by default as it would conflict + # with many of the others. + # "pandoc": ('.rst', '.md', '.txt'), +} + +# Create by default posts in one file format? +# Set to False for two-file posts, with separate metadata. +# ONE_FILE_POSTS = True + +# If this is set to True, the DEFAULT_LANG version will be displayed for +# untranslated posts. +# If this is set to False, then posts that are not translated to a language +# LANG will not be visible at all in the pages in that language. +# Formerly known as HIDE_UNTRANSLATED_POSTS (inverse) +# SHOW_UNTRANSLATED_POSTS = True + +# Nikola supports logo display. If you have one, you can put the URL here. +# Final output is . +# The URL may be relative to the site root. +# LOGO_URL = '' + +# If you want to hide the title of your website (for example, if your logo +# already contains the text), set this to False. +# SHOW_BLOG_TITLE = True + +# Writes tag cloud data in form of tag_cloud_data.json. +# Warning: this option will change its default value to False in v8! +WRITE_TAG_CLOUD = False + +# Paths for different autogenerated bits. These are combined with the +# translation paths. + +# Final locations are: +# output / TRANSLATION[lang] / TAG_PATH / index.html (list of tags) +# output / TRANSLATION[lang] / TAG_PATH / tag.html (list of posts for a tag) +# output / TRANSLATION[lang] / TAG_PATH / tag.xml (RSS feed for a tag) +# TAG_PATH = "categories" + +# If TAG_PAGES_ARE_INDEXES is set to True, each tag's page will contain +# the posts themselves. If set to False, it will be just a list of links. +# TAG_PAGES_ARE_INDEXES = False + +# Set descriptions for tag pages to make them more interesting. The +# default is no description. The value is used in the meta description +# and displayed underneath the tag list or index page’s title. +# TAG_PAGES_DESCRIPTIONS = { +# DEFAULT_LANG: { +# "blogging": "Meta-blog posts about blogging about blogging.", +# "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects." +# }, +#} + + +# If you do not want to display a tag publicly, you can mark it as hidden. +# The tag will not be displayed on the tag list page, the tag cloud and posts. +# Tag pages will still be generated. +HIDDEN_TAGS = [] + +# Only include tags on the tag list/overview page if there are at least +# TAGLIST_MINIMUM_POSTS number of posts or more with every tag. Every tag +# page is still generated, linked from posts, and included in the sitemap. +# However, more obscure tags can be hidden from the tag index page. +# TAGLIST_MINIMUM_POSTS = 1 + +# Final locations are: +# output / TRANSLATION[lang] / CATEGORY_PATH / index.html (list of categories) +# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.html (list of posts for a category) +# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.xml (RSS feed for a category) +# CATEGORY_PATH = "categories" +# CATEGORY_PREFIX = "cat_" + +# If CATEGORY_PAGES_ARE_INDEXES is set to True, each category's page will contain +# the posts themselves. If set to False, it will be just a list of links. +# CATEGORY_PAGES_ARE_INDEXES = False + +# Set descriptions for category pages to make them more interesting. The +# default is no description. The value is used in the meta description +# and displayed underneath the category list or index page’s title. +# CATEGORY_PAGES_DESCRIPTIONS = { +# DEFAULT_LANG: { +# "blogging": "Meta-blog posts about blogging about blogging.", +# "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects." +# }, +#} + +# If you do not want to display a category publicly, you can mark it as hidden. +# The category will not be displayed on the category list page. +# Category pages will still be generated. +HIDDEN_CATEGORIES = [] + +# Final location for the main blog page and sibling paginated pages is +# output / TRANSLATION[lang] / INDEX_PATH / index-*.html +# INDEX_PATH = "" + +# Create per-month archives instead of per-year +CREATE_MONTHLY_ARCHIVE = True +# Create one large archive instead of per-year +# CREATE_SINGLE_ARCHIVE = False +# Create year, month, and day archives each with a (long) list of posts +# (overrides both CREATE_MONTHLY_ARCHIVE and CREATE_SINGLE_ARCHIVE) +# CREATE_FULL_ARCHIVES = False +# If monthly archives or full archives are created, adds also one archive per day +# CREATE_DAILY_ARCHIVE = False +# Final locations for the archives are: +# output / TRANSLATION[lang] / ARCHIVE_PATH / ARCHIVE_FILENAME +# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / index.html +# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / index.html +# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / DAY / index.html +# ARCHIVE_PATH = "" +# ARCHIVE_FILENAME = "archive.html" + +# If ARCHIVES_ARE_INDEXES is set to True, each archive page which contains a list +# of posts will contain the posts themselves. If set to False, it will be just a +# list of links. +# ARCHIVES_ARE_INDEXES = False + +# URLs to other posts/pages can take 3 forms: +# rel_path: a relative URL to the current page/post (default) +# full_path: a URL with the full path from the root +# absolute: a complete URL (that includes the SITE_URL) +# URL_TYPE = 'rel_path' + +# Final location for the blog main RSS feed is: +# output / TRANSLATION[lang] / RSS_PATH / rss.xml +# RSS_PATH = "" + +# Number of posts in RSS feeds +# FEED_LENGTH = 10 + +# Slug the Tag URL easier for users to type, special characters are +# often removed or replaced as well. +# SLUG_TAG_PATH = True + +# A list of redirection tuples, [("foo/from.html", "/bar/to.html")]. +# +# A HTML file will be created in output/foo/from.html that redirects +# to the "/bar/to.html" URL. notice that the "from" side MUST be a +# relative URL. +# +# If you don't need any of these, just set to [] +REDIRECTIONS = [] + +# Presets of commands to execute to deploy. Can be anything, for +# example, you may use rsync: +# "rsync -rav --delete output/ joe@my.site:/srv/www/site" +# And then do a backup, or run `nikola ping` from the `ping` +# plugin (`nikola plugin -i ping`). Or run `nikola check -l`. +# You may also want to use github_deploy (see below). +# You can define multiple presets and specify them as arguments +# to `nikola deploy`. If no arguments are specified, a preset +# named `default` will be executed. You can use as many presets +# in a `nikola deploy` command as you like. +DEPLOY_COMMANDS = {"default": ["git add .", + "git commit -m 'Update'", + "git push origin master", + "git subtree split --prefix output -b gh-pages", + "git push -f origin gh-pages:gh-pages", + "git branch -D gh-pages"]} + +# For user.github.io OR organization.github.io pages, the DEPLOY branch +# MUST be 'master', and 'gh-pages' for other repositories. +# GITHUB_SOURCE_BRANCH = 'master' +# GITHUB_DEPLOY_BRANCH = 'gh-pages' + +# The name of the remote where you wish to push to, using github_deploy. +# GITHUB_REMOTE_NAME = 'origin' + +# Where the output site should be located +# If you don't use an absolute path, it will be considered as relative +# to the location of conf.py +# OUTPUT_FOLDER = 'output' + +# where the "cache" of partial generated content should be located +# default: 'cache' +# CACHE_FOLDER = 'cache' + +# Filters to apply to the output. +# A directory where the keys are either: a file extensions, or +# a tuple of file extensions. +# +# And the value is a list of commands to be applied in order. +# +# Each command must be either: +# +# A string containing a '%s' which will +# be replaced with a filename. The command *must* produce output +# in place. +# +# Or: +# +# A python callable, which will be called with the filename as +# argument. +# +# By default, only .php files uses filters to inject PHP into +# Nikola’s templates. All other filters must be enabled through FILTERS. +# +# Many filters are shipped with Nikola. A list is available in the manual: +# +# +# from nikola import filters +# FILTERS = { +# ".html": [filters.typogrify], +# ".js": [filters.closure_compiler], +# ".jpg": ["jpegoptim --strip-all -m75 -v %s"], +# } + +# Expert setting! Create a gzipped copy of each generated file. Cheap server- +# side optimization for very high traffic sites or low memory servers. +# GZIP_FILES = False +# File extensions that will be compressed +# GZIP_EXTENSIONS = ('.txt', '.htm', '.html', '.css', '.js', '.json', '.atom', '.xml') +# Use an external gzip command? None means no. +# Example: GZIP_COMMAND = "pigz -k {filename}" +# GZIP_COMMAND = None +# Make sure the server does not return a "Accept-Ranges: bytes" header for +# files compressed by this option! OR make sure that a ranged request does not +# return partial content of another representation for these resources. Do not +# use this feature if you do not understand what this means. + +# Compiler to process LESS files. +# LESS_COMPILER = 'lessc' + +# A list of options to pass to the LESS compiler. +# Final command is: LESS_COMPILER LESS_OPTIONS file.less +# LESS_OPTIONS = [] + +# Compiler to process Sass files. +# SASS_COMPILER = 'sass' + +# A list of options to pass to the Sass compiler. +# Final command is: SASS_COMPILER SASS_OPTIONS file.s(a|c)ss +# SASS_OPTIONS = [] + +# ############################################################################# +# Image Gallery Options +# ############################################################################# + +# One or more folders containing galleries. The format is a dictionary of +# {"source": "relative_destination"}, where galleries are looked for in +# "source/" and the results will be located in +# "OUTPUT_PATH/relative_destination/gallery_name" +# Default is: +# GALLERY_FOLDERS = {"galleries": "galleries"} +# More gallery options: +# THUMBNAIL_SIZE = 180 +# MAX_IMAGE_SIZE = 1280 +# USE_FILENAME_AS_TITLE = True +# EXTRA_IMAGE_EXTENSIONS = [] +# +# If set to False, it will sort by filename instead. Defaults to True +# GALLERY_SORT_BY_DATE = True +# +# Folders containing images to be used in normal posts or pages. Images will be +# scaled down according to IMAGE_THUMBNAIL_SIZE and MAX_IMAGE_SIZE options, but +# will have to be referenced manually to be visible on the site +# (the thumbnail has ``.thumbnail`` added before the file extension). +# The format is a dictionary of {source: relative destination}. + +IMAGE_FOLDERS = {'images': 'images'} +# IMAGE_THUMBNAIL_SIZE = 400 + +# ############################################################################# +# HTML fragments and diverse things that are used by the templates +# ############################################################################# + +# Data about post-per-page indexes. +# INDEXES_PAGES defaults to ' old posts, page %d' or ' page %d' (translated), +# depending on the value of INDEXES_PAGES_MAIN. +# +# (translatable) If the following is empty, defaults to BLOG_TITLE: +# INDEXES_TITLE = "" +# +# (translatable) If the following is empty, defaults to ' [old posts,] page %d' (see above): +# INDEXES_PAGES = "" +# +# If the following is True, INDEXES_PAGES is also displayed on the main (the +# newest) index page (index.html): +# INDEXES_PAGES_MAIN = False +# +# If the following is True, index-1.html has the oldest posts, index-2.html the +# second-oldest posts, etc., and index.html has the newest posts. This ensures +# that all posts on index-x.html will forever stay on that page, now matter how +# many new posts are added. +# If False, index-1.html has the second-newest posts, index-2.html the third-newest, +# and index-n.html the oldest posts. When this is active, old posts can be moved +# to other index pages when new posts are added. +# INDEXES_STATIC = True +# +# (translatable) If PRETTY_URLS is set to True, this setting will be used to create +# more pretty URLs for index pages, such as page/2/index.html instead of index-2.html. +# Valid values for this settings are: +# * False, +# * a list or tuple, specifying the path to be generated, +# * a dictionary mapping languages to lists or tuples. +# Every list or tuple must consist of strings which are used to combine the path; +# for example: +# ['page', '{number}', '{index_file}'] +# The replacements +# {number} --> (logical) page number; +# {old_number} --> the page number inserted into index-n.html before (zero for +# the main page); +# {index_file} --> value of option INDEX_FILE +# are made. +# Note that in case INDEXES_PAGES_MAIN is set to True, a redirection will be created +# for the full URL with the page number of the main page to the normal (shorter) main +# page URL. +# INDEXES_PRETTY_PAGE_URL = False + +# Color scheme to be used for code blocks. If your theme provides +# "assets/css/code.css" this is ignored. +# Can be any of: +# algol +# algol_nu +# arduino +# autumn +# borland +# bw +# colorful +# default +# emacs +# friendly +# fruity +# igor +# lovelace +# manni +# monokai +# murphy +# native +# paraiso_dark +# paraiso_light +# pastie +# perldoc +# rrt +# tango +# trac +# vim +# vs +# xcode +# This list MAY be incomplete since pygments adds styles every now and then. +# CODE_COLOR_SCHEME = 'default' + +# If you use 'site-reveal' theme you can select several subthemes +# THEME_REVEAL_CONFIG_SUBTHEME = 'sky' +# You can also use: beige/serif/simple/night/default + +# Again, if you use 'site-reveal' theme you can select several transitions +# between the slides +# THEME_REVEAL_CONFIG_TRANSITION = 'cube' +# You can also use: page/concave/linear/none/default + +# FAVICONS contains (name, file, size) tuples. +# Used to create favicon link like this: +# +# FAVICONS = ( +# ("icon", "/favicon.ico", "16x16"), +# ("icon", "/icon_128x128.png", "128x128"), +# ) + +# Show only teasers in the index pages? Defaults to False. +INDEX_TEASERS = True + +# HTML fragments with the Read more... links. +# The following tags exist and are replaced for you: +# {link} A link to the full post page. +# {read_more} The string “Read more” in the current language. +# {reading_time} An estimate of how long it will take to read the post. +# {remaining_reading_time} An estimate of how long it will take to read the post, sans the teaser. +# {min_remaining_read} The string “{remaining_reading_time} min remaining to read” in the current language. +# {paragraph_count} The amount of paragraphs in the post. +# {remaining_paragraph_count} The amount of paragraphs in the post, sans the teaser. +# {{ A literal { (U+007B LEFT CURLY BRACKET) +# }} A literal } (U+007D RIGHT CURLY BRACKET) + +# 'Read more...' for the index page, if INDEX_TEASERS is True (translatable) +INDEX_READ_MORE_LINK = '

{read_more}…

' +# 'Read more...' for the RSS_FEED, if RSS_TEASERS is True (translatable) +RSS_READ_MORE_LINK = '

{read_more}… ({min_remaining_read})

' + +# Append a URL query to the RSS_READ_MORE_LINK in Atom and RSS feeds. Advanced +# option used for traffic source tracking. +# Minimum example for use with Piwik: "pk_campaign=feed" +# The following tags exist and are replaced for you: +# {feedRelUri} A relative link to the feed. +# {feedFormat} The name of the syndication format. +# Example using replacement for use with Google Analytics: +# "utm_source={feedRelUri}&utm_medium=nikola_feed&utm_campaign={feedFormat}_feed" +RSS_LINKS_APPEND_QUERY = False + +# A HTML fragment describing the license, for the sidebar. +# (translatable) +LICENSE = LICENSE = """ + +Creative Commons License BY-NC-SA""" +# I recommend using the Creative Commons' wizard: +# http://creativecommons.org/choose/ +# LICENSE = """ +# +# Creative Commons License BY-NC-SA""" + +# A small copyright notice for the page footer (in HTML). +# (translatable) +CONTENT_FOOTER = """Contents © {date} {author} - +Powered by Nikola - +Zen theme based in Arusahni's website-template
+{license}""" + +# Things that will be passed to CONTENT_FOOTER.format(). This is done +# for translatability, as dicts are not formattable. Nikola will +# intelligently format the setting properly. +# The setting takes a dict. The keys are languages. The values are +# tuples of tuples of positional arguments and dicts of keyword arguments +# to format(). For example, {'en': (('Hello'), {'target': 'World'})} +# results in CONTENT_FOOTER['en'].format('Hello', target='World'). +# WARNING: If you do not use multiple languages with CONTENT_FOOTER, this +# still needs to be a dict of this format. (it can be empty if you +# do not need formatting) +# (translatable) +CONTENT_FOOTER_FORMATS = { + DEFAULT_LANG: ( + (), + { + "email": BLOG_EMAIL, + "author": BLOG_AUTHOR, + "date": time.gmtime().tm_year, + "license": LICENSE + } + ) +} + +# To use comments, you can choose between different third party comment +# systems. The following comment systems are supported by Nikola: +# disqus, facebook, googleplus, intensedebate, isso, livefyre, muut +# You can leave this option blank to disable comments. +COMMENT_SYSTEM = "disqus" +# And you also need to add your COMMENT_SYSTEM_ID which +# depends on what comment system you use. The default is +# "nikolademo" which is a test account for Disqus. More information +# is in the manual. +COMMENT_SYSTEM_ID = "damianblogcomments" + +# Enable annotations using annotateit.org? +# If set to False, you can still enable them for individual posts and pages +# setting the "annotations" metadata. +# If set to True, you can disable them for individual posts and pages using +# the "noannotations" metadata. +# ANNOTATIONS = False + +# Create index.html for page (story) folders? +# WARNING: if a page would conflict with the index file (usually +# caused by setting slug to `index`), the STORY_INDEX +# will not be generated for that directory. +# STORY_INDEX = False +# Enable comments on story pages? +# COMMENTS_IN_STORIES = False +# Enable comments on picture gallery pages? +# COMMENTS_IN_GALLERIES = False + +# What file should be used for directory indexes? +# Defaults to index.html +# Common other alternatives: default.html for IIS, index.php +# INDEX_FILE = "index.html" + +# If a link ends in /index.html, drop the index.html part. +# http://mysite/foo/bar/index.html => http://mysite/foo/bar/ +# (Uses the INDEX_FILE setting, so if that is, say, default.html, +# it will instead /foo/default.html => /foo) +# (Note: This was briefly STRIP_INDEX_HTML in v 5.4.3 and 5.4.4) +# Default = False +# STRIP_INDEXES = False + +# Should the sitemap list directories which only include other directories +# and no files. +# Default to True +# If this is False +# e.g. /2012 includes only /01, /02, /03, /04, ...: don't add it to the sitemap +# if /2012 includes any files (including index.html)... add it to the sitemap +# SITEMAP_INCLUDE_FILELESS_DIRS = True + +# List of files relative to the server root (!) that will be asked to be excluded +# from indexing and other robotic spidering. * is supported. Will only be effective +# if SITE_URL points to server root. The list is used to exclude resources from +# /robots.txt and /sitemap.xml, and to inform search engines about /sitemapindex.xml. +# ROBOTS_EXCLUSIONS = ["/archive.html", "/category/*.html"] + +# Instead of putting files in .html, put them in +# /index.html. Also enables STRIP_INDEXES +# This can be disabled on a per-page/post basis by adding +# .. pretty_url: False +# to the metadata +# PRETTY_URLS = False + +# If True, publish future dated posts right away instead of scheduling them. +# Defaults to False. +# FUTURE_IS_NOW = False + +# If True, future dated posts are allowed in deployed output +# Only the individual posts are published/deployed; not in indexes/sitemap +# Generally, you want FUTURE_IS_NOW and DEPLOY_FUTURE to be the same value. +# DEPLOY_FUTURE = False +# If False, draft posts will not be deployed +# DEPLOY_DRAFTS = True + +# Allows scheduling of posts using the rule specified here (new_post -s) +# Specify an iCal Recurrence Rule: http://www.kanzaki.com/docs/ical/rrule.html +# SCHEDULE_RULE = '' +# If True, use the scheduling rule to all posts by default +# SCHEDULE_ALL = False + +# Do you want a add a Mathjax config file? +# MATHJAX_CONFIG = "" + +# If you are using the compile-ipynb plugin, just add this one: +MATHJAX_CONFIG = """ + +""" + +# Do you want to customize the nbconversion of your IPython notebook? +# IPYNB_CONFIG = {} +# With the following example configuration you can use a custom jinja template +# called `toggle.tpl` which has to be located in your site/blog main folder: +# IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}} + +# What Markdown extensions to enable? +# You will also get gist, nikola and podcast because those are +# done in the code, hope you don't mind ;-) +# Note: most Nikola-specific extensions are done via the Nikola plugin system, +# with the MarkdownExtension class and should not be added here. +# MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite'] + +# Extra options to pass to the pandoc comand. +# by default, it's empty, is a list of strings, for example +# ['-F', 'pandoc-citeproc', '--bibliography=/Users/foo/references.bib'] +# PANDOC_OPTIONS = [] + +# Social buttons. This is sample code for AddThis (which was the default for a +# long time). Insert anything you want here, or even make it empty (which is +# the default right now) +# (translatable) +# SOCIAL_BUTTONS_CODE = """ +# +#
+# Share +#
  • +#
  • +#
  • +#
  • +#
+#
+# +# +# """ + +# Show link to source for the posts? +# Formerly known as HIDE_SOURCELINK (inverse) +# SHOW_SOURCELINK = True +# Copy the source files for your pages? +# Setting it to False implies SHOW_SOURCELINK = False +# COPY_SOURCES = True + +# Modify the number of Post per Index Page +# Defaults to 10 +# INDEX_DISPLAY_POST_COUNT = 10 + +# By default, Nikola generates RSS files for the website and for tags, and +# links to it. Set this to False to disable everything RSS-related. +# GENERATE_RSS = True + +# By default, Nikola does not generates Atom files for indexes and links to +# them. Generate Atom for tags by setting TAG_PAGES_ARE_INDEXES to True. +# Atom feeds are built based on INDEX_DISPLAY_POST_COUNT and not FEED_LENGTH +# Switch between plain-text summaries and full HTML content using the +# RSS_TEASER option. RSS_LINKS_APPEND_QUERY is also respected. Atom feeds +# are generated even for old indexes and have pagination link relations +# between each other. Old Atom feeds with no changes are marked as archived. +# GENERATE_ATOM = False + +# RSS_LINK is a HTML fragment to link the RSS or Atom feeds. If set to None, +# the base.tmpl will use the feed Nikola generates. However, you may want to +# change it for a FeedBurner feed or something else. +# RSS_LINK = None + +# Show only teasers in the RSS and Atom feeds? Default to True +# RSS_TEASERS = True + +# Strip HTML in the RSS feed? Default to False +# RSS_PLAIN = False + +# A search form to search this site, for the sidebar. You can use a Google +# custom search (http://www.google.com/cse/) +# Or a DuckDuckGo search: https://duckduckgo.com/search_box.html +# Default is no search form. +# (translatable) +# SEARCH_FORM = "" +# +# This search form works for any site and looks good in the "site" theme where +# it appears on the navigation bar: +# +# SEARCH_FORM = """ +# +# +# +# """ % SITE_URL +# +# If you prefer a Google search form, here's an example that should just work: +# SEARCH_FORM = """ +# +# +# +#""" % SITE_URL + +# Use content distribution networks for jQuery, twitter-bootstrap css and js, +# and html5shiv (for older versions of Internet Explorer) +# If this is True, jQuery and html5shiv are served from the Google CDN and +# Bootstrap is served from BootstrapCDN (provided by MaxCDN) +# Set this to False if you want to host your site without requiring access to +# external resources. +# USE_CDN = False + +# Check for USE_CDN compatibility. +# If you are using custom themes, have configured the CSS properly and are +# receiving warnings about incompatibility but believe they are incorrect, you +# can set this to False. +# USE_CDN_WARNING = True + +# Extra things you want in the pages HEAD tag. This will be added right +# before +# (translatable) +# EXTRA_HEAD_DATA = "" +# Google Analytics or whatever else you use. Added to the bottom of +# in the default template (base.tmpl). +# (translatable) +BODY_END = """ + + + + """ + +# The possibility to extract metadata from the filename by using a +# regular expression. +# To make it work you need to name parts of your regular expression. +# The following names will be used to extract metadata: +# - title +# - slug +# - date +# - tags +# - link +# - description +# +# An example re is the following: +# '(?P\d{4}-\d{2}-\d{2})-(?P.*)-(?P.*)\.md' +# FILE_METADATA_REGEXP = None + +# If you hate "Filenames with Capital Letters and Spaces.md", you should +# set this to true. +FILE_METADATA_UNSLUGIFY_TITLES = True + +# Additional metadata that is added to a post when creating a new_post +# ADDITIONAL_METADATA = {} + +# Nikola supports Open Graph Protocol data for enhancing link sharing and +# discoverability of your site on Facebook, Google+, and other services. +# Open Graph is enabled by default. +# USE_OPEN_GRAPH = True + +# Nikola supports Twitter Card summaries, but they are disabled by default. +# They make it possible for you to attach media to Tweets that link +# to your content. +# +# IMPORTANT: +# Please note, that you need to opt-in for using Twitter Cards! +# To do this please visit https://cards-dev.twitter.com/validator +# +# Uncomment and modify to following lines to match your accounts. +# Images displayed come from the `previewimage` meta tag. +# You can specify the card type by using the `card` parameter in TWITTER_CARD. +# TWITTER_CARD = { +# # 'use_twitter_cards': True, # enable Twitter Cards +# # 'card': 'summary', # Card type, you can also use 'summary_large_image', +# # see https://dev.twitter.com/cards/types +# # 'site': '@website', # twitter nick for the website +# # 'creator': '@username', # Username for the content creator / author. +# } + +# If webassets is installed, bundle JS and CSS to make site loading faster +USE_BUNDLES = True + +# Plugins you don't want to use. Be careful :-) +# DISABLED_PLUGINS = ["render_galleries"] + +# Add the absolute paths to directories containing plugins to use them. +# For example, the `plugins` directory of your clone of the Nikola plugins +# repository. +# EXTRA_PLUGINS_DIRS = [] + +# List of regular expressions, links matching them will always be considered +# valid by "nikola check -l" +# LINK_CHECK_WHITELIST = [] + +# If set to True, enable optional hyphenation in your posts (requires pyphen) +# HYPHENATE = False + +# The <hN> tags in HTML generated by certain compilers (reST/Markdown) +# will be demoted by that much (1 → h1 will become h2 and so on) +# This was a hidden feature of the Markdown and reST compilers in the +# past. Useful especially if your post titles are in <h1> tags too, for +# example. +# (defaults to 1.) +# DEMOTE_HEADERS = 1 + +# If you don’t like slugified file names ([a-z0-9] and a literal dash), +# and would prefer to use all the characters your file system allows. +# USE WITH CARE! This is also not guaranteed to be perfect, and may +# sometimes crash Nikola, your web server, or eat your cat. +# USE_SLUGIFY = True + +# You can configure the logging handlers installed as plugins or change the +# log level of the default stderr handler. +# WARNING: The stderr handler allows only the loglevels of 'INFO' and 'DEBUG'. +# This is done for safety reasons, as blocking out anything other +# than 'DEBUG' may hide important information and break the user +# experience! + +LOGGING_HANDLERS = { + 'stderr': {'loglevel': 'INFO', 'bubble': True}, + # 'smtp': { + # 'from_addr': 'test-errors@example.com', + # 'recipients': ('test@example.com'), + # 'credentials':('testusername', 'password'), + # 'server_addr': ('127.0.0.1', 25), + # 'secure': (), + # 'level': 'DEBUG', + # 'bubble': True + # } +} + +# Templates will use those filters, along with the defaults. +# Consult your engine's documentation on filters if you need help defining +# those. +# TEMPLATE_FILTERS = {} + +# Put in global_context things you want available on all your templates. +# It can be anything, data, functions, modules, etc. +GLOBAL_CONTEXT = {} + +# Add functions here and they will be called with template +# GLOBAL_CONTEXT as parameter when the template is about to be +# rendered +GLOBAL_CONTEXT_FILLER = [] diff --git a/Customization.md b/Customization.md index 860ee7ea..3c537bf7 100644 --- a/Customization.md +++ b/Customization.md @@ -11,7 +11,7 @@ My customizations... <p>Did you like the content? Great!</p> <script type='text/javascript' src='https://ko-fi.com/widgets/widget_2.js'></script> <script type='text/javascript'>kofiwidget2.init('Support Me on Ko-fi', '#2e2e2e', 'F1F41HSJ8');kofiwidget2.draw();</script> - <p>Or visit my <a href="https://damianavila.github.io/blog/stories/support-me.html">support</a> page for more information.</p> + <p>Or visit my <a href="https://damianavila.github.io/blog/stories/support-me/index.html">support</a> page for more information.</p> <br> <p>Btw, don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link at the top of the post if you want to play with it ;-)</p> @@ -34,3 +34,10 @@ My customizations... assets/js/all-nocdn.js=jquery-1.10.2.min.js,jquery.timeago.js,toggle.js,miniPageNav.js * Fontawesome through https https://github.com/getnikola/nikola-themes/commit/c9039ee96cd2322de435f526f3eb384d6234649b + +Last iteration (Nov 2024) + +I commented out the toogle piece from the conf.py file becuase it is curerntly broken and less useful for now. +TODO: Remove all these toogle pieces. +TODO: Remove all the minipage nav as well (not working with Github). +TODO: Use newer font awesome or some alternative. \ No newline at end of file diff --git a/Start.ipynb b/Start.ipynb index bc6d7651..441e4774 100644 --- a/Start.ipynb +++ b/Start.ipynb @@ -62,7 +62,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -76,9 +76,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.13.0" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/__pycache__/conf.cpython-313.pyc b/__pycache__/conf.cpython-313.pyc new file mode 100644 index 00000000..45e9264c Binary files /dev/null and b/__pycache__/conf.cpython-313.pyc differ diff --git a/cache/jinja/__jinja2_1424a9c95f5ec8e60d413c42a25bc77a4b63ee8b.cache b/cache/jinja/__jinja2_1424a9c95f5ec8e60d413c42a25bc77a4b63ee8b.cache index 1aa5d2cb..1f74668e 100644 Binary files a/cache/jinja/__jinja2_1424a9c95f5ec8e60d413c42a25bc77a4b63ee8b.cache and b/cache/jinja/__jinja2_1424a9c95f5ec8e60d413c42a25bc77a4b63ee8b.cache differ diff --git a/cache/jinja/__jinja2_27c4f479bb43430015e8619340ba930b42e950ea.cache b/cache/jinja/__jinja2_27c4f479bb43430015e8619340ba930b42e950ea.cache new file mode 100644 index 00000000..9ec03aa0 Binary files /dev/null and b/cache/jinja/__jinja2_27c4f479bb43430015e8619340ba930b42e950ea.cache differ diff --git a/cache/jinja/__jinja2_2c2cdf8b270c2347729aee6ae510ec45228ba934.cache b/cache/jinja/__jinja2_2c2cdf8b270c2347729aee6ae510ec45228ba934.cache new file mode 100644 index 00000000..bc628fcf Binary files /dev/null and b/cache/jinja/__jinja2_2c2cdf8b270c2347729aee6ae510ec45228ba934.cache differ diff --git a/cache/jinja/__jinja2_408e03e10ee6c1836ff3a880d9c9c92709614e4a.cache b/cache/jinja/__jinja2_408e03e10ee6c1836ff3a880d9c9c92709614e4a.cache new file mode 100644 index 00000000..ccff546d Binary files /dev/null and b/cache/jinja/__jinja2_408e03e10ee6c1836ff3a880d9c9c92709614e4a.cache differ diff --git a/cache/jinja/__jinja2_42065261e76b7ac61d15945dd99b46d11ef2d31d.cache b/cache/jinja/__jinja2_42065261e76b7ac61d15945dd99b46d11ef2d31d.cache index c127559f..6bca6e5e 100644 Binary files a/cache/jinja/__jinja2_42065261e76b7ac61d15945dd99b46d11ef2d31d.cache and b/cache/jinja/__jinja2_42065261e76b7ac61d15945dd99b46d11ef2d31d.cache differ diff --git a/cache/jinja/__jinja2_4478da4418babce1b2f18dca6afcd16ec2e07220.cache b/cache/jinja/__jinja2_4478da4418babce1b2f18dca6afcd16ec2e07220.cache new file mode 100644 index 00000000..1e2a9b9c Binary files /dev/null and b/cache/jinja/__jinja2_4478da4418babce1b2f18dca6afcd16ec2e07220.cache differ diff --git a/cache/jinja/__jinja2_5a1bf6db0a9e32a2956e5578191831a0f81a6712.cache b/cache/jinja/__jinja2_5a1bf6db0a9e32a2956e5578191831a0f81a6712.cache new file mode 100644 index 00000000..671c6a3c Binary files /dev/null and b/cache/jinja/__jinja2_5a1bf6db0a9e32a2956e5578191831a0f81a6712.cache differ diff --git a/cache/jinja/__jinja2_5e46cfeeff2a14274a55bed284465c9788e60bfe.cache b/cache/jinja/__jinja2_5e46cfeeff2a14274a55bed284465c9788e60bfe.cache index 7f0b908f..f7436e5e 100644 Binary files a/cache/jinja/__jinja2_5e46cfeeff2a14274a55bed284465c9788e60bfe.cache and b/cache/jinja/__jinja2_5e46cfeeff2a14274a55bed284465c9788e60bfe.cache differ diff --git a/cache/jinja/__jinja2_6b02d57d49f79b1e518f8cb5629185767166a35d.cache b/cache/jinja/__jinja2_6b02d57d49f79b1e518f8cb5629185767166a35d.cache new file mode 100644 index 00000000..f16ea257 Binary files /dev/null and b/cache/jinja/__jinja2_6b02d57d49f79b1e518f8cb5629185767166a35d.cache differ diff --git a/cache/jinja/__jinja2_8389a4fe86f5f5e709605303e40b3b5804df5d13.cache b/cache/jinja/__jinja2_8389a4fe86f5f5e709605303e40b3b5804df5d13.cache new file mode 100644 index 00000000..3a895f66 Binary files /dev/null and b/cache/jinja/__jinja2_8389a4fe86f5f5e709605303e40b3b5804df5d13.cache differ diff --git a/cache/jinja/__jinja2_91ca63337a9fe4dfd9fc95db668a87b162728989.cache b/cache/jinja/__jinja2_91ca63337a9fe4dfd9fc95db668a87b162728989.cache new file mode 100644 index 00000000..2cc7d9c7 Binary files /dev/null and b/cache/jinja/__jinja2_91ca63337a9fe4dfd9fc95db668a87b162728989.cache differ diff --git a/cache/jinja/__jinja2_a05cabf24db425cb7654ec7e817745f0cf54053b.cache b/cache/jinja/__jinja2_a05cabf24db425cb7654ec7e817745f0cf54053b.cache new file mode 100644 index 00000000..3b04d835 Binary files /dev/null and b/cache/jinja/__jinja2_a05cabf24db425cb7654ec7e817745f0cf54053b.cache differ diff --git a/cache/jinja/__jinja2_a53a5601f5f7378dae2bb87a38d2acc808b9b4c0.cache b/cache/jinja/__jinja2_a53a5601f5f7378dae2bb87a38d2acc808b9b4c0.cache new file mode 100644 index 00000000..eea56698 Binary files /dev/null and b/cache/jinja/__jinja2_a53a5601f5f7378dae2bb87a38d2acc808b9b4c0.cache differ diff --git a/cache/jinja/__jinja2_ac232fb8ae005d5942f0aba85bc07f6fd6e058aa.cache b/cache/jinja/__jinja2_ac232fb8ae005d5942f0aba85bc07f6fd6e058aa.cache new file mode 100644 index 00000000..081e61a5 Binary files /dev/null and b/cache/jinja/__jinja2_ac232fb8ae005d5942f0aba85bc07f6fd6e058aa.cache differ diff --git a/cache/jinja/__jinja2_b003d66a54b238500067e78b0f297d3583057cb0.cache b/cache/jinja/__jinja2_b003d66a54b238500067e78b0f297d3583057cb0.cache new file mode 100644 index 00000000..33714054 Binary files /dev/null and b/cache/jinja/__jinja2_b003d66a54b238500067e78b0f297d3583057cb0.cache differ diff --git a/cache/jinja/__jinja2_b3f689c600553bab13803fb0f7290454aee41b64.cache b/cache/jinja/__jinja2_b3f689c600553bab13803fb0f7290454aee41b64.cache new file mode 100644 index 00000000..10088b72 Binary files /dev/null and b/cache/jinja/__jinja2_b3f689c600553bab13803fb0f7290454aee41b64.cache differ diff --git a/cache/jinja/__jinja2_bf78ea284af06dd653f1623611857af052bad3c2.cache b/cache/jinja/__jinja2_bf78ea284af06dd653f1623611857af052bad3c2.cache index 59473476..3a9e2063 100644 Binary files a/cache/jinja/__jinja2_bf78ea284af06dd653f1623611857af052bad3c2.cache and b/cache/jinja/__jinja2_bf78ea284af06dd653f1623611857af052bad3c2.cache differ diff --git a/cache/jinja/__jinja2_d18a7e23288807856bde0b72920980e5c037e91e.cache b/cache/jinja/__jinja2_d18a7e23288807856bde0b72920980e5c037e91e.cache index 6275d6c7..3f20ef2e 100644 Binary files a/cache/jinja/__jinja2_d18a7e23288807856bde0b72920980e5c037e91e.cache and b/cache/jinja/__jinja2_d18a7e23288807856bde0b72920980e5c037e91e.cache differ diff --git a/cache/jinja/__jinja2_d566e3eaa6d8eeb984e2beda151d16b151847187.cache b/cache/jinja/__jinja2_d566e3eaa6d8eeb984e2beda151d16b151847187.cache new file mode 100644 index 00000000..03557c3e Binary files /dev/null and b/cache/jinja/__jinja2_d566e3eaa6d8eeb984e2beda151d16b151847187.cache differ diff --git a/cache/jinja/__jinja2_e4ecb48773f3ad31c75d25bf29d1740ed861d2c4.cache b/cache/jinja/__jinja2_e4ecb48773f3ad31c75d25bf29d1740ed861d2c4.cache new file mode 100644 index 00000000..21c0f094 Binary files /dev/null and b/cache/jinja/__jinja2_e4ecb48773f3ad31c75d25bf29d1740ed861d2c4.cache differ diff --git a/cache/jinja/__jinja2_f141e57a37c67d78f73a413523a83330eb1070af.cache b/cache/jinja/__jinja2_f141e57a37c67d78f73a413523a83330eb1070af.cache new file mode 100644 index 00000000..014950f0 Binary files /dev/null and b/cache/jinja/__jinja2_f141e57a37c67d78f73a413523a83330eb1070af.cache differ diff --git a/cache/posts/48-themes-for-your-ipython-notebook.es.html b/cache/posts/48-themes-for-your-ipython-notebook.es.html index 121df766..fccba669 100644 --- a/cache/posts/48-themes-for-your-ipython-notebook.es.html +++ b/cache/posts/48-themes-for-your-ipython-notebook.es.html @@ -1,366 +1,956 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f2dbce1a"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, a short post to give you some material to play with over the weekend ;-).</p> <p>Today, I woke up early and whereas I was drinking a <em>mate</em> (a native drink here in Argentina) for breakfast, I remember a tweet from <a href="https://twitter.com/nsonnad">Nikhil Sonnad</a> where I was mentioned:</p> <!-- TEASER_END --> - -<p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p>Sent PR to base16 for IPython notebook colorschemes. Check them out at <a href="https://t.co/SBbwBfLGli">https://t.co/SBbwBfLGli</a> cc <a href="https://twitter.com/oceankidbilly">@oceankidbilly</a> <a href="https://twitter.com/damian_avila">@damian_avila</a></p>— Nikhil Sonnad (@nsonnad) <a href="https://twitter.com/nsonnad/statuses/454996539992059905">April 12, 2014</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>Essentially, he made available 48 <strong>IPython notebook</strong> themes based in the <strong>base16</strong> color scheme generator. Thanks Nikhil for your work!!!</p> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p>Sent PR to base16 for IPython notebook colorschemes. Check them out at <a href="https://t.co/SBbwBfLGli">https://t.co/SBbwBfLGli</a> cc <a href="https://twitter.com/oceankidbilly">@oceankidbilly</a> <a href="https://twitter.com/damian_avila">@damian_avila</a></p>— Nikhil Sonnad (@nsonnad) <a href="https://twitter.com/nsonnad/statuses/454996539992059905">April 12, 2014</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>Essentially, he made available 48 <strong>IPython notebook</strong> themes based in the <strong>base16</strong> color scheme generator. Thanks Nikhil for your work!!!</p> <p>Well, I want to try them all and quickly, so I wrote some little code to do it:</p> <p>First, some imports...</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [1]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> -<span class="kn">import</span> <span class="nn">subprocess</span> -<span class="kn">import</span> <span class="nn">urllib</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=e1532464"> +<div class="input"> +<div class="prompt input_prompt">In [1]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">subprocess</span> +<span class="kn">import</span> <span class="nn">urllib</span> +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=7e304694"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Second, make a list with all the theme names...</p> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=6dde3aca"> +<div class="input"> +<div class="prompt input_prompt">In [2]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">theme_names</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'3024-dark'</span><span class="p">,</span> + <span class="s1">'3024-light'</span><span class="p">,</span> + <span class="s1">'atelierdune-dark'</span><span class="p">,</span> + <span class="s1">'atelierdune-light'</span><span class="p">,</span> + <span class="s1">'atelierforest-dark'</span><span class="p">,</span> + <span class="s1">'atelierforest-light'</span><span class="p">,</span> + <span class="s1">'atelierheath-dark'</span><span class="p">,</span> + <span class="s1">'atelierheath-light'</span><span class="p">,</span> + <span class="s1">'atelierlakeside-dark'</span><span class="p">,</span> + <span class="s1">'atelierlakeside-light'</span><span class="p">,</span> + <span class="s1">'atelierseaside-dark'</span><span class="p">,</span> + <span class="s1">'atelierseaside-light'</span><span class="p">,</span> + <span class="s1">'bespin-dark'</span><span class="p">,</span> + <span class="s1">'bespin-light'</span><span class="p">,</span> + <span class="s1">'chalk-dark'</span><span class="p">,</span> + <span class="s1">'chalk-light'</span><span class="p">,</span> + <span class="s1">'default-dark'</span><span class="p">,</span> + <span class="s1">'default-light'</span><span class="p">,</span> + <span class="s1">'eighties-dark'</span><span class="p">,</span> + <span class="s1">'eighties-light'</span><span class="p">,</span> + <span class="s1">'grayscale-dark'</span><span class="p">,</span> + <span class="s1">'grayscale-light'</span><span class="p">,</span> + <span class="s1">'greenscreen-dark'</span><span class="p">,</span> + <span class="s1">'greenscreen-light'</span><span class="p">,</span> + <span class="s1">'isotope-dark'</span><span class="p">,</span> + <span class="s1">'isotope-light'</span><span class="p">,</span> + <span class="s1">'londontube-dark'</span><span class="p">,</span> + <span class="s1">'londontube-light'</span><span class="p">,</span> + <span class="s1">'marrakesh-dark'</span><span class="p">,</span> + <span class="s1">'marrakesh-light'</span><span class="p">,</span> + <span class="s1">'mocha-dark'</span><span class="p">,</span> + <span class="s1">'mocha-light'</span><span class="p">,</span> + <span class="s1">'monokai-dark'</span><span class="p">,</span> + <span class="s1">'monokai-light'</span><span class="p">,</span> + <span class="s1">'ocean-dark'</span><span class="p">,</span> + <span class="s1">'ocean-light'</span><span class="p">,</span> + <span class="s1">'paraiso-dark'</span><span class="p">,</span> + <span class="s1">'paraiso-light'</span><span class="p">,</span> + <span class="s1">'railscasts-dark'</span><span class="p">,</span> + <span class="s1">'railscasts-light'</span><span class="p">,</span> + <span class="s1">'shapeshifter-dark'</span><span class="p">,</span> + <span class="s1">'shapeshifter-light'</span><span class="p">,</span> + <span class="s1">'solarized-dark'</span><span class="p">,</span> + <span class="s1">'solarized-light'</span><span class="p">,</span> + <span class="s1">'tomorrow-dark'</span><span class="p">,</span> + <span class="s1">'tomorrow-light'</span><span class="p">,</span> + <span class="s1">'twilight-dark'</span><span class="p">,</span> + <span class="s1">'twilight-light'</span><span class="p">]</span> +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f21a6bd5"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The themes are <code>css</code> files, so we can create a new profile for each theme and add the css content to the <code>custom.css</code> file inside each profile. +To do it, I use some little magic <em>tricks</em> from <strong>IPython</strong>...</p> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=5cd8859c"> +<div class="input"> +<div class="prompt input_prompt">In [3]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">theme_names</span><span class="p">:</span> + <span class="o">!</span>ipython<span class="w"> </span>profile<span class="w"> </span>create<span class="w"> </span><span class="nv">$i</span> + <span class="n">profile_dir</span> <span class="o">=</span> <span class="o">!</span>ipython<span class="w"> </span>locate<span class="w"> </span>profile<span class="w"> </span><span class="nv">$i</span> + <span class="n">url</span> <span class="o">=</span> <span class="s2">"https://raw.githubusercontent.com/nsonnad/base16-ipython-notebook/master/base16-"</span> <span class="o">+</span> <span class="n">i</span> <span class="o">+</span> <span class="s2">".css"</span> + <span class="n">tgt</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">profile_dir</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">'static'</span><span class="p">,</span> <span class="s1">'custom'</span><span class="p">,</span> <span class="s2">"custom.css"</span><span class="p">)</span> + <span class="n">urllib</span><span class="o">.</span><span class="n">urlretrieve</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">tgt</span><span class="p">)</span> +</pre></div> +</div> +</div> +</div> +<div class="output_wrapper"> +<div class="output"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_nbconvert_config.py' +</pre> +</div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_notebook_config.py' +</pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<p>Second, make a list with all the theme names...</p> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_nbconvert_config.py' +</pre> </div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_config.py' +</pre> +</div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [2]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">theme_names</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'3024-dark'</span><span class="p">,</span> - <span class="s1">'3024-light'</span><span class="p">,</span> - <span class="s1">'atelierdune-dark'</span><span class="p">,</span> - <span class="s1">'atelierdune-light'</span><span class="p">,</span> - <span class="s1">'atelierforest-dark'</span><span class="p">,</span> - <span class="s1">'atelierforest-light'</span><span class="p">,</span> - <span class="s1">'atelierheath-dark'</span><span class="p">,</span> - <span class="s1">'atelierheath-light'</span><span class="p">,</span> - <span class="s1">'atelierlakeside-dark'</span><span class="p">,</span> - <span class="s1">'atelierlakeside-light'</span><span class="p">,</span> - <span class="s1">'atelierseaside-dark'</span><span class="p">,</span> - <span class="s1">'atelierseaside-light'</span><span class="p">,</span> - <span class="s1">'bespin-dark'</span><span class="p">,</span> - <span class="s1">'bespin-light'</span><span class="p">,</span> - <span class="s1">'chalk-dark'</span><span class="p">,</span> - <span class="s1">'chalk-light'</span><span class="p">,</span> - <span class="s1">'default-dark'</span><span class="p">,</span> - <span class="s1">'default-light'</span><span class="p">,</span> - <span class="s1">'eighties-dark'</span><span class="p">,</span> - <span class="s1">'eighties-light'</span><span class="p">,</span> - <span class="s1">'grayscale-dark'</span><span class="p">,</span> - <span class="s1">'grayscale-light'</span><span class="p">,</span> - <span class="s1">'greenscreen-dark'</span><span class="p">,</span> - <span class="s1">'greenscreen-light'</span><span class="p">,</span> - <span class="s1">'isotope-dark'</span><span class="p">,</span> - <span class="s1">'isotope-light'</span><span class="p">,</span> - <span class="s1">'londontube-dark'</span><span class="p">,</span> - <span class="s1">'londontube-light'</span><span class="p">,</span> - <span class="s1">'marrakesh-dark'</span><span class="p">,</span> - <span class="s1">'marrakesh-light'</span><span class="p">,</span> - <span class="s1">'mocha-dark'</span><span class="p">,</span> - <span class="s1">'mocha-light'</span><span class="p">,</span> - <span class="s1">'monokai-dark'</span><span class="p">,</span> - <span class="s1">'monokai-light'</span><span class="p">,</span> - <span class="s1">'ocean-dark'</span><span class="p">,</span> - <span class="s1">'ocean-light'</span><span class="p">,</span> - <span class="s1">'paraiso-dark'</span><span class="p">,</span> - <span class="s1">'paraiso-light'</span><span class="p">,</span> - <span class="s1">'railscasts-dark'</span><span class="p">,</span> - <span class="s1">'railscasts-light'</span><span class="p">,</span> - <span class="s1">'shapeshifter-dark'</span><span class="p">,</span> - <span class="s1">'shapeshifter-light'</span><span class="p">,</span> - <span class="s1">'solarized-dark'</span><span class="p">,</span> - <span class="s1">'solarized-light'</span><span class="p">,</span> - <span class="s1">'tomorrow-dark'</span><span class="p">,</span> - <span class="s1">'tomorrow-light'</span><span class="p">,</span> - <span class="s1">'twilight-dark'</span><span class="p">,</span> - <span class="s1">'twilight-light'</span><span class="p">]</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_notebook_config.py' +</pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_nbconvert_config.py' +</pre> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<p>The themes are <code>css</code> files, so we can create a new profile for each theme and add the css content to the <code>custom.css</code> file inside each profile. -To do it, I use some little magic <em>tricks</em> from <strong>IPython</strong>...</p> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_notebook_config.py' +</pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [3]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">theme_names</span><span class="p">:</span> - <span class="o">!</span>ipython profile create <span class="nv">$i</span> - <span class="n">profile_dir</span> <span class="o">=</span> <span class="o">!</span>ipython locate profile <span class="nv">$i</span> - <span class="n">url</span> <span class="o">=</span> <span class="s2">"https://raw.githubusercontent.com/nsonnad/base16-ipython-notebook/master/base16-"</span> <span class="o">+</span> <span class="n">i</span> <span class="o">+</span> <span class="s2">".css"</span> - <span class="n">tgt</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">profile_dir</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">'static'</span><span class="p">,</span> <span class="s1">'custom'</span><span class="p">,</span> <span class="s2">"custom.css"</span><span class="p">)</span> - <span class="n">urllib</span><span class="o">.</span><span class="n">urlretrieve</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">tgt</span><span class="p">)</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_nbconvert_config.py' +</pre> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - -<div class="output_wrapper"> -<div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_nbconvert_config.py' +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_notebook_config.py' </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_nbconvert_config.py' +</pre> </div> </div> - - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_notebook_config.py' +</pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=bcf6ca52"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Now, I want to try it... quickly... so I launch a new <strong>IPython</strong> server for each <em>profile</em> in specific <em>ports</em>. I also pass the <code>--no-browser</code> option to avoid opening 48 tabs in a row (depending of your computing power this can be problematic).</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=da804c6e"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">theme_names</span><span class="p">):</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">theme_names</span><span class="p">):</span> <span class="n">port</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="mi">9000</span> <span class="o">+</span> <span class="n">i</span><span class="p">)</span> - <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s2">"ipython"</span><span class="p">,</span> <span class="s2">"notebook"</span><span class="p">,</span> <span class="s2">"--profile="</span> <span class="o">+</span> <span class="n">name</span><span class="p">,</span> <span class="s2">"--port="</span> <span class="o">+</span> <span class="n">port</span><span class="p">,</span> <span class="s2">"--no-browser"</span><span class="p">])</span> + <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s2">"ipython"</span><span class="p">,</span> <span class="s2">"notebook"</span><span class="p">,</span> <span class="s2">"--profile="</span> <span class="o">+</span> <span class="n">name</span><span class="p">,</span> <span class="s2">"--port="</span> <span class="o">+</span> <span class="n">port</span><span class="p">,</span> <span class="s2">"--no-browser"</span><span class="p">])</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=757bfe9d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Finally, because I am lazy ;-), I build the urls to see this same notebook with each different theme (don't forget to use the <em>incognito mode</em> of your browser to avoid <code>css</code> caching and at least <strong>IPython 2.0</strong>).</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=45a69694"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">base_url</span> <span class="o">=</span> <span class="s2">"http://127.0.0.1:"</span> -<span class="n">notebook</span> <span class="o">=</span> <span class="s2">"/notebooks/48-themes-for-your-ipython-notebook.ipynb"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">base_url</span> <span class="o">=</span> <span class="s2">"http://127.0.0.1:"</span> +<span class="n">notebook</span> <span class="o">=</span> <span class="s2">"/notebooks/48-themes-for-your-ipython-notebook.ipynb"</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">theme_names</span><span class="p">):</span> <span class="n">port</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="mi">9000</span> <span class="o">+</span> <span class="n">i</span><span class="p">)</span> <span class="n">url</span> <span class="o">=</span> <span class="n">base_url</span> <span class="o">+</span> <span class="n">port</span> <span class="o">+</span> <span class="n">notebook</span> <span class="nb">print</span> <span class="n">url</span><span class="p">,</span> <span class="n">name</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>http://127.0.0.1:9000/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-dark http://127.0.0.1:9001/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-light @@ -412,49 +1002,36 @@ http://127.0.0.1:9047/notebooks/48-themes-for-your-ipython-notebook.ipynb twilight-light </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9a84f77b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Easy and quick, don't you think?</p> <p>OK, a lot of <strong>IPython</strong> servers opened, let's kill them all!!! I feel like <a href="http://en.wikipedia.org/wiki/George_R._R._Martin">George R. R. Martin</a> ;-).</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=3c657fba"> <div class="input"> -<div class="prompt input_prompt">In [ ]:</div> +<div class="prompt input_prompt">In [ ]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>killall -9 ipython +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>killall<span class="w"> </span>-9<span class="w"> </span>ipython </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=7c2b43e3"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Obviously, this command also killed the <em>current</em> notebook (remember, this post is in fact an <strong>IPython notebook</strong>, and you can get it from the <strong>source</strong> link at the top of the post)... but I am right with that... this is the end of this post.</p> <p>Final note: I did not like any <em>complete</em> theme, but I really like some <em>part</em> from several themes, so it worths to see them to take each nice part and make my own theme in the future.</p> <p>Good weekend!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/48-themes-for-your-ipython-notebook.html b/cache/posts/48-themes-for-your-ipython-notebook.html index 121df766..9932320b 100644 --- a/cache/posts/48-themes-for-your-ipython-notebook.html +++ b/cache/posts/48-themes-for-your-ipython-notebook.html @@ -1,366 +1,956 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=37312cd9"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, a short post to give you some material to play with over the weekend ;-).</p> <p>Today, I woke up early and whereas I was drinking a <em>mate</em> (a native drink here in Argentina) for breakfast, I remember a tweet from <a href="https://twitter.com/nsonnad">Nikhil Sonnad</a> where I was mentioned:</p> <!-- TEASER_END --> - -<p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p>Sent PR to base16 for IPython notebook colorschemes. Check them out at <a href="https://t.co/SBbwBfLGli">https://t.co/SBbwBfLGli</a> cc <a href="https://twitter.com/oceankidbilly">@oceankidbilly</a> <a href="https://twitter.com/damian_avila">@damian_avila</a></p>— Nikhil Sonnad (@nsonnad) <a href="https://twitter.com/nsonnad/statuses/454996539992059905">April 12, 2014</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>Essentially, he made available 48 <strong>IPython notebook</strong> themes based in the <strong>base16</strong> color scheme generator. Thanks Nikhil for your work!!!</p> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p>Sent PR to base16 for IPython notebook colorschemes. Check them out at <a href="https://t.co/SBbwBfLGli">https://t.co/SBbwBfLGli</a> cc <a href="https://twitter.com/oceankidbilly">@oceankidbilly</a> <a href="https://twitter.com/damian_avila">@damian_avila</a></p>— Nikhil Sonnad (@nsonnad) <a href="https://twitter.com/nsonnad/statuses/454996539992059905">April 12, 2014</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>Essentially, he made available 48 <strong>IPython notebook</strong> themes based in the <strong>base16</strong> color scheme generator. Thanks Nikhil for your work!!!</p> <p>Well, I want to try them all and quickly, so I wrote some little code to do it:</p> <p>First, some imports...</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [1]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> -<span class="kn">import</span> <span class="nn">subprocess</span> -<span class="kn">import</span> <span class="nn">urllib</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=d6605319"> +<div class="input"> +<div class="prompt input_prompt">In [1]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">subprocess</span> +<span class="kn">import</span> <span class="nn">urllib</span> +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1d6593ae"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Second, make a list with all the theme names...</p> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=a436a2f7"> +<div class="input"> +<div class="prompt input_prompt">In [2]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">theme_names</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'3024-dark'</span><span class="p">,</span> + <span class="s1">'3024-light'</span><span class="p">,</span> + <span class="s1">'atelierdune-dark'</span><span class="p">,</span> + <span class="s1">'atelierdune-light'</span><span class="p">,</span> + <span class="s1">'atelierforest-dark'</span><span class="p">,</span> + <span class="s1">'atelierforest-light'</span><span class="p">,</span> + <span class="s1">'atelierheath-dark'</span><span class="p">,</span> + <span class="s1">'atelierheath-light'</span><span class="p">,</span> + <span class="s1">'atelierlakeside-dark'</span><span class="p">,</span> + <span class="s1">'atelierlakeside-light'</span><span class="p">,</span> + <span class="s1">'atelierseaside-dark'</span><span class="p">,</span> + <span class="s1">'atelierseaside-light'</span><span class="p">,</span> + <span class="s1">'bespin-dark'</span><span class="p">,</span> + <span class="s1">'bespin-light'</span><span class="p">,</span> + <span class="s1">'chalk-dark'</span><span class="p">,</span> + <span class="s1">'chalk-light'</span><span class="p">,</span> + <span class="s1">'default-dark'</span><span class="p">,</span> + <span class="s1">'default-light'</span><span class="p">,</span> + <span class="s1">'eighties-dark'</span><span class="p">,</span> + <span class="s1">'eighties-light'</span><span class="p">,</span> + <span class="s1">'grayscale-dark'</span><span class="p">,</span> + <span class="s1">'grayscale-light'</span><span class="p">,</span> + <span class="s1">'greenscreen-dark'</span><span class="p">,</span> + <span class="s1">'greenscreen-light'</span><span class="p">,</span> + <span class="s1">'isotope-dark'</span><span class="p">,</span> + <span class="s1">'isotope-light'</span><span class="p">,</span> + <span class="s1">'londontube-dark'</span><span class="p">,</span> + <span class="s1">'londontube-light'</span><span class="p">,</span> + <span class="s1">'marrakesh-dark'</span><span class="p">,</span> + <span class="s1">'marrakesh-light'</span><span class="p">,</span> + <span class="s1">'mocha-dark'</span><span class="p">,</span> + <span class="s1">'mocha-light'</span><span class="p">,</span> + <span class="s1">'monokai-dark'</span><span class="p">,</span> + <span class="s1">'monokai-light'</span><span class="p">,</span> + <span class="s1">'ocean-dark'</span><span class="p">,</span> + <span class="s1">'ocean-light'</span><span class="p">,</span> + <span class="s1">'paraiso-dark'</span><span class="p">,</span> + <span class="s1">'paraiso-light'</span><span class="p">,</span> + <span class="s1">'railscasts-dark'</span><span class="p">,</span> + <span class="s1">'railscasts-light'</span><span class="p">,</span> + <span class="s1">'shapeshifter-dark'</span><span class="p">,</span> + <span class="s1">'shapeshifter-light'</span><span class="p">,</span> + <span class="s1">'solarized-dark'</span><span class="p">,</span> + <span class="s1">'solarized-light'</span><span class="p">,</span> + <span class="s1">'tomorrow-dark'</span><span class="p">,</span> + <span class="s1">'tomorrow-light'</span><span class="p">,</span> + <span class="s1">'twilight-dark'</span><span class="p">,</span> + <span class="s1">'twilight-light'</span><span class="p">]</span> +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1cb33ab6"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The themes are <code>css</code> files, so we can create a new profile for each theme and add the css content to the <code>custom.css</code> file inside each profile. +To do it, I use some little magic <em>tricks</em> from <strong>IPython</strong>...</p> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=ddd170a6"> +<div class="input"> +<div class="prompt input_prompt">In [3]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">theme_names</span><span class="p">:</span> + <span class="o">!</span>ipython<span class="w"> </span>profile<span class="w"> </span>create<span class="w"> </span><span class="nv">$i</span> + <span class="n">profile_dir</span> <span class="o">=</span> <span class="o">!</span>ipython<span class="w"> </span>locate<span class="w"> </span>profile<span class="w"> </span><span class="nv">$i</span> + <span class="n">url</span> <span class="o">=</span> <span class="s2">"https://raw.githubusercontent.com/nsonnad/base16-ipython-notebook/master/base16-"</span> <span class="o">+</span> <span class="n">i</span> <span class="o">+</span> <span class="s2">".css"</span> + <span class="n">tgt</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">profile_dir</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">'static'</span><span class="p">,</span> <span class="s1">'custom'</span><span class="p">,</span> <span class="s2">"custom.css"</span><span class="p">)</span> + <span class="n">urllib</span><span class="o">.</span><span class="n">urlretrieve</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">tgt</span><span class="p">)</span> +</pre></div> +</div> +</div> +</div> +<div class="output_wrapper"> +<div class="output"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_nbconvert_config.py' +</pre> +</div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_notebook_config.py' +</pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<p>Second, make a list with all the theme names...</p> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_nbconvert_config.py' +</pre> </div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_config.py' +</pre> +</div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [2]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">theme_names</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'3024-dark'</span><span class="p">,</span> - <span class="s1">'3024-light'</span><span class="p">,</span> - <span class="s1">'atelierdune-dark'</span><span class="p">,</span> - <span class="s1">'atelierdune-light'</span><span class="p">,</span> - <span class="s1">'atelierforest-dark'</span><span class="p">,</span> - <span class="s1">'atelierforest-light'</span><span class="p">,</span> - <span class="s1">'atelierheath-dark'</span><span class="p">,</span> - <span class="s1">'atelierheath-light'</span><span class="p">,</span> - <span class="s1">'atelierlakeside-dark'</span><span class="p">,</span> - <span class="s1">'atelierlakeside-light'</span><span class="p">,</span> - <span class="s1">'atelierseaside-dark'</span><span class="p">,</span> - <span class="s1">'atelierseaside-light'</span><span class="p">,</span> - <span class="s1">'bespin-dark'</span><span class="p">,</span> - <span class="s1">'bespin-light'</span><span class="p">,</span> - <span class="s1">'chalk-dark'</span><span class="p">,</span> - <span class="s1">'chalk-light'</span><span class="p">,</span> - <span class="s1">'default-dark'</span><span class="p">,</span> - <span class="s1">'default-light'</span><span class="p">,</span> - <span class="s1">'eighties-dark'</span><span class="p">,</span> - <span class="s1">'eighties-light'</span><span class="p">,</span> - <span class="s1">'grayscale-dark'</span><span class="p">,</span> - <span class="s1">'grayscale-light'</span><span class="p">,</span> - <span class="s1">'greenscreen-dark'</span><span class="p">,</span> - <span class="s1">'greenscreen-light'</span><span class="p">,</span> - <span class="s1">'isotope-dark'</span><span class="p">,</span> - <span class="s1">'isotope-light'</span><span class="p">,</span> - <span class="s1">'londontube-dark'</span><span class="p">,</span> - <span class="s1">'londontube-light'</span><span class="p">,</span> - <span class="s1">'marrakesh-dark'</span><span class="p">,</span> - <span class="s1">'marrakesh-light'</span><span class="p">,</span> - <span class="s1">'mocha-dark'</span><span class="p">,</span> - <span class="s1">'mocha-light'</span><span class="p">,</span> - <span class="s1">'monokai-dark'</span><span class="p">,</span> - <span class="s1">'monokai-light'</span><span class="p">,</span> - <span class="s1">'ocean-dark'</span><span class="p">,</span> - <span class="s1">'ocean-light'</span><span class="p">,</span> - <span class="s1">'paraiso-dark'</span><span class="p">,</span> - <span class="s1">'paraiso-light'</span><span class="p">,</span> - <span class="s1">'railscasts-dark'</span><span class="p">,</span> - <span class="s1">'railscasts-light'</span><span class="p">,</span> - <span class="s1">'shapeshifter-dark'</span><span class="p">,</span> - <span class="s1">'shapeshifter-light'</span><span class="p">,</span> - <span class="s1">'solarized-dark'</span><span class="p">,</span> - <span class="s1">'solarized-light'</span><span class="p">,</span> - <span class="s1">'tomorrow-dark'</span><span class="p">,</span> - <span class="s1">'tomorrow-light'</span><span class="p">,</span> - <span class="s1">'twilight-dark'</span><span class="p">,</span> - <span class="s1">'twilight-light'</span><span class="p">]</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_notebook_config.py' +</pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_nbconvert_config.py' +</pre> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<p>The themes are <code>css</code> files, so we can create a new profile for each theme and add the css content to the <code>custom.css</code> file inside each profile. -To do it, I use some little magic <em>tricks</em> from <strong>IPython</strong>...</p> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_notebook_config.py' +</pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [3]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">theme_names</span><span class="p">:</span> - <span class="o">!</span>ipython profile create <span class="nv">$i</span> - <span class="n">profile_dir</span> <span class="o">=</span> <span class="o">!</span>ipython locate profile <span class="nv">$i</span> - <span class="n">url</span> <span class="o">=</span> <span class="s2">"https://raw.githubusercontent.com/nsonnad/base16-ipython-notebook/master/base16-"</span> <span class="o">+</span> <span class="n">i</span> <span class="o">+</span> <span class="s2">".css"</span> - <span class="n">tgt</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">profile_dir</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">'static'</span><span class="p">,</span> <span class="s1">'custom'</span><span class="p">,</span> <span class="s2">"custom.css"</span><span class="p">)</span> - <span class="n">urllib</span><span class="o">.</span><span class="n">urlretrieve</span> <span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">tgt</span><span class="p">)</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_nbconvert_config.py' +</pre> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - -<div class="output_wrapper"> -<div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_nbconvert_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_notebook_config.py' -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_nbconvert_config.py' +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_notebook_config.py' </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_nbconvert_config.py' +</pre> </div> </div> - - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_notebook_config.py' +</pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_notebook_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_nbconvert_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_config.py' +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_notebook_config.py' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_nbconvert_config.py' +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=d919a97d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Now, I want to try it... quickly... so I launch a new <strong>IPython</strong> server for each <em>profile</em> in specific <em>ports</em>. I also pass the <code>--no-browser</code> option to avoid opening 48 tabs in a row (depending of your computing power this can be problematic).</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=3381a23f"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">theme_names</span><span class="p">):</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">theme_names</span><span class="p">):</span> <span class="n">port</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="mi">9000</span> <span class="o">+</span> <span class="n">i</span><span class="p">)</span> - <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s2">"ipython"</span><span class="p">,</span> <span class="s2">"notebook"</span><span class="p">,</span> <span class="s2">"--profile="</span> <span class="o">+</span> <span class="n">name</span><span class="p">,</span> <span class="s2">"--port="</span> <span class="o">+</span> <span class="n">port</span><span class="p">,</span> <span class="s2">"--no-browser"</span><span class="p">])</span> + <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s2">"ipython"</span><span class="p">,</span> <span class="s2">"notebook"</span><span class="p">,</span> <span class="s2">"--profile="</span> <span class="o">+</span> <span class="n">name</span><span class="p">,</span> <span class="s2">"--port="</span> <span class="o">+</span> <span class="n">port</span><span class="p">,</span> <span class="s2">"--no-browser"</span><span class="p">])</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=76f37ca7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Finally, because I am lazy ;-), I build the urls to see this same notebook with each different theme (don't forget to use the <em>incognito mode</em> of your browser to avoid <code>css</code> caching and at least <strong>IPython 2.0</strong>).</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=ffe34f3c"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">base_url</span> <span class="o">=</span> <span class="s2">"http://127.0.0.1:"</span> -<span class="n">notebook</span> <span class="o">=</span> <span class="s2">"/notebooks/48-themes-for-your-ipython-notebook.ipynb"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">base_url</span> <span class="o">=</span> <span class="s2">"http://127.0.0.1:"</span> +<span class="n">notebook</span> <span class="o">=</span> <span class="s2">"/notebooks/48-themes-for-your-ipython-notebook.ipynb"</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">theme_names</span><span class="p">):</span> <span class="n">port</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="mi">9000</span> <span class="o">+</span> <span class="n">i</span><span class="p">)</span> <span class="n">url</span> <span class="o">=</span> <span class="n">base_url</span> <span class="o">+</span> <span class="n">port</span> <span class="o">+</span> <span class="n">notebook</span> <span class="nb">print</span> <span class="n">url</span><span class="p">,</span> <span class="n">name</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>http://127.0.0.1:9000/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-dark http://127.0.0.1:9001/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-light @@ -412,49 +1002,36 @@ http://127.0.0.1:9047/notebooks/48-themes-for-your-ipython-notebook.ipynb twilight-light </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9f68c24f"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Easy and quick, don't you think?</p> <p>OK, a lot of <strong>IPython</strong> servers opened, let's kill them all!!! I feel like <a href="http://en.wikipedia.org/wiki/George_R._R._Martin">George R. R. Martin</a> ;-).</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=bf308a02"> <div class="input"> -<div class="prompt input_prompt">In [ ]:</div> +<div class="prompt input_prompt">In [ ]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>killall -9 ipython +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>killall<span class="w"> </span>-9<span class="w"> </span>ipython </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=883d5d0c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Obviously, this command also killed the <em>current</em> notebook (remember, this post is in fact an <strong>IPython notebook</strong>, and you can get it from the <strong>source</strong> link at the top of the post)... but I am right with that... this is the end of this post.</p> <p>Final note: I did not like any <em>complete</em> theme, but I really like some <em>part</em> from several themes, so it worths to see them to take each nice part and make my own theme in the future.</p> <p>Good weekend!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html b/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html index 6ee714eb..10097a16 100644 --- a/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html +++ b/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.es.html @@ -1,14 +1,14 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> <!-- TEASER_END --> - <p>Recently, I have been involved with the <a href="https://executablebooks.org/en/latest/">Executable Books</a> project and community (you can learn more about them <a href="https://executablebooks.org/en/latest/about.html">here</a>). One of the major projects inside that community is the <a href="https://github.com/executablebooks/MyST-Parser">MyST-Parser</a>, @@ -28,14 +28,13 @@ multiple flavors of Markdown as Nikola plugins), I realized it would interesting to explore how this flavor of Markdown could potentially integrate with the Nikola ecosystem!</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="First-impressions-(someone-has-beaten-me-to-it...)">First impressions (someone has beaten me to it...)<a class="anchor-link" href="#First-impressions-(someone-has-beaten-me-to-it...)">¶</a></h2><p>The first idea was to implement MyST support in Nikola. The second one was just a search +<h2 id="First-impressions-(someone-has-beaten-me-to-it...)">First impressions (someone has beaten me to it...)<a class="anchor-link" href="#First-impressions-(someone-has-beaten-me-to-it...)">¶</a></h2><p>The first idea was to implement MyST support in Nikola. The second one was just a search to see if the first idea was not previously explored by others. And indeed that was the case! Roberto, the Nikola creator, wrote a plugin for MyST about a year ago (there is <a href="https://ralsina.me/tr/es/weblog/posts/new-plugins-for-nikola.html">a brief blog post talking about it</a>). @@ -46,96 +45,66 @@ <h2 id="First-impressions-(someone-has-beaten-me-to-it...)">First impressions (s <p>Roberto used the MyST Python API to generate the HTML output the Nikola machinery was going to use to build the blog post.</p> <p>Problem solved! Well, actually, it was not that simple...</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Current-limitations-(there-is-always-a-but...)">Current limitations (there is always a but...)<a class="anchor-link" href="#Current-limitations-(there-is-always-a-but...)">¶</a></h2><p>One of the key concepts in the MyST (and rST) world is the support for <a href="https://myst-parser.readthedocs.io/en/latest/sphinx/intro.html#reference-a-section-label-with-a-role">roles</a> +<h2 id="Current-limitations-(there-is-always-a-but...)">Current limitations (there is always a but...)<a class="anchor-link" href="#Current-limitations-(there-is-always-a-but...)">¶</a></h2><p>One of the key concepts in the MyST (and rST) world is the support for <a href="https://myst-parser.readthedocs.io/en/latest/sphinx/intro.html#reference-a-section-label-with-a-role">roles</a> and <a href="https://myst-parser.readthedocs.io/en/latest/sphinx/intro.html#extend-markdown-with-a-directive">directives</a>. People using rST would be tempted to use MyST and the MyST plugin for Nikola if they have support for the main pieces they use on a daily basis to save them some time.</p> <p>So, what happens when you try to use the MyST Python API to render a simple directive:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="s2">```</span><span class="si">{admonition}</span><span class="s2"> This is my admonition</span> <span class="s2">This is my note</span> <span class="s2">```</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[3]:</div> - - - - +<div class="prompt output_prompt">Out[3]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>'<pre><code class="language-{admonition}">This is my note\n</code></pre>\n'</pre> +<pre>'<pre><code class="language-{admonition}">This is my note\n</code></pre>\n'</pre> </div> - </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -144,45 +113,48 @@ <h2 id="Current-limitations-(there-is-always-a-but...)">Current limitations (the When I searched into the MyST and Nikola issue trackers, I found a <a href="https://github.com/executablebooks/MyST-Parser/issues/307">report</a> about this problem.</p> <p>One of the answers from a MyST core contributor was particularly interesting:</p> -<blockquote><blockquote><p>I don't know if it's intended to behave this way.</p> +<blockquote> +<blockquote> +<p>I don't know if it's intended to behave this way.</p> +</blockquote> </blockquote> +<blockquote> <p>Heya, yes it is; you have to use sphinx to fully parse to HTML</p> </blockquote> <p>That surprised me, as I assumed that roles and directives would be supported by the Python API, but I learnt things are a little bit more complex than that!</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Understanding the limitations (fun/not fun dive, actually fun...)<a class="anchor-link" href="#Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">¶</a></h2><p>I started digging into the codebase and some MyST documentation.</p> +<h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Understanding the limitations (fun/not fun dive, actually fun...)<a class="anchor-link" href="#Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">¶</a></h2><p>I started digging into the codebase and some MyST documentation.</p> <p>If you look at the <code>to_html</code> function I showed before:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">config</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">MdParserConfig</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>     <span class="n">config</span> <span class="o">=</span> <span class="n">config</span> <span class="ow">or</span> <span class="n">MdParserConfig</span><span class="p">()</span> -    <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">=</span> <span class="s2">"html"</span> +    <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">=</span> <span class="s2">"html"</span>     <span class="n">md</span> <span class="o">=</span> <span class="n">default_parser</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>     <span class="k">return</span> <span class="n">md</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </pre></div> <p>We have a <code>default_parser</code> rendering stuff (we will talk about that "stuff" later). Let's now get into the some pieces of the default parser implementation:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">default_parser</span><span class="p">(</span><span class="n">config</span><span class="p">:</span> <span class="n">MdParserConfig</span><span class="p">)</span> <span class="o">-></span> <span class="n">MarkdownIt</span><span class="p">:</span> -    <span class="sd">"""Return the default parser configuration for MyST"""</span> +<span class="w">    </span><span class="sd">"""Return the default parser configuration for MyST"""</span>     <span class="n">renderer_cls</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">MarkdownIt</span><span class="p">],</span> <span class="n">RendererProtocol</span><span class="p">]</span> -    <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"sphinx"</span><span class="p">:</span> +    <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"sphinx"</span><span class="p">:</span>         <span class="kn">from</span> <span class="nn">myst_parser.sphinx_renderer</span> <span class="kn">import</span> <span class="n">SphinxRenderer</span>         <span class="n">renderer_cls</span> <span class="o">=</span> <span class="n">SphinxRenderer</span> -    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"html"</span><span class="p">:</span> +    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"html"</span><span class="p">:</span>         <span class="n">renderer_cls</span> <span class="o">=</span> <span class="n">RendererHTML</span> -    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"docutils"</span><span class="p">:</span> +    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"docutils"</span><span class="p">:</span>         <span class="kn">from</span> <span class="nn">myst_parser.docutils_renderer</span> <span class="kn">import</span> <span class="n">DocutilsRenderer</span>         <span class="n">renderer_cls</span> <span class="o">=</span> <span class="n">DocutilsRenderer</span>     <span class="k">else</span><span class="p">:</span> -        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"unknown renderer type: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">renderer</span><span class="p">))</span> +        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"unknown renderer type: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">renderer</span><span class="p">))</span> </pre></div> <p>Well, this is quite interesting! We have a <code>SphinxRenderer</code> and <code>DocutilsRenderer</code>. You can learn about those <a href="https://myst-parser.readthedocs.io/en/latest/api/renderers.html#">here</a>. @@ -194,15 +166,15 @@ <h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Under <p>If you indeed keep looking at the <code>default_parser</code> implementation, you will find the MyST-Parser (among other things) is actually a collection of <code>markdown-it-py</code> plugins:</p> <div class="highlight"><pre><span></span><span class="n">md</span> <span class="o">=</span> <span class="p">(</span> -        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> -        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> +        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> +        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">front_matter_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_block_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_role_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">footnote_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">wordcount_plugin</span><span class="p">,</span> <span class="n">per_minute</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">words_per_minute</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span>     <span class="p">)</span> </pre></div> <p>Notice there are some MyST specific plugins such as the <code>myst_block_plugin</code> and the @@ -215,20 +187,18 @@ <h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Under through the Docutils/Sphinx path (those concepts are core-supported in the Docutils/Sphinx ecosystem) and those unsupported when you use the MyST Python API which does not understand how to parse nor render these concepts as we've previously shown.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h1 id="Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">Overcome the limitations (don't worry I will stop here... for now)<a class="anchor-link" href="#Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">¶</a></h1><p>OK, this is long enough for now, the next post will deep dive a little bit more in the +<h1 id="Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">Overcome the limitations (don't worry I will stop here... for now)<a class="anchor-link" href="#Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">¶</a></h1><p>OK, this is long enough for now, the next post will deep dive a little bit more in the MyST-Parser and the markdown-it-py codebases in the context of potentially supporting roles and directives through the MyST-Parser Python API. That will led us into some fundamental question for the MyST ecosystem. We will also introduce some exciting new projects from the Executable Books community that are closely related with these ideas.</p> <p>I hope you enjoyed the ride and I will see you soon with the second part!</p> - </div> </div> </div> @@ -236,9 +206,6 @@ <h1 id="Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">Over </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>PS: Thanks Chris Holdgraf for your suggestions at the time to write this blog post!</p> - </div> </div> </div> - - diff --git a/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html b/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html index 6ee714eb..10097a16 100644 --- a/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html +++ b/cache/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html @@ -1,14 +1,14 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> <!-- TEASER_END --> - <p>Recently, I have been involved with the <a href="https://executablebooks.org/en/latest/">Executable Books</a> project and community (you can learn more about them <a href="https://executablebooks.org/en/latest/about.html">here</a>). One of the major projects inside that community is the <a href="https://github.com/executablebooks/MyST-Parser">MyST-Parser</a>, @@ -28,14 +28,13 @@ multiple flavors of Markdown as Nikola plugins), I realized it would interesting to explore how this flavor of Markdown could potentially integrate with the Nikola ecosystem!</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="First-impressions-(someone-has-beaten-me-to-it...)">First impressions (someone has beaten me to it...)<a class="anchor-link" href="#First-impressions-(someone-has-beaten-me-to-it...)">¶</a></h2><p>The first idea was to implement MyST support in Nikola. The second one was just a search +<h2 id="First-impressions-(someone-has-beaten-me-to-it...)">First impressions (someone has beaten me to it...)<a class="anchor-link" href="#First-impressions-(someone-has-beaten-me-to-it...)">¶</a></h2><p>The first idea was to implement MyST support in Nikola. The second one was just a search to see if the first idea was not previously explored by others. And indeed that was the case! Roberto, the Nikola creator, wrote a plugin for MyST about a year ago (there is <a href="https://ralsina.me/tr/es/weblog/posts/new-plugins-for-nikola.html">a brief blog post talking about it</a>). @@ -46,96 +45,66 @@ <h2 id="First-impressions-(someone-has-beaten-me-to-it...)">First impressions (s <p>Roberto used the MyST Python API to generate the HTML output the Nikola machinery was going to use to build the blog post.</p> <p>Problem solved! Well, actually, it was not that simple...</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Current-limitations-(there-is-always-a-but...)">Current limitations (there is always a but...)<a class="anchor-link" href="#Current-limitations-(there-is-always-a-but...)">¶</a></h2><p>One of the key concepts in the MyST (and rST) world is the support for <a href="https://myst-parser.readthedocs.io/en/latest/sphinx/intro.html#reference-a-section-label-with-a-role">roles</a> +<h2 id="Current-limitations-(there-is-always-a-but...)">Current limitations (there is always a but...)<a class="anchor-link" href="#Current-limitations-(there-is-always-a-but...)">¶</a></h2><p>One of the key concepts in the MyST (and rST) world is the support for <a href="https://myst-parser.readthedocs.io/en/latest/sphinx/intro.html#reference-a-section-label-with-a-role">roles</a> and <a href="https://myst-parser.readthedocs.io/en/latest/sphinx/intro.html#extend-markdown-with-a-directive">directives</a>. People using rST would be tempted to use MyST and the MyST plugin for Nikola if they have support for the main pieces they use on a daily basis to save them some time.</p> <p>So, what happens when you try to use the MyST Python API to render a simple directive:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="s2">```</span><span class="si">{admonition}</span><span class="s2"> This is my admonition</span> <span class="s2">This is my note</span> <span class="s2">```</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[3]:</div> - - - - +<div class="prompt output_prompt">Out[3]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>'<pre><code class="language-{admonition}">This is my note\n</code></pre>\n'</pre> +<pre>'<pre><code class="language-{admonition}">This is my note\n</code></pre>\n'</pre> </div> - </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -144,45 +113,48 @@ <h2 id="Current-limitations-(there-is-always-a-but...)">Current limitations (the When I searched into the MyST and Nikola issue trackers, I found a <a href="https://github.com/executablebooks/MyST-Parser/issues/307">report</a> about this problem.</p> <p>One of the answers from a MyST core contributor was particularly interesting:</p> -<blockquote><blockquote><p>I don't know if it's intended to behave this way.</p> +<blockquote> +<blockquote> +<p>I don't know if it's intended to behave this way.</p> +</blockquote> </blockquote> +<blockquote> <p>Heya, yes it is; you have to use sphinx to fully parse to HTML</p> </blockquote> <p>That surprised me, as I assumed that roles and directives would be supported by the Python API, but I learnt things are a little bit more complex than that!</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Understanding the limitations (fun/not fun dive, actually fun...)<a class="anchor-link" href="#Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">¶</a></h2><p>I started digging into the codebase and some MyST documentation.</p> +<h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Understanding the limitations (fun/not fun dive, actually fun...)<a class="anchor-link" href="#Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">¶</a></h2><p>I started digging into the codebase and some MyST documentation.</p> <p>If you look at the <code>to_html</code> function I showed before:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">config</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">MdParserConfig</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>     <span class="n">config</span> <span class="o">=</span> <span class="n">config</span> <span class="ow">or</span> <span class="n">MdParserConfig</span><span class="p">()</span> -    <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">=</span> <span class="s2">"html"</span> +    <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">=</span> <span class="s2">"html"</span>     <span class="n">md</span> <span class="o">=</span> <span class="n">default_parser</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>     <span class="k">return</span> <span class="n">md</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </pre></div> <p>We have a <code>default_parser</code> rendering stuff (we will talk about that "stuff" later). Let's now get into the some pieces of the default parser implementation:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">default_parser</span><span class="p">(</span><span class="n">config</span><span class="p">:</span> <span class="n">MdParserConfig</span><span class="p">)</span> <span class="o">-></span> <span class="n">MarkdownIt</span><span class="p">:</span> -    <span class="sd">"""Return the default parser configuration for MyST"""</span> +<span class="w">    </span><span class="sd">"""Return the default parser configuration for MyST"""</span>     <span class="n">renderer_cls</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">MarkdownIt</span><span class="p">],</span> <span class="n">RendererProtocol</span><span class="p">]</span> -    <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"sphinx"</span><span class="p">:</span> +    <span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"sphinx"</span><span class="p">:</span>         <span class="kn">from</span> <span class="nn">myst_parser.sphinx_renderer</span> <span class="kn">import</span> <span class="n">SphinxRenderer</span>         <span class="n">renderer_cls</span> <span class="o">=</span> <span class="n">SphinxRenderer</span> -    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"html"</span><span class="p">:</span> +    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"html"</span><span class="p">:</span>         <span class="n">renderer_cls</span> <span class="o">=</span> <span class="n">RendererHTML</span> -    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"docutils"</span><span class="p">:</span> +    <span class="k">elif</span> <span class="n">config</span><span class="o">.</span><span class="n">renderer</span> <span class="o">==</span> <span class="s2">"docutils"</span><span class="p">:</span>         <span class="kn">from</span> <span class="nn">myst_parser.docutils_renderer</span> <span class="kn">import</span> <span class="n">DocutilsRenderer</span>         <span class="n">renderer_cls</span> <span class="o">=</span> <span class="n">DocutilsRenderer</span>     <span class="k">else</span><span class="p">:</span> -        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"unknown renderer type: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">renderer</span><span class="p">))</span> +        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"unknown renderer type: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">renderer</span><span class="p">))</span> </pre></div> <p>Well, this is quite interesting! We have a <code>SphinxRenderer</code> and <code>DocutilsRenderer</code>. You can learn about those <a href="https://myst-parser.readthedocs.io/en/latest/api/renderers.html#">here</a>. @@ -194,15 +166,15 @@ <h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Under <p>If you indeed keep looking at the <code>default_parser</code> implementation, you will find the MyST-Parser (among other things) is actually a collection of <code>markdown-it-py</code> plugins:</p> <div class="highlight"><pre><span></span><span class="n">md</span> <span class="o">=</span> <span class="p">(</span> -        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> -        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> +        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> +        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">front_matter_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_block_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_role_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">footnote_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">wordcount_plugin</span><span class="p">,</span> <span class="n">per_minute</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">words_per_minute</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span>     <span class="p">)</span> </pre></div> <p>Notice there are some MyST specific plugins such as the <code>myst_block_plugin</code> and the @@ -215,20 +187,18 @@ <h2 id="Understanding-the-limitations-(fun/not-fun-dive,-actually-fun...)">Under through the Docutils/Sphinx path (those concepts are core-supported in the Docutils/Sphinx ecosystem) and those unsupported when you use the MyST Python API which does not understand how to parse nor render these concepts as we've previously shown.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h1 id="Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">Overcome the limitations (don't worry I will stop here... for now)<a class="anchor-link" href="#Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">¶</a></h1><p>OK, this is long enough for now, the next post will deep dive a little bit more in the +<h1 id="Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">Overcome the limitations (don't worry I will stop here... for now)<a class="anchor-link" href="#Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">¶</a></h1><p>OK, this is long enough for now, the next post will deep dive a little bit more in the MyST-Parser and the markdown-it-py codebases in the context of potentially supporting roles and directives through the MyST-Parser Python API. That will led us into some fundamental question for the MyST ecosystem. We will also introduce some exciting new projects from the Executable Books community that are closely related with these ideas.</p> <p>I hope you enjoyed the ride and I will see you soon with the second part!</p> - </div> </div> </div> @@ -236,9 +206,6 @@ <h1 id="Overcome-the-limitations-(don't-worry-I-will-stop-here...-for-now)">Over </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>PS: Thanks Chris Holdgraf for your suggestions at the time to write this blog post!</p> - </div> </div> </div> - - diff --git a/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html b/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html index 30df920e..b408ba7f 100644 --- a/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html +++ b/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.es.html @@ -1,7 +1,8 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -10,27 +11,26 @@ understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -<!-- TEASER_END --></p> - +expected support.</p> +<!-- TEASER_END --> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class="anchor-link" href="#Markdown-it-py-and-its-plugins">¶</a></h2><p>Coming back to the MyST-Parser <code>default_parser</code> implementation, you can see the Parser +<h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class="anchor-link" href="#Markdown-it-py-and-its-plugins">¶</a></h2><p>Coming back to the MyST-Parser <code>default_parser</code> implementation, you can see the Parser as a <a href="https://mdit-py-plugins.readthedocs.io/en/latest/">collection of <code>markdown-it-py</code> plugins</a>:</p> <div class="highlight"><pre><span></span><span class="n">md</span> <span class="o">=</span> <span class="p">(</span> -        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> -        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> +        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> +        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">front_matter_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_block_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_role_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">footnote_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">wordcount_plugin</span><span class="p">,</span> <span class="n">per_minute</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">words_per_minute</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span>     <span class="p">)</span> </pre></div> <p>The <code>MarkdownIt</code> class is instantiated with some parsing configuration options, dictating @@ -43,100 +43,71 @@ <h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class=" such as the <code>myst_block_plugin</code> and the <code>myst_role_plugin</code>. Let's take a brief look at the latest one for the sake of simplicity:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">myst_role_plugin</span><span class="p">(</span><span class="n">md</span><span class="p">:</span> <span class="n">MarkdownIt</span><span class="p">):</span> - <span class="sd">"""Parse ``{role-name}`content```"""</span> - <span class="n">md</span><span class="o">.</span><span class="n">inline</span><span class="o">.</span><span class="n">ruler</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="s2">"backticks"</span><span class="p">,</span> <span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">myst_role</span><span class="p">)</span> - <span class="n">md</span><span class="o">.</span><span class="n">add_render_rule</span><span class="p">(</span><span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">render_myst_role</span><span class="p">)</span> +<span class="w"> </span><span class="sd">"""Parse ``{role-name}`content```"""</span> + <span class="n">md</span><span class="o">.</span><span class="n">inline</span><span class="o">.</span><span class="n">ruler</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="s2">"backticks"</span><span class="p">,</span> <span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">myst_role</span><span class="p">)</span> + <span class="n">md</span><span class="o">.</span><span class="n">add_render_rule</span><span class="p">(</span><span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">render_myst_role</span><span class="p">)</span> </pre></div> <p>The <code>myst_role_plugin</code> is essentially adding a new syntax rule to the parser that now is able to the parse roles from the input and a new method for the renderer to render the now role-associated tokens:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">render_myst_role</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tokens</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">env</span><span class="p">):</span> <span class="n">token</span> <span class="o">=</span> <span class="n">tokens</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> - <span class="n">name</span> <span class="o">=</span> <span class="n">token</span><span class="o">.</span><span class="n">meta</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="s2">"unknown"</span><span class="p">)</span> + <span class="n">name</span> <span class="o">=</span> <span class="n">token</span><span class="o">.</span><span class="n">meta</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="s2">"unknown"</span><span class="p">)</span> <span class="k">return</span> <span class="p">(</span> - <span class="s1">'<code class="sphinx-role">'</span> - <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="se">}}</span><span class="s2">[</span><span class="si">{</span><span class="n">escapeHtml</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">content</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> - <span class="s2">"</code>"</span> + <span class="s1">'<code class="sphinx-role">'</span> + <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="se">}}</span><span class="s2">[</span><span class="si">{</span><span class="n">escapeHtml</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">content</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> + <span class="s2">"</code>"</span> <span class="p">)</span> </pre></div> <p>We now understand the output the MyST-Parser Python API is giving us at the time to parse and render a simple role input:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="si">{emphasis}</span><span class="s2">`content`</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[3]:</div> - - - - +<div class="prompt output_prompt">Out[3]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>'<p><code class="sphinx-role">{emphasis}[content]</code></p>\n'</pre> +<pre>'<p><code class="sphinx-role">{emphasis}[content]</code></p>\n'</pre> </div> - </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -144,86 +115,64 @@ <h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class=" <p>We previously showed the <code>to_html</code> function using the <code>default_parser</code> configured with the <code>html</code> renderer (provided by the <code>markdown-it-py</code> RendererHTML class). But, what happens when we use other renderers provided by the MyST-Parser Python API?</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a class="anchor-link" href="#The-Docutils-and-Sphinx-renderers">¶</a></h2><p>Let's first explore the <code>to_docutils</code> function:</p> - +<h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a class="anchor-link" href="#The-Docutils-and-Sphinx-renderers">¶</a></h2><p>Let's first explore the <code>to_docutils</code> function:</p> </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="si">{emphasis}</span><span class="s2">`content`</span> <span class="s2">```</span><span class="si">{admonition}</span><span class="s2"> This is my admonition</span> <span class="s2">This is my note</span> <span class="s2">```</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre><document source="notset"> +<pre><document source="notset"> <paragraph> <emphasis> content - <admonition classes="admonition-this-is-my-admonition"> + <admonition classes="admonition-this-is-my-admonition"> <title> This is my admonition <paragraph> @@ -231,14 +180,9 @@ <h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a c </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -250,128 +194,101 @@ <h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a c <p>The <a href="https://github.com/executablebooks/MyST-Parser/blob/master/myst_parser/sphinx_renderer.py#L31">SphinxRenderer</a> builds on the DocutilsRenderer to add sphinx specific nodes, e.g. for cross-referencing between documents.</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [7]:</div> +<div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [8]:</div> +<div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="si">{ref}</span><span class="s2">`target`</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [9]:</div> +<div class="prompt input_prompt">In [9]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">in_sphinx_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">in_sphinx_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre><document source="notset"> +<pre><document source="notset"> <paragraph> - <pending_xref refdoc="mock_docname" refdomain="std" refexplicit="False" reftarget="target" reftype="ref" refwarn="True"> - <inline classes="xref std std-ref"> + <pending_xref refdoc="mock_docname" refdomain="std" refexplicit="False" reftarget="target" reftype="ref" refwarn="True"> + <inline classes="xref std std-ref"> target </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Notice the sphinx-specific roles (and directives) needs the <code>in_sphinx_env</code> option enabled.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="The-MystParser-class">The MystParser class<a class="anchor-link" href="#The-MystParser-class">¶</a></h2><p>Previously, we presented the <code>MystParser</code> as a Sphinx parser:</p> +<h2 id="The-MystParser-class">The MystParser class<a class="anchor-link" href="#The-MystParser-class">¶</a></h2><p>Previously, we presented the <code>MystParser</code> as a Sphinx parser:</p> <div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sphinx.parsers</span> <span class="kn">import</span> <span class="n">Parser</span> <span class="k">as</span> <span class="n">SphinxParser</span> <span class="o">...</span> <span class="k">class</span> <span class="nc">MystParser</span><span class="p">(</span><span class="n">SphinxParser</span><span class="p">):</span> - <span class="sd">"""Sphinx parser for Markedly Structured Text (MyST)."""</span> +<span class="w"> </span><span class="sd">"""Sphinx parser for Markedly Structured Text (MyST)."""</span> </pre></div> <p>using a set of general and some specific <code>markdown-it-py</code> plugins (notice the <code>default_parser</code> configured - by default - with the "sphinx" renderer):</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inputstring</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">document</span><span class="p">:</span> <span class="n">nodes</span><span class="o">.</span><span class="n">document</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> - <span class="sd">"""Parse source text.</span> +<span class="w"> </span><span class="sd">"""Parse source text.</span> <span class="sd"> :param inputstring: The source string to parse</span> <span class="sd"> :param document: The root docutils node to add AST elements to</span> -<span class="sd"> """</span> +<span class="sd"> """</span> <span class="n">config</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">myst_config</span> <span class="n">parser</span> <span class="o">=</span> <span class="n">default_parser</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> - <span class="n">parser</span><span class="o">.</span><span class="n">options</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span> <span class="o">=</span> <span class="n">document</span> + <span class="n">parser</span><span class="o">.</span><span class="n">options</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span> <span class="o">=</span> <span class="n">document</span> <span class="n">env</span> <span class="o">=</span> <span class="n">AttrDict</span><span class="p">()</span> </pre></div> <p>to parse the input text into a token stream and then rendering those (via the SphinxRenderer which is a subclass of the DocutilsRenderer):</p> <div class="highlight"><pre><span></span><span class="n">tokens</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">inputstring</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> - <span class="k">if</span> <span class="ow">not</span> <span class="n">tokens</span> <span class="ow">or</span> <span class="n">tokens</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">type</span> <span class="o">!=</span> <span class="s2">"front_matter"</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">tokens</span> <span class="ow">or</span> <span class="n">tokens</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">type</span> <span class="o">!=</span> <span class="s2">"front_matter"</span><span class="p">:</span> <span class="c1"># we always add front matter, so that we can merge it with global keys,</span> <span class="c1"># specified in the sphinx configuration</span> - <span class="n">tokens</span> <span class="o">=</span> <span class="p">[</span><span class="n">Token</span><span class="p">(</span><span class="s2">"front_matter"</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s2">"</span><span class="si">{}</span><span class="s2">"</span><span class="p">,</span> <span class="nb">map</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])]</span> <span class="o">+</span> <span class="n">tokens</span> + <span class="n">tokens</span> <span class="o">=</span> <span class="p">[</span><span class="n">Token</span><span class="p">(</span><span class="s2">"front_matter"</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s2">"</span><span class="si">{}</span><span class="s2">"</span><span class="p">,</span> <span class="nb">map</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])]</span> <span class="o">+</span> <span class="n">tokens</span> <span class="n">parser</span><span class="o">.</span><span class="n">renderer</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">tokens</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">options</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </pre></div> <p>into a Docutils' document representation:</p> -<div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="n">app</span><span class="p">:</span> <span class="n">Sphinx</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docname</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"index"</span><span class="p">)</span> <span class="o">-></span> <span class="n">nodes</span><span class="o">.</span><span class="n">document</span><span class="p">:</span> - <span class="sd">"""Parse a string as MystMarkdown with Sphinx application."""</span> - <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">temp_data</span><span class="p">[</span><span class="s2">"docname"</span><span class="p">]</span> <span class="o">=</span> <span class="n">docname</span> +<div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="n">app</span><span class="p">:</span> <span class="n">Sphinx</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docname</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"index"</span><span class="p">)</span> <span class="o">-></span> <span class="n">nodes</span><span class="o">.</span><span class="n">document</span><span class="p">:</span> +<span class="w"> </span><span class="sd">"""Parse a string as MystMarkdown with Sphinx application."""</span> + <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">temp_data</span><span class="p">[</span><span class="s2">"docname"</span><span class="p">]</span> <span class="o">=</span> <span class="n">docname</span> <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">all_docs</span><span class="p">[</span><span class="n">docname</span><span class="p">]</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="n">reader</span> <span class="o">=</span> <span class="n">SphinxStandaloneReader</span><span class="p">()</span> <span class="n">reader</span><span class="o">.</span><span class="n">setup</span><span class="p">(</span><span class="n">app</span><span class="p">)</span> @@ -380,51 +297,50 @@ <h2 id="The-MystParser-class">The MystParser class<a class="anchor-link" href="# <span class="k">with</span> <span class="n">sphinx_domains</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="p">):</span> <span class="k">return</span> <span class="n">publish_doctree</span><span class="p">(</span> <span class="n">text</span><span class="p">,</span> - <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">srcdir</span><span class="p">,</span> <span class="n">docname</span> <span class="o">+</span> <span class="s2">".md"</span><span class="p">),</span> + <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">srcdir</span><span class="p">,</span> <span class="n">docname</span> <span class="o">+</span> <span class="s2">".md"</span><span class="p">),</span> <span class="n">reader</span><span class="o">=</span><span class="n">reader</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="n">parser</span><span class="p">,</span> - <span class="n">parser_name</span><span class="o">=</span><span class="s2">"markdown"</span><span class="p">,</span> - <span class="n">settings_overrides</span><span class="o">=</span><span class="p">{</span><span class="s2">"env"</span><span class="p">:</span> <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="p">,</span> <span class="s2">"gettext_compact"</span><span class="p">:</span> <span class="kc">True</span><span class="p">},</span> + <span class="n">parser_name</span><span class="o">=</span><span class="s2">"markdown"</span><span class="p">,</span> + <span class="n">settings_overrides</span><span class="o">=</span><span class="p">{</span><span class="s2">"env"</span><span class="p">:</span> <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="p">,</span> <span class="s2">"gettext_compact"</span><span class="p">:</span> <span class="kc">True</span><span class="p">},</span> <span class="p">)</span> </pre></div> <p>Finally, those objects are passed to the built-in Sphinx machinery to write the html output.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="The-big-questions">The big questions<a class="anchor-link" href="#The-big-questions">¶</a></h2><p>This is great! We now understand why we need Sphinx to generate the expected HTML output +<h2 id="The-big-questions">The big questions<a class="anchor-link" href="#The-big-questions">¶</a></h2><p>This is great! We now understand why we need Sphinx to generate the expected HTML output for roles and directives. Several questions now arise:</p> <ul> <li><p>Do we want to have Sphinx-free support for rendering roles and directives in the MyST-Parser</p> <p>Nikola (among other projects) already have their own machinery (based in Docutils) to - build the final HTML output. Getting the docutils object from the Python API would be - a super interesting way to easily expose and provide that object to the downstream - projects!</p> +build the final HTML output. Getting the docutils object from the Python API would be +a super interesting way to easily expose and provide that object to the downstream +projects!</p> <p>One caveat with this approach would be missing some Sphinx features (ie. cross-linking - between documents) based on custom roles and directives that we may need to re-implement.</p> +between documents) based on custom roles and directives that we may need to re-implement.</p> </li> <li><p>Do we want to have docutils-free support for roles and directives in the MyST Python API?</p> <p>Docutils actually introduces the roles and directives concept (that Sphinx extend) so if - we want to go docutils-free, then we will need to re-implement those concepts.</p> +we want to go docutils-free, then we will need to re-implement those concepts.</p> </li> <li><p>Does it makes sense to create a docutils alternative in Python? How much of its functionality would need to be replicated? How should it be extended or enhanced?</p> <p>There is currently a nice example about an alternative implementation from the - Executable Books community, but in the Javascript world: <a href="https://github.com/executablebooks/markdown-it-docutils">https://github.com/executablebooks/markdown-it-docutils</a> ;-). - Since we do not have Docutils there, it actually makes a lot of sense to write something - new. But, what is the value/need/place for an alternative implementation in Python? - Maybe, we do not need the whole Docutils stuff... but we maybe need some core - functionality?</p> +Executable Books community, but in the Javascript world: <a href="https://github.com/executablebooks/markdown-it-docutils">https://github.com/executablebooks/markdown-it-docutils</a> ;-). +Since we do not have Docutils there, it actually makes a lot of sense to write something +new. But, what is the value/need/place for an alternative implementation in Python? +Maybe, we do not need the whole Docutils stuff... but we maybe need some core +functionality?</p> <p>If we decide to write some minimal support, what pieces are we interested to bring first? - Where those pieces should end up? The <code>markdown-it-docutils</code> package I referenced above is - actually a <code>markdown-it</code> (JS) plugin. If we follow that pattern, we should create a new - <code>markdown-it-py-docutils</code> plugin and we are no longer in the MyST-Parser territory. - But the MyST-Parser has, in fact, some <a href="https://github.com/executablebooks/MyST-Parser/blob/master/myst_parser/parse_directives.py">parsing directive functions</a>. - We may need to move that toward <code>markdown-it-py</code> as the <a href="https://github.com/executablebooks/markdown-it-docutils/blob/main/src/directives/main.ts">JS plugin does</a>. - That sounds nice, but... is there any other suitable (simpler) alternatives besides the - one I proposed above?</p> +Where those pieces should end up? The <code>markdown-it-docutils</code> package I referenced above is +actually a <code>markdown-it</code> (JS) plugin. If we follow that pattern, we should create a new +<code>markdown-it-py-docutils</code> plugin and we are no longer in the MyST-Parser territory. +But the MyST-Parser has, in fact, some <a href="https://github.com/executablebooks/MyST-Parser/blob/master/myst_parser/parse_directives.py">parsing directive functions</a>. +We may need to move that toward <code>markdown-it-py</code> as the <a href="https://github.com/executablebooks/markdown-it-docutils/blob/main/src/directives/main.ts">JS plugin does</a>. +That sounds nice, but... is there any other suitable (simpler) alternatives besides the +one I proposed above?</p> </li> </ul> <p>Finally,in the MyST community, there are some ongoing discussions about developing a @@ -434,19 +350,15 @@ <h2 id="The-big-questions">The big questions<a class="anchor-link" href="#The-bi specification. Those actors could be different programming languages such as JS or Python or even more, it could be different flavors in the same programming language, such as Docutils, Sphinx, or a theoretical <code>markdown-it-py-docutils</code> ;-)</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Show-time...-not-really-;-)">Show time... not really ;-)<a class="anchor-link" href="#Show-time...-not-really-;-)">¶</a></h2><p>OK, again, this is long enough! In the next post I will try to start answering some of +<h2 id="Show-time...-not-really-;-)">Show time... not really ;-)<a class="anchor-link" href="#Show-time...-not-really-;-)">¶</a></h2><p>OK, again, this is long enough! In the next post I will try to start answering some of these questions showcasing alternative approaches for the Nikola use case.</p> <p>I hope you enjoyed the ride and I will see you soon with the third part!</p> - </div> </div> </div> - - diff --git a/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html b/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html index 30df920e..b408ba7f 100644 --- a/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html +++ b/cache/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html @@ -1,7 +1,8 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -10,27 +11,26 @@ understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -<!-- TEASER_END --></p> - +expected support.</p> +<!-- TEASER_END --> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class="anchor-link" href="#Markdown-it-py-and-its-plugins">¶</a></h2><p>Coming back to the MyST-Parser <code>default_parser</code> implementation, you can see the Parser +<h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class="anchor-link" href="#Markdown-it-py-and-its-plugins">¶</a></h2><p>Coming back to the MyST-Parser <code>default_parser</code> implementation, you can see the Parser as a <a href="https://mdit-py-plugins.readthedocs.io/en/latest/">collection of <code>markdown-it-py</code> plugins</a>:</p> <div class="highlight"><pre><span></span><span class="n">md</span> <span class="o">=</span> <span class="p">(</span> -        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> -        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> +        <span class="n">MarkdownIt</span><span class="p">(</span><span class="s2">"commonmark"</span><span class="p">,</span> <span class="n">renderer_cls</span><span class="o">=</span><span class="n">renderer_cls</span><span class="p">)</span> +        <span class="o">.</span><span class="n">enable</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">front_matter_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_block_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">myst_role_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">footnote_plugin</span><span class="p">)</span>         <span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="n">wordcount_plugin</span><span class="p">,</span> <span class="n">per_minute</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">words_per_minute</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> -        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_inline"</span><span class="p">)</span> +        <span class="o">.</span><span class="n">disable</span><span class="p">(</span><span class="s2">"footnote_tail"</span><span class="p">)</span>     <span class="p">)</span> </pre></div> <p>The <code>MarkdownIt</code> class is instantiated with some parsing configuration options, dictating @@ -43,100 +43,71 @@ <h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class=" such as the <code>myst_block_plugin</code> and the <code>myst_role_plugin</code>. Let's take a brief look at the latest one for the sake of simplicity:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">myst_role_plugin</span><span class="p">(</span><span class="n">md</span><span class="p">:</span> <span class="n">MarkdownIt</span><span class="p">):</span> - <span class="sd">"""Parse ``{role-name}`content```"""</span> - <span class="n">md</span><span class="o">.</span><span class="n">inline</span><span class="o">.</span><span class="n">ruler</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="s2">"backticks"</span><span class="p">,</span> <span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">myst_role</span><span class="p">)</span> - <span class="n">md</span><span class="o">.</span><span class="n">add_render_rule</span><span class="p">(</span><span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">render_myst_role</span><span class="p">)</span> +<span class="w"> </span><span class="sd">"""Parse ``{role-name}`content```"""</span> + <span class="n">md</span><span class="o">.</span><span class="n">inline</span><span class="o">.</span><span class="n">ruler</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="s2">"backticks"</span><span class="p">,</span> <span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">myst_role</span><span class="p">)</span> + <span class="n">md</span><span class="o">.</span><span class="n">add_render_rule</span><span class="p">(</span><span class="s2">"myst_role"</span><span class="p">,</span> <span class="n">render_myst_role</span><span class="p">)</span> </pre></div> <p>The <code>myst_role_plugin</code> is essentially adding a new syntax rule to the parser that now is able to the parse roles from the input and a new method for the renderer to render the now role-associated tokens:</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">render_myst_role</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tokens</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">env</span><span class="p">):</span> <span class="n">token</span> <span class="o">=</span> <span class="n">tokens</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> - <span class="n">name</span> <span class="o">=</span> <span class="n">token</span><span class="o">.</span><span class="n">meta</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="s2">"unknown"</span><span class="p">)</span> + <span class="n">name</span> <span class="o">=</span> <span class="n">token</span><span class="o">.</span><span class="n">meta</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="s2">"unknown"</span><span class="p">)</span> <span class="k">return</span> <span class="p">(</span> - <span class="s1">'<code class="sphinx-role">'</span> - <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="se">}}</span><span class="s2">[</span><span class="si">{</span><span class="n">escapeHtml</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">content</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> - <span class="s2">"</code>"</span> + <span class="s1">'<code class="sphinx-role">'</span> + <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="se">}}</span><span class="s2">[</span><span class="si">{</span><span class="n">escapeHtml</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">content</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> + <span class="s2">"</code>"</span> <span class="p">)</span> </pre></div> <p>We now understand the output the MyST-Parser Python API is giving us at the time to parse and render a simple role input:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_html</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="si">{emphasis}</span><span class="s2">`content`</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">to_html</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[3]:</div> - - - - +<div class="prompt output_prompt">Out[3]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>'<p><code class="sphinx-role">{emphasis}[content]</code></p>\n'</pre> +<pre>'<p><code class="sphinx-role">{emphasis}[content]</code></p>\n'</pre> </div> - </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -144,86 +115,64 @@ <h2 id="Markdown-it-py-and-its-plugins">Markdown-it-py and its plugins<a class=" <p>We previously showed the <code>to_html</code> function using the <code>default_parser</code> configured with the <code>html</code> renderer (provided by the <code>markdown-it-py</code> RendererHTML class). But, what happens when we use other renderers provided by the MyST-Parser Python API?</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a class="anchor-link" href="#The-Docutils-and-Sphinx-renderers">¶</a></h2><p>Let's first explore the <code>to_docutils</code> function:</p> - +<h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a class="anchor-link" href="#The-Docutils-and-Sphinx-renderers">¶</a></h2><p>Let's first explore the <code>to_docutils</code> function:</p> </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="si">{emphasis}</span><span class="s2">`content`</span> <span class="s2">```</span><span class="si">{admonition}</span><span class="s2"> This is my admonition</span> <span class="s2">This is my note</span> <span class="s2">```</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre><document source="notset"> +<pre><document source="notset"> <paragraph> <emphasis> content - <admonition classes="admonition-this-is-my-admonition"> + <admonition classes="admonition-this-is-my-admonition"> <title> This is my admonition <paragraph> @@ -231,14 +180,9 @@ <h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a c </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -250,128 +194,101 @@ <h2 id="The-Docutils-and-Sphinx-renderers">The Docutils and Sphinx renderers<a c <p>The <a href="https://github.com/executablebooks/MyST-Parser/blob/master/myst_parser/sphinx_renderer.py#L31">SphinxRenderer</a> builds on the DocutilsRenderer to add sphinx specific nodes, e.g. for cross-referencing between documents.</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [7]:</div> +<div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">myst_parser.main</span> <span class="kn">import</span> <span class="n">to_docutils</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [8]:</div> +<div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">text</span> <span class="o">=</span> <span class="s2">"""</span> <span class="si">{ref}</span><span class="s2">`target`</span> -<span class="s2">"""</span> +<span class="s2">"""</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [9]:</div> +<div class="prompt input_prompt">In [9]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">in_sphinx_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">to_docutils</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">in_sphinx_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">pformat</span><span class="p">())</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre><document source="notset"> +<pre><document source="notset"> <paragraph> - <pending_xref refdoc="mock_docname" refdomain="std" refexplicit="False" reftarget="target" reftype="ref" refwarn="True"> - <inline classes="xref std std-ref"> + <pending_xref refdoc="mock_docname" refdomain="std" refexplicit="False" reftarget="target" reftype="ref" refwarn="True"> + <inline classes="xref std std-ref"> target </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Notice the sphinx-specific roles (and directives) needs the <code>in_sphinx_env</code> option enabled.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="The-MystParser-class">The MystParser class<a class="anchor-link" href="#The-MystParser-class">¶</a></h2><p>Previously, we presented the <code>MystParser</code> as a Sphinx parser:</p> +<h2 id="The-MystParser-class">The MystParser class<a class="anchor-link" href="#The-MystParser-class">¶</a></h2><p>Previously, we presented the <code>MystParser</code> as a Sphinx parser:</p> <div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sphinx.parsers</span> <span class="kn">import</span> <span class="n">Parser</span> <span class="k">as</span> <span class="n">SphinxParser</span> <span class="o">...</span> <span class="k">class</span> <span class="nc">MystParser</span><span class="p">(</span><span class="n">SphinxParser</span><span class="p">):</span> - <span class="sd">"""Sphinx parser for Markedly Structured Text (MyST)."""</span> +<span class="w"> </span><span class="sd">"""Sphinx parser for Markedly Structured Text (MyST)."""</span> </pre></div> <p>using a set of general and some specific <code>markdown-it-py</code> plugins (notice the <code>default_parser</code> configured - by default - with the "sphinx" renderer):</p> <div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inputstring</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">document</span><span class="p">:</span> <span class="n">nodes</span><span class="o">.</span><span class="n">document</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> - <span class="sd">"""Parse source text.</span> +<span class="w"> </span><span class="sd">"""Parse source text.</span> <span class="sd"> :param inputstring: The source string to parse</span> <span class="sd"> :param document: The root docutils node to add AST elements to</span> -<span class="sd"> """</span> +<span class="sd"> """</span> <span class="n">config</span> <span class="o">=</span> <span class="n">document</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">myst_config</span> <span class="n">parser</span> <span class="o">=</span> <span class="n">default_parser</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> - <span class="n">parser</span><span class="o">.</span><span class="n">options</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span> <span class="o">=</span> <span class="n">document</span> + <span class="n">parser</span><span class="o">.</span><span class="n">options</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span> <span class="o">=</span> <span class="n">document</span> <span class="n">env</span> <span class="o">=</span> <span class="n">AttrDict</span><span class="p">()</span> </pre></div> <p>to parse the input text into a token stream and then rendering those (via the SphinxRenderer which is a subclass of the DocutilsRenderer):</p> <div class="highlight"><pre><span></span><span class="n">tokens</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">inputstring</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> - <span class="k">if</span> <span class="ow">not</span> <span class="n">tokens</span> <span class="ow">or</span> <span class="n">tokens</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">type</span> <span class="o">!=</span> <span class="s2">"front_matter"</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">tokens</span> <span class="ow">or</span> <span class="n">tokens</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">type</span> <span class="o">!=</span> <span class="s2">"front_matter"</span><span class="p">:</span> <span class="c1"># we always add front matter, so that we can merge it with global keys,</span> <span class="c1"># specified in the sphinx configuration</span> - <span class="n">tokens</span> <span class="o">=</span> <span class="p">[</span><span class="n">Token</span><span class="p">(</span><span class="s2">"front_matter"</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s2">"</span><span class="si">{}</span><span class="s2">"</span><span class="p">,</span> <span class="nb">map</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])]</span> <span class="o">+</span> <span class="n">tokens</span> + <span class="n">tokens</span> <span class="o">=</span> <span class="p">[</span><span class="n">Token</span><span class="p">(</span><span class="s2">"front_matter"</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">content</span><span class="o">=</span><span class="s2">"</span><span class="si">{}</span><span class="s2">"</span><span class="p">,</span> <span class="nb">map</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])]</span> <span class="o">+</span> <span class="n">tokens</span> <span class="n">parser</span><span class="o">.</span><span class="n">renderer</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">tokens</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">options</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </pre></div> <p>into a Docutils' document representation:</p> -<div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="n">app</span><span class="p">:</span> <span class="n">Sphinx</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docname</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"index"</span><span class="p">)</span> <span class="o">-></span> <span class="n">nodes</span><span class="o">.</span><span class="n">document</span><span class="p">:</span> - <span class="sd">"""Parse a string as MystMarkdown with Sphinx application."""</span> - <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">temp_data</span><span class="p">[</span><span class="s2">"docname"</span><span class="p">]</span> <span class="o">=</span> <span class="n">docname</span> +<div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="n">app</span><span class="p">:</span> <span class="n">Sphinx</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docname</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"index"</span><span class="p">)</span> <span class="o">-></span> <span class="n">nodes</span><span class="o">.</span><span class="n">document</span><span class="p">:</span> +<span class="w"> </span><span class="sd">"""Parse a string as MystMarkdown with Sphinx application."""</span> + <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">temp_data</span><span class="p">[</span><span class="s2">"docname"</span><span class="p">]</span> <span class="o">=</span> <span class="n">docname</span> <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">all_docs</span><span class="p">[</span><span class="n">docname</span><span class="p">]</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="n">reader</span> <span class="o">=</span> <span class="n">SphinxStandaloneReader</span><span class="p">()</span> <span class="n">reader</span><span class="o">.</span><span class="n">setup</span><span class="p">(</span><span class="n">app</span><span class="p">)</span> @@ -380,51 +297,50 @@ <h2 id="The-MystParser-class">The MystParser class<a class="anchor-link" href="# <span class="k">with</span> <span class="n">sphinx_domains</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="p">):</span> <span class="k">return</span> <span class="n">publish_doctree</span><span class="p">(</span> <span class="n">text</span><span class="p">,</span> - <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">srcdir</span><span class="p">,</span> <span class="n">docname</span> <span class="o">+</span> <span class="s2">".md"</span><span class="p">),</span> + <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">srcdir</span><span class="p">,</span> <span class="n">docname</span> <span class="o">+</span> <span class="s2">".md"</span><span class="p">),</span> <span class="n">reader</span><span class="o">=</span><span class="n">reader</span><span class="p">,</span> <span class="n">parser</span><span class="o">=</span><span class="n">parser</span><span class="p">,</span> - <span class="n">parser_name</span><span class="o">=</span><span class="s2">"markdown"</span><span class="p">,</span> - <span class="n">settings_overrides</span><span class="o">=</span><span class="p">{</span><span class="s2">"env"</span><span class="p">:</span> <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="p">,</span> <span class="s2">"gettext_compact"</span><span class="p">:</span> <span class="kc">True</span><span class="p">},</span> + <span class="n">parser_name</span><span class="o">=</span><span class="s2">"markdown"</span><span class="p">,</span> + <span class="n">settings_overrides</span><span class="o">=</span><span class="p">{</span><span class="s2">"env"</span><span class="p">:</span> <span class="n">app</span><span class="o">.</span><span class="n">env</span><span class="p">,</span> <span class="s2">"gettext_compact"</span><span class="p">:</span> <span class="kc">True</span><span class="p">},</span> <span class="p">)</span> </pre></div> <p>Finally, those objects are passed to the built-in Sphinx machinery to write the html output.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="The-big-questions">The big questions<a class="anchor-link" href="#The-big-questions">¶</a></h2><p>This is great! We now understand why we need Sphinx to generate the expected HTML output +<h2 id="The-big-questions">The big questions<a class="anchor-link" href="#The-big-questions">¶</a></h2><p>This is great! We now understand why we need Sphinx to generate the expected HTML output for roles and directives. Several questions now arise:</p> <ul> <li><p>Do we want to have Sphinx-free support for rendering roles and directives in the MyST-Parser</p> <p>Nikola (among other projects) already have their own machinery (based in Docutils) to - build the final HTML output. Getting the docutils object from the Python API would be - a super interesting way to easily expose and provide that object to the downstream - projects!</p> +build the final HTML output. Getting the docutils object from the Python API would be +a super interesting way to easily expose and provide that object to the downstream +projects!</p> <p>One caveat with this approach would be missing some Sphinx features (ie. cross-linking - between documents) based on custom roles and directives that we may need to re-implement.</p> +between documents) based on custom roles and directives that we may need to re-implement.</p> </li> <li><p>Do we want to have docutils-free support for roles and directives in the MyST Python API?</p> <p>Docutils actually introduces the roles and directives concept (that Sphinx extend) so if - we want to go docutils-free, then we will need to re-implement those concepts.</p> +we want to go docutils-free, then we will need to re-implement those concepts.</p> </li> <li><p>Does it makes sense to create a docutils alternative in Python? How much of its functionality would need to be replicated? How should it be extended or enhanced?</p> <p>There is currently a nice example about an alternative implementation from the - Executable Books community, but in the Javascript world: <a href="https://github.com/executablebooks/markdown-it-docutils">https://github.com/executablebooks/markdown-it-docutils</a> ;-). - Since we do not have Docutils there, it actually makes a lot of sense to write something - new. But, what is the value/need/place for an alternative implementation in Python? - Maybe, we do not need the whole Docutils stuff... but we maybe need some core - functionality?</p> +Executable Books community, but in the Javascript world: <a href="https://github.com/executablebooks/markdown-it-docutils">https://github.com/executablebooks/markdown-it-docutils</a> ;-). +Since we do not have Docutils there, it actually makes a lot of sense to write something +new. But, what is the value/need/place for an alternative implementation in Python? +Maybe, we do not need the whole Docutils stuff... but we maybe need some core +functionality?</p> <p>If we decide to write some minimal support, what pieces are we interested to bring first? - Where those pieces should end up? The <code>markdown-it-docutils</code> package I referenced above is - actually a <code>markdown-it</code> (JS) plugin. If we follow that pattern, we should create a new - <code>markdown-it-py-docutils</code> plugin and we are no longer in the MyST-Parser territory. - But the MyST-Parser has, in fact, some <a href="https://github.com/executablebooks/MyST-Parser/blob/master/myst_parser/parse_directives.py">parsing directive functions</a>. - We may need to move that toward <code>markdown-it-py</code> as the <a href="https://github.com/executablebooks/markdown-it-docutils/blob/main/src/directives/main.ts">JS plugin does</a>. - That sounds nice, but... is there any other suitable (simpler) alternatives besides the - one I proposed above?</p> +Where those pieces should end up? The <code>markdown-it-docutils</code> package I referenced above is +actually a <code>markdown-it</code> (JS) plugin. If we follow that pattern, we should create a new +<code>markdown-it-py-docutils</code> plugin and we are no longer in the MyST-Parser territory. +But the MyST-Parser has, in fact, some <a href="https://github.com/executablebooks/MyST-Parser/blob/master/myst_parser/parse_directives.py">parsing directive functions</a>. +We may need to move that toward <code>markdown-it-py</code> as the <a href="https://github.com/executablebooks/markdown-it-docutils/blob/main/src/directives/main.ts">JS plugin does</a>. +That sounds nice, but... is there any other suitable (simpler) alternatives besides the +one I proposed above?</p> </li> </ul> <p>Finally,in the MyST community, there are some ongoing discussions about developing a @@ -434,19 +350,15 @@ <h2 id="The-big-questions">The big questions<a class="anchor-link" href="#The-bi specification. Those actors could be different programming languages such as JS or Python or even more, it could be different flavors in the same programming language, such as Docutils, Sphinx, or a theoretical <code>markdown-it-py-docutils</code> ;-)</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Show-time...-not-really-;-)">Show time... not really ;-)<a class="anchor-link" href="#Show-time...-not-really-;-)">¶</a></h2><p>OK, again, this is long enough! In the next post I will try to start answering some of +<h2 id="Show-time...-not-really-;-)">Show time... not really ;-)<a class="anchor-link" href="#Show-time...-not-really-;-)">¶</a></h2><p>OK, again, this is long enough! In the next post I will try to start answering some of these questions showcasing alternative approaches for the Nikola use case.</p> <p>I hope you enjoyed the ride and I will see you soon with the third part!</p> - </div> </div> </div> - - diff --git a/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html b/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html index a91359de..716324bf 100644 --- a/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html +++ b/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.es.html @@ -1,9 +1,9 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b0d04e6a"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A lot of users of the <code>slides</code> option in <code>IPython.nbconvert</code> asked me about how to get a pdf from the generated Reveal.js-based slideshow.</p> -<p>To make the story short, here you have the detailed steps: -<!-- TEASER_END --></p> +<p>To make the story short, here you have the detailed steps:</p> +<!-- TEASER_END --> <ul> <li><code>cd</code> in the directory where your slideshow lives</li> <li>add this <code>custom.css</code> file: <a href="https://gist.github.com/damianavila/6211198">https://gist.github.com/damianavila/6211198</a></li> @@ -14,12 +14,10 @@ <li>print to pdf (use <em>Landscape</em> orientation)</li> </ul> <p>Do you want to get this little hack integrated to IPython? @fperez, the IPython BDFL does:</p> -<p><blockquote class="twitter-tweet" data-conversation="none" data-cards="hidden" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> <a href="https://twitter.com/profjsb">@profjsb</a> ultimately we should fold that into master though...</p>— Fernando Perez (@fperez_org) <a href="https://twitter.com/fperez_org/statuses/373190058326519808">August 29, 2013</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>So, time to write some code and do a PR... in the meantime use this hack ;-)</p> +<blockquote class="twitter-tweet" data-cards="hidden" data-conversation="none" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> <a href="https://twitter.com/profjsb">@profjsb</a> ultimately we should fold that into master though...</p>— Fernando Perez (@fperez_org) <a href="https://twitter.com/fperez_org/statuses/373190058326519808">August 29, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>So, time to write some code and do a PR... in the meantime use this hack ;-)</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html b/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html index a91359de..c6ed7b66 100644 --- a/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html +++ b/cache/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html @@ -1,9 +1,9 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=a4b545e1"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A lot of users of the <code>slides</code> option in <code>IPython.nbconvert</code> asked me about how to get a pdf from the generated Reveal.js-based slideshow.</p> -<p>To make the story short, here you have the detailed steps: -<!-- TEASER_END --></p> +<p>To make the story short, here you have the detailed steps:</p> +<!-- TEASER_END --> <ul> <li><code>cd</code> in the directory where your slideshow lives</li> <li>add this <code>custom.css</code> file: <a href="https://gist.github.com/damianavila/6211198">https://gist.github.com/damianavila/6211198</a></li> @@ -14,12 +14,10 @@ <li>print to pdf (use <em>Landscape</em> orientation)</li> </ul> <p>Do you want to get this little hack integrated to IPython? @fperez, the IPython BDFL does:</p> -<p><blockquote class="twitter-tweet" data-conversation="none" data-cards="hidden" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> <a href="https://twitter.com/profjsb">@profjsb</a> ultimately we should fold that into master though...</p>— Fernando Perez (@fperez_org) <a href="https://twitter.com/fperez_org/statuses/373190058326519808">August 29, 2013</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>So, time to write some code and do a PR... in the meantime use this hack ;-)</p> +<blockquote class="twitter-tweet" data-cards="hidden" data-conversation="none" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> <a href="https://twitter.com/profjsb">@profjsb</a> ultimately we should fold that into master though...</p>— Fernando Perez (@fperez_org) <a href="https://twitter.com/fperez_org/statuses/373190058326519808">August 29, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>So, time to write some code and do a PR... in the meantime use this hack ;-)</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html b/cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html index 86066207..59fdecbc 100644 --- a/cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html +++ b/cache/posts/a-new-nikolas-theme-for-my-site-zen.es.html @@ -1,8 +1,8 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f77f56d9"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme. -<!-- TEASER_END --></p> +<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme.</p> +<!-- TEASER_END --> <p>I had to re-wrote some things to accommodate the templates to the last Nikola v6.0.0 release (in fact, I usually use master from Github, but I recommend you to use the released code for production), and to make the theme more generic one and easy to re-use by others.</p> <p>I got a clean and (I think) <em>easy to read</em> theme, with awesome icons (Font-awesome's if you didn't recognize yet), supporting both desktops/laptops and mobile devices and... I like it very much ;-)</p> <p>It was a great exercise to learn more about html, js, css and less (a very interesting approach to deal with css).</p> @@ -10,9 +10,6 @@ <p>Thanks again Aru Sahni, you are in some way the trigger for this theme... and very fun hours I experienced developing and learning by doing.</p> <p>Damián.</p> <p>PS: If you have any to say about the overall design, ideas for improvements, things you hate about this theme, just let me know in the comments. Thanks.</p> - </div> </div> </div> - - diff --git a/cache/posts/a-new-nikolas-theme-for-my-site-zen.html b/cache/posts/a-new-nikolas-theme-for-my-site-zen.html index 86066207..38481546 100644 --- a/cache/posts/a-new-nikolas-theme-for-my-site-zen.html +++ b/cache/posts/a-new-nikolas-theme-for-my-site-zen.html @@ -1,8 +1,8 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=76507fef"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme. -<!-- TEASER_END --></p> +<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme.</p> +<!-- TEASER_END --> <p>I had to re-wrote some things to accommodate the templates to the last Nikola v6.0.0 release (in fact, I usually use master from Github, but I recommend you to use the released code for production), and to make the theme more generic one and easy to re-use by others.</p> <p>I got a clean and (I think) <em>easy to read</em> theme, with awesome icons (Font-awesome's if you didn't recognize yet), supporting both desktops/laptops and mobile devices and... I like it very much ;-)</p> <p>It was a great exercise to learn more about html, js, css and less (a very interesting approach to deal with css).</p> @@ -10,9 +10,6 @@ <p>Thanks again Aru Sahni, you are in some way the trigger for this theme... and very fun hours I experienced developing and learning by doing.</p> <p>Damián.</p> <p>PS: If you have any to say about the overall design, ideas for improvements, things you hate about this theme, just let me know in the comments. Thanks.</p> - </div> </div> </div> - - diff --git a/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html b/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html index 3cb84340..3de1fe2d 100644 --- a/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html +++ b/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.es.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, today I will release another <strong>IPython</strong> <em>js</em> extension: <strong>Spellchecker</strong>, which obviously do what you are thinking... spell check the content of your <strong>IPython</strong> notebook cells.</p> -<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems! -<!-- TEASER_END --></p> +<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems!</p> +<!-- TEASER_END --> <p>The main idea here is to use the spell checker functionality provided by your browser [yes, let to the others the complex things ;-)]. But, as you know, the spell checking functionality is disable inside the <strong>IPython</strong> notebook... and this is because each cell you actually see is a <em>codemirror</em> instance... and <em>codemirror</em> does not support spell checking by design... in fact, the <em>codemirror</em> text area (editor) is not a common html text area, hence the browser can not actually run the spell checker in this new text area.</p> <p>So, are we prohibited to apply a spell checker functionality over a <em>codemirror</em> instance? In fact, no... there is a way to do it applying something called <em>codemirror layouts</em> and using <em>js</em> spell checker libraries...</p> <p>But, I don't want to do this job yet (because of several causes which I do not describe here now), so I thought workaround and use the <strong>IPython</strong> <em>js</em> machinery to get a simple, narrow but useful solution.</p> @@ -11,63 +11,50 @@ <ul> <li>The spell checker will do its job at the cell level.</li> </ul> -<p><img src="../galleries/spellchecker/1.png" alt=""></p> +<p><img alt="" src="../galleries/spellchecker/1.png"/></p> <ul> <li><p>We need a way to get the content of the selected <strong>IPython</strong> notebook cell:</p> -<div class="highlight"><pre><span></span><span class="mi">24</span> <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">()</span> +<div class="highlight"><pre><span></span><span class="mf">24</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">()</span> </pre></div> </li> <li><p>Put the content in a common html text area, and use the spell checker capabilities from the browser:</p> -<div class="highlight"><pre><span></span><span class="mi">26</span> <span class="kd">var</span> <span class="nx">textarea</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="s1">'<textarea/>'</span><span class="p">)</span> - <span class="mi">27</span> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'rows'</span><span class="p">,</span><span class="s1">'15'</span><span class="p">)</span> - <span class="mi">28</span> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'cols'</span><span class="p">,</span><span class="s1">'80'</span><span class="p">)</span> - <span class="mi">29</span> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span><span class="s1">'source'</span><span class="p">)</span> - <span class="mi">30</span> <span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">input</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="mf">26</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">textarea</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">$</span><span class="p">(</span><span class="s1">'<textarea/>'</span><span class="p">)</span> +<span class="mf">27</span><span class="w"> </span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'rows'</span><span class="p">,</span><span class="s1">'15'</span><span class="p">)</span> +<span class="mf">28</span><span class="w"> </span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'cols'</span><span class="p">,</span><span class="s1">'80'</span><span class="p">)</span> +<span class="mf">29</span><span class="w"> </span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span><span class="s1">'source'</span><span class="p">)</span> +<span class="mf">30</span><span class="w"> </span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">input</span><span class="p">);</span> </pre></div> </li> <li><p>Make the corrections.</p> </li> </ul> -<p><img src="../galleries/spellchecker/2.png" alt=""></p> +<p><img alt="" src="../galleries/spellchecker/2.png"/></p> <ul> <li><p>Get back the corrected content into the selected <strong>IPython</strong> notebook cell.</p> -<div class="highlight"><pre><span></span><span class="mi">60</span> <span class="kd">var</span> <span class="nx">corr_input</span> <span class="o">=</span> <span class="sb">`$`</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="sb">`$`</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">());</span> <span class="c1">// note: backticks to avoid mathjax rendering, sorry.</span> - <span class="mi">61</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> - <span class="mi">62</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="mf">60</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">corr_input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sb">`$`</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="sb">`$`</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">());</span><span class="w"> </span><span class="c1">// note: backticks to avoid mathjax rendering, sorry.</span> +<span class="mf">61</span><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> +<span class="mf">62</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> </pre></div> </li> </ul> <p>And that's all... the complete code below:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">spellchecker</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">spellchecker</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> 1 /* 2 * ---------------------------------------------------------------------------- @@ -80,11 +67,11 @@ 9 */ 10 11 function spellCheckerCSS() { - 12 var link = document.createElement("link"); - 13 link.type = "text/css"; - 14 link.rel = "stylesheet"; - 15 link.href = require.toUrl("./custom/spellchecker/main.css"); - 16 document.getElementsByTagName("head")[0].appendChild(link); + 12 var link = document.createElement("link"); + 13 link.type = "text/css"; + 14 link.rel = "stylesheet"; + 15 link.href = require.toUrl("./custom/spellchecker/main.css"); + 16 document.getElementsByTagName("head")[0].appendChild(link); 17 } 18 19 function spellChecker(dummy) { @@ -94,28 +81,28 @@ 23 24 var input = IPython.notebook.get_selected_cell().get_text() 25 - 26 var textarea = $('<textarea/>') - 27 .attr('rows','15') - 28 .attr('cols','80') - 29 .attr('name','source') + 26 var textarea = $('<textarea/>') + 27 .attr('rows','15') + 28 .attr('cols','80') + 29 .attr('name','source') 30 .text(input); 31 - 32 var dialogform = $('<div/>') + 32 var dialogform = $('<div/>') 33 .append( - 34 $('<form/>').append( - 35 $('<fieldset/>').append( - 36 $('<label/>') - 37 .attr('for','source') - 38 .text("Now you can edit the cell content and use " + - 39 "the spellchecker support of your browser over it. " + - 40 "In Chromium, just focus in the text area and " + - 41 "select the text you want to spell check. Then you will " + - 42 "be able to use the contextual menu (right click) to get " + - 43 "words suggestion and other configuration options (lang). " + - 44 "Finally press OK to get the corrected cell content into " + - 45 "your selected IPython notebook cell.") + 34 $('<form/>').append( + 35 $('<fieldset/>').append( + 36 $('<label/>') + 37 .attr('for','source') + 38 .text("Now you can edit the cell content and use " + + 39 "the spellchecker support of your browser over it. " + + 40 "In Chromium, just focus in the text area and " + + 41 "select the text you want to spell check. Then you will " + + 42 "be able to use the contextual menu (right click) to get " + + 43 "words suggestion and other configuration options (lang). " + + 44 "Finally press OK to get the corrected cell content into " + + 45 "your selected IPython notebook cell.") 46 ) - 47 .append($('<br/>')) + 47 .append($('<br/>')) 48 .append( 49 textarea 50 ) @@ -123,10 +110,10 @@ 52 ); 53 54 IPython.dialog.modal({ - 55 title: "Edit and spell check your cell content", + 55 title: "Edit and spell check your cell content", 56 body: dialogform, 57 buttons: { - 58 "OK": { class : "btn-primary", + 58 "OK": { class : "btn-primary", 59 click: function() { 60 var corr_input = $.trim($(textarea).val()); 61 console.log(corr_input); @@ -143,10 +130,10 @@ 72 parameters: function setup(param1) { 73 IPython.toolbar.add_buttons_group([ 74 { - 75 'label' : 'Spell check your selected cell content', - 76 'icon' : 'icon-check-sign', - 77 'callback': function(){spellChecker(param1)}, - 78 'id' : 'start_spellcheck' + 75 'label' : 'Spell check your selected cell content', + 76 'icon' : 'icon-check-sign', + 77 'callback': function(){spellChecker(param1)}, + 78 'id' : 'start_spellcheck' 79 }, 80 ]); 81 var document_keydown = function(event) { @@ -162,14 +149,9 @@ 91 }); </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -179,9 +161,6 @@ <p>OK, I hope you enjoy and use this extension... because the <strong>IPython</strong> notebook is not only for write code... it is also powered to write other things, such as this blog post, and we have to keep spelling mistakes as low as possible to make the read of our content <em>pleasant</em>...</p> <p>See you...</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html b/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html index 3cb84340..3de1fe2d 100644 --- a/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html +++ b/cache/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, today I will release another <strong>IPython</strong> <em>js</em> extension: <strong>Spellchecker</strong>, which obviously do what you are thinking... spell check the content of your <strong>IPython</strong> notebook cells.</p> -<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems! -<!-- TEASER_END --></p> +<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems!</p> +<!-- TEASER_END --> <p>The main idea here is to use the spell checker functionality provided by your browser [yes, let to the others the complex things ;-)]. But, as you know, the spell checking functionality is disable inside the <strong>IPython</strong> notebook... and this is because each cell you actually see is a <em>codemirror</em> instance... and <em>codemirror</em> does not support spell checking by design... in fact, the <em>codemirror</em> text area (editor) is not a common html text area, hence the browser can not actually run the spell checker in this new text area.</p> <p>So, are we prohibited to apply a spell checker functionality over a <em>codemirror</em> instance? In fact, no... there is a way to do it applying something called <em>codemirror layouts</em> and using <em>js</em> spell checker libraries...</p> <p>But, I don't want to do this job yet (because of several causes which I do not describe here now), so I thought workaround and use the <strong>IPython</strong> <em>js</em> machinery to get a simple, narrow but useful solution.</p> @@ -11,63 +11,50 @@ <ul> <li>The spell checker will do its job at the cell level.</li> </ul> -<p><img src="../galleries/spellchecker/1.png" alt=""></p> +<p><img alt="" src="../galleries/spellchecker/1.png"/></p> <ul> <li><p>We need a way to get the content of the selected <strong>IPython</strong> notebook cell:</p> -<div class="highlight"><pre><span></span><span class="mi">24</span> <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">()</span> +<div class="highlight"><pre><span></span><span class="mf">24</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">()</span> </pre></div> </li> <li><p>Put the content in a common html text area, and use the spell checker capabilities from the browser:</p> -<div class="highlight"><pre><span></span><span class="mi">26</span> <span class="kd">var</span> <span class="nx">textarea</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="s1">'<textarea/>'</span><span class="p">)</span> - <span class="mi">27</span> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'rows'</span><span class="p">,</span><span class="s1">'15'</span><span class="p">)</span> - <span class="mi">28</span> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'cols'</span><span class="p">,</span><span class="s1">'80'</span><span class="p">)</span> - <span class="mi">29</span> <span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span><span class="s1">'source'</span><span class="p">)</span> - <span class="mi">30</span> <span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">input</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="mf">26</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">textarea</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">$</span><span class="p">(</span><span class="s1">'<textarea/>'</span><span class="p">)</span> +<span class="mf">27</span><span class="w"> </span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'rows'</span><span class="p">,</span><span class="s1">'15'</span><span class="p">)</span> +<span class="mf">28</span><span class="w"> </span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'cols'</span><span class="p">,</span><span class="s1">'80'</span><span class="p">)</span> +<span class="mf">29</span><span class="w"> </span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span><span class="s1">'source'</span><span class="p">)</span> +<span class="mf">30</span><span class="w"> </span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="nx">input</span><span class="p">);</span> </pre></div> </li> <li><p>Make the corrections.</p> </li> </ul> -<p><img src="../galleries/spellchecker/2.png" alt=""></p> +<p><img alt="" src="../galleries/spellchecker/2.png"/></p> <ul> <li><p>Get back the corrected content into the selected <strong>IPython</strong> notebook cell.</p> -<div class="highlight"><pre><span></span><span class="mi">60</span> <span class="kd">var</span> <span class="nx">corr_input</span> <span class="o">=</span> <span class="sb">`$`</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="sb">`$`</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">());</span> <span class="c1">// note: backticks to avoid mathjax rendering, sorry.</span> - <span class="mi">61</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> - <span class="mi">62</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="mf">60</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">corr_input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sb">`$`</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="sb">`$`</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">());</span><span class="w"> </span><span class="c1">// note: backticks to avoid mathjax rendering, sorry.</span> +<span class="mf">61</span><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> +<span class="mf">62</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> </pre></div> </li> </ul> <p>And that's all... the complete code below:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">spellchecker</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">spellchecker</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> 1 /* 2 * ---------------------------------------------------------------------------- @@ -80,11 +67,11 @@ 9 */ 10 11 function spellCheckerCSS() { - 12 var link = document.createElement("link"); - 13 link.type = "text/css"; - 14 link.rel = "stylesheet"; - 15 link.href = require.toUrl("./custom/spellchecker/main.css"); - 16 document.getElementsByTagName("head")[0].appendChild(link); + 12 var link = document.createElement("link"); + 13 link.type = "text/css"; + 14 link.rel = "stylesheet"; + 15 link.href = require.toUrl("./custom/spellchecker/main.css"); + 16 document.getElementsByTagName("head")[0].appendChild(link); 17 } 18 19 function spellChecker(dummy) { @@ -94,28 +81,28 @@ 23 24 var input = IPython.notebook.get_selected_cell().get_text() 25 - 26 var textarea = $('<textarea/>') - 27 .attr('rows','15') - 28 .attr('cols','80') - 29 .attr('name','source') + 26 var textarea = $('<textarea/>') + 27 .attr('rows','15') + 28 .attr('cols','80') + 29 .attr('name','source') 30 .text(input); 31 - 32 var dialogform = $('<div/>') + 32 var dialogform = $('<div/>') 33 .append( - 34 $('<form/>').append( - 35 $('<fieldset/>').append( - 36 $('<label/>') - 37 .attr('for','source') - 38 .text("Now you can edit the cell content and use " + - 39 "the spellchecker support of your browser over it. " + - 40 "In Chromium, just focus in the text area and " + - 41 "select the text you want to spell check. Then you will " + - 42 "be able to use the contextual menu (right click) to get " + - 43 "words suggestion and other configuration options (lang). " + - 44 "Finally press OK to get the corrected cell content into " + - 45 "your selected IPython notebook cell.") + 34 $('<form/>').append( + 35 $('<fieldset/>').append( + 36 $('<label/>') + 37 .attr('for','source') + 38 .text("Now you can edit the cell content and use " + + 39 "the spellchecker support of your browser over it. " + + 40 "In Chromium, just focus in the text area and " + + 41 "select the text you want to spell check. Then you will " + + 42 "be able to use the contextual menu (right click) to get " + + 43 "words suggestion and other configuration options (lang). " + + 44 "Finally press OK to get the corrected cell content into " + + 45 "your selected IPython notebook cell.") 46 ) - 47 .append($('<br/>')) + 47 .append($('<br/>')) 48 .append( 49 textarea 50 ) @@ -123,10 +110,10 @@ 52 ); 53 54 IPython.dialog.modal({ - 55 title: "Edit and spell check your cell content", + 55 title: "Edit and spell check your cell content", 56 body: dialogform, 57 buttons: { - 58 "OK": { class : "btn-primary", + 58 "OK": { class : "btn-primary", 59 click: function() { 60 var corr_input = $.trim($(textarea).val()); 61 console.log(corr_input); @@ -143,10 +130,10 @@ 72 parameters: function setup(param1) { 73 IPython.toolbar.add_buttons_group([ 74 { - 75 'label' : 'Spell check your selected cell content', - 76 'icon' : 'icon-check-sign', - 77 'callback': function(){spellChecker(param1)}, - 78 'id' : 'start_spellcheck' + 75 'label' : 'Spell check your selected cell content', + 76 'icon' : 'icon-check-sign', + 77 'callback': function(){spellChecker(param1)}, + 78 'id' : 'start_spellcheck' 79 }, 80 ]); 81 var document_keydown = function(event) { @@ -162,14 +149,9 @@ 91 }); </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -179,9 +161,6 @@ <p>OK, I hope you enjoy and use this extension... because the <strong>IPython</strong> notebook is not only for write code... it is also powered to write other things, such as this blog post, and we have to keep spelling mistakes as low as possible to make the read of our content <em>pleasant</em>...</p> <p>See you...</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html b/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html index 5e6a5100..47bdc2b5 100644 --- a/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html +++ b/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.es.html @@ -1,54 +1,41 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9a66bd65"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I presented a way to mimic the execution of <em>nbconverted</em> <strong>IPython</strong> notebooks (<em>ipynb</em>). Today, I will show you how to add a simple <em>minimap</em> to these static html documents.</p> -<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -<!-- TEASER_END --></p> +<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...</p> +<!-- TEASER_END --> <p><strong>Addendum note</strong>: There are some <em>performance issues</em> with <strong>Firefox</strong>, but in <strong>Chromium</strong> it is working OK! Simplicity comes with some hidden costs ;-)</p> <p><strong>NOTE</strong>: if you are impatient, just go the beginning of this post and press the <code>Minimap</code> link next to the <code>Source</code> link... and surprise!</p> <p>Well, my first thought to develop this feature was to look if anybody had this same idea (a <em>minimap</em> for html-based documents) before, and obviously, there was somebody ;-)</p> <p>Mr. <strong>Google</strong> pointed me to a <a href="http://dropthebit.com/481/mini-page-navigation/">blog</a> where I found a nice js-based (working) solution.</p> <p>The implementation was very simple and we used the same strategy from the last blog posts: pass a template in the <code>IPython.nbconvert</code> call from the command line (but please, do not forget that you can also use a config file to pass the template name -and other things - to the <code>IPython.nbconvert</code> infrastructure).</p> <p>OK, but we needed to write the template before passing it, so we did it:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=cbbcb992"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/minimap.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/minimap.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'html_full.tpl' -%} +<pre>{%- extends 'html_full.tpl' -%} {%- block header -%} {{ super() }} -<script src="http://dropthebit.com/demos/mini_page_nav/miniPageNav.js"></script> +<script src="http://dropthebit.com/demos/mini_page_nav/miniPageNav.js"></script> -<style type="text/css"> +<style type="text/css"> body{ position: static; } @@ -57,16 +44,11 @@ {%- endblock header -%} </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e8f87a9a"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We extended the <code>html_full</code> template adding two things to the <code>block header</code>:</p> @@ -84,9 +66,6 @@ <p>NOTE: If you are thinking "I want this minimap with in my <strong>IPython</strong> notebooks", you will have to hack the source code of the <code>js</code> library I used because it was designed for simple windows and not for more complex structures such as the notebook itself.</p> <p>Enjoy your <em>minimaps</em>!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html b/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html index 5e6a5100..cc06a589 100644 --- a/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html +++ b/cache/posts/a-simple-minimap-for-your-nbconverted-ipynb.html @@ -1,54 +1,41 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=13764374"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I presented a way to mimic the execution of <em>nbconverted</em> <strong>IPython</strong> notebooks (<em>ipynb</em>). Today, I will show you how to add a simple <em>minimap</em> to these static html documents.</p> -<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -<!-- TEASER_END --></p> +<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...</p> +<!-- TEASER_END --> <p><strong>Addendum note</strong>: There are some <em>performance issues</em> with <strong>Firefox</strong>, but in <strong>Chromium</strong> it is working OK! Simplicity comes with some hidden costs ;-)</p> <p><strong>NOTE</strong>: if you are impatient, just go the beginning of this post and press the <code>Minimap</code> link next to the <code>Source</code> link... and surprise!</p> <p>Well, my first thought to develop this feature was to look if anybody had this same idea (a <em>minimap</em> for html-based documents) before, and obviously, there was somebody ;-)</p> <p>Mr. <strong>Google</strong> pointed me to a <a href="http://dropthebit.com/481/mini-page-navigation/">blog</a> where I found a nice js-based (working) solution.</p> <p>The implementation was very simple and we used the same strategy from the last blog posts: pass a template in the <code>IPython.nbconvert</code> call from the command line (but please, do not forget that you can also use a config file to pass the template name -and other things - to the <code>IPython.nbconvert</code> infrastructure).</p> <p>OK, but we needed to write the template before passing it, so we did it:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=58fe1366"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/minimap.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/minimap.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'html_full.tpl' -%} +<pre>{%- extends 'html_full.tpl' -%} {%- block header -%} {{ super() }} -<script src="http://dropthebit.com/demos/mini_page_nav/miniPageNav.js"></script> +<script src="http://dropthebit.com/demos/mini_page_nav/miniPageNav.js"></script> -<style type="text/css"> +<style type="text/css"> body{ position: static; } @@ -57,16 +44,11 @@ {%- endblock header -%} </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f9c07fc7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We extended the <code>html_full</code> template adding two things to the <code>block header</code>:</p> @@ -84,9 +66,6 @@ <p>NOTE: If you are thinking "I want this minimap with in my <strong>IPython</strong> notebooks", you will have to hack the source code of the <code>js</code> library I used because it was designed for simple windows and not for more complex structures such as the notebook itself.</p> <p>Enjoy your <em>minimaps</em>!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/abandoning-the-oquanta-domain-name.es.html b/cache/posts/abandoning-the-oquanta-domain-name.es.html index a3010ef1..d2366665 100644 --- a/cache/posts/abandoning-the-oquanta-domain-name.es.html +++ b/cache/posts/abandoning-the-oquanta-domain-name.es.html @@ -7,9 +7,6 @@ <p>As you probably know as well, for several years, this blog has been hosted in <code>gh-pages</code>, so I will just use the default and expected URL provided by <em>Github</em>: <a href="https://damianavila.github.io/blog">https://damianavila.github.io/blog</a></p> <p>Please, make sure to <strong>bookmark/save/link</strong> the correct URL if you want to keep reading about some of my stuff ;-)</p> <p>Have a great start of the week!</p> - </div> </div> </div> - - diff --git a/cache/posts/abandoning-the-oquanta-domain-name.html b/cache/posts/abandoning-the-oquanta-domain-name.html index a3010ef1..d2366665 100644 --- a/cache/posts/abandoning-the-oquanta-domain-name.html +++ b/cache/posts/abandoning-the-oquanta-domain-name.html @@ -7,9 +7,6 @@ <p>As you probably know as well, for several years, this blog has been hosted in <code>gh-pages</code>, so I will just use the default and expected URL provided by <em>Github</em>: <a href="https://damianavila.github.io/blog">https://damianavila.github.io/blog</a></p> <p>Please, make sure to <strong>bookmark/save/link</strong> the correct URL if you want to keep reading about some of my stuff ;-)</p> <p>Have a great start of the week!</p> - </div> </div> </div> - - diff --git a/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html b/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html index 998719e0..5c416a17 100644 --- a/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html +++ b/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.es.html @@ -3,20 +3,17 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -<!-- TEASER_END --></p> - +<p>OK, first of all, let's go to the folder containing my blog:</p> +<!-- TEASER_END --> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>damian@damian-S400CA:~$ cd /media/datos/Desarrollos/damian_blog damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$</code></pre> - </div> </div> </div> @@ -24,18 +21,15 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Then I activate my <strong>virtualenv</strong> specifically filled to build my blog:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$ workon blog (blog)damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$ </code></pre> - </div> </div> </div> @@ -43,14 +37,12 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Now, we are ready to the next step, calling the <code>nikola console</code>:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>(blog)damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$ nikola console Scanning posts......done! Python 2.7.4 (default, Apr 19 2013, 18:28:01) @@ -64,7 +56,6 @@ Nikola v6.1.1 -- IPython Console (conf = configuration, SITE = site engine)</code></pre> - </div> </div> </div> @@ -72,14 +63,12 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yes... <strong>Nikola</strong> offers a feature called <code>nikola console</code> which immediately opens an <strong>IPython</strong> console (if you have installed IPython, of course) where you can do a lot of things, as I will show you later, but also have direct access to <strong>Nikola</strong> internals through the <code>conf</code> (configuration) and <code>SITE</code> (site engine) objects. We can explore this objects using the <em>tab completion</em> from the IPython machinery:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>In [1]: conf.<TAB> conf.BLOG_AUTHOR conf.LICENSE conf.BLOG_DESCRIPTION conf.MATHJAX_CONFIG @@ -95,14 +84,12 @@ conf.GLOBAL_CONTEXT conf.TRANSLATIONS conf.INDEX_TEASERS conf.unicode_literals conf.IPYNB_CONFIG </code></pre> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>In [1]: SITE.<TAB> SITE.abs_link SITE.MESSAGES SITE.clean_task_paths SITE.pages @@ -122,7 +109,6 @@ SITE.global_data SITE.timeline SITE.inverse_compilers SITE.translations SITE.link </code></pre> - </div> </div> </div> @@ -130,13 +116,9 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>But, we will probably go back to these objects in another blog post... now, we go again to the <strong>Nikola IPython</strong> console because we want to create a new post. The easiest way to do it is just calling the proper <strong>Nikola</strong> command using the <code>!</code> to pass it from the <strong>Nikola IPython</strong> console to the shell.</p> - -<pre><code>In [1]: !nikola new_post -f ipynb - -</code></pre> -<p>But we can do it better ;-) +<pre><code>In [1]: !nikola new_post -f ipynb</code></pre> +<p>But we can do it better ;-) We can pass arguments to the <code>nikola new_post</code> command such as the <code>title</code>, <code>tags</code>, <code>format</code> (we have already pass the format with <code>-f ipynb</code>), etc. So, let me create some variables for these arguments inside my <strong>Nikola IPython</strong> console session:</p> - <pre><code>In [1]: title = "Bidirectional IPython-Nikola workflow to write your blog post" In [2]: tags_list = ['python', 'IPython', 'nikola', 'blog', 'extension', 'gh-pages', 'git', 'workflow'] @@ -144,95 +126,66 @@ In [3]: tags = ', '.join(tags_list) In [4]: tags -Out[4]: u'python, IPython, nikola, blog, extension, gh-pages, git, workflow' - -</code></pre> +Out[4]: u'python, IPython, nikola, blog, extension, gh-pages, git, workflow'</code></pre> <p>Here I have the string <code>title</code> containing the title for the current blog post and a list called <code>tags_list</code> containing the corresponding tags. Later I call the <code>.join</code> method because I will need to pass a string with the tags sepatarated by commas to the <code>nikola new_post</code> command.</p> <p>But, <strong>wait a minute</strong>... I have <strong>Python</strong> variables containing the title and the tags for my blog post. How can pass this variables to the shell to use them as arguments of the <code>nikola new_post</code> command???</p> <p>OK, to solve this problem we will use an exciting feature from <strong>IPython</strong>, just see the following line:</p> - -<pre><code>In [5]: !nikola new_post -f ipynb -t "{title}" --tags="{tags}" - -</code></pre> +<pre><code>In [5]: !nikola new_post -f ipynb -t "{title}" --tags="{tags}"</code></pre> <p>which will create the desired <code>ipynb</code> and the corresponding <code>.meta</code> file containing the title and tags.</p> - <pre><code>Creating New Post ----------------- Title: Bidirectional IPython-Nikola workflow to write your blog post Scanning posts......done! Your post's metadata is at: posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.meta -[2013-10-15T19:21:28Z] NOTICE: new_post: Your post's text is at: posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb - -</code></pre> +[2013-10-15T19:21:28Z] NOTICE: new_post: Your post's text is at: posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb</code></pre> <p><em>Que me contusi!</em> (or... do you see the bidirectional nature of this interaction? Nice, don't you think?)</p> <p>Yes, inside <strong>IPython</strong>, we can use the braces to pass <strong>Python</strong> variables to the shell... ;-)</p> <p><em>Do you see the possibilities we have with this little feature?</em></p> <p>Now, I <em>cd</em> into the post folder of my site and open the <strong>IPython notebook</strong> with my custom extensions.</p> - <pre><code>In [6]: cd posts/ /media/datos/Desarrollos/damian_blog/posts -In [7]: !ipython notebook --profile=myext - -</code></pre> +In [7]: !ipython notebook --profile=myext</code></pre> <p>In the <strong>IPython Dashboard</strong>, I will open the new <code>ipynb</code> called <code>bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb</code> and write the content (I am writing right now).</p> <p>Then, when I am done with the blog post, I need to deploy my new content to somewhere to make available to the public...</p> <p>And this is very easy...</p> <p>First, <strong>Nikola</strong> have a <code>nikola deploy</code> command which you can customize with your conf.py file. You can see it here my configuration:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [8]:</div> +<div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">197</span>,208p conf.py +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">197</span>,208p<span class="w"> </span>conf.py </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre># Commands to execute to deploy. Can be anything, for example, # you may use rsync: -# "rsync -rav output/* joe@my.site:/srv/www/site" +# "rsync -rav output/* joe@my.site:/srv/www/site" # And then do a backup, or ping pingomatic. # To do manual deployment, set it to [] -DEPLOY_COMMANDS = ["git add .", - "git commit -am 'Update'", - "git push origin master", - "git subtree split --prefix output -b gh-pages", - "git push -f origin gh-pages:gh-pages", - "git branch -D gh-pages"] +DEPLOY_COMMANDS = ["git add .", + "git commit -am 'Update'", + "git push origin master", + "git subtree split --prefix output -b gh-pages", + "git push -f origin gh-pages:gh-pages", + "git branch -D gh-pages"] </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -240,7 +193,6 @@ <p>The instructions are very easy to understand, if you need more details just read this <a href="../posts/one-line-deployment-of-your-site-to-gh-pages.html">post</a> I wrote some weeks ago.</p> <p>I am essentially pushing the content to master, creating a split and deploy it later to <strong>gh-pages</strong>.</p> <p>OK, but because I am <em>lazy</em> ;-), some weeks ago I wrote an <strong>IPython</strong> <em>javascript</em> extension which let me execute this <code>nikola deploy</code> command from a button in the <strong>IPython notebook toolbar</strong>. Essentially something like this (don't worry, I will release the extension soon):</p> - <pre><code>function nikolaDeploy(path, clean) { IPython.notebook.kernel.execute('cd ' + path); if (clean=="True") { @@ -251,16 +203,11 @@ IPython.notebook.kernel.execute('!nikola build'); IPython.notebook.kernel.execute('!nikola deploy'); messager(); -} - -</code></pre> +}</code></pre> <p>As you can see, I call <code>nikola clean</code> to clean my site, the I built it with <code>nikola build</code>, and deploy it with my customized <code>nikola deploy</code>... and all these actions with just a click!</p> <p>And now you have the complete workflow! A very simple one, because you can make a lot of modifications to improve it. However, this workflow show you how you can integrate two exciting projects, communicate one with the other and viceversa, and get beautiful results.</p> <p>Hope you enjoy it!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html b/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html index 998719e0..5c416a17 100644 --- a/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html +++ b/cache/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html @@ -3,20 +3,17 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -<!-- TEASER_END --></p> - +<p>OK, first of all, let's go to the folder containing my blog:</p> +<!-- TEASER_END --> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>damian@damian-S400CA:~$ cd /media/datos/Desarrollos/damian_blog damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$</code></pre> - </div> </div> </div> @@ -24,18 +21,15 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Then I activate my <strong>virtualenv</strong> specifically filled to build my blog:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$ workon blog (blog)damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$ </code></pre> - </div> </div> </div> @@ -43,14 +37,12 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Now, we are ready to the next step, calling the <code>nikola console</code>:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>(blog)damian@damian-S400CA:/media/datos/Desarrollos/damian_blog$ nikola console Scanning posts......done! Python 2.7.4 (default, Apr 19 2013, 18:28:01) @@ -64,7 +56,6 @@ Nikola v6.1.1 -- IPython Console (conf = configuration, SITE = site engine)</code></pre> - </div> </div> </div> @@ -72,14 +63,12 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yes... <strong>Nikola</strong> offers a feature called <code>nikola console</code> which immediately opens an <strong>IPython</strong> console (if you have installed IPython, of course) where you can do a lot of things, as I will show you later, but also have direct access to <strong>Nikola</strong> internals through the <code>conf</code> (configuration) and <code>SITE</code> (site engine) objects. We can explore this objects using the <em>tab completion</em> from the IPython machinery:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>In [1]: conf.<TAB> conf.BLOG_AUTHOR conf.LICENSE conf.BLOG_DESCRIPTION conf.MATHJAX_CONFIG @@ -95,14 +84,12 @@ conf.GLOBAL_CONTEXT conf.TRANSLATIONS conf.INDEX_TEASERS conf.unicode_literals conf.IPYNB_CONFIG </code></pre> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> - <pre><code>In [1]: SITE.<TAB> SITE.abs_link SITE.MESSAGES SITE.clean_task_paths SITE.pages @@ -122,7 +109,6 @@ SITE.global_data SITE.timeline SITE.inverse_compilers SITE.translations SITE.link </code></pre> - </div> </div> </div> @@ -130,13 +116,9 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>But, we will probably go back to these objects in another blog post... now, we go again to the <strong>Nikola IPython</strong> console because we want to create a new post. The easiest way to do it is just calling the proper <strong>Nikola</strong> command using the <code>!</code> to pass it from the <strong>Nikola IPython</strong> console to the shell.</p> - -<pre><code>In [1]: !nikola new_post -f ipynb - -</code></pre> -<p>But we can do it better ;-) +<pre><code>In [1]: !nikola new_post -f ipynb</code></pre> +<p>But we can do it better ;-) We can pass arguments to the <code>nikola new_post</code> command such as the <code>title</code>, <code>tags</code>, <code>format</code> (we have already pass the format with <code>-f ipynb</code>), etc. So, let me create some variables for these arguments inside my <strong>Nikola IPython</strong> console session:</p> - <pre><code>In [1]: title = "Bidirectional IPython-Nikola workflow to write your blog post" In [2]: tags_list = ['python', 'IPython', 'nikola', 'blog', 'extension', 'gh-pages', 'git', 'workflow'] @@ -144,95 +126,66 @@ In [3]: tags = ', '.join(tags_list) In [4]: tags -Out[4]: u'python, IPython, nikola, blog, extension, gh-pages, git, workflow' - -</code></pre> +Out[4]: u'python, IPython, nikola, blog, extension, gh-pages, git, workflow'</code></pre> <p>Here I have the string <code>title</code> containing the title for the current blog post and a list called <code>tags_list</code> containing the corresponding tags. Later I call the <code>.join</code> method because I will need to pass a string with the tags sepatarated by commas to the <code>nikola new_post</code> command.</p> <p>But, <strong>wait a minute</strong>... I have <strong>Python</strong> variables containing the title and the tags for my blog post. How can pass this variables to the shell to use them as arguments of the <code>nikola new_post</code> command???</p> <p>OK, to solve this problem we will use an exciting feature from <strong>IPython</strong>, just see the following line:</p> - -<pre><code>In [5]: !nikola new_post -f ipynb -t "{title}" --tags="{tags}" - -</code></pre> +<pre><code>In [5]: !nikola new_post -f ipynb -t "{title}" --tags="{tags}"</code></pre> <p>which will create the desired <code>ipynb</code> and the corresponding <code>.meta</code> file containing the title and tags.</p> - <pre><code>Creating New Post ----------------- Title: Bidirectional IPython-Nikola workflow to write your blog post Scanning posts......done! Your post's metadata is at: posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.meta -[2013-10-15T19:21:28Z] NOTICE: new_post: Your post's text is at: posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb - -</code></pre> +[2013-10-15T19:21:28Z] NOTICE: new_post: Your post's text is at: posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb</code></pre> <p><em>Que me contusi!</em> (or... do you see the bidirectional nature of this interaction? Nice, don't you think?)</p> <p>Yes, inside <strong>IPython</strong>, we can use the braces to pass <strong>Python</strong> variables to the shell... ;-)</p> <p><em>Do you see the possibilities we have with this little feature?</em></p> <p>Now, I <em>cd</em> into the post folder of my site and open the <strong>IPython notebook</strong> with my custom extensions.</p> - <pre><code>In [6]: cd posts/ /media/datos/Desarrollos/damian_blog/posts -In [7]: !ipython notebook --profile=myext - -</code></pre> +In [7]: !ipython notebook --profile=myext</code></pre> <p>In the <strong>IPython Dashboard</strong>, I will open the new <code>ipynb</code> called <code>bidirectional-ipython-nikola-workflow-to-write-your-blog-post.ipynb</code> and write the content (I am writing right now).</p> <p>Then, when I am done with the blog post, I need to deploy my new content to somewhere to make available to the public...</p> <p>And this is very easy...</p> <p>First, <strong>Nikola</strong> have a <code>nikola deploy</code> command which you can customize with your conf.py file. You can see it here my configuration:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [8]:</div> +<div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">197</span>,208p conf.py +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">197</span>,208p<span class="w"> </span>conf.py </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre># Commands to execute to deploy. Can be anything, for example, # you may use rsync: -# "rsync -rav output/* joe@my.site:/srv/www/site" +# "rsync -rav output/* joe@my.site:/srv/www/site" # And then do a backup, or ping pingomatic. # To do manual deployment, set it to [] -DEPLOY_COMMANDS = ["git add .", - "git commit -am 'Update'", - "git push origin master", - "git subtree split --prefix output -b gh-pages", - "git push -f origin gh-pages:gh-pages", - "git branch -D gh-pages"] +DEPLOY_COMMANDS = ["git add .", + "git commit -am 'Update'", + "git push origin master", + "git subtree split --prefix output -b gh-pages", + "git push -f origin gh-pages:gh-pages", + "git branch -D gh-pages"] </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -240,7 +193,6 @@ <p>The instructions are very easy to understand, if you need more details just read this <a href="../posts/one-line-deployment-of-your-site-to-gh-pages.html">post</a> I wrote some weeks ago.</p> <p>I am essentially pushing the content to master, creating a split and deploy it later to <strong>gh-pages</strong>.</p> <p>OK, but because I am <em>lazy</em> ;-), some weeks ago I wrote an <strong>IPython</strong> <em>javascript</em> extension which let me execute this <code>nikola deploy</code> command from a button in the <strong>IPython notebook toolbar</strong>. Essentially something like this (don't worry, I will release the extension soon):</p> - <pre><code>function nikolaDeploy(path, clean) { IPython.notebook.kernel.execute('cd ' + path); if (clean=="True") { @@ -251,16 +203,11 @@ IPython.notebook.kernel.execute('!nikola build'); IPython.notebook.kernel.execute('!nikola deploy'); messager(); -} - -</code></pre> +}</code></pre> <p>As you can see, I call <code>nikola clean</code> to clean my site, the I built it with <code>nikola build</code>, and deploy it with my customized <code>nikola deploy</code>... and all these actions with just a click!</p> <p>And now you have the complete workflow! A very simple one, because you can make a lot of modifications to improve it. However, this workflow show you how you can integrate two exciting projects, communicate one with the other and viceversa, and get beautiful results.</p> <p>Hope you enjoy it!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html b/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html index ff7c5daa..aa6dd921 100644 --- a/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html +++ b/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.es.html @@ -7,63 +7,52 @@ <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -<!-- TEASER_END --></p> +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<!-- TEASER_END --> <p><strong>NOTE</strong>: This post is long but I promise will be interesting! Also, there are multiple cells generating a <em>lot</em> of output, remember that you can hide the output clicking on <em>"Click me to hide the output"</em> button at the bottom/right conner of each cell.</p> -<h2 id="Ingredients">Ingredients<a class="anchor-link" href="#Ingredients">¶</a></h2><p>First, as with any other recipe, we need some ingredients.</p> +<h2 id="Ingredients">Ingredients<a class="anchor-link" href="#Ingredients">¶</a></h2><p>First, as with any other recipe, we need some ingredients.</p> <ol> <li><strong>Jupyter Notebook</strong>, as our UI to write and manage the computational resources</li> <li><strong>Nikola</strong>, to build the static site</li> <li><strong>Binder</strong>, to provide the computational resources, and secondarily, the UI mentioned in the first item</li> <li><strong>Github</strong>, to persist the whole site</li> </ol> -<h2 id="Method">Method<a class="anchor-link" href="#Method">¶</a></h2><p>Let's summarize the whole idea:</p> -<blockquote><p>We launch a <em>binder</em> instance from a <strong>Github</strong> repo containing my <strong>Nikola</strong>-powered blog site and write some content into a new blog post (using the <strong>Jupyter Notebook</strong>), then I rebuild the site using <strong>Nikola</strong> (already installed in my <em>binder</em> instance) and finally push the updated site to <strong>Github</strong>'s <em>gh-pages</em> to finally publish the new content (from my <em>binder</em> instance as well).</p> +<h2 id="Method">Method<a class="anchor-link" href="#Method">¶</a></h2><p>Let's summarize the whole idea:</p> +<blockquote> +<p>We launch a <em>binder</em> instance from a <strong>Github</strong> repo containing my <strong>Nikola</strong>-powered blog site and write some content into a new blog post (using the <strong>Jupyter Notebook</strong>), then I rebuild the site using <strong>Nikola</strong> (already installed in my <em>binder</em> instance) and finally push the updated site to <strong>Github</strong>'s <em>gh-pages</em> to finally publish the new content (from my <em>binder</em> instance as well).</p> </blockquote> <p>Sounds good, isn't it?</p> -<h3 id="Create-a-binder-for-my-blog-site">Create a binder for my blog site<a class="anchor-link" href="#Create-a-binder-for-my-blog-site">¶</a></h3><p>Do you know <a href="https://mybinder.org/"><strong>Binder</strong></a>, right? In simple words it <em>Turn a GitHub repo into a collection of interactive notebooks</em>. You can find more info about <strong>Binder</strong> at <a href="https://mybinder.readthedocs.io/en/latest/">https://mybinder.readthedocs.io/en/latest/</a>. +<h3 id="Create-a-binder-for-my-blog-site">Create a binder for my blog site<a class="anchor-link" href="#Create-a-binder-for-my-blog-site">¶</a></h3><p>Do you know <a href="https://mybinder.org/"><strong>Binder</strong></a>, right? In simple words it <em>Turn a GitHub repo into a collection of interactive notebooks</em>. You can find more info about <strong>Binder</strong> at <a href="https://mybinder.readthedocs.io/en/latest/">https://mybinder.readthedocs.io/en/latest/</a>. For the purpose of this post (and the next ones), I just created a new binder filling my blog site <strong>Github</strong> repo url into the URL field at mybinder.org (and the path to a specific notebook file) and I got a new url to access my <em>binder</em> instance at <a href="https://mybinder.org/v2/gh/damianavila/damian_blog/master?filepath=Start.ipynb">https://mybinder.org/v2/gh/damianavila/damian_blog/master?filepath=Start.ipynb</a></p> -<blockquote><p>In fact, I am writing this blog post in a binder instance (I love to do meta stuff ;-)</p> +<blockquote> +<p>In fact, I am writing this blog post in a binder instance (I love to do meta stuff ;-)</p> </blockquote> <p>That url pointed me to a <code>Start.ipynb</code> notebook file where I have some cells to create a new post with some <strong>Nikola</strong> tags. I run those cells and I have a new <code>ipynb</code> file under the <code>posts</code> directory, in this case: <code>binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb</code> where I can write my new content.</p> -<h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href="#Write-the-new-content">¶</a></h3><p>OK, this is one is easy, it is this very same post ;-) as you probably expected.</p> +<h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href="#Write-the-new-content">¶</a></h3><p>OK, this is one is easy, it is this very same post ;-) as you probably expected.</p> <p>BTW, one interesting note, since your binder is using <code>git</code> for internal stuff, you have <code>git</code> installed and ready to do your stuff as well. For instance, if my connection is flaky and given that my <em>binder</em> in <em>transient</em>. I can commit the work done so far. Just save the notebook file and run:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git status +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>On branch master -Your branch is up-to-date with 'origin/master'. +Your branch is up-to-date with 'origin/master'. Changes not staged for commit: - (use "git add <file>..." to update what will be committed) - (use "git checkout -- <file>..." to discard changes in working directory) + (use "git add <file>..." to update what will be committed) + (use "git checkout -- <file>..." to discard changes in working directory) <span class="ansi-red-fg">modified: ../.ipynb_checkpoints/Start-checkpoint.ipynb</span> <span class="ansi-red-fg">modified: ../Start.ipynb</span> @@ -71,7 +60,7 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= <span class="ansi-red-fg">modified: ../plugins/upgrade_metadata/__pycache__/upgrade_metadata.cpython-35.pyc</span> Untracked files: - (use "git add <file>..." to include in what will be committed) + (use "git add <file>..." to include in what will be committed) <span class="ansi-red-fg">../.bash_logout</span> <span class="ansi-red-fg">../.bashrc</span> @@ -81,59 +70,38 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= <span class="ansi-red-fg">.ipynb_checkpoints/binder-+-nikola-+-jupyter-+-github-blogging-resourceless-checkpoint.ipynb</span> <span class="ansi-red-fg">binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb</span> -no changes added to commit (use "git add" and/or "git commit -a") +no changes added to commit (use "git add" and/or "git commit -a") </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add <span class="s2">"binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span><span class="s2">"binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Add (incomplete) new post"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Add (incomplete) new post"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[master 7c7f9890] Add (incomplete) new post 1 file changed, 146 insertions(+) @@ -141,13 +109,8 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -155,42 +118,29 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= <p>OK, now you need to push this content and if you try to <code>git push</code> it, it will fail unless you have permissions to push to your own repo. To achieve that from a <em>binder</em> instance you need to create a <em>personal access token</em> from Github: <a href="https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/">https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/</a>. And now you will be able to push your stuff.</p> <p>Note this <em>personal access token</em> will be useful for further pushes down the road, so keep it close.</p> <p>Also, we need a <em>terminal</em> to be able to provide the <em>username</em> and the <em>token</em>. And the <strong>Jupyter</strong> interface give us that terminal pretty easily, you just go to the /tree (dashboard) and start a terminal from the dropdown menu (I can probably write a little extension to perform this step from the notebook itself... but going to the terminal is pretty easy and quick).</p> -<p><img src="../galleries/binder/terminal.png" alt=""></p> +<p><img alt="" src="../galleries/binder/terminal.png"/></p> <p>Now your repository is updated, so next time you launch a binder from it, it will contain your new post, meaning you can write your stuff iteratevely even in a <em>transient</em> platform, sweet!</p> -<h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="anchor-link" href="#Rebuild-your-site-with-Nikola">¶</a></h3><p>When your post is ready, you need to rebuild the site using <strong>Nikola</strong>, but how <strong>Nikola</strong> end up in my <em>binder</em> instance? +<h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="anchor-link" href="#Rebuild-your-site-with-Nikola">¶</a></h3><p>When your post is ready, you need to rebuild the site using <strong>Nikola</strong>, but how <strong>Nikola</strong> end up in my <em>binder</em> instance? Easy as well, you just need to provide a <code>requirements.txt</code> file with the dependencies you need and those ones will be included in your <em>binder</em> instance: <a href="https://mybinder.readthedocs.io/en/latest/using.html#simple-python-dependencies">https://mybinder.readthedocs.io/en/latest/using.html#simple-python-dependencies</a></p> <p>In my case, the <code>requirement.txt</code> file is pretty easy: <a href="https://github.com/damianavila/damian_blog/blob/master/requirements.txt">https://github.com/damianavila/damian_blog/blob/master/requirements.txt</a>. Because all the other pieces I need are already included by default: <strong>Jupyter</strong> stuff and <code>git</code>.</p> <p>OK, now to rebuild your site you just need to run:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola build +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola<span class="w"> </span>build </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre><span class="ansi-yellow-intense-fg ansi-bold">[2017-12-17T22:28:50Z] WARNING: Nikola: The RSS_LINKS_APPEND_QUERY option is deprecated, use FEED_LINKS_APPEND_QUERY instead.</span> <span class="ansi-yellow-intense-fg ansi-bold">[2017-12-17T22:28:50Z] WARNING: Nikola: The RSS_READ_MORE_LINK option is deprecated, use FEED_READ_MORE_LINK instead.</span> @@ -337,7 +287,13 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . render_taxonomies:output/categories/life.html . render_taxonomies:output/categories/facu.html . render_taxonomies:output/categories/ipython.html -. render_taxonomies:output/categories/slideshow.html +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>. render_taxonomies:output/categories/slideshow.html . render_taxonomies:output/categories/conda.html . render_taxonomies:output/categories/nbviewer.html . render_taxonomies:output/categories/format.html @@ -499,7 +455,13 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . render_taxonomies:output/es/2016/index.html . render_taxonomies:output/es/2013/index.html . render_taxonomies:output/es/categories/index.html -. render_taxonomies:output/categories/jinja.xml +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>. render_taxonomies:output/categories/jinja.xml . render_taxonomies:output/categories/trading.xml . render_taxonomies:output/categories/css.xml . render_taxonomies:output/categories/minimap.xml @@ -639,7 +601,13 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . render_pages:output/posts/different-ways-to-lead-an-open-source-project.html . render_pages:output/es/posts/paraguay.html . render_taxonomies:output/es/categories/css.xml -. render_taxonomies:output/es/categories/minimap.xml +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>. render_taxonomies:output/es/categories/minimap.xml . render_pages:output/posts/a-new-nikolas-theme-for-my-site-zen.html . render_pages:output/es/posts/powered-by-nikola.html . render_pages:output/posts/customizing-your-ipython-slides.html @@ -744,69 +712,47 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . sitemap:output/sitemapindex.xml </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Now you have your site rebuilt, let's commit the changes so we don't loss the new content.</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add -u +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>-u </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git status +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>On branch master -Your branch is up-to-date with 'origin/master'. +Your branch is up-to-date with 'origin/master'. Changes to be committed: - (use "git reset HEAD <file>..." to unstage) + (use "git reset HEAD <file>..." to unstage) <span class="ansi-green-fg">modified: ../.doit.db.bak</span> <span class="ansi-green-fg">modified: ../.doit.db.dat</span> @@ -1034,7 +980,7 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an <span class="ansi-green-fg">modified: binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb</span> Untracked files: - (use "git add <file>..." to include in what will be committed) + (use "git add <file>..." to include in what will be committed) <span class="ansi-red-fg">../.bash_logout</span> <span class="ansi-red-fg">../.bashrc</span> @@ -1084,86 +1030,57 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [7]:</div> +<div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add ../cache/* +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>../cache/* </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [8]:</div> +<div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add ../output/* +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>../output/* </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [9]:</div> +<div class="prompt input_prompt">In [9]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [10]:</div> +<div class="prompt input_prompt">In [10]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Build the site in my binder instance"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Build the site in my binder instance"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[master 658c5e23] Build the site in my binder instance 263 files changed, 5378 insertions(+), 2102 deletions(-) @@ -1221,147 +1138,91 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an create mode 100644 output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>And I can push the content (<code>git push origin master</code>) using the terminal as we did in a previous step.</p> -<h3 id="Visualize-your-site">Visualize your site<a class="anchor-link" href="#Visualize-your-site">¶</a></h3><p>This could be an issue because <strong>Nikola</strong> offers a <code>nikola serve</code> command to preview your site, but using it inside <strong>Binder</strong> is probably not trivial. And you can do a little trick to be able to explore the new content. You just need to deploy the <code>output</code> folder contaning the updated site under the same <code>gh-pages</code> branch from where you usually serve your site.</p> +<h3 id="Visualize-your-site">Visualize your site<a class="anchor-link" href="#Visualize-your-site">¶</a></h3><p>This could be an issue because <strong>Nikola</strong> offers a <code>nikola serve</code> command to preview your site, but using it inside <strong>Binder</strong> is probably not trivial. And you can do a little trick to be able to explore the new content. You just need to deploy the <code>output</code> folder contaning the updated site under the same <code>gh-pages</code> branch from where you usually serve your site.</p> <p>And you can do that quite easily with:</p> <p><strong>Note</strong>: <code>git stash</code> is only needed here because I am executing git commands from this very same future blog post</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [11]:</div> +<div class="prompt input_prompt">In [11]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git stash +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>stash </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Saved working directory and index state WIP on master: 658c5e23 Build the site in my binder instance HEAD is now at 658c5e23 Build the site in my binder instance </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [12]:</div> +<div class="prompt input_prompt">In [12]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git checkout gh-pages +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>gh-pages </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Switched to branch 'gh-pages' -Your branch is up-to-date with 'origin/gh-pages'. +<pre>Switched to branch 'gh-pages' +Your branch is up-to-date with 'origin/gh-pages'. </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [14]:</div> +<div class="prompt input_prompt">In [14]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git checkout master -- ../output +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>master<span class="w"> </span>--<span class="w"> </span>../output </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [15]:</div> +<div class="prompt input_prompt">In [15]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Add output dir to gh-pages to pre-visualize the changes"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Add output dir to gh-pages to pre-visualize the changes"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[gh-pages 4fb3a46f] Add output dir to gh-pages to pre-visualize the changes 490 files changed, 3060 insertions(+), 1162 deletions(-) @@ -1389,264 +1250,164 @@ <h3 id="Visualize-your-site">Visualize your site<a class="anchor-link" href="#Vi create mode 100644 output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>And now, you just push the content into the <code>gh-pages</code> branch with <code>git push origin gh-pages</code> (use the terminal as I indicated before) and you can visit your <em>draft</em> site appeding <code>output</code> to the base url, in my <a href="../output/">case</a>.</p> <p>If you are not happy with it, if it does not looks like right, just iterate with more changes! Otherwise you can go to the deploy step!</p> -<h2 id="Deploy-your-site">Deploy your site<a class="anchor-link" href="#Deploy-your-site">¶</a></h2><p>OK, given the previous steps, I guess you will figure out how to perform the next steps:</p> +<h2 id="Deploy-your-site">Deploy your site<a class="anchor-link" href="#Deploy-your-site">¶</a></h2><p>OK, given the previous steps, I guess you will figure out how to perform the next steps:</p> <p><strong>NOTE</strong>: <code>rm</code> is only needed here because I am executing git commands from this very same future blog post</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [17]:</div> +<div class="prompt input_prompt">In [17]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>rm binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>rm<span class="w"> </span>binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb<span class="w"> </span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [18]:</div> +<div class="prompt input_prompt">In [18]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git checkout master +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>master </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Switched to branch 'master' -Your branch is up-to-date with 'origin/master'. +<pre>Switched to branch 'master' +Your branch is up-to-date with 'origin/master'. </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [19]:</div> +<div class="prompt input_prompt">In [19]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add -u +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>-u </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [20]:</div> +<div class="prompt input_prompt">In [20]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Add new stuff to the blog post (mostly deploy section)"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Add new stuff to the blog post (mostly deploy section)"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[master 7927ad63] Add new stuff to the blog post (mostly deploy section) 1 file changed, 291 insertions(+), 25 deletions(-) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>In the terminal: <code>git push origin master</code> to persist the latest content... again. And use a subtree approach to split the <code>output</code> directory and put it as a new <code>gh-pages</code> branch.</p> <p><strong>Note</strong>: First delete the existing <code>gh-pages</code> branch to avoid conflicts and <code>cd ..</code> because you need to subtree from the top directory.</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [21]:</div> +<div class="prompt input_prompt">In [21]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git branch -d gh-pages +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>branch<span class="w"> </span>-d<span class="w"> </span>gh-pages </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>warning: deleting branch 'gh-pages' that has been merged to - 'refs/remotes/origin/gh-pages', but not yet merged to HEAD. +<pre>warning: deleting branch 'gh-pages' that has been merged to + 'refs/remotes/origin/gh-pages', but not yet merged to HEAD. Deleted branch gh-pages (was 4fb3a46f). </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [22]:</div> +<div class="prompt input_prompt">In [22]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">cd</span> <span class="o">..</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">cd</span> <span class="o">..</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>/home/jovyan </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [23]:</div> +<div class="prompt input_prompt">In [23]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git subtree split --prefix output -b gh-pages +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>subtree<span class="w"> </span>split<span class="w"> </span>--prefix<span class="w"> </span>output<span class="w"> </span>-b<span class="w"> </span>gh-pages </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Created branch 'gh-pages' +<pre>Created branch 'gh-pages' 7092c69ccde3f7cd2a5d31c2a86b74739d665ac0 </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -1654,13 +1415,10 @@ <h2 id="Deploy-your-site">Deploy your site<a class="anchor-link" href="#Deploy-y <p>Finally, in the terminal: <code>git push -f origin gh-pages:gh-pages</code> to deploy your site and remove the local <code>gh-pages</code> with <code>git branch -D gh-pages</code>.</p> <p>And you are done!!!</p> <p><strong>Note</strong>: As you probably realized, you can run all the commands I described from the terminal and use the notebook just to write the blog posts. That would be, probably, the most common pattern. But this post in nicer and more explanatory if I run most of the commands here ;-)</p> -<h3 id="Conclusion">Conclusion<a class="anchor-link" href="#Conclusion">¶</a></h3><p>You have your new post <em>live</em>, in a <em>resourceless</em> sort of workflow, thanks to the <strong>Jupyter</strong> ecosystem, <strong>Nikola</strong> and <strong>Github</strong>.</p> +<h3 id="Conclusion">Conclusion<a class="anchor-link" href="#Conclusion">¶</a></h3><p>You have your new post <em>live</em>, in a <em>resourceless</em> sort of workflow, thanks to the <strong>Jupyter</strong> ecosystem, <strong>Nikola</strong> and <strong>Github</strong>.</p> <p>OK, long enough post. Sorry about that, but I need to give you the complete workflow if you want/need to use it.</p> <p>Happy coding!</p> <p>And blogging!</p> - </div> </div> </div> - - diff --git a/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html b/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html index ff7c5daa..aa6dd921 100644 --- a/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html +++ b/cache/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.html @@ -7,63 +7,52 @@ <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -<!-- TEASER_END --></p> +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<!-- TEASER_END --> <p><strong>NOTE</strong>: This post is long but I promise will be interesting! Also, there are multiple cells generating a <em>lot</em> of output, remember that you can hide the output clicking on <em>"Click me to hide the output"</em> button at the bottom/right conner of each cell.</p> -<h2 id="Ingredients">Ingredients<a class="anchor-link" href="#Ingredients">¶</a></h2><p>First, as with any other recipe, we need some ingredients.</p> +<h2 id="Ingredients">Ingredients<a class="anchor-link" href="#Ingredients">¶</a></h2><p>First, as with any other recipe, we need some ingredients.</p> <ol> <li><strong>Jupyter Notebook</strong>, as our UI to write and manage the computational resources</li> <li><strong>Nikola</strong>, to build the static site</li> <li><strong>Binder</strong>, to provide the computational resources, and secondarily, the UI mentioned in the first item</li> <li><strong>Github</strong>, to persist the whole site</li> </ol> -<h2 id="Method">Method<a class="anchor-link" href="#Method">¶</a></h2><p>Let's summarize the whole idea:</p> -<blockquote><p>We launch a <em>binder</em> instance from a <strong>Github</strong> repo containing my <strong>Nikola</strong>-powered blog site and write some content into a new blog post (using the <strong>Jupyter Notebook</strong>), then I rebuild the site using <strong>Nikola</strong> (already installed in my <em>binder</em> instance) and finally push the updated site to <strong>Github</strong>'s <em>gh-pages</em> to finally publish the new content (from my <em>binder</em> instance as well).</p> +<h2 id="Method">Method<a class="anchor-link" href="#Method">¶</a></h2><p>Let's summarize the whole idea:</p> +<blockquote> +<p>We launch a <em>binder</em> instance from a <strong>Github</strong> repo containing my <strong>Nikola</strong>-powered blog site and write some content into a new blog post (using the <strong>Jupyter Notebook</strong>), then I rebuild the site using <strong>Nikola</strong> (already installed in my <em>binder</em> instance) and finally push the updated site to <strong>Github</strong>'s <em>gh-pages</em> to finally publish the new content (from my <em>binder</em> instance as well).</p> </blockquote> <p>Sounds good, isn't it?</p> -<h3 id="Create-a-binder-for-my-blog-site">Create a binder for my blog site<a class="anchor-link" href="#Create-a-binder-for-my-blog-site">¶</a></h3><p>Do you know <a href="https://mybinder.org/"><strong>Binder</strong></a>, right? In simple words it <em>Turn a GitHub repo into a collection of interactive notebooks</em>. You can find more info about <strong>Binder</strong> at <a href="https://mybinder.readthedocs.io/en/latest/">https://mybinder.readthedocs.io/en/latest/</a>. +<h3 id="Create-a-binder-for-my-blog-site">Create a binder for my blog site<a class="anchor-link" href="#Create-a-binder-for-my-blog-site">¶</a></h3><p>Do you know <a href="https://mybinder.org/"><strong>Binder</strong></a>, right? In simple words it <em>Turn a GitHub repo into a collection of interactive notebooks</em>. You can find more info about <strong>Binder</strong> at <a href="https://mybinder.readthedocs.io/en/latest/">https://mybinder.readthedocs.io/en/latest/</a>. For the purpose of this post (and the next ones), I just created a new binder filling my blog site <strong>Github</strong> repo url into the URL field at mybinder.org (and the path to a specific notebook file) and I got a new url to access my <em>binder</em> instance at <a href="https://mybinder.org/v2/gh/damianavila/damian_blog/master?filepath=Start.ipynb">https://mybinder.org/v2/gh/damianavila/damian_blog/master?filepath=Start.ipynb</a></p> -<blockquote><p>In fact, I am writing this blog post in a binder instance (I love to do meta stuff ;-)</p> +<blockquote> +<p>In fact, I am writing this blog post in a binder instance (I love to do meta stuff ;-)</p> </blockquote> <p>That url pointed me to a <code>Start.ipynb</code> notebook file where I have some cells to create a new post with some <strong>Nikola</strong> tags. I run those cells and I have a new <code>ipynb</code> file under the <code>posts</code> directory, in this case: <code>binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb</code> where I can write my new content.</p> -<h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href="#Write-the-new-content">¶</a></h3><p>OK, this is one is easy, it is this very same post ;-) as you probably expected.</p> +<h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href="#Write-the-new-content">¶</a></h3><p>OK, this is one is easy, it is this very same post ;-) as you probably expected.</p> <p>BTW, one interesting note, since your binder is using <code>git</code> for internal stuff, you have <code>git</code> installed and ready to do your stuff as well. For instance, if my connection is flaky and given that my <em>binder</em> in <em>transient</em>. I can commit the work done so far. Just save the notebook file and run:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git status +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>On branch master -Your branch is up-to-date with 'origin/master'. +Your branch is up-to-date with 'origin/master'. Changes not staged for commit: - (use "git add <file>..." to update what will be committed) - (use "git checkout -- <file>..." to discard changes in working directory) + (use "git add <file>..." to update what will be committed) + (use "git checkout -- <file>..." to discard changes in working directory) <span class="ansi-red-fg">modified: ../.ipynb_checkpoints/Start-checkpoint.ipynb</span> <span class="ansi-red-fg">modified: ../Start.ipynb</span> @@ -71,7 +60,7 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= <span class="ansi-red-fg">modified: ../plugins/upgrade_metadata/__pycache__/upgrade_metadata.cpython-35.pyc</span> Untracked files: - (use "git add <file>..." to include in what will be committed) + (use "git add <file>..." to include in what will be committed) <span class="ansi-red-fg">../.bash_logout</span> <span class="ansi-red-fg">../.bashrc</span> @@ -81,59 +70,38 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= <span class="ansi-red-fg">.ipynb_checkpoints/binder-+-nikola-+-jupyter-+-github-blogging-resourceless-checkpoint.ipynb</span> <span class="ansi-red-fg">binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb</span> -no changes added to commit (use "git add" and/or "git commit -a") +no changes added to commit (use "git add" and/or "git commit -a") </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add <span class="s2">"binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span><span class="s2">"binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Add (incomplete) new post"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Add (incomplete) new post"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[master 7c7f9890] Add (incomplete) new post 1 file changed, 146 insertions(+) @@ -141,13 +109,8 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -155,42 +118,29 @@ <h3 id="Write-the-new-content">Write the new content<a class="anchor-link" href= <p>OK, now you need to push this content and if you try to <code>git push</code> it, it will fail unless you have permissions to push to your own repo. To achieve that from a <em>binder</em> instance you need to create a <em>personal access token</em> from Github: <a href="https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/">https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/</a>. And now you will be able to push your stuff.</p> <p>Note this <em>personal access token</em> will be useful for further pushes down the road, so keep it close.</p> <p>Also, we need a <em>terminal</em> to be able to provide the <em>username</em> and the <em>token</em>. And the <strong>Jupyter</strong> interface give us that terminal pretty easily, you just go to the /tree (dashboard) and start a terminal from the dropdown menu (I can probably write a little extension to perform this step from the notebook itself... but going to the terminal is pretty easy and quick).</p> -<p><img src="../galleries/binder/terminal.png" alt=""></p> +<p><img alt="" src="../galleries/binder/terminal.png"/></p> <p>Now your repository is updated, so next time you launch a binder from it, it will contain your new post, meaning you can write your stuff iteratevely even in a <em>transient</em> platform, sweet!</p> -<h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="anchor-link" href="#Rebuild-your-site-with-Nikola">¶</a></h3><p>When your post is ready, you need to rebuild the site using <strong>Nikola</strong>, but how <strong>Nikola</strong> end up in my <em>binder</em> instance? +<h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="anchor-link" href="#Rebuild-your-site-with-Nikola">¶</a></h3><p>When your post is ready, you need to rebuild the site using <strong>Nikola</strong>, but how <strong>Nikola</strong> end up in my <em>binder</em> instance? Easy as well, you just need to provide a <code>requirements.txt</code> file with the dependencies you need and those ones will be included in your <em>binder</em> instance: <a href="https://mybinder.readthedocs.io/en/latest/using.html#simple-python-dependencies">https://mybinder.readthedocs.io/en/latest/using.html#simple-python-dependencies</a></p> <p>In my case, the <code>requirement.txt</code> file is pretty easy: <a href="https://github.com/damianavila/damian_blog/blob/master/requirements.txt">https://github.com/damianavila/damian_blog/blob/master/requirements.txt</a>. Because all the other pieces I need are already included by default: <strong>Jupyter</strong> stuff and <code>git</code>.</p> <p>OK, now to rebuild your site you just need to run:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola build +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola<span class="w"> </span>build </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre><span class="ansi-yellow-intense-fg ansi-bold">[2017-12-17T22:28:50Z] WARNING: Nikola: The RSS_LINKS_APPEND_QUERY option is deprecated, use FEED_LINKS_APPEND_QUERY instead.</span> <span class="ansi-yellow-intense-fg ansi-bold">[2017-12-17T22:28:50Z] WARNING: Nikola: The RSS_READ_MORE_LINK option is deprecated, use FEED_READ_MORE_LINK instead.</span> @@ -337,7 +287,13 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . render_taxonomies:output/categories/life.html . render_taxonomies:output/categories/facu.html . render_taxonomies:output/categories/ipython.html -. render_taxonomies:output/categories/slideshow.html +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>. render_taxonomies:output/categories/slideshow.html . render_taxonomies:output/categories/conda.html . render_taxonomies:output/categories/nbviewer.html . render_taxonomies:output/categories/format.html @@ -499,7 +455,13 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . render_taxonomies:output/es/2016/index.html . render_taxonomies:output/es/2013/index.html . render_taxonomies:output/es/categories/index.html -. render_taxonomies:output/categories/jinja.xml +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>. render_taxonomies:output/categories/jinja.xml . render_taxonomies:output/categories/trading.xml . render_taxonomies:output/categories/css.xml . render_taxonomies:output/categories/minimap.xml @@ -639,7 +601,13 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . render_pages:output/posts/different-ways-to-lead-an-open-source-project.html . render_pages:output/es/posts/paraguay.html . render_taxonomies:output/es/categories/css.xml -. render_taxonomies:output/es/categories/minimap.xml +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>. render_taxonomies:output/es/categories/minimap.xml . render_pages:output/posts/a-new-nikolas-theme-for-my-site-zen.html . render_pages:output/es/posts/powered-by-nikola.html . render_pages:output/posts/customizing-your-ipython-slides.html @@ -744,69 +712,47 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an . sitemap:output/sitemapindex.xml </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Now you have your site rebuilt, let's commit the changes so we don't loss the new content.</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add -u +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>-u </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git status +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>On branch master -Your branch is up-to-date with 'origin/master'. +Your branch is up-to-date with 'origin/master'. Changes to be committed: - (use "git reset HEAD <file>..." to unstage) + (use "git reset HEAD <file>..." to unstage) <span class="ansi-green-fg">modified: ../.doit.db.bak</span> <span class="ansi-green-fg">modified: ../.doit.db.dat</span> @@ -1034,7 +980,7 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an <span class="ansi-green-fg">modified: binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb</span> Untracked files: - (use "git add <file>..." to include in what will be committed) + (use "git add <file>..." to include in what will be committed) <span class="ansi-red-fg">../.bash_logout</span> <span class="ansi-red-fg">../.bashrc</span> @@ -1084,86 +1030,57 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [7]:</div> +<div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add ../cache/* +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>../cache/* </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [8]:</div> +<div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add ../output/* +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>../output/* </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [9]:</div> +<div class="prompt input_prompt">In [9]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [10]:</div> +<div class="prompt input_prompt">In [10]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Build the site in my binder instance"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Build the site in my binder instance"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[master 658c5e23] Build the site in my binder instance 263 files changed, 5378 insertions(+), 2102 deletions(-) @@ -1221,147 +1138,91 @@ <h3 id="Rebuild-your-site-with-Nikola">Rebuild your site with Nikola<a class="an create mode 100644 output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>And I can push the content (<code>git push origin master</code>) using the terminal as we did in a previous step.</p> -<h3 id="Visualize-your-site">Visualize your site<a class="anchor-link" href="#Visualize-your-site">¶</a></h3><p>This could be an issue because <strong>Nikola</strong> offers a <code>nikola serve</code> command to preview your site, but using it inside <strong>Binder</strong> is probably not trivial. And you can do a little trick to be able to explore the new content. You just need to deploy the <code>output</code> folder contaning the updated site under the same <code>gh-pages</code> branch from where you usually serve your site.</p> +<h3 id="Visualize-your-site">Visualize your site<a class="anchor-link" href="#Visualize-your-site">¶</a></h3><p>This could be an issue because <strong>Nikola</strong> offers a <code>nikola serve</code> command to preview your site, but using it inside <strong>Binder</strong> is probably not trivial. And you can do a little trick to be able to explore the new content. You just need to deploy the <code>output</code> folder contaning the updated site under the same <code>gh-pages</code> branch from where you usually serve your site.</p> <p>And you can do that quite easily with:</p> <p><strong>Note</strong>: <code>git stash</code> is only needed here because I am executing git commands from this very same future blog post</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [11]:</div> +<div class="prompt input_prompt">In [11]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git stash +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>stash </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Saved working directory and index state WIP on master: 658c5e23 Build the site in my binder instance HEAD is now at 658c5e23 Build the site in my binder instance </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [12]:</div> +<div class="prompt input_prompt">In [12]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git checkout gh-pages +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>gh-pages </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Switched to branch 'gh-pages' -Your branch is up-to-date with 'origin/gh-pages'. +<pre>Switched to branch 'gh-pages' +Your branch is up-to-date with 'origin/gh-pages'. </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [14]:</div> +<div class="prompt input_prompt">In [14]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git checkout master -- ../output +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>master<span class="w"> </span>--<span class="w"> </span>../output </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [15]:</div> +<div class="prompt input_prompt">In [15]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Add output dir to gh-pages to pre-visualize the changes"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Add output dir to gh-pages to pre-visualize the changes"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[gh-pages 4fb3a46f] Add output dir to gh-pages to pre-visualize the changes 490 files changed, 3060 insertions(+), 1162 deletions(-) @@ -1389,264 +1250,164 @@ <h3 id="Visualize-your-site">Visualize your site<a class="anchor-link" href="#Vi create mode 100644 output/posts/binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>And now, you just push the content into the <code>gh-pages</code> branch with <code>git push origin gh-pages</code> (use the terminal as I indicated before) and you can visit your <em>draft</em> site appeding <code>output</code> to the base url, in my <a href="../output/">case</a>.</p> <p>If you are not happy with it, if it does not looks like right, just iterate with more changes! Otherwise you can go to the deploy step!</p> -<h2 id="Deploy-your-site">Deploy your site<a class="anchor-link" href="#Deploy-your-site">¶</a></h2><p>OK, given the previous steps, I guess you will figure out how to perform the next steps:</p> +<h2 id="Deploy-your-site">Deploy your site<a class="anchor-link" href="#Deploy-your-site">¶</a></h2><p>OK, given the previous steps, I guess you will figure out how to perform the next steps:</p> <p><strong>NOTE</strong>: <code>rm</code> is only needed here because I am executing git commands from this very same future blog post</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [17]:</div> +<div class="prompt input_prompt">In [17]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>rm binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>rm<span class="w"> </span>binder-+-nikola-+-jupyter-+-github-blogging-resourceless.ipynb<span class="w"> </span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [18]:</div> +<div class="prompt input_prompt">In [18]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git checkout master +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>master </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Switched to branch 'master' -Your branch is up-to-date with 'origin/master'. +<pre>Switched to branch 'master' +Your branch is up-to-date with 'origin/master'. </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [19]:</div> +<div class="prompt input_prompt">In [19]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git add -u +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>-u </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [20]:</div> +<div class="prompt input_prompt">In [20]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git commit -m <span class="s2">"Add new stuff to the blog post (mostly deploy section)"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">"Add new stuff to the blog post (mostly deploy section)"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[master 7927ad63] Add new stuff to the blog post (mostly deploy section) 1 file changed, 291 insertions(+), 25 deletions(-) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>In the terminal: <code>git push origin master</code> to persist the latest content... again. And use a subtree approach to split the <code>output</code> directory and put it as a new <code>gh-pages</code> branch.</p> <p><strong>Note</strong>: First delete the existing <code>gh-pages</code> branch to avoid conflicts and <code>cd ..</code> because you need to subtree from the top directory.</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [21]:</div> +<div class="prompt input_prompt">In [21]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git branch -d gh-pages +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>branch<span class="w"> </span>-d<span class="w"> </span>gh-pages </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>warning: deleting branch 'gh-pages' that has been merged to - 'refs/remotes/origin/gh-pages', but not yet merged to HEAD. +<pre>warning: deleting branch 'gh-pages' that has been merged to + 'refs/remotes/origin/gh-pages', but not yet merged to HEAD. Deleted branch gh-pages (was 4fb3a46f). </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [22]:</div> +<div class="prompt input_prompt">In [22]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">cd</span> <span class="o">..</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">cd</span> <span class="o">..</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>/home/jovyan </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [23]:</div> +<div class="prompt input_prompt">In [23]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>git subtree split --prefix output -b gh-pages +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>git<span class="w"> </span>subtree<span class="w"> </span>split<span class="w"> </span>--prefix<span class="w"> </span>output<span class="w"> </span>-b<span class="w"> </span>gh-pages </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Created branch 'gh-pages' +<pre>Created branch 'gh-pages' 7092c69ccde3f7cd2a5d31c2a86b74739d665ac0 </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -1654,13 +1415,10 @@ <h2 id="Deploy-your-site">Deploy your site<a class="anchor-link" href="#Deploy-y <p>Finally, in the terminal: <code>git push -f origin gh-pages:gh-pages</code> to deploy your site and remove the local <code>gh-pages</code> with <code>git branch -D gh-pages</code>.</p> <p>And you are done!!!</p> <p><strong>Note</strong>: As you probably realized, you can run all the commands I described from the terminal and use the notebook just to write the blog posts. That would be, probably, the most common pattern. But this post in nicer and more explanatory if I run most of the commands here ;-)</p> -<h3 id="Conclusion">Conclusion<a class="anchor-link" href="#Conclusion">¶</a></h3><p>You have your new post <em>live</em>, in a <em>resourceless</em> sort of workflow, thanks to the <strong>Jupyter</strong> ecosystem, <strong>Nikola</strong> and <strong>Github</strong>.</p> +<h3 id="Conclusion">Conclusion<a class="anchor-link" href="#Conclusion">¶</a></h3><p>You have your new post <em>live</em>, in a <em>resourceless</em> sort of workflow, thanks to the <strong>Jupyter</strong> ecosystem, <strong>Nikola</strong> and <strong>Github</strong>.</p> <p>OK, long enough post. Sorry about that, but I need to give you the complete workflow if you want/need to use it.</p> <p>Happy coding!</p> <p>And blogging!</p> - </div> </div> </div> - - diff --git a/cache/posts/blogging-with-nikola-and-ipython.es.html b/cache/posts/blogging-with-nikola-and-ipython.es.html index 66e8dd29..6d3a81b4 100644 --- a/cache/posts/blogging-with-nikola-and-ipython.es.html +++ b/cache/posts/blogging-with-nikola-and-ipython.es.html @@ -1,9 +1,9 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/ipython-plugin-for-nikola-updated.html">link</a> to get updated information.</p> +<blockquote> +<p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/ipython-plugin-for-nikola-updated.html">link</a> to get updated information.</p> </blockquote> - </div> </div> </div> @@ -11,7 +11,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: Obviously, this post was written in the IPython notebook and was rendered by Nikola (helped by nbconvert).</p> - </div> </div> </div> @@ -19,7 +18,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>INGREDIENTS</strong>:</p> - </div> </div> </div> @@ -32,10 +30,9 @@ <p><strong>NOTE: The theme was tested with Nikola version <a href="https://github.com/ralsina/nikola/tags">5.1</a></strong></p> <ul> <li><a href="https://github.com/ipython/ipython">IPython</a></li> -<li><a href="https://github.com/damianavila/site-ipython-theme-for-Nikola.git">site-ipython</a> theme for Nikola </li> -<li><a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">compile_ipynb</a> for Nikola </li> +<li><a href="https://github.com/damianavila/site-ipython-theme-for-Nikola.git">site-ipython</a> theme for Nikola</li> +<li><a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">compile_ipynb</a> for Nikola</li> </ul> - </div> </div> </div> @@ -50,7 +47,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>STEPS</strong>:</p> - </div> </div> </div> @@ -74,27 +70,23 @@ <li>Create a plugins folder inside your_site</li> <li>Copy the compile_ipynb plugin (compile_ipynb.plugin file and the compile_ipynb folder, which are is located inside the extra-plugins folder in the Nikola master) in your_site/plugins/ folder.</li> <li>Then, download the custom nbconvert and nbformat from <a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">here</a> and put them inside your_site/plugins/compile_ipynb/ folder.</li> -<li>Finally, you have to put: </li> +<li>Finally, you have to put:</li> </ul> - <pre><code>post_pages = ( ("posts/*.ipynb", "posts", "post.tmpl", True), ("stories/*.ipynb", "stories", "story.tmpl", False), -)</code></pre> -<p>and</p> - -<pre><code>THEME = 'site-ipython' - +) </code></pre> +<p>and</p> +<pre><code>THEME = 'site-ipython'</code></pre> <p>in your conf.py file of your_site (you can modified the other pieces inside conf.py according to your needs).</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup is done only once time a life... hehe<a class="anchor-link" href="#NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">¶</a></h3> +<h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup is done only once time a life... hehe<a class="anchor-link" href="#NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">¶</a></h3> </div> </div> </div> @@ -102,7 +94,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>USE</strong>:</p> - </div> </div> </div> @@ -110,10 +101,9 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> -<li>First create a new post: </li> +<li>First create a new post:</li> </ul> <p><code>nikola new_post -f ipynb</code></p> - </div> </div> </div> @@ -121,7 +111,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: <strong>IGNORE</strong> the -2 option in nikola new_page (it is no sense with the current implementation).</p> - </div> </div> </div> @@ -129,7 +118,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You will be asked for a title (you can also add the title and tags in the previous call).</p> - </div> </div> </div> @@ -137,7 +125,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Then, two files will be created by Nikola in the /posts folder of your_site: a meta file containing title, slug, time, tags (you can modified them with any text processor) and a <strong>naive</strong> ipynb file with the corresponding title.</p> - </div> </div> </div> @@ -145,7 +132,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You can init the <code>ipython notebook</code> inside this folder and modified the <em>"post"</em> notebook as you wish (do not forget to save the changes inside your notebook).</p> - </div> </div> </div> @@ -153,10 +139,9 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> -<li>Finally, just: </li> +<li>Finally, just:</li> </ul> <p><code>nikola build</code></p> - </div> </div> </div> @@ -165,7 +150,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup <div class="text_cell_render border-box-sizing rendered_html"> <p>and deploy the output folder containing your_site... to see it locally:</p> <p><code>nikola serve</code></p> - </div> </div> </div> @@ -173,7 +157,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>That's it all, my friend!</strong></p> - </div> </div> </div> @@ -183,7 +166,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup <p>If you have any doubt, just tell me: <a href="https://twitter.com/damian_avila">@damianavila</a></p> <p>Cheers,</p> <p>Damián</p> - </div> </div> </div> @@ -191,124 +173,72 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>PS: And now some cells to show you this is areal notebook...</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">pwd</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">pwd</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[1]:</div> - - - - +<div class="prompt output_prompt">Out[1]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>u'/home/damian/Desarrollos/To_PR/SITIOS/Damian_blog_nikola/posts'</pre> +<pre>u'/home/damian/Desarrollos/To_PR/SITIOS/Damian_blog_nikola/posts'</pre> </div> - -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pylab</span> inline +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pylab</span> inline </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. -For more information, type 'help(pylab)'. +For more information, type 'help(pylab)'. </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">pi</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">pi</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span> <span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">))</span> -<span class="n">title</span><span class="p">(</span><span class="s1">'A simple chirp'</span><span class="p">);</span> +<span class="n">title</span><span class="p">(</span><span class="s1">'A simple chirp'</span><span class="p">);</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - - - -<div class="output_png output_subarea "> -<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz +<div class="prompt"></div> +<div class="output_png output_subarea"> +<img alt="No description has been provided for this image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAIABJREFUeJztfXl0VuWd/+fNwpawJZA9gJgwIaKgYG1p0VhBi0vqLo5F qpYyHWk7bU/n9HTOTPXM1MJ0etRzaC16phU6Vmn7q0JRcW2U1iKtIlqlslQ0C0sgC9nX+/vj8cl7 c3OXZ733vsnzOScHktxned+89/N87uf7fb5PwrIsCwYGBgYGYwJpUU/AwMDAwCA8GNI3MDAwGEMw @@ -663,47 +593,28 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup tzfqKYWGVatWWYWFhVZmZqZVUlJi/exnP7NOnz5tXXbZZVwpmwnLGuOmqYGBgcEYwthOjTAwMDAY YzCkb2BgYDCGYEjfwMDAYAzBkL6BgYHBGIIhfQMDA4MxBEP6BgYGBmMI/x+/EYpeAMQykQAAAABJ RU5ErkJggg== -" -> +"/> </div> - -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">4</span> <span class="n">z</span> <span class="o">=</span> <span class="n">y</span><span class="o">/</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="n">x</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_text output_error"> <pre> <span class="ansi-red-intense-fg ansi-bold">---------------------------------------------------------------------------</span> @@ -716,122 +627,66 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup <span class="ansi-red-intense-fg ansi-bold">ZeroDivisionError</span>: integer division or modulo by zero</pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Courtesy of MathJax, you can include mathematical expressions both inline: +<p>Courtesy of MathJax, you can include mathematical expressions both inline: $e^{i\pi} + 1 = 0$ and displayed:</p> -$$e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i$$ +<p>$$e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i$$</p> </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span> -<span class="n">Image</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="s1">'http://python.org/images/python-logo.gif'</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span> +<span class="n">Image</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="s1">'http://python.org/images/python-logo.gif'</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[5]:</div> - - - -<div class="output_html rendered_html output_subarea output_execute_result"> -<img src="http://python.org/images/python-logo.gif" /> -</div> - -</div> - +<div class="prompt output_prompt">Out[5]:</div> +<div class="output_html rendered_html output_subarea output_execute_result"><img alt="No description has been provided for this image" src="http://python.org/images/python-logo.gif"/></div> </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">YouTubeVideo</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">YouTubeVideo</span> <span class="c1"># a talk about IPython at Sage Days at U. Washington, Seattle.</span> <span class="c1"># Video credit: William Stein.</span> -<span class="n">YouTubeVideo</span><span class="p">(</span><span class="s1">'1j_HxD4iLn8'</span><span class="p">)</span> +<span class="n">YouTubeVideo</span><span class="p">(</span><span class="s1">'1j_HxD4iLn8'</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[6]:</div> - - - +<div class="prompt output_prompt">Out[6]:</div> <div class="output_html rendered_html output_subarea output_execute_result"> - - <iframe - width="400" - height="300" - src="http://www.youtube.com/embed/1j_HxD4iLn8" - frameborder="0" - allowfullscreen - ></iframe> - +<iframe allowfullscreen="" frameborder="0" height="300" src="http://www.youtube.com/embed/1j_HxD4iLn8" width="400"></iframe> </div> - -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, enough... see you soon!</p> - </div> </div> </div> - - diff --git a/cache/posts/blogging-with-nikola-and-ipython.html b/cache/posts/blogging-with-nikola-and-ipython.html index 66e8dd29..6d3a81b4 100644 --- a/cache/posts/blogging-with-nikola-and-ipython.html +++ b/cache/posts/blogging-with-nikola-and-ipython.html @@ -1,9 +1,9 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/ipython-plugin-for-nikola-updated.html">link</a> to get updated information.</p> +<blockquote> +<p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/ipython-plugin-for-nikola-updated.html">link</a> to get updated information.</p> </blockquote> - </div> </div> </div> @@ -11,7 +11,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: Obviously, this post was written in the IPython notebook and was rendered by Nikola (helped by nbconvert).</p> - </div> </div> </div> @@ -19,7 +18,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>INGREDIENTS</strong>:</p> - </div> </div> </div> @@ -32,10 +30,9 @@ <p><strong>NOTE: The theme was tested with Nikola version <a href="https://github.com/ralsina/nikola/tags">5.1</a></strong></p> <ul> <li><a href="https://github.com/ipython/ipython">IPython</a></li> -<li><a href="https://github.com/damianavila/site-ipython-theme-for-Nikola.git">site-ipython</a> theme for Nikola </li> -<li><a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">compile_ipynb</a> for Nikola </li> +<li><a href="https://github.com/damianavila/site-ipython-theme-for-Nikola.git">site-ipython</a> theme for Nikola</li> +<li><a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">compile_ipynb</a> for Nikola</li> </ul> - </div> </div> </div> @@ -50,7 +47,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>STEPS</strong>:</p> - </div> </div> </div> @@ -74,27 +70,23 @@ <li>Create a plugins folder inside your_site</li> <li>Copy the compile_ipynb plugin (compile_ipynb.plugin file and the compile_ipynb folder, which are is located inside the extra-plugins folder in the Nikola master) in your_site/plugins/ folder.</li> <li>Then, download the custom nbconvert and nbformat from <a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">here</a> and put them inside your_site/plugins/compile_ipynb/ folder.</li> -<li>Finally, you have to put: </li> +<li>Finally, you have to put:</li> </ul> - <pre><code>post_pages = ( ("posts/*.ipynb", "posts", "post.tmpl", True), ("stories/*.ipynb", "stories", "story.tmpl", False), -)</code></pre> -<p>and</p> - -<pre><code>THEME = 'site-ipython' - +) </code></pre> +<p>and</p> +<pre><code>THEME = 'site-ipython'</code></pre> <p>in your conf.py file of your_site (you can modified the other pieces inside conf.py according to your needs).</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup is done only once time a life... hehe<a class="anchor-link" href="#NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">¶</a></h3> +<h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup is done only once time a life... hehe<a class="anchor-link" href="#NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">¶</a></h3> </div> </div> </div> @@ -102,7 +94,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>USE</strong>:</p> - </div> </div> </div> @@ -110,10 +101,9 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> -<li>First create a new post: </li> +<li>First create a new post:</li> </ul> <p><code>nikola new_post -f ipynb</code></p> - </div> </div> </div> @@ -121,7 +111,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: <strong>IGNORE</strong> the -2 option in nikola new_page (it is no sense with the current implementation).</p> - </div> </div> </div> @@ -129,7 +118,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You will be asked for a title (you can also add the title and tags in the previous call).</p> - </div> </div> </div> @@ -137,7 +125,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Then, two files will be created by Nikola in the /posts folder of your_site: a meta file containing title, slug, time, tags (you can modified them with any text processor) and a <strong>naive</strong> ipynb file with the corresponding title.</p> - </div> </div> </div> @@ -145,7 +132,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You can init the <code>ipython notebook</code> inside this folder and modified the <em>"post"</em> notebook as you wish (do not forget to save the changes inside your notebook).</p> - </div> </div> </div> @@ -153,10 +139,9 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> -<li>Finally, just: </li> +<li>Finally, just:</li> </ul> <p><code>nikola build</code></p> - </div> </div> </div> @@ -165,7 +150,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup <div class="text_cell_render border-box-sizing rendered_html"> <p>and deploy the output folder containing your_site... to see it locally:</p> <p><code>nikola serve</code></p> - </div> </div> </div> @@ -173,7 +157,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>That's it all, my friend!</strong></p> - </div> </div> </div> @@ -183,7 +166,6 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup <p>If you have any doubt, just tell me: <a href="https://twitter.com/damian_avila">@damianavila</a></p> <p>Cheers,</p> <p>Damián</p> - </div> </div> </div> @@ -191,124 +173,72 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>PS: And now some cells to show you this is areal notebook...</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">pwd</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">pwd</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[1]:</div> - - - - +<div class="prompt output_prompt">Out[1]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>u'/home/damian/Desarrollos/To_PR/SITIOS/Damian_blog_nikola/posts'</pre> +<pre>u'/home/damian/Desarrollos/To_PR/SITIOS/Damian_blog_nikola/posts'</pre> </div> - -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pylab</span> inline +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pylab</span> inline </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. -For more information, type 'help(pylab)'. +For more information, type 'help(pylab)'. </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">pi</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">pi</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span> <span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">))</span> -<span class="n">title</span><span class="p">(</span><span class="s1">'A simple chirp'</span><span class="p">);</span> +<span class="n">title</span><span class="p">(</span><span class="s1">'A simple chirp'</span><span class="p">);</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - - - -<div class="output_png output_subarea "> -<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz +<div class="prompt"></div> +<div class="output_png output_subarea"> +<img alt="No description has been provided for this image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAIABJREFUeJztfXl0VuWd/+fNwpawJZA9gJgwIaKgYG1p0VhBi0vqLo5F qpYyHWk7bU/n9HTOTPXM1MJ0etRzaC16phU6Vmn7q0JRcW2U1iKtIlqlslQ0C0sgC9nX+/vj8cl7 c3OXZ733vsnzOScHktxned+89/N87uf7fb5PwrIsCwYGBgYGYwJpUU/AwMDAwCA8GNI3MDAwGEMw @@ -663,47 +593,28 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup tzfqKYWGVatWWYWFhVZmZqZVUlJi/exnP7NOnz5tXXbZZVwpmwnLGuOmqYGBgcEYwthOjTAwMDAY YzCkb2BgYDCGYEjfwMDAYAzBkL6BgYHBGIIhfQMDA4MxBEP6BgYGBmMI/x+/EYpeAMQykQAAAABJ RU5ErkJggg== -" -> +"/> </div> - -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">4</span> <span class="n">z</span> <span class="o">=</span> <span class="n">y</span><span class="o">/</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="n">x</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_text output_error"> <pre> <span class="ansi-red-intense-fg ansi-bold">---------------------------------------------------------------------------</span> @@ -716,122 +627,66 @@ <h3 id="NOTE:-This-setup-is-done-only-once-time-a-life...-hehe">NOTE: This setup <span class="ansi-red-intense-fg ansi-bold">ZeroDivisionError</span>: integer division or modulo by zero</pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Courtesy of MathJax, you can include mathematical expressions both inline: +<p>Courtesy of MathJax, you can include mathematical expressions both inline: $e^{i\pi} + 1 = 0$ and displayed:</p> -$$e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i$$ +<p>$$e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i$$</p> </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [5]:</div> +<div class="prompt input_prompt">In [5]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span> -<span class="n">Image</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="s1">'http://python.org/images/python-logo.gif'</span><span class="p">)</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span> +<span class="n">Image</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="s1">'http://python.org/images/python-logo.gif'</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[5]:</div> - - - -<div class="output_html rendered_html output_subarea output_execute_result"> -<img src="http://python.org/images/python-logo.gif" /> -</div> - -</div> - +<div class="prompt output_prompt">Out[5]:</div> +<div class="output_html rendered_html output_subarea output_execute_result"><img alt="No description has been provided for this image" src="http://python.org/images/python-logo.gif"/></div> </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">YouTubeVideo</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">YouTubeVideo</span> <span class="c1"># a talk about IPython at Sage Days at U. Washington, Seattle.</span> <span class="c1"># Video credit: William Stein.</span> -<span class="n">YouTubeVideo</span><span class="p">(</span><span class="s1">'1j_HxD4iLn8'</span><span class="p">)</span> +<span class="n">YouTubeVideo</span><span class="p">(</span><span class="s1">'1j_HxD4iLn8'</span><span class="p">)</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[6]:</div> - - - +<div class="prompt output_prompt">Out[6]:</div> <div class="output_html rendered_html output_subarea output_execute_result"> - - <iframe - width="400" - height="300" - src="http://www.youtube.com/embed/1j_HxD4iLn8" - frameborder="0" - allowfullscreen - ></iframe> - +<iframe allowfullscreen="" frameborder="0" height="300" src="http://www.youtube.com/embed/1j_HxD4iLn8" width="400"></iframe> </div> - -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, enough... see you soon!</p> - </div> </div> </div> - - diff --git a/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html b/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html index c33c4e2c..a16ef996 100644 --- a/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html +++ b/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.es.html @@ -1,101 +1,71 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=88290bcd"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some people are asking me how to change the IPython slides's defaults. You can see the description of the request <a href="http://stackoverflow.com/questions/18820253/modifying-reveal-js-defaults-in-ipython-notebook-slide-generation">here</a>. Essentially, he wants to change the default transition between the slides.</p> <p>To solve this question, we introduce the notion of IPython config files, which let us easily change <em>things</em> inside <code>IPython.nbconvert</code> (the library where the IPython slides lives) to achieve our desires, at least in the slideshow generation issue ;-)</p> -<p>First of all, you need to know some details: -<!-- TEASER_END --></p> +<p>First of all, you need to know some details:</p> +<!-- TEASER_END --> <ul> <li>The IPython slides are generated using a series of <strong>Jinja</strong> templates, so we are going to modify one of the templates to render the slideshow accordingly with our own defaults.</li> <li>The <code>IPython.nbconvert</code> library was developed taking into account the need from some users to use customized <em>things</em> (where <em>thing</em> will be a <strong>template</strong> in this case, but we could modify other parts of <code>IPython.nbconvert</code>, probably I will cover this ideas in other posts).</li> <li>The IPython machinery is very configurable through a <strong>Traitlets</strong> system! And because of this feature, <code>IPython.nbconvert</code> is able to take a custom config file and use it to render our IPython slides (or any other <code>IPython.nbconvert</code> <em>formats</em>).</li> </ul> <p>OK, can you show me an example config file? Of course, here we go:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=d158f7c1"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/slides_config.py +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/slides_config.py </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>c = get_config() -c.Exporter.template_file = 'default_transition' +c.Exporter.template_file = 'default_transition' </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=68b3d209"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>From the IPython docs:</p> -<blockquote><p>A configuration file is simply a pure Python file that sets the attributes of a global, pre-created configuration object. This configuration object is a Config instance. While in a configuration file, to get a reference to this object, simply call the get_config() function. We inject this function into the global name-space that the configuration file is executed in,</p> +<blockquote> +<p>A configuration file is simply a pure Python file that sets the attributes of a global, pre-created configuration object. This configuration object is a Config instance. While in a configuration file, to get a reference to this object, simply call the get_config() function. We inject this function into the global name-space that the configuration file is executed in,</p> </blockquote> <p>So, we have to call the <code>get_config()</code> function and then use a custom template called <code>'default_transition'</code> and assign it to <code>c.Exporter.template_file</code> attribute.</p> <p>Oh, we need to write the <code>'default_transition'</code> template yet, so here we go... again:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=9e1afa2a"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/default_transition.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/default_transition.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'slides_reveal.tpl' -%} +<pre>{%- extends 'slides_reveal.tpl' -%} {% block body %} @@ -142,16 +112,16 @@ //mouseWheel: false, // Transition style - transition: 'concave', // default/cube/page/concave/zoom/linear/fade/none + transition: 'concave', // default/cube/page/concave/zoom/linear/fade/none // Transition speed - //transitionSpeed: 'default', // default/fast/slow + //transitionSpeed: 'default', // default/fast/slow // Transition style for full page backgrounds - //backgroundTransition: 'default', // default/linear/none + //backgroundTransition: 'default', // default/linear/none // Theme - theme: 'sky' // available themes are in /css/theme + theme: 'sky' // available themes are in /css/theme }); @@ -160,21 +130,17 @@ {% endblock body %} </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=aea8f1ae"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>In the first line, <code>{%- extends 'slides_reveal.tpl' -%}</code> tells to the <strong>Jinja</strong> system that we are going to extend <em>slides_reveal</em> template (the default one, which <code>IPython.nbconvert</code> uses to build our common slides by default). Then, inside the <code>{% block body %}</code>, we call <code>super()</code>:</p> <p>From the <em>Jinja</em> docs:</p> -<blockquote><p>Super Blocks +<blockquote> +<p>Super Blocks It’s possible to render the contents of the parent block by calling super.</p> </blockquote> <p>We did it in this way because we want to render all the parent content and, after that, add our own content, essentially a config script for Reveal.js, calling <code>Reveal.initialize</code>.</p> @@ -187,9 +153,6 @@ <p>Any help, just let me know!</p> <p><strong>Addemdum</strong>: the use of <code>default_transition.tpl</code> generates an invalid but useful final html document. The cause behind this issue is the script containing the <code>Reveal.initialize</code> function, which is located after the closing <code>body</code> tag. All modern browser render this sort of invalid html witout any difficult. But a commenter arose this issue and I think is important to make it available in the post itself.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html b/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html index c33c4e2c..fa79da77 100644 --- a/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html +++ b/cache/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html @@ -1,101 +1,71 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=cb3e1a6c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some people are asking me how to change the IPython slides's defaults. You can see the description of the request <a href="http://stackoverflow.com/questions/18820253/modifying-reveal-js-defaults-in-ipython-notebook-slide-generation">here</a>. Essentially, he wants to change the default transition between the slides.</p> <p>To solve this question, we introduce the notion of IPython config files, which let us easily change <em>things</em> inside <code>IPython.nbconvert</code> (the library where the IPython slides lives) to achieve our desires, at least in the slideshow generation issue ;-)</p> -<p>First of all, you need to know some details: -<!-- TEASER_END --></p> +<p>First of all, you need to know some details:</p> +<!-- TEASER_END --> <ul> <li>The IPython slides are generated using a series of <strong>Jinja</strong> templates, so we are going to modify one of the templates to render the slideshow accordingly with our own defaults.</li> <li>The <code>IPython.nbconvert</code> library was developed taking into account the need from some users to use customized <em>things</em> (where <em>thing</em> will be a <strong>template</strong> in this case, but we could modify other parts of <code>IPython.nbconvert</code>, probably I will cover this ideas in other posts).</li> <li>The IPython machinery is very configurable through a <strong>Traitlets</strong> system! And because of this feature, <code>IPython.nbconvert</code> is able to take a custom config file and use it to render our IPython slides (or any other <code>IPython.nbconvert</code> <em>formats</em>).</li> </ul> <p>OK, can you show me an example config file? Of course, here we go:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=fdc9cbfe"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/slides_config.py +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/slides_config.py </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>c = get_config() -c.Exporter.template_file = 'default_transition' +c.Exporter.template_file = 'default_transition' </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=17eab0e7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>From the IPython docs:</p> -<blockquote><p>A configuration file is simply a pure Python file that sets the attributes of a global, pre-created configuration object. This configuration object is a Config instance. While in a configuration file, to get a reference to this object, simply call the get_config() function. We inject this function into the global name-space that the configuration file is executed in,</p> +<blockquote> +<p>A configuration file is simply a pure Python file that sets the attributes of a global, pre-created configuration object. This configuration object is a Config instance. While in a configuration file, to get a reference to this object, simply call the get_config() function. We inject this function into the global name-space that the configuration file is executed in,</p> </blockquote> <p>So, we have to call the <code>get_config()</code> function and then use a custom template called <code>'default_transition'</code> and assign it to <code>c.Exporter.template_file</code> attribute.</p> <p>Oh, we need to write the <code>'default_transition'</code> template yet, so here we go... again:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=437a978b"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/default_transition.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/default_transition.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'slides_reveal.tpl' -%} +<pre>{%- extends 'slides_reveal.tpl' -%} {% block body %} @@ -142,16 +112,16 @@ //mouseWheel: false, // Transition style - transition: 'concave', // default/cube/page/concave/zoom/linear/fade/none + transition: 'concave', // default/cube/page/concave/zoom/linear/fade/none // Transition speed - //transitionSpeed: 'default', // default/fast/slow + //transitionSpeed: 'default', // default/fast/slow // Transition style for full page backgrounds - //backgroundTransition: 'default', // default/linear/none + //backgroundTransition: 'default', // default/linear/none // Theme - theme: 'sky' // available themes are in /css/theme + theme: 'sky' // available themes are in /css/theme }); @@ -160,21 +130,17 @@ {% endblock body %} </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c1c33f3e"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>In the first line, <code>{%- extends 'slides_reveal.tpl' -%}</code> tells to the <strong>Jinja</strong> system that we are going to extend <em>slides_reveal</em> template (the default one, which <code>IPython.nbconvert</code> uses to build our common slides by default). Then, inside the <code>{% block body %}</code>, we call <code>super()</code>:</p> <p>From the <em>Jinja</em> docs:</p> -<blockquote><p>Super Blocks +<blockquote> +<p>Super Blocks It’s possible to render the contents of the parent block by calling super.</p> </blockquote> <p>We did it in this way because we want to render all the parent content and, after that, add our own content, essentially a config script for Reveal.js, calling <code>Reveal.initialize</code>.</p> @@ -187,9 +153,6 @@ <p>Any help, just let me know!</p> <p><strong>Addemdum</strong>: the use of <code>default_transition.tpl</code> generates an invalid but useful final html document. The cause behind this issue is the script containing the <code>Reveal.initialize</code> function, which is located after the closing <code>body</code> tag. All modern browser render this sort of invalid html witout any difficult. But a commenter arose this issue and I think is important to make it available in the post itself.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/coming-back.es.html b/cache/posts/coming-back.es.html index 9ac0d21e..f6b86b7b 100644 --- a/cache/posts/coming-back.es.html +++ b/cache/posts/coming-back.es.html @@ -3,7 +3,6 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.</p> <!-- TEASER_END --> - <p>I am planning to write about those past things... about the experience I acquired during this time. But I am also interested into discuss new and exciting things, not only in the technical side, but also in other aspects of my interests and feelings.</p> <p>I am hoping to write at least one post per week. Time constraints are really against this frequency but I will try it!</p> <p>Let's do a quick update:</p> @@ -18,9 +17,6 @@ </ul> <p>And a lot of other things I should mention but I don't want to make this too long.</p> <p>So... welcome back... again!</p> - </div> </div> </div> - - diff --git a/cache/posts/coming-back.html b/cache/posts/coming-back.html index 9ac0d21e..f6b86b7b 100644 --- a/cache/posts/coming-back.html +++ b/cache/posts/coming-back.html @@ -3,7 +3,6 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.</p> <!-- TEASER_END --> - <p>I am planning to write about those past things... about the experience I acquired during this time. But I am also interested into discuss new and exciting things, not only in the technical side, but also in other aspects of my interests and feelings.</p> <p>I am hoping to write at least one post per week. Time constraints are really against this frequency but I will try it!</p> <p>Let's do a quick update:</p> @@ -18,9 +17,6 @@ </ul> <p>And a lot of other things I should mention but I don't want to make this too long.</p> <p>So... welcome back... again!</p> - </div> </div> </div> - - diff --git a/cache/posts/customizing-your-ipython-slides.es.html b/cache/posts/customizing-your-ipython-slides.es.html index 702498a5..bf479c10 100644 --- a/cache/posts/customizing-your-ipython-slides.es.html +++ b/cache/posts/customizing-your-ipython-slides.es.html @@ -1,11 +1,12 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9ad2ab44"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I received this message on G+:</p> -<blockquote><p>In a future release, would be handy to add custom classes to slides so that you can use CSS rules to choose certain layouts for image slides, text, multiple charts, etc.</p> +<blockquote> +<p>In a future release, would be handy to add custom classes to slides so that you can use CSS rules to choose certain layouts for image slides, text, multiple charts, etc.</p> </blockquote> -<p>But... we already support this kind of customization! And it is clearly my fault that you don't know about this feature... so: -<!-- TEASER_END --></p> +<p>But... we already support this kind of customization! And it is clearly my fault that you don't know about this feature... so:</p> +<!-- TEASER_END --> <ol> <li>I am very sorry for the lack of proper documentation (I am working on that ;-)).</li> <li>In the meantime, you can look at this blog where I am documenting some important things for this slideshow platform.</li> @@ -13,51 +14,37 @@ </ol> <p>Using this message as a trigger (and following with the serie of blog posts explaining some of the IPython slides features), I will explain you how to customize your IPython slides in just two steps:</p> <p><strong>NOTE</strong>: I will use, as a starting point, the following slides of a talk I gave to journalist and designers at <a href="http://www.mediaparty.info">Hacks/HackersBA</a>, a story to write in another blog post...</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b2ec4348"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/hackperiodismo" width=800 height=600></iframe> +<iframe height="600" src="http://damianavila.github.io/hackperiodismo" width="800"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0243a992"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Step 1</strong>. Create a <code>custom.css</code> file containing your css rules.</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=284551cc"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Desarrollos/hackperiodismo/custom.css +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Desarrollos/hackperiodismo/custom.css </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>/*Some css fixes to use night theme with IPython slides*/ body { @@ -81,63 +68,40 @@ </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=8b9e0838"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Step 2</strong>. Put this <code>custom.css</code> file in the same <code>dir</code> where your slides lives.</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=1154c424"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>ls /media/datos/Desarrollos/hackperiodismo +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>ls<span class="w"> </span>/media/datos/Desarrollos/hackperiodismo </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>custom.css figs index2.html index.html </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=a302569c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: Here, I previously renamed my <code>notebook.slides.html</code> to <code>index.html</code> but it is not necessary for the customization.</p> @@ -146,26 +110,22 @@ <p>Pretty easy! ;-)</p> <p>And now, the example slides rendered with a new darker style...</p> <p><strong>NOTE</strong>: In this case I applied the NIGHT reveal theme (adding <code>?theme=night</code> to the url) and used the <code>custom.css</code> file to adjust some details ;-) (darker reveal themes need this kind of customization to be rendered OK).</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=39bec5b3"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/hackperiodismo/index2.html?theme=night" width=800 height=600></iframe> +<iframe height="600" src="http://damianavila.github.io/hackperiodismo/index2.html?theme=night" width="800"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c1cfbcbe"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You can change more fundamental things and make crazy stuff... just go ahead and let me know.</p> <p>Enjoy!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/customizing-your-ipython-slides.html b/cache/posts/customizing-your-ipython-slides.html index 702498a5..93df0253 100644 --- a/cache/posts/customizing-your-ipython-slides.html +++ b/cache/posts/customizing-your-ipython-slides.html @@ -1,11 +1,12 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1432f26b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I received this message on G+:</p> -<blockquote><p>In a future release, would be handy to add custom classes to slides so that you can use CSS rules to choose certain layouts for image slides, text, multiple charts, etc.</p> +<blockquote> +<p>In a future release, would be handy to add custom classes to slides so that you can use CSS rules to choose certain layouts for image slides, text, multiple charts, etc.</p> </blockquote> -<p>But... we already support this kind of customization! And it is clearly my fault that you don't know about this feature... so: -<!-- TEASER_END --></p> +<p>But... we already support this kind of customization! And it is clearly my fault that you don't know about this feature... so:</p> +<!-- TEASER_END --> <ol> <li>I am very sorry for the lack of proper documentation (I am working on that ;-)).</li> <li>In the meantime, you can look at this blog where I am documenting some important things for this slideshow platform.</li> @@ -13,51 +14,37 @@ </ol> <p>Using this message as a trigger (and following with the serie of blog posts explaining some of the IPython slides features), I will explain you how to customize your IPython slides in just two steps:</p> <p><strong>NOTE</strong>: I will use, as a starting point, the following slides of a talk I gave to journalist and designers at <a href="http://www.mediaparty.info">Hacks/HackersBA</a>, a story to write in another blog post...</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c689d17b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/hackperiodismo" width=800 height=600></iframe> +<iframe height="600" src="http://damianavila.github.io/hackperiodismo" width="800"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=3057c6e3"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Step 1</strong>. Create a <code>custom.css</code> file containing your css rules.</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=58f6095a"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Desarrollos/hackperiodismo/custom.css +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Desarrollos/hackperiodismo/custom.css </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>/*Some css fixes to use night theme with IPython slides*/ body { @@ -81,63 +68,40 @@ </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=823197be"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Step 2</strong>. Put this <code>custom.css</code> file in the same <code>dir</code> where your slides lives.</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=8152b64b"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>ls /media/datos/Desarrollos/hackperiodismo +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>ls<span class="w"> </span>/media/datos/Desarrollos/hackperiodismo </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>custom.css figs index2.html index.html </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c6d3202d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: Here, I previously renamed my <code>notebook.slides.html</code> to <code>index.html</code> but it is not necessary for the customization.</p> @@ -146,26 +110,22 @@ <p>Pretty easy! ;-)</p> <p>And now, the example slides rendered with a new darker style...</p> <p><strong>NOTE</strong>: In this case I applied the NIGHT reveal theme (adding <code>?theme=night</code> to the url) and used the <code>custom.css</code> file to adjust some details ;-) (darker reveal themes need this kind of customization to be rendered OK).</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=358a86cf"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/hackperiodismo/index2.html?theme=night" width=800 height=600></iframe> +<iframe height="600" src="http://damianavila.github.io/hackperiodismo/index2.html?theme=night" width="800"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0d06d695"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You can change more fundamental things and make crazy stuff... just go ahead and let me know.</p> <p>Enjoy!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html b/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html index fee0c2f2..fefd4363 100644 --- a/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html +++ b/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.es.html @@ -1,11 +1,12 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -<!-- TEASER_END --></p> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<!-- TEASER_END --> <p>Yes, I am always very original picking the names of the extensions ;-). A pic to illustrate the extension button at the toolbar:</p> -<p><img src="../galleries/deploy/1.png" alt=""></p> -<blockquote><p><strong>Note</strong>: Nikola supports the ipynb file as an input... and using the IPython.nbconvert machinery it is able to render the static HTML representation of your ipynbs inside the complete infrastructure of a powerful static site engine.</p> +<p><img alt="" src="../galleries/deploy/1.png"/></p> +<blockquote> +<p><strong>Note</strong>: Nikola supports the ipynb file as an input... and using the IPython.nbconvert machinery it is able to render the static HTML representation of your ipynbs inside the complete infrastructure of a powerful static site engine.</p> </blockquote> <p>First, to know some things about my blogging workflow using <strong>IPython</strong>, <strong>Nikola</strong>, <strong>git</strong> and <strong>gh-pages</strong>, I suggest you to re-read these previous posts:</p> <ul> @@ -13,44 +14,31 @@ <li><a href="../posts/one-line-deployment-of-your-site-to-gh-pages.html">One line deployment of your site to gh-pages</a></li> </ul> <p>OK, coming back to the extension, the idea behind this one is very simple: I will call the <code>nikola deploy</code> command from inside the <strong>IPython</strong> notebook using our beloved <code>IPython.notebook.kernel.execute</code> method, and also taking the advantage of <em>passing</em> commands to the underlying system just pre-pending with the <code>!</code> mark. The relevant lines are below:</p> -<div class="highlight"><pre><span></span><span class="mi">36</span> <span class="k">if</span> <span class="p">(</span><span class="nx">clean</span><span class="o">==</span><span class="s2">"True"</span><span class="p">)</span> <span class="p">{</span> -<span class="mi">37</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola clean'</span><span class="p">);</span> -<span class="mi">38</span> <span class="p">}</span> -<span class="mi">39</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola build'</span><span class="p">);</span> -<span class="mi">40</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola deploy'</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="mf">36</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">clean</span><span class="o">==</span><span class="s2">"True"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> +<span class="mf">37</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola clean'</span><span class="p">);</span> +<span class="mf">38</span><span class="w"> </span><span class="p">}</span> +<span class="mf">39</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola build'</span><span class="p">);</span> +<span class="mf">40</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola deploy'</span><span class="p">);</span> </pre></div> <p>After writing the content of my post following the workflow explained in previous posts, I just click on the <em>nikola_deploy</em> extension button and the site is <em>cleaned</em> (if you choose this option to True in the config file, please set it to False if you want a quick building), <em>built</em> and <em>deployed</em> <strong>automagically</strong> ;-)</p> <p>And that's all... the complete code below:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">nikola_deploy</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">nikola_deploy</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> 1 /* 2 * ---------------------------------------------------------------------------- @@ -63,36 +51,36 @@ 9 */ 10 11 function messager() { - 12 var message = $('<div/>').append( - 13 $("<p/></p>").addClass('dialog').html( - 14 "Your ipynb-based site/blog post is being deployed now..." + 12 var message = $('<div/>').append( + 13 $("<p/></p>").addClass('dialog').html( + 14 "Your ipynb-based site/blog post is being deployed now..." 15 ) 16 ).append( - 17 $("<p/></p>").addClass('dialog').html( - 18 "We clean (configurable), build and deploy your Nikola " + - 19 "site/blog for you!" + 17 $("<p/></p>").addClass('dialog').html( + 18 "We clean (configurable), build and deploy your Nikola " + + 19 "site/blog for you!" 20 ) 21 ); 22 23 IPython.dialog.modal({ - 24 title : "Nikola deployment", + 24 title : "Nikola deployment", 25 body : message, 26 buttons : { - 27 OK : {class: "btn-danger"} + 27 OK : {class: "btn-danger"} 28 } 29 }); 30 31 } 32 33 function nikolaDeploy(path, clean) { - 34 IPython.notebook.kernel.execute('%bookmark root'); - 35 IPython.notebook.kernel.execute('%cd ' + path); - 36 if (clean=="True") { - 37 IPython.notebook.kernel.execute('!nikola clean'); + 34 IPython.notebook.kernel.execute('%bookmark root'); + 35 IPython.notebook.kernel.execute('%cd ' + path); + 36 if (clean=="True") { + 37 IPython.notebook.kernel.execute('!nikola clean'); 38 } - 39 IPython.notebook.kernel.execute('!nikola build'); - 40 IPython.notebook.kernel.execute('!nikola deploy'); - 41 IPython.notebook.kernel.execute('%cd -b root'); + 39 IPython.notebook.kernel.execute('!nikola build'); + 40 IPython.notebook.kernel.execute('!nikola deploy'); + 41 IPython.notebook.kernel.execute('%cd -b root'); 42 messager(); 43 } 44 @@ -101,10 +89,10 @@ 47 parameters: function setup(param1, param2) { 48 IPython.toolbar.add_buttons_group([ 49 { - 50 'label' : 'Deploy Nikola site/blog', - 51 'icon' : 'icon-upload-alt', - 52 'callback': function(){nikolaDeploy(param1, param2)}, - 53 'id' : 'start_nikola_deploy' + 50 'label' : 'Deploy Nikola site/blog', + 51 'icon' : 'icon-upload-alt', + 52 'callback': function(){nikolaDeploy(param1, param2)}, + 53 'id' : 'start_nikola_deploy' 54 }, 55 ]) 56 } @@ -112,14 +100,9 @@ 58 }); </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -128,9 +111,6 @@ <p>OK, as you can see... it is very simple to blog with <strong>IPython</strong> and <strong>Nikola</strong>, so I invite you to try it <em>now</em> and let me know any ideas, comments or critics.</p> <p>Enjoy!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html b/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html index fee0c2f2..fefd4363 100644 --- a/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html +++ b/cache/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html @@ -1,11 +1,12 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -<!-- TEASER_END --></p> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<!-- TEASER_END --> <p>Yes, I am always very original picking the names of the extensions ;-). A pic to illustrate the extension button at the toolbar:</p> -<p><img src="../galleries/deploy/1.png" alt=""></p> -<blockquote><p><strong>Note</strong>: Nikola supports the ipynb file as an input... and using the IPython.nbconvert machinery it is able to render the static HTML representation of your ipynbs inside the complete infrastructure of a powerful static site engine.</p> +<p><img alt="" src="../galleries/deploy/1.png"/></p> +<blockquote> +<p><strong>Note</strong>: Nikola supports the ipynb file as an input... and using the IPython.nbconvert machinery it is able to render the static HTML representation of your ipynbs inside the complete infrastructure of a powerful static site engine.</p> </blockquote> <p>First, to know some things about my blogging workflow using <strong>IPython</strong>, <strong>Nikola</strong>, <strong>git</strong> and <strong>gh-pages</strong>, I suggest you to re-read these previous posts:</p> <ul> @@ -13,44 +14,31 @@ <li><a href="../posts/one-line-deployment-of-your-site-to-gh-pages.html">One line deployment of your site to gh-pages</a></li> </ul> <p>OK, coming back to the extension, the idea behind this one is very simple: I will call the <code>nikola deploy</code> command from inside the <strong>IPython</strong> notebook using our beloved <code>IPython.notebook.kernel.execute</code> method, and also taking the advantage of <em>passing</em> commands to the underlying system just pre-pending with the <code>!</code> mark. The relevant lines are below:</p> -<div class="highlight"><pre><span></span><span class="mi">36</span> <span class="k">if</span> <span class="p">(</span><span class="nx">clean</span><span class="o">==</span><span class="s2">"True"</span><span class="p">)</span> <span class="p">{</span> -<span class="mi">37</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola clean'</span><span class="p">);</span> -<span class="mi">38</span> <span class="p">}</span> -<span class="mi">39</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola build'</span><span class="p">);</span> -<span class="mi">40</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola deploy'</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="mf">36</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">clean</span><span class="o">==</span><span class="s2">"True"</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> +<span class="mf">37</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola clean'</span><span class="p">);</span> +<span class="mf">38</span><span class="w"> </span><span class="p">}</span> +<span class="mf">39</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola build'</span><span class="p">);</span> +<span class="mf">40</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'!nikola deploy'</span><span class="p">);</span> </pre></div> <p>After writing the content of my post following the workflow explained in previous posts, I just click on the <em>nikola_deploy</em> extension button and the site is <em>cleaned</em> (if you choose this option to True in the config file, please set it to False if you want a quick building), <em>built</em> and <em>deployed</em> <strong>automagically</strong> ;-)</p> <p>And that's all... the complete code below:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">nikola_deploy</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">cat</span> <span class="o">-</span><span class="n">n</span> <span class="o">/</span><span class="n">media</span><span class="o">/</span><span class="n">datos</span><span class="o">/</span><span class="n">Desarrollos</span><span class="o">/</span><span class="n">mIPyex</span><span class="o">/</span><span class="n">custom</span><span class="o">/</span><span class="n">nikola_deploy</span><span class="o">/</span><span class="n">main</span><span class="o">.</span><span class="n">js</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> 1 /* 2 * ---------------------------------------------------------------------------- @@ -63,36 +51,36 @@ 9 */ 10 11 function messager() { - 12 var message = $('<div/>').append( - 13 $("<p/></p>").addClass('dialog').html( - 14 "Your ipynb-based site/blog post is being deployed now..." + 12 var message = $('<div/>').append( + 13 $("<p/></p>").addClass('dialog').html( + 14 "Your ipynb-based site/blog post is being deployed now..." 15 ) 16 ).append( - 17 $("<p/></p>").addClass('dialog').html( - 18 "We clean (configurable), build and deploy your Nikola " + - 19 "site/blog for you!" + 17 $("<p/></p>").addClass('dialog').html( + 18 "We clean (configurable), build and deploy your Nikola " + + 19 "site/blog for you!" 20 ) 21 ); 22 23 IPython.dialog.modal({ - 24 title : "Nikola deployment", + 24 title : "Nikola deployment", 25 body : message, 26 buttons : { - 27 OK : {class: "btn-danger"} + 27 OK : {class: "btn-danger"} 28 } 29 }); 30 31 } 32 33 function nikolaDeploy(path, clean) { - 34 IPython.notebook.kernel.execute('%bookmark root'); - 35 IPython.notebook.kernel.execute('%cd ' + path); - 36 if (clean=="True") { - 37 IPython.notebook.kernel.execute('!nikola clean'); + 34 IPython.notebook.kernel.execute('%bookmark root'); + 35 IPython.notebook.kernel.execute('%cd ' + path); + 36 if (clean=="True") { + 37 IPython.notebook.kernel.execute('!nikola clean'); 38 } - 39 IPython.notebook.kernel.execute('!nikola build'); - 40 IPython.notebook.kernel.execute('!nikola deploy'); - 41 IPython.notebook.kernel.execute('%cd -b root'); + 39 IPython.notebook.kernel.execute('!nikola build'); + 40 IPython.notebook.kernel.execute('!nikola deploy'); + 41 IPython.notebook.kernel.execute('%cd -b root'); 42 messager(); 43 } 44 @@ -101,10 +89,10 @@ 47 parameters: function setup(param1, param2) { 48 IPython.toolbar.add_buttons_group([ 49 { - 50 'label' : 'Deploy Nikola site/blog', - 51 'icon' : 'icon-upload-alt', - 52 'callback': function(){nikolaDeploy(param1, param2)}, - 53 'id' : 'start_nikola_deploy' + 50 'label' : 'Deploy Nikola site/blog', + 51 'icon' : 'icon-upload-alt', + 52 'callback': function(){nikolaDeploy(param1, param2)}, + 53 'id' : 'start_nikola_deploy' 54 }, 55 ]) 56 } @@ -112,14 +100,9 @@ 58 }); </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -128,9 +111,6 @@ <p>OK, as you can see... it is very simple to blog with <strong>IPython</strong> and <strong>Nikola</strong>, so I invite you to try it <em>now</em> and let me know any ideas, comments or critics.</p> <p>Enjoy!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/different-ways-to-lead-an-open-source-project.es.html b/cache/posts/different-ways-to-lead-an-open-source-project.es.html index f96b2f2f..b1c13c2a 100644 --- a/cache/posts/different-ways-to-lead-an-open-source-project.es.html +++ b/cache/posts/different-ways-to-lead-an-open-source-project.es.html @@ -1,13 +1,15 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e8cb5f8b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Just a few lines, to trigger the discussion... to describe my point, I will pick two projects I have contributed (and I want to contribute even more): <code>IPython</code> and <code>Nikola</code>.</p> -<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said: -<!-- TEASER_END --></p> -<blockquote><p>Make features fight hard to be accepted and implemented. Communicate to the community and developers that the default answer to new feature requests is no (it's not personal!). Don't even consider implementation until the much of the community is crying "we absolutely must have this."</p> +<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said:</p> +<!-- TEASER_END --> +<blockquote> +<p>Make features fight hard to be accepted and implemented. Communicate to the community and developers that the default answer to new feature requests is no (it's not personal!). Don't even consider implementation until the much of the community is crying "we absolutely must have this."</p> </blockquote> <p>Some days ago, <strong>Roberto Alsina</strong>, a core developer from the <code>Nikola</code> project made a blog <a href="http://ralsina.me/weblog/posts/being-an-inclusive-project-and-how-github-saved-my-day.html">post</a> where he said:</p> -<blockquote><p>If you propose something you are getting heard and I am giving the proposal a fair shake. I may reject it, but not out of hand, but instead after some thought. And if I am unsure, it’s accepted. I would rather get something I am not fond of than drive out a contributor because I may change my mind, but a contributor that’s gone is not coming back.</p> +<blockquote> +<p>If you propose something you are getting heard and I am giving the proposal a fair shake. I may reject it, but not out of hand, but instead after some thought. And if I am unsure, it’s accepted. I would rather get something I am not fond of than drive out a contributor because I may change my mind, but a contributor that’s gone is not coming back.</p> </blockquote> <p>Both projects are very successful, however they seems to go in opposite directions in the way they deal with features and contributors.</p> <p>Probably they are living in different "times"... I mean, I see a "pattern" here:</p> @@ -16,9 +18,6 @@ <p>I will probably write more about that, but I would like to know you ideas ;-)</p> <p>Like I said at the beginning, just a few lines, to trigger the discussion...</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/different-ways-to-lead-an-open-source-project.html b/cache/posts/different-ways-to-lead-an-open-source-project.html index f96b2f2f..f8485911 100644 --- a/cache/posts/different-ways-to-lead-an-open-source-project.html +++ b/cache/posts/different-ways-to-lead-an-open-source-project.html @@ -1,13 +1,15 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=416ff472"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Just a few lines, to trigger the discussion... to describe my point, I will pick two projects I have contributed (and I want to contribute even more): <code>IPython</code> and <code>Nikola</code>.</p> -<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said: -<!-- TEASER_END --></p> -<blockquote><p>Make features fight hard to be accepted and implemented. Communicate to the community and developers that the default answer to new feature requests is no (it's not personal!). Don't even consider implementation until the much of the community is crying "we absolutely must have this."</p> +<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said:</p> +<!-- TEASER_END --> +<blockquote> +<p>Make features fight hard to be accepted and implemented. Communicate to the community and developers that the default answer to new feature requests is no (it's not personal!). Don't even consider implementation until the much of the community is crying "we absolutely must have this."</p> </blockquote> <p>Some days ago, <strong>Roberto Alsina</strong>, a core developer from the <code>Nikola</code> project made a blog <a href="http://ralsina.me/weblog/posts/being-an-inclusive-project-and-how-github-saved-my-day.html">post</a> where he said:</p> -<blockquote><p>If you propose something you are getting heard and I am giving the proposal a fair shake. I may reject it, but not out of hand, but instead after some thought. And if I am unsure, it’s accepted. I would rather get something I am not fond of than drive out a contributor because I may change my mind, but a contributor that’s gone is not coming back.</p> +<blockquote> +<p>If you propose something you are getting heard and I am giving the proposal a fair shake. I may reject it, but not out of hand, but instead after some thought. And if I am unsure, it’s accepted. I would rather get something I am not fond of than drive out a contributor because I may change my mind, but a contributor that’s gone is not coming back.</p> </blockquote> <p>Both projects are very successful, however they seems to go in opposite directions in the way they deal with features and contributors.</p> <p>Probably they are living in different "times"... I mean, I see a "pattern" here:</p> @@ -16,9 +18,6 @@ <p>I will probably write more about that, but I would like to know you ideas ;-)</p> <p>Like I said at the beginning, just a few lines, to trigger the discussion...</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/dont-write-scripts-just-write-ipyscripts.es.html b/cache/posts/dont-write-scripts-just-write-ipyscripts.es.html index 97aa15b6..f29ba386 100644 --- a/cache/posts/dont-write-scripts-just-write-ipyscripts.es.html +++ b/cache/posts/dont-write-scripts-just-write-ipyscripts.es.html @@ -1,220 +1,331 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9e87612b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I usually have some repetitive tasks in my daily work-flow. You probably have some of those too. To save some minutes from your day, you probably write little scripts to do these jobs.</p> <p>I used to do that... but now I am only writing little IPython notebooks to do these simple jobs, I call them <em>ipyscripts</em> (yes, I won a prize for originality, he he!).</p> -<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way... -<!-- TEASER_END --></p> +<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way...</p> +<!-- TEASER_END --> <p>In fact, you are reading a example <em>ipyscript</em>, because this is an IPython notebook (and a blog post too), and the following example deal with a repetitive task I do frequently: the <em>git update</em> of some projects (I contribute to some of them, I follow some others).</p> <p>First, I load a simple list with the projects I want to update:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=0f8de6b6"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">list_of_projects</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"ipython"</span><span class="p">,</span> - <span class="s2">"kilink"</span><span class="p">,</span> - <span class="s2">"live_reveal"</span><span class="p">,</span> - <span class="s2">"nbviewer"</span><span class="p">,</span> - <span class="s2">"nikola"</span><span class="p">,</span> - <span class="s2">"reveal.js"</span><span class="p">]</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">list_of_projects</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"ipython"</span><span class="p">,</span> + <span class="s2">"kilink"</span><span class="p">,</span> + <span class="s2">"live_reveal"</span><span class="p">,</span> + <span class="s2">"nbviewer"</span><span class="p">,</span> + <span class="s2">"nikola"</span><span class="p">,</span> + <span class="s2">"reveal.js"</span><span class="p">]</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=52092df4"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Second, I save my current directory using the IPython bookmark system:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=89cd210c"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">bookmark</span> root +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">bookmark</span> root </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c83e6bd9"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Third, I define a function to deal with the <em>git update</em> itself:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=72f74250"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">folder</span><span class="p">):</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">folder</span><span class="p">):</span> <span class="o">%</span><span class="k">cd</span> {folder} - <span class="o">!</span>git status - <span class="o">!</span>git checkout master - <span class="o">!</span>git remote -v - <span class="o">!</span>git pull origin + <span class="o">!</span>git<span class="w"> </span>status + <span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>master + <span class="o">!</span>git<span class="w"> </span>remote<span class="w"> </span>-v + <span class="o">!</span>git<span class="w"> </span>pull<span class="w"> </span>origin <span class="o">%</span><span class="k">cd</span> -b root </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b01b419c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You can see here how I am using a lot of tricks from the IPython machinery to make a lot of things in a couple of lines.</p> <p>The main idea is <code>cd</code> into a specific project folder. I use the braces to pass python variables and expressions to the shell. In this case, I will pass an element of the <code>list_of_projects</code>, I mean the name of the folder containing the desired project. Then, I do the <em>git</em> stuff, just prepending the command with the <code>!</code> sign to pass them to the underlying shell. Finally, I <code>cd</code> into the main directory to get the things prepared to the next loop.</p> <p>Fourth, I do a simple <code>for</code> loop to iterate through the elements inside the <code>list_of_projects</code> and to do the <em>git update</em> in each of these projects.</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=45503790"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xrange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">list_of_projects</span><span class="p">)):</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xrange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">list_of_projects</span><span class="p">)):</span> <span class="n">update</span><span class="p">(</span><span class="n">list_of_projects</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> - <span class="nb">print</span> <span class="s2">"---------------------------------"</span> + <span class="nb">print</span> <span class="s2">"---------------------------------"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>/media/datos/Desarrollos/ipython # En la rama master nothing to commit, working directory clean -Ya está en «master» -damianavila git@github.com:damianavila/ipython.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>damianavila git@github.com:damianavila/ipython.git (fetch) damianavila git@github.com:damianavila/ipython.git (push) origin git@github.com:ipython/ipython.git (fetch) origin git@github.com:ipython/ipython.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/kilink # En la rama master nothing to commit, working directory clean -Ya está en «master» -damianavila git@github.com:damianavila/kilink.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>damianavila git@github.com:damianavila/kilink.git (fetch) damianavila git@github.com:damianavila/kilink.git (push) origin git@github.com:facundobatista/kilink.git (fetch) origin git@github.com:facundobatista/kilink.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/live_reveal # En la rama master nothing to commit, working directory clean -Ya está en «master» -origin git@github.com:ipython-contrib/live_reveal.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>origin git@github.com:ipython-contrib/live_reveal.git (fetch) origin git@github.com:ipython-contrib/live_reveal.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/nbviewer # En la rama master nothing to commit, working directory clean -Ya está en «master» -heroku git@heroku.com:zarara.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>heroku git@heroku.com:zarara.git (fetch) heroku git@heroku.com:zarara.git (push) origin git@github.com:ipython/nbviewer.git (fetch) origin git@github.com:ipython/nbviewer.git (push) zarara git@heroku.com:zarara.git (fetch) zarara git@heroku.com:zarara.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/nikola # En la rama master nothing to commit, working directory clean -Ya está en «master» -damianavila git@github.com:damianavila/nikola.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>damianavila git@github.com:damianavila/nikola.git (fetch) damianavila git@github.com:damianavila/nikola.git (push) origin git@github.com:getnikola/nikola.git (fetch) origin git@github.com:getnikola/nikola.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/reveal.js # En la rama master nothing to commit, working directory clean -Ya está en «master» -origin git@github.com:hakimel/reveal.js.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>origin git@github.com:hakimel/reveal.js.git (fetch) origin git@github.com:hakimel/reveal.js.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b392ea2b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<hr> +<hr/> <p><strong>ADDENDUM</strong>:</p> <p>You can actually do:</p> <div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">list_of_projects</span><span class="p">:</span> <span class="n">update</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> -<span class="nb">print</span> <span class="s2">"---------------------------------"</span> +<span class="nb">print</span> <span class="s2">"---------------------------------"</span> </pre></div> <p>But, this is an example, and I wanted to emphasize the fact that you can pass complex arguments inside the braces... Thanks Lex for your comment, I forgot to add this explanation!</p> -<hr> +<hr/> <p>And that's all! The next time you have to do this task, just run this notebook (properly customized for your projects) and you will get the job done!</p> <p><strong>NOTE</strong>: And now, the <em>icing on the cake</em>... if you are in IPython master, you do not even need to open the notebook to run it... just open an IPython console or notebook and write the next sentence:</p> <p><code>%run your_ipyscript.ipynb</code></p> @@ -223,9 +334,6 @@ <p>OK, I hope you enjoy this post. And I also hope you begin to write <em>ipyscripts</em>.</p> <p>See you!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/dont-write-scripts-just-write-ipyscripts.html b/cache/posts/dont-write-scripts-just-write-ipyscripts.html index 97aa15b6..7ab8c87d 100644 --- a/cache/posts/dont-write-scripts-just-write-ipyscripts.html +++ b/cache/posts/dont-write-scripts-just-write-ipyscripts.html @@ -1,220 +1,331 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=db17c248"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I usually have some repetitive tasks in my daily work-flow. You probably have some of those too. To save some minutes from your day, you probably write little scripts to do these jobs.</p> <p>I used to do that... but now I am only writing little IPython notebooks to do these simple jobs, I call them <em>ipyscripts</em> (yes, I won a prize for originality, he he!).</p> -<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way... -<!-- TEASER_END --></p> +<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way...</p> +<!-- TEASER_END --> <p>In fact, you are reading a example <em>ipyscript</em>, because this is an IPython notebook (and a blog post too), and the following example deal with a repetitive task I do frequently: the <em>git update</em> of some projects (I contribute to some of them, I follow some others).</p> <p>First, I load a simple list with the projects I want to update:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=f987d2f7"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">list_of_projects</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"ipython"</span><span class="p">,</span> - <span class="s2">"kilink"</span><span class="p">,</span> - <span class="s2">"live_reveal"</span><span class="p">,</span> - <span class="s2">"nbviewer"</span><span class="p">,</span> - <span class="s2">"nikola"</span><span class="p">,</span> - <span class="s2">"reveal.js"</span><span class="p">]</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">list_of_projects</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"ipython"</span><span class="p">,</span> + <span class="s2">"kilink"</span><span class="p">,</span> + <span class="s2">"live_reveal"</span><span class="p">,</span> + <span class="s2">"nbviewer"</span><span class="p">,</span> + <span class="s2">"nikola"</span><span class="p">,</span> + <span class="s2">"reveal.js"</span><span class="p">]</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=3fdbe774"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Second, I save my current directory using the IPython bookmark system:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=767288df"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">bookmark</span> root +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">bookmark</span> root </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0f0747ce"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Third, I define a function to deal with the <em>git update</em> itself:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=b5aa7fe5"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">folder</span><span class="p">):</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">folder</span><span class="p">):</span> <span class="o">%</span><span class="k">cd</span> {folder} - <span class="o">!</span>git status - <span class="o">!</span>git checkout master - <span class="o">!</span>git remote -v - <span class="o">!</span>git pull origin + <span class="o">!</span>git<span class="w"> </span>status + <span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>master + <span class="o">!</span>git<span class="w"> </span>remote<span class="w"> </span>-v + <span class="o">!</span>git<span class="w"> </span>pull<span class="w"> </span>origin <span class="o">%</span><span class="k">cd</span> -b root </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=4da79b1d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You can see here how I am using a lot of tricks from the IPython machinery to make a lot of things in a couple of lines.</p> <p>The main idea is <code>cd</code> into a specific project folder. I use the braces to pass python variables and expressions to the shell. In this case, I will pass an element of the <code>list_of_projects</code>, I mean the name of the folder containing the desired project. Then, I do the <em>git</em> stuff, just prepending the command with the <code>!</code> sign to pass them to the underlying shell. Finally, I <code>cd</code> into the main directory to get the things prepared to the next loop.</p> <p>Fourth, I do a simple <code>for</code> loop to iterate through the elements inside the <code>list_of_projects</code> and to do the <em>git update</em> in each of these projects.</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=90ff1ad0"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xrange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">list_of_projects</span><span class="p">)):</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xrange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">list_of_projects</span><span class="p">)):</span> <span class="n">update</span><span class="p">(</span><span class="n">list_of_projects</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> - <span class="nb">print</span> <span class="s2">"---------------------------------"</span> + <span class="nb">print</span> <span class="s2">"---------------------------------"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>/media/datos/Desarrollos/ipython # En la rama master nothing to commit, working directory clean -Ya está en «master» -damianavila git@github.com:damianavila/ipython.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>damianavila git@github.com:damianavila/ipython.git (fetch) damianavila git@github.com:damianavila/ipython.git (push) origin git@github.com:ipython/ipython.git (fetch) origin git@github.com:ipython/ipython.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/kilink # En la rama master nothing to commit, working directory clean -Ya está en «master» -damianavila git@github.com:damianavila/kilink.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>damianavila git@github.com:damianavila/kilink.git (fetch) damianavila git@github.com:damianavila/kilink.git (push) origin git@github.com:facundobatista/kilink.git (fetch) origin git@github.com:facundobatista/kilink.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/live_reveal # En la rama master nothing to commit, working directory clean -Ya está en «master» -origin git@github.com:ipython-contrib/live_reveal.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>origin git@github.com:ipython-contrib/live_reveal.git (fetch) origin git@github.com:ipython-contrib/live_reveal.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/nbviewer # En la rama master nothing to commit, working directory clean -Ya está en «master» -heroku git@heroku.com:zarara.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>heroku git@heroku.com:zarara.git (fetch) heroku git@heroku.com:zarara.git (push) origin git@github.com:ipython/nbviewer.git (fetch) origin git@github.com:ipython/nbviewer.git (push) zarara git@heroku.com:zarara.git (fetch) zarara git@heroku.com:zarara.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/nikola # En la rama master nothing to commit, working directory clean -Ya está en «master» -damianavila git@github.com:damianavila/nikola.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>damianavila git@github.com:damianavila/nikola.git (fetch) damianavila git@github.com:damianavila/nikola.git (push) origin git@github.com:getnikola/nikola.git (fetch) origin git@github.com:getnikola/nikola.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- /media/datos/Desarrollos/reveal.js # En la rama master nothing to commit, working directory clean -Ya está en «master» -origin git@github.com:hakimel/reveal.js.git (fetch) +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Ya está en «master» +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>origin git@github.com:hakimel/reveal.js.git (fetch) origin git@github.com:hakimel/reveal.js.git (push) -Already up-to-date. -(bookmark:root) -> /media/datos/Desarrollos +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>(bookmark:root) -> /media/datos/Desarrollos /media/datos/Desarrollos --------------------------------- </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=a6ef8ab3"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<hr> +<hr/> <p><strong>ADDENDUM</strong>:</p> <p>You can actually do:</p> <div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">list_of_projects</span><span class="p">:</span> <span class="n">update</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> -<span class="nb">print</span> <span class="s2">"---------------------------------"</span> +<span class="nb">print</span> <span class="s2">"---------------------------------"</span> </pre></div> <p>But, this is an example, and I wanted to emphasize the fact that you can pass complex arguments inside the braces... Thanks Lex for your comment, I forgot to add this explanation!</p> -<hr> +<hr/> <p>And that's all! The next time you have to do this task, just run this notebook (properly customized for your projects) and you will get the job done!</p> <p><strong>NOTE</strong>: And now, the <em>icing on the cake</em>... if you are in IPython master, you do not even need to open the notebook to run it... just open an IPython console or notebook and write the next sentence:</p> <p><code>%run your_ipyscript.ipynb</code></p> @@ -223,9 +334,6 @@ <p>OK, I hope you enjoy this post. And I also hope you begin to write <em>ipyscripts</em>.</p> <p>See you!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/facundo.es.html b/cache/posts/facundo.es.html index ba5b23f7..88bd7bb8 100644 --- a/cache/posts/facundo.es.html +++ b/cache/posts/facundo.es.html @@ -1,3 +1,9 @@ +<!-- title: Facundo --> +<!-- slug: facundo --> +<!-- date: 2012/11/08 23:05:24 --> +<!-- tags: Facundo, family, life --> +<!-- link: --> +<!-- description: --> <p>Facu llegó... y ¡antes de lo esperado!</p> <p>Nació ayer, 7 de noviembre, a las 8:00 am en ciudad de La Plata. 36 semanas de gestación (un mes antes de lo previsto), 2400 gr. y la altura, para la próxima...</p> @@ -23,47 +29,91 @@ <p>Sólo quería contarles...</p> <p>Damián.</p> <p>PD: algunas fotitos para que se deleiten... las primeras con el celu... las últimas con la cámara...</p> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu1.png"><img alt="../galleries/Facu_RN/Facu1.png" src="../galleries/Facu_RN/Facu1.png" /></a> -<p class="caption">¡Qué largo y flaco que soy!</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu2.png"><img alt="../galleries/Facu_RN/Facu2.png" src="../galleries/Facu_RN/Facu2.png" /></a> -<p class="caption">Y ahora de costadete...</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu3.png"><img alt="../galleries/Facu_RN/Facu3.png" src="../galleries/Facu_RN/Facu3.png" /></a> -<p class="caption">Parece que tenía hambre...</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu4.png"><img alt="../galleries/Facu_RN/Facu4.png" src="../galleries/Facu_RN/Facu4.png" /></a> -<p class="caption">Durmiendo en brazos del papi.</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu5.png"><img alt="../galleries/Facu_RN/Facu5.png" src="../galleries/Facu_RN/Facu5.png" /></a> -<p class="caption">¡Uy! Me olvidé de avisar...</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05901.JPG"><img alt="../galleries/Facu_RN/DSC05901.JPG" src="../galleries/Facu_RN/DSC05901.JPG" /></a> -<p class="caption">¡Otra vez sopa... digo, teta!</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05903.JPG"><img alt="../galleries/Facu_RN/DSC05903.JPG" src="../galleries/Facu_RN/DSC05903.JPG" /></a> -<p class="caption">¡Qué lindo es dormir! Episodio I</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05917.JPG"><img alt="../galleries/Facu_RN/DSC05917.JPG" src="../galleries/Facu_RN/DSC05917.JPG" /></a> -<p class="caption">¡Qué lindo es dormir! Episodio II</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05918.JPG"><img alt="../galleries/Facu_RN/DSC05918.JPG" src="../galleries/Facu_RN/DSC05918.JPG" /></a> -<p class="caption">¡Qué lindo es dormir! Episodio III</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05925.JPG"><img alt="../galleries/Facu_RN/DSC05925.JPG" src="../galleries/Facu_RN/DSC05925.JPG" /></a> -<p class="caption">¡Cómo podría ser de otra manera... jeje!</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05928.JPG"><img alt="../galleries/Facu_RN/DSC05928.JPG" src="../galleries/Facu_RN/DSC05928.JPG" /></a> -<p class="caption">Cuna improvisada... se nota que llegó un mes antes, ¿no? jeje!</p> -</div> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu1.png"> +<img alt="../galleries/Facu_RN/Facu1.png" src="../galleries/Facu_RN/Facu1.png" /> +</a> +<figcaption> +<p>¡Qué largo y flaco que soy!</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu2.png"> +<img alt="../galleries/Facu_RN/Facu2.png" src="../galleries/Facu_RN/Facu2.png" /> +</a> +<figcaption> +<p>Y ahora de costadete...</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu3.png"> +<img alt="../galleries/Facu_RN/Facu3.png" src="../galleries/Facu_RN/Facu3.png" /> +</a> +<figcaption> +<p>Parece que tenía hambre...</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu4.png"> +<img alt="../galleries/Facu_RN/Facu4.png" src="../galleries/Facu_RN/Facu4.png" /> +</a> +<figcaption> +<p>Durmiendo en brazos del papi.</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu5.png"> +<img alt="../galleries/Facu_RN/Facu5.png" src="../galleries/Facu_RN/Facu5.png" /> +</a> +<figcaption> +<p>¡Uy! Me olvidé de avisar...</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05901.JPG"> +<img alt="../galleries/Facu_RN/DSC05901.JPG" src="../galleries/Facu_RN/DSC05901.JPG" /> +</a> +<figcaption> +<p>¡Otra vez sopa... digo, teta!</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05903.JPG"> +<img alt="../galleries/Facu_RN/DSC05903.JPG" src="../galleries/Facu_RN/DSC05903.JPG" /> +</a> +<figcaption> +<p>¡Qué lindo es dormir! Episodio I</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05917.JPG"> +<img alt="../galleries/Facu_RN/DSC05917.JPG" src="../galleries/Facu_RN/DSC05917.JPG" /> +</a> +<figcaption> +<p>¡Qué lindo es dormir! Episodio II</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05918.JPG"> +<img alt="../galleries/Facu_RN/DSC05918.JPG" src="../galleries/Facu_RN/DSC05918.JPG" /> +</a> +<figcaption> +<p>¡Qué lindo es dormir! Episodio III</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05925.JPG"> +<img alt="../galleries/Facu_RN/DSC05925.JPG" src="../galleries/Facu_RN/DSC05925.JPG" /> +</a> +<figcaption> +<p>¡Cómo podría ser de otra manera... jeje!</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05928.JPG"> +<img alt="../galleries/Facu_RN/DSC05928.JPG" src="../galleries/Facu_RN/DSC05928.JPG" /> +</a> +<figcaption> +<p>Cuna improvisada... se nota que llegó un mes antes, ¿no? jeje!</p> +</figcaption> +</figure> diff --git a/cache/posts/facundo.html b/cache/posts/facundo.html index ba5b23f7..29167369 100644 --- a/cache/posts/facundo.html +++ b/cache/posts/facundo.html @@ -23,47 +23,91 @@ <p>Sólo quería contarles...</p> <p>Damián.</p> <p>PD: algunas fotitos para que se deleiten... las primeras con el celu... las últimas con la cámara...</p> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu1.png"><img alt="../galleries/Facu_RN/Facu1.png" src="../galleries/Facu_RN/Facu1.png" /></a> -<p class="caption">¡Qué largo y flaco que soy!</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu2.png"><img alt="../galleries/Facu_RN/Facu2.png" src="../galleries/Facu_RN/Facu2.png" /></a> -<p class="caption">Y ahora de costadete...</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu3.png"><img alt="../galleries/Facu_RN/Facu3.png" src="../galleries/Facu_RN/Facu3.png" /></a> -<p class="caption">Parece que tenía hambre...</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu4.png"><img alt="../galleries/Facu_RN/Facu4.png" src="../galleries/Facu_RN/Facu4.png" /></a> -<p class="caption">Durmiendo en brazos del papi.</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/Facu5.png"><img alt="../galleries/Facu_RN/Facu5.png" src="../galleries/Facu_RN/Facu5.png" /></a> -<p class="caption">¡Uy! Me olvidé de avisar...</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05901.JPG"><img alt="../galleries/Facu_RN/DSC05901.JPG" src="../galleries/Facu_RN/DSC05901.JPG" /></a> -<p class="caption">¡Otra vez sopa... digo, teta!</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05903.JPG"><img alt="../galleries/Facu_RN/DSC05903.JPG" src="../galleries/Facu_RN/DSC05903.JPG" /></a> -<p class="caption">¡Qué lindo es dormir! Episodio I</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05917.JPG"><img alt="../galleries/Facu_RN/DSC05917.JPG" src="../galleries/Facu_RN/DSC05917.JPG" /></a> -<p class="caption">¡Qué lindo es dormir! Episodio II</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05918.JPG"><img alt="../galleries/Facu_RN/DSC05918.JPG" src="../galleries/Facu_RN/DSC05918.JPG" /></a> -<p class="caption">¡Qué lindo es dormir! Episodio III</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05925.JPG"><img alt="../galleries/Facu_RN/DSC05925.JPG" src="../galleries/Facu_RN/DSC05925.JPG" /></a> -<p class="caption">¡Cómo podría ser de otra manera... jeje!</p> -</div> -<div class="figure"> -<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05928.JPG"><img alt="../galleries/Facu_RN/DSC05928.JPG" src="../galleries/Facu_RN/DSC05928.JPG" /></a> -<p class="caption">Cuna improvisada... se nota que llegó un mes antes, ¿no? jeje!</p> -</div> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu1.png"> +<img alt="../galleries/Facu_RN/Facu1.png" src="../galleries/Facu_RN/Facu1.png" /> +</a> +<figcaption> +<p>¡Qué largo y flaco que soy!</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu2.png"> +<img alt="../galleries/Facu_RN/Facu2.png" src="../galleries/Facu_RN/Facu2.png" /> +</a> +<figcaption> +<p>Y ahora de costadete...</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu3.png"> +<img alt="../galleries/Facu_RN/Facu3.png" src="../galleries/Facu_RN/Facu3.png" /> +</a> +<figcaption> +<p>Parece que tenía hambre...</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu4.png"> +<img alt="../galleries/Facu_RN/Facu4.png" src="../galleries/Facu_RN/Facu4.png" /> +</a> +<figcaption> +<p>Durmiendo en brazos del papi.</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/Facu5.png"> +<img alt="../galleries/Facu_RN/Facu5.png" src="../galleries/Facu_RN/Facu5.png" /> +</a> +<figcaption> +<p>¡Uy! Me olvidé de avisar...</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05901.JPG"> +<img alt="../galleries/Facu_RN/DSC05901.JPG" src="../galleries/Facu_RN/DSC05901.JPG" /> +</a> +<figcaption> +<p>¡Otra vez sopa... digo, teta!</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05903.JPG"> +<img alt="../galleries/Facu_RN/DSC05903.JPG" src="../galleries/Facu_RN/DSC05903.JPG" /> +</a> +<figcaption> +<p>¡Qué lindo es dormir! Episodio I</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05917.JPG"> +<img alt="../galleries/Facu_RN/DSC05917.JPG" src="../galleries/Facu_RN/DSC05917.JPG" /> +</a> +<figcaption> +<p>¡Qué lindo es dormir! Episodio II</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05918.JPG"> +<img alt="../galleries/Facu_RN/DSC05918.JPG" src="../galleries/Facu_RN/DSC05918.JPG" /> +</a> +<figcaption> +<p>¡Qué lindo es dormir! Episodio III</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05925.JPG"> +<img alt="../galleries/Facu_RN/DSC05925.JPG" src="../galleries/Facu_RN/DSC05925.JPG" /> +</a> +<figcaption> +<p>¡Cómo podría ser de otra manera... jeje!</p> +</figcaption> +</figure> +<figure> +<a class="reference external image-reference" href="../galleries/Facu_RN/DSC05928.JPG"> +<img alt="../galleries/Facu_RN/DSC05928.JPG" src="../galleries/Facu_RN/DSC05928.JPG" /> +</a> +<figcaption> +<p>Cuna improvisada... se nota que llegó un mes antes, ¿no? jeje!</p> +</figcaption> +</figure> diff --git a/cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html b/cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html index d343b636..cbd02f9c 100644 --- a/cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html +++ b/cache/posts/hide-the-input-cells-from-your-ipython-slides.es.html @@ -2,47 +2,35 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A tweet arrived...</p> -<p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>And my answer was <strong>YES</strong>...</p> -<p>How we can easily do it? Just follow these few steps: -<!-- TEASER_END --></p> -<p><strong>Rational</strong>: We are going to use the power of <code>IPython.nbconvert</code> library to use a modified <strong>jinja</strong> template which will let us hide the<code>input cells</code> in our <strong>IPython slides</strong>. To achieve this goal, we are going to use the same approach described in a previous <a href="../posts/mimic-the-ipython-notebook-cell-execution.html">post</a>. Hence, our <code>input cells</code> will be hidden by default, but they will show up if we click on the corresponding <code>output cell</code> area.</p> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>And my answer was <strong>YES</strong>...</p> +<p>How we can easily do it? Just follow these few steps:</p> +<!-- TEASER_END --> +<p><strong>Rational</strong>: We are going to use the power of <code>IPython.nbconvert</code> library to use a modified <strong>jinja</strong> template which will let us hide the<code> input cells</code> in our <strong>IPython slides</strong>. To achieve this goal, we are going to use the same approach described in a previous <a href="../posts/mimic-the-ipython-notebook-cell-execution.html">post</a>. Hence, our <code>input cells</code> will be hidden by default, but they will show up if we click on the corresponding <code>output cell</code> area.</p> <p>OK, I first wrote a custom template and named it as <code>output_toggle.tpl</code>:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/output_toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/output_toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'slides_reveal.tpl' -%} +<pre>{%- extends 'slides_reveal.tpl' -%} {% block input_group -%} -<div class="input_hidden"> +<div class="input_hidden"> {{ super() }} </div> {% endblock input_group %} @@ -50,9 +38,9 @@ {%- block header -%} {{ super() }} -<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> +<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> -<style type="text/css"> +<style type="text/css"> //div.output_wrapper { // margin-top: 0px; //} @@ -64,8 +52,8 @@ <script> $(document).ready(function(){ - $(".output_wrapper").click(function(){ - $(this).prev('.input_hidden').slideToggle(); + $(".output_wrapper").click(function(){ + $(this).prev('.input_hidden').slideToggle(); }); }) </script> @@ -73,14 +61,9 @@ </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -90,14 +73,13 @@ <p>Now, the second and last step was:</p> <p><code>ipython nbconvert your_slides.ipynb --to slides --template output_toggle --post serve</code></p> <p>and I got something like this (navigate and try it!):</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/miscellaneus/test_slides.slides.html#/3/2" width="800" height="600"></iframe> +<iframe height="600" src="http://damianavila.github.io/miscellaneus/test_slides.slides.html#/3/2" width="800"></iframe> </div> </div> </div> @@ -107,9 +89,6 @@ <p>OK, as you have seen in the example, your <strong>IPython slides</strong> will be delivered showing just the <code>output cells</code>... but if you need to show some <code>input cells</code>, just click on the corresponding <code>output cell</code> and you will get them. Nice, uh!</p> <p>Hope it helps Thomas (and all the other people using the <strong>IPython slides</strong>)!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/hide-the-input-cells-from-your-ipython-slides.html b/cache/posts/hide-the-input-cells-from-your-ipython-slides.html index d343b636..cbd02f9c 100644 --- a/cache/posts/hide-the-input-cells-from-your-ipython-slides.html +++ b/cache/posts/hide-the-input-cells-from-your-ipython-slides.html @@ -2,47 +2,35 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A tweet arrived...</p> -<p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>And my answer was <strong>YES</strong>...</p> -<p>How we can easily do it? Just follow these few steps: -<!-- TEASER_END --></p> -<p><strong>Rational</strong>: We are going to use the power of <code>IPython.nbconvert</code> library to use a modified <strong>jinja</strong> template which will let us hide the<code>input cells</code> in our <strong>IPython slides</strong>. To achieve this goal, we are going to use the same approach described in a previous <a href="../posts/mimic-the-ipython-notebook-cell-execution.html">post</a>. Hence, our <code>input cells</code> will be hidden by default, but they will show up if we click on the corresponding <code>output cell</code> area.</p> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>And my answer was <strong>YES</strong>...</p> +<p>How we can easily do it? Just follow these few steps:</p> +<!-- TEASER_END --> +<p><strong>Rational</strong>: We are going to use the power of <code>IPython.nbconvert</code> library to use a modified <strong>jinja</strong> template which will let us hide the<code> input cells</code> in our <strong>IPython slides</strong>. To achieve this goal, we are going to use the same approach described in a previous <a href="../posts/mimic-the-ipython-notebook-cell-execution.html">post</a>. Hence, our <code>input cells</code> will be hidden by default, but they will show up if we click on the corresponding <code>output cell</code> area.</p> <p>OK, I first wrote a custom template and named it as <code>output_toggle.tpl</code>:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat /media/datos/Ejemplos/output_toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>/media/datos/Ejemplos/output_toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'slides_reveal.tpl' -%} +<pre>{%- extends 'slides_reveal.tpl' -%} {% block input_group -%} -<div class="input_hidden"> +<div class="input_hidden"> {{ super() }} </div> {% endblock input_group %} @@ -50,9 +38,9 @@ {%- block header -%} {{ super() }} -<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> +<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> -<style type="text/css"> +<style type="text/css"> //div.output_wrapper { // margin-top: 0px; //} @@ -64,8 +52,8 @@ <script> $(document).ready(function(){ - $(".output_wrapper").click(function(){ - $(this).prev('.input_hidden').slideToggle(); + $(".output_wrapper").click(function(){ + $(this).prev('.input_hidden').slideToggle(); }); }) </script> @@ -73,14 +61,9 @@ </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -90,14 +73,13 @@ <p>Now, the second and last step was:</p> <p><code>ipython nbconvert your_slides.ipynb --to slides --template output_toggle --post serve</code></p> <p>and I got something like this (navigate and try it!):</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/miscellaneus/test_slides.slides.html#/3/2" width="800" height="600"></iframe> +<iframe height="600" src="http://damianavila.github.io/miscellaneus/test_slides.slides.html#/3/2" width="800"></iframe> </div> </div> </div> @@ -107,9 +89,6 @@ <p>OK, as you have seen in the example, your <strong>IPython slides</strong> will be delivered showing just the <code>output cells</code>... but if you need to show some <code>input cells</code>, just click on the corresponding <code>output cell</code> and you will get them. Nice, uh!</p> <p>Hope it helps Thomas (and all the other people using the <strong>IPython slides</strong>)!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/how-to-pin-conda.es.html b/cache/posts/how-to-pin-conda.es.html index 83f549e3..47e40eeb 100644 --- a/cache/posts/how-to-pin-conda.es.html +++ b/cache/posts/how-to-pin-conda.es.html @@ -2,16 +2,17 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>One interesting advance feature in Conda is the capacity to pin packages from your environments so they can not be updated at all. If you are interested in <strong>that</strong> specific version of some package and not the next one because it breaks your work completely or for some other reason, you are probably <em>pinning</em> that package. If you are adding the specific version in every command you run instead of <em>pinning</em> the package, you are doing it wrong and you should keep reading ;-)</p> -<p>But, is it possible to pin Conda itself so it does not get updated every time you try to install/update something else? -<!-- TEASER_END --></p> +<p>But, is it possible to pin Conda itself so it does not get updated every time you try to install/update something else?</p> +<!-- TEASER_END --> <p>If you don't know what Conda is, you should probably go <a href="http://conda.pydata.org/docs/">here</a> and learn a little bit about it. For the lazy ones:</p> -<blockquote><p>Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.</p> +<blockquote> +<p>Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.</p> </blockquote> <p>One interesting behavior in Conda is that it gets updated to the latest version every time you try to install/update something else. That is a reasonable behavior in the general context but, for some specific use cases, that can be undesirable. This motivates the main question I raised before: is it possible to pin Conda itself so it does not get updated every time you try to install/update something else?</p> <p>I have heard a lot of people saying it is impossible to pin Conda, BUT that's not the case ;-)</p> <p>You can pin Conda the same way you pin any other package.</p> <p>Let me show you how you can do it... is <strong>really</strong> simple:</p> -<div class="highlight"><pre><span></span><span class="nb">echo</span> <span class="s2">"conda ==4.0.0"</span> >> ~/anaconda/conda-meta/pinned +<div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span><span class="s2">"conda ==4.0.0"</span><span class="w"> </span>>><span class="w"> </span>~/anaconda/conda-meta/pinned </pre></div> <p>This will create (or pass the string into) a file called <code>pinned</code> containing the <code>conda</code> package version you wish to keep (in this case, I choose the version <code>4.0.0</code>). This <code>pinned</code> file should be located in the <code>conda-meta</code> directory of your anaconda (or miniconda) installation. Then, every time you try to install or update something, this <code>pinned</code> file is read by Conda and the line with the <code>conda</code> specific version is added to the list sent to the SAT solver, hence you will always have that specification <em>enabled</em>, preventing you from updating to a newer Conda. Nice, don't you think?</p> <p>You can remove that file when you are ready to catch a new Conda version or alternatively you can run <code>conda</code> install/update commands with the <code>--no-pin</code> option.</p> @@ -19,9 +20,6 @@ <p>See you next time!</p> <p><strong>PS1</strong>: Thanks Will for reviewing my wording!</p> <p><strong>PS2</strong>: Starting Conda version <code>4.0.9</code>, you have a new config option called <code>auto_update_conda</code> to disable the self update nature in Conda.</p> - </div> </div> </div> - - diff --git a/cache/posts/how-to-pin-conda.html b/cache/posts/how-to-pin-conda.html index 83f549e3..47e40eeb 100644 --- a/cache/posts/how-to-pin-conda.html +++ b/cache/posts/how-to-pin-conda.html @@ -2,16 +2,17 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>One interesting advance feature in Conda is the capacity to pin packages from your environments so they can not be updated at all. If you are interested in <strong>that</strong> specific version of some package and not the next one because it breaks your work completely or for some other reason, you are probably <em>pinning</em> that package. If you are adding the specific version in every command you run instead of <em>pinning</em> the package, you are doing it wrong and you should keep reading ;-)</p> -<p>But, is it possible to pin Conda itself so it does not get updated every time you try to install/update something else? -<!-- TEASER_END --></p> +<p>But, is it possible to pin Conda itself so it does not get updated every time you try to install/update something else?</p> +<!-- TEASER_END --> <p>If you don't know what Conda is, you should probably go <a href="http://conda.pydata.org/docs/">here</a> and learn a little bit about it. For the lazy ones:</p> -<blockquote><p>Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.</p> +<blockquote> +<p>Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.</p> </blockquote> <p>One interesting behavior in Conda is that it gets updated to the latest version every time you try to install/update something else. That is a reasonable behavior in the general context but, for some specific use cases, that can be undesirable. This motivates the main question I raised before: is it possible to pin Conda itself so it does not get updated every time you try to install/update something else?</p> <p>I have heard a lot of people saying it is impossible to pin Conda, BUT that's not the case ;-)</p> <p>You can pin Conda the same way you pin any other package.</p> <p>Let me show you how you can do it... is <strong>really</strong> simple:</p> -<div class="highlight"><pre><span></span><span class="nb">echo</span> <span class="s2">"conda ==4.0.0"</span> >> ~/anaconda/conda-meta/pinned +<div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span><span class="s2">"conda ==4.0.0"</span><span class="w"> </span>>><span class="w"> </span>~/anaconda/conda-meta/pinned </pre></div> <p>This will create (or pass the string into) a file called <code>pinned</code> containing the <code>conda</code> package version you wish to keep (in this case, I choose the version <code>4.0.0</code>). This <code>pinned</code> file should be located in the <code>conda-meta</code> directory of your anaconda (or miniconda) installation. Then, every time you try to install or update something, this <code>pinned</code> file is read by Conda and the line with the <code>conda</code> specific version is added to the list sent to the SAT solver, hence you will always have that specification <em>enabled</em>, preventing you from updating to a newer Conda. Nice, don't you think?</p> <p>You can remove that file when you are ready to catch a new Conda version or alternatively you can run <code>conda</code> install/update commands with the <code>--no-pin</code> option.</p> @@ -19,9 +20,6 @@ <p>See you next time!</p> <p><strong>PS1</strong>: Thanks Will for reviewing my wording!</p> <p><strong>PS2</strong>: Starting Conda version <code>4.0.9</code>, you have a new config option called <code>auto_update_conda</code> to disable the self update nature in Conda.</p> - </div> </div> </div> - - diff --git a/cache/posts/ipython-plugin-for-nikola-updated.es.html b/cache/posts/ipython-plugin-for-nikola-updated.es.html index 1105eaa9..70dc18ab 100644 --- a/cache/posts/ipython-plugin-for-nikola-updated.es.html +++ b/cache/posts/ipython-plugin-for-nikola-updated.es.html @@ -1,63 +1,60 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=013cc344"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>I am pleased to announce the new version of the IPython plugin for Nikola.</strong></p> <p>This new version has been incorporated into Nikola master a few weeks ago, so it is now available in the last release of <strong>Nikola, 5.5.1.</strong></p> <p>Now that <strong>IPython</strong> has achieved the <strong>1.0 release</strong>, and with the incorporation of nbconvert as a part of the IPython machinery, the IPython plugin no longer needs to use a customized version of the old nbconvert, instead it is now using the the power of the new <strong>IPython.nbconvert</strong> infrastructure to export the ipynb files to HTML pieces to be rendered by <strong>Nikola</strong>.</p> -<p>With the simplification of the infrastructure, it is now easier to setup your blog to use the plugin following this five steps: -<!-- TEASER_END --></p> +<p>With the simplification of the infrastructure, it is now easier to setup your blog to use the plugin following this five steps:</p> +<!-- TEASER_END --> <p><strong>Note</strong>: I will explain from the ground, you probably can skip some steps if you are an <strong>IPython</strong> and <strong>Nikola</strong> user...</p> <ol> -<li><p><strong>Install</strong> (you can do it using <code>pip install</code> inside a virtualenv):</p> +<li><strong>Install</strong> (you can do it using <code>pip install</code> inside a virtualenv):</li> +</ol> <ul> <li>IPython 1.0 (also pyzmq, tornado and jinja2, as notebook dependencies)</li> <li>Nikola 5.5.1</li> <li>Requests</li> <li>Sphinx</li> </ul> -</li> -<li><p><strong>Init</strong> your site:</p> +<ol start="2"> +<li><strong>Init</strong> your site:</li> +</ol> <ul> <li><code>nikola init your_blog</code></li> <li>cd in your_blog</li> </ul> -</li> -<li><p><strong>Download</strong> the <strong>IPython</strong> theme:</p> +<ol start="3"> +<li><strong>Download</strong> the <strong>IPython</strong> theme:</li> +</ol> <ul> <li><code>nikola install_theme -l</code> to list all the available themes in Nikola</li> <li><code>nikola install_theme jinja-site-ipython</code> or any theme with the <code>ipython</code> word in their names ie, you have a <code>xkcd-site-ipython</code> theme if you want a <strong>xkcd sytling</strong> for your blog ;-).</li> </ul> -</li> -</ol> <p><strong>Note</strong>: Beware of the available sub_themes because probably you will need some css adjustments to use it. You can also write your custom theme if you want ;-).</p> -<ol> -<li><p><strong>Modify</strong> your <code>conf.py</code> file:</p> +<ol start="4"> +<li><strong>Modify</strong> your <code>conf.py</code> file:</li> +</ol> <ul> <li><p>add the following lines to your post_pages:</p> <p><code>("posts/*.ipynb", "posts", "post.tmpl", True),</code> - <code>("stories/*.ipynb", "stories", "story.tmpl", False),</code></p> +<code>("stories/*.ipynb", "stories", "story.tmpl", False),</code></p> </li> <li><p>and make explicit to use the IPython theme:</p> <p><code>THEME = 'jinja-site-ipython'</code></p> </li> </ul> -</li> -</ol> <p><strong>Note</strong>: You have to do all this four steps just once, then you will only do step 5 for writing your post.</p> -<ol> -<li><strong>Finally</strong>:<ul> +<ol start="5"> +<li><strong>Finally</strong>:</li> +</ol> +<ul> <li>To write a new post, just: <code>nikola new_post -f ipynb</code> (you can avoid <code>-f ipynb</code> if you have only ipynb references in your post_pages).</li> <li>Then, <code>nikola build</code> to build the site and <code>nikola serve</code> to see it.</li> </ul> -</li> -</ol> <p>Easier, don't you think?</p> <p>Ok, if you need any help or find any bug, just let us known open an issue on github or blame on me here ;-)</p> <p>Cheers.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/ipython-plugin-for-nikola-updated.html b/cache/posts/ipython-plugin-for-nikola-updated.html index 1105eaa9..49be0fb8 100644 --- a/cache/posts/ipython-plugin-for-nikola-updated.html +++ b/cache/posts/ipython-plugin-for-nikola-updated.html @@ -1,63 +1,60 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=db0d7692"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>I am pleased to announce the new version of the IPython plugin for Nikola.</strong></p> <p>This new version has been incorporated into Nikola master a few weeks ago, so it is now available in the last release of <strong>Nikola, 5.5.1.</strong></p> <p>Now that <strong>IPython</strong> has achieved the <strong>1.0 release</strong>, and with the incorporation of nbconvert as a part of the IPython machinery, the IPython plugin no longer needs to use a customized version of the old nbconvert, instead it is now using the the power of the new <strong>IPython.nbconvert</strong> infrastructure to export the ipynb files to HTML pieces to be rendered by <strong>Nikola</strong>.</p> -<p>With the simplification of the infrastructure, it is now easier to setup your blog to use the plugin following this five steps: -<!-- TEASER_END --></p> +<p>With the simplification of the infrastructure, it is now easier to setup your blog to use the plugin following this five steps:</p> +<!-- TEASER_END --> <p><strong>Note</strong>: I will explain from the ground, you probably can skip some steps if you are an <strong>IPython</strong> and <strong>Nikola</strong> user...</p> <ol> -<li><p><strong>Install</strong> (you can do it using <code>pip install</code> inside a virtualenv):</p> +<li><strong>Install</strong> (you can do it using <code>pip install</code> inside a virtualenv):</li> +</ol> <ul> <li>IPython 1.0 (also pyzmq, tornado and jinja2, as notebook dependencies)</li> <li>Nikola 5.5.1</li> <li>Requests</li> <li>Sphinx</li> </ul> -</li> -<li><p><strong>Init</strong> your site:</p> +<ol start="2"> +<li><strong>Init</strong> your site:</li> +</ol> <ul> <li><code>nikola init your_blog</code></li> <li>cd in your_blog</li> </ul> -</li> -<li><p><strong>Download</strong> the <strong>IPython</strong> theme:</p> +<ol start="3"> +<li><strong>Download</strong> the <strong>IPython</strong> theme:</li> +</ol> <ul> <li><code>nikola install_theme -l</code> to list all the available themes in Nikola</li> <li><code>nikola install_theme jinja-site-ipython</code> or any theme with the <code>ipython</code> word in their names ie, you have a <code>xkcd-site-ipython</code> theme if you want a <strong>xkcd sytling</strong> for your blog ;-).</li> </ul> -</li> -</ol> <p><strong>Note</strong>: Beware of the available sub_themes because probably you will need some css adjustments to use it. You can also write your custom theme if you want ;-).</p> -<ol> -<li><p><strong>Modify</strong> your <code>conf.py</code> file:</p> +<ol start="4"> +<li><strong>Modify</strong> your <code>conf.py</code> file:</li> +</ol> <ul> <li><p>add the following lines to your post_pages:</p> <p><code>("posts/*.ipynb", "posts", "post.tmpl", True),</code> - <code>("stories/*.ipynb", "stories", "story.tmpl", False),</code></p> +<code>("stories/*.ipynb", "stories", "story.tmpl", False),</code></p> </li> <li><p>and make explicit to use the IPython theme:</p> <p><code>THEME = 'jinja-site-ipython'</code></p> </li> </ul> -</li> -</ol> <p><strong>Note</strong>: You have to do all this four steps just once, then you will only do step 5 for writing your post.</p> -<ol> -<li><strong>Finally</strong>:<ul> +<ol start="5"> +<li><strong>Finally</strong>:</li> +</ol> +<ul> <li>To write a new post, just: <code>nikola new_post -f ipynb</code> (you can avoid <code>-f ipynb</code> if you have only ipynb references in your post_pages).</li> <li>Then, <code>nikola build</code> to build the site and <code>nikola serve</code> to see it.</li> </ul> -</li> -</ol> <p>Easier, don't you think?</p> <p>Ok, if you need any help or find any bug, just let us known open an issue on github or blame on me here ;-)</p> <p>Cheers.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/live-trading-logbook.es.html b/cache/posts/live-trading-logbook.es.html index 44383f7a..5691160a 100644 --- a/cache/posts/live-trading-logbook.es.html +++ b/cache/posts/live-trading-logbook.es.html @@ -5,11 +5,11 @@ As you probably know [if not, you are knowing it right now ;-)], one of my interests is the <em>analysis</em>, <em>modeling</em> and <em>forecasting</em> of financial time series. To make it short, I have developed some statistical models to forecast the dynamic of selected portfolios. Currently, I am trading equities and other more complex financial derivatives. But my models are also suitable to apply to other markets, ie. the <strong>foreign exchange</strong> market (yes... <strong>forex</strong>). So, I made a quick research on some interesting <strong>forex</strong> pairs and then I started a little account to perform some <em>live trades</em> accordingly to these models. And now, I pretend to <em>log</em> the trades from this little account in a subset of post on my blog, a sort of public <em>live trading logbook</em>.</p> -<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago: -<!-- TEASER_END --></p> +<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago:</p> +<!-- TEASER_END --> <table> <tr> -<th>Ticket</th> +<th>Ticket</th> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> @@ -29,11 +29,12 @@ <td>AUD/USD</td> <td>0.94939</td> </tr> -</table><p>And is time to close them... so closing them whereas I am writing this post (just wait me a minute, I will be back!).</p> +</table> +<p>And is time to close them... so closing them whereas I am writing this post (just wait me a minute, I will be back!).</p> <p>OK, I closed both positions:</p> <table> <tr> -<th>Ticket</th> +<th>Ticket</th> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> @@ -53,15 +54,13 @@ <td>AUD/USD</td> <td>0.93063</td> </tr> -</table><p>And I added some pics to illustrate these trades:</p> -<p><img src="../galleries/trades/1.png" alt=""> -<img src="../galleries/trades/2.png" alt=""></p> +</table> +<p>And I added some pics to illustrate these trades:</p> +<p><img alt="" src="../galleries/trades/1.png"/> +<img alt="" src="../galleries/trades/2.png"/></p> <p>With these trades, we had a net increment of <strong>4.5%</strong> in the <em>balance</em>!</p> <p>Nice beginning! Let's see how far we can go...</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/live-trading-logbook.html b/cache/posts/live-trading-logbook.html index 44383f7a..5691160a 100644 --- a/cache/posts/live-trading-logbook.html +++ b/cache/posts/live-trading-logbook.html @@ -5,11 +5,11 @@ As you probably know [if not, you are knowing it right now ;-)], one of my interests is the <em>analysis</em>, <em>modeling</em> and <em>forecasting</em> of financial time series. To make it short, I have developed some statistical models to forecast the dynamic of selected portfolios. Currently, I am trading equities and other more complex financial derivatives. But my models are also suitable to apply to other markets, ie. the <strong>foreign exchange</strong> market (yes... <strong>forex</strong>). So, I made a quick research on some interesting <strong>forex</strong> pairs and then I started a little account to perform some <em>live trades</em> accordingly to these models. And now, I pretend to <em>log</em> the trades from this little account in a subset of post on my blog, a sort of public <em>live trading logbook</em>.</p> -<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago: -<!-- TEASER_END --></p> +<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago:</p> +<!-- TEASER_END --> <table> <tr> -<th>Ticket</th> +<th>Ticket</th> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> @@ -29,11 +29,12 @@ <td>AUD/USD</td> <td>0.94939</td> </tr> -</table><p>And is time to close them... so closing them whereas I am writing this post (just wait me a minute, I will be back!).</p> +</table> +<p>And is time to close them... so closing them whereas I am writing this post (just wait me a minute, I will be back!).</p> <p>OK, I closed both positions:</p> <table> <tr> -<th>Ticket</th> +<th>Ticket</th> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> @@ -53,15 +54,13 @@ <td>AUD/USD</td> <td>0.93063</td> </tr> -</table><p>And I added some pics to illustrate these trades:</p> -<p><img src="../galleries/trades/1.png" alt=""> -<img src="../galleries/trades/2.png" alt=""></p> +</table> +<p>And I added some pics to illustrate these trades:</p> +<p><img alt="" src="../galleries/trades/1.png"/> +<img alt="" src="../galleries/trades/2.png"/></p> <p>With these trades, we had a net increment of <strong>4.5%</strong> in the <em>balance</em>!</p> <p>Nice beginning! Let's see how far we can go...</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html b/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html index e48ccf99..aa161d05 100644 --- a/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html +++ b/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.es.html @@ -1,8 +1,8 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file. -<!-- TEASER_END --></p> +<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file.</p> +<!-- TEASER_END --> <p><strong>Note</strong>: These extensions were developed some months ago, and probably you can write better versions of them using the new IPython widget infrastructure, but these were nice <code>hacks</code> and they are still useful in th IPython 1.x and 2.x series, so I think they deserve to go public.</p> <p>I used the <strong>IPython notebook</strong> a lot, you know that if you are frequently reading my blog. Not only to write blog posts, but also to write other kind of stuff, for instance: code. Some time ago, I used to write code in a plain text editor next to an IPython console, sometimes I used <a href="http://ninja-ide.org/"><strong>NINJA-IDE</strong></a> because it is a nice and featured platform. But right now, I am developing inside the <strong>IPython notebook</strong> because it gives me the text editor and the console in one place, with a lot of other useful features. But I will postpone the description of my workflow for some post to come in the future.</p> <p>I just want to tell you how I easily fixed a missing feature (for now, because it will be present in the future, for sure) in the <strong>IPython notebook</strong> using <em>nbextensions</em>. The problem was simple, you can use the <code>%load</code> and <code>%write_file</code> magics to load and write files. But I want some minimal user inteface to:</p> @@ -12,32 +12,31 @@ </ol> <p>So I wrote <code>loader</code> and <code>writer</code>...</p> <p><code>loader</code> <em>nbextension</em> use <code>FileReader()</code> capability of modern browsers. The implementation is simple and you can find more complex examples on the web:</p> -<div class="highlight"><pre><span></span><span class="kd">function</span> <span class="nx">loadFileAsText</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">fileToLoad</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">"fileToLoad_"</span> <span class="o">+</span> <span class="nx">i</span><span class="p">).</span><span class="nx">files</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span> - <span class="kd">var</span> <span class="nx">fileReader</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">FileReader</span><span class="p">();</span> - <span class="nx">fileReader</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">fileLoadedEvent</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">textFromFileLoaded</span> <span class="o">=</span> <span class="nx">fileLoadedEvent</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">result</span><span class="p">;</span> - <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="s1">'name: '</span> <span class="o">+</span> <span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">name</span> <span class="o">+</span> <span class="s1">'\n'</span> <span class="o">+</span> - <span class="s1">'type: '</span> <span class="o">+</span> <span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">type</span> <span class="o">+</span> <span class="s1">'\n'</span> <span class="o">+</span> - <span class="s1">'size: '</span> <span class="o">+</span> <span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">size</span> <span class="o">+</span> <span class="s1">' bytes \n'</span> <span class="o">+</span> - <span class="s1">'---- \n'</span> <span class="o">+</span> <span class="nx">textFromFileLoaded</span><span class="p">);</span> - <span class="p">};</span> - <span class="nx">fileReader</span><span class="p">.</span><span class="nx">readAsText</span><span class="p">(</span><span class="nx">fileToLoad</span><span class="p">,</span> <span class="s2">"UTF-8"</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">loadFileAsText</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">"fileToLoad_"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">i</span><span class="p">).</span><span class="nx">files</span><span class="p">[</span><span class="mf">0</span><span class="p">];</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">fileReader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">FileReader</span><span class="p">();</span> +<span class="w"> </span><span class="nx">fileReader</span><span class="p">.</span><span class="nx">onload</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">fileLoadedEvent</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">textFromFileLoaded</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">fileLoadedEvent</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">result</span><span class="p">;</span> +<span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="s1">'name: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">name</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">'\n'</span><span class="w"> </span><span class="o">+</span> +<span class="w"> </span><span class="s1">'type: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">type</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">'\n'</span><span class="w"> </span><span class="o">+</span> +<span class="w"> </span><span class="s1">'size: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">size</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">' bytes \n'</span><span class="w"> </span><span class="o">+</span> +<span class="w"> </span><span class="s1">'---- \n'</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">textFromFileLoaded</span><span class="p">);</span> +<span class="w"> </span><span class="p">};</span> +<span class="w"> </span><span class="nx">fileReader</span><span class="p">.</span><span class="nx">readAsText</span><span class="p">(</span><span class="nx">fileToLoad</span><span class="p">,</span><span class="w"> </span><span class="s2">"UTF-8"</span><span class="p">);</span> <span class="p">}</span> </pre></div> <p>So after selecting a cell, I click on the <code>loader</code> button, I get this:</p> -<p><img src="../galleries/loadwrite/loader1.png" alt=""></p> +<p><img alt="" src="../galleries/loadwrite/loader1.png"/></p> <p>And if I click on <em>Seleccionar archivo</em> (Select file) I can navigate trough my file system to get the file I want to load. For instance, I will load some text, in this case a <a href="http://bokeh.pydata.org/"><strong>Bokeh</strong></a> plot, in the next cell:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [ ]:</div> +<div class="prompt input_prompt">In [ ]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">name</span><span class="p">:</span> <span class="n">themes</span><span class="o">.</span><span class="n">py</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">name</span><span class="p">:</span> <span class="n">themes</span><span class="o">.</span><span class="n">py</span> <span class="nb">type</span><span class="p">:</span> <span class="n">text</span><span class="o">/</span><span class="n">x</span><span class="o">-</span><span class="n">python</span> <span class="n">size</span><span class="p">:</span> <span class="mi">1055</span> <span class="nb">bytes</span> <span class="o">----</span> @@ -56,70 +55,63 @@ <span class="n">pdf</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="p">(</span><span class="n">sigma</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">))</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="p">(</span><span class="n">x</span> <span class="o">-</span> <span class="n">mu</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">sigma</span> <span class="o">**</span> <span class="mi">2</span><span class="p">))</span> <span class="n">cdf</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">scipy</span><span class="o">.</span><span class="n">special</span><span class="o">.</span><span class="n">erf</span><span class="p">((</span><span class="n">x</span> <span class="o">-</span> <span class="n">mu</span><span class="p">)</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">sigma</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)))</span> <span class="o">/</span> <span class="mi">2</span> -<span class="n">output_file</span><span class="p">(</span><span class="s1">'histogram.html'</span><span class="p">)</span> +<span class="n">output_file</span><span class="p">(</span><span class="s1">'histogram.html'</span><span class="p">)</span> <span class="n">hold</span><span class="p">()</span> -<span class="n">figure</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Normal Distribution (μ=0, σ=0.5)"</span><span class="p">,</span> <span class="n">tools</span><span class="o">=</span><span class="s2">"previewsave"</span><span class="p">,</span> - <span class="n">background_fill</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">)</span> +<span class="n">figure</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Normal Distribution (μ=0, σ=0.5)"</span><span class="p">,</span> <span class="n">tools</span><span class="o">=</span><span class="s2">"previewsave"</span><span class="p">,</span> + <span class="n">background_fill</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">)</span> <span class="n">quad</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="n">hist</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">hist</span><span class="p">)),</span> <span class="n">left</span><span class="o">=</span><span class="n">edges</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">right</span><span class="o">=</span><span class="n">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span> - <span class="n">fill_color</span><span class="o">=</span><span class="s2">"#333333"</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span> + <span class="n">fill_color</span><span class="o">=</span><span class="s2">"#333333"</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span> <span class="c1"># Use `line` renderers to display the PDF and CDF</span> -<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">pdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#348abd"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"PDF"</span><span class="p">)</span> -<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">cdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#7a68a6"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"CDF"</span><span class="p">)</span> +<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">pdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#348abd"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"PDF"</span><span class="p">)</span> +<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">cdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#7a68a6"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"CDF"</span><span class="p">)</span> -<span class="n">xgrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> +<span class="n">xgrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> <span class="n">xgrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_width</span> <span class="o">=</span> <span class="mi">3</span> -<span class="n">ygrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> +<span class="n">ygrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> <span class="n">ygrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_width</span> <span class="o">=</span> <span class="mi">3</span> -<span class="n">legend</span><span class="p">()</span><span class="o">.</span><span class="n">orientation</span> <span class="o">=</span> <span class="s2">"top_left"</span> +<span class="n">legend</span><span class="p">()</span><span class="o">.</span><span class="n">orientation</span> <span class="o">=</span> <span class="s2">"top_left"</span> <span class="n">show</span><span class="p">()</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Which gives me this nice plot... but I will post in detail about <strong>Bokeh</strong> soon ;-)</p> -<p><img src="../galleries/loadwrite/themes1.png" alt=""></p> +<p><img alt="" src="../galleries/loadwrite/themes1.png"/></p> <p>As you can see, the three first lines of the loaded text give you information about the file itself. Under the <code>----</code> rule, you will have the file content. Then, you can do whatever modification you want and write it to a file (the same or another one) using the <code>writer</code> <em>nbextension</em>:</p> -<p><img src="../galleries/loadwrite/writer1.png" alt=""></p> +<p><img alt="" src="../galleries/loadwrite/writer1.png"/></p> <p><code>writer</code> <em>nbextension</em> is using <code>%writefile</code> magic under the hood:</p> <div class="highlight"><pre><span></span><span class="nx">IPython</span><span class="p">.</span><span class="nx">dialog</span><span class="p">.</span><span class="nx">modal</span><span class="p">({</span> - <span class="nx">title</span><span class="o">:</span> <span class="s2">"Create a file with your cell content"</span><span class="p">,</span> - <span class="nx">body</span><span class="o">:</span> <span class="nx">dialogform</span><span class="p">,</span> - <span class="nx">buttons</span><span class="o">:</span> <span class="p">{</span> - <span class="s2">"OK"</span><span class="o">:</span> <span class="p">{</span> <span class="kr">class</span> <span class="o">:</span> <span class="s2">"btn-primary"</span><span class="p">,</span> - <span class="nx">click</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">corr_input</span> <span class="o">=</span> <span class="s2">"%%writefile "</span> <span class="o">+</span> <span class="nx">$</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">())</span> <span class="o">+</span> - <span class="s2">"\n"</span> <span class="o">+</span> <span class="nx">input</span><span class="p">;</span> - <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> - <span class="p">}},</span> - <span class="nx">Cancel</span><span class="o">:</span> <span class="p">{}</span> - <span class="p">}</span> +<span class="w"> </span><span class="nx">title</span><span class="o">:</span><span class="w"> </span><span class="s2">"Create a file with your cell content"</span><span class="p">,</span> +<span class="w"> </span><span class="nx">body</span><span class="o">:</span><span class="w"> </span><span class="nx">dialogform</span><span class="p">,</span> +<span class="w"> </span><span class="nx">buttons</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"OK"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="kd">class</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s2">"btn-primary"</span><span class="p">,</span> +<span class="w"> </span><span class="nx">click</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">corr_input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"%%writefile "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">$</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">())</span><span class="w"> </span><span class="o">+</span><span class="w"> </span> +<span class="w"> </span><span class="s2">"\n"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">input</span><span class="p">;</span> +<span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> +<span class="w"> </span><span class="p">}},</span> +<span class="w"> </span><span class="nx">Cancel</span><span class="o">:</span><span class="w"> </span><span class="p">{}</span> +<span class="w"> </span><span class="p">}</span> <span class="p">});</span> </pre></div> <p>but it takes care about writing only the miningful content, I mean it will avoid writing the four first lines of you cell.</p> -<div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">preInput</span> <span class="o">=</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">();</span> -<span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">preInput</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">).</span><span class="nx">slice</span><span class="p">(</span><span class="mi">4</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="kd">var</span><span class="w"> </span><span class="nx">preInput</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">();</span> +<span class="kd">var</span><span class="w"> </span><span class="nx">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">preInput</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">).</span><span class="nx">slice</span><span class="p">(</span><span class="mf">4</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span> </pre></div> <p>As you can see <code>loader</code> and <code>writer</code> work in pairs! And they make the laod, edit and save of any text file really quick and successful. I want to keep this post short, so I will stop here, but you can easily see how these simple extensions can help you a lot in your daily workflow.</p> <p>As usual, the extensions live in this repo: <a href="https://github.com/damianavila/mIPyex">mIPyex</a>, where I will upload the development versions of my own extensions. You can see the full implementation there. When I get them enough stable, I will make a copy of them in the <a href="https://github.com/ipython-contrib/IPython-notebook-extensions">IPython notebook extensions</a> repo where you can get a lot of and useful interesting extensions.</p> <p>OK, as you can see... now it is very simple to load, edit an save text with the <strong>IPython notebook</strong>. And it will be easier in the future...</p> <p>Enjoy!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html b/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html index e48ccf99..aa161d05 100644 --- a/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html +++ b/cache/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html @@ -1,8 +1,8 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file. -<!-- TEASER_END --></p> +<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file.</p> +<!-- TEASER_END --> <p><strong>Note</strong>: These extensions were developed some months ago, and probably you can write better versions of them using the new IPython widget infrastructure, but these were nice <code>hacks</code> and they are still useful in th IPython 1.x and 2.x series, so I think they deserve to go public.</p> <p>I used the <strong>IPython notebook</strong> a lot, you know that if you are frequently reading my blog. Not only to write blog posts, but also to write other kind of stuff, for instance: code. Some time ago, I used to write code in a plain text editor next to an IPython console, sometimes I used <a href="http://ninja-ide.org/"><strong>NINJA-IDE</strong></a> because it is a nice and featured platform. But right now, I am developing inside the <strong>IPython notebook</strong> because it gives me the text editor and the console in one place, with a lot of other useful features. But I will postpone the description of my workflow for some post to come in the future.</p> <p>I just want to tell you how I easily fixed a missing feature (for now, because it will be present in the future, for sure) in the <strong>IPython notebook</strong> using <em>nbextensions</em>. The problem was simple, you can use the <code>%load</code> and <code>%write_file</code> magics to load and write files. But I want some minimal user inteface to:</p> @@ -12,32 +12,31 @@ </ol> <p>So I wrote <code>loader</code> and <code>writer</code>...</p> <p><code>loader</code> <em>nbextension</em> use <code>FileReader()</code> capability of modern browsers. The implementation is simple and you can find more complex examples on the web:</p> -<div class="highlight"><pre><span></span><span class="kd">function</span> <span class="nx">loadFileAsText</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">fileToLoad</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">"fileToLoad_"</span> <span class="o">+</span> <span class="nx">i</span><span class="p">).</span><span class="nx">files</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span> - <span class="kd">var</span> <span class="nx">fileReader</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">FileReader</span><span class="p">();</span> - <span class="nx">fileReader</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">fileLoadedEvent</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">textFromFileLoaded</span> <span class="o">=</span> <span class="nx">fileLoadedEvent</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">result</span><span class="p">;</span> - <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="s1">'name: '</span> <span class="o">+</span> <span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">name</span> <span class="o">+</span> <span class="s1">'\n'</span> <span class="o">+</span> - <span class="s1">'type: '</span> <span class="o">+</span> <span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">type</span> <span class="o">+</span> <span class="s1">'\n'</span> <span class="o">+</span> - <span class="s1">'size: '</span> <span class="o">+</span> <span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">size</span> <span class="o">+</span> <span class="s1">' bytes \n'</span> <span class="o">+</span> - <span class="s1">'---- \n'</span> <span class="o">+</span> <span class="nx">textFromFileLoaded</span><span class="p">);</span> - <span class="p">};</span> - <span class="nx">fileReader</span><span class="p">.</span><span class="nx">readAsText</span><span class="p">(</span><span class="nx">fileToLoad</span><span class="p">,</span> <span class="s2">"UTF-8"</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="kd">function</span><span class="w"> </span><span class="nx">loadFileAsText</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s2">"fileToLoad_"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">i</span><span class="p">).</span><span class="nx">files</span><span class="p">[</span><span class="mf">0</span><span class="p">];</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">fileReader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">FileReader</span><span class="p">();</span> +<span class="w"> </span><span class="nx">fileReader</span><span class="p">.</span><span class="nx">onload</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">fileLoadedEvent</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">textFromFileLoaded</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">fileLoadedEvent</span><span class="p">.</span><span class="nx">target</span><span class="p">.</span><span class="nx">result</span><span class="p">;</span> +<span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">set_text</span><span class="p">(</span><span class="s1">'name: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">name</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">'\n'</span><span class="w"> </span><span class="o">+</span> +<span class="w"> </span><span class="s1">'type: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">type</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">'\n'</span><span class="w"> </span><span class="o">+</span> +<span class="w"> </span><span class="s1">'size: '</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">fileToLoad</span><span class="p">.</span><span class="nx">size</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s1">' bytes \n'</span><span class="w"> </span><span class="o">+</span> +<span class="w"> </span><span class="s1">'---- \n'</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">textFromFileLoaded</span><span class="p">);</span> +<span class="w"> </span><span class="p">};</span> +<span class="w"> </span><span class="nx">fileReader</span><span class="p">.</span><span class="nx">readAsText</span><span class="p">(</span><span class="nx">fileToLoad</span><span class="p">,</span><span class="w"> </span><span class="s2">"UTF-8"</span><span class="p">);</span> <span class="p">}</span> </pre></div> <p>So after selecting a cell, I click on the <code>loader</code> button, I get this:</p> -<p><img src="../galleries/loadwrite/loader1.png" alt=""></p> +<p><img alt="" src="../galleries/loadwrite/loader1.png"/></p> <p>And if I click on <em>Seleccionar archivo</em> (Select file) I can navigate trough my file system to get the file I want to load. For instance, I will load some text, in this case a <a href="http://bokeh.pydata.org/"><strong>Bokeh</strong></a> plot, in the next cell:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [ ]:</div> +<div class="prompt input_prompt">In [ ]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">name</span><span class="p">:</span> <span class="n">themes</span><span class="o">.</span><span class="n">py</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">name</span><span class="p">:</span> <span class="n">themes</span><span class="o">.</span><span class="n">py</span> <span class="nb">type</span><span class="p">:</span> <span class="n">text</span><span class="o">/</span><span class="n">x</span><span class="o">-</span><span class="n">python</span> <span class="n">size</span><span class="p">:</span> <span class="mi">1055</span> <span class="nb">bytes</span> <span class="o">----</span> @@ -56,70 +55,63 @@ <span class="n">pdf</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="p">(</span><span class="n">sigma</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">))</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="p">(</span><span class="n">x</span> <span class="o">-</span> <span class="n">mu</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">sigma</span> <span class="o">**</span> <span class="mi">2</span><span class="p">))</span> <span class="n">cdf</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">scipy</span><span class="o">.</span><span class="n">special</span><span class="o">.</span><span class="n">erf</span><span class="p">((</span><span class="n">x</span> <span class="o">-</span> <span class="n">mu</span><span class="p">)</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">sigma</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)))</span> <span class="o">/</span> <span class="mi">2</span> -<span class="n">output_file</span><span class="p">(</span><span class="s1">'histogram.html'</span><span class="p">)</span> +<span class="n">output_file</span><span class="p">(</span><span class="s1">'histogram.html'</span><span class="p">)</span> <span class="n">hold</span><span class="p">()</span> -<span class="n">figure</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Normal Distribution (μ=0, σ=0.5)"</span><span class="p">,</span> <span class="n">tools</span><span class="o">=</span><span class="s2">"previewsave"</span><span class="p">,</span> - <span class="n">background_fill</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">)</span> +<span class="n">figure</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Normal Distribution (μ=0, σ=0.5)"</span><span class="p">,</span> <span class="n">tools</span><span class="o">=</span><span class="s2">"previewsave"</span><span class="p">,</span> + <span class="n">background_fill</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">)</span> <span class="n">quad</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="n">hist</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">hist</span><span class="p">)),</span> <span class="n">left</span><span class="o">=</span><span class="n">edges</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">right</span><span class="o">=</span><span class="n">edges</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span> - <span class="n">fill_color</span><span class="o">=</span><span class="s2">"#333333"</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span> + <span class="n">fill_color</span><span class="o">=</span><span class="s2">"#333333"</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#E5E5E5"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span> <span class="c1"># Use `line` renderers to display the PDF and CDF</span> -<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">pdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#348abd"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"PDF"</span><span class="p">)</span> -<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">cdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#7a68a6"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"CDF"</span><span class="p">)</span> +<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">pdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#348abd"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"PDF"</span><span class="p">)</span> +<span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">cdf</span><span class="p">,</span> <span class="n">line_color</span><span class="o">=</span><span class="s2">"#7a68a6"</span><span class="p">,</span> <span class="n">line_width</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">"CDF"</span><span class="p">)</span> -<span class="n">xgrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> +<span class="n">xgrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> <span class="n">xgrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_width</span> <span class="o">=</span> <span class="mi">3</span> -<span class="n">ygrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> +<span class="n">ygrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="s2">"white"</span> <span class="n">ygrid</span><span class="p">()</span><span class="o">.</span><span class="n">grid_line_width</span> <span class="o">=</span> <span class="mi">3</span> -<span class="n">legend</span><span class="p">()</span><span class="o">.</span><span class="n">orientation</span> <span class="o">=</span> <span class="s2">"top_left"</span> +<span class="n">legend</span><span class="p">()</span><span class="o">.</span><span class="n">orientation</span> <span class="o">=</span> <span class="s2">"top_left"</span> <span class="n">show</span><span class="p">()</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - +</div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Which gives me this nice plot... but I will post in detail about <strong>Bokeh</strong> soon ;-)</p> -<p><img src="../galleries/loadwrite/themes1.png" alt=""></p> +<p><img alt="" src="../galleries/loadwrite/themes1.png"/></p> <p>As you can see, the three first lines of the loaded text give you information about the file itself. Under the <code>----</code> rule, you will have the file content. Then, you can do whatever modification you want and write it to a file (the same or another one) using the <code>writer</code> <em>nbextension</em>:</p> -<p><img src="../galleries/loadwrite/writer1.png" alt=""></p> +<p><img alt="" src="../galleries/loadwrite/writer1.png"/></p> <p><code>writer</code> <em>nbextension</em> is using <code>%writefile</code> magic under the hood:</p> <div class="highlight"><pre><span></span><span class="nx">IPython</span><span class="p">.</span><span class="nx">dialog</span><span class="p">.</span><span class="nx">modal</span><span class="p">({</span> - <span class="nx">title</span><span class="o">:</span> <span class="s2">"Create a file with your cell content"</span><span class="p">,</span> - <span class="nx">body</span><span class="o">:</span> <span class="nx">dialogform</span><span class="p">,</span> - <span class="nx">buttons</span><span class="o">:</span> <span class="p">{</span> - <span class="s2">"OK"</span><span class="o">:</span> <span class="p">{</span> <span class="kr">class</span> <span class="o">:</span> <span class="s2">"btn-primary"</span><span class="p">,</span> - <span class="nx">click</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">corr_input</span> <span class="o">=</span> <span class="s2">"%%writefile "</span> <span class="o">+</span> <span class="nx">$</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">())</span> <span class="o">+</span> - <span class="s2">"\n"</span> <span class="o">+</span> <span class="nx">input</span><span class="p">;</span> - <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> - <span class="p">}},</span> - <span class="nx">Cancel</span><span class="o">:</span> <span class="p">{}</span> - <span class="p">}</span> +<span class="w"> </span><span class="nx">title</span><span class="o">:</span><span class="w"> </span><span class="s2">"Create a file with your cell content"</span><span class="p">,</span> +<span class="w"> </span><span class="nx">body</span><span class="o">:</span><span class="w"> </span><span class="nx">dialogform</span><span class="p">,</span> +<span class="w"> </span><span class="nx">buttons</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"OK"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="kd">class</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="s2">"btn-primary"</span><span class="p">,</span> +<span class="w"> </span><span class="nx">click</span><span class="o">:</span><span class="w"> </span><span class="kd">function</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">corr_input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"%%writefile "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">$</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="nx">textarea</span><span class="p">).</span><span class="nx">val</span><span class="p">())</span><span class="w"> </span><span class="o">+</span><span class="w"> </span> +<span class="w"> </span><span class="s2">"\n"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">input</span><span class="p">;</span> +<span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">kernel</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="nx">corr_input</span><span class="p">);</span> +<span class="w"> </span><span class="p">}},</span> +<span class="w"> </span><span class="nx">Cancel</span><span class="o">:</span><span class="w"> </span><span class="p">{}</span> +<span class="w"> </span><span class="p">}</span> <span class="p">});</span> </pre></div> <p>but it takes care about writing only the miningful content, I mean it will avoid writing the four first lines of you cell.</p> -<div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">preInput</span> <span class="o">=</span> <span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">();</span> -<span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">preInput</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">).</span><span class="nx">slice</span><span class="p">(</span><span class="mi">4</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span> +<div class="highlight"><pre><span></span><span class="kd">var</span><span class="w"> </span><span class="nx">preInput</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">IPython</span><span class="p">.</span><span class="nx">notebook</span><span class="p">.</span><span class="nx">get_selected_cell</span><span class="p">().</span><span class="nx">get_text</span><span class="p">();</span> +<span class="kd">var</span><span class="w"> </span><span class="nx">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">preInput</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">).</span><span class="nx">slice</span><span class="p">(</span><span class="mf">4</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span> </pre></div> <p>As you can see <code>loader</code> and <code>writer</code> work in pairs! And they make the laod, edit and save of any text file really quick and successful. I want to keep this post short, so I will stop here, but you can easily see how these simple extensions can help you a lot in your daily workflow.</p> <p>As usual, the extensions live in this repo: <a href="https://github.com/damianavila/mIPyex">mIPyex</a>, where I will upload the development versions of my own extensions. You can see the full implementation there. When I get them enough stable, I will make a copy of them in the <a href="https://github.com/ipython-contrib/IPython-notebook-extensions">IPython notebook extensions</a> repo where you can get a lot of and useful interesting extensions.</p> <p>OK, as you can see... now it is very simple to load, edit an save text with the <strong>IPython notebook</strong>. And it will be easier in the future...</p> <p>Enjoy!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/make-your-slides-with-ipython.es.html b/cache/posts/make-your-slides-with-ipython.es.html index 0fa2e094..85dbd4be 100644 --- a/cache/posts/make-your-slides-with-ipython.es.html +++ b/cache/posts/make-your-slides-with-ipython.es.html @@ -1,37 +1,35 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=ee43e006"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>With the integration of nbconvert inside IPython, the last 1.0 release has the possibility to export the ipynb to other formats such as rst, markdown, latex, html and slides (<a href="http://ipython.org/ipython-doc/stable/interactive/nbconvert.html">info</a>).</p> -<p>The slides option generates a Reveal.js-powered HTML slideshow, like this one: -<!-- TEASER_END --></p> - +<p>The slides option generates a Reveal.js-powered HTML slideshow, like this one:</p> +<!-- TEASER_END --> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0ca46100"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/scipy2013_talks/index.html" width=800 height=600></iframe> +<iframe height="600" src="http://damianavila.github.io/scipy2013_talks/index.html" width="800"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c1fbaf39"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>These are my slides from the talk I gave at SciPy 2013 (Texas) featuring this exporter I previously developed in the old nbconvert project and now merged (and available) in the last release (1.0) of IPython.</p> <p>You can also see the video of the talk:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=38aa6697"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe width="640" height="360" src="//www.youtube.com/embed/rBS6hmiK-H8" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/rBS6hmiK-H8" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e3eb3cb4"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you can see, before I had to use an independent nbconvert library... now is easier ;-)</p> @@ -44,9 +42,6 @@ <p>Enjoy it!</p> <p>Damián</p> <p>PS: Please report any bug or give me you feedback to make this tool better!</p> - </div> </div> </div> - - diff --git a/cache/posts/make-your-slides-with-ipython.html b/cache/posts/make-your-slides-with-ipython.html index 0fa2e094..cdc703c0 100644 --- a/cache/posts/make-your-slides-with-ipython.html +++ b/cache/posts/make-your-slides-with-ipython.html @@ -1,37 +1,35 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0274d078"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>With the integration of nbconvert inside IPython, the last 1.0 release has the possibility to export the ipynb to other formats such as rst, markdown, latex, html and slides (<a href="http://ipython.org/ipython-doc/stable/interactive/nbconvert.html">info</a>).</p> -<p>The slides option generates a Reveal.js-powered HTML slideshow, like this one: -<!-- TEASER_END --></p> - +<p>The slides option generates a Reveal.js-powered HTML slideshow, like this one:</p> +<!-- TEASER_END --> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=ecce151e"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://damianavila.github.io/scipy2013_talks/index.html" width=800 height=600></iframe> +<iframe height="600" src="http://damianavila.github.io/scipy2013_talks/index.html" width="800"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=bab18cca"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>These are my slides from the talk I gave at SciPy 2013 (Texas) featuring this exporter I previously developed in the old nbconvert project and now merged (and available) in the last release (1.0) of IPython.</p> <p>You can also see the video of the talk:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e9137437"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe width="640" height="360" src="//www.youtube.com/embed/rBS6hmiK-H8" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/rBS6hmiK-H8" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=02bd44b7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you can see, before I had to use an independent nbconvert library... now is easier ;-)</p> @@ -44,9 +42,6 @@ <p>Enjoy it!</p> <p>Damián</p> <p>PS: Please report any bug or give me you feedback to make this tool better!</p> - </div> </div> </div> - - diff --git a/cache/posts/mimic-the-ipython-notebook-cell-execution.es.html b/cache/posts/mimic-the-ipython-notebook-cell-execution.es.html index 14e81e76..3fd92a8d 100644 --- a/cache/posts/mimic-the-ipython-notebook-cell-execution.es.html +++ b/cache/posts/mimic-the-ipython-notebook-cell-execution.es.html @@ -1,149 +1,100 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=14812fd0"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -<!-- TEASER_END --></p> +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<!-- TEASER_END --> <p><strong>NOTE: From here, to see the output of each cell, please click on the input area and surprise yourself!</strong></p> <p>First, we needed to rewrite some things at the <strong>Jinja</strong> template level:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=50f8576b"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">1</span>,7p /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span>,7p<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'html_full.tpl' -%} +<pre>{%- extends 'html_full.tpl' -%} {% block output_group %} -<div class="output_hidden"> +<div class="output_hidden"> {{ super() }} </div> {% endblock output_group %} </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c034230e"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We had to <em>rewrite</em> the <code>output_group</code> block to encompass it with a new <code>output_hidden</code>-classed <code>div</code>, which we would use in a simple <strong>Javascript</strong> function later.</p> <p>Second, we needed to write that little <strong>Javascript</strong> snippet:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=69d2a5e9"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">25</span>,29p /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">25</span>,29p<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>$(document).ready(function(){ - $(".input").click(function(){ - $(this).next('.output_hidden').slideToggle(); + $(".input").click(function(){ + $(this).next('.output_hidden').slideToggle(); }); }) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0e435bf0"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Here, we used the <code>.slideToggle()</code> method to display or hide the <code>output_hidden</code>-classed <code>div</code> elements (with a nice sliding motion) when the user makes a click on the input cells. We was using <strong>jQuery</strong>, so we needed to load <strong>jQquery</strong>, ie. using the following line:</p> <p><code><script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script></code></p> <p>Finally, we added some css to make the <code>output_hidden-classed div</code> not visible (hidden by default):</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=f6394a25"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">18</span>,21p /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">18</span>,21p<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>.output_hidden { display: none; @@ -151,54 +102,36 @@ } </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=28ea4ba8"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>If you put all these snippets together, you will get the following template:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=c55d70b5"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat -n /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>-n<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre> 1 {%- extends 'html_full.tpl' -%} +<pre> 1 {%- extends 'html_full.tpl' -%} 2 3 {% block output_group %} - 4 <div class="output_hidden"> + 4 <div class="output_hidden"> 5 {{ super() }} 6 </div> 7 {% endblock output_group %} @@ -206,9 +139,9 @@ 9 {%- block header -%} 10 {{ super() }} 11 - 12 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> + 12 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 13 - 14 <style type="text/css"> + 14 <style type="text/css"> 15 div.output_wrapper { 16 margin-top: 0px; 17 } @@ -220,8 +153,8 @@ 23 24 <script> 25 $(document).ready(function(){ - 26 $(".input").click(function(){ - 27 $(this).next('.output_hidden').slideToggle(); + 26 $(".input").click(function(){ + 27 $(this).next('.output_hidden').slideToggle(); 28 }); 29 }) 30 </script> @@ -229,16 +162,11 @@ 32 </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c81a2134"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>To use it, just add <code>--template toggle</code> to your <code>ipython nbconvert</code> call, ie:</p> @@ -249,9 +177,6 @@ <p>To conclude, the possibility to mimic the <strong>IPython</strong> notebook execution is very useful for introductory courses and to publish content in a shorter but more interactive way.</p> <p>Hope you enjoy it!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/mimic-the-ipython-notebook-cell-execution.html b/cache/posts/mimic-the-ipython-notebook-cell-execution.html index 14e81e76..95573d61 100644 --- a/cache/posts/mimic-the-ipython-notebook-cell-execution.html +++ b/cache/posts/mimic-the-ipython-notebook-cell-execution.html @@ -1,149 +1,100 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=86fef7a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -<!-- TEASER_END --></p> +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<!-- TEASER_END --> <p><strong>NOTE: From here, to see the output of each cell, please click on the input area and surprise yourself!</strong></p> <p>First, we needed to rewrite some things at the <strong>Jinja</strong> template level:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=1371ebc3"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">1</span>,7p /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">1</span>,7p<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>{%- extends 'html_full.tpl' -%} +<pre>{%- extends 'html_full.tpl' -%} {% block output_group %} -<div class="output_hidden"> +<div class="output_hidden"> {{ super() }} </div> {% endblock output_group %} </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=aa2904bd"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We had to <em>rewrite</em> the <code>output_group</code> block to encompass it with a new <code>output_hidden</code>-classed <code>div</code>, which we would use in a simple <strong>Javascript</strong> function later.</p> <p>Second, we needed to write that little <strong>Javascript</strong> snippet:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=3fae8c4a"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">25</span>,29p /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">25</span>,29p<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>$(document).ready(function(){ - $(".input").click(function(){ - $(this).next('.output_hidden').slideToggle(); + $(".input").click(function(){ + $(this).next('.output_hidden').slideToggle(); }); }) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=43498ed5"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Here, we used the <code>.slideToggle()</code> method to display or hide the <code>output_hidden</code>-classed <code>div</code> elements (with a nice sliding motion) when the user makes a click on the input cells. We was using <strong>jQuery</strong>, so we needed to load <strong>jQquery</strong>, ie. using the following line:</p> <p><code><script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script></code></p> <p>Finally, we added some css to make the <code>output_hidden-classed div</code> not visible (hidden by default):</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=1714eb02"> <div class="input"> -<div class="prompt input_prompt">In [3]:</div> +<div class="prompt input_prompt">In [3]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">18</span>,21p /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">18</span>,21p<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>.output_hidden { display: none; @@ -151,54 +102,36 @@ } </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=df0401f4"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>If you put all these snippets together, you will get the following template:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=739cbb4f"> <div class="input"> -<div class="prompt input_prompt">In [4]:</div> +<div class="prompt input_prompt">In [4]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat -n /media/datos/Ejemplos/toggle.tpl +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>cat<span class="w"> </span>-n<span class="w"> </span>/media/datos/Ejemplos/toggle.tpl </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre> 1 {%- extends 'html_full.tpl' -%} +<pre> 1 {%- extends 'html_full.tpl' -%} 2 3 {% block output_group %} - 4 <div class="output_hidden"> + 4 <div class="output_hidden"> 5 {{ super() }} 6 </div> 7 {% endblock output_group %} @@ -206,9 +139,9 @@ 9 {%- block header -%} 10 {{ super() }} 11 - 12 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> + 12 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 13 - 14 <style type="text/css"> + 14 <style type="text/css"> 15 div.output_wrapper { 16 margin-top: 0px; 17 } @@ -220,8 +153,8 @@ 23 24 <script> 25 $(document).ready(function(){ - 26 $(".input").click(function(){ - 27 $(this).next('.output_hidden').slideToggle(); + 26 $(".input").click(function(){ + 27 $(this).next('.output_hidden').slideToggle(); 28 }); 29 }) 30 </script> @@ -229,16 +162,11 @@ 32 </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=a3b39fff"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>To use it, just add <code>--template toggle</code> to your <code>ipython nbconvert</code> call, ie:</p> @@ -249,9 +177,6 @@ <p>To conclude, the possibility to mimic the <strong>IPython</strong> notebook execution is very useful for introductory courses and to publish content in a shorter but more interactive way.</p> <p>Hope you enjoy it!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/my-aikido-shodan-test.es.html b/cache/posts/my-aikido-shodan-test.es.html index 5defd633..0d5f3190 100644 --- a/cache/posts/my-aikido-shodan-test.es.html +++ b/cache/posts/my-aikido-shodan-test.es.html @@ -1,8 +1,8 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Querés saber como se ve un examen de <a href="https://en.wikipedia.org/wiki/Aikido"><strong>Aikido</strong></a> para 1er Dan? Bueno, esta es tu oportunidad! Solo necesitás seguir leyendo un ratito más ;-) -<!-- TEASER_END --></p> +<p>Querés saber como se ve un examen de <a href="https://en.wikipedia.org/wiki/Aikido"><strong>Aikido</strong></a> para 1er Dan? Bueno, esta es tu oportunidad! Solo necesitás seguir leyendo un ratito más ;-)</p> +<!-- TEASER_END --> <p>Tuvimos un <a href="http://cordobaaikikai.com.ar/#!/-seminario-corbal-2018/">seminario</a> de <strong>Aikido</strong> e <strong>Iaido</strong> durante dos días dictado por el <a href="http://asaikido.com.ar/ricardo-corbal-sensei/">Shihan Ricardo Corbal</a>. Ayer, al término de dos clases muy buenas (y llenas de gente) se tomaron exámenes para kyus y danes. Y rendí para el grado de <strong>Shodan</strong> (1er cinturón negro de <strong>Aikido</strong>).</p> <p>Este es final de un largo camino... o realidad, el comienzo!</p> @@ -18,10 +18,8 @@ <li><strong>Daniela</strong>, mi amor, que me aguanta y me ha ayudado en todo este proceso</li> </ul> <p>OK, este es el video, en caso de que quieran ver un poco de acción ;-)</p> -<iframe width="560" height="315" src="https://www.youtube.com/embed/qoaF-I3YznM?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><p>Como he dicho anteriormente, este es solo el <strong>comienzo</strong> de una nueva fase en mi práctica de <strong>Aikido</strong>... y estoy seguro de que la disfrutaré!</p> - +<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/qoaF-I3YznM?rel=0" width="560"></iframe> +<p>Como he dicho anteriormente, este es solo el <strong>comienzo</strong> de una nueva fase en mi práctica de <strong>Aikido</strong>... y estoy seguro de que la disfrutaré!</p> </div> </div> </div> - - diff --git a/cache/posts/my-aikido-shodan-test.html b/cache/posts/my-aikido-shodan-test.html index 1c964fac..62494ec6 100644 --- a/cache/posts/my-aikido-shodan-test.html +++ b/cache/posts/my-aikido-shodan-test.html @@ -3,8 +3,8 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>Do you want to see how an <a href="https://en.wikipedia.org/wiki/Aikido"><strong>Aikido</strong></a> Shodan test looks like? Well, this is your opportunity!! -You just need to keep reading for a little bit ;-) -<!-- TEASER_END --></p> +You just need to keep reading for a little bit ;-)</p> +<!-- TEASER_END --> <p>We had a 2 days <strong>Aikido</strong> and <strong>Iaido</strong> <a href="http://cordobaaikikai.com.ar/#!/-seminario-corbal-2018/">seminar</a> taught by <a href="http://asaikido.com.ar/ricardo-corbal-sensei/">Shihan Ricardo Corbal</a>.</p> <p>Yesterday, after two really nice and crowded classes, we had some kyu and dan tests. And I tested for the <strong>Shodan</strong> degree (1st black belt in <strong>Aikido</strong>).</p> @@ -21,14 +21,12 @@ <li><strong>Sensei José</strong> and <strong>Sensei Eugenio</strong>, who opened me the doors of Kogarashi and re-introduce me in the <strong>Aikido</strong> practice. Those two guys are wonderful human beings and friends</li> <li><strong>Sensei Nico</strong>, who recently joined José and Eugenio to start a new journey called <strong>Córdoba Aikikai</strong> (Sensei, thanks for being my uke in the test!)</li> <li>All the <strong>Córdoba Aikikai community</strong>, a lot of people who are transiting their own paths in <strong>Aikido</strong> helping each other on a daily basis</li> -<li><strong>Shihan Ricardo Corbal</strong>, who kindly provided us with this teachings and took my test (thanks for the post-test tips, I will work hard on those points to make them better) </li> +<li><strong>Shihan Ricardo Corbal</strong>, who kindly provided us with this teachings and took my test (thanks for the post-test tips, I will work hard on those points to make them better)</li> <li><strong>Daniela</strong>, my love, who is really supportive and helped me in all this process</li> </ul> <p>OK, this is video, in case you want to see some action ;-)</p> -<iframe width="560" height="315" src="https://www.youtube.com/embed/qoaF-I3YznM?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><p>As I said before, this is just the <strong>beginning</strong> of a new phase in my <strong>Aikido</strong> practice and I am pretty sure I will enjoy it!</p> - +<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/qoaF-I3YznM?rel=0" width="560"></iframe> +<p>As I said before, this is just the <strong>beginning</strong> of a new phase in my <strong>Aikido</strong> practice and I am pretty sure I will enjoy it!</p> </div> </div> </div> - - diff --git a/cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html b/cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html index 33ceaccd..ea6e5b4a 100644 --- a/cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html +++ b/cache/posts/my-ipython-powered-semi-automatic-git-workflow.es.html @@ -1,449 +1,1458 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=d6fea610"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the last post of this year, so I try to do my best to give you something interesting to think about...</p> <p>In this case, I will show you <em>my git workflow</em>... and you know there are a lot of workflows out there... and probably better than mine, but I just want to share with you the place where I find myself comfortable.</p> <p>And yes... <em>my git workflow</em> is also powered by <strong>IPython</strong> (I am very repetitive when I love a project!). -And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!). -<!-- TEASER_END --></p> +And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!).</p> +<!-- TEASER_END --> <p>Because my workflow have essentially two cycles, in this post, I will show you the general set up of the environment and the first <em>Short</em> cycle, leaving the second <em>Extended</em> cycle (and other details) for other post (after the new year, of course).</p> <p>I will also show you my workflow with a <em>real</em> <strong>PR</strong> (pull-request) to the <strong>IPython</strong> project.</p> <p>Are you ready? Here we go...</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1e8a0138"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Get-everything-ready...">Get everything ready...<a class="anchor-link" href="#Get-everything-ready...">¶</a></h2> +<h2 id="Get-everything-ready...">Get everything ready...<a class="anchor-link" href="#Get-everything-ready...">¶</a></h2> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=14fa3942"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>First, we need to set up the environment to make our work:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f6703a3b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Check the current working directory:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=0bb5b962"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pwd</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pwd</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[1]:</div> - - - - +<div class="prompt output_prompt">Out[1]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>u'/media/datos/Desarrollos'</pre> -</div> - +<pre>u'/media/datos/Desarrollos'</pre> </div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f38df322"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Make a new folder to isolate our work and cd into it:</li> </ul> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=4b043609"> +<div class="input"> +<div class="prompt input_prompt">In [2]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>mkdir<span class="w"> </span>devel_example +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=759faa83"> +<div class="input"> +<div class="prompt input_prompt">In [3]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">cd</span> devel_example/ +</pre></div> +</div> +</div> +</div> +<div class="output_wrapper"> +<div class="output"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>/media/datos/Desarrollos/devel_example +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=87c3fc9e"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<blockquote> +<p><strong>NOTE</strong>: You can avoid these steps opening the notebook in the proper directory, but in this case I want to have the example isolated to not overwrite my current development environment.</p> +</blockquote> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=00a8c31b"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<ul> +<li>Load variables with useful information:</li> +</ul> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=110b7e9d"> +<div class="input"> +<div class="prompt input_prompt">In [4]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">project_name</span> <span class="o">=</span> <span class="s2">"ipython"</span> +<span class="n">project_remote</span> <span class="o">=</span> <span class="s2">"git://github.com/ipython/ipython.git"</span> +<span class="n">project_remote_name</span> <span class="o">=</span> <span class="s2">"origin"</span> +<span class="n">my_fork_remote</span> <span class="o">=</span> <span class="s2">"git@github.com:damianavila/ipython.git"</span> +<span class="n">my_fork_remote_name</span> <span class="o">=</span> <span class="s2">"damianavila"</span> +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1307f16a"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<ul> +<li>Clone the project and connect the local repo with my <strong>Github</strong> fork:</li> +</ul> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=300142a8"> +<div class="input"> +<div class="prompt input_prompt">In [5]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Get a read-only copy of the project</span> +<span class="o">!</span>git<span class="w"> </span>clone<span class="w"> </span><span class="nv">$project_remote</span> + +<span class="c1"># cd into the local project folder</span> +<span class="o">%</span><span class="k">cd</span> $project_name +<span class="c1"># Link the local repo with my Github fork</span> +<span class="o">!</span>git<span class="w"> </span>remote<span class="w"> </span>add<span class="w"> </span><span class="nv">$my_fork_remote_name</span><span class="w"> </span><span class="nv">$my_fork_remote</span> + +<span class="c1"># Check remotes</span> +<span class="o">!</span>git<span class="w"> </span>remote<span class="w"> </span>-v +</pre></div> +</div> +</div> +</div> +<div class="output_wrapper"> +<div class="output"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Clonar en «ipython»... +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>remote: Reusing existing pack: 96757, done. +remote: Counting objects: 82, done. +remote: Compressing objects: 1% (1/82) remote: Compressing objects: 2% (2/82) remote: Compressing objects: 3% (3/82) remote: Compressing objects: 4% (4/82) remote: Compressing objects: 6% (5/82) remote: Compressing objects: 7% (6/82) remote: Compressing objects: 8% (7/82) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>remote: Compressing objects: 9% (8/82) remote: Compressing objects: 10% (9/82) remote: Compressing objects: 12% (10/82) remote: Compressing objects: 13% (11/82) remote: Compressing objects: 14% (12/82) remote: Compressing objects: 15% (13/82) remote: Compressing objects: 17% (14/82) remote: Compressing objects: 18% (15/82) remote: Compressing objects: 19% (16/82) remote: Compressing objects: 20% (17/82) remote: Compressing objects: 21% (18/82) remote: Compressing objects: 23% (19/82) remote: Compressing objects: 24% (20/82) remote: Compressing objects: 25% (21/82) remote: Compressing objects: 26% (22/82) remote: Compressing objects: 28% (23/82) remote: Compressing objects: 29% (24/82) remote: Compressing objects: 30% (25/82) remote: Compressing objects: 31% (26/82) remote: Compressing objects: 32% (27/82) remote: Compressing objects: 34% (28/82) remote: Compressing objects: 35% (29/82) remote: Compressing objects: 36% (30/82) remote: Compressing objects: 37% (31/82) remote: Compressing objects: 39% (32/82) remote: Compressing objects: 40% (33/82) remote: Compressing objects: 41% (34/82) remote: Compressing objects: 42% (35/82) remote: Compressing objects: 43% (36/82) remote: Compressing objects: 45% (37/82) remote: Compressing objects: 46% (38/82) remote: Compressing objects: 47% (39/82) remote: Compressing objects: 48% (40/82) remote: Compressing objects: 50% (41/82) remote: Compressing objects: 51% (42/82) remote: Compressing objects: 52% (43/82) remote: Compressing objects: 53% (44/82) remote: Compressing objects: 54% (45/82) remote: Compressing objects: 56% (46/82) remote: Compressing objects: 57% (47/82) remote: Compressing objects: 58% (48/82) remote: Compressing objects: 59% (49/82) remote: Compressing objects: 60% (50/82) remote: Compressing objects: 62% (51/82) remote: Compressing objects: 63% (52/82) remote: Compressing objects: 64% (53/82) remote: Compressing objects: 65% (54/82) remote: Compressing objects: 67% (55/82) remote: Compressing objects: 68% (56/82) remote: Compressing objects: 69% (57/82) remote: Compressing objects: 70% (58/82) remote: Compressing objects: 71% (59/82) remote: Compressing objects: 73% (60/82) remote: Compressing objects: 74% (61/82) remote: Compressing objects: 75% (62/82) remote: Compressing objects: 76% (63/82) remote: Compressing objects: 78% (64/82) remote: Compressing objects: 79% (65/82) remote: Compressing objects: 80% (66/82) remote: Compressing objects: 81% (67/82) remote: Compressing objects: 82% (68/82) remote: Compressing objects: 84% (69/82) remote: Compressing objects: 85% (70/82) remote: Compressing objects: 86% (71/82) remote: Compressing objects: 87% (72/82) remote: Compressing objects: 89% (73/82) remote: Compressing objects: 90% (74/82) remote: Compressing objects: 91% (75/82) remote: Compressing objects: 92% (76/82) remote: Compressing objects: 93% (77/82) remote: Compressing objects: 95% (78/82) remote: Compressing objects: 96% (79/82) remote: Compressing objects: 97% (80/82) remote: Compressing objects: 98% (81/82) remote: Compressing objects: 100% (82/82) remote: Compressing objects: 100% (82/82), done. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 0% (1/96839) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 0% (838/96839), 180.00 KiB | 163 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 1% (969/96839), 180.00 KiB | 163 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 2% (1937/96839), 356.00 KiB | 220 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 2% (2517/96839), 532.00 KiB | 248 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 3% (2906/96839), 532.00 KiB | 248 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 4% (3874/96839), 724.00 KiB | 271 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 4% (4028/96839), 724.00 KiB | 271 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 5% (4842/96839), 916.00 KiB | 281 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 6% (5811/96839), 1.11 MiB | 302 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 6% (5934/96839), 1.11 MiB | 302 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 7% (6779/96839), 1.36 MiB | 321 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 8% (7748/96839), 1.63 MiB | 338 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 8% (8211/96839), 1.63 MiB | 338 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 9% (8716/96839), 1.63 MiB | 338 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 10% (9684/96839), 1.93 MiB | 388 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 10% (10510/96839), 2.19 MiB | 420 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 11% (10653/96839), 2.19 MiB | 420 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 12% (11621/96839), 2.19 MiB | 420 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 13% (12590/96839), 2.54 MiB | 453 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 14% (13558/96839), 2.54 MiB | 453 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 14% (14032/96839), 2.97 MiB | 508 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 15% (14526/96839), 2.97 MiB | 508 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 16% (15495/96839), 3.47 MiB | 572 KiB/s Receiving objects: 16% (15566/96839), 3.47 MiB | 572 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 17% (16463/96839), 4.04 MiB | 661 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 17% (17318/96839), 4.71 MiB | 756 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 17% (17390/96839), 6.39 MiB | 1.01 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 18% (17432/96839), 7.40 MiB | 1.17 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 18% (17660/96839), 8.42 MiB | 1.33 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 18% (17826/96839), 10.43 MiB | 1.62 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 19% (18400/96839), 11.39 MiB | 1.74 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 20% (19368/96839), 11.39 MiB | 1.74 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 21% (20337/96839), 12.39 MiB | 1.83 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 21% (21161/96839), 12.39 MiB | 1.83 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (21305/96839), 12.39 MiB | 1.83 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (21760/96839), 13.82 MiB | 1.66 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (21963/96839), 13.88 MiB | 1.49 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (22221/96839), 14.14 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 23% (22273/96839), 14.14 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 23% (23228/96839), 14.57 MiB | 820 KiB/s Receiving objects: 24% (23242/96839), 14.57 MiB | 820 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 24% (23563/96839), 15.26 MiB | 562 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24210/96839), 15.64 MiB | 437 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24276/96839), 16.49 MiB | 561 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24281/96839), 16.95 MiB | 641 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24393/96839), 18.11 MiB | 814 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 26% (25179/96839), 18.80 MiB | 923 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 27% (26147/96839), 18.80 MiB | 923 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 28% (27115/96839), 18.80 MiB | 923 KiB/s Receiving objects: 28% (27486/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 29% (28084/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 30% (29052/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 31% (30021/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 32% (30989/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 32% (31754/96839), 20.81 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 33% (31957/96839), 20.81 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 34% (32926/96839), 20.81 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 35% (33894/96839), 21.17 MiB | 1.10 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 36% (34863/96839), 21.17 MiB | 1.10 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 36% (35541/96839), 21.17 MiB | 1.10 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 37% (35831/96839), 21.53 MiB | 1.09 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 38% (36799/96839), 21.53 MiB | 1.09 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 38% (37615/96839), 21.89 MiB | 1.07 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 38% (37632/96839), 22.96 MiB | 941 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 39% (37768/96839), 23.32 MiB | 853 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 39% (38133/96839), 23.32 MiB | 853 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 40% (38736/96839), 23.68 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 40% (39474/96839), 24.04 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 41% (39704/96839), 24.40 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 41% (40563/96839), 24.77 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 42% (40673/96839), 25.13 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 43% (41641/96839), 25.13 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 44% (42610/96839), 25.49 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43578/96839), 25.49 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43720/96839), 25.85 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43735/96839), 26.21 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43740/96839), 27.29 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43748/96839), 27.95 MiB | 716 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43834/96839), 28.38 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 46% (44546/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 47% (45515/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 47% (46175/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 48% (46483/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 49% (47452/96839), 29.46 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 50% (48420/96839), 29.46 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 51% (49388/96839), 29.46 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 52% (50357/96839), 29.82 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 52% (50871/96839), 29.82 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 53% (51325/96839), 30.18 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 54% (52294/96839), 30.18 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 55% (53262/96839), 30.55 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 55% (53762/96839), 30.55 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 56% (54230/96839), 30.55 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 57% (55199/96839), 30.90 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 58% (56167/96839), 31.27 MiB | 747 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 58% (56357/96839), 31.27 MiB | 747 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 59% (57136/96839), 31.27 MiB | 747 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 60% (58104/96839), 31.98 MiB | 765 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 61% (59072/96839), 31.98 MiB | 765 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 61% (59097/96839), 31.98 MiB | 765 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 62% (60041/96839), 32.34 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 63% (61009/96839), 32.70 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 63% (61187/96839), 32.70 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 63% (61364/96839), 33.42 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 64% (61977/96839), 33.78 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 65% (62946/96839), 34.14 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 66% (63914/96839), 34.14 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 66% (64202/96839), 34.14 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 67% (64883/96839), 34.50 MiB | 729 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 68% (65851/96839), 34.86 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 68% (66395/96839), 34.86 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 69% (66819/96839), 34.86 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 70% (67788/96839), 35.22 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 71% (68756/96839), 35.22 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 72% (69725/96839), 35.58 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 72% (70455/96839), 35.58 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 73% (70693/96839), 35.58 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 74% (71661/96839), 35.94 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 75% (72630/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 76% (73598/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 76% (73882/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 77% (74567/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 78% (75535/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 79% (76503/96839), 36.66 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 79% (77171/96839), 36.86 MiB | 486 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 80% (77472/96839), 36.86 MiB | 486 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 80% (77519/96839), 37.43 MiB | 519 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 81% (78440/96839), 37.43 MiB | 519 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 82% (79408/96839), 37.43 MiB | 519 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 83% (80377/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 84% (81345/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 85% (82314/96839), 38.00 MiB | 553 KiB/s Receiving objects: 86% (83282/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 86% (84039/96839), 38.00 MiB | 553 KiB/s Receiving objects: 87% (84250/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 88% (85219/96839), 38.46 MiB | 567 KiB/s Receiving objects: 89% (86187/96839), 38.46 MiB | 567 KiB/s Receiving objects: 90% (87156/96839), 38.46 MiB | 567 KiB/s Receiving objects: 91% (88124/96839), 38.46 MiB | 567 KiB/s Receiving objects: 92% (89092/96839), 38.46 MiB | 567 KiB/s Receiving objects: 93% (90061/96839), 38.46 MiB | 567 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 94% (91029/96839), 38.46 MiB | 567 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 95% (91998/96839), 38.46 MiB | 567 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 95% (92335/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 96% (92966/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 97% (93934/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 98% (94903/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 99% (95871/96839), 40.57 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 99% (96648/96839), 40.57 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>remote: Total 96839 (delta 5), reused 31 (delta 0) +Receiving objects: 100% (96839/96839), 40.57 MiB | 726 KiB/s Receiving objects: 100% (96839/96839), 40.92 MiB | 726 KiB/s, done. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 0% (0/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 1% (733/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 2% (1419/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 3% (2142/70554) Resolving deltas: 4% (2826/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 5% (3633/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 6% (4249/70554) Resolving deltas: 7% (4953/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 8% (5645/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 9% (6351/70554) Resolving deltas: 10% (7096/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 11% (7763/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 12% (8467/70554) Resolving deltas: 13% (9176/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 14% (9882/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 15% (10603/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 16% (11402/70554) Resolving deltas: 17% (11998/70554) Resolving deltas: 18% (12712/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 19% (13471/70554) Resolving deltas: 20% (14138/70554) Resolving deltas: 21% (14871/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 22% (15647/70554) Resolving deltas: 23% (16228/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 24% (16960/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 25% (17667/70554) Resolving deltas: 26% (18345/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 27% (19052/70554) Resolving deltas: 28% (19812/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 29% (20501/70554) Resolving deltas: 30% (21176/70554) Resolving deltas: 31% (21987/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 32% (22580/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 33% (23294/70554) Resolving deltas: 33% (23382/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 34% (24000/70554) Resolving deltas: 35% (24710/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 36% (25401/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 37% (26164/70554) Resolving deltas: 38% (26850/70554) Resolving deltas: 39% (27534/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 40% (28335/70554) Resolving deltas: 41% (28930/70554) Resolving deltas: 42% (29658/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 43% (30413/70554) </pre> +</div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 44% (31135/70554) Resolving deltas: 45% (31771/70554) </pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [2]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>mkdir devel_example -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 46% (32606/70554) Resolving deltas: 47% (33161/70554) Resolving deltas: 48% (33900/70554) Resolving deltas: 49% (34606/70554) </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 50% (35584/70554) Resolving deltas: 51% (35995/70554) Resolving deltas: 52% (36722/70554) Resolving deltas: 53% (37424/70554) </pre> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [3]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">cd</span> devel_example/ -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 54% (38114/70554) Resolving deltas: 55% (38818/70554) </pre> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - -<div class="output_wrapper"> -<div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>/media/datos/Desarrollos/devel_example -</pre> +<pre>Resolving deltas: 56% (39520/70554) Resolving deltas: 57% (40365/70554) Resolving deltas: 58% (40989/70554) Resolving deltas: 59% (41627/70554) Resolving deltas: 60% (42338/70554) Resolving deltas: 61% (43121/70554) </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 62% (43760/70554) Resolving deltas: 63% (44511/70554) Resolving deltas: 64% (45200/70554) Resolving deltas: 65% (45893/70554) Resolving deltas: 66% (46639/70554) Resolving deltas: 67% (47309/70554) Resolving deltas: 68% (47977/70554) </pre> </div> </div> - - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 69% (48719/70554) Resolving deltas: 70% (49705/70554) Resolving deltas: 71% (50186/70554) Resolving deltas: 72% (50856/70554) Resolving deltas: 73% (51523/70554) </pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>NOTE</strong>: You can avoid these steps opening the notebook in the proper directory, but in this case I want to have the example isolated to not overwrite my current development environment.</p> -</blockquote> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 74% (52218/70554) Resolving deltas: 75% (52926/70554) Resolving deltas: 76% (53639/70554) Resolving deltas: 77% (54331/70554) </pre> </div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 78% (55034/70554) Resolving deltas: 79% (55856/70554) Resolving deltas: 80% (56467/70554) Resolving deltas: 81% (57261/70554) Resolving deltas: 82% (57856/70554) </pre> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<ul> -<li>Load variables with useful information:</li> -</ul> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 83% (58565/70554) Resolving deltas: 84% (59374/70554) Resolving deltas: 85% (60114/70554) Resolving deltas: 85% (60197/70554) Resolving deltas: 86% (60690/70554) </pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [4]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">project_name</span> <span class="o">=</span> <span class="s2">"ipython"</span> -<span class="n">project_remote</span> <span class="o">=</span> <span class="s2">"git://github.com/ipython/ipython.git"</span> -<span class="n">project_remote_name</span> <span class="o">=</span> <span class="s2">"origin"</span> -<span class="n">my_fork_remote</span> <span class="o">=</span> <span class="s2">"git@github.com:damianavila/ipython.git"</span> -<span class="n">my_fork_remote_name</span> <span class="o">=</span> <span class="s2">"damianavila"</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 87% (61405/70554) Resolving deltas: 88% (62100/70554) Resolving deltas: 89% (62803/70554) Resolving deltas: 90% (63504/70554) Resolving deltas: 91% (64205/70554) Resolving deltas: 92% (64928/70554) Resolving deltas: 93% (65618/70554) </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 94% (66606/70554) Resolving deltas: 95% (67108/70554) Resolving deltas: 96% (67737/70554) Resolving deltas: 97% (68654/70554) Resolving deltas: 98% (69148/70554) Resolving deltas: 99% (69958/70554) </pre> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<ul> -<li>Clone the project and connect the local repo with my <strong>Github</strong> fork:</li> -</ul> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 100% (70554/70554) Resolving deltas: 100% (70554/70554), done. +</pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [5]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Get a read-only copy of the project</span> -<span class="o">!</span>git clone <span class="nv">$project_remote</span> - -<span class="c1"># cd into the local project folder</span> -<span class="o">%</span><span class="k">cd</span> $project_name - -<span class="c1"># Link the local repo with my Github fork</span> -<span class="o">!</span>git remote add <span class="nv">$my_fork_remote_name</span> <span class="nv">$my_fork_remote</span> - -<span class="c1"># Check remotes</span> -<span class="o">!</span>git remote -v -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>/media/datos/Desarrollos/devel_example/ipython +</pre> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - -<div class="output_wrapper"> -<div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Clonar en «ipython»... -remote: Reusing existing pack: 96757, done. -remote: Counting objects: 82, done. -remote: Compressing objects: 100% (82/82), done. -remote: Total 96839 (delta 5), reused 31 (delta 0) -Receiving objects: 100% (96839/96839), 40.92 MiB | 726 KiB/s, done. -Resolving deltas: 100% (70554/70554), done. -/media/datos/Desarrollos/devel_example/ipython -damianavila git@github.com:damianavila/ipython.git (fetch) +<pre>damianavila git@github.com:damianavila/ipython.git (fetch) damianavila git@github.com:damianavila/ipython.git (push) origin git://github.com/ipython/ipython.git (fetch) origin git://github.com/ipython/ipython.git (push) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=576910d8"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>NOTE</strong>: A lot of <em>git workflows</em> use <code>origin</code> to point to our fork and <code>upstream</code> to point to the project repo. But <em>I do not like</em> that configuration. It seems more natural to me to clone the project repo (the <code>origin</code> repo) and add a connection to my fork called <code>damianavila</code>... and the next steps take into consideration this last approach.</p> +<blockquote> +<p><strong>NOTE</strong>: A lot of <em>git workflows</em> use <code>origin</code> to point to our fork and <code>upstream</code> to point to the project repo. But <em>I do not like</em> that configuration. It seems more natural to me to clone the project repo (the <code>origin</code> repo) and add a connection to my fork called <code>damianavila</code>... and the next steps take into consideration this last approach.</p> </blockquote> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=f7046b23"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶</a></h2> +<h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶</a></h2> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=743e7452"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This short cycle just create a new <em>branch</em> to work on, make the needed changes in the source code and upload the local changes to our <strong>Github</strong> fork to finally submit a <em>pull-request</em>:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=a13dfe2d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Set up the <code>master</code> and <code>development</code> branch names:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=d9593aeb"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">master_branch</span> <span class="o">=</span> <span class="s2">"master"</span> -<span class="n">feature_branch</span> <span class="o">=</span> <span class="s2">"doc_post_serve"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">master_branch</span> <span class="o">=</span> <span class="s2">"master"</span> +<span class="n">feature_branch</span> <span class="o">=</span> <span class="s2">"doc_post_serve"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=30ec77b6"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Create a new branch from <code>master</code>:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=3c4a1494"> <div class="input"> -<div class="prompt input_prompt">In [7]:</div> +<div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Make sure we are in master branch</span> -<span class="o">!</span>git checkout <span class="nv">$master_branch</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Make sure we are in master branch</span> +<span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span><span class="nv">$master_branch</span> <span class="c1"># Pull the changes from origin/master</span> -<span class="o">!</span>git pull <span class="nv">$project_remote_name</span> +<span class="o">!</span>git<span class="w"> </span>pull<span class="w"> </span><span class="nv">$project_remote_name</span> <span class="c1"># Start a new branch to work on</span> -<span class="o">!</span>git checkout -b <span class="nv">$feature_branch</span> +<span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>-b<span class="w"> </span><span class="nv">$feature_branch</span> <span class="c1"># Check where we are</span> -<span class="o">!</span>git status +<span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Ya está en «master» -Already up-to-date. -Switched to a new branch 'doc_post_serve' -# En la rama doc_post_serve -nothing to commit, working directory clean </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> </div> </div> - - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Switched to a new branch 'doc_post_serve' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre># En la rama doc_post_serve +nothing to commit, working directory clean +</pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=4af9a8e1"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Make the changes you want to do:</li> </ul> -<blockquote><p><strong>NOTE</strong>: In this example, I will update the <strong>IPython</strong> docs about some details using the <strong>IPython slides</strong> and the <code>post-serve</code> post-processor (<code>IPython.nbconvert</code>).</p> +<blockquote> +<p><strong>NOTE</strong>: In this example, I will update the <strong>IPython</strong> docs about some details using the <strong>IPython slides</strong> and the <code>post-serve</code> post-processor (<code>IPython.nbconvert</code>).</p> </blockquote> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=f0d421ca"> <div class="input"> -<div class="prompt input_prompt">In [9]:</div> +<div class="prompt input_prompt">In [9]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># list the files structure to find the needed files</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># list the files structure to find the needed files</span> <span class="o">%</span><span class="k">ls</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>CONTRIBUTING.md <span class="ansi-blue-intense-fg ansi-bold">examples</span>/ MANIFEST.in setupbase.py <span class="ansi-green-intense-fg ansi-bold">setup.py</span>* COPYING.txt <span class="ansi-blue-intense-fg ansi-bold">git-hooks</span>/ README.rst <span class="ansi-green-intense-fg ansi-bold">setupegg.py</span>* <span class="ansi-blue-intense-fg ansi-bold">tools</span>/ <span class="ansi-blue-intense-fg ansi-bold">docs</span>/ <span class="ansi-blue-intense-fg ansi-bold">IPython</span>/ <span class="ansi-blue-intense-fg ansi-bold">scripts</span>/ <span class="ansi-blue-intense-fg ansi-bold">setupext</span>/ tox.ini </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=b885396f"> <div class="input"> -<div class="prompt input_prompt">In [10]:</div> +<div class="prompt input_prompt">In [10]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">load</span> docs/source/interactive/nbconvert.rst +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">load</span> docs/source/interactive/nbconvert.rst <span class="c1"># After executing %load, a new cell containing the source code will be added.</span> <span class="c1"># Be sure to add the next line (with the proper path) to overwrite the file</span> <span class="c1"># with you changes.</span> <span class="c1">#</span> <span class="c1"># %%writefile docs/source/interactive/nbconvert.rst</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=16b51d1d"> <div class="input"> -<div class="prompt input_prompt">In [11]:</div> +<div class="prompt input_prompt">In [11]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%%writefile</span> docs/source/interactive/nbconvert.rst +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%%writefile</span> docs/source/interactive/nbconvert.rst <span class="o">..</span> <span class="n">_nbconvert</span><span class="p">:</span> <span class="n">Converting</span> <span class="n">notebooks</span> <span class="n">to</span> <span class="n">other</span> <span class="n">formats</span> @@ -494,11 +1503,11 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="o">-</span> <span class="err">``</span><span class="o">--</span><span class="n">template</span> <span class="n">article</span><span class="err">``</span> <span class="p">(</span><span class="n">default</span><span class="p">)</span> - <span class="n">Latex</span> <span class="n">article</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s howto template.</span> + <span class="n">Latex</span> <span class="n">article</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s howto template.</span> <span class="o">-</span> <span class="err">``</span><span class="o">--</span><span class="n">template</span> <span class="n">book</span><span class="err">``</span> - <span class="n">Latex</span> <span class="n">book</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s manual template.</span> + <span class="n">Latex</span> <span class="n">book</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s manual template.</span> <span class="o">-</span> <span class="err">``</span><span class="o">--</span><span class="n">template</span> <span class="n">basic</span><span class="err">``</span> @@ -561,7 +1570,7 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="ow">or</span> <span class="n">via</span> <span class="n">a</span> <span class="nb">list</span> <span class="ow">in</span> <span class="n">a</span> <span class="n">configuration</span> <span class="n">file</span><span class="p">,</span> <span class="n">say</span> <span class="err">``</span><span class="n">mycfg</span><span class="o">.</span><span class="n">py</span><span class="err">``</span><span class="p">,</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">text</span><span class="p">::</span> <span class="n">c</span> <span class="o">=</span> <span class="n">get_config</span><span class="p">()</span> - <span class="n">c</span><span class="o">.</span><span class="n">NbConvertApp</span><span class="o">.</span><span class="n">notebooks</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"notebook1.ipynb"</span><span class="p">,</span> <span class="s2">"notebook2.ipynb"</span><span class="p">]</span> + <span class="n">c</span><span class="o">.</span><span class="n">NbConvertApp</span><span class="o">.</span><span class="n">notebooks</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"notebook1.ipynb"</span><span class="p">,</span> <span class="s2">"notebook2.ipynb"</span><span class="p">]</span> <span class="ow">and</span> <span class="n">using</span> <span class="n">the</span> <span class="n">command</span><span class="p">::</span> @@ -617,43 +1626,43 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="n">As</span> <span class="n">an</span> <span class="n">example</span><span class="p">,</span> <span class="n">consider</span> <span class="n">a</span> <span class="n">simple</span> <span class="n">notebook</span> <span class="n">called</span> <span class="err">``</span><span class="n">simple</span><span class="o">.</span><span class="n">ipynb</span><span class="err">``</span> <span class="n">which</span> <span class="n">contains</span> <span class="n">one</span> <span class="n">Markdown</span> <span class="n">cell</span><span class="p">,</span> <span class="k">with</span> <span class="n">the</span> <span class="n">content</span> <span class="err">``</span><span class="n">The</span> <span class="n">simplest</span> <span class="n">notebook</span><span class="o">.</span><span class="err">``</span><span class="p">,</span> <span class="n">one</span> -<span class="n">code</span> <span class="nb">input</span> <span class="n">cell</span> <span class="k">with</span> <span class="n">the</span> <span class="n">content</span> <span class="err">``</span><span class="nb">print</span> <span class="s2">"Hello, IPython!"</span><span class="err">``</span><span class="p">,</span> <span class="ow">and</span> <span class="n">the</span> +<span class="n">code</span> <span class="nb">input</span> <span class="n">cell</span> <span class="k">with</span> <span class="n">the</span> <span class="n">content</span> <span class="err">``</span><span class="nb">print</span> <span class="s2">"Hello, IPython!"</span><span class="err">``</span><span class="p">,</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">corresponding</span> <span class="n">output</span><span class="o">.</span> <span class="n">The</span> <span class="n">contents</span> <span class="n">of</span> <span class="n">the</span> <span class="n">notebook</span> <span class="n">document</span> <span class="err">``</span><span class="n">simple</span><span class="o">.</span><span class="n">ipynb</span><span class="err">``</span> <span class="ow">is</span> <span class="n">the</span> <span class="n">following</span> <span class="n">JSON</span> <span class="n">container</span><span class="p">::</span> <span class="p">{</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{</span> - <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"simple"</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"simple"</span> <span class="p">},</span> - <span class="s2">"nbformat"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> - <span class="s2">"nbformat_minor"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> - <span class="s2">"worksheets"</span><span class="p">:</span> <span class="p">[</span> + <span class="s2">"nbformat"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> + <span class="s2">"nbformat_minor"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> + <span class="s2">"worksheets"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> - <span class="s2">"cells"</span><span class="p">:</span> <span class="p">[</span> + <span class="s2">"cells"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> - <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"markdown"</span><span class="p">,</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> - <span class="s2">"source"</span><span class="p">:</span> <span class="s2">"The simplest notebook."</span> + <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"markdown"</span><span class="p">,</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> + <span class="s2">"source"</span><span class="p">:</span> <span class="s2">"The simplest notebook."</span> <span class="p">},</span> <span class="p">{</span> - <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"code"</span><span class="p">,</span> - <span class="s2">"collapsed"</span><span class="p">:</span> <span class="n">false</span><span class="p">,</span> - <span class="s2">"input"</span><span class="p">:</span> <span class="s2">"print </span><span class="se">\"</span><span class="s2">Hello, IPython</span><span class="se">\"</span><span class="s2">"</span><span class="p">,</span> - <span class="s2">"language"</span><span class="p">:</span> <span class="s2">"python"</span><span class="p">,</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> - <span class="s2">"outputs"</span><span class="p">:</span> <span class="p">[</span> + <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"code"</span><span class="p">,</span> + <span class="s2">"collapsed"</span><span class="p">:</span> <span class="n">false</span><span class="p">,</span> + <span class="s2">"input"</span><span class="p">:</span> <span class="s2">"print </span><span class="se">\"</span><span class="s2">Hello, IPython</span><span class="se">\"</span><span class="s2">"</span><span class="p">,</span> + <span class="s2">"language"</span><span class="p">:</span> <span class="s2">"python"</span><span class="p">,</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> + <span class="s2">"outputs"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> - <span class="s2">"output_type"</span><span class="p">:</span> <span class="s2">"stream"</span><span class="p">,</span> - <span class="s2">"stream"</span><span class="p">:</span> <span class="s2">"stdout"</span><span class="p">,</span> - <span class="s2">"text"</span><span class="p">:</span> <span class="s2">"Hello, IPython</span><span class="se">\n</span><span class="s2">"</span> + <span class="s2">"output_type"</span><span class="p">:</span> <span class="s2">"stream"</span><span class="p">,</span> + <span class="s2">"stream"</span><span class="p">:</span> <span class="s2">"stdout"</span><span class="p">,</span> + <span class="s2">"text"</span><span class="p">:</span> <span class="s2">"Hello, IPython</span><span class="se">\n</span><span class="s2">"</span> <span class="p">}</span> <span class="p">],</span> - <span class="s2">"prompt_number"</span><span class="p">:</span> <span class="mi">1</span> + <span class="s2">"prompt_number"</span><span class="p">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">],</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{}</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{}</span> <span class="p">}</span> <span class="p">]</span> <span class="p">}</span> @@ -670,80 +1679,50 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="c1"># <codecell></span> - <span class="nb">print</span> <span class="s2">"Hello, IPython"</span> + <span class="nb">print</span> <span class="s2">"Hello, IPython"</span> <span class="n">Note</span> <span class="n">that</span> <span class="n">indeed</span> <span class="n">the</span> <span class="n">output</span> <span class="n">of</span> <span class="n">the</span> <span class="n">code</span> <span class="n">cell</span><span class="p">,</span> <span class="n">which</span> <span class="ow">is</span> <span class="n">present</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">JSON</span> <span class="n">container</span><span class="p">,</span> <span class="n">has</span> <span class="n">been</span> <span class="n">removed</span> <span class="ow">in</span> <span class="n">the</span> <span class="err">``</span><span class="o">.</span><span class="n">py</span><span class="err">``</span> <span class="n">script</span><span class="o">.</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Overwriting docs/source/interactive/nbconvert.rst </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=89a9938b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Check the status and diff of your modifications:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=c29851e4"> <div class="input"> -<div class="prompt input_prompt">In [12]:</div> +<div class="prompt input_prompt">In [12]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Check status</span> -<span class="o">!</span>git status +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Check status</span> +<span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre># En la rama doc_post_serve # Cambios no preparados para el commit: @@ -755,42 +1734,25 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ no hay cambios agregados al commit (use «git add» o «git commit -a») </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=8f876664"> <div class="input"> -<div class="prompt input_prompt">In [13]:</div> +<div class="prompt input_prompt">In [13]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># See the diff</span> -<span class="o">!</span>git diff +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># See the diff</span> +<span class="o">!</span>git<span class="w"> </span>diff </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>diff --git a/docs/source/interactive/nbconvert.rst b/docs/source/interactive/nbconvert.rst index 1789a62..610edf0 100644 @@ -818,148 +1780,145 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ - </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=ecf5bdcf"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Add the changes an commit them:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=49c029cc"> <div class="input"> -<div class="prompt input_prompt">In [14]:</div> +<div class="prompt input_prompt">In [14]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Add the modified files to the stage</span> -<span class="o">!</span>git add . +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Add the modified files to the stage</span> +<span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>. </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=ce8c3f7b"> <div class="input"> -<div class="prompt input_prompt">In [15]:</div> +<div class="prompt input_prompt">In [15]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># And do your commit</span> -<span class="o">!</span>git commit -am <span class="s2">"Added --post-serve explanation into the nbconvert docs."</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># And do your commit</span> +<span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-am<span class="w"> </span><span class="s2">"Added --post-serve explanation into the nbconvert docs."</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[doc_post_serve c87ac2f] Added --post-serve explanation into the nbconvert docs. 1 file changed, 6 insertions(+), 3 deletions(-) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=99d250c7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> -<li>Finally, push your local development branch to your <strong>Github</strong> fork: </li> +<li>Finally, push your local development branch to your <strong>Github</strong> fork:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=426d91d0"> <div class="input"> -<div class="prompt input_prompt">In [16]:</div> +<div class="prompt input_prompt">In [16]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Push updates from your local branch to your github branch</span> -<span class="o">!</span>git push <span class="nv">$my_fork_remote_name</span> <span class="nv">$feature_branch</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Push updates from your local branch to your github branch</span> +<span class="o">!</span>git<span class="w"> </span>push<span class="w"> </span><span class="nv">$my_fork_remote_name</span><span class="w"> </span><span class="nv">$feature_branch</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Counting objects: 8732, done. -Delta compression using up to 4 threads. -Compressing objects: 100% (2767/2767), done. -Writing objects: 100% (7842/7842), 1.44 MiB, done. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Delta compression using up to 4 threads. +Compressing objects: 0% (1/2767) Compressing objects: 1% (28/2767) Compressing objects: 2% (56/2767) Compressing objects: 3% (84/2767) Compressing objects: 4% (111/2767) Compressing objects: 5% (139/2767) Compressing objects: 6% (167/2767) Compressing objects: 7% (194/2767) Compressing objects: 8% (222/2767) Compressing objects: 9% (250/2767) Compressing objects: 10% (277/2767) Compressing objects: 11% (305/2767) Compressing objects: 12% (333/2767) Compressing objects: 13% (360/2767) Compressing objects: 14% (388/2767) Compressing objects: 15% (416/2767) Compressing objects: 16% (443/2767) Compressing objects: 17% (471/2767) Compressing objects: 18% (499/2767) Compressing objects: 19% (526/2767) Compressing objects: 20% (554/2767) Compressing objects: 21% (582/2767) Compressing objects: 22% (609/2767) Compressing objects: 23% (637/2767) Compressing objects: 24% (665/2767) Compressing objects: 25% (692/2767) Compressing objects: 26% (720/2767) Compressing objects: 27% (748/2767) Compressing objects: 28% (775/2767) Compressing objects: 29% (803/2767) Compressing objects: 30% (831/2767) Compressing objects: 31% (858/2767) Compressing objects: 32% (886/2767) Compressing objects: 33% (914/2767) Compressing objects: 34% (941/2767) Compressing objects: 35% (969/2767) Compressing objects: 36% (997/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 37% (1024/2767) Compressing objects: 38% (1052/2767) Compressing objects: 39% (1080/2767) Compressing objects: 40% (1107/2767) Compressing objects: 41% (1135/2767) Compressing objects: 42% (1163/2767) Compressing objects: 43% (1190/2767) Compressing objects: 44% (1218/2767) Compressing objects: 45% (1246/2767) Compressing objects: 46% (1273/2767) Compressing objects: 47% (1301/2767) Compressing objects: 48% (1329/2767) Compressing objects: 49% (1356/2767) Compressing objects: 50% (1384/2767) Compressing objects: 51% (1412/2767) Compressing objects: 52% (1439/2767) Compressing objects: 53% (1467/2767) Compressing objects: 54% (1495/2767) Compressing objects: 55% (1522/2767) Compressing objects: 56% (1550/2767) Compressing objects: 57% (1578/2767) Compressing objects: 58% (1605/2767) Compressing objects: 59% (1633/2767) Compressing objects: 60% (1661/2767) Compressing objects: 61% (1688/2767) Compressing objects: 62% (1716/2767) Compressing objects: 63% (1744/2767) Compressing objects: 64% (1771/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 65% (1799/2767) Compressing objects: 66% (1827/2767) Compressing objects: 67% (1854/2767) Compressing objects: 68% (1882/2767) Compressing objects: 69% (1910/2767) Compressing objects: 70% (1937/2767) Compressing objects: 71% (1965/2767) Compressing objects: 72% (1993/2767) Compressing objects: 73% (2020/2767) Compressing objects: 74% (2048/2767) Compressing objects: 75% (2076/2767) Compressing objects: 76% (2103/2767) Compressing objects: 77% (2131/2767) Compressing objects: 78% (2159/2767) Compressing objects: 79% (2186/2767) Compressing objects: 80% (2214/2767) Compressing objects: 81% (2242/2767) Compressing objects: 82% (2269/2767) Compressing objects: 83% (2297/2767) Compressing objects: 84% (2325/2767) Compressing objects: 85% (2352/2767) Compressing objects: 86% (2380/2767) Compressing objects: 87% (2408/2767) Compressing objects: 88% (2435/2767) Compressing objects: 89% (2463/2767) Compressing objects: 90% (2491/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 91% (2518/2767) Compressing objects: 92% (2546/2767) Compressing objects: 93% (2574/2767) Compressing objects: 94% (2601/2767) Compressing objects: 95% (2629/2767) Compressing objects: 96% (2657/2767) Compressing objects: 97% (2684/2767) Compressing objects: 98% (2712/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 99% (2740/2767) Compressing objects: 100% (2767/2767) Compressing objects: 100% (2767/2767), done. +Writing objects: 0% (1/7842) Writing objects: 1% (79/7842) Writing objects: 2% (157/7842) Writing objects: 3% (236/7842) Writing objects: 4% (314/7842) Writing objects: 5% (393/7842) Writing objects: 6% (471/7842) Writing objects: 7% (549/7842) Writing objects: 8% (628/7842) Writing objects: 9% (706/7842) Writing objects: 10% (785/7842) Writing objects: 11% (863/7842) Writing objects: 12% (942/7842) Writing objects: 13% (1020/7842) Writing objects: 14% (1099/7842) Writing objects: 15% (1177/7842) Writing objects: 16% (1255/7842) Writing objects: 17% (1335/7842) Writing objects: 18% (1415/7842) Writing objects: 19% (1496/7842) Writing objects: 20% (1570/7842) Writing objects: 21% (1647/7842) Writing objects: 22% (1727/7842) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Writing objects: 23% (1804/7842) Writing objects: 24% (1883/7842) Writing objects: 25% (1961/7842) Writing objects: 26% (2041/7842) Writing objects: 27% (2119/7842) Writing objects: 28% (2198/7842) Writing objects: 29% (2275/7842) Writing objects: 30% (2358/7842) Writing objects: 31% (2439/7842) Writing objects: 32% (2510/7842) Writing objects: 33% (2588/7842) Writing objects: 34% (2669/7842) Writing objects: 35% (2745/7842) Writing objects: 36% (2825/7842) Writing objects: 37% (2902/7842) Writing objects: 38% (2980/7842) Writing objects: 39% (3059/7842) Writing objects: 40% (3137/7842) Writing objects: 41% (3216/7842) Writing objects: 42% (3294/7842) Writing objects: 43% (3373/7842) Writing objects: 44% (3451/7842) Writing objects: 45% (3529/7842) Writing objects: 46% (3608/7842) Writing objects: 47% (3686/7842) Writing objects: 48% (3765/7842) Writing objects: 49% (3843/7842) Writing objects: 50% (3921/7842) Writing objects: 51% (4000/7842) Writing objects: 52% (4079/7842) Writing objects: 53% (4159/7842) Writing objects: 54% (4235/7842) Writing objects: 55% (4314/7842) Writing objects: 56% (4392/7842) Writing objects: 57% (4470/7842) Writing objects: 58% (4549/7842) Writing objects: 59% (4627/7842) Writing objects: 60% (4706/7842) Writing objects: 61% (4785/7842) Writing objects: 62% (4863/7842) Writing objects: 63% (4942/7842) Writing objects: 64% (5019/7842) Writing objects: 65% (5098/7842) Writing objects: 66% (5176/7842) Writing objects: 67% (5255/7842) Writing objects: 68% (5333/7842) Writing objects: 69% (5411/7842) Writing objects: 70% (5490/7842) Writing objects: 71% (5568/7842) Writing objects: 72% (5647/7842) Writing objects: 73% (5725/7842) Writing objects: 74% (5804/7842) Writing objects: 75% (5888/7842) Writing objects: 76% (5960/7842) Writing objects: 77% (6039/7842) Writing objects: 78% (6117/7842) Writing objects: 79% (6196/7842) Writing objects: 80% (6274/7842) Writing objects: 81% (6353/7842) Writing objects: 82% (6431/7842) Writing objects: 83% (6509/7842) Writing objects: 84% (6588/7842) Writing objects: 85% (6666/7842) Writing objects: 86% (6745/7842) Writing objects: 87% (6823/7842) Writing objects: 88% (6903/7842) Writing objects: 89% (6980/7842) Writing objects: 90% (7058/7842) Writing objects: 91% (7138/7842) Writing objects: 92% (7215/7842) Writing objects: 93% (7294/7842) Writing objects: 94% (7373/7842) Writing objects: 95% (7450/7842) Writing objects: 96% (7529/7842) Writing objects: 97% (7607/7842) Writing objects: 98% (7686/7842) Writing objects: 99% (7764/7842) Writing objects: 100% (7842/7842) Writing objects: 100% (7842/7842), 1.44 MiB, done. Total 7842 (delta 5520), reused 7275 (delta 4971) -To git@github.com:damianavila/ipython.git - * [new branch] doc_post_serve -> doc_post_serve </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>To git@github.com:damianavila/ipython.git + * [new branch] doc_post_serve -> doc_post_serve +</pre> </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c7fbd4d1"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>NOTE</strong>: The merging of your <strong>Github</strong> development branch into the master is done via <em>pull-request</em> on the <strong>Github</strong> website. For reference, you can see the proposed <strong>PR</strong> here: <a href="https://github.com/ipython/ipython/pull/4751">https://github.com/ipython/ipython/pull/4751</a></p> +<blockquote> +<p><strong>NOTE</strong>: The merging of your <strong>Github</strong> development branch into the master is done via <em>pull-request</em> on the <strong>Github</strong> website. For reference, you can see the proposed <strong>PR</strong> here: <a href="https://github.com/ipython/ipython/pull/4751">https://github.com/ipython/ipython/pull/4751</a></p> </blockquote> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9781808d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you can see, this workflow is very <em>simple</em>... and with the aid of this <strong>ipytmpl</strong> is easier than <em>before</em> (before = making the same but in your traditional console).</p> @@ -970,9 +1929,6 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <p>Have a nice <strong>New Year</strong>! And I see you in 2014 ;-)</p> <p>Cheers.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/my-ipython-powered-semi-automatic-git-workflow.html b/cache/posts/my-ipython-powered-semi-automatic-git-workflow.html index 33ceaccd..e2339e04 100644 --- a/cache/posts/my-ipython-powered-semi-automatic-git-workflow.html +++ b/cache/posts/my-ipython-powered-semi-automatic-git-workflow.html @@ -1,449 +1,1458 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=93e7b089"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the last post of this year, so I try to do my best to give you something interesting to think about...</p> <p>In this case, I will show you <em>my git workflow</em>... and you know there are a lot of workflows out there... and probably better than mine, but I just want to share with you the place where I find myself comfortable.</p> <p>And yes... <em>my git workflow</em> is also powered by <strong>IPython</strong> (I am very repetitive when I love a project!). -And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!). -<!-- TEASER_END --></p> +And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!).</p> +<!-- TEASER_END --> <p>Because my workflow have essentially two cycles, in this post, I will show you the general set up of the environment and the first <em>Short</em> cycle, leaving the second <em>Extended</em> cycle (and other details) for other post (after the new year, of course).</p> <p>I will also show you my workflow with a <em>real</em> <strong>PR</strong> (pull-request) to the <strong>IPython</strong> project.</p> <p>Are you ready? Here we go...</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1376ddad"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Get-everything-ready...">Get everything ready...<a class="anchor-link" href="#Get-everything-ready...">¶</a></h2> +<h2 id="Get-everything-ready...">Get everything ready...<a class="anchor-link" href="#Get-everything-ready...">¶</a></h2> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=8259e887"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>First, we need to set up the environment to make our work:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=82d58ec6"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Check the current working directory:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=b57d648c"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pwd</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">pwd</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt output_prompt">Out[1]:</div> - - - - +<div class="prompt output_prompt">Out[1]:</div> <div class="output_text output_subarea output_execute_result"> -<pre>u'/media/datos/Desarrollos'</pre> -</div> - +<pre>u'/media/datos/Desarrollos'</pre> </div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=90df7556"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Make a new folder to isolate our work and cd into it:</li> </ul> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=c4618a51"> +<div class="input"> +<div class="prompt input_prompt">In [2]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>mkdir<span class="w"> </span>devel_example +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=c4a29fa9"> +<div class="input"> +<div class="prompt input_prompt">In [3]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">cd</span> devel_example/ +</pre></div> +</div> +</div> +</div> +<div class="output_wrapper"> +<div class="output"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>/media/datos/Desarrollos/devel_example +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=810f9ac6"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<blockquote> +<p><strong>NOTE</strong>: You can avoid these steps opening the notebook in the proper directory, but in this case I want to have the example isolated to not overwrite my current development environment.</p> +</blockquote> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=726781c5"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<ul> +<li>Load variables with useful information:</li> +</ul> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=234e751e"> +<div class="input"> +<div class="prompt input_prompt">In [4]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">project_name</span> <span class="o">=</span> <span class="s2">"ipython"</span> +<span class="n">project_remote</span> <span class="o">=</span> <span class="s2">"git://github.com/ipython/ipython.git"</span> +<span class="n">project_remote_name</span> <span class="o">=</span> <span class="s2">"origin"</span> +<span class="n">my_fork_remote</span> <span class="o">=</span> <span class="s2">"git@github.com:damianavila/ipython.git"</span> +<span class="n">my_fork_remote_name</span> <span class="o">=</span> <span class="s2">"damianavila"</span> +</pre></div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=cc8a74e5"><div class="prompt input_prompt"> +</div><div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<ul> +<li>Clone the project and connect the local repo with my <strong>Github</strong> fork:</li> +</ul> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=87ba1911"> +<div class="input"> +<div class="prompt input_prompt">In [5]:</div> +<div class="inner_cell"> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Get a read-only copy of the project</span> +<span class="o">!</span>git<span class="w"> </span>clone<span class="w"> </span><span class="nv">$project_remote</span> + +<span class="c1"># cd into the local project folder</span> +<span class="o">%</span><span class="k">cd</span> $project_name +<span class="c1"># Link the local repo with my Github fork</span> +<span class="o">!</span>git<span class="w"> </span>remote<span class="w"> </span>add<span class="w"> </span><span class="nv">$my_fork_remote_name</span><span class="w"> </span><span class="nv">$my_fork_remote</span> + +<span class="c1"># Check remotes</span> +<span class="o">!</span>git<span class="w"> </span>remote<span class="w"> </span>-v +</pre></div> +</div> +</div> +</div> +<div class="output_wrapper"> +<div class="output"> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Clonar en «ipython»... +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>remote: Reusing existing pack: 96757, done. +remote: Counting objects: 82, done. +remote: Compressing objects: 1% (1/82) remote: Compressing objects: 2% (2/82) remote: Compressing objects: 3% (3/82) remote: Compressing objects: 4% (4/82) remote: Compressing objects: 6% (5/82) remote: Compressing objects: 7% (6/82) remote: Compressing objects: 8% (7/82) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>remote: Compressing objects: 9% (8/82) remote: Compressing objects: 10% (9/82) remote: Compressing objects: 12% (10/82) remote: Compressing objects: 13% (11/82) remote: Compressing objects: 14% (12/82) remote: Compressing objects: 15% (13/82) remote: Compressing objects: 17% (14/82) remote: Compressing objects: 18% (15/82) remote: Compressing objects: 19% (16/82) remote: Compressing objects: 20% (17/82) remote: Compressing objects: 21% (18/82) remote: Compressing objects: 23% (19/82) remote: Compressing objects: 24% (20/82) remote: Compressing objects: 25% (21/82) remote: Compressing objects: 26% (22/82) remote: Compressing objects: 28% (23/82) remote: Compressing objects: 29% (24/82) remote: Compressing objects: 30% (25/82) remote: Compressing objects: 31% (26/82) remote: Compressing objects: 32% (27/82) remote: Compressing objects: 34% (28/82) remote: Compressing objects: 35% (29/82) remote: Compressing objects: 36% (30/82) remote: Compressing objects: 37% (31/82) remote: Compressing objects: 39% (32/82) remote: Compressing objects: 40% (33/82) remote: Compressing objects: 41% (34/82) remote: Compressing objects: 42% (35/82) remote: Compressing objects: 43% (36/82) remote: Compressing objects: 45% (37/82) remote: Compressing objects: 46% (38/82) remote: Compressing objects: 47% (39/82) remote: Compressing objects: 48% (40/82) remote: Compressing objects: 50% (41/82) remote: Compressing objects: 51% (42/82) remote: Compressing objects: 52% (43/82) remote: Compressing objects: 53% (44/82) remote: Compressing objects: 54% (45/82) remote: Compressing objects: 56% (46/82) remote: Compressing objects: 57% (47/82) remote: Compressing objects: 58% (48/82) remote: Compressing objects: 59% (49/82) remote: Compressing objects: 60% (50/82) remote: Compressing objects: 62% (51/82) remote: Compressing objects: 63% (52/82) remote: Compressing objects: 64% (53/82) remote: Compressing objects: 65% (54/82) remote: Compressing objects: 67% (55/82) remote: Compressing objects: 68% (56/82) remote: Compressing objects: 69% (57/82) remote: Compressing objects: 70% (58/82) remote: Compressing objects: 71% (59/82) remote: Compressing objects: 73% (60/82) remote: Compressing objects: 74% (61/82) remote: Compressing objects: 75% (62/82) remote: Compressing objects: 76% (63/82) remote: Compressing objects: 78% (64/82) remote: Compressing objects: 79% (65/82) remote: Compressing objects: 80% (66/82) remote: Compressing objects: 81% (67/82) remote: Compressing objects: 82% (68/82) remote: Compressing objects: 84% (69/82) remote: Compressing objects: 85% (70/82) remote: Compressing objects: 86% (71/82) remote: Compressing objects: 87% (72/82) remote: Compressing objects: 89% (73/82) remote: Compressing objects: 90% (74/82) remote: Compressing objects: 91% (75/82) remote: Compressing objects: 92% (76/82) remote: Compressing objects: 93% (77/82) remote: Compressing objects: 95% (78/82) remote: Compressing objects: 96% (79/82) remote: Compressing objects: 97% (80/82) remote: Compressing objects: 98% (81/82) remote: Compressing objects: 100% (82/82) remote: Compressing objects: 100% (82/82), done. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 0% (1/96839) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 0% (838/96839), 180.00 KiB | 163 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 1% (969/96839), 180.00 KiB | 163 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 2% (1937/96839), 356.00 KiB | 220 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 2% (2517/96839), 532.00 KiB | 248 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 3% (2906/96839), 532.00 KiB | 248 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 4% (3874/96839), 724.00 KiB | 271 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 4% (4028/96839), 724.00 KiB | 271 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 5% (4842/96839), 916.00 KiB | 281 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 6% (5811/96839), 1.11 MiB | 302 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 6% (5934/96839), 1.11 MiB | 302 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 7% (6779/96839), 1.36 MiB | 321 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 8% (7748/96839), 1.63 MiB | 338 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 8% (8211/96839), 1.63 MiB | 338 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 9% (8716/96839), 1.63 MiB | 338 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 10% (9684/96839), 1.93 MiB | 388 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 10% (10510/96839), 2.19 MiB | 420 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 11% (10653/96839), 2.19 MiB | 420 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 12% (11621/96839), 2.19 MiB | 420 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 13% (12590/96839), 2.54 MiB | 453 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 14% (13558/96839), 2.54 MiB | 453 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 14% (14032/96839), 2.97 MiB | 508 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 15% (14526/96839), 2.97 MiB | 508 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 16% (15495/96839), 3.47 MiB | 572 KiB/s Receiving objects: 16% (15566/96839), 3.47 MiB | 572 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 17% (16463/96839), 4.04 MiB | 661 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 17% (17318/96839), 4.71 MiB | 756 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 17% (17390/96839), 6.39 MiB | 1.01 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 18% (17432/96839), 7.40 MiB | 1.17 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 18% (17660/96839), 8.42 MiB | 1.33 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 18% (17826/96839), 10.43 MiB | 1.62 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 19% (18400/96839), 11.39 MiB | 1.74 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 20% (19368/96839), 11.39 MiB | 1.74 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 21% (20337/96839), 12.39 MiB | 1.83 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 21% (21161/96839), 12.39 MiB | 1.83 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (21305/96839), 12.39 MiB | 1.83 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (21760/96839), 13.82 MiB | 1.66 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (21963/96839), 13.88 MiB | 1.49 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 22% (22221/96839), 14.14 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 23% (22273/96839), 14.14 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 23% (23228/96839), 14.57 MiB | 820 KiB/s Receiving objects: 24% (23242/96839), 14.57 MiB | 820 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 24% (23563/96839), 15.26 MiB | 562 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24210/96839), 15.64 MiB | 437 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24276/96839), 16.49 MiB | 561 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24281/96839), 16.95 MiB | 641 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 25% (24393/96839), 18.11 MiB | 814 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 26% (25179/96839), 18.80 MiB | 923 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 27% (26147/96839), 18.80 MiB | 923 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 28% (27115/96839), 18.80 MiB | 923 KiB/s Receiving objects: 28% (27486/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 29% (28084/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 30% (29052/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 31% (30021/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 32% (30989/96839), 19.55 MiB | 1.00 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 32% (31754/96839), 20.81 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 33% (31957/96839), 20.81 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 34% (32926/96839), 20.81 MiB | 1.12 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 35% (33894/96839), 21.17 MiB | 1.10 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 36% (34863/96839), 21.17 MiB | 1.10 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 36% (35541/96839), 21.17 MiB | 1.10 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 37% (35831/96839), 21.53 MiB | 1.09 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 38% (36799/96839), 21.53 MiB | 1.09 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 38% (37615/96839), 21.89 MiB | 1.07 MiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 38% (37632/96839), 22.96 MiB | 941 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 39% (37768/96839), 23.32 MiB | 853 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 39% (38133/96839), 23.32 MiB | 853 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 40% (38736/96839), 23.68 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 40% (39474/96839), 24.04 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 41% (39704/96839), 24.40 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 41% (40563/96839), 24.77 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 42% (40673/96839), 25.13 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 43% (41641/96839), 25.13 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 44% (42610/96839), 25.49 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43578/96839), 25.49 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43720/96839), 25.85 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43735/96839), 26.21 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43740/96839), 27.29 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43748/96839), 27.95 MiB | 716 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 45% (43834/96839), 28.38 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 46% (44546/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 47% (45515/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 47% (46175/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 48% (46483/96839), 29.10 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 49% (47452/96839), 29.46 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 50% (48420/96839), 29.46 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 51% (49388/96839), 29.46 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 52% (50357/96839), 29.82 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 52% (50871/96839), 29.82 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 53% (51325/96839), 30.18 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 54% (52294/96839), 30.18 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 55% (53262/96839), 30.55 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 55% (53762/96839), 30.55 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 56% (54230/96839), 30.55 MiB | 732 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 57% (55199/96839), 30.90 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 58% (56167/96839), 31.27 MiB | 747 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 58% (56357/96839), 31.27 MiB | 747 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 59% (57136/96839), 31.27 MiB | 747 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 60% (58104/96839), 31.98 MiB | 765 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 61% (59072/96839), 31.98 MiB | 765 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 61% (59097/96839), 31.98 MiB | 765 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 62% (60041/96839), 32.34 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 63% (61009/96839), 32.70 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 63% (61187/96839), 32.70 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 63% (61364/96839), 33.42 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 64% (61977/96839), 33.78 MiB | 730 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 65% (62946/96839), 34.14 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 66% (63914/96839), 34.14 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 66% (64202/96839), 34.14 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 67% (64883/96839), 34.50 MiB | 729 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 68% (65851/96839), 34.86 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 68% (66395/96839), 34.86 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 69% (66819/96839), 34.86 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 70% (67788/96839), 35.22 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 71% (68756/96839), 35.22 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 72% (69725/96839), 35.58 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 72% (70455/96839), 35.58 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 73% (70693/96839), 35.58 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 74% (71661/96839), 35.94 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 75% (72630/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 76% (73598/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 76% (73882/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 77% (74567/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 78% (75535/96839), 36.30 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 79% (76503/96839), 36.66 MiB | 731 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 79% (77171/96839), 36.86 MiB | 486 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 80% (77472/96839), 36.86 MiB | 486 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 80% (77519/96839), 37.43 MiB | 519 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 81% (78440/96839), 37.43 MiB | 519 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 82% (79408/96839), 37.43 MiB | 519 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 83% (80377/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 84% (81345/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 85% (82314/96839), 38.00 MiB | 553 KiB/s Receiving objects: 86% (83282/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 86% (84039/96839), 38.00 MiB | 553 KiB/s Receiving objects: 87% (84250/96839), 38.00 MiB | 553 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 88% (85219/96839), 38.46 MiB | 567 KiB/s Receiving objects: 89% (86187/96839), 38.46 MiB | 567 KiB/s Receiving objects: 90% (87156/96839), 38.46 MiB | 567 KiB/s Receiving objects: 91% (88124/96839), 38.46 MiB | 567 KiB/s Receiving objects: 92% (89092/96839), 38.46 MiB | 567 KiB/s Receiving objects: 93% (90061/96839), 38.46 MiB | 567 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 94% (91029/96839), 38.46 MiB | 567 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 95% (91998/96839), 38.46 MiB | 567 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 95% (92335/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 96% (92966/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 97% (93934/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 98% (94903/96839), 40.21 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 99% (95871/96839), 40.57 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Receiving objects: 99% (96648/96839), 40.57 MiB | 726 KiB/s </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>remote: Total 96839 (delta 5), reused 31 (delta 0) +Receiving objects: 100% (96839/96839), 40.57 MiB | 726 KiB/s Receiving objects: 100% (96839/96839), 40.92 MiB | 726 KiB/s, done. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 0% (0/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 1% (733/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 2% (1419/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 3% (2142/70554) Resolving deltas: 4% (2826/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 5% (3633/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 6% (4249/70554) Resolving deltas: 7% (4953/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 8% (5645/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 9% (6351/70554) Resolving deltas: 10% (7096/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 11% (7763/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 12% (8467/70554) Resolving deltas: 13% (9176/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 14% (9882/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 15% (10603/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 16% (11402/70554) Resolving deltas: 17% (11998/70554) Resolving deltas: 18% (12712/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 19% (13471/70554) Resolving deltas: 20% (14138/70554) Resolving deltas: 21% (14871/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 22% (15647/70554) Resolving deltas: 23% (16228/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 24% (16960/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 25% (17667/70554) Resolving deltas: 26% (18345/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 27% (19052/70554) Resolving deltas: 28% (19812/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 29% (20501/70554) Resolving deltas: 30% (21176/70554) Resolving deltas: 31% (21987/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 32% (22580/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 33% (23294/70554) Resolving deltas: 33% (23382/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 34% (24000/70554) Resolving deltas: 35% (24710/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 36% (25401/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 37% (26164/70554) Resolving deltas: 38% (26850/70554) Resolving deltas: 39% (27534/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 40% (28335/70554) Resolving deltas: 41% (28930/70554) Resolving deltas: 42% (29658/70554) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 43% (30413/70554) </pre> +</div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 44% (31135/70554) Resolving deltas: 45% (31771/70554) </pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [2]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>mkdir devel_example -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 46% (32606/70554) Resolving deltas: 47% (33161/70554) Resolving deltas: 48% (33900/70554) Resolving deltas: 49% (34606/70554) </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 50% (35584/70554) Resolving deltas: 51% (35995/70554) Resolving deltas: 52% (36722/70554) Resolving deltas: 53% (37424/70554) </pre> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [3]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">cd</span> devel_example/ -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 54% (38114/70554) Resolving deltas: 55% (38818/70554) </pre> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - -<div class="output_wrapper"> -<div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>/media/datos/Desarrollos/devel_example -</pre> +<pre>Resolving deltas: 56% (39520/70554) Resolving deltas: 57% (40365/70554) Resolving deltas: 58% (40989/70554) Resolving deltas: 59% (41627/70554) Resolving deltas: 60% (42338/70554) Resolving deltas: 61% (43121/70554) </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 62% (43760/70554) Resolving deltas: 63% (44511/70554) Resolving deltas: 64% (45200/70554) Resolving deltas: 65% (45893/70554) Resolving deltas: 66% (46639/70554) Resolving deltas: 67% (47309/70554) Resolving deltas: 68% (47977/70554) </pre> </div> </div> - - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 69% (48719/70554) Resolving deltas: 70% (49705/70554) Resolving deltas: 71% (50186/70554) Resolving deltas: 72% (50856/70554) Resolving deltas: 73% (51523/70554) </pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>NOTE</strong>: You can avoid these steps opening the notebook in the proper directory, but in this case I want to have the example isolated to not overwrite my current development environment.</p> -</blockquote> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 74% (52218/70554) Resolving deltas: 75% (52926/70554) Resolving deltas: 76% (53639/70554) Resolving deltas: 77% (54331/70554) </pre> </div> </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 78% (55034/70554) Resolving deltas: 79% (55856/70554) Resolving deltas: 80% (56467/70554) Resolving deltas: 81% (57261/70554) Resolving deltas: 82% (57856/70554) </pre> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<ul> -<li>Load variables with useful information:</li> -</ul> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 83% (58565/70554) Resolving deltas: 84% (59374/70554) Resolving deltas: 85% (60114/70554) Resolving deltas: 85% (60197/70554) Resolving deltas: 86% (60690/70554) </pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [4]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">project_name</span> <span class="o">=</span> <span class="s2">"ipython"</span> -<span class="n">project_remote</span> <span class="o">=</span> <span class="s2">"git://github.com/ipython/ipython.git"</span> -<span class="n">project_remote_name</span> <span class="o">=</span> <span class="s2">"origin"</span> -<span class="n">my_fork_remote</span> <span class="o">=</span> <span class="s2">"git@github.com:damianavila/ipython.git"</span> -<span class="n">my_fork_remote_name</span> <span class="o">=</span> <span class="s2">"damianavila"</span> -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 87% (61405/70554) Resolving deltas: 88% (62100/70554) Resolving deltas: 89% (62803/70554) Resolving deltas: 90% (63504/70554) Resolving deltas: 91% (64205/70554) Resolving deltas: 92% (64928/70554) Resolving deltas: 93% (65618/70554) </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 94% (66606/70554) Resolving deltas: 95% (67108/70554) Resolving deltas: 96% (67737/70554) Resolving deltas: 97% (68654/70554) Resolving deltas: 98% (69148/70554) Resolving deltas: 99% (69958/70554) </pre> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> -</div><div class="inner_cell"> -<div class="text_cell_render border-box-sizing rendered_html"> -<ul> -<li>Clone the project and connect the local repo with my <strong>Github</strong> fork:</li> -</ul> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Resolving deltas: 100% (70554/70554) Resolving deltas: 100% (70554/70554), done. +</pre> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> -<div class="input"> -<div class="prompt input_prompt">In [5]:</div> -<div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Get a read-only copy of the project</span> -<span class="o">!</span>git clone <span class="nv">$project_remote</span> - -<span class="c1"># cd into the local project folder</span> -<span class="o">%</span><span class="k">cd</span> $project_name - -<span class="c1"># Link the local repo with my Github fork</span> -<span class="o">!</span>git remote add <span class="nv">$my_fork_remote_name</span> <span class="nv">$my_fork_remote</span> - -<span class="c1"># Check remotes</span> -<span class="o">!</span>git remote -v -</pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>/media/datos/Desarrollos/devel_example/ipython +</pre> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - -<div class="output_wrapper"> -<div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre>Clonar en «ipython»... -remote: Reusing existing pack: 96757, done. -remote: Counting objects: 82, done. -remote: Compressing objects: 100% (82/82), done. -remote: Total 96839 (delta 5), reused 31 (delta 0) -Receiving objects: 100% (96839/96839), 40.92 MiB | 726 KiB/s, done. -Resolving deltas: 100% (70554/70554), done. -/media/datos/Desarrollos/devel_example/ipython -damianavila git@github.com:damianavila/ipython.git (fetch) +<pre>damianavila git@github.com:damianavila/ipython.git (fetch) damianavila git@github.com:damianavila/ipython.git (push) origin git://github.com/ipython/ipython.git (fetch) origin git://github.com/ipython/ipython.git (push) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e192b65d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>NOTE</strong>: A lot of <em>git workflows</em> use <code>origin</code> to point to our fork and <code>upstream</code> to point to the project repo. But <em>I do not like</em> that configuration. It seems more natural to me to clone the project repo (the <code>origin</code> repo) and add a connection to my fork called <code>damianavila</code>... and the next steps take into consideration this last approach.</p> +<blockquote> +<p><strong>NOTE</strong>: A lot of <em>git workflows</em> use <code>origin</code> to point to our fork and <code>upstream</code> to point to the project repo. But <em>I do not like</em> that configuration. It seems more natural to me to clone the project repo (the <code>origin</code> repo) and add a connection to my fork called <code>damianavila</code>... and the next steps take into consideration this last approach.</p> </blockquote> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=03af3650"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶</a></h2> +<h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶</a></h2> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=738b8c6a"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This short cycle just create a new <em>branch</em> to work on, make the needed changes in the source code and upload the local changes to our <strong>Github</strong> fork to finally submit a <em>pull-request</em>:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=4f98e914"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Set up the <code>master</code> and <code>development</code> branch names:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=d0f806d0"> <div class="input"> -<div class="prompt input_prompt">In [6]:</div> +<div class="prompt input_prompt">In [6]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="n">master_branch</span> <span class="o">=</span> <span class="s2">"master"</span> -<span class="n">feature_branch</span> <span class="o">=</span> <span class="s2">"doc_post_serve"</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="n">master_branch</span> <span class="o">=</span> <span class="s2">"master"</span> +<span class="n">feature_branch</span> <span class="o">=</span> <span class="s2">"doc_post_serve"</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=fbdf05ec"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Create a new branch from <code>master</code>:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=a111d19a"> <div class="input"> -<div class="prompt input_prompt">In [7]:</div> +<div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Make sure we are in master branch</span> -<span class="o">!</span>git checkout <span class="nv">$master_branch</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Make sure we are in master branch</span> +<span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span><span class="nv">$master_branch</span> <span class="c1"># Pull the changes from origin/master</span> -<span class="o">!</span>git pull <span class="nv">$project_remote_name</span> +<span class="o">!</span>git<span class="w"> </span>pull<span class="w"> </span><span class="nv">$project_remote_name</span> <span class="c1"># Start a new branch to work on</span> -<span class="o">!</span>git checkout -b <span class="nv">$feature_branch</span> +<span class="o">!</span>git<span class="w"> </span>checkout<span class="w"> </span>-b<span class="w"> </span><span class="nv">$feature_branch</span> <span class="c1"># Check where we are</span> -<span class="o">!</span>git status +<span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Ya está en «master» -Already up-to-date. -Switched to a new branch 'doc_post_serve' -# En la rama doc_post_serve -nothing to commit, working directory clean </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Already up-to-date. +</pre> </div> </div> - - </div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Switched to a new branch 'doc_post_serve' +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre># En la rama doc_post_serve +nothing to commit, working directory clean +</pre> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +</div> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=4106093e"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Make the changes you want to do:</li> </ul> -<blockquote><p><strong>NOTE</strong>: In this example, I will update the <strong>IPython</strong> docs about some details using the <strong>IPython slides</strong> and the <code>post-serve</code> post-processor (<code>IPython.nbconvert</code>).</p> +<blockquote> +<p><strong>NOTE</strong>: In this example, I will update the <strong>IPython</strong> docs about some details using the <strong>IPython slides</strong> and the <code>post-serve</code> post-processor (<code>IPython.nbconvert</code>).</p> </blockquote> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=2c23c6de"> <div class="input"> -<div class="prompt input_prompt">In [9]:</div> +<div class="prompt input_prompt">In [9]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># list the files structure to find the needed files</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># list the files structure to find the needed files</span> <span class="o">%</span><span class="k">ls</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>CONTRIBUTING.md <span class="ansi-blue-intense-fg ansi-bold">examples</span>/ MANIFEST.in setupbase.py <span class="ansi-green-intense-fg ansi-bold">setup.py</span>* COPYING.txt <span class="ansi-blue-intense-fg ansi-bold">git-hooks</span>/ README.rst <span class="ansi-green-intense-fg ansi-bold">setupegg.py</span>* <span class="ansi-blue-intense-fg ansi-bold">tools</span>/ <span class="ansi-blue-intense-fg ansi-bold">docs</span>/ <span class="ansi-blue-intense-fg ansi-bold">IPython</span>/ <span class="ansi-blue-intense-fg ansi-bold">scripts</span>/ <span class="ansi-blue-intense-fg ansi-bold">setupext</span>/ tox.ini </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=3e40383a"> <div class="input"> -<div class="prompt input_prompt">In [10]:</div> +<div class="prompt input_prompt">In [10]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">load</span> docs/source/interactive/nbconvert.rst +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">load</span> docs/source/interactive/nbconvert.rst <span class="c1"># After executing %load, a new cell containing the source code will be added.</span> <span class="c1"># Be sure to add the next line (with the proper path) to overwrite the file</span> <span class="c1"># with you changes.</span> <span class="c1">#</span> <span class="c1"># %%writefile docs/source/interactive/nbconvert.rst</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=7a66d519"> <div class="input"> -<div class="prompt input_prompt">In [11]:</div> +<div class="prompt input_prompt">In [11]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%%writefile</span> docs/source/interactive/nbconvert.rst +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">%%writefile</span> docs/source/interactive/nbconvert.rst <span class="o">..</span> <span class="n">_nbconvert</span><span class="p">:</span> <span class="n">Converting</span> <span class="n">notebooks</span> <span class="n">to</span> <span class="n">other</span> <span class="n">formats</span> @@ -494,11 +1503,11 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="o">-</span> <span class="err">``</span><span class="o">--</span><span class="n">template</span> <span class="n">article</span><span class="err">``</span> <span class="p">(</span><span class="n">default</span><span class="p">)</span> - <span class="n">Latex</span> <span class="n">article</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s howto template.</span> + <span class="n">Latex</span> <span class="n">article</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s howto template.</span> <span class="o">-</span> <span class="err">``</span><span class="o">--</span><span class="n">template</span> <span class="n">book</span><span class="err">``</span> - <span class="n">Latex</span> <span class="n">book</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s manual template.</span> + <span class="n">Latex</span> <span class="n">book</span><span class="p">,</span> <span class="n">derived</span> <span class="kn">from</span> <span class="nn">Sphinx</span><span class="s1">'s manual template.</span> <span class="o">-</span> <span class="err">``</span><span class="o">--</span><span class="n">template</span> <span class="n">basic</span><span class="err">``</span> @@ -561,7 +1570,7 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="ow">or</span> <span class="n">via</span> <span class="n">a</span> <span class="nb">list</span> <span class="ow">in</span> <span class="n">a</span> <span class="n">configuration</span> <span class="n">file</span><span class="p">,</span> <span class="n">say</span> <span class="err">``</span><span class="n">mycfg</span><span class="o">.</span><span class="n">py</span><span class="err">``</span><span class="p">,</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">text</span><span class="p">::</span> <span class="n">c</span> <span class="o">=</span> <span class="n">get_config</span><span class="p">()</span> - <span class="n">c</span><span class="o">.</span><span class="n">NbConvertApp</span><span class="o">.</span><span class="n">notebooks</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"notebook1.ipynb"</span><span class="p">,</span> <span class="s2">"notebook2.ipynb"</span><span class="p">]</span> + <span class="n">c</span><span class="o">.</span><span class="n">NbConvertApp</span><span class="o">.</span><span class="n">notebooks</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"notebook1.ipynb"</span><span class="p">,</span> <span class="s2">"notebook2.ipynb"</span><span class="p">]</span> <span class="ow">and</span> <span class="n">using</span> <span class="n">the</span> <span class="n">command</span><span class="p">::</span> @@ -617,43 +1626,43 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="n">As</span> <span class="n">an</span> <span class="n">example</span><span class="p">,</span> <span class="n">consider</span> <span class="n">a</span> <span class="n">simple</span> <span class="n">notebook</span> <span class="n">called</span> <span class="err">``</span><span class="n">simple</span><span class="o">.</span><span class="n">ipynb</span><span class="err">``</span> <span class="n">which</span> <span class="n">contains</span> <span class="n">one</span> <span class="n">Markdown</span> <span class="n">cell</span><span class="p">,</span> <span class="k">with</span> <span class="n">the</span> <span class="n">content</span> <span class="err">``</span><span class="n">The</span> <span class="n">simplest</span> <span class="n">notebook</span><span class="o">.</span><span class="err">``</span><span class="p">,</span> <span class="n">one</span> -<span class="n">code</span> <span class="nb">input</span> <span class="n">cell</span> <span class="k">with</span> <span class="n">the</span> <span class="n">content</span> <span class="err">``</span><span class="nb">print</span> <span class="s2">"Hello, IPython!"</span><span class="err">``</span><span class="p">,</span> <span class="ow">and</span> <span class="n">the</span> +<span class="n">code</span> <span class="nb">input</span> <span class="n">cell</span> <span class="k">with</span> <span class="n">the</span> <span class="n">content</span> <span class="err">``</span><span class="nb">print</span> <span class="s2">"Hello, IPython!"</span><span class="err">``</span><span class="p">,</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">corresponding</span> <span class="n">output</span><span class="o">.</span> <span class="n">The</span> <span class="n">contents</span> <span class="n">of</span> <span class="n">the</span> <span class="n">notebook</span> <span class="n">document</span> <span class="err">``</span><span class="n">simple</span><span class="o">.</span><span class="n">ipynb</span><span class="err">``</span> <span class="ow">is</span> <span class="n">the</span> <span class="n">following</span> <span class="n">JSON</span> <span class="n">container</span><span class="p">::</span> <span class="p">{</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{</span> - <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"simple"</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"simple"</span> <span class="p">},</span> - <span class="s2">"nbformat"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> - <span class="s2">"nbformat_minor"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> - <span class="s2">"worksheets"</span><span class="p">:</span> <span class="p">[</span> + <span class="s2">"nbformat"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> + <span class="s2">"nbformat_minor"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> + <span class="s2">"worksheets"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> - <span class="s2">"cells"</span><span class="p">:</span> <span class="p">[</span> + <span class="s2">"cells"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> - <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"markdown"</span><span class="p">,</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> - <span class="s2">"source"</span><span class="p">:</span> <span class="s2">"The simplest notebook."</span> + <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"markdown"</span><span class="p">,</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> + <span class="s2">"source"</span><span class="p">:</span> <span class="s2">"The simplest notebook."</span> <span class="p">},</span> <span class="p">{</span> - <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"code"</span><span class="p">,</span> - <span class="s2">"collapsed"</span><span class="p">:</span> <span class="n">false</span><span class="p">,</span> - <span class="s2">"input"</span><span class="p">:</span> <span class="s2">"print </span><span class="se">\"</span><span class="s2">Hello, IPython</span><span class="se">\"</span><span class="s2">"</span><span class="p">,</span> - <span class="s2">"language"</span><span class="p">:</span> <span class="s2">"python"</span><span class="p">,</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> - <span class="s2">"outputs"</span><span class="p">:</span> <span class="p">[</span> + <span class="s2">"cell_type"</span><span class="p">:</span> <span class="s2">"code"</span><span class="p">,</span> + <span class="s2">"collapsed"</span><span class="p">:</span> <span class="n">false</span><span class="p">,</span> + <span class="s2">"input"</span><span class="p">:</span> <span class="s2">"print </span><span class="se">\"</span><span class="s2">Hello, IPython</span><span class="se">\"</span><span class="s2">"</span><span class="p">,</span> + <span class="s2">"language"</span><span class="p">:</span> <span class="s2">"python"</span><span class="p">,</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{},</span> + <span class="s2">"outputs"</span><span class="p">:</span> <span class="p">[</span> <span class="p">{</span> - <span class="s2">"output_type"</span><span class="p">:</span> <span class="s2">"stream"</span><span class="p">,</span> - <span class="s2">"stream"</span><span class="p">:</span> <span class="s2">"stdout"</span><span class="p">,</span> - <span class="s2">"text"</span><span class="p">:</span> <span class="s2">"Hello, IPython</span><span class="se">\n</span><span class="s2">"</span> + <span class="s2">"output_type"</span><span class="p">:</span> <span class="s2">"stream"</span><span class="p">,</span> + <span class="s2">"stream"</span><span class="p">:</span> <span class="s2">"stdout"</span><span class="p">,</span> + <span class="s2">"text"</span><span class="p">:</span> <span class="s2">"Hello, IPython</span><span class="se">\n</span><span class="s2">"</span> <span class="p">}</span> <span class="p">],</span> - <span class="s2">"prompt_number"</span><span class="p">:</span> <span class="mi">1</span> + <span class="s2">"prompt_number"</span><span class="p">:</span> <span class="mi">1</span> <span class="p">}</span> <span class="p">],</span> - <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{}</span> + <span class="s2">"metadata"</span><span class="p">:</span> <span class="p">{}</span> <span class="p">}</span> <span class="p">]</span> <span class="p">}</span> @@ -670,80 +1679,50 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <span class="c1"># <codecell></span> - <span class="nb">print</span> <span class="s2">"Hello, IPython"</span> + <span class="nb">print</span> <span class="s2">"Hello, IPython"</span> <span class="n">Note</span> <span class="n">that</span> <span class="n">indeed</span> <span class="n">the</span> <span class="n">output</span> <span class="n">of</span> <span class="n">the</span> <span class="n">code</span> <span class="n">cell</span><span class="p">,</span> <span class="n">which</span> <span class="ow">is</span> <span class="n">present</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">JSON</span> <span class="n">container</span><span class="p">,</span> <span class="n">has</span> <span class="n">been</span> <span class="n">removed</span> <span class="ow">in</span> <span class="n">the</span> <span class="err">``</span><span class="o">.</span><span class="n">py</span><span class="err">``</span> <span class="n">script</span><span class="o">.</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Overwriting docs/source/interactive/nbconvert.rst </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=4daab23f"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Check the status and diff of your modifications:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=53160c16"> <div class="input"> -<div class="prompt input_prompt">In [12]:</div> +<div class="prompt input_prompt">In [12]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Check status</span> -<span class="o">!</span>git status +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Check status</span> +<span class="o">!</span>git<span class="w"> </span>status </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre># En la rama doc_post_serve # Cambios no preparados para el commit: @@ -755,42 +1734,25 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ no hay cambios agregados al commit (use «git add» o «git commit -a») </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=e2bc127b"> <div class="input"> -<div class="prompt input_prompt">In [13]:</div> +<div class="prompt input_prompt">In [13]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># See the diff</span> -<span class="o">!</span>git diff +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># See the diff</span> +<span class="o">!</span>git<span class="w"> </span>diff </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>diff --git a/docs/source/interactive/nbconvert.rst b/docs/source/interactive/nbconvert.rst index 1789a62..610edf0 100644 @@ -818,148 +1780,145 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ - </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=75e0c3be"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Add the changes an commit them:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=fe614387"> <div class="input"> -<div class="prompt input_prompt">In [14]:</div> +<div class="prompt input_prompt">In [14]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Add the modified files to the stage</span> -<span class="o">!</span>git add . +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Add the modified files to the stage</span> +<span class="o">!</span>git<span class="w"> </span>add<span class="w"> </span>. </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing code_cell rendered"> +</div> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=eec28296"> <div class="input"> -<div class="prompt input_prompt">In [15]:</div> +<div class="prompt input_prompt">In [15]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># And do your commit</span> -<span class="o">!</span>git commit -am <span class="s2">"Added --post-serve explanation into the nbconvert docs."</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># And do your commit</span> +<span class="o">!</span>git<span class="w"> </span>commit<span class="w"> </span>-am<span class="w"> </span><span class="s2">"Added --post-serve explanation into the nbconvert docs."</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>[doc_post_serve c87ac2f] Added --post-serve explanation into the nbconvert docs. 1 file changed, 6 insertions(+), 3 deletions(-) </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e775982e"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> -<li>Finally, push your local development branch to your <strong>Github</strong> fork: </li> +<li>Finally, push your local development branch to your <strong>Github</strong> fork:</li> </ul> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=f296d1f3"> <div class="input"> -<div class="prompt input_prompt">In [16]:</div> +<div class="prompt input_prompt">In [16]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Push updates from your local branch to your github branch</span> -<span class="o">!</span>git push <span class="nv">$my_fork_remote_name</span> <span class="nv">$feature_branch</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Push updates from your local branch to your github branch</span> +<span class="o">!</span>git<span class="w"> </span>push<span class="w"> </span><span class="nv">$my_fork_remote_name</span><span class="w"> </span><span class="nv">$feature_branch</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Counting objects: 8732, done. -Delta compression using up to 4 threads. -Compressing objects: 100% (2767/2767), done. -Writing objects: 100% (7842/7842), 1.44 MiB, done. +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Delta compression using up to 4 threads. +Compressing objects: 0% (1/2767) Compressing objects: 1% (28/2767) Compressing objects: 2% (56/2767) Compressing objects: 3% (84/2767) Compressing objects: 4% (111/2767) Compressing objects: 5% (139/2767) Compressing objects: 6% (167/2767) Compressing objects: 7% (194/2767) Compressing objects: 8% (222/2767) Compressing objects: 9% (250/2767) Compressing objects: 10% (277/2767) Compressing objects: 11% (305/2767) Compressing objects: 12% (333/2767) Compressing objects: 13% (360/2767) Compressing objects: 14% (388/2767) Compressing objects: 15% (416/2767) Compressing objects: 16% (443/2767) Compressing objects: 17% (471/2767) Compressing objects: 18% (499/2767) Compressing objects: 19% (526/2767) Compressing objects: 20% (554/2767) Compressing objects: 21% (582/2767) Compressing objects: 22% (609/2767) Compressing objects: 23% (637/2767) Compressing objects: 24% (665/2767) Compressing objects: 25% (692/2767) Compressing objects: 26% (720/2767) Compressing objects: 27% (748/2767) Compressing objects: 28% (775/2767) Compressing objects: 29% (803/2767) Compressing objects: 30% (831/2767) Compressing objects: 31% (858/2767) Compressing objects: 32% (886/2767) Compressing objects: 33% (914/2767) Compressing objects: 34% (941/2767) Compressing objects: 35% (969/2767) Compressing objects: 36% (997/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 37% (1024/2767) Compressing objects: 38% (1052/2767) Compressing objects: 39% (1080/2767) Compressing objects: 40% (1107/2767) Compressing objects: 41% (1135/2767) Compressing objects: 42% (1163/2767) Compressing objects: 43% (1190/2767) Compressing objects: 44% (1218/2767) Compressing objects: 45% (1246/2767) Compressing objects: 46% (1273/2767) Compressing objects: 47% (1301/2767) Compressing objects: 48% (1329/2767) Compressing objects: 49% (1356/2767) Compressing objects: 50% (1384/2767) Compressing objects: 51% (1412/2767) Compressing objects: 52% (1439/2767) Compressing objects: 53% (1467/2767) Compressing objects: 54% (1495/2767) Compressing objects: 55% (1522/2767) Compressing objects: 56% (1550/2767) Compressing objects: 57% (1578/2767) Compressing objects: 58% (1605/2767) Compressing objects: 59% (1633/2767) Compressing objects: 60% (1661/2767) Compressing objects: 61% (1688/2767) Compressing objects: 62% (1716/2767) Compressing objects: 63% (1744/2767) Compressing objects: 64% (1771/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 65% (1799/2767) Compressing objects: 66% (1827/2767) Compressing objects: 67% (1854/2767) Compressing objects: 68% (1882/2767) Compressing objects: 69% (1910/2767) Compressing objects: 70% (1937/2767) Compressing objects: 71% (1965/2767) Compressing objects: 72% (1993/2767) Compressing objects: 73% (2020/2767) Compressing objects: 74% (2048/2767) Compressing objects: 75% (2076/2767) Compressing objects: 76% (2103/2767) Compressing objects: 77% (2131/2767) Compressing objects: 78% (2159/2767) Compressing objects: 79% (2186/2767) Compressing objects: 80% (2214/2767) Compressing objects: 81% (2242/2767) Compressing objects: 82% (2269/2767) Compressing objects: 83% (2297/2767) Compressing objects: 84% (2325/2767) Compressing objects: 85% (2352/2767) Compressing objects: 86% (2380/2767) Compressing objects: 87% (2408/2767) Compressing objects: 88% (2435/2767) Compressing objects: 89% (2463/2767) Compressing objects: 90% (2491/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 91% (2518/2767) Compressing objects: 92% (2546/2767) Compressing objects: 93% (2574/2767) Compressing objects: 94% (2601/2767) Compressing objects: 95% (2629/2767) Compressing objects: 96% (2657/2767) Compressing objects: 97% (2684/2767) Compressing objects: 98% (2712/2767) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Compressing objects: 99% (2740/2767) Compressing objects: 100% (2767/2767) Compressing objects: 100% (2767/2767), done. +Writing objects: 0% (1/7842) Writing objects: 1% (79/7842) Writing objects: 2% (157/7842) Writing objects: 3% (236/7842) Writing objects: 4% (314/7842) Writing objects: 5% (393/7842) Writing objects: 6% (471/7842) Writing objects: 7% (549/7842) Writing objects: 8% (628/7842) Writing objects: 9% (706/7842) Writing objects: 10% (785/7842) Writing objects: 11% (863/7842) Writing objects: 12% (942/7842) Writing objects: 13% (1020/7842) Writing objects: 14% (1099/7842) Writing objects: 15% (1177/7842) Writing objects: 16% (1255/7842) Writing objects: 17% (1335/7842) Writing objects: 18% (1415/7842) Writing objects: 19% (1496/7842) Writing objects: 20% (1570/7842) Writing objects: 21% (1647/7842) Writing objects: 22% (1727/7842) </pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>Writing objects: 23% (1804/7842) Writing objects: 24% (1883/7842) Writing objects: 25% (1961/7842) Writing objects: 26% (2041/7842) Writing objects: 27% (2119/7842) Writing objects: 28% (2198/7842) Writing objects: 29% (2275/7842) Writing objects: 30% (2358/7842) Writing objects: 31% (2439/7842) Writing objects: 32% (2510/7842) Writing objects: 33% (2588/7842) Writing objects: 34% (2669/7842) Writing objects: 35% (2745/7842) Writing objects: 36% (2825/7842) Writing objects: 37% (2902/7842) Writing objects: 38% (2980/7842) Writing objects: 39% (3059/7842) Writing objects: 40% (3137/7842) Writing objects: 41% (3216/7842) Writing objects: 42% (3294/7842) Writing objects: 43% (3373/7842) Writing objects: 44% (3451/7842) Writing objects: 45% (3529/7842) Writing objects: 46% (3608/7842) Writing objects: 47% (3686/7842) Writing objects: 48% (3765/7842) Writing objects: 49% (3843/7842) Writing objects: 50% (3921/7842) Writing objects: 51% (4000/7842) Writing objects: 52% (4079/7842) Writing objects: 53% (4159/7842) Writing objects: 54% (4235/7842) Writing objects: 55% (4314/7842) Writing objects: 56% (4392/7842) Writing objects: 57% (4470/7842) Writing objects: 58% (4549/7842) Writing objects: 59% (4627/7842) Writing objects: 60% (4706/7842) Writing objects: 61% (4785/7842) Writing objects: 62% (4863/7842) Writing objects: 63% (4942/7842) Writing objects: 64% (5019/7842) Writing objects: 65% (5098/7842) Writing objects: 66% (5176/7842) Writing objects: 67% (5255/7842) Writing objects: 68% (5333/7842) Writing objects: 69% (5411/7842) Writing objects: 70% (5490/7842) Writing objects: 71% (5568/7842) Writing objects: 72% (5647/7842) Writing objects: 73% (5725/7842) Writing objects: 74% (5804/7842) Writing objects: 75% (5888/7842) Writing objects: 76% (5960/7842) Writing objects: 77% (6039/7842) Writing objects: 78% (6117/7842) Writing objects: 79% (6196/7842) Writing objects: 80% (6274/7842) Writing objects: 81% (6353/7842) Writing objects: 82% (6431/7842) Writing objects: 83% (6509/7842) Writing objects: 84% (6588/7842) Writing objects: 85% (6666/7842) Writing objects: 86% (6745/7842) Writing objects: 87% (6823/7842) Writing objects: 88% (6903/7842) Writing objects: 89% (6980/7842) Writing objects: 90% (7058/7842) Writing objects: 91% (7138/7842) Writing objects: 92% (7215/7842) Writing objects: 93% (7294/7842) Writing objects: 94% (7373/7842) Writing objects: 95% (7450/7842) Writing objects: 96% (7529/7842) Writing objects: 97% (7607/7842) Writing objects: 98% (7686/7842) Writing objects: 99% (7764/7842) Writing objects: 100% (7842/7842) Writing objects: 100% (7842/7842), 1.44 MiB, done. Total 7842 (delta 5520), reused 7275 (delta 4971) -To git@github.com:damianavila/ipython.git - * [new branch] doc_post_serve -> doc_post_serve </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre>To git@github.com:damianavila/ipython.git + * [new branch] doc_post_serve -> doc_post_serve +</pre> </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=595800ce"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>NOTE</strong>: The merging of your <strong>Github</strong> development branch into the master is done via <em>pull-request</em> on the <strong>Github</strong> website. For reference, you can see the proposed <strong>PR</strong> here: <a href="https://github.com/ipython/ipython/pull/4751">https://github.com/ipython/ipython/pull/4751</a></p> +<blockquote> +<p><strong>NOTE</strong>: The merging of your <strong>Github</strong> development branch into the master is done via <em>pull-request</em> on the <strong>Github</strong> website. For reference, you can see the proposed <strong>PR</strong> here: <a href="https://github.com/ipython/ipython/pull/4751">https://github.com/ipython/ipython/pull/4751</a></p> </blockquote> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=49ada00f"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you can see, this workflow is very <em>simple</em>... and with the aid of this <strong>ipytmpl</strong> is easier than <em>before</em> (before = making the same but in your traditional console).</p> @@ -970,9 +1929,6 @@ <h2 id="Short-cycle">Short cycle<a class="anchor-link" href="#Short-cycle">¶ <p>Have a nice <strong>New Year</strong>! And I see you in 2014 ;-)</p> <p>Cheers.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/nikola-nbconvert.es.html b/cache/posts/nikola-nbconvert.es.html index febe1b16..f79284b0 100644 --- a/cache/posts/nikola-nbconvert.es.html +++ b/cache/posts/nikola-nbconvert.es.html @@ -1,9 +1,7 @@ <p>Importando, en un posteo del blog, un html estático (obtenido con nbconvert) de un notebook (ejemplo) de IPython:</p> -<pre class="literal-block"> -.. raw:: html - :file: /Users/damian/devel/blog/files/Test.html -</pre> +<pre class="literal-block">.. raw:: html + :file: /Users/damian/Documents/devel/blog/files/Test.html</pre> <!-- TEASER_END --> <p>Funciona! Pueden verlo a continuación... pronto estarán los themes disponibles.</p> <blockquote> @@ -2655,5 +2653,6 @@ <h2> </div> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hopefully this post shows that the system is already useful to communicate technical content in blog form with a minimal amount of effort. But please note that we're still in heavy development of many of these features, so things are susceptible to changing in the near future. By all means join the <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev">IPython dev mailing list</a> if you'd like to participate and help us make IPython a better tool!</p> -</div></blockquote> +</div> +</blockquote> <p>Damián.</p> diff --git a/cache/posts/nikola-nbconvert.es.html.dep b/cache/posts/nikola-nbconvert.es.html.dep index 423af433..517e718b 100644 --- a/cache/posts/nikola-nbconvert.es.html.dep +++ b/cache/posts/nikola-nbconvert.es.html.dep @@ -1 +1 @@ -../../../devel/blog/files/Test.html \ No newline at end of file +files/Test.html \ No newline at end of file diff --git a/cache/posts/nikola-nbconvert.html b/cache/posts/nikola-nbconvert.html index 932d864b..f22f11c2 100644 --- a/cache/posts/nikola-nbconvert.html +++ b/cache/posts/nikola-nbconvert.html @@ -1,9 +1,7 @@ <p>Importing a static view (rendered by nbconvert) of one IPython example notebook into a nikola blog post:</p> -<pre class="literal-block"> -.. raw:: html - :file: /Users/damian/devel/blog/files/Test.html -</pre> +<pre class="literal-block">.. raw:: html + :file: /Users/damian/Documents/devel/blog/files/Test.html</pre> <!-- TEASER_END --> <p>It works! You can see below... the themes will be available soon.</p> <blockquote> @@ -2655,5 +2653,6 @@ <h2> </div> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hopefully this post shows that the system is already useful to communicate technical content in blog form with a minimal amount of effort. But please note that we're still in heavy development of many of these features, so things are susceptible to changing in the near future. By all means join the <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev">IPython dev mailing list</a> if you'd like to participate and help us make IPython a better tool!</p> -</div></blockquote> +</div> +</blockquote> <p>Damián.</p> diff --git a/cache/posts/nikola-nbconvert.html.dep b/cache/posts/nikola-nbconvert.html.dep index 423af433..517e718b 100644 --- a/cache/posts/nikola-nbconvert.html.dep +++ b/cache/posts/nikola-nbconvert.html.dep @@ -1 +1 @@ -../../../devel/blog/files/Test.html \ No newline at end of file +files/Test.html \ No newline at end of file diff --git a/cache/posts/nikolas-zen-theme-finally-released.es.html b/cache/posts/nikolas-zen-theme-finally-released.es.html index ecdb4564..c8873ce7 100644 --- a/cache/posts/nikolas-zen-theme-finally-released.es.html +++ b/cache/posts/nikolas-zen-theme-finally-released.es.html @@ -7,8 +7,9 @@ <ul> <li><code>zen</code>, based in <em>mako</em> templates</li> <li><code>zen-jinja</code>, the same <em>zen</em> theme but based (obviously) in <em>jinja</em> templates</li> -<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.<!-- TEASER_END --></li> +<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.</li> </ul> +<!-- TEASER_END --> <p>As you know, you can easily install them using the following command inside your <strong>Nikola</strong> site folder:</p> <p><code>nikola install_theme zen</code></p> <p>(or <code>zen-jinja</code>... or <code>zen-ipython</code>, or whatever theme available at <a href="http://themes.getnikola.com/">http://themes.getnikola.com/</a>).</p> @@ -16,9 +17,6 @@ <p>OK, it's all for this post.</p> <p>Enjoy the <strong>Zen</strong> themes and, as usually, report me any problem...</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/nikolas-zen-theme-finally-released.html b/cache/posts/nikolas-zen-theme-finally-released.html index ecdb4564..c8873ce7 100644 --- a/cache/posts/nikolas-zen-theme-finally-released.html +++ b/cache/posts/nikolas-zen-theme-finally-released.html @@ -7,8 +7,9 @@ <ul> <li><code>zen</code>, based in <em>mako</em> templates</li> <li><code>zen-jinja</code>, the same <em>zen</em> theme but based (obviously) in <em>jinja</em> templates</li> -<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.<!-- TEASER_END --></li> +<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.</li> </ul> +<!-- TEASER_END --> <p>As you know, you can easily install them using the following command inside your <strong>Nikola</strong> site folder:</p> <p><code>nikola install_theme zen</code></p> <p>(or <code>zen-jinja</code>... or <code>zen-ipython</code>, or whatever theme available at <a href="http://themes.getnikola.com/">http://themes.getnikola.com/</a>).</p> @@ -16,9 +17,6 @@ <p>OK, it's all for this post.</p> <p>Enjoy the <strong>Zen</strong> themes and, as usually, report me any problem...</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html b/cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html index e4f37591..8698f735 100644 --- a/cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html +++ b/cache/posts/one-line-deployment-of-your-site-to-gh-pages.es.html @@ -1,4 +1,4 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=abc2d929"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Do you want to <strong>easily</strong> deploy your site to Github pages?</p> @@ -7,29 +7,31 @@ <li><p>You have to upload your complete blog/site to a new Github repository (you know how to do it... if not, probably you need to learn some things before try this one, hehe). As a plus, now your blog/site is version-controlled!</p> </li> <li><p>Almost for sure, your site/blog lives in the master branch of the new repository, but you need to generated a <code>gh-pages</code> branch to push your <code>build</code> or <code>output</code> folder, I mean your site/blog content to deploy... not all the machinery of your site/blog platform (<strong>Nikola</strong> in my case):</p> +</li> +</ol> <!-- TEASER_END --> - <ul> <li><code>git checkout -b gh-pages</code></li> <li><code>git rm -rf .</code></li> <li><code>git commit -am "First commit to gh-pages branch"</code></li> <li><code>git push origin gh-pages</code></li> </ul> -</li> -<li><p>Now, we will use a <strong>git-subtree</strong> technique to push the <code>build</code> or <code>output</code> content to the <code>gh-pages</code> branch:</p> +<ol start="3"> +<li>Now, we will use a <strong>git-subtree</strong> technique to push the <code>build</code> or <code>output</code> content to the <code>gh-pages</code> branch:</li> +</ol> <ul> -<li><code>git checkout master</code></li> +<li><p><code>git checkout master</code></p> +</li> <li><p><code>git push origin `git subtree split --prefix output gh-pages`:gh-pages --force</code></p> <p><strong>Sweet</strong> line... uhh ;-)</p> </li> </ul> -</li> -<li><p>Finally, you will need to run the following line every time you want to update your site/blog!</p> +<ol start="4"> +<li>Finally, you will need to run the following line every time you want to update your site/blog!</li> +</ol> <ul> <li><code>git subtree push --prefix output origin gh-pages</code></li> </ul> -</li> -</ol> <p><strong>Note</strong>: Are you getting <code>git</code> errors? Just use the <strong>sweet</strong> line again and <em>force</em> the update...</p> <p>If you are using <strong>Nikola</strong>, you can add some of this lines to the <code>DEPLOY_COMMANDS</code> in your conf.py file and just run <code>nikola deploy</code> after building your site/blog.</p> <p>More easier... impossible... ;-)</p> @@ -42,9 +44,6 @@ <li><code>git push -f origin gh-pages:gh-pages</code> # force the push of the gh-pages branch to the remote gh-pages branch at origin</li> <li><code>git branch -D gh-pages</code> # delete the local gh-pages because you will need it: <a href="https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt#L203">ref</a></li> </ul> - </div> </div> </div> - - diff --git a/cache/posts/one-line-deployment-of-your-site-to-gh-pages.html b/cache/posts/one-line-deployment-of-your-site-to-gh-pages.html index e4f37591..7ee32d20 100644 --- a/cache/posts/one-line-deployment-of-your-site-to-gh-pages.html +++ b/cache/posts/one-line-deployment-of-your-site-to-gh-pages.html @@ -1,4 +1,4 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=05961e74"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Do you want to <strong>easily</strong> deploy your site to Github pages?</p> @@ -7,29 +7,31 @@ <li><p>You have to upload your complete blog/site to a new Github repository (you know how to do it... if not, probably you need to learn some things before try this one, hehe). As a plus, now your blog/site is version-controlled!</p> </li> <li><p>Almost for sure, your site/blog lives in the master branch of the new repository, but you need to generated a <code>gh-pages</code> branch to push your <code>build</code> or <code>output</code> folder, I mean your site/blog content to deploy... not all the machinery of your site/blog platform (<strong>Nikola</strong> in my case):</p> +</li> +</ol> <!-- TEASER_END --> - <ul> <li><code>git checkout -b gh-pages</code></li> <li><code>git rm -rf .</code></li> <li><code>git commit -am "First commit to gh-pages branch"</code></li> <li><code>git push origin gh-pages</code></li> </ul> -</li> -<li><p>Now, we will use a <strong>git-subtree</strong> technique to push the <code>build</code> or <code>output</code> content to the <code>gh-pages</code> branch:</p> +<ol start="3"> +<li>Now, we will use a <strong>git-subtree</strong> technique to push the <code>build</code> or <code>output</code> content to the <code>gh-pages</code> branch:</li> +</ol> <ul> -<li><code>git checkout master</code></li> +<li><p><code>git checkout master</code></p> +</li> <li><p><code>git push origin `git subtree split --prefix output gh-pages`:gh-pages --force</code></p> <p><strong>Sweet</strong> line... uhh ;-)</p> </li> </ul> -</li> -<li><p>Finally, you will need to run the following line every time you want to update your site/blog!</p> +<ol start="4"> +<li>Finally, you will need to run the following line every time you want to update your site/blog!</li> +</ol> <ul> <li><code>git subtree push --prefix output origin gh-pages</code></li> </ul> -</li> -</ol> <p><strong>Note</strong>: Are you getting <code>git</code> errors? Just use the <strong>sweet</strong> line again and <em>force</em> the update...</p> <p>If you are using <strong>Nikola</strong>, you can add some of this lines to the <code>DEPLOY_COMMANDS</code> in your conf.py file and just run <code>nikola deploy</code> after building your site/blog.</p> <p>More easier... impossible... ;-)</p> @@ -42,9 +44,6 @@ <li><code>git push -f origin gh-pages:gh-pages</code> # force the push of the gh-pages branch to the remote gh-pages branch at origin</li> <li><code>git branch -D gh-pages</code> # delete the local gh-pages because you will need it: <a href="https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt#L203">ref</a></li> </ul> - </div> </div> </div> - - diff --git a/cache/posts/pyconar-2013.es.html b/cache/posts/pyconar-2013.es.html index 386aa462..1cce82bb 100644 --- a/cache/posts/pyconar-2013.es.html +++ b/cache/posts/pyconar-2013.es.html @@ -1,51 +1,47 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=3ee2400d"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Note</strong>: Post only in spanish (but also interesting!)</p> <p>Hace un par de semanas, terminando el mes de Octubre, se llevó a cabo en la ciudad de Rosario, la 5° Conferencia Anual de Python Argentina - <a href="http://ar.pycon.org/">PyConAr 2013</a>.</p> -<p>En esta oportunidad, presenté dos charlas: -<!-- TEASER_END --></p> +<p>En esta oportunidad, presenté dos charlas:</p> +<!-- TEASER_END --> <ul> -<li>la clásica, <em>Introducción a Python Científico</em> (<a href="http://damianavila.github.io/pyconar2013_talks/1_Python_Cientifico_Intro.slides.html#/">slides</a>), </li> +<li>la clásica, <em>Introducción a Python Científico</em> (<a href="http://damianavila.github.io/pyconar2013_talks/1_Python_Cientifico_Intro.slides.html#/">slides</a>),</li> <li>la nueva, <em>IPython-fu: el camino de la "nbconversión"</em> (<a href="http://damianavila.github.io/pyconar2013_talks/IPython_fu_talk.slides.html#/">slides</a>).</li> </ul> <p>Me sentí muy cómodo dictando las dos charlas, y encima me di el gusto de "meter" una charla íntegra del notebook de IPython, sobre el cual vengo "pregonando" hace rato.</p> <p>Por otro lado, gracias al esfuerzo puesto en juego por la organización del evento, tenemos <a href="http://www.youtube.com/channel/UCpufJ3XcqCGoPTxQX46W-UQ">videograbación</a> de toda la conferencia.</p> <p>A continuación, les adjunto los videos de mis charlas... por si se perdieron alguna:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c06b4bb9"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Introducción a Python Científico</li> </ul> -<iframe width="640" height="360" src="//www.youtube.com/embed/17DPZlKQDk8" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/17DPZlKQDk8" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=d09902c0"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>IPython-fu: el camino de la "nbconversión"</li> </ul> -<iframe width="640" height="360" src="//www.youtube.com/embed/4-O5NZKD3hI" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/4-O5NZKD3hI" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c4f508a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Una vez más, participar en la PyConAr fue una gran experiencia, no sólo desde el punto de vista técnico, sino también, y más importante aún, desde el punto de vista humano.</p> <p>Aún resta saber dónde será la próxima edición.</p> <p>¡Allí estaremos!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/pyconar-2013.html b/cache/posts/pyconar-2013.html index 386aa462..9351b12a 100644 --- a/cache/posts/pyconar-2013.html +++ b/cache/posts/pyconar-2013.html @@ -1,51 +1,47 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=248b2738"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Note</strong>: Post only in spanish (but also interesting!)</p> <p>Hace un par de semanas, terminando el mes de Octubre, se llevó a cabo en la ciudad de Rosario, la 5° Conferencia Anual de Python Argentina - <a href="http://ar.pycon.org/">PyConAr 2013</a>.</p> -<p>En esta oportunidad, presenté dos charlas: -<!-- TEASER_END --></p> +<p>En esta oportunidad, presenté dos charlas:</p> +<!-- TEASER_END --> <ul> -<li>la clásica, <em>Introducción a Python Científico</em> (<a href="http://damianavila.github.io/pyconar2013_talks/1_Python_Cientifico_Intro.slides.html#/">slides</a>), </li> +<li>la clásica, <em>Introducción a Python Científico</em> (<a href="http://damianavila.github.io/pyconar2013_talks/1_Python_Cientifico_Intro.slides.html#/">slides</a>),</li> <li>la nueva, <em>IPython-fu: el camino de la "nbconversión"</em> (<a href="http://damianavila.github.io/pyconar2013_talks/IPython_fu_talk.slides.html#/">slides</a>).</li> </ul> <p>Me sentí muy cómodo dictando las dos charlas, y encima me di el gusto de "meter" una charla íntegra del notebook de IPython, sobre el cual vengo "pregonando" hace rato.</p> <p>Por otro lado, gracias al esfuerzo puesto en juego por la organización del evento, tenemos <a href="http://www.youtube.com/channel/UCpufJ3XcqCGoPTxQX46W-UQ">videograbación</a> de toda la conferencia.</p> <p>A continuación, les adjunto los videos de mis charlas... por si se perdieron alguna:</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=89ecce46"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>Introducción a Python Científico</li> </ul> -<iframe width="640" height="360" src="//www.youtube.com/embed/17DPZlKQDk8" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/17DPZlKQDk8" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0e550581"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <ul> <li>IPython-fu: el camino de la "nbconversión"</li> </ul> -<iframe width="640" height="360" src="//www.youtube.com/embed/4-O5NZKD3hI" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/4-O5NZKD3hI" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9cea8e8f"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Una vez más, participar en la PyConAr fue una gran experiencia, no sólo desde el punto de vista técnico, sino también, y más importante aún, desde el punto de vista humano.</p> <p>Aún resta saber dónde será la próxima edición.</p> <p>¡Allí estaremos!</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/reveal_converter-mini-tutorial.es.html b/cache/posts/reveal_converter-mini-tutorial.es.html index aeff0763..0e3b0097 100644 --- a/cache/posts/reveal_converter-mini-tutorial.es.html +++ b/cache/posts/reveal_converter-mini-tutorial.es.html @@ -1,9 +1,9 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/make-your-slides-with-ipython.html">link</a> to get updated information.</p> +<blockquote> +<p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/make-your-slides-with-ipython.html">link</a> to get updated information.</p> </blockquote> - </div> </div> </div> @@ -13,7 +13,6 @@ <p>After some weeks of work and a lot of useful colaboration with the IPython team, we now have the reveal converter merged in nbconvert (a conversion utilities for the IPython notebook format).</p> <p>Currently nbconvert is being rewritten... but we also have a reveal converter in the new codebase, so you do not have problems if you begin to use it now, you will be able to use it tomorrow :-)</p> <p>I wrote a little tutorial (a reveal-based notebook slideshow, of course) about how to use reveal converter option inside nbconvert</p> - </div> </div> </div> @@ -30,14 +29,13 @@ <p><strong>Note</strong> from the futute: example no longer available.</p> <p>You can access to it <a href="http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html">here</a> (recommended way).</p> <p>If you want to see it without leaving this page (I do not recommend this last option, it is a small iframe).</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src=http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html?useformat=mobile width=700 height=450></iframe> +<iframe height="450" src="http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html?useformat=mobile" width="700"></iframe> </div> </div> </div> @@ -47,9 +45,6 @@ <p>I hope you use it and report any problem.</p> <p>Cheers.</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/reveal_converter-mini-tutorial.html b/cache/posts/reveal_converter-mini-tutorial.html index aeff0763..0e3b0097 100644 --- a/cache/posts/reveal_converter-mini-tutorial.html +++ b/cache/posts/reveal_converter-mini-tutorial.html @@ -1,9 +1,9 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/make-your-slides-with-ipython.html">link</a> to get updated information.</p> +<blockquote> +<p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="../posts/make-your-slides-with-ipython.html">link</a> to get updated information.</p> </blockquote> - </div> </div> </div> @@ -13,7 +13,6 @@ <p>After some weeks of work and a lot of useful colaboration with the IPython team, we now have the reveal converter merged in nbconvert (a conversion utilities for the IPython notebook format).</p> <p>Currently nbconvert is being rewritten... but we also have a reveal converter in the new codebase, so you do not have problems if you begin to use it now, you will be able to use it tomorrow :-)</p> <p>I wrote a little tutorial (a reveal-based notebook slideshow, of course) about how to use reveal converter option inside nbconvert</p> - </div> </div> </div> @@ -30,14 +29,13 @@ <p><strong>Note</strong> from the futute: example no longer available.</p> <p>You can access to it <a href="http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html">here</a> (recommended way).</p> <p>If you want to see it without leaving this page (I do not recommend this last option, it is a small iframe).</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src=http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html?useformat=mobile width=700 height=450></iframe> +<iframe height="450" src="http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html?useformat=mobile" width="700"></iframe> </div> </div> </div> @@ -47,9 +45,6 @@ <p>I hope you use it and report any problem.</p> <p>Cheers.</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-400b1-is-available-please-test-it.es.html b/cache/posts/rise-400b1-is-available-please-test-it.es.html index db9867f7..c1838960 100644 --- a/cache/posts/rise-400b1-is-available-please-test-it.es.html +++ b/cache/posts/rise-400b1-is-available-please-test-it.es.html @@ -3,17 +3,14 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>Quick post! I have beta packages available for you to test <strong>RISE</strong>, if you can test it that would be awesome!!</p> <p>In case you don't know about it, with <strong>RISE</strong> you get your <strong>Jupyter</strong> notebook rendered as a Reveal.js-based slideshow, where you can <strong>execute</strong> code on the fly or show to the audience whatever you can show/do inside the notebook itself (but in a "slidy" way).</p> -<p>How you can get it? -<!-- TEASER_END --></p> +<p>How you can get it?</p> +<!-- TEASER_END --> <p>You have several ways to get it that I described here: <a href="https://github.com/damianavila/RISE#installation">https://github.com/damianavila/RISE#installation</a></p> <p>I don't want to repeat myself ;-) so go the the above link and check it.</p> <p>The 4.0.0 release essentially deals with packaging and stuff to be compatible with the latest mechanisms on the <strong>Jupyter</strong> notebook to install and enable <em>nbextensions</em> (and <strong>RISE</strong> is a <em>nbextension</em>). But also fixes bugs and provide some enhancements.</p> <p>Please report any issues with the beta here: <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>Have fun!!</p> <p>PS: I will write a more detailed post about <strong>RISE</strong> later. There are a lot of things to share about it!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-400b1-is-available-please-test-it.html b/cache/posts/rise-400b1-is-available-please-test-it.html index db9867f7..c1838960 100644 --- a/cache/posts/rise-400b1-is-available-please-test-it.html +++ b/cache/posts/rise-400b1-is-available-please-test-it.html @@ -3,17 +3,14 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>Quick post! I have beta packages available for you to test <strong>RISE</strong>, if you can test it that would be awesome!!</p> <p>In case you don't know about it, with <strong>RISE</strong> you get your <strong>Jupyter</strong> notebook rendered as a Reveal.js-based slideshow, where you can <strong>execute</strong> code on the fly or show to the audience whatever you can show/do inside the notebook itself (but in a "slidy" way).</p> -<p>How you can get it? -<!-- TEASER_END --></p> +<p>How you can get it?</p> +<!-- TEASER_END --> <p>You have several ways to get it that I described here: <a href="https://github.com/damianavila/RISE#installation">https://github.com/damianavila/RISE#installation</a></p> <p>I don't want to repeat myself ;-) so go the the above link and check it.</p> <p>The 4.0.0 release essentially deals with packaging and stuff to be compatible with the latest mechanisms on the <strong>Jupyter</strong> notebook to install and enable <em>nbextensions</em> (and <strong>RISE</strong> is a <em>nbextension</em>). But also fixes bugs and provide some enhancements.</p> <p>Please report any issues with the beta here: <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>Have fun!!</p> <p>PS: I will write a more detailed post about <strong>RISE</strong> later. There are a lot of things to share about it!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-500-is-out.es.html b/cache/posts/rise-500-is-out.es.html index afde3bf4..96b96cb5 100644 --- a/cache/posts/rise-500-is-out.es.html +++ b/cache/posts/rise-500-is-out.es.html @@ -3,17 +3,14 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.0.0!</p> <p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> -<p><em>How you can get it?</em> -<!-- TEASER_END --></p> +<p><em>How you can get it?</em></p> +<!-- TEASER_END --> <p>If you live in the <strong>conda/anaconda ecosystem</strong>, you can install it with <code>conda install -c damianavila82 rise</code>.</p> <p>For further information about other installations, check <a href="https://github.com/damianavila/RISE#installation">https://github.com/damianavila/RISE#installation</a>.</p> <p>This released was focused in updating <strong>Reveal.js</strong> to the latest (3.5.0) and fix several bugs in the config mechanism. We also re-did the scrolling feature and, <em>finally</em>, we built the python 3.6 conda packages.</p> <p>Please report any issues here: <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And enjoy it!</p> <p><strong>PS</strong>: If you are using/developing <strong>RISE</strong> from master (I <strong>strongly</strong> recommend you to use the packaged solutions if you don't want to develop on it), it would a good idea to reinstall the whole thing from scratch to avoid collisions between the previous way to get Reveal.js and the current one. For more information about the <em>development installation</em>, please check <a href="https://github.com/damianavila/RISE#development">https://github.com/damianavila/RISE#development</a></p> - </div> </div> </div> - - diff --git a/cache/posts/rise-500-is-out.html b/cache/posts/rise-500-is-out.html index afde3bf4..96b96cb5 100644 --- a/cache/posts/rise-500-is-out.html +++ b/cache/posts/rise-500-is-out.html @@ -3,17 +3,14 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.0.0!</p> <p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> -<p><em>How you can get it?</em> -<!-- TEASER_END --></p> +<p><em>How you can get it?</em></p> +<!-- TEASER_END --> <p>If you live in the <strong>conda/anaconda ecosystem</strong>, you can install it with <code>conda install -c damianavila82 rise</code>.</p> <p>For further information about other installations, check <a href="https://github.com/damianavila/RISE#installation">https://github.com/damianavila/RISE#installation</a>.</p> <p>This released was focused in updating <strong>Reveal.js</strong> to the latest (3.5.0) and fix several bugs in the config mechanism. We also re-did the scrolling feature and, <em>finally</em>, we built the python 3.6 conda packages.</p> <p>Please report any issues here: <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And enjoy it!</p> <p><strong>PS</strong>: If you are using/developing <strong>RISE</strong> from master (I <strong>strongly</strong> recommend you to use the packaged solutions if you don't want to develop on it), it would a good idea to reinstall the whole thing from scratch to avoid collisions between the previous way to get Reveal.js and the current one. For more information about the <em>development installation</em>, please check <a href="https://github.com/damianavila/RISE#development">https://github.com/damianavila/RISE#development</a></p> - </div> </div> </div> - - diff --git a/cache/posts/rise-510-is-out.es.html b/cache/posts/rise-510-is-out.es.html index 4d9e7bde..19d186d6 100644 --- a/cache/posts/rise-510-is-out.es.html +++ b/cache/posts/rise-510-is-out.es.html @@ -3,8 +3,8 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.1.0!</p> <p><strong>RISE</strong> allows you show your <strong>Jupyter</strong> notebooks rendered as an <em>executable</em> <code>Reveal.js</code>-based slideshow. It is your very same notebook but <em>presented</em> in a <em>slidy</em> way!</p> -<p><em>What are the new goodies for this release?</em> -<!-- TEASER_END --></p> +<p><em>What are the new goodies for this release?</em></p> +<!-- TEASER_END --> <ul> <li><code>autolaunch</code> config option to enable immediate launch of the slideshow view as soon as you open your notebook, very useful to use at mybinder.</li> <li><code>smart exec</code> allows you to execute cells and then proceed to the next cell <em>WHEN</em> the context permits, pretty similar to the native experience in the notebook view but it takes into consideration the slideshow view limitations and particularities</li> @@ -32,9 +32,6 @@ <p>And thanks for using <strong>RISE</strong>!</p> <p><strong>ADDENDUM</strong></p> <p>We have detected some issues trying to install <strong>RISE</strong> on win boxes reported <a href="https://github.com/damianavila/RISE/issues/315">here</a>. I have rebuilt the packages and they seem to be working OK by now. Let us know if you have further issues. Thanks.</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-510-is-out.html b/cache/posts/rise-510-is-out.html index 4d9e7bde..19d186d6 100644 --- a/cache/posts/rise-510-is-out.html +++ b/cache/posts/rise-510-is-out.html @@ -3,8 +3,8 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.1.0!</p> <p><strong>RISE</strong> allows you show your <strong>Jupyter</strong> notebooks rendered as an <em>executable</em> <code>Reveal.js</code>-based slideshow. It is your very same notebook but <em>presented</em> in a <em>slidy</em> way!</p> -<p><em>What are the new goodies for this release?</em> -<!-- TEASER_END --></p> +<p><em>What are the new goodies for this release?</em></p> +<!-- TEASER_END --> <ul> <li><code>autolaunch</code> config option to enable immediate launch of the slideshow view as soon as you open your notebook, very useful to use at mybinder.</li> <li><code>smart exec</code> allows you to execute cells and then proceed to the next cell <em>WHEN</em> the context permits, pretty similar to the native experience in the notebook view but it takes into consideration the slideshow view limitations and particularities</li> @@ -32,9 +32,6 @@ <p>And thanks for using <strong>RISE</strong>!</p> <p><strong>ADDENDUM</strong></p> <p>We have detected some issues trying to install <strong>RISE</strong> on win boxes reported <a href="https://github.com/damianavila/RISE/issues/315">here</a>. I have rebuilt the packages and they seem to be working OK by now. Let us know if you have further issues. Thanks.</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-520-is-out.es.html b/cache/posts/rise-520-is-out.es.html index 6baa5c56..e5f8a93d 100644 --- a/cache/posts/rise-520-is-out.es.html +++ b/cache/posts/rise-520-is-out.es.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> <p><em>How you can get it?</em></p> <p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c damianavila82 rise</code>.</p> <p>For further information about other installations procedures, please check <a href="https://damianavila.github.io/RISE/installation.html">https://damianavila.github.io/RISE/installation.html</a>.</p> @@ -12,9 +12,6 @@ <p>You can see a detailed changelog at <a href="https://damianavila.github.io/RISE/changelog.html">https://damianavila.github.io/RISE/changelog.html</a></p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And I hope you enjoy the RISE experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-520-is-out.html b/cache/posts/rise-520-is-out.html index 6baa5c56..e5f8a93d 100644 --- a/cache/posts/rise-520-is-out.html +++ b/cache/posts/rise-520-is-out.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> <p><em>How you can get it?</em></p> <p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c damianavila82 rise</code>.</p> <p>For further information about other installations procedures, please check <a href="https://damianavila.github.io/RISE/installation.html">https://damianavila.github.io/RISE/installation.html</a>.</p> @@ -12,9 +12,6 @@ <p>You can see a detailed changelog at <a href="https://damianavila.github.io/RISE/changelog.html">https://damianavila.github.io/RISE/changelog.html</a></p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And I hope you enjoy the RISE experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-530-is-out.es.html b/cache/posts/rise-530-is-out.es.html index 4babf2ee..bab3656e 100644 --- a/cache/posts/rise-530-is-out.es.html +++ b/cache/posts/rise-530-is-out.es.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> <p><em>How you can get it?</em></p> <p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c damianavila82 rise</code>.</p> <p>For further information about other installations procedures, please check <a href="http://rise.readthedocs.io/en/stable/installation.html">http://rise.readthedocs.io/en/stable/installation.html</a>.</p> @@ -12,9 +12,6 @@ <p>You can see a detailed changelog at <a href="http://rise.readthedocs.io/en/stable/changelog.html#changes">http://rise.readthedocs.io/en/stable/changelog.html#changes</a></p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And we really hope you enjoy the RISE experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-530-is-out.html b/cache/posts/rise-530-is-out.html index 4babf2ee..bab3656e 100644 --- a/cache/posts/rise-530-is-out.html +++ b/cache/posts/rise-530-is-out.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> <p><em>How you can get it?</em></p> <p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c damianavila82 rise</code>.</p> <p>For further information about other installations procedures, please check <a href="http://rise.readthedocs.io/en/stable/installation.html">http://rise.readthedocs.io/en/stable/installation.html</a>.</p> @@ -12,9 +12,6 @@ <p>You can see a detailed changelog at <a href="http://rise.readthedocs.io/en/stable/changelog.html#changes">http://rise.readthedocs.io/en/stable/changelog.html#changes</a></p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And we really hope you enjoy the RISE experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-541-is-out.es.html b/cache/posts/rise-541-is-out.es.html index d49a693c..7a531e97 100644 --- a/cache/posts/rise-541-is-out.es.html +++ b/cache/posts/rise-541-is-out.es.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> <p><em>How you can get it?</em></p> <p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>For further information about other installations procedures, please check <a href="https://rise.readthedocs.io/en/docs_hot_fixes/installation.html">https://rise.readthedocs.io/en/docs_hot_fixes/installation.html</a>.</p> @@ -12,9 +12,6 @@ <p>You can see a detailed changelog at <a href="https://rise.readthedocs.io/en/docs_hot_fixes/changelog.html">https://rise.readthedocs.io/en/docs_hot_fixes/changelog.html</a></p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And we really hope you enjoy the RISE experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-541-is-out.html b/cache/posts/rise-541-is-out.html index d49a693c..7a531e97 100644 --- a/cache/posts/rise-541-is-out.html +++ b/cache/posts/rise-541-is-out.html @@ -2,8 +2,8 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> <p><em>How you can get it?</em></p> <p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>For further information about other installations procedures, please check <a href="https://rise.readthedocs.io/en/docs_hot_fixes/installation.html">https://rise.readthedocs.io/en/docs_hot_fixes/installation.html</a>.</p> @@ -12,9 +12,6 @@ <p>You can see a detailed changelog at <a href="https://rise.readthedocs.io/en/docs_hot_fixes/changelog.html">https://rise.readthedocs.io/en/docs_hot_fixes/changelog.html</a></p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>And we really hope you enjoy the RISE experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-550-is-out.es.html b/cache/posts/rise-550-is-out.es.html index 15341c2b..08416ae0 100644 --- a/cache/posts/rise-550-is-out.es.html +++ b/cache/posts/rise-550-is-out.es.html @@ -2,17 +2,18 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> -<blockquote><p>Starting from this release, <code>pip install rise</code> will install everything you need, no more additional steps such as <code>jupyter nbextension install</code>.</p> +<blockquote> +<p>Starting from this release, <code>pip install rise</code> will install everything you need, no more additional steps such as <code>jupyter nbextension install</code>.</p> </blockquote> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/stable/installation.html">https://rise.readthedocs.io/en/stable/installation.html</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> <ul> -<li>support nbextension installation straight from <code>setup.py</code> </li> +<li>support nbextension installation straight from <code>setup.py</code></li> <li>fix versioning issues and support compatible versions for npm and python</li> <li>documentation updates (chalkboard and speaker notes) and some other documentation fixes</li> <li>improvements on keyboard shortcuts and fixes for the "auto-select" feature</li> @@ -21,9 +22,6 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a <p>You can see a detailed changelog at <a href="https://rise.readthedocs.io/en/stable/changelog.html#changes">https://rise.readthedocs.io/en/stable/changelog.html#changes</a>.</p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>Finally, we <strong>really</strong> hope you continue enjoying the <strong>RISE</strong> experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-550-is-out.html b/cache/posts/rise-550-is-out.html index 15341c2b..08416ae0 100644 --- a/cache/posts/rise-550-is-out.html +++ b/cache/posts/rise-550-is-out.html @@ -2,17 +2,18 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> -<blockquote><p>Starting from this release, <code>pip install rise</code> will install everything you need, no more additional steps such as <code>jupyter nbextension install</code>.</p> +<blockquote> +<p>Starting from this release, <code>pip install rise</code> will install everything you need, no more additional steps such as <code>jupyter nbextension install</code>.</p> </blockquote> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/stable/installation.html">https://rise.readthedocs.io/en/stable/installation.html</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> <ul> -<li>support nbextension installation straight from <code>setup.py</code> </li> +<li>support nbextension installation straight from <code>setup.py</code></li> <li>fix versioning issues and support compatible versions for npm and python</li> <li>documentation updates (chalkboard and speaker notes) and some other documentation fixes</li> <li>improvements on keyboard shortcuts and fixes for the "auto-select" feature</li> @@ -21,9 +22,6 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a <p>You can see a detailed changelog at <a href="https://rise.readthedocs.io/en/stable/changelog.html#changes">https://rise.readthedocs.io/en/stable/changelog.html#changes</a>.</p> <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a></p> <p>Finally, we <strong>really</strong> hope you continue enjoying the <strong>RISE</strong> experience!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-560-is-out.es.html b/cache/posts/rise-560-is-out.es.html index 655115bf..453ec255 100644 --- a/cache/posts/rise-560-is-out.es.html +++ b/cache/posts/rise-560-is-out.es.html @@ -2,18 +2,18 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/maint-5.6/installation.html">here</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> <ul> <li>We now rely on <code>reveal.js</code> 3.8.0</li> <li>We now support "dark" reveal.js themes (nice... isn't it ;-)</li> </ul> -<p><img src="../galleries/rise/dark_slides.png" alt=""></p> +<p><img alt="" src="../galleries/rise/dark_slides.png"/></p> <ul> <li>other minor bug fixes and enhancements (CSS, build, docs)!</li> </ul> @@ -21,9 +21,6 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a>.</p> <p>Finally, we <strong>really</strong> hope you continue enjoying the <strong>RISE</strong> experience!</p> <p><strong>PS</strong>: We just realized we never ANN'ed the release of <strong>RISE</strong> 5.5.1 on July. I was a really minor patch release to fix an annoying bug with some keyboard shortcuts. Very sorry about that missed ANN!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-560-is-out.html b/cache/posts/rise-560-is-out.html index 655115bf..453ec255 100644 --- a/cache/posts/rise-560-is-out.html +++ b/cache/posts/rise-560-is-out.html @@ -2,18 +2,18 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/maint-5.6/installation.html">here</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> <ul> <li>We now rely on <code>reveal.js</code> 3.8.0</li> <li>We now support "dark" reveal.js themes (nice... isn't it ;-)</li> </ul> -<p><img src="../galleries/rise/dark_slides.png" alt=""></p> +<p><img alt="" src="../galleries/rise/dark_slides.png"/></p> <ul> <li>other minor bug fixes and enhancements (CSS, build, docs)!</li> </ul> @@ -21,9 +21,6 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a <p>Please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a>.</p> <p>Finally, we <strong>really</strong> hope you continue enjoying the <strong>RISE</strong> experience!</p> <p><strong>PS</strong>: We just realized we never ANN'ed the release of <strong>RISE</strong> 5.5.1 on July. I was a really minor patch release to fix an annoying bug with some keyboard shortcuts. Very sorry about that missed ANN!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-561-is-out.es.html b/cache/posts/rise-561-is-out.es.html index 6aa12431..f6f6f515 100644 --- a/cache/posts/rise-561-is-out.es.html +++ b/cache/posts/rise-561-is-out.es.html @@ -2,13 +2,13 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/stable/installation.html">here</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> <ul> <li>Remove accent in setup.py that was occasionally breaking installation (yes, my name making troubles again ;-)</li> <li>Properly load companion css when running with Jupytext enabled (we need to be compatible with new and exciting project under the Jupyter ecosystem)</li> @@ -16,10 +16,7 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a </ul> <p>You can see a detailed changelog <a href="https://rise.readthedocs.io/en/stable/changelog.html#changes">here</a>.</p> <p>And remember, please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a>.</p> -<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>Stay tuned, we will have very exciting news soon!</p> - +<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>Stay tuned, we will have very exciting news soon!</p> </div> </div> </div> - - diff --git a/cache/posts/rise-561-is-out.html b/cache/posts/rise-561-is-out.html index 6aa12431..f6f6f515 100644 --- a/cache/posts/rise-561-is-out.html +++ b/cache/posts/rise-561-is-out.html @@ -2,13 +2,13 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/stable/installation.html">here</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p>This released was mainly focused on:</p> <ul> <li>Remove accent in setup.py that was occasionally breaking installation (yes, my name making troubles again ;-)</li> <li>Properly load companion css when running with Jupytext enabled (we need to be compatible with new and exciting project under the Jupyter ecosystem)</li> @@ -16,10 +16,7 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a </ul> <p>You can see a detailed changelog <a href="https://rise.readthedocs.io/en/stable/changelog.html#changes">here</a>.</p> <p>And remember, please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a>.</p> -<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>Stay tuned, we will have very exciting news soon!</p> - +<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>Stay tuned, we will have very exciting news soon!</p> </div> </div> </div> - - diff --git a/cache/posts/rise-571-is-out.es.html b/cache/posts/rise-571-is-out.es.html index f03a5364..a8086c7b 100644 --- a/cache/posts/rise-571-is-out.es.html +++ b/cache/posts/rise-571-is-out.es.html @@ -2,18 +2,18 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/stable/installation.html">here</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p><strong>Wait!</strong> Latest release was 5.6.1, where is <strong>RISE</strong> 5.7.0?</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p><strong>Wait!</strong> Latest release was 5.6.1, where is <strong>RISE</strong> 5.7.0?</p> <p>We shipped 5.7.0 a few days ago and we found some issues that deserved immediate patches and a new shiny release. This is why you have <strong>RISE</strong> 5.7.1 available now.</p> <p>So, these releases were mainly focused on:</p> <ul> -<li>Adding color support to the chalkboard </li> +<li>Adding color support to the chalkboard</li> <li>Upload to reveal.js 3.9.2</li> <li>Fix not working notes keyboard shortcut (5.7.0 bug)</li> <li>Fix buttons disappearance (5.7.0 bug)</li> @@ -24,10 +24,7 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a </ul> <p>You can see a detailed changelog <a href="https://rise.readthedocs.io/en/stable/changelog.html#changes">here</a>.</p> <p>And remember, please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a>.</p> -<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>You should keep staying tuned, we will have very exciting news sooner than later!</p> - +<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>You should keep staying tuned, we will have very exciting news sooner than later!</p> </div> </div> </div> - - diff --git a/cache/posts/rise-571-is-out.html b/cache/posts/rise-571-is-out.html index f03a5364..a8086c7b 100644 --- a/cache/posts/rise-571-is-out.html +++ b/cache/posts/rise-571-is-out.html @@ -2,18 +2,18 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -<!-- TEASER_END --></p> -<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<!-- TEASER_END --> +<h3 id="How-you-can-get-it?"><em>How you can get it?</em><a class="anchor-link" href="#How-you-can-get-it?">¶</a></h3><p>If you are a <strong>conda/anaconda</strong> user, you can install it with <code>conda install -c conda-forge rise</code>.</p> <p>If you are a <strong>pip</strong> user, you can install it with <code>pip install rise</code>.</p> <p>For further information about the installation process, please check <a href="https://rise.readthedocs.io/en/stable/installation.html">here</a>.</p> -<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p><strong>Wait!</strong> Latest release was 5.6.1, where is <strong>RISE</strong> 5.7.0?</p> +<h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="anchor-link" href="#What-are-the-latest-news?">¶</a></h3><p><strong>Wait!</strong> Latest release was 5.6.1, where is <strong>RISE</strong> 5.7.0?</p> <p>We shipped 5.7.0 a few days ago and we found some issues that deserved immediate patches and a new shiny release. This is why you have <strong>RISE</strong> 5.7.1 available now.</p> <p>So, these releases were mainly focused on:</p> <ul> -<li>Adding color support to the chalkboard </li> +<li>Adding color support to the chalkboard</li> <li>Upload to reveal.js 3.9.2</li> <li>Fix not working notes keyboard shortcut (5.7.0 bug)</li> <li>Fix buttons disappearance (5.7.0 bug)</li> @@ -24,10 +24,7 @@ <h3 id="What-are-the-latest-news?"><em>What are the latest news?</em><a class="a </ul> <p>You can see a detailed changelog <a href="https://rise.readthedocs.io/en/stable/changelog.html#changes">here</a>.</p> <p>And remember, please report any issues at <a href="https://github.com/damianavila/RISE/issues">https://github.com/damianavila/RISE/issues</a>.</p> -<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>You should keep staying tuned, we will have very exciting news sooner than later!</p> - +<h3 id="What's-next?"><em>What's next?</em><a class="anchor-link" href="#What's-next?">¶</a></h3><p>You should keep staying tuned, we will have very exciting news sooner than later!</p> </div> </div> </div> - - diff --git a/cache/posts/rise-meets-jupyterlab.es.html b/cache/posts/rise-meets-jupyterlab.es.html index 44e923a2..4fb7adb4 100644 --- a/cache/posts/rise-meets-jupyterlab.es.html +++ b/cache/posts/rise-meets-jupyterlab.es.html @@ -3,16 +3,14 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p><a href="https://github.com/jupyterlab/jupyterlab"><strong>JupyterLab</strong></a> is the future for the notebook/authoring experience.</p> <p>And people started to ask me if we will have <a href="https://github.com/damianavila/RISE"><strong>RISE</strong></a> on <strong>JupyterLab</strong></p> -<p>Do you want to know the answer? -<!-- TEASER_END --></p> +<p>Do you want to know the answer?</p> +<!-- TEASER_END --> <p>OK, first, an <strong>important</strong> note, this is just a afternoon hack with the jupyterlab extensions machinery. This is a <strong>very early</strong> PoC showing that things are possible, but it is not a <em>shareable</em> code base, at least, not yet ;-)</p> -<p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="en" dir="ltr">This seems promising!<br>RISE on JupyterLab PoC (hacks everywhere, code not shareable yet ;-)<a href="https://t.co/4CpQdb2Px4">https://t.co/4CpQdb2Px4</a><a href="https://twitter.com/ProjectJupyter">@ProjectJupyter</a> <a href="https://twitter.com/revealjs">@revealjs</a></p>— Damián Avila (@damian_avila) <a href="https://twitter.com/damian_avila/status/876567606274215937">June 18, 2017</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>Very promising, don't you think?</p> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p dir="ltr" lang="en">This seems promising!<br/>RISE on JupyterLab PoC (hacks everywhere, code not shareable yet ;-)<a href="https://t.co/4CpQdb2Px4">https://t.co/4CpQdb2Px4</a><a href="https://twitter.com/ProjectJupyter">@ProjectJupyter</a> <a href="https://twitter.com/revealjs">@revealjs</a></p>— Damián Avila (@damian_avila) <a href="https://twitter.com/damian_avila/status/876567606274215937">June 18, 2017</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>Very promising, don't you think?</p> <p>Best!</p> - </div> </div> </div> - - diff --git a/cache/posts/rise-meets-jupyterlab.html b/cache/posts/rise-meets-jupyterlab.html index 44e923a2..4fb7adb4 100644 --- a/cache/posts/rise-meets-jupyterlab.html +++ b/cache/posts/rise-meets-jupyterlab.html @@ -3,16 +3,14 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p><a href="https://github.com/jupyterlab/jupyterlab"><strong>JupyterLab</strong></a> is the future for the notebook/authoring experience.</p> <p>And people started to ask me if we will have <a href="https://github.com/damianavila/RISE"><strong>RISE</strong></a> on <strong>JupyterLab</strong></p> -<p>Do you want to know the answer? -<!-- TEASER_END --></p> +<p>Do you want to know the answer?</p> +<!-- TEASER_END --> <p>OK, first, an <strong>important</strong> note, this is just a afternoon hack with the jupyterlab extensions machinery. This is a <strong>very early</strong> PoC showing that things are possible, but it is not a <em>shareable</em> code base, at least, not yet ;-)</p> -<p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="en" dir="ltr">This seems promising!<br>RISE on JupyterLab PoC (hacks everywhere, code not shareable yet ;-)<a href="https://t.co/4CpQdb2Px4">https://t.co/4CpQdb2Px4</a><a href="https://twitter.com/ProjectJupyter">@ProjectJupyter</a> <a href="https://twitter.com/revealjs">@revealjs</a></p>— Damián Avila (@damian_avila) <a href="https://twitter.com/damian_avila/status/876567606274215937">June 18, 2017</a></blockquote></p> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>Very promising, don't you think?</p> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p dir="ltr" lang="en">This seems promising!<br/>RISE on JupyterLab PoC (hacks everywhere, code not shareable yet ;-)<a href="https://t.co/4CpQdb2Px4">https://t.co/4CpQdb2Px4</a><a href="https://twitter.com/ProjectJupyter">@ProjectJupyter</a> <a href="https://twitter.com/revealjs">@revealjs</a></p>— Damián Avila (@damian_avila) <a href="https://twitter.com/damian_avila/status/876567606274215937">June 18, 2017</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>Very promising, don't you think?</p> <p>Best!</p> - </div> </div> </div> - - diff --git a/cache/posts/scipycon-argentina-2013.es.html b/cache/posts/scipycon-argentina-2013.es.html index 45d3a466..8c9f13cc 100644 --- a/cache/posts/scipycon-argentina-2013.es.html +++ b/cache/posts/scipycon-argentina-2013.es.html @@ -1,20 +1,19 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=91a783dd"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the first <strong>SciPy Conference in Argentina</strong> (as far as I know, it is also the first one in Latin American).</p> <p>It will be held from <strong>16 to 18th of May in Puerto Madryn</strong>, at the Patagonia Argentina (more details at SciPyCon <a href="http://scipycon.com.ar">homepage</a>).</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=47466e61"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <!-- TEASER_END --> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=75eb0754"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very proud to have this kind of conference in my country, and I would like to <strong>thanks</strong> to the organizers (and the sponsors) for all their hard work to make it happens.</p> @@ -25,9 +24,6 @@ <p>Why I am writing in English about a Spanish Conference? Because I want to <strong>spread</strong> the word about this conference as much as I can and because there are international speakers scheduled (and I <strong>would love</strong> to see more in the next conference!)</p> <p>I hope to see you there!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/scipycon-argentina-2013.html b/cache/posts/scipycon-argentina-2013.html index 45d3a466..b42d3cca 100644 --- a/cache/posts/scipycon-argentina-2013.html +++ b/cache/posts/scipycon-argentina-2013.html @@ -1,20 +1,19 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=79b31221"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the first <strong>SciPy Conference in Argentina</strong> (as far as I know, it is also the first one in Latin American).</p> <p>It will be held from <strong>16 to 18th of May in Puerto Madryn</strong>, at the Patagonia Argentina (more details at SciPyCon <a href="http://scipycon.com.ar">homepage</a>).</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=ff5dad74"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <!-- TEASER_END --> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b5bc476b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very proud to have this kind of conference in my country, and I would like to <strong>thanks</strong> to the organizers (and the sponsors) for all their hard work to make it happens.</p> @@ -25,9 +24,6 @@ <p>Why I am writing in English about a Spanish Conference? Because I want to <strong>spread</strong> the word about this conference as much as I can and because there are international speakers scheduled (and I <strong>would love</strong> to see more in the next conference!)</p> <p>I hope to see you there!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/slider-for-nbconvert.es.html b/cache/posts/slider-for-nbconvert.es.html index 1504625a..b8cec542 100644 --- a/cache/posts/slider-for-nbconvert.es.html +++ b/cache/posts/slider-for-nbconvert.es.html @@ -1,23 +1,33 @@ +<!-- title: Slider for nbconvert... --> +<!-- slug: slider-for-nbconvert --> +<!-- date: 2012/12/02 21:40:56 --> +<!-- tags: python, IPython, nbconvert, reveal --> +<!-- link: --> +<!-- description: --> <p>I have implemented reveal.js slides for vIPer (I will publish a post about that the next days...).</p> <p><strong>Note</strong> from the future: example no longer available</p> <p>Then, I showed the resulting slides <a class="reference external" href="http://www.slideviper.oquanta.info/reveal/Example_new_slides.html">http://www.slideviper.oquanta.info/reveal/Example_new_slides.html</a> to some IPython team members and one of them, Brian, says:</p> <blockquote> -"it would be great if nbcovert could output reveal.js slides."</blockquote> +<p>"it would be great if nbcovert could output reveal.js slides."</p> +</blockquote> <p>and then, Fernando (if you know what is IPython, you know these guys) replies:</p> <blockquote> -"we can certainly add that kind of functionality as output options..."</blockquote> +<p>"we can certainly add that kind of functionality as output options..."</p> +</blockquote> <p>So, keeping in mind the implementation in vIPer, I provided a dirty and basic new implementation to get reveal-based slides from nbconvert.</p> <!-- TEASER_END --> <p>To test it just go to:</p> <blockquote> -<a class="reference external" href="https://github.com/damianavila/nbconvert.git">https://github.com/damianavila/nbconvert.git</a></blockquote> +<p><a class="reference external" href="https://github.com/damianavila/nbconvert.git">https://github.com/damianavila/nbconvert.git</a></p> +</blockquote> <p>switch to branch slider_converter,</p> <p>and type:</p> <blockquote> -python nbconvert.py -f slider example_slide.ipynb</blockquote> +<p>python nbconvert.py -f slider example_slide.ipynb</p> +</blockquote> <p>You can see a video showing the basic functionality here (big sorry for the quality, I will post a better one soon):</p> <iframe width="420" height="315" src="http://www.youtube.com/embed/mNEAJvFDneE" frameborder="0" allowfullscreen></iframe><p>There is a lot of stuff to do with that... I will do it when I get some free time.</p> diff --git a/cache/posts/slider-for-nbconvert.html b/cache/posts/slider-for-nbconvert.html index 1504625a..5ff45c87 100644 --- a/cache/posts/slider-for-nbconvert.html +++ b/cache/posts/slider-for-nbconvert.html @@ -4,20 +4,24 @@ <p>Then, I showed the resulting slides <a class="reference external" href="http://www.slideviper.oquanta.info/reveal/Example_new_slides.html">http://www.slideviper.oquanta.info/reveal/Example_new_slides.html</a> to some IPython team members and one of them, Brian, says:</p> <blockquote> -"it would be great if nbcovert could output reveal.js slides."</blockquote> +<p>"it would be great if nbcovert could output reveal.js slides."</p> +</blockquote> <p>and then, Fernando (if you know what is IPython, you know these guys) replies:</p> <blockquote> -"we can certainly add that kind of functionality as output options..."</blockquote> +<p>"we can certainly add that kind of functionality as output options..."</p> +</blockquote> <p>So, keeping in mind the implementation in vIPer, I provided a dirty and basic new implementation to get reveal-based slides from nbconvert.</p> <!-- TEASER_END --> <p>To test it just go to:</p> <blockquote> -<a class="reference external" href="https://github.com/damianavila/nbconvert.git">https://github.com/damianavila/nbconvert.git</a></blockquote> +<p><a class="reference external" href="https://github.com/damianavila/nbconvert.git">https://github.com/damianavila/nbconvert.git</a></p> +</blockquote> <p>switch to branch slider_converter,</p> <p>and type:</p> <blockquote> -python nbconvert.py -f slider example_slide.ipynb</blockquote> +<p>python nbconvert.py -f slider example_slide.ipynb</p> +</blockquote> <p>You can see a video showing the basic functionality here (big sorry for the quality, I will post a better one soon):</p> <iframe width="420" height="315" src="http://www.youtube.com/embed/mNEAJvFDneE" frameborder="0" allowfullscreen></iframe><p>There is a lot of stuff to do with that... I will do it when I get some free time.</p> diff --git a/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html b/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html index b22b80da..6ee2d8f2 100644 --- a/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html +++ b/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.es.html @@ -3,22 +3,21 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Short Notice</strong>:</p> <p><strong>After some months of silence, I am back... A lot of things have happened in my life lately, some of them are really good things... some others don't. And all those things kept me very busy, but finally I have made me some time to write again! ;-)</strong></p> -<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>. -<!-- TEASER_END --></p> +<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>.</p> +<!-- TEASER_END --> <p>When I was at <strong>SciPy 2013</strong>, one of the talks I presented was about the <strong>IPython slides</strong> (if you dont know what I am talking about, just check some of these <a href="../categories/slideshow.html">posts</a>). And one of the last things I presented in that talk was an early prototype of <strong>Slideviewer</strong>, an <a href="http://nbviewer.ipython.org/"><strong>NBviewer</strong></a>'s clon, but able to render <strong>IPython slides</strong> instead of plain <strong>IPython notebooks</strong> (<code>.ipynb</code>).</p> <p>The main idea behind <strong>Slideviewer</strong> was to provide you an easy way to share your <strong>IPython slides</strong>. As I pointed out in older posts and comments, you can <em>deploy</em> your <strong>IPython slides</strong> (the slides.html file plus the <strong>reveal.js</strong> library) using <strong>Github pages</strong> or any other service, but with <strong>Slideviewer</strong>, you only need to host your <code>.ipynb</code> somewhere (ie, <strong>Github</strong> repo, gist, etc.), and just pass the url to the <strong>Slideviewer</strong> service (the same way you do it with the NBviewer service) which will render your <code>.ipynb</code> to an IPython slide <em>automagically</em>.</p> <p><strong>Slideviewer</strong> will follow <strong>NBviewer</strong> updates once a week, as close as it can be, essentially because some things are relevant for both apps, but others don't.</p> <p>And, in the future, we can probably merge the <strong>Slideviewer</strong> app onto the <strong>NBviewer</strong> app, but we need to make some things first, so I think is useful to have a separate service running right now, to help people to easily spread their <strong>IPython slides</strong>.</p> <p><strong>Note</strong> from the future: site no longer available, use nbviewer instead.</p> <p><strong>Slideviewer</strong> lives here (for now): <a href="http://slideviewer.herokuapp.com/">http://slideviewer.herokuapp.com/</a> and you can see it <em>iframed</em> below:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://slideviewer.herokuapp.com/" width="800" height="800"></iframe> +<iframe height="800" src="http://slideviewer.herokuapp.com/" width="800"></iframe> </div> </div> </div> @@ -30,9 +29,6 @@ <p>OK, I hope you find this service useful!</p> <p>See you soon.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html b/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html index b22b80da..6ee2d8f2 100644 --- a/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html +++ b/cache/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html @@ -3,22 +3,21 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Short Notice</strong>:</p> <p><strong>After some months of silence, I am back... A lot of things have happened in my life lately, some of them are really good things... some others don't. And all those things kept me very busy, but finally I have made me some time to write again! ;-)</strong></p> -<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>. -<!-- TEASER_END --></p> +<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>.</p> +<!-- TEASER_END --> <p>When I was at <strong>SciPy 2013</strong>, one of the talks I presented was about the <strong>IPython slides</strong> (if you dont know what I am talking about, just check some of these <a href="../categories/slideshow.html">posts</a>). And one of the last things I presented in that talk was an early prototype of <strong>Slideviewer</strong>, an <a href="http://nbviewer.ipython.org/"><strong>NBviewer</strong></a>'s clon, but able to render <strong>IPython slides</strong> instead of plain <strong>IPython notebooks</strong> (<code>.ipynb</code>).</p> <p>The main idea behind <strong>Slideviewer</strong> was to provide you an easy way to share your <strong>IPython slides</strong>. As I pointed out in older posts and comments, you can <em>deploy</em> your <strong>IPython slides</strong> (the slides.html file plus the <strong>reveal.js</strong> library) using <strong>Github pages</strong> or any other service, but with <strong>Slideviewer</strong>, you only need to host your <code>.ipynb</code> somewhere (ie, <strong>Github</strong> repo, gist, etc.), and just pass the url to the <strong>Slideviewer</strong> service (the same way you do it with the NBviewer service) which will render your <code>.ipynb</code> to an IPython slide <em>automagically</em>.</p> <p><strong>Slideviewer</strong> will follow <strong>NBviewer</strong> updates once a week, as close as it can be, essentially because some things are relevant for both apps, but others don't.</p> <p>And, in the future, we can probably merge the <strong>Slideviewer</strong> app onto the <strong>NBviewer</strong> app, but we need to make some things first, so I think is useful to have a separate service running right now, to help people to easily spread their <strong>IPython slides</strong>.</p> <p><strong>Note</strong> from the future: site no longer available, use nbviewer instead.</p> <p><strong>Slideviewer</strong> lives here (for now): <a href="http://slideviewer.herokuapp.com/">http://slideviewer.herokuapp.com/</a> and you can see it <em>iframed</em> below:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe src="http://slideviewer.herokuapp.com/" width="800" height="800"></iframe> +<iframe height="800" src="http://slideviewer.herokuapp.com/" width="800"></iframe> </div> </div> </div> @@ -30,9 +29,6 @@ <p>OK, I hope you find this service useful!</p> <p>See you soon.</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html b/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html index 316663d3..18ce0af0 100644 --- a/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html +++ b/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.es.html @@ -3,12 +3,16 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -<!-- TEASER_END --></p> -<h3 id="Why-is-Project-Jupyter-receiving-the-ACM-Award?">Why is <strong>Project Jupyter</strong> receiving the ACM Award?<a class="anchor-link" href="#Why-is-Project-Jupyter-receiving-the-ACM-Award?">¶</a></h3><p>There are several reasons, but let’s focus on the following:</p> -<p>1) <strong>Jupyter</strong> is explicitly designed for the task of computing interactively</p> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<!-- TEASER_END --> +<h3 id="Why-is-Project-Jupyter-receiving-the-ACM-Award?">Why is <strong>Project Jupyter</strong> receiving the ACM Award?<a class="anchor-link" href="#Why-is-Project-Jupyter-receiving-the-ACM-Award?">¶</a></h3><p>There are several reasons, but let’s focus on the following:</p> +<ol> +<li><strong>Jupyter</strong> is explicitly designed for the task of computing interactively</li> +</ol> <p><strong>Jupyter</strong> has become an important part of the daily workflow in research, education, journalism, and industry allowing people to process, analyze, and manipulate data and get insights from it in a fluid, pleasant, and effective way.</p> -<p>2) <strong>Jupyter</strong> fosters communication and collaboration through open standardized formats</p> +<ol start="2"> +<li><strong>Jupyter</strong> fosters communication and collaboration through open standardized formats</li> +</ol> <p>The open and standardized <strong>Jupyter</strong> notebook file format is designed to capture, display and share natural language, code, and results in a single computational narrative. This is a key aspect of the scientific and research life cycle. You want to share your findings and thoughts with other people and <strong>Jupyter</strong> helps with that goal providing a self-contained and powerful computational narrative.</p> <p>The stability and interoperability of open standards also provide a foundation for others to experiment, collaborate, and build tools inspired by their unique goals and perspectives. We have also provided tools to support <strong>Jupyter</strong> deployment in multi-user environments, making it easier to access common computational resources and share live computational environments. <strong>JupyterHub</strong> (and <strong>Binder</strong>) now supports industry deployment, large-scale education and reproducible research.</p> <p>But the most important thing here, as I said before, is the <strong>Jupyter Community</strong>. <strong>IPython</strong> and <strong>Jupyter</strong> have grown to be the product of thousands of contributors and users. We are always seeking to ensure the project is welcoming, supports an increasingly diverse community, and helps solidify a foundation for it to be sustainable.</p> @@ -16,15 +20,12 @@ <h3 id="Why-is-Project-Jupyter-receiving-the-ACM-Award?">Why is <strong>Project <p>So, thank <strong>YOU</strong> for your continuous support, contributions, and feedback!</p> <p><strong>PS</strong></p> <p>On a personal note, I would also like to thank <strong>Anaconda, Inc</strong>. I have been working here for a long time now and it was/is a great experience. I am grateful for the generous support they provided in building the next <strong>Jupyter</strong> experience, <strong>JupyterLab</strong>. And I am also grateful for the continuous support in my involvement with the <strong>Jupyter</strong> community. I really appreciate that!</p> -<h3 id="Update-(Jun)">Update (Jun)<a class="anchor-link" href="#Update-(Jun)">¶</a></h3><p>Last weekend a big part of the <strong>Jupyter</strong> team received the announced prize in the <strong>ACM</strong> 2018 banquet at San Francisco, CA. +<h3 id="Update-(Jun)">Update (Jun)<a class="anchor-link" href="#Update-(Jun)">¶</a></h3><p>Last weekend a big part of the <strong>Jupyter</strong> team received the announced prize in the <strong>ACM</strong> 2018 banquet at San Francisco, CA. Some pics or it did not happen!</p> -<p><img src="../galleries/acm/1.jpg" alt=""></p> +<p><img alt="" src="../galleries/acm/1.jpg"/></p> <p>A better quality one ;-)</p> -<p><img src="../galleries/acm/2.jpg" alt=""></p> +<p><img alt="" src="../galleries/acm/2.jpg"/></p> <p>Thanks again to all who contributes to the project!</p> - </div> </div> </div> - - diff --git a/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html b/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html index 316663d3..18ce0af0 100644 --- a/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html +++ b/cache/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html @@ -3,12 +3,16 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -<!-- TEASER_END --></p> -<h3 id="Why-is-Project-Jupyter-receiving-the-ACM-Award?">Why is <strong>Project Jupyter</strong> receiving the ACM Award?<a class="anchor-link" href="#Why-is-Project-Jupyter-receiving-the-ACM-Award?">¶</a></h3><p>There are several reasons, but let’s focus on the following:</p> -<p>1) <strong>Jupyter</strong> is explicitly designed for the task of computing interactively</p> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<!-- TEASER_END --> +<h3 id="Why-is-Project-Jupyter-receiving-the-ACM-Award?">Why is <strong>Project Jupyter</strong> receiving the ACM Award?<a class="anchor-link" href="#Why-is-Project-Jupyter-receiving-the-ACM-Award?">¶</a></h3><p>There are several reasons, but let’s focus on the following:</p> +<ol> +<li><strong>Jupyter</strong> is explicitly designed for the task of computing interactively</li> +</ol> <p><strong>Jupyter</strong> has become an important part of the daily workflow in research, education, journalism, and industry allowing people to process, analyze, and manipulate data and get insights from it in a fluid, pleasant, and effective way.</p> -<p>2) <strong>Jupyter</strong> fosters communication and collaboration through open standardized formats</p> +<ol start="2"> +<li><strong>Jupyter</strong> fosters communication and collaboration through open standardized formats</li> +</ol> <p>The open and standardized <strong>Jupyter</strong> notebook file format is designed to capture, display and share natural language, code, and results in a single computational narrative. This is a key aspect of the scientific and research life cycle. You want to share your findings and thoughts with other people and <strong>Jupyter</strong> helps with that goal providing a self-contained and powerful computational narrative.</p> <p>The stability and interoperability of open standards also provide a foundation for others to experiment, collaborate, and build tools inspired by their unique goals and perspectives. We have also provided tools to support <strong>Jupyter</strong> deployment in multi-user environments, making it easier to access common computational resources and share live computational environments. <strong>JupyterHub</strong> (and <strong>Binder</strong>) now supports industry deployment, large-scale education and reproducible research.</p> <p>But the most important thing here, as I said before, is the <strong>Jupyter Community</strong>. <strong>IPython</strong> and <strong>Jupyter</strong> have grown to be the product of thousands of contributors and users. We are always seeking to ensure the project is welcoming, supports an increasingly diverse community, and helps solidify a foundation for it to be sustainable.</p> @@ -16,15 +20,12 @@ <h3 id="Why-is-Project-Jupyter-receiving-the-ACM-Award?">Why is <strong>Project <p>So, thank <strong>YOU</strong> for your continuous support, contributions, and feedback!</p> <p><strong>PS</strong></p> <p>On a personal note, I would also like to thank <strong>Anaconda, Inc</strong>. I have been working here for a long time now and it was/is a great experience. I am grateful for the generous support they provided in building the next <strong>Jupyter</strong> experience, <strong>JupyterLab</strong>. And I am also grateful for the continuous support in my involvement with the <strong>Jupyter</strong> community. I really appreciate that!</p> -<h3 id="Update-(Jun)">Update (Jun)<a class="anchor-link" href="#Update-(Jun)">¶</a></h3><p>Last weekend a big part of the <strong>Jupyter</strong> team received the announced prize in the <strong>ACM</strong> 2018 banquet at San Francisco, CA. +<h3 id="Update-(Jun)">Update (Jun)<a class="anchor-link" href="#Update-(Jun)">¶</a></h3><p>Last weekend a big part of the <strong>Jupyter</strong> team received the announced prize in the <strong>ACM</strong> 2018 banquet at San Francisco, CA. Some pics or it did not happen!</p> -<p><img src="../galleries/acm/1.jpg" alt=""></p> +<p><img alt="" src="../galleries/acm/1.jpg"/></p> <p>A better quality one ;-)</p> -<p><img src="../galleries/acm/2.jpg" alt=""></p> +<p><img alt="" src="../galleries/acm/2.jpg"/></p> <p>Thanks again to all who contributes to the project!</p> - </div> </div> </div> - - diff --git a/cache/posts/supporting-rise.es.html b/cache/posts/supporting-rise.es.html index 23526270..a424b30d 100644 --- a/cache/posts/supporting-rise.es.html +++ b/cache/posts/supporting-rise.es.html @@ -3,12 +3,12 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h3 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="#How-you-can-help-us-(with-money-;-)">¶</a></h3><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -<!-- TEASER_END --></p> +<h3 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="#How-you-can-help-us-(with-money-;-)">¶</a></h3><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<!-- TEASER_END --> <p>At <a href="https://ko-fi.com/damianavila">https://ko-fi.com/damianavila</a> you can either:</p> <ul> <li>Buy me some stars as general support (and you will be listed on <a href="https://damianavila.github.io/blog/stories/support-me.html">this blog support page</a>)</li> @@ -16,17 +16,15 @@ <h3 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-) </ul> <p>We <strong>highly</strong> encourage you to choose one of the <strong>RISE</strong>-related available commissions.</p> <p>Press the <em>Commission me</em> button located below for more details on each commission.</p> -<p><a href="https://ko-fi.com/damianavila/commissions"><img src="../galleries/rise/commission.png" alt=""></a></p> +<p><a href="https://ko-fi.com/damianavila/commissions"><img alt="" src="../galleries/rise/commission.png"/></a></p> <p>Currently, most (if not all) of my commissions are associated with <strong>RISE</strong> support and ongoing development. These are just a <strong>one-time</strong> commissions, so if you want to support us in a <strong>continuous/recurrent</strong> way, you can buy us a higher commission/tier (not monthly subscription available)!</p> <p>Btw, buying a commission will allow you to be listed on the <a href="https://rise.readthedocs.io/en/stable/support.html">RISE supporters' page</a> (logos reserved for high tiers commissions).</p> <p>Alternatively, if you don't like this platform (or the associated electronic payment method) and you still want to support us or, maybe, you are a company and you need to process things outside of this platform, you can drop us a DM at <code>damian_avila</code>'s on <a href="https://twitter.com/damian_avila">Twitter</a> or <a href="https://t.me/damian_avila">Telegram</a> and we can figure it out better alternatives for you. As always, you can also reach us at our public <a href="https://gitter.im/damianavila/RISE">gitter channel</a> to start the conversation.</p> -<h3 id="Why-you-are-asking-for-support?">Why you are asking for support?<a class="anchor-link" href="#Why-you-are-asking-for-support?">¶</a></h3><p>Essentially, because we want <strong>RISE</strong> to evolve, to shine, to keep helping people. We have a lot of concrete plans and also some very interesting ideas to explore and we want to make those happen. But those things need time to happen and time means money in this world...</p> +<h3 id="Why-you-are-asking-for-support?">Why you are asking for support?<a class="anchor-link" href="#Why-you-are-asking-for-support?">¶</a></h3><p>Essentially, because we want <strong>RISE</strong> to evolve, to shine, to keep helping people. We have a lot of concrete plans and also some very interesting ideas to explore and we want to make those happen. But those things need time to happen and time means money in this world...</p> <p>We are now trying this supporter-based model expecting not only people support but also companies' support, but we are open to trying several and multiple ways to fund <strong>RISE</strong> development and evolution, so if you have other ideas, just let's know!</p> -<h3 id="Why-you-are-asking-for-support-NOW?">Why you are asking for support NOW?<a class="anchor-link" href="#Why-you-are-asking-for-support-NOW?">¶</a></h3><p>The idea started several weeks ago because there were a lot of people requesting to support <strong>RISE</strong> somehow. So we developed a solution for them and any other who wants to support us. But then COVID-19 exploded and we thought it was not the proper time to ask for support. But people keep asking for a channel to support us and it seems COVID-19 will be on this world for a long time, so we decided to go ahead and ask for it.</p> -<h3 id="Finally,-a-BIG-THANK-YOU!">Finally, a <strong>BIG THANK YOU</strong>!<a class="anchor-link" href="#Finally,-a-BIG-THANK-YOU!">¶</a></h3> +<h3 id="Why-you-are-asking-for-support-NOW?">Why you are asking for support NOW?<a class="anchor-link" href="#Why-you-are-asking-for-support-NOW?">¶</a></h3><p>The idea started several weeks ago because there were a lot of people requesting to support <strong>RISE</strong> somehow. So we developed a solution for them and any other who wants to support us. But then COVID-19 exploded and we thought it was not the proper time to ask for support. But people keep asking for a channel to support us and it seems COVID-19 will be on this world for a long time, so we decided to go ahead and ask for it.</p> +<h3 id="Finally,-a-BIG-THANK-YOU!">Finally, a <strong>BIG THANK YOU</strong>!<a class="anchor-link" href="#Finally,-a-BIG-THANK-YOU!">¶</a></h3> </div> </div> </div> - - diff --git a/cache/posts/supporting-rise.html b/cache/posts/supporting-rise.html index 23526270..a424b30d 100644 --- a/cache/posts/supporting-rise.html +++ b/cache/posts/supporting-rise.html @@ -3,12 +3,12 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h3 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="#What-is-RISE?">¶</a></h3><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h3 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="#How-you-can-help-us-(with-money-;-)">¶</a></h3><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -<!-- TEASER_END --></p> +<h3 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="#How-you-can-help-us-(with-money-;-)">¶</a></h3><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<!-- TEASER_END --> <p>At <a href="https://ko-fi.com/damianavila">https://ko-fi.com/damianavila</a> you can either:</p> <ul> <li>Buy me some stars as general support (and you will be listed on <a href="https://damianavila.github.io/blog/stories/support-me.html">this blog support page</a>)</li> @@ -16,17 +16,15 @@ <h3 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-) </ul> <p>We <strong>highly</strong> encourage you to choose one of the <strong>RISE</strong>-related available commissions.</p> <p>Press the <em>Commission me</em> button located below for more details on each commission.</p> -<p><a href="https://ko-fi.com/damianavila/commissions"><img src="../galleries/rise/commission.png" alt=""></a></p> +<p><a href="https://ko-fi.com/damianavila/commissions"><img alt="" src="../galleries/rise/commission.png"/></a></p> <p>Currently, most (if not all) of my commissions are associated with <strong>RISE</strong> support and ongoing development. These are just a <strong>one-time</strong> commissions, so if you want to support us in a <strong>continuous/recurrent</strong> way, you can buy us a higher commission/tier (not monthly subscription available)!</p> <p>Btw, buying a commission will allow you to be listed on the <a href="https://rise.readthedocs.io/en/stable/support.html">RISE supporters' page</a> (logos reserved for high tiers commissions).</p> <p>Alternatively, if you don't like this platform (or the associated electronic payment method) and you still want to support us or, maybe, you are a company and you need to process things outside of this platform, you can drop us a DM at <code>damian_avila</code>'s on <a href="https://twitter.com/damian_avila">Twitter</a> or <a href="https://t.me/damian_avila">Telegram</a> and we can figure it out better alternatives for you. As always, you can also reach us at our public <a href="https://gitter.im/damianavila/RISE">gitter channel</a> to start the conversation.</p> -<h3 id="Why-you-are-asking-for-support?">Why you are asking for support?<a class="anchor-link" href="#Why-you-are-asking-for-support?">¶</a></h3><p>Essentially, because we want <strong>RISE</strong> to evolve, to shine, to keep helping people. We have a lot of concrete plans and also some very interesting ideas to explore and we want to make those happen. But those things need time to happen and time means money in this world...</p> +<h3 id="Why-you-are-asking-for-support?">Why you are asking for support?<a class="anchor-link" href="#Why-you-are-asking-for-support?">¶</a></h3><p>Essentially, because we want <strong>RISE</strong> to evolve, to shine, to keep helping people. We have a lot of concrete plans and also some very interesting ideas to explore and we want to make those happen. But those things need time to happen and time means money in this world...</p> <p>We are now trying this supporter-based model expecting not only people support but also companies' support, but we are open to trying several and multiple ways to fund <strong>RISE</strong> development and evolution, so if you have other ideas, just let's know!</p> -<h3 id="Why-you-are-asking-for-support-NOW?">Why you are asking for support NOW?<a class="anchor-link" href="#Why-you-are-asking-for-support-NOW?">¶</a></h3><p>The idea started several weeks ago because there were a lot of people requesting to support <strong>RISE</strong> somehow. So we developed a solution for them and any other who wants to support us. But then COVID-19 exploded and we thought it was not the proper time to ask for support. But people keep asking for a channel to support us and it seems COVID-19 will be on this world for a long time, so we decided to go ahead and ask for it.</p> -<h3 id="Finally,-a-BIG-THANK-YOU!">Finally, a <strong>BIG THANK YOU</strong>!<a class="anchor-link" href="#Finally,-a-BIG-THANK-YOU!">¶</a></h3> +<h3 id="Why-you-are-asking-for-support-NOW?">Why you are asking for support NOW?<a class="anchor-link" href="#Why-you-are-asking-for-support-NOW?">¶</a></h3><p>The idea started several weeks ago because there were a lot of people requesting to support <strong>RISE</strong> somehow. So we developed a solution for them and any other who wants to support us. But then COVID-19 exploded and we thought it was not the proper time to ask for support. But people keep asking for a channel to support us and it seems COVID-19 will be on this world for a long time, so we decided to go ahead and ask for it.</p> +<h3 id="Finally,-a-BIG-THANK-YOU!">Finally, a <strong>BIG THANK YOU</strong>!<a class="anchor-link" href="#Finally,-a-BIG-THANK-YOU!">¶</a></h3> </div> </div> </div> - - diff --git a/cache/posts/teasers-with-the-ipython-notebook-plugin.es.html b/cache/posts/teasers-with-the-ipython-notebook-plugin.es.html index c7d18264..4b1c5943 100644 --- a/cache/posts/teasers-with-the-ipython-notebook-plugin.es.html +++ b/cache/posts/teasers-with-the-ipython-notebook-plugin.es.html @@ -1,4 +1,4 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=fc5f5aae"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Just a little tip...</p> @@ -6,14 +6,10 @@ <a href="http://nikola.ralsina.com.ar/handbook.html#teasers">teasers_info</a>.</p> <p>In a few words, if you don't want to show the complete content of your posts at the index page, but instead display only the beginning of them, you only need to add a "magical comment" in a markdown cell:</p> <!-- TEASER_END --> - <p><code><!-- TEASER_END --></code></p> <p>And all the content after this "magical comment" will not be rendered at the index page.</p> <p>In this way, you can avoid the load of "heavy" things at the index and make your site main page loading faster... nice, don't you think?</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/teasers-with-the-ipython-notebook-plugin.html b/cache/posts/teasers-with-the-ipython-notebook-plugin.html index c7d18264..bb619f8f 100644 --- a/cache/posts/teasers-with-the-ipython-notebook-plugin.html +++ b/cache/posts/teasers-with-the-ipython-notebook-plugin.html @@ -1,4 +1,4 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=1f330cdd"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Just a little tip...</p> @@ -6,14 +6,10 @@ <a href="http://nikola.ralsina.com.ar/handbook.html#teasers">teasers_info</a>.</p> <p>In a few words, if you don't want to show the complete content of your posts at the index page, but instead display only the beginning of them, you only need to add a "magical comment" in a markdown cell:</p> <!-- TEASER_END --> - <p><code><!-- TEASER_END --></code></p> <p>And all the content after this "magical comment" will not be rendered at the index page.</p> <p>In this way, you can avoid the load of "heavy" things at the index and make your site main page loading faster... nice, don't you think?</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/trading-logbook-update-22-nov-2013.es.html b/cache/posts/trading-logbook-update-22-nov-2013.es.html index 34ceb9ab..7cbd784a 100644 --- a/cache/posts/trading-logbook-update-22-nov-2013.es.html +++ b/cache/posts/trading-logbook-update-22-nov-2013.es.html @@ -3,10 +3,11 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, logging my trades in the <strong>forex</strong> market, as I promised in the last post.</p> <p>FYI, I am a daily trader, so you will see me holding positions over several days. -Last week, I performed some <em>real account trades</em> accordingly to my models, opening positions at several currencies pairs. You can see the detailed information in the table below: -<!-- TEASER_END --></p> +Last week, I performed some <em>real account trades</em> accordingly to my models, opening positions at several currencies pairs. You can see the detailed information in the table below:</p> +<!-- TEASER_END --> <table> -<thead><tr> +<thead> +<tr> <th>Ticket</th> <th>Date</th> <th>Transaction</th> @@ -103,9 +104,6 @@ <p>Finally, I have also decided to <strong>live tweet</strong> the trades from this account, so if you follow me on <a href="https://twitter.com/damian_avila">twitter</a>, you will see these trades on real time, or you can wait to the Fridays when I will post another sheet of this sort of logbook.</p> <p>Good weekend!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/trading-logbook-update-22-nov-2013.html b/cache/posts/trading-logbook-update-22-nov-2013.html index 34ceb9ab..7cbd784a 100644 --- a/cache/posts/trading-logbook-update-22-nov-2013.html +++ b/cache/posts/trading-logbook-update-22-nov-2013.html @@ -3,10 +3,11 @@ <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, logging my trades in the <strong>forex</strong> market, as I promised in the last post.</p> <p>FYI, I am a daily trader, so you will see me holding positions over several days. -Last week, I performed some <em>real account trades</em> accordingly to my models, opening positions at several currencies pairs. You can see the detailed information in the table below: -<!-- TEASER_END --></p> +Last week, I performed some <em>real account trades</em> accordingly to my models, opening positions at several currencies pairs. You can see the detailed information in the table below:</p> +<!-- TEASER_END --> <table> -<thead><tr> +<thead> +<tr> <th>Ticket</th> <th>Date</th> <th>Transaction</th> @@ -103,9 +104,6 @@ <p>Finally, I have also decided to <strong>live tweet</strong> the trades from this account, so if you follow me on <a href="https://twitter.com/damian_avila">twitter</a>, you will see these trades on real time, or you can wait to the Fridays when I will post another sheet of this sort of logbook.</p> <p>Good weekend!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/trading-logbook-update-3.es.html b/cache/posts/trading-logbook-update-3.es.html index a392df50..7773b0d0 100644 --- a/cache/posts/trading-logbook-update-3.es.html +++ b/cache/posts/trading-logbook-update-3.es.html @@ -2,14 +2,15 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, I have run my models again and it was time to enter the market.</p> -<p>Early today, I opened two positions: -<!-- TEASER_END --></p> +<p>Early today, I opened two positions:</p> +<!-- TEASER_END --> <table> -<thead><tr> +<thead> +<tr> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> -<th>Price </th> +<th>Price</th> </tr> </thead> <tbody> @@ -17,24 +18,25 @@ <td>06/26/2017 08:23:35</td> <td>BuyMarket</td> <td>EUR/CHF</td> -<td>1.08806 </td> +<td>1.08806</td> </tr> <tr> <td>06/26/2017 08:23:31</td> <td>BuyMarket</td> <td>USD/CHF</td> -<td>0.97356 </td> +<td>0.97356</td> </tr> </tbody> </table> <p><strong>Update 27-Jun-2017</strong></p> <p>I have opened two more positions:</p> <table> -<thead><tr> +<thead> +<tr> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> -<th>Price </th> +<th>Price</th> </tr> </thead> <tbody> @@ -56,11 +58,12 @@ <p><strong>Update 07-Jul-2017</strong></p> <p>Things have evolved, so it was time to close the positions:</p> <table> -<thead><tr> +<thead> +<tr> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> -<th>Price </th> +<th>Price</th> </tr> </thead> <tbody> @@ -93,9 +96,6 @@ <p>And we are closed in the positive side ;-)</p> <p>Let's see if the model continues to perform well in the next few weeks.</p> <p>Happy trading!</p> - </div> </div> </div> - - diff --git a/cache/posts/trading-logbook-update-3.html b/cache/posts/trading-logbook-update-3.html index a392df50..7773b0d0 100644 --- a/cache/posts/trading-logbook-update-3.html +++ b/cache/posts/trading-logbook-update-3.html @@ -2,14 +2,15 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, I have run my models again and it was time to enter the market.</p> -<p>Early today, I opened two positions: -<!-- TEASER_END --></p> +<p>Early today, I opened two positions:</p> +<!-- TEASER_END --> <table> -<thead><tr> +<thead> +<tr> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> -<th>Price </th> +<th>Price</th> </tr> </thead> <tbody> @@ -17,24 +18,25 @@ <td>06/26/2017 08:23:35</td> <td>BuyMarket</td> <td>EUR/CHF</td> -<td>1.08806 </td> +<td>1.08806</td> </tr> <tr> <td>06/26/2017 08:23:31</td> <td>BuyMarket</td> <td>USD/CHF</td> -<td>0.97356 </td> +<td>0.97356</td> </tr> </tbody> </table> <p><strong>Update 27-Jun-2017</strong></p> <p>I have opened two more positions:</p> <table> -<thead><tr> +<thead> +<tr> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> -<th>Price </th> +<th>Price</th> </tr> </thead> <tbody> @@ -56,11 +58,12 @@ <p><strong>Update 07-Jul-2017</strong></p> <p>Things have evolved, so it was time to close the positions:</p> <table> -<thead><tr> +<thead> +<tr> <th>Date</th> <th>Transaction</th> <th>Currency Pair</th> -<th>Price </th> +<th>Price</th> </tr> </thead> <tbody> @@ -93,9 +96,6 @@ <p>And we are closed in the positive side ;-)</p> <p>Let's see if the model continues to perform well in the next few weeks.</p> <p>Happy trading!</p> - </div> </div> </div> - - diff --git a/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html b/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html index 61d94820..60982ac2 100644 --- a/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html +++ b/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.es.html @@ -2,42 +2,29 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>It is time to release some extensions I wrote the last weeks. -And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension... -<!-- TEASER_END --></p> +And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension...</p> +<!-- TEASER_END --> <p>You don't have any idea what I am talking about? OK, a few words... Probably you know that spend a lot of time inside <strong>IPython</strong> notebooks and I was tired to switch windows to send or answer a tweet. So, I wrote a little <em>js</em> extension to capture the input of the selected cell and tweet it just pressing the <em>twitter</em> icon at the <strong>IPython</strong> toolbar.</p> -<p><img src="../galleries/twitter/1.png" alt=""></p> +<p><img alt="" src="../galleries/twitter/1.png"/></p> <p>But this <em>js</em> extension is <strong>IPython</strong>-powered itself, because I am using the <strong>IPython</strong> js machinery to execute <em>python</em> files calling the <em>python kernel</em>! Yes... it seems weird, but once you get the idea, you can achieve a <strong>lot</strong> of things. You can see the relevant part of the code below:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">59</span>,74p /media/datos/Desarrollos/mIPyex/custom/tweet_me/main.js +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">59</span>,74p<span class="w"> </span>/media/datos/Desarrollos/mIPyex/custom/tweet_me/main.js </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>function tweetMe(path) { var entry = IPython.notebook.get_selected_cell().get_text(); @@ -45,10 +32,10 @@ zeroMessager(); } if (entry.length > 0 && entry.length <= 140) { - IPython.notebook.kernel.execute('%bookmark root'); - IPython.notebook.kernel.execute('%cd ' + path); - IPython.notebook.kernel.execute('%run tweet_helper.py "' + entry + '"'); - IPython.notebook.kernel.execute('%cd -b root'); + IPython.notebook.kernel.execute('%bookmark root'); + IPython.notebook.kernel.execute('%cd ' + path); + IPython.notebook.kernel.execute('%run tweet_helper.py "' + entry + '"'); + IPython.notebook.kernel.execute('%cd -b root'); sucessMessager(); } if (entry.length > 140) { @@ -57,14 +44,9 @@ } </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -75,7 +57,6 @@ It is easy... just follow the README to install all the necessary tools (I used the <a href="http://mike.verdone.ca/twitter/">PTT</a> library to deal with the Twitter API) and then just <em>click</em> the <em>twitter</em> button when you want to share something with the world!</p> <p>Hope you enjoy it a lot!</p> <p>Damián</p> - </div> </div> </div> @@ -83,7 +64,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>PD: I will use the next cell to tweet about this new blog post! ;-)</p> - </div> </div> </div> @@ -93,16 +73,14 @@ <p>New blog post! Tweet me... said an IPython notebook cell and I did it. <a href="http://goo.gl/ry9Umi">http://goo.gl/ry9Umi</a></p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Addendum: +<p>Addendum: You can now send tweets from cells with multi-line content (my first implementation only worked with one-line strings).</p> - </div> </div> </div> @@ -110,9 +88,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Addendum 2: You have not only a button but also a keyboard shortcut to activate the Tweet me extension: ALT + T.</p> - </div> </div> </div> - - diff --git a/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html b/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html index 61d94820..60982ac2 100644 --- a/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html +++ b/cache/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html @@ -2,42 +2,29 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>It is time to release some extensions I wrote the last weeks. -And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension... -<!-- TEASER_END --></p> +And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension...</p> +<!-- TEASER_END --> <p>You don't have any idea what I am talking about? OK, a few words... Probably you know that spend a lot of time inside <strong>IPython</strong> notebooks and I was tired to switch windows to send or answer a tweet. So, I wrote a little <em>js</em> extension to capture the input of the selected cell and tweet it just pressing the <em>twitter</em> icon at the <strong>IPython</strong> toolbar.</p> -<p><img src="../galleries/twitter/1.png" alt=""></p> +<p><img alt="" src="../galleries/twitter/1.png"/></p> <p>But this <em>js</em> extension is <strong>IPython</strong>-powered itself, because I am using the <strong>IPython</strong> js machinery to execute <em>python</em> files calling the <em>python kernel</em>! Yes... it seems weird, but once you get the idea, you can achieve a <strong>lot</strong> of things. You can see the relevant part of the code below:</p> - </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed -n <span class="m">59</span>,74p /media/datos/Desarrollos/mIPyex/custom/tweet_me/main.js +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>sed<span class="w"> </span>-n<span class="w"> </span><span class="m">59</span>,74p<span class="w"> </span>/media/datos/Desarrollos/mIPyex/custom/tweet_me/main.js </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>function tweetMe(path) { var entry = IPython.notebook.get_selected_cell().get_text(); @@ -45,10 +32,10 @@ zeroMessager(); } if (entry.length > 0 && entry.length <= 140) { - IPython.notebook.kernel.execute('%bookmark root'); - IPython.notebook.kernel.execute('%cd ' + path); - IPython.notebook.kernel.execute('%run tweet_helper.py "' + entry + '"'); - IPython.notebook.kernel.execute('%cd -b root'); + IPython.notebook.kernel.execute('%bookmark root'); + IPython.notebook.kernel.execute('%cd ' + path); + IPython.notebook.kernel.execute('%run tweet_helper.py "' + entry + '"'); + IPython.notebook.kernel.execute('%cd -b root'); sucessMessager(); } if (entry.length > 140) { @@ -57,14 +44,9 @@ } </pre> </div> -</div> - </div> </div> - - </div> </div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> @@ -75,7 +57,6 @@ It is easy... just follow the README to install all the necessary tools (I used the <a href="http://mike.verdone.ca/twitter/">PTT</a> library to deal with the Twitter API) and then just <em>click</em> the <em>twitter</em> button when you want to share something with the world!</p> <p>Hope you enjoy it a lot!</p> <p>Damián</p> - </div> </div> </div> @@ -83,7 +64,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>PD: I will use the next cell to tweet about this new blog post! ;-)</p> - </div> </div> </div> @@ -93,16 +73,14 @@ <p>New blog post! Tweet me... said an IPython notebook cell and I did it. <a href="http://goo.gl/ry9Umi">http://goo.gl/ry9Umi</a></p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Addendum: +<p>Addendum: You can now send tweets from cells with multi-line content (my first implementation only worked with one-line strings).</p> - </div> </div> </div> @@ -110,9 +88,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Addendum 2: You have not only a button but also a keyboard shortcut to activate the Tweet me extension: ALT + T.</p> - </div> </div> </div> - - diff --git a/cache/posts/under-the-sea-en-la-plata.es.html b/cache/posts/under-the-sea-en-la-plata.es.html index 7a9e3388..dadeaedd 100644 --- a/cache/posts/under-the-sea-en-la-plata.es.html +++ b/cache/posts/under-the-sea-en-la-plata.es.html @@ -2,7 +2,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Han pasado casi tres semanas... El 2 de abril cayeron sobre la ciudad de La Plata casi 400 mm de agua en 24 hs, concentrándose la mayor parte de dicho caudal en dos o tres horas por la tarde, lo que dio lugar a la más grande inundación que la ciudad haya registrado en toda su historia.</p> - </div> </div> </div> @@ -16,8 +15,7 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="http://1.bp.blogspot.com/-DbCAlLBC0aE/UWCjj2sV-4I/AAAAAAAA9nM/K9BrQc3TFIk/s1600/INUNDACION.jpg" alt=""></p> - +<p><img alt="" src="http://1.bp.blogspot.com/-DbCAlLBC0aE/UWCjj2sV-4I/AAAAAAAA9nM/K9BrQc3TFIk/s1600/INUNDACION.jpg"/></p> </div> </div> </div> @@ -28,15 +26,13 @@ <p>Lamentablemente, en casa el agua llego a 1,60 mts.</p> <p>Obviamente, la mayoría de las pertenencias quedaron bajo el agua: muebles, electrodomesticos, ropa, biblioteca, documentos, etc.</p> <p>Aca pueden ver la imagen con la que me encontré al día siguiente de la inundación:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/Inundacion/inundacion1.png" alt=""></p> - +<p><img alt="" src="../galleries/Inundacion/inundacion1.png"/></p> </div> </div> </div> @@ -44,15 +40,13 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Y Lore tratando de esbozar una sonrisa que obviamente enmascaraba una gran tristeza al ver la pieza de Facu en esas condiciones.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/Inundacion/inundacion2.png" alt=""></p> - +<p><img alt="" src="../galleries/Inundacion/inundacion2.png"/></p> </div> </div> </div> @@ -67,7 +61,7 @@ <ul> <li>Melisa, Diego y Flavio.</li> <li>Romi y las hijas de Lore: Clarita y Marina.</li> -<li>Cintia y Pedro. </li> +<li>Cintia y Pedro.</li> <li>Michelle y Lucas.</li> <li>Todo el grupo de amigos del IBYME: Xime, Carito, Norber, Evan, Andre, Nico, Ger, Mer, Gaby y los Galectinos.</li> <li>David y la gente del LISIN.</li> @@ -76,17 +70,14 @@ </ul> <p>Y unos últimos agradecimientos adicionales:</p> <ul> -<li>Papi y Mami, que siempre están al pie del cañon. </li> +<li>Papi y Mami, que siempre están al pie del cañon.</li> <li>Dan, gracias por estar pendiente en todo momento... y por ser un apoyo constante.</li> -<li>Lore, que puedo decir que no te haya dicho... Gracias por aguantarme, por apoyarme, por todo tu esfuerzo y sacrificio. </li> +<li>Lore, que puedo decir que no te haya dicho... Gracias por aguantarme, por apoyarme, por todo tu esfuerzo y sacrificio.</li> <li>Facu, gracias por existir y ser el sol que alumbra y alumbrará todos mis días.</li> </ul> <p>Gracias totales!</p> <p>Nos vemos en el próximo post!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/under-the-sea-en-la-plata.html b/cache/posts/under-the-sea-en-la-plata.html index 7a9e3388..dadeaedd 100644 --- a/cache/posts/under-the-sea-en-la-plata.html +++ b/cache/posts/under-the-sea-en-la-plata.html @@ -2,7 +2,6 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Han pasado casi tres semanas... El 2 de abril cayeron sobre la ciudad de La Plata casi 400 mm de agua en 24 hs, concentrándose la mayor parte de dicho caudal en dos o tres horas por la tarde, lo que dio lugar a la más grande inundación que la ciudad haya registrado en toda su historia.</p> - </div> </div> </div> @@ -16,8 +15,7 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="http://1.bp.blogspot.com/-DbCAlLBC0aE/UWCjj2sV-4I/AAAAAAAA9nM/K9BrQc3TFIk/s1600/INUNDACION.jpg" alt=""></p> - +<p><img alt="" src="http://1.bp.blogspot.com/-DbCAlLBC0aE/UWCjj2sV-4I/AAAAAAAA9nM/K9BrQc3TFIk/s1600/INUNDACION.jpg"/></p> </div> </div> </div> @@ -28,15 +26,13 @@ <p>Lamentablemente, en casa el agua llego a 1,60 mts.</p> <p>Obviamente, la mayoría de las pertenencias quedaron bajo el agua: muebles, electrodomesticos, ropa, biblioteca, documentos, etc.</p> <p>Aca pueden ver la imagen con la que me encontré al día siguiente de la inundación:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/Inundacion/inundacion1.png" alt=""></p> - +<p><img alt="" src="../galleries/Inundacion/inundacion1.png"/></p> </div> </div> </div> @@ -44,15 +40,13 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Y Lore tratando de esbozar una sonrisa que obviamente enmascaraba una gran tristeza al ver la pieza de Facu en esas condiciones.</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/Inundacion/inundacion2.png" alt=""></p> - +<p><img alt="" src="../galleries/Inundacion/inundacion2.png"/></p> </div> </div> </div> @@ -67,7 +61,7 @@ <ul> <li>Melisa, Diego y Flavio.</li> <li>Romi y las hijas de Lore: Clarita y Marina.</li> -<li>Cintia y Pedro. </li> +<li>Cintia y Pedro.</li> <li>Michelle y Lucas.</li> <li>Todo el grupo de amigos del IBYME: Xime, Carito, Norber, Evan, Andre, Nico, Ger, Mer, Gaby y los Galectinos.</li> <li>David y la gente del LISIN.</li> @@ -76,17 +70,14 @@ </ul> <p>Y unos últimos agradecimientos adicionales:</p> <ul> -<li>Papi y Mami, que siempre están al pie del cañon. </li> +<li>Papi y Mami, que siempre están al pie del cañon.</li> <li>Dan, gracias por estar pendiente en todo momento... y por ser un apoyo constante.</li> -<li>Lore, que puedo decir que no te haya dicho... Gracias por aguantarme, por apoyarme, por todo tu esfuerzo y sacrificio. </li> +<li>Lore, que puedo decir que no te haya dicho... Gracias por aguantarme, por apoyarme, por todo tu esfuerzo y sacrificio.</li> <li>Facu, gracias por existir y ser el sol que alumbra y alumbrará todos mis días.</li> </ul> <p>Gracias totales!</p> <p>Nos vemos en el próximo post!</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html b/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html index 1eb966a9..0735de0a 100644 --- a/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html +++ b/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.es.html @@ -1,59 +1,54 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=e05ccad8"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>IPython slides are powered by <a href="https://github.com/hakimel/reveal.js/">Reveal.js</a> library, you probably already know that.</p> <p>But... you probably don't know that we use <a href="http://www.jsdelivr.com/">jsdelivr</a> CDN to load all the necessary js and css files. As a consequence, you don't need to download Reveal.js, but also, the speaker notes are not working by default.</p> -<p>But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)? -<!-- TEASER_END --></p> +<p>But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)?</p> +<!-- TEASER_END --> <p>In this case, it would be better to use a local copy of the Reveal.js library. And you can easily configure this behavior using a config object from the IPython machinery.</p> <p>Below, you have one way to do it:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=03a7adc1"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.nbconvert.exporters</span> <span class="kn">import</span> <span class="n">SlidesExporter</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.nbconvert.exporters</span> <span class="kn">import</span> <span class="n">SlidesExporter</span> <span class="kn">from</span> <span class="nn">IPython.config</span> <span class="kn">import</span> <span class="n">Config</span> <span class="kn">from</span> <span class="nn">IPython.nbformat</span> <span class="kn">import</span> <span class="n">current</span> <span class="k">as</span> <span class="n">nbformat</span> -<span class="n">infile</span> <span class="o">=</span> <span class="s2">"talk.ipynb"</span> <span class="c1"># load the name of your slideshow</span> -<span class="n">outfile</span> <span class="o">=</span> <span class="s2">"talk.slides.html"</span> +<span class="n">infile</span> <span class="o">=</span> <span class="s2">"talk.ipynb"</span> <span class="c1"># load the name of your slideshow</span> +<span class="n">outfile</span> <span class="o">=</span> <span class="s2">"talk.slides.html"</span> <span class="n">notebook</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> <span class="n">notebook_json</span> <span class="o">=</span> <span class="n">nbformat</span><span class="o">.</span><span class="n">reads_json</span><span class="p">(</span><span class="n">notebook</span><span class="p">)</span> <span class="c1"># This is the config object I talked before: </span> -<span class="c1"># After the 'url_prefix', you can set the location of your </span> +<span class="c1"># After the 'url_prefix', you can set the location of your </span> <span class="c1"># local reveal.js library, i.e. if the reveal.js is located </span> <span class="c1"># in the same directory as your talk.slides.html, then </span> -<span class="c1"># set 'url_prefix':'reveal.js'.</span> +<span class="c1"># set 'url_prefix':'reveal.js'.</span> <span class="n">c</span> <span class="o">=</span> <span class="n">Config</span><span class="p">({</span> - <span class="s1">'RevealHelpTransformer'</span><span class="p">:{</span> - <span class="s1">'enabled'</span><span class="p">:</span><span class="kc">True</span><span class="p">,</span> - <span class="s1">'url_prefix'</span><span class="p">:</span><span class="s1">'reveal.js'</span><span class="p">,</span> + <span class="s1">'RevealHelpTransformer'</span><span class="p">:{</span> + <span class="s1">'enabled'</span><span class="p">:</span><span class="kc">True</span><span class="p">,</span> + <span class="s1">'url_prefix'</span><span class="p">:</span><span class="s1">'reveal.js'</span><span class="p">,</span> <span class="p">},</span> <span class="p">})</span> <span class="n">exportHtml</span> <span class="o">=</span> <span class="n">SlidesExporter</span><span class="p">(</span><span class="n">config</span><span class="o">=</span><span class="n">c</span><span class="p">)</span> <span class="p">(</span><span class="n">body</span><span class="p">,</span><span class="n">resources</span><span class="p">)</span> <span class="o">=</span> <span class="n">exportHtml</span><span class="o">.</span><span class="n">from_notebook_node</span><span class="p">(</span><span class="n">notebook_json</span><span class="p">)</span> -<span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span> +<span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=8a0f6882"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Then, just serve the directory:</p> @@ -67,9 +62,6 @@ <p><code>ipython nbconvert talk.ipynb --to slides --post serve --reveal-prefix foo/reveal.js</code></p> <p>Hope it helps.</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html b/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html index 1eb966a9..112e4196 100644 --- a/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html +++ b/cache/posts/using-a-local-revealjs-library-with-your-ipython-slides.html @@ -1,59 +1,54 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=76fa9a98"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>IPython slides are powered by <a href="https://github.com/hakimel/reveal.js/">Reveal.js</a> library, you probably already know that.</p> <p>But... you probably don't know that we use <a href="http://www.jsdelivr.com/">jsdelivr</a> CDN to load all the necessary js and css files. As a consequence, you don't need to download Reveal.js, but also, the speaker notes are not working by default.</p> -<p>But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)? -<!-- TEASER_END --></p> +<p>But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)?</p> +<!-- TEASER_END --> <p>In this case, it would be better to use a local copy of the Reveal.js library. And you can easily configure this behavior using a config object from the IPython machinery.</p> <p>Below, you have one way to do it:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=a8846902"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.nbconvert.exporters</span> <span class="kn">import</span> <span class="n">SlidesExporter</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">IPython.nbconvert.exporters</span> <span class="kn">import</span> <span class="n">SlidesExporter</span> <span class="kn">from</span> <span class="nn">IPython.config</span> <span class="kn">import</span> <span class="n">Config</span> <span class="kn">from</span> <span class="nn">IPython.nbformat</span> <span class="kn">import</span> <span class="n">current</span> <span class="k">as</span> <span class="n">nbformat</span> -<span class="n">infile</span> <span class="o">=</span> <span class="s2">"talk.ipynb"</span> <span class="c1"># load the name of your slideshow</span> -<span class="n">outfile</span> <span class="o">=</span> <span class="s2">"talk.slides.html"</span> +<span class="n">infile</span> <span class="o">=</span> <span class="s2">"talk.ipynb"</span> <span class="c1"># load the name of your slideshow</span> +<span class="n">outfile</span> <span class="o">=</span> <span class="s2">"talk.slides.html"</span> <span class="n">notebook</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> <span class="n">notebook_json</span> <span class="o">=</span> <span class="n">nbformat</span><span class="o">.</span><span class="n">reads_json</span><span class="p">(</span><span class="n">notebook</span><span class="p">)</span> <span class="c1"># This is the config object I talked before: </span> -<span class="c1"># After the 'url_prefix', you can set the location of your </span> +<span class="c1"># After the 'url_prefix', you can set the location of your </span> <span class="c1"># local reveal.js library, i.e. if the reveal.js is located </span> <span class="c1"># in the same directory as your talk.slides.html, then </span> -<span class="c1"># set 'url_prefix':'reveal.js'.</span> +<span class="c1"># set 'url_prefix':'reveal.js'.</span> <span class="n">c</span> <span class="o">=</span> <span class="n">Config</span><span class="p">({</span> - <span class="s1">'RevealHelpTransformer'</span><span class="p">:{</span> - <span class="s1">'enabled'</span><span class="p">:</span><span class="kc">True</span><span class="p">,</span> - <span class="s1">'url_prefix'</span><span class="p">:</span><span class="s1">'reveal.js'</span><span class="p">,</span> + <span class="s1">'RevealHelpTransformer'</span><span class="p">:{</span> + <span class="s1">'enabled'</span><span class="p">:</span><span class="kc">True</span><span class="p">,</span> + <span class="s1">'url_prefix'</span><span class="p">:</span><span class="s1">'reveal.js'</span><span class="p">,</span> <span class="p">},</span> <span class="p">})</span> <span class="n">exportHtml</span> <span class="o">=</span> <span class="n">SlidesExporter</span><span class="p">(</span><span class="n">config</span><span class="o">=</span><span class="n">c</span><span class="p">)</span> <span class="p">(</span><span class="n">body</span><span class="p">,</span><span class="n">resources</span><span class="p">)</span> <span class="o">=</span> <span class="n">exportHtml</span><span class="o">.</span><span class="n">from_notebook_node</span><span class="p">(</span><span class="n">notebook_json</span><span class="p">)</span> -<span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span> +<span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">body</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=6038648c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Then, just serve the directory:</p> @@ -67,9 +62,6 @@ <p><code>ipython nbconvert talk.ipynb --to slides --post serve --reveal-prefix foo/reveal.js</code></p> <p>Hope it helps.</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/viper-is-now-using-ipythonnbconvert.es.html b/cache/posts/viper-is-now-using-ipythonnbconvert.es.html index 853edfe5..19407880 100644 --- a/cache/posts/viper-is-now-using-ipythonnbconvert.es.html +++ b/cache/posts/viper-is-now-using-ipythonnbconvert.es.html @@ -1,32 +1,30 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=80fe6b2b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you know (if not, probably the following lines gives you an idea), <strong>vIPer</strong> was originally designed to export from <em>ipynb</em> files to:</p> <ul> -<li>a plain static html </li> +<li>a plain static html</li> <li>a slideshow powered by Landslide</li> </ul> -<p>With the last release, <strong>IPython</strong> support this kind of exportation using the well designed and easily extensible <code>IPython.nbconvert</code> library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats. -<!-- TEASER_END --></p> +<p>With the last release, <strong>IPython</strong> support this kind of exportation using the well designed and easily extensible <code>IPython.nbconvert</code> library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats.</p> +<!-- TEASER_END --> <p><strong>Note</strong>: if you want to know more about vIPer, just see the following talk I gave about it at <strong>SciPy 2013</strong>.</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=ec945f78"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe width="640" height="360" src="//www.youtube.com/embed/NVf_giNcNro" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/NVf_giNcNro" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=df69be6a"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Up to now, I have replaced the old converters by the new ones: the <code>HTMLExporter</code> and the <code>SlidesExporter</code> from <code>IPython.nbconvert</code>. As a consequence, vIPer now supports the generation of <strong>IPython slides</strong> (deprecating the use of Landslide to get the html-powered slideshow... thank you very much to the Landslide developers for their work... and to make my life easier at the first days of vIPer).</p> <p>Remarkably, trying to serve the <strong>IPython slides</strong> inside <strong>vIPer</strong> was very educational, because <code>IPython.nbconvert</code> already supports the serve of the resulting slides, so I tried to use this functionality and, because I needed to work in parallel, this led me to work a little bit with <code>QtCore.QThreads</code>.</p> <p>So, I essentially sub-classed the <code>QtCore.QThread</code>:</p> - <pre><code>class ServeThread(QtCore.QThread): def __init__(self, extension, container): QtCore.QThread.__init__(self) @@ -36,10 +34,10 @@ def run(self): localO = self.container.titleHistory[-1] + self.extension self.container.server.open_in_browser = False - self.container.server(str(self.container.path) + '/' + localO)</code></pre> + self.container.server(str(self.container.path) + '/' + localO) +</code></pre> <p><strong>Note</strong>: yes, I have to deal with the path in a better way, but I am too lazy to do it now ;-)</p> <p>And then, I have instantiated the <code>ServerThread</code> class accordingly to my needs:</p> - <pre><code>class Converter: def __init__(self, exporter, extension, container): self.container = container @@ -52,14 +50,12 @@ if len(self.container.servePool) == 1: self.container.servePool[0].start() else: - pass</code></pre> + pass +</code></pre> <p>It is important to highlight that I needed to call the <code>start()</code> method to <em>run</em> the <code>run()</code> method from the <code>ServeThread</code> class.</p> <p>And now, <strong>vIPer</strong> support serving the IPython slides automatically after the conversion step with just a click of a button.</p> <p>OK, just try <strong>vIPer</strong> (<a href="https://github.com/damianavila/vIPer">Github repo</a>) and let me know any bug... and I hope you find the Qt-derived threads information useful, or at least, interesting! ;-)</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/viper-is-now-using-ipythonnbconvert.html b/cache/posts/viper-is-now-using-ipythonnbconvert.html index 853edfe5..d78b8c4d 100644 --- a/cache/posts/viper-is-now-using-ipythonnbconvert.html +++ b/cache/posts/viper-is-now-using-ipythonnbconvert.html @@ -1,32 +1,30 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=cef2a976"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you know (if not, probably the following lines gives you an idea), <strong>vIPer</strong> was originally designed to export from <em>ipynb</em> files to:</p> <ul> -<li>a plain static html </li> +<li>a plain static html</li> <li>a slideshow powered by Landslide</li> </ul> -<p>With the last release, <strong>IPython</strong> support this kind of exportation using the well designed and easily extensible <code>IPython.nbconvert</code> library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats. -<!-- TEASER_END --></p> +<p>With the last release, <strong>IPython</strong> support this kind of exportation using the well designed and easily extensible <code>IPython.nbconvert</code> library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats.</p> +<!-- TEASER_END --> <p><strong>Note</strong>: if you want to know more about vIPer, just see the following talk I gave about it at <strong>SciPy 2013</strong>.</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=9c7a1660"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe width="640" height="360" src="//www.youtube.com/embed/NVf_giNcNro" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/NVf_giNcNro" width="640"></iframe> </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=c5c5d325"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Up to now, I have replaced the old converters by the new ones: the <code>HTMLExporter</code> and the <code>SlidesExporter</code> from <code>IPython.nbconvert</code>. As a consequence, vIPer now supports the generation of <strong>IPython slides</strong> (deprecating the use of Landslide to get the html-powered slideshow... thank you very much to the Landslide developers for their work... and to make my life easier at the first days of vIPer).</p> <p>Remarkably, trying to serve the <strong>IPython slides</strong> inside <strong>vIPer</strong> was very educational, because <code>IPython.nbconvert</code> already supports the serve of the resulting slides, so I tried to use this functionality and, because I needed to work in parallel, this led me to work a little bit with <code>QtCore.QThreads</code>.</p> <p>So, I essentially sub-classed the <code>QtCore.QThread</code>:</p> - <pre><code>class ServeThread(QtCore.QThread): def __init__(self, extension, container): QtCore.QThread.__init__(self) @@ -36,10 +34,10 @@ def run(self): localO = self.container.titleHistory[-1] + self.extension self.container.server.open_in_browser = False - self.container.server(str(self.container.path) + '/' + localO)</code></pre> + self.container.server(str(self.container.path) + '/' + localO) +</code></pre> <p><strong>Note</strong>: yes, I have to deal with the path in a better way, but I am too lazy to do it now ;-)</p> <p>And then, I have instantiated the <code>ServerThread</code> class accordingly to my needs:</p> - <pre><code>class Converter: def __init__(self, exporter, extension, container): self.container = container @@ -52,14 +50,12 @@ if len(self.container.servePool) == 1: self.container.servePool[0].start() else: - pass</code></pre> + pass +</code></pre> <p>It is important to highlight that I needed to call the <code>start()</code> method to <em>run</em> the <code>run()</code> method from the <code>ServeThread</code> class.</p> <p>And now, <strong>vIPer</strong> support serving the IPython slides automatically after the conversion step with just a click of a button.</p> <p>OK, just try <strong>vIPer</strong> (<a href="https://github.com/damianavila/vIPer">Github repo</a>) and let me know any bug... and I hope you find the Qt-derived threads information useful, or at least, interesting! ;-)</p> <p>Damián</p> - </div> </div> </div> - - diff --git a/cache/posts/we-are-above-1000-stars.es.html b/cache/posts/we-are-above-1000-stars.es.html index f897e6f5..119b8bd9 100644 --- a/cache/posts/we-are-above-1000-stars.es.html +++ b/cache/posts/we-are-above-1000-stars.es.html @@ -5,15 +5,11 @@ <p>And those stars are given by the users themselves.</p> <p>And we are just above a <strong>remarkable</strong> line...</p> <!-- TEASER_END --> - <p>As you can see below (or in the <strong>RISE</strong> github <a href="https://github.com/damianavila/RISE">repo</a>):</p> -<p><img src="../galleries/rise/1004.png" alt=""></p> +<p><img alt="" src="../galleries/rise/1004.png"/></p> <p>We are above <strong>1000</strong> stars!!!</p> <p>I just want to give a big <strong>THANK YOU</strong> to all the RISE users out there.</p> <p>See you soon!</p> - </div> </div> </div> - - diff --git a/cache/posts/we-are-above-1000-stars.html b/cache/posts/we-are-above-1000-stars.html index f897e6f5..119b8bd9 100644 --- a/cache/posts/we-are-above-1000-stars.html +++ b/cache/posts/we-are-above-1000-stars.html @@ -5,15 +5,11 @@ <p>And those stars are given by the users themselves.</p> <p>And we are just above a <strong>remarkable</strong> line...</p> <!-- TEASER_END --> - <p>As you can see below (or in the <strong>RISE</strong> github <a href="https://github.com/damianavila/RISE">repo</a>):</p> -<p><img src="../galleries/rise/1004.png" alt=""></p> +<p><img alt="" src="../galleries/rise/1004.png"/></p> <p>We are above <strong>1000</strong> stars!!!</p> <p>I just want to give a big <strong>THANK YOU</strong> to all the RISE users out there.</p> <p>See you soon!</p> - </div> </div> </div> - - diff --git a/cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html b/cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html index 37a3006a..9fb88545 100644 --- a/cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html +++ b/cache/posts/zen-mode-extension-for-the-ipython-notebook.es.html @@ -5,25 +5,22 @@ <p>And I thought it would be great to have a <em>sort</em> of <strong>Zen mode</strong> for the notebook...</p> <p>I mean, a <em>peaceful</em> user interface to write my blog posts (and other stuff, of course).</p> <p>So I wrote a little js extension which give me this <strong>Zen mode</strong>.</p> -<p>You can see some screen shots below: -<!-- TEASER_END --></p> - +<p>You can see some screen shots below:</p> +<!-- TEASER_END --> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/zenmode/pic1.png" alt=""></p> - +<p><img alt="" src="../galleries/zenmode/pic1.png"/></p> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/zenmode/pic2.png" alt=""></p> - +<p><img alt="" src="../galleries/zenmode/pic2.png"/></p> </div> </div> </div> @@ -31,14 +28,13 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>And a little video showing the extension in action:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe width="640" height="360" src="//www.youtube.com/embed/eVi5aXEipBQ" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/eVi5aXEipBQ" width="640"></iframe> </div> </div> </div> @@ -52,9 +48,6 @@ <p>Damián</p> <p>PS: As usual, open any issue (bug or idea) at the Github repo (or report me here at the comments). Thanks!</p> <p>[1] <a href="https://github.com/ipython-contrib/IPython-notebook-extensions">https://github.com/ipython-contrib/IPython-notebook-extensions</a></p> - </div> </div> </div> - - diff --git a/cache/posts/zen-mode-extension-for-the-ipython-notebook.html b/cache/posts/zen-mode-extension-for-the-ipython-notebook.html index 37a3006a..9fb88545 100644 --- a/cache/posts/zen-mode-extension-for-the-ipython-notebook.html +++ b/cache/posts/zen-mode-extension-for-the-ipython-notebook.html @@ -5,25 +5,22 @@ <p>And I thought it would be great to have a <em>sort</em> of <strong>Zen mode</strong> for the notebook...</p> <p>I mean, a <em>peaceful</em> user interface to write my blog posts (and other stuff, of course).</p> <p>So I wrote a little js extension which give me this <strong>Zen mode</strong>.</p> -<p>You can see some screen shots below: -<!-- TEASER_END --></p> - +<p>You can see some screen shots below:</p> +<!-- TEASER_END --> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/zenmode/pic1.png" alt=""></p> - +<p><img alt="" src="../galleries/zenmode/pic1.png"/></p> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><img src="../galleries/zenmode/pic2.png" alt=""></p> - +<p><img alt="" src="../galleries/zenmode/pic2.png"/></p> </div> </div> </div> @@ -31,14 +28,13 @@ </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>And a little video showing the extension in action:</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<iframe width="640" height="360" src="//www.youtube.com/embed/eVi5aXEipBQ" frameborder="0" allowfullscreen></iframe> +<iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/eVi5aXEipBQ" width="640"></iframe> </div> </div> </div> @@ -52,9 +48,6 @@ <p>Damián</p> <p>PS: As usual, open any issue (bug or idea) at the Github repo (or report me here at the comments). Thanks!</p> <p>[1] <a href="https://github.com/ipython-contrib/IPython-notebook-extensions">https://github.com/ipython-contrib/IPython-notebook-extensions</a></p> - </div> </div> </div> - - diff --git a/cache/posts/zen-themes-updated.es.html b/cache/posts/zen-themes-updated.es.html index 4ffe3bcb..951cc5a4 100644 --- a/cache/posts/zen-themes-updated.es.html +++ b/cache/posts/zen-themes-updated.es.html @@ -1,42 +1,29 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=0a56b3db"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, time to recap some things... As you know, <a href="http://getnikola.com/"><strong>Nikola</strong></a> 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones. -<!-- TEASER_END --></p> +As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones.</p> +<!-- TEASER_END --> <p>As you also now, <strong>IPython 2.x</strong> was released just some weeks ago too. So, I took into account this two releases and updated the <strong>Zen</strong> themes to be compatible with both of them. As a consequence of the update, the <code>zen-ipython</code> theme has change a little bit, some bugs were fixed and some features enabled. You can probably has noticed that if you visit my blog in the last two weeks. If you did not notice, first, buy some glasses ;-), and then, take a tour, visit some of my old posts (there are interesting new comments every week) and enjoy the new theme.</p> <p>And... don't forget! You can get the <strong>Zen</strong> themes very easily. First, to list all the available themes at the <strong>Nikola</strong> themes repo:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=d0561830"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola install_theme -l +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola<span class="w"> </span>install_theme<span class="w"> </span>-l </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Themes: ------- @@ -57,106 +44,122 @@ </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre></pre> </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b21d99ec"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Of course, don't use the <code>!</code> at the beginning of the line if you are outside <strong>IPython</strong>.</p> <p>To install one of them, just write:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=27cb2379"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola install_theme zen-ipython +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola<span class="w"> </span>install_theme<span class="w"> </span>zen-ipython </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:23Z] WARNING: Nikola: Cannot load theme "zen-ipython", using 'bootstrap' instead. -</span><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Downloading: http://themes.getnikola.com/v7/zen-ipython.zip -</span><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Extracting: zen-ipython into themes +<pre><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:23Z] WARNING: Nikola: Cannot load theme "zen-ipython", using 'bootstrap' instead. +</span></pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Downloading: http://themes.getnikola.com/v7/zen-ipython.zip +</span></pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Extracting: zen-ipython into themes </span><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:24Z] NOTICE: install_theme: This theme has a sample config file. Integrate it with yours in order to make this theme work! </span>Contents of the conf.py.sample file: - NAVIGATION_LINKS = { +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre> NAVIGATION_LINKS = { DEFAULT_LANG: ( - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), ) } <span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Downloading: http://themes.getnikola.com/v7/zen-jinja.zip -</span><span class="ansi-white-fg">[2014-05-30T18:28:26Z] INFO: install_theme: Extracting: zen-jinja into themes +</span></pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre><span class="ansi-white-fg">[2014-05-30T18:28:26Z] INFO: install_theme: Extracting: zen-jinja into themes </span><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:26Z] NOTICE: install_theme: This theme has a sample config file. Integrate it with yours in order to make this theme work! </span>Contents of the conf.py.sample file: - NAVIGATION_LINKS = { +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre> NAVIGATION_LINKS = { DEFAULT_LANG: ( - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), ) } -<span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:26Z] NOTICE: install_theme: Remember to set THEME="zen-ipython" in conf.py to use this theme. +<span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:26Z] NOTICE: install_theme: Remember to set THEME="zen-ipython" in conf.py to use this theme. </span></pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre></pre> +</div> </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=06139dde"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>and your theme will be available at the themes folder in your site.</p> <p>OK, short post for today, more coming soon.</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/posts/zen-themes-updated.html b/cache/posts/zen-themes-updated.html index 4ffe3bcb..36088c25 100644 --- a/cache/posts/zen-themes-updated.html +++ b/cache/posts/zen-themes-updated.html @@ -1,42 +1,29 @@ -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=a37a2d91"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, time to recap some things... As you know, <a href="http://getnikola.com/"><strong>Nikola</strong></a> 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones. -<!-- TEASER_END --></p> +As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones.</p> +<!-- TEASER_END --> <p>As you also now, <strong>IPython 2.x</strong> was released just some weeks ago too. So, I took into account this two releases and updated the <strong>Zen</strong> themes to be compatible with both of them. As a consequence of the update, the <code>zen-ipython</code> theme has change a little bit, some bugs were fixed and some features enabled. You can probably has noticed that if you visit my blog in the last two weeks. If you did not notice, first, buy some glasses ;-), and then, take a tour, visit some of my old posts (there are interesting new comments every week) and enjoy the new theme.</p> <p>And... don't forget! You can get the <strong>Zen</strong> themes very easily. First, to list all the available themes at the <strong>Nikola</strong> themes repo:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=db9e1b9b"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola install_theme -l +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola<span class="w"> </span>install_theme<span class="w"> </span>-l </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre>Themes: ------- @@ -57,106 +44,122 @@ </pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre></pre> </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=8eba026c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Of course, don't use the <code>!</code> at the beginning of the line if you are outside <strong>IPython</strong>.</p> <p>To install one of them, just write:</p> - </div> </div> </div> -<div class="cell border-box-sizing code_cell rendered"> +<div class="cell border-box-sizing code_cell rendered" id="cell-id=27decac2"> <div class="input"> -<div class="prompt input_prompt">In [2]:</div> +<div class="prompt input_prompt">In [2]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola install_theme zen-ipython +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="o">!</span>nikola<span class="w"> </span>install_theme<span class="w"> </span>zen-ipython </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> -<pre><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:23Z] WARNING: Nikola: Cannot load theme "zen-ipython", using 'bootstrap' instead. -</span><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Downloading: http://themes.getnikola.com/v7/zen-ipython.zip -</span><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Extracting: zen-ipython into themes +<pre><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:23Z] WARNING: Nikola: Cannot load theme "zen-ipython", using 'bootstrap' instead. +</span></pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Downloading: http://themes.getnikola.com/v7/zen-ipython.zip +</span></pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre><span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Extracting: zen-ipython into themes </span><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:24Z] NOTICE: install_theme: This theme has a sample config file. Integrate it with yours in order to make this theme work! </span>Contents of the conf.py.sample file: - NAVIGATION_LINKS = { +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre> NAVIGATION_LINKS = { DEFAULT_LANG: ( - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), ) } <span class="ansi-white-fg">[2014-05-30T18:28:24Z] INFO: install_theme: Downloading: http://themes.getnikola.com/v7/zen-jinja.zip -</span><span class="ansi-white-fg">[2014-05-30T18:28:26Z] INFO: install_theme: Extracting: zen-jinja into themes +</span></pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre><span class="ansi-white-fg">[2014-05-30T18:28:26Z] INFO: install_theme: Extracting: zen-jinja into themes </span><span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:26Z] NOTICE: install_theme: This theme has a sample config file. Integrate it with yours in order to make this theme work! </span>Contents of the conf.py.sample file: - NAVIGATION_LINKS = { +</pre> +</div> +</div> +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre> NAVIGATION_LINKS = { DEFAULT_LANG: ( - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), - (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Home</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-home</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/archive.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Archives</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-folder-open-alt</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/categories/index.html</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">Tags</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-tags</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">/rss.xml</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">RSS</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-rss</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">http://getnikola.com</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">About me</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-user</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://twitter.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Twitter</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-twitter</span><span class="ansi-yellow-fg">'</span>), + (<span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">https://github.com/getnikola</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">My Github</span><span class="ansi-yellow-fg">'</span>, <span class="ansi-yellow-fg">'</span><span class="ansi-yellow-fg">icon-github</span><span class="ansi-yellow-fg">'</span>), ) } -<span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:26Z] NOTICE: install_theme: Remember to set THEME="zen-ipython" in conf.py to use this theme. +<span class="ansi-yellow-intense-fg ansi-bold">[2014-05-30T18:28:26Z] NOTICE: install_theme: Remember to set THEME="zen-ipython" in conf.py to use this theme. </span></pre> </div> </div> - +<div class="output_area"> +<div class="prompt"></div> +<div class="output_subarea output_stream output_stdout output_text"> +<pre></pre> +</div> </div> </div> - - </div> </div> - </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=b3cbd468"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>and your theme will be available at the themes folder in your site.</p> <p>OK, short post for today, more coming soon.</p> <p>Damián.</p> - </div> </div> </div> - - diff --git a/cache/stories/About me.es.html b/cache/stories/About me.es.html index 5967d442..388a89ab 100644 --- a/cache/stories/About me.es.html +++ b/cache/stories/About me.es.html @@ -1,29 +1,17 @@ <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">about_me</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">about_me</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> I am a Software Developer, Data Scientist and Quantitative Analyst from Córdoba, Argentina. @@ -33,17 +21,13 @@ </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> +<h3 id="This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">This is currenly outdated as of Nov 2024, it will be updated soon!<a class="anchor-link" href="#This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">¶</a></h3><hr/> <p>To give you a little bit more of context, I am originally a Biochemist that because of life, started to write code around 8 years ago.</p> <p>During all these years, I have made meaningful contributions to several popular Open Source projects such as:</p> <ul> @@ -66,9 +50,6 @@ <p>OK, I think this is all for now.</p> <p>I hope you enjoy my site!</p> <p>Best,</p> - </div> </div> </div> - - diff --git a/cache/stories/About me.html b/cache/stories/About me.html index 5967d442..388a89ab 100644 --- a/cache/stories/About me.html +++ b/cache/stories/About me.html @@ -1,29 +1,17 @@ <div class="cell border-box-sizing code_cell rendered"> <div class="input"> -<div class="prompt input_prompt">In [1]:</div> +<div class="prompt input_prompt">In [1]:</div> <div class="inner_cell"> - <div class="input_area"> - <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">about_me</span> +<div class="input_area"> +<div class="highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">about_me</span> </pre></div> - - <i class="icon-hand-up icon-large" style="float:right; margin-bottom:8px; margin-right:10px"> -   Click me to hide the output</i> - </div> </div> </div> - -<div class="output_wrapper output_hidden"> - <div class="output"> - +</div> <div class="output_wrapper"> <div class="output"> - - <div class="output_area"> - - <div class="prompt"></div> - - +<div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> I am a Software Developer, Data Scientist and Quantitative Analyst from Córdoba, Argentina. @@ -33,17 +21,13 @@ </pre> </div> </div> - </div> </div> - - </div> -</div> - </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> +<h3 id="This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">This is currenly outdated as of Nov 2024, it will be updated soon!<a class="anchor-link" href="#This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">¶</a></h3><hr/> <p>To give you a little bit more of context, I am originally a Biochemist that because of life, started to write code around 8 years ago.</p> <p>During all these years, I have made meaningful contributions to several popular Open Source projects such as:</p> <ul> @@ -66,9 +50,6 @@ <p>OK, I think this is all for now.</p> <p>I hope you enjoy my site!</p> <p>Best,</p> - </div> </div> </div> - - diff --git a/cache/stories/Support me.es.html b/cache/stories/Support me.es.html index db8be97d..f2a8f05f 100644 --- a/cache/stories/Support me.es.html +++ b/cache/stories/Support me.es.html @@ -1,6 +1,7 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> +<h3 id="This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">This is currenly outdated as of Nov 2024, it will be updated soon!<a class="anchor-link" href="#This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">¶</a></h3><hr/> <p>I am currently looking for a continuous flow of money so I can spend more of my daily time on the Open Source arena, particularly developing and supporting <strong>RISE</strong> and other Jupyter-related projects, and exploring some new ideas...</p> <p>Basically, you have 2-3 ways to fund some of my work.</p> <p>At <a href="https://ko-fi.com/damianavila">https://ko-fi.com/damianavila</a> you can either:</p> @@ -14,9 +15,6 @@ <p>If you are interested in supporting <strong>RISE</strong> evolution, I <strong>highly</strong> encourage you to choose one of the <strong>RISE</strong>-related available commissions. Press the "Commission Me" button (or visit this page: <a href="https://ko-fi.com/damianavila/commissions">https://ko-fi.com/damianavila/commissions</a>) for more details on each commission. Btw, buying a commission will allow you to be listed on the supporters' page at the <strong>RISE</strong> site (logos reserved for high tiers commissions).</p> <p>Finally, if you don't like this platform (or the associated electronic payment method) and you still want to support my work or, maybe, you are a company and you need to process things outside of this platform, you can drop me a DM at <code>@damian_avila</code> on <a href="https://twitter.com/damian_avila">Twitter</a> or <a href="https://t.me/damian_avila">Telegram</a> and we can figure it out better alternatives for you. You can also reach me at <strong>damianavila AT gmail DOT com</strong>, if you are from the old guard ;-)</p> <p>Thank <strong>YOU</strong>!</p> - </div> </div> </div> - - diff --git a/cache/stories/Support me.html b/cache/stories/Support me.html index db8be97d..f2a8f05f 100644 --- a/cache/stories/Support me.html +++ b/cache/stories/Support me.html @@ -1,6 +1,7 @@ <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> +<h3 id="This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">This is currenly outdated as of Nov 2024, it will be updated soon!<a class="anchor-link" href="#This-is-currenly-outdated-as-of-Nov-2024,-it-will-be-updated-soon!">¶</a></h3><hr/> <p>I am currently looking for a continuous flow of money so I can spend more of my daily time on the Open Source arena, particularly developing and supporting <strong>RISE</strong> and other Jupyter-related projects, and exploring some new ideas...</p> <p>Basically, you have 2-3 ways to fund some of my work.</p> <p>At <a href="https://ko-fi.com/damianavila">https://ko-fi.com/damianavila</a> you can either:</p> @@ -14,9 +15,6 @@ <p>If you are interested in supporting <strong>RISE</strong> evolution, I <strong>highly</strong> encourage you to choose one of the <strong>RISE</strong>-related available commissions. Press the "Commission Me" button (or visit this page: <a href="https://ko-fi.com/damianavila/commissions">https://ko-fi.com/damianavila/commissions</a>) for more details on each commission. Btw, buying a commission will allow you to be listed on the supporters' page at the <strong>RISE</strong> site (logos reserved for high tiers commissions).</p> <p>Finally, if you don't like this platform (or the associated electronic payment method) and you still want to support my work or, maybe, you are a company and you need to process things outside of this platform, you can drop me a DM at <code>@damian_avila</code> on <a href="https://twitter.com/damian_avila">Twitter</a> or <a href="https://t.me/damian_avila">Telegram</a> and we can figure it out better alternatives for you. You can also reach me at <strong>damianavila AT gmail DOT com</strong>, if you are from the old guard ;-)</p> <p>Thank <strong>YOU</strong>!</p> - </div> </div> </div> - - diff --git a/conf.py b/conf.py index ce728bcc..d600274f 100644 --- a/conf.py +++ b/conf.py @@ -130,9 +130,9 @@ ('/archive.html', 'Archives', 'icon-folder-open-alt'), ('/categories/index.html', 'Tags', 'icon-tags'), ('/rss.xml', 'RSS', 'icon-rss'), - ('/stories/about-me.html', 'About me', 'icon-user'), - ('/stories/support-me.html', 'Support me', 'icon-usd'), - ('https://twitter.com/damian_avila', 'My Twitter', 'icon-twitter'), + ('/stories/about-me/index.html', 'About me', 'icon-user'), + ('/stories/support-me/index.html', 'Support me', 'icon-usd'), + ('https://x.com/damian_avila', 'My x', 'icon-remove'), ('https://github.com/damianavila', 'My Github', 'icon-github'), ), 'es': ( @@ -798,7 +798,7 @@ # IPYNB_CONFIG = {} # With the following example configuration you can use a custom jinja template # called `toggle.tpl` which has to be located in your site/blog main folder: -IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}} +# IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}} # What Markdown extensions to enable? # You will also get gist, nikola and podcast because those are @@ -950,7 +950,7 @@ # If you hate "Filenames with Capital Letters and Spaces.md", you should # set this to true. -UNSLUGIFY_TITLES = True +FILE_METADATA_UNSLUGIFY_TITLES = True # Additional metadata that is added to a post when creating a new_post # ADDITIONAL_METADATA = {} diff --git a/files/.ipynb_checkpoints/Test-checkpoint.html b/files/.ipynb_checkpoints/Test-checkpoint.html new file mode 100644 index 00000000..df947a1c --- /dev/null +++ b/files/.ipynb_checkpoints/Test-checkpoint.html @@ -0,0 +1,2649 @@ +<div class="text_cell_render border-box-sizing rendered_html"> +<p><strong>Update:</strong> made full github repo for blog-as-notebooks, and updated instructions on how to more easily configure everything and use the newest nbconvert for a more streamlined workflow.</p> +<p>Since the notebook was introduced with <a href="http://ipython.org/ipython-doc/rel-0.12.1/whatsnew/version0.12.html">IPython 0.12</a>, it has proved to be very popular, and we are seeing great adoption of the tool and the underlying file format in research and education. One persistent question we've had since the beginning (even prior to its official release) was whether it would be possible to easily write blog posts using the notebook. The combination of easy editing in markdown with the notebook's ability to contain code, figures and results, makes it an ideal platform for quick authoring of technical documents, so being able to post to a blog is a natural request.</p> +<p>Today, in answering a query about this from a colleague, I decided to try again the status of our conversion pipeline, and I'm happy to report that with a bit of elbow-grease, at least on Blogger things work pretty well!<br /> +</p> +<p>This post was <em>entirely</em> written as a notebook, and in fact I have now created a <a href="https://github.com/fperez/blog">github repo</a>, which means that you can see it directly <a href="http://nbviewer.ipython.org/urls/raw.github.com/fperez/blog/master/120907-Blogging with the IPython Notebook.ipynb">rendered in IPyhton's nbviewer app</a>.</p> +<p>The purpose of this post is to quickly provide a set of instructions on how I got it to work, and to test things out. Please note: this requires code that isn't quite ready for prime-time and is still under heavy development, so expect some assembly.</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Converting your notebook to html with nbconvert +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The first thing you will need is our <a href="https://github.com/ipython/nbconvert">nbconvert</a> tool that converts notebooks across formats. The README file in the repo contains the requirements for nbconvert (basically <a href="http://pypi.python.org/pypi/Markdown/">python-markdown</a>, <a href="http://johnmacfarlane.net/pandoc">pandoc</a>, <a href="http://docutils.svn.sourceforge.net/viewvc/docutils/trunk/docutils/?view=tar">docutils from SVN</a> and <a href="http://pygments.org">pygments</a>).</p> +<p>Once you have nbconvert installed, you can convert your notebook to Blogger-friendly html with:</p> +<pre><code>nbconvert -f blogger-html your_notebook.ipynb +</code></pre> +<p>This will leave two files in your computer, one named <code>your_notebook.html</code> and one named <code>your_noteboook_header.html</code>; it might also create a directory called <code>your_notebook_files</code> if needed for ancillary files. The first file will contain the body of your post and can be pasted wholesale into the Blogger editing area. The second file contains the CSS and Javascript material needed for the notebook to display correctly, you should only need to use this once to configure your blogger setup (see below):</p> +<pre><code># Only one notebook so far +(master)longs[blog]> ls +120907-Blogging with the IPython Notebook.ipynb fig/ old/ + +# Now run the conversion: +(master)longs[blog]> nbconvert.py -f blogger-html 120907-Blogging\ with\ the\ IPython\ Notebook.ipynb + +# This creates the header and html body files +(master)longs[blog]> ls +120907-Blogging with the IPython Notebook_header.html fig/ +120907-Blogging with the IPython Notebook.html old/ +120907-Blogging with the IPython Notebook.ipynb +</code></pre> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Configuring your Blogger blog to accept notebooks +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The notebook uses a lot of custom CSS for formatting input and output, as well as Javascript from <a href="http://www.mathjax.org">MathJax</a> to display mathematical notation. You will need all this CSS and the Javascript calls in your blog's configuration for your notebook-based posts to display correctly:</p> +<ol> +<li>Once authenticated, go to your blog's overview page by clicking on its title.</li> +<li>Click on templates (left column) and customize using the Advanced options.</li> +<li>Scroll down the middle column until you see an "Add CSS" option.</li> +<li>Copy entire the contents of the <code>_header</code> file into the CSS box.</li> +</ol> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>That's it, and you shouldn't need to do anything else as long as the CSS we use in the notebooks doesn't drastically change. This customization of your blog needs to be done only once.</p> +<p>While you are at it, I recommend you change the width of your blog so that cells have enough space for clean display; in experimenting I found out that the default template was too narrow to properly display code cells, producing a lot of text wrapping that impaired readability. I ended up using a layout with a single column for all blog contents, putting the blog archive at the bottom. Otherwise, if I kept the right sidebar, code cells got too squished in the post area.</p> +<p>I also had problems using some of the fancier templates available from 'Dynamic Views', in that I could never get inline math to render. But sticking to those from the Simple or 'Picture Window' categories worked fine and they still allow for a lot of customization.</p> +<p><em>Note:</em> if you change blog templates, Blogger does destroy your custom CSS, so you may need to repeat the above steps in that case.</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Adding the actual posts + +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Now, whenever you want to write a new post as a notebook, simply convert the <code>.ipynb</code> file to blogger-html and copy its entire contents to the clipboard. Then go to the 'raw html' view of the post, remove anything Blogger may have put there by default, and paste. You should also click on the 'options' tab (right hand side) and select both <code>Show HTML literally</code> and <code>Use <br> tag</code>, else your paragraph breaks will look all wrong.</p> +<p>That's it!</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + What can you put in? +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>I will now add a few bits of code, plots, math, etc, to show which kinds of content can be put in and work out of the box. These are mostly bits copied from our <a href="https://github.com/ipython/ipython/tree/master/docs/examples/notebooks">example notebooks</a> so the actual content doesn't matter, I'm just illustrating the <em>kind</em> of content that works.</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [1]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="c"># Let's initialize pylab so we can plot later</span> +<span class="o">%</span><span class="k">pylab</span> <span class="n">inline</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre> +Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. +For more information, type 'help(pylab)'. +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>With pylab loaded, the usual matplotlib operations work</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [2]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">pi</span><span class="p">)</span> +<span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="s">r'$\sin(x)$'</span><span class="p">)</span> +<span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="s">'ro'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">r'$\cos(x)$'</span><span class="p">)</span> +<span class="n">title</span><span class="p">(</span><span class="s">r'Two familiar functions'</span><span class="p">)</span> +<span class="n">legend</span><span class="p">()</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [2]:</div> +<div class="output_subarea output_pyout"> +<pre><matplotlib.legend.Legend at 0x3128610></pre> +</div> +</div> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<img src="data:image/png;base64,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 +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The notebook, thanks to MathJax, has great LaTeX support, so that you can type inline math $(1,\gamma,\ldots, \infty)$ as well as displayed equations:</p> +<p>$$ +e^{i \pi}+1=0 +$$</p> +<p>but by loading the <a href="http://sympy.org">sympy</a> extension, it's easy showcase math <em>output</em> from Python computations, where we don't type the math expressions in text, and instead the results of code execution are displayed in mathematical format:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [3]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">sympyprinting</span> +<span class="kn">import</span> <span class="nn">sympy</span> <span class="kn">as</span> <span class="nn">sym</span> +<span class="kn">from</span> <span class="nn">sympy</span> <span class="kn">import</span> <span class="o">*</span> +<span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="n">sym</span><span class="o">.</span><span class="n">symbols</span><span class="p">(</span><span class="s">"x y z"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>From simple algebraic expressions</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [4]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">Rational</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">pi</span> <span class="o">+</span> <span class="n">exp</span><span class="p">(</span><span class="n">I</span><span class="o">*</span><span class="n">x</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [4]:</div> +<div class="output_subarea output_pyout"> +$$\frac{3}{2} \pi + \frac{e^{\mathbf{\imath} x}}{x^{2} + y}$$ +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [5]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">eq</span> <span class="o">=</span> <span class="p">((</span><span class="n">x</span><span class="o">+</span><span class="n">y</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">x</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> +<span class="n">eq</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [5]:</div> +<div class="output_subarea output_pyout"> +$$\left(x + 1\right) \left(x + y\right)^{2}$$ +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [6]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">expand</span><span class="p">(</span><span class="n">eq</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [6]:</div> +<div class="output_subarea output_pyout"> +$$x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$$ +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>To calculus</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [7]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">diff</span><span class="p">(</span><span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span> <span class="o">/</span> <span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">x</span><span class="p">),</span> <span class="n">x</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [7]:</div> +<div class="output_subarea output_pyout"> +$$- 4 \frac{x \operatorname{sin}\left(x^{2}\right) \operatorname{cos}\left(x^{2}\right)}{x + 1} - \frac{\operatorname{cos}^{2}\left(x^{2}\right)}{\left(x + 1\right)^{2}}$$ +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>For more examples of how to use sympy in the notebook, you can see <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/master/docs/examples/notebooks/sympy.ipynb">our example sympy notebook</a> or go to the <a href="http://sympy.org">sympy website</a> for much more documentation.</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + You can easily include formatted text and code with markdown +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>You can <em>italicize</em>, <strong>boldface</strong></p> +<ul> +<li>build</li> +<li>lists</li> +</ul> +<p>and embed code meant for illustration instead of execution in Python:</p> +<pre><code>def f(x): + """a docstring""" + return x**2 +</code></pre> +<p>or other languages:</p> +<pre><code>if (i=0; i<n; i++) { + printf("hello %d\n", i); + x += 4; +} +</code></pre> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>And since the notebook can store displayed images in the file itself, you can show images which will be embedded in your post:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [8]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span> +<span class="n">Image</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="s">'fig/img_4926.jpg'</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [8]:</div> +<div class="output_subarea output_pyout"> +<img src="data:image/jpeg;base64,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 +AAAAADYEAAAqLQAAAAAAAAAAAAAAAAAAkAMAAFYBAAB2AQAAjAAAABoCAADKAAAApAAAAD4AAAD7 +DwAA+w8AAAEAAAABAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANMGAADaCwAAAAAAAP// +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAVAAAADQAAAPujFdtgAAIACQABAEAOsApkAGQAEgAAAAAAAAAAAAAA +AAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEAAAACAAIA +AgACAAAAAAAAAAAAAAAAAAAAAAAAAIoAAQAAAAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKABAAAAABAACAAB +AAEAgALgAQAAAAAAAAAAAAAIAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAACAAAAAAAAAAKAAAA//8AAAAAk/+WminVRrV32VGV5sE8jQgAAAAAAP//AAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKo3ACQBAACAvykA2wAAAEAOAABADgAABAABAAIA +BAAAAFI5OAACAAcABAAAADAxMDABEAMAAQAAAEAOAAACEAMAAQAAALAKAAAAAAAABgADAQMAAQAA +AAYAAAAaAQUAAQAAAEoNAAAbAQUAAQAAAFINAAAoAQMAAQAAAAIAAAABAgQAAQAAAFoNAAACAgQA +AQAAAFUbAAAAAAAAtAAAAAEAAAC0AAAAAQAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAIBgYH +BgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04Mjwu +MzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy +MjIyMjIyMjIyMjIyMjIy/8AAEQgAxACTAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAAB +AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNC +scEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 +dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY +2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//E +ALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoW +JDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWG +h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp +6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A0MUYp+KMV7x4gzFGKfijFAEeKMVJijFAiPFJipMUYoAj +xSYqTFJigCPFGKfijFMCPFJipCKTFICPFJipCKTFMCIioNQhL6TIImKtH+9kc45AycDsOcc1bxUN +zbi5tpIGYqsi7SR2rCvT54NLc3w9X2c79DHOqyW58qW3kd16shXH4c0VUvNGnju5Es7to7cHCKJj ++J/E5P40VyKvKx1yoRuztsUmKkxRivRPOI8UYqTFJigBmKMU/FJigQzFGKfikxQAzFJipMUmKAI8 +VLBbmcuSwVUXczEZ4puKDLOkUsUBUGVGUljgKMHn69h9azquUYNx3NaKi6iU9jK0/VIdSluDCSI4 +n2AMuCT3rXjgi+zyT3EoiiUHDHucE1xumW8tre2skb4tpCwjz8w+98w3HryOoxXSXiRXdkULKyn/ +AFZ3Y+b1HvXNTqznRbT1R1Towp10pK6Yyyuory2WSOVJOxKkdR147VYxXL6db6hDqVwAsEc5QE7E +Utgt3HGf/wBQrqUVggDsGbHJAxn8K3w9RzgmzDEU1CbUdhuKTFSYpMVsYFSS88pymy4bHdYyR+dF +bSW2niNfOvCshUEqFzjPNFefKvRUmr/gehHD1nFO34jV5FLinBccUuK9A4BmKTFPxRigQzFJin4o +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 +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>You can embed YouTube videos using the IPython object, this is my recent talk at SciPy'12 about IPython:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [9]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">YouTubeVideo</span> +<span class="n">YouTubeVideo</span><span class="p">(</span><span class="s">'iwVvqwLDsJo'</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [9]:</div> +<div class="output_subarea output_pyout"> + + <iframe + width="400" + height="300" + src="http://www.youtube.com/embed/iwVvqwLDsJo" + frameborder="0" + allowfullscreen + ></iframe> + +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Including code examples from other languages +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Using our various script cell magics, it's easy to include code in a variety of other languages</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [10]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">ruby</span> +<span class="n">puts</span> <span class="s">"Hello from Ruby #{RUBY_VERSION}"</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre>Hello from Ruby 1.8.7 +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [11]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">bash</span> +<span class="n">echo</span> <span class="s">"hello from $BASH"</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre>hello from /bin/bash +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>And tools like the Octave and R magics let you interface with entire computational systems directly from the notebook; this is the Octave magic for which <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/d835d46dcc50043971b4a9915398bad1b5d63648/docs/examples/notebooks/octavemagic_extension.ipynb">our example notebook contains more details</a>:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [12]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">octavemagic</span> +</pre></div> + +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [13]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">octave</span> <span class="o">-</span><span class="n">s</span> <span class="mi">500</span><span class="p">,</span><span class="mi">500</span> + +<span class="c"># butterworth filter, order 2, cutoff pi/2 radians</span> +<span class="n">b</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.292893218813452</span> <span class="mf">0.585786437626905</span> <span class="mf">0.292893218813452</span><span class="p">];</span> +<span class="n">a</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">0</span> <span class="mf">0.171572875253810</span><span class="p">];</span> +<span class="n">freqz</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="mi">32</span><span class="p">);</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<img src="data:image/png;base64,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 +3r33339fXV3dxsampKREQ0PD2NgYAFpaWkpLS52cnMjDioqKrK2tyUuoqalpaWmxsbEhqzIzMxcs +WEBuD2ghIyNDWVl5OC0I1oeKigrSK5Sr4L8FgiBIr9A/Sd4t1NTUkF6hf5K8WygsLFRWVhb1v+br +LWRnZysrK4vzG0W2kJ2d3dnZKc5vFNlCdnZ2ZWWlOL9RZAvZ2dnnzp0bUgslJSUPHz58PcKQ25Ja +mP6tEIJy+fLlt7XT1dXl6emprq7+999/c+8fP368p6cn956IiAgKhdLR0TFoLYIgCMI/gt+5W1hY +FBcXv76/p6fnww8/vHjx4h9//DFlypQBp1y9epV7T3l5uYmJiYqKyqC1CIIgCP8IPuaupqbmwAW5 +s6+vb9myZXl5eVlZWXZ2dgNO8fX1raurKyoqIot1dXV5eXmcn0W8axEEQRD+EfJ67p988smBAweC +goLc3d05O83MzMhBrt7eXltb26dPn27fvl1VVTU2NrahoaG0tFRPT2/QWgRBEGQICHeUZ8BcRpLg +4GDOAY8fPw4ICNDQ0KDT6R4eHhUVFdyn865FEARB+EQeMjEhCIIgA8BVIREEQeQQDO4IgiByCAZ3 +BEEQOQSDO4IgiByCwR1BEEQOweCOIAgih8hwcBdDTj7+FfX19evWrbOzs1NRUaFQKDU1NeLxDprX +UETeixcv+vj4jB07lkaj6enp+fr6Dlg6QkRebvz8/CgUyscffywGb25uLuVVhrNK1FCv9+zZs46O +jgwGQ11d3c7OjvMWt+i8CxcupLzGjBkzRO0FgKKiIldX13feeWf06NHTp08/fvy4YNKheouLi52c +nOh0uqam5rJlyzhZKGQYSU+0F5Cenh5ra2s9Pb0DBw6kp6dbWVnp6Og8fvxYUori4mIdHR1vb28y +2Uh1dbV4vE5OTjY2Nlu3bk1NTY2MjKTT6e+9996zZ89E7T169OiHH364c+fO1NTUuLg4ExMTKpU6 +YJ04UXg5ZGZmamlpUanUjz76SADpUL05OTkAkJCQkPGS06dPi8FLEMS+ffsAwN3dPTExMTk5OTg4 ++MSJE6L2Xrp0KYOLuLg4AIiKihK19+rVq1Qqddq0aWlpaSdPniRXC09LSxO196+//lJSUpoxY8ax +Y8d+/PFHQ0NDMzOztrY2AbzSg6wG99TUVADIz88ni48ePaJSqRs2bJCUgs1mkxuJiYnDDO5D8t6+ +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 +Y2RHRMr/A5YdmP24XbLsAAAAAElFTkSuQmCC +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/3607712653c66d63e0d7f13f073bde8c0f209ba8/docs/examples/notebooks/rmagic_extension.ipynb">rmagic extension</a> does a similar job, letting you call R directly from the notebook, passing variables back and forth between Python and R.</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [14]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">rmagic</span> +</pre></div> + +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Start by creating some data in Python</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [15]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">0</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">4</span><span class="p">])</span> +<span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">7</span><span class="p">])</span> +</pre></div> + +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Which can then be manipulated in R, with results available back in Python (in <code>XYcoef</code>):</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [16]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">R</span> <span class="o">-</span><span class="n">i</span> <span class="n">X</span><span class="p">,</span><span class="n">Y</span> <span class="o">-</span><span class="n">o</span> <span class="n">XYcoef</span> +<span class="n">XYlm</span> <span class="o">=</span> <span class="n">lm</span><span class="p">(</span><span class="n">Y</span><span class="o">~</span><span class="n">X</span><span class="p">)</span> +<span class="n">XYcoef</span> <span class="o">=</span> <span class="n">coef</span><span class="p">(</span><span class="n">XYlm</span><span class="p">)</span> +<span class="k">print</span><span class="p">(</span><span class="n">summary</span><span class="p">(</span><span class="n">XYlm</span><span class="p">))</span> +<span class="n">par</span><span class="p">(</span><span class="n">mfrow</span><span class="o">=</span><span class="n">c</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span> +<span class="n">plot</span><span class="p">(</span><span class="n">XYlm</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<pre> +Call: +lm(formula = Y ~ X) + +Residuals: + 1 2 3 4 5 +-0.2 0.9 -1.0 0.1 0.2 + +Coefficients: + Estimate Std. Error t value Pr(>|t|) +(Intercept) 3.2000 0.6164 5.191 0.0139 * +X 0.9000 0.2517 3.576 0.0374 * +--- +Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + +Residual standard error: 0.7958 on 3 degrees of freedom +Multiple R-squared: 0.81, Adjusted R-squared: 0.7467 +F-statistic: 12.79 on 1 and 3 DF, p-value: 0.03739 + +</pre> +</div> +</div> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<img src="data:image/png;base64,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 +l5WVdXFx+e233/YfOiR19KhUZaXdDz9cvXoVl97gizlz5owYMaKoqCgiIiI1NXXjxo04FwfqXgSU +oA0MDLjul5OTMzExab7n/fv3Ojo6AglKmF69enXy5MnCwsKjR49KSUlVVVXB/v0gJfXpjz9YLJaw +oxMRnp6eU6dOVVNT09HRSUxMXLRoEc4NjboXIQ8VYLPZkyZNar4nNze3J4wbXbNmTVxc3IoVK3x8 +fHR0dFasWPHtt9/W1dX9/PPP165dE3Z0IoLBYJBdzwBgZGRkZGQk3HgQ6ixKEvShQ4da7/Tw8KCi +rm4qJCRk1qxZDx8+dHFxCQsLu3jx4q+//iopKRkeHq6uri7s6BBCtEBJglZSUlq9erWvr6+YmBgV +5YsASUlJV1dXZWVl8sljPT29Fo8IIxoiCKK8vFxRUZGBj+AjgaAkQS9btuzSpUtr167FBwjb4ujo +iANyu4s1a9YEBATEx8fPmzePyWQymcygoCAzMzNhx4VEH1UJ9C98UhmJiidPngDA9u3bQ0NDjY2N +8/LyXFxc7t27x0NR9fX1UVFR1dXV48aNU1NTaz6YZ+LEiXyOG3V/lI+Dxq5nJBqkpaXJGQu0tLQa +Gxt5KKG2ttbOzi46OjojI8Pe3j45OZkczOPp6Xnjxg1+x4tEAeUJOicnh+oqEKJUenq6k5NTRkYG +OWb/4MGDWlpaPJQTHh4+ZcqUvXv3uru7BwUF+fr6rlmz5vXr187OznZ2dvyOGokCyvuImy96j1B3 +VFRUlJmZmZqaqqysDAASEhInTpzgrRzOGH8dHZ2ioqLmg3mmTJnCz6CRSKA8Qbu6ulJdBUKUEhMT +MzAw4DxsxZldurMmTpy4du1aOzs7BQWFffv2TZ8+vcVgHoRawFEWCHWarq5uVlZWZ19laGjo6enp +4uJSV1fn4OCwcuVKBoOBg3lQOzBBI9Rpbc0tU1FR0WLloIyMDA0NDc6PNjY2NjY21AaHRAgdE3Rc +XJxc8/WfOiY9PT0rK6sr67+VlJSoqKjw/PLi4mJVVVWeX15VVSUmJtat4x8yZIimpmZnX5iYmMh5 +ILu7aGtumfLy8vT09OZ7yIlWQkNDO1X+P//8U1paSuljBF18u7+o6+35i6g+hZqaGl1d3RZrmH0R +f9szgyAIfpXFFzk5OTdv3uThhdevX//w4UOfPn14q7e6uvrZs2cWFha8vRwA/vzzT1tbW55f/vr1 +a2lp6a7EHxcXZ2lpyXMAXY/f0NCQhwAYDMb8+fPl5eV5rprOeGvPwcHBMjIyampqVIRE6uLb/UVd +bM8dQfUpZGdnKygozJgxo1Ov4m97pl2C5pmfn5+Wltbs2bN5e3l+fr67u/ulS5d4DmDChAl3797l ++eVHjx7V0NBwdnbm7eUFBQUbNmy4fPkyzwF0MX5/f391dfU5c+bwXAJtCX5ume3bt9vb25ubm1NX +RRff7i/qYnvuCKpP4erVqzk5Od988w11VXyRgCbsR6j7UlJS8vT0lJCQkGpG2EGhHoGOfdAI0QrO +LYOEBRscQl+Gc8sgocAuDoQ6AeeWQYIkOjcJs7OzpaWleb7x3djY+OrVq+HDh/McwLNnz1os39Up +3T3+d+/esVgskV9tYP78+V25E9tBqampmpqalI5s6eLb/UVdbM8dQfUpFBUVVVdXUzoQ5YtEJ0Ej +JADBwcE4ewESGEzQCCFEU9gHjRBCNIUJGiGEaAoTNEII0RQmaIQQoilM0AghRFOYoBFCiKa6ZYKu +rq6ePXv2xIkTR40a9fjx4+b/1NjYqKysPGrUqFGjRq1Zs4bSMOrq6oyNjTMzMwUfQDu1CCaAY8eO +TZgwYdiwYbGxsYKvXVQFBQW1njmPIAgPD48JEyZYWVklJSXxVnI7hXT9LWuncL4ET3X8zVH3FvCI +6IZOnTq1ZcsWgiAePHgwYcKE5v+Ulpbm6OgomDD27NnDYrEyMjIEH0A7tQgggMTERBMTk7q6upcv +X5qamgq4dlE1adIkSUlJX1/fFvvv378/efLkpqam+/fv29vb81Z4O4V0/S1rp3C+BN9+OXxscpS+ +BbzpllfQZmZmq1evBgCCIBQVFZv/U2pqanZ2trOz8/Tp0+Pj46mLISUl5cmTJ6ampi32CyaAdmoR +QAARERFz5syRkJAYOnRoeHi4gGsXVbdu3Tp48GDr/TExMebm5gwGY8yYMS2+L3ZcO4V0/S1rp3C+ +BE91/ByUvgW86ZYJesiQIXp6eitWrJg8eXKLJZaVlZU3btwYGhq6b9++efPmEdQ8J9nU1LRhw4af +fvqJwWC0+CfBBNBOLQIIoKCgIDk5ecqUKVZWVs+fP+9gYKh94uLiYmJirfcXFxfr6ekBgJSUlLS0 +dF1dHQ+Ft1NI19+ydgrnS/BUx89B6VvAY0gCq4mPPnz4IC0tffLkSU9Pz4kTJ759+5aTKE1NTcmr +2mHDhjGZzPLyciUlJb4HcPz4cVtbW66LlQkmgHZqEUAA8vLyubm5169fLygoGDlyZE5ODovFEljt +oiQ4OPjGjRu9e/fmumgLSVlZmVxBvKamprKyUlJSkofy2ymk629ZO4V3JfgOViGAJsevs+BBt7yC +3r9///HjxwGAxWK1+Gt25MgR8ktKXl4eg8Fo0QHCL0+ePPnjjz/s7Oxevny5ZMmS5vcJBRNAO7UI +IABLS0sFBQUJCQl5eXkmk9n8mkUwpy8yXF1dL1++3E52BgArKyvya3VcXNy4ceN4K7+dQrr+lrVT +eFeC72A5Amhy/DoLXgiyw5tfCgsLp06dam5uPnz48IiICIIg0tLS+vTpQxBEeXn53LlzLSwsxo8f +/+jRI6ojsbKyIm8SCjiA1rUIMoCmpqatW7eOGTNm2LBhISEhAq5dhPn5+XHuUHF+pU1NTZs3b7az +s5s0aVJKSgpvJbcuhI9vWTuF8yV4quNvjrq3gDc4mx1CCNFUt+ziQAihngATNEII0RQmaIQQoilM +0AghRFOYoBFCiKYwQSOEEE1hgkYIIZrCBI0QQjSFCRohhGgKEzRCCNEUJmiEEKIpTNAIIURTmKAR +QoimMEEjhBBNYYJGCCGawgTdaTk5ObKystb/Wb9+fUhIyN69e4uLi0NCQgCAs9E+IyOjTtV75coV +Ly8vHoNGou7rr7+2trYeMGCArq6utbX1rFmzbty4wd8Gw2nYZIP/4vGtW2xSUtKMGTPGjx9vaWm5 +cuXKkpISfgUjqp+ObrkmodD17dv33r17LXampKSEhITMnTuXbDpz584VRmiohyIXgQsMDMzJySGz +540bN/hbBadh89a2CwsLZ86cefnyZRMTE4Igzp496+joeP/+fSaTl8vEFsFcuXKFh0LoD6+g+eDK +lSu7d+8+cuTI06dPQ0NDORv19fXLli0zNzcfP378gwcPAKCoqGjq1KmTJ09etGhRbW1t80KmTJkS +FxcHALdv3164cOGnT58cHBwmT548efLk5o0vODjYx8cHAGpqakaNGgUArWtJTk6eOXPm9OnTZ82a +VVpaKshfBaKVZ8+eubq6jh8/3s/PD7g1laqqqvnz50+dOnX8+PFRUVEAEBYWtmzZsqFDh758+bLF +wZyGTTb4ysrKefPm2dnZjR8//p9//mmrxXKcP3/e1dXVxMQEABgMxtKlS8XFxZ8+fdq6Sbcu6saN +G4sXL166dKmlpSV5Li2CIasQvc8CXkHzIiMjw9ramtwmF6wEAHd395KSkjlz5gwdOpTcOHnypKSk +5MOHDwsLC83Nzd++fevj4+Pg4LB69eqYmJhbt241L3Px4sW//vrrqFGjzp8///XXX+fl5bm6us6d +O/fRo0c+Pj7Ozs5tBXP27NkWtdy+fXvo0KF79uwJDw8vKipSVlam7DeBaK2kpOTmzZtFRUU2Njbr +169v3VQCAwONjIy8vLyys7PHjx9PLn+cmJj4/Pnz1gdzWjiZNH/55RcjI6MdO3ZER0fHxMSwWKz2 +W2xGRsb48eOb7xk4cGB6enrrsLk2/sTExGfPnpWWllpZWa1fv75FMCTR+yxgguZFiy6O7Oxsroe9 +evXq9evXS5cuBQB1dfWqqqrU1NTly5cDgJmZGYvFan6wo6PjgQMHduzYkZKSYmlpWVBQcOfOnQcP +HtTV1TU1NbUuvKGhoa1a3Nzcfvzxx2nTpunq6pIr0qOeacKECQwGQ11dnfyxdVNJSUlxcXEBgD59 ++gDAp0+fAMDa2lpCQqL1wS0KT0xMXLVqFQBYWlpaWlrm5+e332L19fVfv35Nbjc2NoqJiSUnJ3/1 +1VecnZwmLScn17oo8lxUVFTaOV/R+yxgFwc/cVbgJTcMDQ3Nzc3Pnj37888/29vby8rKDho06O7d +uwAQGxvbootDVlZ2zJgxHh4erq6uDAYjICDA2Nj46NGj8+fPb76wL5PJLCwsBIA7d+6Qe1rXEhIS +Mnny5Fu3bunr658+fVow545oSEJCovmPrZvKwIEDHz58CACZmZkEQcjIyHBe1fpgaNbCyQNiYmIA +4O7du9u2bWurxXIsWrQoODj42bNnAHDhwgVHR0cxMTETE5PWTZprUS3OpUUwbZ1gd/8s4BU03/Tq +1ev169cXL16cNm0aubF8+fLly5dPnDixqqpq8+bNALBly5ZFixZduXJFU1Ozf//+LUpYvHixnZ1d +bm4uANjZ2Xl7e0dFRfXr1y8rK4vsngYAa2vroKCgmTNnGhkZkR+n1rWMHDly6dKlioqKTCbzxIkT +Av0tIBpr3VRWrVq1dOlSW1vbmpqas2fPtn8wp4WTX/7c3d2XLl06ceLE6urqoKCgsrIyri2WQ11d +PSwsbMuWLaWlpZWVlYaGhgBQWlraukm31fibaxFMWzF3988Cg+vfOoQQotq7d++0tLTExMSEHQh9 +YYJGCCGawj5ohBCiKUzQCCFEU5igEUKIpjBBI4QQTWGCRgghmsIEjRBCNIUJGiGEaAoTNEII0RQm +aIQQoilM0AghRFOYoBFCiKYwQSOEEE1hgkYIIZrCBI0QQjSFCRohhGgKEzRCCNEUJmiEEKIpTNAI +IURTmKARQoimMEEjhBBNYYJGCCGawgSNEEI0hQkaIYRoChM0QgjRFCZohBCiKUzQCCFEU5igEUKI +pjBBI4QQTWGCRgghmsIEjRBCNIUJGiGEaAoTNEII0RQmaIQQoilM0AghRFOYoBFCiKYwQSOEEE1h +gkYIIZrCBI0QQjSFCRohhGgKEzRCCNEUJmiEEKIpTNAIIURTmKARQoimMEEjhBBNYYJGCCGawgSN +EEI0hQkaIYRoChM0QgjRFCZohBCiKUzQXLx8+XLy5MlsNltFRcXBweHNmzcdf218fLyRkVFHjvz4 +8SODwSguLuY1TC7ExcUbGhri4uJGjRrFx2KREPXu3ZvxH3l5eXt7+7y8vI6/nGtjKC8vV1RU7FQY +HW/YHURF+xc9mKBbamxstLe3HzNmzIsXLxITEw0NDZ2cnAiCEHZcndC3b19vb29hR4H45ubNm2Vl +ZaWlpc+fP//w4cP27ds7/lpsDN0aJuiWcnNzc3Jytm7dqq+vr6mp6ePj07dv34qKCgAICQnp37+/ +iorK6tWra2trAeDkyZN9+/aVlpY2MzN7/fp1i6Kio6NHjBghKytrZ2eXm5vbwQCuXr1qaGjIZrNn +z55dVFRE7uxI1ZMnT25sbDQwMEhMTNy5c2dbpaWkpFhYWBw6dEhbW7tv375RUVF8+K0hKsnLyysq +KiopKfXv39/V1TU9PZ3c37qBNTQ0rF69WklJSVVVdc+ePQCQkZHBaQx+fn46Ojo6OjqnT58m9zx+ +/NjMzKz1djsNu3UVHHZ2didOnCC3fX1958+f387BbWl9Uq2L5XpYYmKitbX13r17jY2N2zqFs2fP +6unp6enpnTt3Tk9Pr60aaYRAn6uvrzcyMpoyZcqtW7c+ffrE2f/69WsVFZVHjx69ffvWxMTk1KlT +2dnZkpKS9+/fLyoqcnNzW7lyJUEQL168GDJkCEEQxcXFKioq4eHhpaWla9eutba2blFRZWUlABQV +FTXfmZ6ezmazIyMjS0pK3Nzc5s2b1/GqCYIQExOrr69/+vSpiYlJW6UlJyfLysoeOHCgqqpqy5Yt +Y8eOpfC3ibpMW1s7Ojqa3M7NzXV0nuFSEAAAIABJREFUdNy3bx/RRgMLCQkxNDTMyMh4/vw5i8VK +S0vjNIYHDx4oKSndv38/JyfHxsaGzWYTBBEbG2tqakoWztluv2G3roIT6rFjxxwcHMhtc3Pza9eu +tXMw1/bP9aRaF8v1sFevXrHZbDc3t8TERK6n8PLlS1VV1b///js3N9fCwkJXV7etGukDEzQXNTU1 +AQEBdnZ2KioqU6ZMefLkCUEQe/bsWb9+PXlAfHz8/fv3q6urs7KyCIL4+PGjh4cHmf447fjs2bOz +Z88mj6+urpaRkWloaGheC9cGeuTIkSVLlpDbhYWFEhISDQ0NHayaaJWguZaWnJysoKBQX19PEMSr +V68MDQ35+stDfKatrS0rK8tmsxUUFADAzMyMbEhcG1hISIi+vv7ff//d1NRUVFRUW1vLaQwbNmzY +tm0befzDhw/bSdDtN+zWVXBCzcvLk5OTq66ufv/+vaKiYnV1dTsHc23/XE+qdbFcD3v16pWkpGRN +TU1bp+Dp6bl582byVb///juZoL/4ORUucaFevtNRXV0dQRCrV68mOxMuXbpkaWkZHR2dk5PTv39/ +8phhw4YBQENDw6lTp27dusVms1kslry8fPNy3r17FxkZyfkaJSkpWVhYeOXKlR07dgDA4cOH586d +27r2/Px8zkvU1NQkJSWLioo6W3X7pQGAhoaGuLg4AJD/RzR35syZ0aNHA0BxcfGCBQuCg4OXLFnC +tYHNmjXrw4cPK1euLCgoWLt27aZNmziF5OfnT5o0idzW19dvXQvx340WcXHxdlpXO1VoamoaGRnd +u3cvOzt75syZUlJS7RzMFdeTal0s18MAQEdHh8VitXUKubm55K8RAPr06dN+je3HKTD4+WwpNDT0 +9OnTd+7cAQAWi+Xm5nbu3LkXL1706tUrJyeHPCY2NjYtLU1cXDwiIuLPP/9UVlYODg6+ceNG83I0 +NTVtbW1/++03AGhsbHzx4oWGhsb69evXr19PHvDx48fWtWtoaCQkJJDb5BWHqqpqZ6tuv7Ty8nIG +g9HF3xISJE1NTTKD6OnpzZ49+8WLF0uWLOHawNLS0mxsbJYtW5adnT1nzhxFRUVOt7KWltbbt2/J +7YyMDE7hDQ0N5AanjYWGhrbTutLT01tUsW7dOs6/Ojk5RUREvH379ptvvvniwVzPtPVJtS6W62El +JSWcCw6up6CpqZmdnU0e8O7du/ZrpAm8SdiSra3t8+fPd+3a9ebNm9evXx87duzZs2cTJkyYPXv2 +hQsX/v777/T09I0bNxYXF5eUlMjJyUlLSxcWFvr5+VVXVzcvx97ePjo6+ubNm8XFxdu2bdu4cSPX +tFhRUVH+n9ra2hkzZly9evXOnTtlZWUeHh5OTk7i4uKdqrp53udaGnW/OiQAGhoaZHLh2sDCw8MX +LFhQUFDQ2NhYW1srLS3NeaGzs/Px48ejo6Pz8vJ27txJtkY2m52QkBAfH19SUuLv708e2X7DbqcK +AHB0dLx27VpCQsLEiRO/eDC0av9tfWpaFPvFDxfXU3B2dj5z5kxcXNz79+9//PFH8sgOfk6FRth9 +LHSUmppqb2/fq1cveXn5sWPH3rp1i9x/7ty5vn37KigoLF26tLa2try83NbWVllZ2dzc/Pr16716 +9Tp//jynq44giNu3bw8ZMkRGRmbChAlv375tUQvZB9fcyZMnCYK4cuXKgAED5OXlHR0dCwoKOl41 +QRBz586Vl5e/d+8e2e3ItbTk5GROv3PzbURPzW8SEgQRERGhrq5eUVFBcGtglZWVjo6OsrKyysrK +q1atqqur4/RBEwTh5+fXu3dvbW3t06dPa2trEwTR1NS0fv16OTm5oUOHhoaGkn3Q7Tfs1lW0CHjw +4MFff/01ud3OwW21/7Y+Nc2L5XpY8xsqbX1AAgMDNTU1BwwYEBgY2MHPqXAxiG41whchhHiTkpJS +UFBgZWUFAJGRkQcOHLh7966wg/oCqro4Ghoa6uvrOT+SQ3cRQkhYysrKFixYUFhYWF1d7efnN23a +NGFH9GWUJOirV69qa2sPGDDg+PHj5B5TU1MqKkIIoQ4aO3bsN998M2LEiP79+2tqaq5du1bYEX0Z +JV0cxsbGUVFRMjIyU6ZMOXDggIWFxfDhw+Pj4/leEUIIiTBK7ulraGioqqoCQGBgoJubW0xMTMdf +W1hYGBYWRkVUiJ6YTObcuXPJpzBED7bnnoa/7ZmSBK2np/fVV199++23RkZGM2bMmD17dmlpaQdf +e+vWrYSEBGtrayoCQzQUFhamo6MzZcoUYQfyZQRBkPPAdXwkVuv2LC4uLikp+enTJ0pCFBR2dvaw +c+fejxqVNmUKwRTcaN0BERFy+fnJjo7VKioCq7RT+NueKUnQR48evXv3bmNjIwDs2LEjLCzs9u3b +HX/5qFGj5syZQ0Vg9BEdHe3v7y8rK+vi4kIO7eyx0tLShB3CF6xZsyYgICA+Pn7evHlMJpPJZAYF +BXEeAPmiFu2ZHBEsIyNDTbAC5O7e68SJ4f37w8iRgqt0zhy4d8/gwAGwtQUPD8HV22H8bc+UJGhJ +SUnOHxAGg+Hk5OTk5NTWwWVlZc1/rKqqaj2aXfS8evXq5MmThYWFR48enThx4v/+97+LFy9KSEis +Xr26W1xL9ihPnjwBgO3bt4eGhhobG+fl5bm4uNy7d4+30sTExKSkpPgZn7AwmbBq1b/b16+DpSV0 +co5pHllbg7U1kI/PVFVBSQn899y26BHQc2W6urpZWVmt9yclJe3evbv5nufPn48YMWLp0qWCCUxY +1qxZExcXt2LFCh8fn4iIiFu3bv3vf/+rq6tbunSpqqqqiYmJsANELUlLS5PzWGppaZHfDnlTWVlZ +UlLCmfxBRMjJgaMjzJsHK1aAYJ5WJS/jKith7VpQV4ft24HbBCPdnYASdFuTDg8ePDgkJKT5nhUr +VjQ1NQkkqDZFRUU9efLE2Nh46tSpDAYjPj7ex8dHQUHByspq4cKFXS39wwcoLw8JCZk1evRDLy+X +7dvnSUkdHj2afeAAuLq6u7vfuHEDEzStpKenOzk5ZWdnBwcHu7q6Hjx4UEtLi+fSZGRkxMTE+Bge +LUyYABYW8PPPEBYGzs6Cq1dDA65fhydPYNcuCAwEWVnBVS0QAkrQBgYGgqmo677//vvs7GxnZ+fI +yMiIiAh/f/+4uLhffvlFRUVl1qxZLRN0fT2Ul0NFBVRUQFnZ/2833+BMjsFgAEEAmw1stmRxseu5 +c8ps9sIxY2ry83N1dNQGDwYvr/fOzmw2W/BnjdpRVFSUmZmZmpqqrKwMABISEpz543kgOl0cLUhI +/H+ncGwsKCjAkCECqnrMGLhw4d/t/fthxAiwswNaTanBK5w65zNNTU1//PHHo0ePGImJU21tD2zd +WnPkyPLa2uJ9+zzu3l2lpARTp0KzJyRBQgIUFYHNBkXFf/9js0FLi8zC//4oJ9e6IkcAx/+2s7Ky +5syZs3TpUpusrMhDh37CJU5oRkxMzMDAgHOR4e7u3pXSRLOLowU1Ndi6FaSkYM8eQfc8LFkCAQHg +4wO7doGNjUCrpgAlCfrQoUOtd3rQ8pZrC42NjbKysoxnz+Dbb8HJic1i1bLZqY2NZ1+92nrihEa/ +fqCoyPcuNl1d3du3b9+4cSNz3rzTL16IKyvzt3zEd+3cU9mwYUPzPW/evLG2tm5+T0U0uzha6NcP +fvsN4uLgxg345huBVq2tDfv2wcePQE7GVFkJ1dWgri7QGPiHCQA//vhjSUkJHwtVUlLy9PSUkJCQ +aoaP5VNHQkJCT1m5aP784mPHwvr2vaGuzv7qq58fP86urfU4enSXnx9FN0CUlJQWLVo0Zds28dpa +SE2logrER+3cU/nzc7a2ti3Ssch2cbQ2atS/2TkvD9avh/fvBVe1nByQk+7n5MCsWbB4MTx7Jrja ++UccAJKSkioqKq5evcqZOoODxWLduXOns+1p2bJlly5dWrt2bXecfTiQxbpmZnbF29vQ0PDSpUsA +EBQUJLjqv/sODh6EU6cEVyPqvK7cU+kRXRwtaGnBrFmwZAkYGMDhwyDIcbSDBkFMDDx6BCdPgrEx +SEgIrmp++P8EumLFihUrVgBAaWlpUVERm80+ffq0s7Mzb3/t//rrL77FKEiXL4tLS885cUJoz8mY +moKXF2Rni/DQzh6uJ3Rx5OXlhYSEsFis+fPnKykpxcfH+xw/rqCnZ6Wjs5B87LCiAgR5M9zcHMzN +/91euxaUlGDlym7xEeNyhbts2TI3N7dbt24ZGBisXLmS5wH53U9WFvz0E9y5I+QwPDzgyBE4ckTI +YaD/8Peeish3caSmpi5atMjd3b2mpsbOzi48PPyzcVAsFgDAgQMQHw8eHvDfMomCQ44FXLYMFiyA +r74SdO2dxOUh+vr6egcHh6ysrM2bNwt9SLLgNDbCsmUQECD8oZRTpsDz51BUJOQwREVpaenr16/z +8/P379+fylP/Pn/vqVRWVnJWxhNJJ06cOHz48Pz5893c3DZt2nThwoXly5czmUwPD49VnCcPfXwg +IABu3QJB9h+SxMXB2Rn+/PPf7Pz2LRw5AsXFgg6jY7hcQYuJiXl5eY0ZMyY6OrqiokLwMQmHry9M +nCjQWQXasX49HD0K338v7DhEQde/EfL3norId3FUVVUpKSmR20pKSq9fv3758uXZs2e3bt362Xqs ++vrw38KA8M8/8NtvsHIlCH7BVl1d0NGBpUuBxYLTp4FmsypyuYL28fFRU1Nzd3dPTk7+v/bOPJDK +7P/jb2RvMUabdrQOmkoq2aIsMVqkmpIULRpGq4xUQqW0fNum1FQmKdEiMlLaJEzULzIVbahMRauE +K+7vj2t0cYm7PM9zr/P663buvZ/zpuf5OJ/Pc87nQ+nzMRq5eRNXrmDlSrp1/Mfkybh0CQ2athH4 +QCgRYWJiorCeeEt8isPBwWHVqlWcoz1BQUGTJk3asWNHQUHB8uXL165dy/s7Awdi6FAsXIjp00Fx +nT/Ogjo2Flu3glPB6vp1FBZSqqFx6lxzvr6+ta85ebeCggI9PT2qRVHMp0/w8MCpU6CwauI3kJbG +3LkICWFmvS7xgmkRocTv4jAzM2OxWF5eXnJycoGBgdra2t9e50lLw9YWtrYoKqrZ43H5Mn78EVSe +CejV66sYT09UVWHRIhpS5HWp46B//PFHunTQyfLl8PJC9+5066jLrFkwNIS7OyR6tUUBQUFBCQkJ +zs7OkZGRTIgIJT7FAcDKysrKyoqfb3bsWPPiyxfMno327eHujlGjhKjt24wejdGjUVSEnBwAYLOR +nQ0dHUo1/EcdBz2lQZWTjIwMCsXQQVQUyspgb0+3jgbIymLGDPz5JxYsoFuKuMLMiFDiUxzCwcIC +FhbIy0NeHgB8+YLnz0Fl2NGxY81fi8pKHDiAtDTY2sLdndJFPc+HhFFRUWFhYdXV1Ww2Oz8/Pzs7 +m0pBlFJYiO3bceEC3ToaYd48mJnBxYWi+o0SBzMjQolPcQiT3r1rnPLnz/D2xvv3cHDAzJmUhpVy +cti5ExUViInBq1dQVcXbt2jThprHiTzu/JCQEH9//9DQ0OnTp7eoE4qYwWZj3jzs2MGzmBEjUFKC +jQ2iovDzz3RLEUuYGRG2hhSH8GnfHhER+PQJ0dH491/06YPiYigrU3coUV4etW1xHj2Ctzc6dsTc +uRBxew0ej8WkpaUNDAzk5eXNzMyY346If3bswPDhGD6cbh1N8uuv2LsXIui83nqIioqys7OztbW1 +sbFxdnamWw5JcQhA27ZwdESfPgCQlQVzc0yfjrg4qmXo6+PyZQQH4/FjcPYFvXjB+yatqsKVK/Dw +4HsqHg5aQUEhMjKSxWLt2bOntLSUb9OMJjMTZ8+CK0fJUDp0wMiRNFyCEkRISIi3t7e6uvqyZcts +bGzoliP5B1UowswMKSnw80PtL/PePbBY1Ano2ROLFtVs/YqMxMiRWLoU//xT5zOvXiE9vU6B4hbC +w0FHREQMHTrUz8/v1atXje5bFGvKyrBwIQ4dEo/c7rJlX/fzE1oO0yJCJSWlTmJb/ZJxDBgAN7ea +19euwdQUTk64eZNqGUuWICUFP/2Ex4+TkpKysrJqxtXVMX++IIZ5eCglJSUtLS0A/v7+gphuDllZ +WXPrHofPz883qC1rIiK8vbFwYU2gxHw6d8aAAUhKgrEx3VLEEqZFhCTFISrc3ODmhrt3a/rJlpUh +Nhbm5vj+eypml5HBmDEAqvfsqRRgyVwPHg6aex+SkpJSUlKSsCZriK6ubr3nNiLvSXjuHIqKMHu2 +CKcQOl5e+PVX4qD5IyIiorCw0MjIaO/evUyICMkuDtFSu2FZVhaFhZgxA9LSCA6GtjatsviEh4NO +Tk4G8OXLl0uXLt2kPlgQKS9fwt+fufvqGqNPH3TogFu3QJrJthwqI0IA79694/5nRUWFbN0axGQX +B0W0aYPFi7F4MUpKwPmFp6YiPh7jx0Nfn7pjwyoq2LeP72/zcNC18deECRMOHTrEt2nGwWbD1RVb +t0JFhW4pLcfHB/7+iIigW4f4QWVEmJWVtWzZMu6R+/fv1+vRTlIcVNOuXc0LfX18+oTwcHh7IyaG +aXWReMLDQQcFBXFevH79mgk5O6Gxbx90dGBkRLcOvhg0CJxuWP360S1FzKAyItTV1b148SL3SMOU +HUlx0IaMDMaNw7hxX0f27MGpUzA1hZ0dGHmsicc6v/t/6OnphdU2Mxd37t7FiRMICKBbhwB4e2Pz +ZrpFiB+c8s1t27adMGECE47Fkl0cDOKXXxAbi2HDUNtk8upV5pSyA88VtKOjI/U6RAuLhV9+EZt9 +dY1BumHxBdMiQpLiYBbKyrCxQe0G+ZcvsWMHiorg4gKuXux0UcdhaWtrA6ioqHj37p28vHxFRUXf +vn1TU1Np0iY8fH3h6AgtLbp1CAzphtVyuv9Xp7Bnz54rVqygVwxIioPhTJ+O6dPx5Qs4lWlZLDg4 +QF8fY8ZAX5/6FV6d+TgB4KxZsxYsWDBy5MjU1NSGfb7Fj0uXUFAgIckBS0ts2ICioq9VGQnfgmkR +IdnFIQa0aVOze1pODkeO4Pp1nDyJjx9hZYVPn/DoEQYPhpQUBUJ45KBfvnxpaGjYpk0bIyOjQial +Y/jhzRt4e2P3brp1CA9ONyxCM9DW1tbW1u7bt6+amlq3bt3U1NRGUVxZmBckxSFmdOgAW1ts2wZO +hevPnxEaCmtrTJ6Mx4+/8d3Hj+HggKlTkZ5eM3LpEkxM4OiI5j3e410sad++fffv39+zZ48iZcWi +RMSCBdiwAWpqdOsQHqQbVrPJzs7Ozs4eOXJkdHR0fn7+mTNnNDU16RZFanGIOZ064X//w/nzOHiw +psvHpUuws8O2bfi//6v/4X374OuL33//mpbMyqrZiNW89qc8HHRYWNjDhw+9vLwKCgr+/PNPvn8Q ++jl0CD171tlVIwHUdsMiNA+mRYRkF4eE8N13kJcHAHNzHDyInj0RFoZPnz58+PDx48eaz7x4AU1N +qKmh9um0hQW2bMH27fjtt+ZMUsdBBwYGAvj999/btWs3bNgwRUXF3eIbTefm4tAhbNxItw4RMGsW +oqJQXk63DvGAaRFha0lxJCVh40a0klihY0dMmYJt29C2hppxdXU8fYo3b6CsXDPyzz+QlUX79s1M +Ydd5SNivXz/8t5dDWFRVVbFYLKpvjMpKuLpi//6aP3ESBumG1RLCwsI2bdoUFxc3aNAgJkSErWUX +x86dMDeHmxsqKzFzJuztmdsZQ6jIyMhI154jX7gQa9dCSgpLlyIxER8+oGtXzJmDykosXdoca3VW +0FOnTgVgZmamo6NjaGiYm5urq6vLh8S///7byMho/PjxaWlpffv27dmzZ2RkJB92+MffHw4OGDSI +0kmpZN48HD6ML1/o1sFomBkRtooUR2kp3r2Dmxvi4hAZiYoKTJgAOztERQlSHFn80NJCeDiOHoWe +HsaOhb09jIxw4gROn4aJSXMM8NjW5+Li4uzsHB8fr6mpOX/+/KtXr7ZUlbu7+969e1+/fm1kZJST +k6OiojJmzBiO96eCq1eRlYXoaIqmowUlJdjakm5YTSP0iJDNZr9//15FRUVKgC1WrSLFkZCA2q7e +KiqYPx/z5yMnB8ePY9MmDBtW07Se8C14PCSsrKy0s7PLz89fsWIFf5U/ZWRk9PT0xo4d27179169 +eqmqqlJ3Rb57hxUrcOAANbsU6cTDg3TDahphRYSLFi0CcOfOnQEDBhgYGGhra6elpfGtqlXs4jhz +BpMm1R/s3x9+frh5E7NmISwMI0fCzw/5+XToExt4rKBlZGR8fX319fWvX7/+gXOcpoVoa2tPnDjx +48ePWlpaK1asUFVVpS6m+/VXBARA4kNIcHXDsrWlWwqjETwi5JRYWrVqVVRUlK6ubmFh4YwZM/iw +w0HyD6qwWHj6tNGDu9LSMDSEoSHKyxEbC09PVFTg559hb//1SRrhP3isoIOCgjp27LhkyZL79+8f +PHiQD6MhISHz5s3z8/NLSEjo2bNnWVkZRQ9nwsPRvv3X2EriId2wmoHgESEHRUVFzgJcXV29qqqK +bzuSn+JISuL0FvkGCgpwcEB0NA4exLt3GD8eTk5ITCRBITc8VtADBw4cOHBgaWnpfH67acnIyNR2 +51y8eDH/6lpEXh727UPdYo8SDumG1QwEjwifPHkyadKkgoKCo0ePOjo6bt68WV1dnW89kr+L48wZ +uLi04PPq6vD0hKcn/vkHYWHw9sbYsXBxQd++IpMoNvBw0ElJSXPmzOnUqZONjc3AgQPt7e0Fn6ZX +r175vJJNhYWF9SqaZmZmamhotHiCqiq4umLvXkj22qQhpBvWtwgKCkpISHB2do6MjOQvIiwqKsrL +y8vNzVVVVQUgKyu7f/9+vvVIeIqDzUZmZjOPydXnhx8QFISqKly5goAA5OXB3h4zZ0rUSeAWwsNB +r1q1KiUlZeXKlR4eHlZWVkJx0Jdry63WRVFRsV6/iWvXrvFz+W7cCCsrMW07JhCkG9a3EEpEqKmp +WXtMfMmSJY19ksVi3b17l3ukuLi4Q4cO9axJcoojPV3QS1FGBmPHYuxYvH+PmBg4O0NaGrNmYeJE +1G0e1hrg4aCrqqo4z/Q6dOigLFjansViycnJAWisBsJ33303duxY7pETJ060OFGYlobkZPz1F78y +xRzSDatJqIwInz17FhUVxT3y9OlTrbqPyyQ8xcFz/wZ/qKjAyQlOTjX784KDMWQI5s9vVWsRHg56 +wIABixYtKigo8PX15S/Xdu/ePS8vr9TUVCUlpZKSEkNDw23btvUTUa+mkhL8+ivOnKGuCyTTIN2w +moTKiFBTU7O2PwCHN2/e1FtwSHiKIykJgYFCtsnZn7dmDVJSsH8/srIwcSJmz0aXLkKeqIUkJyfH +x8d37tx57ty5bUVzTpKHU1u8ePGQIUO0tbXV1dUPHDjAh1E3NzcvL6/CwsJnz569fPnS29vb3d1d +YKmNsHgxfvsN3bqJyr5YQLphNY5wI0LOC0Gq4klyiuP+ffTrBxH9+eHszwsJwZUr0NDAwoWwtsaR +I6CpS86JEyeCg4Otra2VlZVtbGwqKipEMQuPFfTMmTNv374tK0C6R1pa2sjIiHPaSkFBgVNLjH+N +TXDiBKSkhBZSiS+kG1bjMC0ilOQUR3Q0FTcjZ3+egwMKCxEVBVtb9OgBJyeYm1N5PO2PP/44e/as +kpKSoaFhfn5+cnKyubm50Gfh4TeHDx9uaGhoamrK8dGBLQ9Yhg0bZm1tPWrUqN69e+fn56elpfF3 +gusbFBRg+3ZcuiR8y+II6YbVCJ6enn///besrKy6uvrq1av5sODm5hYQEDBixAh5efny8vKMjAx3 +d/cLFy7wp0eSUxwXL4KybbVosD/PxwdmZnB1paa5XVVVVe0qVkFBoVI0NUZ4OGg7Ozs7OztBjAYH +B1+/fj05OTkzM1NVVdXHx2f06NGCGORBVRVcXLBnDzl9VAPphtUIjo6OjIoIJTbF8ewZvv8etBR0 +5d6f5+9fsz/P0bGmbZVocHBwcHd3X7x4cUFBQWxsrKenpyhm4XGdTZw4UUCjUlJSxsbGxiLdnLtt +G0xMWtXz3G/D6Ya1bh3dOpgF0yJCiU1xxMRgwgQ6BdTuz/vwAWfPwtkZSkpwdIS1tSiavbq5uZ06 +dSooKKhbt27R0dECPt5oDKqb1AqH9HRcvIjz5+nWwTAmT8aOHVi+HO3a0S2FQTAtIpTYFEdcHI4d +o1sEAKBDh5r9eQUFX/fnOTtjyBDhzmNvby+UTUFNIIYO+vNnLF6MEyda7766xqjthrV8Od1SGATT +IkLJTHG8fQsAKip066hLz55YuRIrV+LWLYSGwtMTNjZwdkbnznQray5i6OOWL8eSJTXtGgn1cHRE +VBTKyujWQWgUySw3eu4co6sqDhuGHTtw4QI0NLBgAcaPx5Ej+PyZblnfpo6DZmab+jrExKCkBFOm +0K2DqXC6YR05QrcOQqNIZkeVmBhwRSpsNjs7O/vhw4c0KuJBvfp5P/3E/Pp5dRw0M9vUf+XffxEY +CAZ0LWI0pBsWs5HAFEdpKd6+xX97zN+/f29ubr5nz54NGzZMnDix9nQPg+jaFZ6euHQJK1ciMREj +R8LbG48f0y2LBzxSHExrU18Dmw1XV2zfjrqlZwj1qe2G1ephZkQogSmOixdhYVH7r507dy5cuHDv +3r2HDx82MTE5evQojdK+AWd/XkoKxo5FQAAsLbF/P0pK6Jb1FR4OmlFt6lks1smTJw8fPlyyYQOG +DasaOfLKlSseHh70qmI6TO2G9fTp04MHD547d06QwvnNh5kRoQSmOKKjwbWZIS8vr7ZE5dChQ588 +eUKTrGbD2Z8XGorISCgoYMYMTJuG2FgmhKE8HHRYWNjDhw+9vLwKCgrobVNfVlZmaWn58OFDlYKC +h5s3Z0+e/OrVq/T0dBEd2pFkhKvSAAAgAElEQVQcarthMYnLly/PmjVLVlY2NTV14sSJgjQlaRFM +iwglLcXx5QseP+Yurm9oaBgaGgqgurr6yJEjRkZGtGlrKZz9ebGx2LIF9+7B3Byenrhzh0ZFPBx0 +p06dtm7dGhERsWnTJjVaS2XHxMTY2tr+tmzZpMTE9uHhm7dtU1dX57uqb+vC0xM7d9Itog7BwcFn +z551srNbv369lpbWjRs3qJmXUREhJC/F0aChz5w5cwCYmJiYmJgMHjzY0tKSJmUC0KMHVq7EtWtw +csLhwzAxwaZNeP2aeiEUdVThj3fv3nXt2hUfP8LX93t9/Q98ldZrpXTrhl69kJICAwO6pdRQUVam +euwYYmIQG6uurv7+/Xtq5g0LC9u0aVNcXNygQYPojQg5SNpBlehozJrFPSAlJRUQEECXHCEzbBiG +DUNFBS5cgKcnPnzA9OlwcKDsRDuPFTSnfm7//v09PDy2bNlCjQ6eWFhYHDhw4Hl5eamhoZ+fn+An +DloXPj7YuJFuEf+RkXGooOBcUlJFbOzDZ8/OnDljaGhIzczMiQg5SFSKg81GRgb09OjWIWLk5fHT +Tzh+HEePorwcU6diwQIkJ1PwmIeHgxZi/dxvUlVV9aQuJSUl7P9+bA0NjcDAwF9++cXW1lZbW9vZ +2RmAiorKvn37RKpKQqjthkUvpaXw9MTWrd2Tkh7o648dN2716tUhISGc/n4UkJSUpKmpOXbs2MDA +wFOnTol0ruLi4v11efDgQY8ePdhsNovFevnyJZvNfvv27b1797hHxPjFnTusESNevnrFFD2ifsFi +sefNY5069XL2bHZEBMvO7mVYGLuqivszwq3cL5KOKs0nNzf3f//7H/dIZmbmwIEDa/85evTos2fP +ilSDJLNqFdato7MbVmIiAgKwfDl++qkNsGLFihUrVlAsQRQdVRqjqqrqu+++4x6Rl5evfaYtLS0N +QFFRsbZLofR/5QrE9cXZs7CxoV8G9S+0tLBrFz5/lk5JQVUV91tC3qHEZrPnzp37+PFj9n9UVFSE +hIR4eHjs2bOnvLycTS2urq5z586leFJJZuJE9oMHNMxbXMx2cmIvWMB+967pD27YsOH8+fOiEzJq +1Kjq6urZs2ez2Wxzc3PRTcQTntdzVVUVxTJEhaEhu7KSbhHMwsLCYv369cKyxmMFHRER4eLiwnmO +8eeff86ePVuYfxAIFMPphnXwIKWTRkVhzx4EBIABW6yojAibg+SUG83JgYaGKCp5EmrhkYNesWLF +5MmTS0pKAMTGxlIuiSBURozAs2egbF/X8+ewt8c//yA+ngneGcC+ffsE7LEpXCTnoEp0NMhzexHD +46+fkZHR7NmzraysImjMXRKECDXdsKqrsWsXYmOxdSsGDxbtXC2BaRGh5OziuHAB5EyviOFdbvSn +n37avXv35MmTc3NzKRZEED4WFrh9G0VFIpziwQPY2ADA+fOM8s5gXkQoIQdVnj9Hhw5QUqJbh4TD +w0FPnz4dwJAhQ6Kjo7W1tSmXRBABHh7YtUskllks+PlhxQrs2QNPTwZmJI2MjFxdXa2srJ49e0a3 +FkBiUhyxsSS/QQF1bqfAwEBfX19OiRnOCN+95QnMgtMNq6REyN2w0tOxciWcnbF2LZUd71vKTz/9 +1L1798mTJ1dUVNCtRVJSHOfOISyMbhGSTx0HzXHHZNUsgQi9G1ZpKXx88Po1jh1Dly7CsSkauCNC +6ndhN0QSdnG8e4eqKlB11Kg1U8dBT506FcAU0q9EInF0hKEhfvlFCGUEuI6fCEOZqGBmRCgJtTj+ ++ovRDa4kiDoOmrN2rqioePfunby8fEVFRd++fVNTU2nSRhAqtd2wFizg38ibN1i2DCoqiIlhfucE +oUeEbDb7/fv3KioqUgLkcyQhxREdjboHgAkioo6D5iw0Zs2atWDBgpEjR6ampoaEhNAkjCAC5s2D +mRlcXPh8lHfkCA4dYsjxk+YgrIhw0aJFv//++507d6ZNmyYtLS0tLX3w4MGRI0fyZ03sUxxlZSgu +RrdudOtoFYhPyyuC4PDdDevZM9jb48kTnD8vLt4Zwmt5dfPmTQCrVq2Kioq6f//+xYsXvb29+VYl +9rs4EhMxbhzdIhhBbGzsokWL1q1bV1xcLKIpqGh5lZeXJ7gRgnBoaTes6mrs2IG5c7F2Lfz8IFax +uXBbXikqKurq6gJQV1cXpB2M2Kc4zpzBpEl0i6CfgwcPnj592sPDY9iwYRMmTCgtLRXFLDwc9Jo1 +awRseZVXl9mzZxMfzRQ6dMCoUc3thvXgAcaPB4D4eOjqilSX6BA8Inzy5MmkSZOePn3K6X+6efNm +QWp6iPdBlS9fkJMDrnqTrYqqqqranqjh4eH79u0bOHCgra2tlZXV9evXRTEjj1zkwoULb9++LSsr +y7dROzu73NzcESNGcJ6l3L1719nZ+erVq3wbJAiTpUsxffo3nsKzWNiwAbdv4/ffoaFBlTKRwIkI +TUxMLl++zF9EWFRUlJeXl5uby6lhLSsru3//fr71iPcujhs3xCjHJXS4e6LW1hcFUF1dLaL/Ux4r +6OHDhxsaGq5cudLX19fX15cPoxkZGb6+vioqKocPH7569aq+vj7xzgyic2cMGIBr1xr9wM2bsLKC +hgbOnhV37wzAx8dHwIhQRkZGU1PT2tp6xIgRAJYsWdJBgB0s4p3iaN35De6eqLNnz3Z2dk5JSYmI +iLh48aKIeuPyWEHb2dnZ2dkJYlROTs7X1/fBgwdubm5jx479woDu5YQ6eHnBwwMmJvXHP33CsmWo +qMDx4+jcmQ5lwsfd3V3AiLAhvXr1ys/P5++7YryLg9PgStRVt8SEWbNmdevWLT4+XlVVNS4uTkR/ +dHk4aO7WfxkZGXybHjBgwF9//RUSEtKjRw++jRBEQp8+UFHBrVsYNuzr4MWLCAzEihUSdgaBExGa +mppyfHRgYKDgNi9fvsxz/NGjR3/88Qf3SHp6er0nk2Kc4vi//4OuLpPP9FOMmZmZmZmZSKfg4aCj +oqLCwsKqq6vZbHZ+fn7tKSw+kJaWdnNzc3NzE0AhQST8O3fui2nTfDQ0TE1Nlzs7yy1dis6dxeL4 +SUsRPCKshcViycnJAWhsN4i6urqDgwP3SE5OTr0mdWKc4oiObs35DQ4U90Tl4aBDQkL8/f1DQ0On +T5+ekJAglGkaCwnv3bvn6enJPXL//v3hw4cLZVJCY1RWVk5ZvTpGXf2v7dsvbdhQoK+vFREBqtps +U4zgEeG9e/e8vLxSU1OVlJRKSkoMDQ23bdvG89S4kpLSMO6gBFBTU6vXpE6MUxzXrmH1arpFtC54 +OGhpaWkDA4Pjx4+bmZnt2bNHKNM0FhIOGjTo4sWL3CPz5s0TctdFQgPu3r07fPjw7+3tYWNjOWnS +2B49EiXUO0MYEaGbm1tAQMCIESPk5eXLy8szMjLc3d0vXLjAnx5xTXHk5qJnTwg1lU/4Jjx2cSgo +KERGRrJYrD179gi4+5rFYnFeCHJAgCB02rdvX1xcDCMj3LzJ2rSpXBz9RbMJCQnx9vZWV1dftmyZ +DaerQAuRlpY2MjKSl5cHoKCgwNlVzbcecU1xxMSQAtDUw8NBR0REDB061M/P79WrV2vXruXD6L17 +92xtbb///ntNTU0VFRVbW1vSmYVRaGlpsdlsHx+fY4mJ06ZNWyBI+STGw4kI5eXlzczMHj16xIeF +YcOGWVtbr1u37s8///T39x8/fryuAMd2xPWgSkICrK3pFtHq4LEQUFJS0tLSAuDv78+fUeGGhARR +cPTo0b/++is3N9ff319HR4duOSJE8IgwODj4+vXrycnJmZmZqqqqPj4+o0eP5luPWKY4/v0Xysqk +wRX1iKTcKCck5BwjFDwkJIgCKSkpGxsb/kJ+8SIiIqKwsNDIyGjv3r38RYRSUlLGxsbGxsYAli9f +bihYvl4sUxwxMZgwgW4RrRGRlBvlhISjRo3q3bt3fn5+WlqaICEhgSAIgkeE3Dx//lxAC2K5i+Pc +OYSG0i2iNSKScqPBwcE+Pj6ysrKZmZnS0tI+Pj4bN24UWCqB0DKEVW6UG1uBT/GIX7nR9+/BYuH7 +7+nWIYY8fgwHB0ydivT0mpFLl2BiAkfHZnZ05L3NTsDiMtwhIYFAF6JoQOHo6CigBfFLccTH1xQ1 +JDSDqqqqrxuF9+2Dry+6dcOvv+LYMQDIykK/figrw9ChzbHGYwUdFhYmYHEZAoE5MK0Bhfjt4jh7 +lmyw+wZFRTh9Grm5AEpKSkpKSmrGX7yApibU1FD7dNrCAlu2YPt2/PZbcwzzWEF36tRp69atQpFN +INCO4BGhcBGzXRzl5Xj5Er160a2DqXz8CFtbqKjA1BSjRgFQUVH5WuxQXR1Pn0JdHcrKNSP//IM+ +faCg0MySJjwc9K5du7gjQUFqcRAItBMWFrZp06a4uLhBgwYxISIUsxTHpUswN6dbBJO4fBnnziEj +A87OmDsX7dsjKanRDy9ciLVrISWFpUuRmIgPH9C1K+bMQWUlli5tzmy8iyVdu3bte/JMgCARMC0i +FLNdHNHRqFstp9VRUYHkZBQXY9o0AMjNxZQp2Ly5WZ2XtbQQHl5/sCWVo3nMoaGhwekcQSBIAEyL +CMUpxVFVhQcPoK1Ntw76WLUK16/D0BD29jUjCxdSOT8PB11dXa2npzdmzBjO6ZKgoCAqBREIwoVp +EaE4pThSUiDwxkRxoqgIZ8/i2jWwWIiIgJQU1q+nVxEPBz116lTqdRAIIoJpEaE4pTiio7+uHCWV +igqkp+PHH9G2LW7fBpuN9evRsyfdsmrg4aC5t+IL0lGFQGACTIsIxSnFkZqK4GC6RYiMR4/g5YWi +IpiaYvBgALC0pFtTfUTbUYVAoB0qI8J//vln8eLF3CP379/X09PjHhGbFEdmJnR1Ic3jqIS4UlWF +jAycOQNLS4wZgy5dsGsXunWjW1ZTUNRRhUCgCyojwh9++OGbDSjEJsVx5oxEnU8pL4eNDQYNwoQJ +Nfso2rZF3W5kDISijioEAl0wLSIUmxTH1atYtYpuEQJQXIzoaJw6BWNj/PYbFBRw6RLVGqqqkJSE +06exaxd/Bng4aCF2VPkm+fn5ERER3COZmZm9yLElgvBgWkQoHimOJ0+gri6WDa4+fKhpfPz771BT +w+HD6NKFNjGvXiE9HZWVfBvg4aAFr5/bfFRUVOo12bx27RqntxCBIBSYFhGKR4pD7Bp4FxXh2DEk +JKBbNxw4AABr1lCtITMTx47ppKcr1BZCUlfH/Pnw9ubbJA8HHRcXx2kd7+/vHx4eLniFxibo0KHD +2LFjuUdOnDhBmsYShAiVEWFzEI8Ux/nzOH2abhHN4OVLtG8PJSXk5KB3b5w+Deqjk48f0b492GxE +RWHSpO87dPih7qJTEOo46MjIyMjIyPT09BMnTgBgs9k5OTkzZ84U1mQEAvVQGRE2BzFIcbx8CQUF +Rj9Aq6zEH3/g3Dl06IDNm6GkBOrb0r96hfBwJCRg+HAEBkJKCoGBAHDlihAnqeOgzczMdHV1t2/f +vmTJEs5I586dhTgZgUA9VEaEzUEMUhznzjG0wVVpKd6/R7du+PABioo4cYKGvyJlZTW16JKT0aUL +oqPRdIlEFRXs28f3bHUctJqampqaGqdwwcePH9ls9te6eQSCuMHMiFAMUhwxMfjjD7pF1CU9HXv2 +4MEDrFyJSZOgpgZnZ0oFsNm4fBmHD+P5c0RFoWNHas5Y1nHQt27dWrBgwYULF7Kysn7++WcFBYXt +27dPlKS9kITWBDMjQqanOD5+RFkZGNKUi5PeBXD/PtzdUffID6U8fowbNxAQgD59qJy2joP28PAI +Dw9XVVUNCAiIi4vT1NQ0MzMjDpogpjAzImR6iuP8efobXFVW4vx5hIVBRgbHjkFKCk5OVGsoLsbR +ozhxAm5ucHKClhYN20LqtbySlpbu379/WVnZ27dvhw4d2qFDB1lx3AhJIAAAbt26paen9/bt26tX +r/bv3//HH3+Mjo4WxCCbzX737h2bzRbECNObxjJhg92NG8jIwLZtOH68mZ1HhM/atVBWRkICDX8b +uKjjoD99+lRdXX3hwoXhw4cDqKysJA6aIL7Uiwjv3LkTEBDAh51FixYBuHPnzoABAwwMDLS1tdPS +0vhWxegUB4uFFy9Ay+o+JQXTpuH8eQAwNcW6dejenVIBhYXw9/+aWd6zB/Pm1SRY6KNOisPBwWHI +kCFFRUVxcXG5ubmLFy+2sbGhSxmBICD1IkIA/C04bt68CWDVqlVRUVG6urqFhYUzZsy4evUqf6qY +meJ4/fr11q1bVdLSxrVv/+OXL22a0y5EiEyZgh49EBiIvn0pnbeWc+fw55+YPRs+PvQIaISv/w0V +FRVubm6jR49WU1Pr1q3b/fv3J0+ePIn2YIdA4BfhRoSKioq6uroA1NXVq6qq+LYj6l0cd+/e9fLy ++vz5c0lJyfjx4wMCAqS+lSX48uWLgYGBpaWlX69ehxQVT69ZIy0t3b1794XN6B6ira2dnZ0dGRmZ +m5vr6+vL/VZxcfHly5cbrSb47784cwaLFgHAyZPN/OmESUEBDh3C+PHQ14etLbiKajGHrw769OnT +Z86cqfd2YmJiaGgocyMyAqFxhBURPnnyZNKkSQUFBUePHnV0dNy8ebO6ujrfqkSa4vj06dOMGTOO +Hz+ura395cuX8ePHnzhxYvr06U1/Kzs7u3v37jo6OopHj/6SnGxoaKivrx8eHp6enj5jxgzzZjSN +5emFi4uLIyMjebxVWIg1a/Dvv/hvdw3VVFbCyQllZZg9G7XHshlJGwBycnK7d+82MTHZsmVLT8a0 +EiAQBMTHx8fa2rpjx449evTIzs6eNWsWf7Whi4qK8vLycnNzOZ1ZZGVl9+/fz7eqrymON29w+TIA +SEnBwgLt2zdrpEni4uLGjBmjra0NoE2bNhERERUVFaWlpS4uLh8+fCgtLfXz8zMzM6s30rVr14qK +CgCvdu92MDYuKSnp2rVrVFRUVlbW/PnzBw4cKCcn98cff9Q2pikqKnJycqqqqurcuTPniydPnszO +zp42bZq3t3dVVRXn89u3b09PT4+KirKxsZk+fXp5eTmA+fPnTxkw4NwPP0SyWDLh4Y/WrZs6daqH +h0dJSYmrq+uHDx8+f/68d+/efv36LVy48P79+23atAkMDDQ2Nub7F/6Vjx+RlgYLC8jKYudOdOwo +BJsipg2A4ODgmzdv/t///V9UVFRBQYGSkpKuru6QIUOGDBnSr18/aQEqdrNYLDk5OeGpJRBagJSU +1ND/1kfa2tra/DY/lZGR0dTU1NTU5PxziWDrvq8pjjdv8ORJzei7dzXu+JsjTfLkyZM+XBt1OS51 +69at2travr6+BQUFxsbGeXl5+/bt4x55+vTpp0+fTp06tWnTpkGDBs2YMWPhwoUZGRlz5841NjYO +Dw+PiYkpKiqqddBBQUF2dnZubm7Jycnx8fG10yUkJOjo6AQEBHA+v2TJkjdv3jg4ODx69Mhx5Mip +f/+dMnx40JEjU2JikJeXHRZ269att2/fmpiYeHh47Ny5U1tbe/Xq1devX09OTk5JSZGTk7tx48br +168NDAweP34syO8cz55hyxZkZ8PDo2ZEHLwzOA66bdu2ZmZmZmZmnKHPnz9nZWWdOnVq7ty5mpqa +t2/fbqmTvXfvnpeXV2pqqpKSUklJiaGh4bZt2/r16yd8+QQCHfTq1Ss/P5+/735NcfTrh5Ur67zX +nJEm6d27d0pKSu0///7775s3bz548GDGjBkAOPHx58+f642UlZW5urpu3Lixbdu2w4YNW7hwYWRk +5OTJk9PT001NTcePH9+rV68RI0bUms3NzXV1dQUwcuRI7tqTzs7OW7durf38+/fvOeNt1627dPNm +kr4+q6CgthTamDFjpKSkapv5Zmdnc1LeRkZGRkZGv/76a05Ozpw5cwB06tSptLRUWVm5+b+H+uTm +Yto07NjBvwWa4LE6lpeX9/PzKyoqio2NzczM5GMJ7Obm5uXlVVhY+OzZs5cvX3p7e7u7uwtDLYHA +CC5z0g4NyMrK0qtLbGwsJ7SvpaSkpKCgQETCxo8fn5iYePv2bQCVlZXr1q1r3779gAEDbty4ASAv +L4/NZispKTUckZGRWbt27Y0bNyIiIl6+fCknJ+fo6Pjzzz/PnDkzPj5eQ0Pj0KFDtbMMHDjwypUr +AFJTUzkpDg6RkZEWFhZfP//kCbu6GsDvffro/vrr7rCw6dOn1+4ir/fAtn///snJyQCuXLni7e3d +v39/AwOD0NDQHTt22NjYtNg7f/qEfftgYoLMTAAwN4eBQct/nfTDYzMNJ/5as2aNhoYGf0alpaWN +jIw4z44VFBQMDQ2p3rVDIIiS2nRHPXR1det11frzzz/rlc8V6S6ODh06HD9+fNmyZZ8+fSorK5sw +YYKTk9Pnz5/nzJkzbty48vLy0NBQAAsXLqw3AkBKSqpz585r1qxxd3c/efLkxIkTMzIy5syZc/Hi +RWlpae60u5eX16xZs06ePNm1a9e+XBvjhg4dOmfOHBUVFWkWa3/nzp3S03NycsLDw62srPz9/S9f +vqylpZWfn8+z8diSJUvmzJljbm5eVlZ28OBBDQ0NV1dXc3Pz0tLSFStWtOy3wGJh0iTY2eGvvyDI +upsBSPE8FlVYWNiuXbt27drxZ3T58uXZ2dmjRo3q3bt3fn5+Wlqarq5uM7spc3q4HTx4kL+pCWLH +xo0bhw4dasm8hspCgeOgOaF6LdXV1YI82mE6b9/CxQXe3uDKilDB06e4fBkuLpRO2gDhXs+8F7aC +7CICEBwczMn0Z2Zmqqqq+vj4jB49WhCDBAKNbNmypeHg8uXL+bPGzIMqQqCyEpcuwcoKqqposGFX +tDx9Cl9flJdj2TJK5xU9Isk8SElJGRsbN2dnDIvFunv3LvdIcXExEyraEAi1fPfdd25ubsHBwUJJ +TYhBuVE+SEzE6tW0la14+xbe3tDRoWd2UUJRarixp95Pnjypt6X0xYsX3Sk+g08gNImLi8vx48d/ ++eUXoTxKYXQtDv5IT8exY4iOBpXVXFNTsX493N1hZQXhtZhiGhQ56Maeeg8YMIBTDbKWhg9VCATa +SUxMFJYpyUlxsNnIzUX//hg+HMOHUzr1zz+jfXts305b7Q6qEO2TChaLxXnR2FNvAkG84Dv1XAvT +y402k8ePYWtbU3yOMnJywNnUcPw4QkIk3jtDRA763r17tra233//vaampoqKiq2tbW5urigmIhAo +5vnz5wJakIQUx9WrmDMHmzfD05OiGe/dw9Sp8PPDly8UzcgMRJLicHNzCwgIGDFihLy8fHl5eUZG +hru7+4ULF5r59YyMjLYt7wX55MmT/Px8QS79N2/e1J5r4oPi4mI1NTW+v15aWirgrUu7/h9++KFr +164t/WJ2dvZQZhes4ca25TXP6l3PLBaruLiY74OI9Xj79m3tCWzBacE1oKeHJvfCCn4916L68eO4 +xMQkY+N/1dRadK6SJ1++fCktLRXWToS3b99aWlpyP5wQ7vUsEgctyEEVc3PzioqKd+/etXTS5OTk +jx8/8l3sqays7NatW4YCNG+/ePHiuHHj+P56Tk6OoqKiIPozMjKMjIz4FiC4/s+fP/MhwNTU1EB8 +Tnk5Ojq26PMNr+eHDx/eunWrW7duQtGTmpqqo6PDx4KmIVVVVVevXm2idp3RkydaxcWH9fWbY03A +6xmAMos14NWrWz16FAG7y8vHsdkoKuLbWi1FRUXPnz8fMmSI4KYApKamampqcve6FPL1zBYBy5Yt +s7S09PPzCw0NXbdunbW19cqVK0UxETc7d+48efIk31//999/OedQ+cbU1FSQr+/atSsqKorvr798 ++XLatGmCCBBQ/+7duyMjIwWx0Eq4ceOGj4+PsKw5Ozs/ffpUKKYqKiosLCyEYoot8PVcDwEvTm5S +U1O9vb2FZW3u3LmPHz8WlrWGiGQFTQ6qEAgEguDQfFCFQCAQCI0huQUBCAQCQcwhDppAIBAYioyf +nx/dGoRD165dtbS0+K7qraio2Ldv3y5duvAtQEdHR5AiU126dBFQf79+/WjU37VrV01NTYGqqrcO +VFRUNDU1BdkQyY2GhoaGhoZQinvIyMgMGjRIwEJptQh4PddDwIuTG87vX5Adpdz06dNHU1NTdMVV +eJcbJRAIBALtkBQHgUAgMBTioAkEAoGhEAdNIBAIDIU4aAKBQGAoxEETCAQCQyEOmkAgEBgKcdAE +AoHAUMTSQZeVldnb25ubm+vp6aWlpXG/VVVVpaqqqqenp6ent2jRIpHKYLFYurq6eXl51AtoYhZq +BOzdu3fMmDGDBw9OTU2lfnYxgs1mL1++fMyYMSYmJvfu3WvmWy01xeHgwYM8G5C31BqLxVqwYIGF +hYWuru7p06cFMdXErcqHtVp5De87Pqy19FptWlhjd4SgiK5Qnuj4448/vLy82Gx2UlLSmDFjuN96 +9OjRxIkTqZEREBAgLy9fr9gjNQKamIUCAdnZ2cOGDWOxWFlZWSNGjKB4dvHi2rVrFhYW1dXV165d +s7GxaeZbLTXFZrPHjh0rJycXHBwsuLDz58/PmTOHzWa/fv26U6dOlZWVfJtq4lblwxoHnvcdH9Za +eq02YaqJO0JAxHIFPXLkSDc3NwBsNltFRYX7rdzc3IKCgilTptja2t65c0d0Gh48eHDz5s0RI0bU +G6dGQBOzUCAgLi7OwcFBVlZWR0cnJiaG4tnFi+TkZAMDAykpKX19/XpLyCbeaqkpAPHx8Zs3bxaK +sC5duixduhSAsrKykpIS+1uHjZsw1cStyoc1NH7f8WGtpddqE6aauCMERCwd9A8//NC7d+958+ZZ +WFgsWbKE+y1VVdXFixdHRUWtX7+eU8BeFAKqq6s9PT3/97//cbrGUC+giVkoEPDq1av79+9bWlqa +mJjcvn27mcJaJ8XFxZ7yIxkAAAauSURBVJwG3goKCoqKirVtlJt+q6WmALRp06ZFFSGasDZ48GBt +be1//vnH0tLS29tbVlaWb1NN3Kp8WGvivuPDWkuv1SZMNXFHCIhI6kGLmo8fPyoqKh44cMDHx8fc +3Pzx48e1/2EjRozg/HUdPHiwtLT0+/fvv/vuO6ELCAkJGTdunIaGRsO3qBHQxCwUCGjXrt2LFy9i +Y2NfvXo1dOjQ58+fy8vLUza7eKGqqsppP1heXl5SUiInJ9ect1pqSrjC2Gz2+vXrz549u3379uY0 +gWvCVBO3Kh/Wmrjv+LDW0mu1CVNN3BECIpYr6A0bNoSEhACQl5evt47Yvn07J9ArLCyUkpJqZlTV +Um7evHn+/HkrK6usrKzZs2dzP6+gRkATs1AgwMjIqH379rKysu3atZOWluZeelDz44sRJiYmnHA4 +IyOjXl+hJt5qqSnhCouOjk5LS0tOTm5mi84mTDVxq/JhrYn7jg9rLb1WmzDVxB0hKELMZ1PG69ev +ra2tDQwMfvzxx7i4ODab/ejRo549e7LZ7Pfv30+dOtXQ0NDY2DglJUXUSkxMTDgPKygW0HAWKgVU +V1evXLlSX19/8ODBnD6EdP3+mU91dfWKFSusrKzGjh374MEDNtfvquFbfJvisGvXruY/JGzC2oIF +C3r06DH4P8rLy/k21fBWFfzHZHPdd4JYa+m12vR/Zb07QliQcqMEAoHAUMQyxUEgEAitAeKgCQQC +gaEQB00gEAgMhThoAoFAYCjEQRMIBAJDIQ6aQCAQGApx0AQCgcBQiIMmEAgEhkIcNIFAIDAU4qAJ +BAKBoRAHTSAQCAyFOGgCgUBgKMRBEwgEAkMhDppAIBAYCnHQBAKBwFCIg24xz58/V1ZWNv0PDw+P +yMjIwMDA4uLiyMhIALUvmkZbW7tF8548edLX15dP0QRCC8nIyLCysqJbRWtHLHsS0k6fPn2uXr1a +b/DBgweRkZFTp07lOOipU6fSIY1AIEgOZAUtBE6ePOnn57d9+/b09PSoqKjaF5WVlS4uLgYGBsbG +xklJSQCKioqsra0tLCxmzZpVUVHBbcTS0jIjIwNAQkLCzJkzP3/+bGdnZ2FhYWFhcfLkydqPHT16 +NCgoCEB5ebmenh6AhrPcv39/woQJtra2kydPfvv2LZW/CoIE0/BKq3fRNvxAdHS0i4uLjo7OrVu3 +6l3PHz58sLe3t7W1XbBggb6+Pk/7BLKC5oenT5+amppyXnP6TgJYsmTJmzdvHBwcdHR0OC8OHDgg +Jyd348aN169fGxgYPH78OCgoyM7Ozs3NLTk5OT4+ntumk5PTiRMn9PT0jhw5smDBgsLCQkdHx6lT +p6akpAQFBU2ZMqUxMaGhofVmSUhI0NHRCQgIiImJKSoqUlVVFdlvgtCKaHil1btoG34AQHZ29u3b +t/Pz8+tdz9u2bdPT0/vtt9/i4+MvXbrE0z7dPzH9EAfND/VSHAUFBTw/dvfu3ZycnDlz5gDo1KlT +aWlpbm6uq6srgJEjR9ZrzD5x4sSNGzeuXr36wYMHRkZGr169unTpUlJSEovFqq6ubmj8y5cvjc3i +7Oy8devW8ePH9+rVi9NYnkAQnIZXWr2L9uTJk/U+AMDU1FRWVrZt27b1rue7d+8uW7YMgIGBQWP2 +lZWV6fphGQJJcQiT2g68nBf9+/c3MDAIDQ3dsWOHjY2NsrLywIEDr1y5AiA1NbVeikNZWVlfX3/5 +8uWOjo5SUlK///67rq7u7t27p0+fzt3YV1pa+vXr1wA4iw6es0RGRlpYWMTHx2toaBw6dIian50g +8TS80updtA0/AEBWVhZAw+t5wIAB169fB3Djxo3G7NP3szIF4qCFRufOnXNycsLDw2tfuLq65ufn +m5ubW1paDhw4EICXl1dsbKyZmdm+ffv69u1bz4KTk9ORI0ecnJwAWFlZxcbG2tvbJyQk5OfnczJ9 +AExNTTMzMydMmHDz5k0lJSUADWcZOnTookWLjIyM4uLi7O3tKf0tECSItLQ0w/9ISkpqeKWh7kXL +8wMcGl7PK1asuHHjhrW1dWJioqKiYtNfb7VIca/OCAQCgRoSEhKkpaXHjRuXkpKyadOms2fP0q2I +iRAHTSAQaODFixdOTk7KysosFmvz5s26urp0K2IixEETCAQCQyE5aAKBQGAoxEETCAQCQyEOmkAg +EBgKcdAEAoHAUIiDJhAIBIZCHDSBQCAwFOKgCQQCgaEQB00gEAgMhThoAoFAYCjEQRMIBAJDIQ6a +QCAQGApx0AQCgcBQiIMmEAgEhvL/G+VSoTsnkbUAAAAASUVORK5CYII= +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [17]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">XYcoef</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [17]:</div> +<div class="output_subarea output_pyout"> +<pre>[ 3.2 0.9]</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>And finally, in the same spirit, the <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/3607712653c66d63e0d7f13f073bde8c0f209ba8/docs/examples/notebooks/cython_extension.ipynb">cython magic extension</a> lets you call Cython code directly from the notebook:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [18]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">cythonmagic</span> +</pre></div> + +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [19]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">cython</span> <span class="o">-</span><span class="n">lm</span> +<span class="kn">from</span> <span class="nn">libc.math</span> <span class="nn">cimport</span> <span class="nn">sin</span> +<span class="k">print</span> <span class="s">'sin(1)='</span><span class="p">,</span> <span class="n">sin</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre>sin(1)= 0.841470984808 +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Keep in mind, this is still experimental code! +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Hopefully this post shows that the system is already useful to communicate technical content in blog form with a minimal amount of effort. But please note that we're still in heavy development of many of these features, so things are susceptible to changing in the near future. By all means join the <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev">IPython dev mailing list</a> if you'd like to participate and help us make IPython a better tool!</p> +</div> \ No newline at end of file diff --git a/output/.ipynb_checkpoints/Test-checkpoint.html b/output/.ipynb_checkpoints/Test-checkpoint.html new file mode 100644 index 00000000..df947a1c --- /dev/null +++ b/output/.ipynb_checkpoints/Test-checkpoint.html @@ -0,0 +1,2649 @@ +<div class="text_cell_render border-box-sizing rendered_html"> +<p><strong>Update:</strong> made full github repo for blog-as-notebooks, and updated instructions on how to more easily configure everything and use the newest nbconvert for a more streamlined workflow.</p> +<p>Since the notebook was introduced with <a href="http://ipython.org/ipython-doc/rel-0.12.1/whatsnew/version0.12.html">IPython 0.12</a>, it has proved to be very popular, and we are seeing great adoption of the tool and the underlying file format in research and education. One persistent question we've had since the beginning (even prior to its official release) was whether it would be possible to easily write blog posts using the notebook. The combination of easy editing in markdown with the notebook's ability to contain code, figures and results, makes it an ideal platform for quick authoring of technical documents, so being able to post to a blog is a natural request.</p> +<p>Today, in answering a query about this from a colleague, I decided to try again the status of our conversion pipeline, and I'm happy to report that with a bit of elbow-grease, at least on Blogger things work pretty well!<br /> +</p> +<p>This post was <em>entirely</em> written as a notebook, and in fact I have now created a <a href="https://github.com/fperez/blog">github repo</a>, which means that you can see it directly <a href="http://nbviewer.ipython.org/urls/raw.github.com/fperez/blog/master/120907-Blogging with the IPython Notebook.ipynb">rendered in IPyhton's nbviewer app</a>.</p> +<p>The purpose of this post is to quickly provide a set of instructions on how I got it to work, and to test things out. Please note: this requires code that isn't quite ready for prime-time and is still under heavy development, so expect some assembly.</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Converting your notebook to html with nbconvert +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The first thing you will need is our <a href="https://github.com/ipython/nbconvert">nbconvert</a> tool that converts notebooks across formats. The README file in the repo contains the requirements for nbconvert (basically <a href="http://pypi.python.org/pypi/Markdown/">python-markdown</a>, <a href="http://johnmacfarlane.net/pandoc">pandoc</a>, <a href="http://docutils.svn.sourceforge.net/viewvc/docutils/trunk/docutils/?view=tar">docutils from SVN</a> and <a href="http://pygments.org">pygments</a>).</p> +<p>Once you have nbconvert installed, you can convert your notebook to Blogger-friendly html with:</p> +<pre><code>nbconvert -f blogger-html your_notebook.ipynb +</code></pre> +<p>This will leave two files in your computer, one named <code>your_notebook.html</code> and one named <code>your_noteboook_header.html</code>; it might also create a directory called <code>your_notebook_files</code> if needed for ancillary files. The first file will contain the body of your post and can be pasted wholesale into the Blogger editing area. The second file contains the CSS and Javascript material needed for the notebook to display correctly, you should only need to use this once to configure your blogger setup (see below):</p> +<pre><code># Only one notebook so far +(master)longs[blog]> ls +120907-Blogging with the IPython Notebook.ipynb fig/ old/ + +# Now run the conversion: +(master)longs[blog]> nbconvert.py -f blogger-html 120907-Blogging\ with\ the\ IPython\ Notebook.ipynb + +# This creates the header and html body files +(master)longs[blog]> ls +120907-Blogging with the IPython Notebook_header.html fig/ +120907-Blogging with the IPython Notebook.html old/ +120907-Blogging with the IPython Notebook.ipynb +</code></pre> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Configuring your Blogger blog to accept notebooks +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The notebook uses a lot of custom CSS for formatting input and output, as well as Javascript from <a href="http://www.mathjax.org">MathJax</a> to display mathematical notation. You will need all this CSS and the Javascript calls in your blog's configuration for your notebook-based posts to display correctly:</p> +<ol> +<li>Once authenticated, go to your blog's overview page by clicking on its title.</li> +<li>Click on templates (left column) and customize using the Advanced options.</li> +<li>Scroll down the middle column until you see an "Add CSS" option.</li> +<li>Copy entire the contents of the <code>_header</code> file into the CSS box.</li> +</ol> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>That's it, and you shouldn't need to do anything else as long as the CSS we use in the notebooks doesn't drastically change. This customization of your blog needs to be done only once.</p> +<p>While you are at it, I recommend you change the width of your blog so that cells have enough space for clean display; in experimenting I found out that the default template was too narrow to properly display code cells, producing a lot of text wrapping that impaired readability. I ended up using a layout with a single column for all blog contents, putting the blog archive at the bottom. Otherwise, if I kept the right sidebar, code cells got too squished in the post area.</p> +<p>I also had problems using some of the fancier templates available from 'Dynamic Views', in that I could never get inline math to render. But sticking to those from the Simple or 'Picture Window' categories worked fine and they still allow for a lot of customization.</p> +<p><em>Note:</em> if you change blog templates, Blogger does destroy your custom CSS, so you may need to repeat the above steps in that case.</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Adding the actual posts + +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Now, whenever you want to write a new post as a notebook, simply convert the <code>.ipynb</code> file to blogger-html and copy its entire contents to the clipboard. Then go to the 'raw html' view of the post, remove anything Blogger may have put there by default, and paste. You should also click on the 'options' tab (right hand side) and select both <code>Show HTML literally</code> and <code>Use <br> tag</code>, else your paragraph breaks will look all wrong.</p> +<p>That's it!</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + What can you put in? +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>I will now add a few bits of code, plots, math, etc, to show which kinds of content can be put in and work out of the box. These are mostly bits copied from our <a href="https://github.com/ipython/ipython/tree/master/docs/examples/notebooks">example notebooks</a> so the actual content doesn't matter, I'm just illustrating the <em>kind</em> of content that works.</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [1]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="c"># Let's initialize pylab so we can plot later</span> +<span class="o">%</span><span class="k">pylab</span> <span class="n">inline</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre> +Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. +For more information, type 'help(pylab)'. +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>With pylab loaded, the usual matplotlib operations work</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [2]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">pi</span><span class="p">)</span> +<span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="s">r'$\sin(x)$'</span><span class="p">)</span> +<span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="s">'ro'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">r'$\cos(x)$'</span><span class="p">)</span> +<span class="n">title</span><span class="p">(</span><span class="s">r'Two familiar functions'</span><span class="p">)</span> +<span class="n">legend</span><span class="p">()</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [2]:</div> +<div class="output_subarea output_pyout"> +<pre><matplotlib.legend.Legend at 0x3128610></pre> +</div> +</div> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<img src="data:image/png;base64,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 +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The notebook, thanks to MathJax, has great LaTeX support, so that you can type inline math $(1,\gamma,\ldots, \infty)$ as well as displayed equations:</p> +<p>$$ +e^{i \pi}+1=0 +$$</p> +<p>but by loading the <a href="http://sympy.org">sympy</a> extension, it's easy showcase math <em>output</em> from Python computations, where we don't type the math expressions in text, and instead the results of code execution are displayed in mathematical format:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [3]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">sympyprinting</span> +<span class="kn">import</span> <span class="nn">sympy</span> <span class="kn">as</span> <span class="nn">sym</span> +<span class="kn">from</span> <span class="nn">sympy</span> <span class="kn">import</span> <span class="o">*</span> +<span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="n">sym</span><span class="o">.</span><span class="n">symbols</span><span class="p">(</span><span class="s">"x y z"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>From simple algebraic expressions</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [4]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">Rational</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">pi</span> <span class="o">+</span> <span class="n">exp</span><span class="p">(</span><span class="n">I</span><span class="o">*</span><span class="n">x</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [4]:</div> +<div class="output_subarea output_pyout"> +$$\frac{3}{2} \pi + \frac{e^{\mathbf{\imath} x}}{x^{2} + y}$$ +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [5]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">eq</span> <span class="o">=</span> <span class="p">((</span><span class="n">x</span><span class="o">+</span><span class="n">y</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">x</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> +<span class="n">eq</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [5]:</div> +<div class="output_subarea output_pyout"> +$$\left(x + 1\right) \left(x + y\right)^{2}$$ +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [6]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">expand</span><span class="p">(</span><span class="n">eq</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [6]:</div> +<div class="output_subarea output_pyout"> +$$x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$$ +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>To calculus</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [7]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">diff</span><span class="p">(</span><span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span> <span class="o">/</span> <span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">x</span><span class="p">),</span> <span class="n">x</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [7]:</div> +<div class="output_subarea output_pyout"> +$$- 4 \frac{x \operatorname{sin}\left(x^{2}\right) \operatorname{cos}\left(x^{2}\right)}{x + 1} - \frac{\operatorname{cos}^{2}\left(x^{2}\right)}{\left(x + 1\right)^{2}}$$ +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>For more examples of how to use sympy in the notebook, you can see <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/master/docs/examples/notebooks/sympy.ipynb">our example sympy notebook</a> or go to the <a href="http://sympy.org">sympy website</a> for much more documentation.</p> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + You can easily include formatted text and code with markdown +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>You can <em>italicize</em>, <strong>boldface</strong></p> +<ul> +<li>build</li> +<li>lists</li> +</ul> +<p>and embed code meant for illustration instead of execution in Python:</p> +<pre><code>def f(x): + """a docstring""" + return x**2 +</code></pre> +<p>or other languages:</p> +<pre><code>if (i=0; i<n; i++) { + printf("hello %d\n", i); + x += 4; +} +</code></pre> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>And since the notebook can store displayed images in the file itself, you can show images which will be embedded in your post:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [8]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">Image</span> +<span class="n">Image</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="s">'fig/img_4926.jpg'</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [8]:</div> +<div class="output_subarea output_pyout"> +<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4Si3RXhpZgAASUkqAAgAAAAKAA4BAgAgAAAAhgAAAA8BAgAG +AAAApgAAABABAgAUAAAArAAAABIBAwABAAAAAQAAABoBBQABAAAAwAAAABsBBQABAAAAyAAAACgB +AwABAAAAAgAAADIBAgAUAAAA0AAAABMCAwABAAAAAgAAAGmHBAABAAAA5AAAAPwMAAAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgAENhbm9uAENhbm9uIFBvd2VyU2hvdCBHMTEASAAAAAEA +AABIAAAAAQAAADIwMTI6MDk6MDYgMjM6NDQ6MDgAIACaggUAAQAAAGoCAACdggUAAQAAAHICAAAn +iAMAAQAAAGQAAAAAkAcABAAAADAyMjEDkAIAFAAAAHoCAAAEkAIAFAAAAI4CAAABkQcABAAAAAEC +AwACkQUAAQAAAKICAAABkgoAAQAAAKoCAAACkgUAAQAAALICAAAEkgoAAQAAALoCAAAFkgUAAQAA +AMICAAAHkgMAAQAAAAUAAAAJkgMAAQAAABAAAAAKkgUAAQAAAMoCAAB8kgcA1AgAANICAACGkgcA +CAEAAKYLAAAAoAcABAAAADAxMDABoAMAAQAAAAEAAAACoAMAAQAAACwBAAADoAMAAQAAAJABAAAF +oAQAAQAAAMYMAAAOogUAAQAAAK4MAAAPogUAAQAAALYMAAAQogMAAQAAAAIAAAAXogMAAQAAAAIA +AAAAowcAAQAAAAMAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAEAAAAEpAUAAQAA +AL4MAAAGpAMAAQAAAAAAAAAAAAAAAQAAAOgDAAAoAAAACgAAADIwMTI6MDQ6MDQgMDg6NTI6NTkA +MjAxMjowNDowNCAwODo1Mjo1OQADAAAAAQAAAD8BAAAgAAAAgAAAACAAAAAAAAAAAwAAAIAAAAAg +AAAA1VMAAOgDAAAaAAEAAwAwAAAAEAQAAAIAAwAEAAAAcAQAAAMAAwAEAAAAeAQAAAQAAwAiAAAA +gAQAAAAAAwAGAAAAxAQAAAYAAgAXAAAA0AQAAAcAAgAWAAAA6AQAAAgABAABAAAAvmISAAkAAgAg +AAAA/gQAAA0ABACrAAAAHgUAABAABAABAAAAAABwAiYAAwAwAAAAygcAABMAAwAEAAAAKggAABgA +AQAAAQAAMggAABkAAwABAAAAAQAAABwAAwABAAAAAAAAAB0AAwAQAAAAMgkAAB4ABAABAAAAAAgA +AR8AAwBFAAAAUgkAACIAAwDQAAAA3AkAACMABAACAAAAfAsAACcAAwAFAAAAhAsAACgAAQAQAAAA +jgsAANAABAABAAAAAAAAAC0ABAABAAAAAAAAAC4AAwAEAAAAngsAAAAAAABgAAIAAAADAAAAAAAA +AAQA//8HAAAAAQAAAAAAAAAAAGRAAwABAAUgAwD/f///JHfUF+gDgADAAAAAAAAAAAAAAQAAAAIA +AABADkAOAAABAP//AAD/f/9/AAAAAP//ZAACANVTKwHgAAAAAAAAAAAARAAAAKAANwGAAD8BAAAB +AAAAAAALAAAAAAAAAAAAAAAAAAAAAQDJEwAAgQA8AQAAAAAIAPoAAwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAEBJTUc6UG93ZXJTaG90IEcxMSBKUEVHAABGaXJtd2FyZSBWZXJzaW9uIDEuMDAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAmwEAAJsBAAAAAAAAAAAAAAAAAACEAQAA +tQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQIAAOoDAADl////AAAAAAAAAAATAAAABwAAAAMAAAD7 +////GgAAAAAAAAAOAQAAHQAAAAkAAAClAwAAngMAAJ4DAACEAQAAugQAAOX///8AAAAAAAAAAJ4D +AACeAwAAAAAAAAAAAAABAAAAAgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAACOAAAAAAQAAAAEAACP/v//xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8CAAAAAAAA +kv7//8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABQAACAAAAJL+///E +AAAA9v///3wDAACjBwAAZQUAAHwDAAAAAAAAAAAAAAAAAAABAAAAhAEAALEDAAClAwAAuwIAAOX/ +///+////gAAAAAEAAAAAAAAAAAAAADgEAAAAAAAAAAAAAIUEAADpBAAARAUAAEYDAADCAwAAAAAA +AAAAAAAAAAAAOQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAADYEAAAqLQAAAAAAAAAAAAAAAAAAkAMAAFYBAAB2AQAAjAAAABoCAADKAAAApAAAAD4AAAD7 +DwAA+w8AAAEAAAABAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANMGAADaCwAAAAAAAP// +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAVAAAADQAAAPujFdtgAAIACQABAEAOsApkAGQAEgAAAAAAAAAAAAAA +AAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAEAAAACAAIA +AgACAAAAAAAAAAAAAAAAAAAAAAAAAIoAAQAAAAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKABAAAAABAACAAB +AAEAgALgAQAAAAAAAAAAAAAIAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAACAAAAAAAAAAKAAAA//8AAAAAk/+WminVRrV32VGV5sE8jQgAAAAAAP//AAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKo3ACQBAACAvykA2wAAAEAOAABADgAABAABAAIA +BAAAAFI5OAACAAcABAAAADAxMDABEAMAAQAAAEAOAAACEAMAAQAAALAKAAAAAAAABgADAQMAAQAA +AAYAAAAaAQUAAQAAAEoNAAAbAQUAAQAAAFINAAAoAQMAAQAAAAIAAAABAgQAAQAAAFoNAAACAgQA +AQAAAFUbAAAAAAAAtAAAAAEAAAC0AAAAAQAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAIBgYH +BgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04Mjwu +MzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy +MjIyMjIyMjIyMjIyMjIy/8AAEQgAxACTAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAAB +AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNC +scEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 +dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY +2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//E +ALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoW +JDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWG +h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp +6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A0MUYp+KMV7x4gzFGKfijFAEeKMVJijFAiPFJipMUYoAj +xSYqTFJigCPFGKfijFMCPFJipCKTFICPFJipCKTFMCIioNQhL6TIImKtH+9kc45AycDsOcc1bxUN +zbi5tpIGYqsi7SR2rCvT54NLc3w9X2c79DHOqyW58qW3kd16shXH4c0VUvNGnju5Es7to7cHCKJj ++J/E5P40VyKvKx1yoRuztsUmKkxRivRPOI8UYqTFJigBmKMU/FJigQzFGKfikxQAzFJipMUmKAI8 +VLBbmcuSwVUXczEZ4puKDLOkUsUBUGVGUljgKMHn69h9azquUYNx3NaKi6iU9jK0/VIdSluDCSI4 +n2AMuCT3rXjgi+zyT3EoiiUHDHucE1xumW8tre2skb4tpCwjz8w+98w3HryOoxXSXiRXdkULKyn/ +AFZ3Y+b1HvXNTqznRbT1R1Towp10pK6Yyyuory2WSOVJOxKkdR147VYxXL6db6hDqVwAsEc5QE7E +Utgt3HGf/wBQrqUVggDsGbHJAxn8K3w9RzgmzDEU1CbUdhuKTFSYpMVsYFSS88pymy4bHdYyR+dF +bSW2niNfOvCshUEqFzjPNFefKvRUmr/gehHD1nFO34jV5FLinBccUuK9A4BmKTFPxRigQzFJin4o +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 +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>You can embed YouTube videos using the IPython object, this is my recent talk at SciPy'12 about IPython:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [9]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">YouTubeVideo</span> +<span class="n">YouTubeVideo</span><span class="p">(</span><span class="s">'iwVvqwLDsJo'</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [9]:</div> +<div class="output_subarea output_pyout"> + + <iframe + width="400" + height="300" + src="http://www.youtube.com/embed/iwVvqwLDsJo" + frameborder="0" + allowfullscreen + ></iframe> + +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Including code examples from other languages +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Using our various script cell magics, it's easy to include code in a variety of other languages</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [10]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">ruby</span> +<span class="n">puts</span> <span class="s">"Hello from Ruby #{RUBY_VERSION}"</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre>Hello from Ruby 1.8.7 +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [11]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">bash</span> +<span class="n">echo</span> <span class="s">"hello from $BASH"</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre>hello from /bin/bash +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>And tools like the Octave and R magics let you interface with entire computational systems directly from the notebook; this is the Octave magic for which <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/d835d46dcc50043971b4a9915398bad1b5d63648/docs/examples/notebooks/octavemagic_extension.ipynb">our example notebook contains more details</a>:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [12]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">octavemagic</span> +</pre></div> + +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [13]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">octave</span> <span class="o">-</span><span class="n">s</span> <span class="mi">500</span><span class="p">,</span><span class="mi">500</span> + +<span class="c"># butterworth filter, order 2, cutoff pi/2 radians</span> +<span class="n">b</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.292893218813452</span> <span class="mf">0.585786437626905</span> <span class="mf">0.292893218813452</span><span class="p">];</span> +<span class="n">a</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">0</span> <span class="mf">0.171572875253810</span><span class="p">];</span> +<span class="n">freqz</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="mi">32</span><span class="p">);</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<img src="data:image/png;base64,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 +3r33339fXV3dxsampKREQ0PD2NgYAFpaWkpLS52cnMjDioqKrK2tyUuoqalpaWmxsbEhqzIzMxcs +WEBuD2ghIyNDWVl5OC0I1oeKigrSK5Sr4L8FgiBIr9A/Sd4t1NTUkF6hf5K8WygsLFRWVhb1v+br +LWRnZysrK4vzG0W2kJ2d3dnZKc5vFNlCdnZ2ZWWlOL9RZAvZ2dnnzp0bUgslJSUPHz58PcKQ25Ja +mP6tEIJy+fLlt7XT1dXl6emprq7+999/c+8fP368p6cn956IiAgKhdLR0TFoLYIgCMI/gt+5W1hY +FBcXv76/p6fnww8/vHjx4h9//DFlypQBp1y9epV7T3l5uYmJiYqKyqC1CIIgCP8IPuaupqbmwAW5 +s6+vb9myZXl5eVlZWXZ2dgNO8fX1raurKyoqIot1dXV5eXmcn0W8axEEQRD+EfJ67p988smBAweC +goLc3d05O83MzMhBrt7eXltb26dPn27fvl1VVTU2NrahoaG0tFRPT2/QWgRBEGQICHeUZ8BcRpLg +4GDOAY8fPw4ICNDQ0KDT6R4eHhUVFdyn865FEARB+EQeMjEhCIIgA8BVIREEQeQQDO4IgiByCAZ3 +BEEQOQSDO4IgiByCwR1BEEQOweCOIAgih8hwcBdDTj7+FfX19evWrbOzs1NRUaFQKDU1NeLxDprX +UETeixcv+vj4jB07lkaj6enp+fr6Dlg6QkRebvz8/CgUyscffywGb25uLuVVhrNK1FCv9+zZs46O +jgwGQ11d3c7OjvMWt+i8CxcupLzGjBkzRO0FgKKiIldX13feeWf06NHTp08/fvy4YNKheouLi52c +nOh0uqam5rJlyzhZKGQYSU+0F5Cenh5ra2s9Pb0DBw6kp6dbWVnp6Og8fvxYUori4mIdHR1vb28y +2Uh1dbV4vE5OTjY2Nlu3bk1NTY2MjKTT6e+9996zZ89E7T169OiHH364c+fO1NTUuLg4ExMTKpU6 +YJ04UXg5ZGZmamlpUanUjz76SADpUL05OTkAkJCQkPGS06dPi8FLEMS+ffsAwN3dPTExMTk5OTg4 ++MSJE6L2Xrp0KYOLuLg4AIiKihK19+rVq1Qqddq0aWlpaSdPniRXC09LSxO196+//lJSUpoxY8ax +Y8d+/PFHQ0NDMzOztrY2AbzSg6wG99TUVADIz88ni48ePaJSqRs2bJCUgs1mkxuJiYnDDO5D8t6+ +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 +Y2RHRMr/A5YdmP24XbLsAAAAAElFTkSuQmCC +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>The <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/3607712653c66d63e0d7f13f073bde8c0f209ba8/docs/examples/notebooks/rmagic_extension.ipynb">rmagic extension</a> does a similar job, letting you call R directly from the notebook, passing variables back and forth between Python and R.</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [14]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">rmagic</span> +</pre></div> + +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Start by creating some data in Python</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [15]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">0</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">4</span><span class="p">])</span> +<span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">7</span><span class="p">])</span> +</pre></div> + +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Which can then be manipulated in R, with results available back in Python (in <code>XYcoef</code>):</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [16]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">R</span> <span class="o">-</span><span class="n">i</span> <span class="n">X</span><span class="p">,</span><span class="n">Y</span> <span class="o">-</span><span class="n">o</span> <span class="n">XYcoef</span> +<span class="n">XYlm</span> <span class="o">=</span> <span class="n">lm</span><span class="p">(</span><span class="n">Y</span><span class="o">~</span><span class="n">X</span><span class="p">)</span> +<span class="n">XYcoef</span> <span class="o">=</span> <span class="n">coef</span><span class="p">(</span><span class="n">XYlm</span><span class="p">)</span> +<span class="k">print</span><span class="p">(</span><span class="n">summary</span><span class="p">(</span><span class="n">XYlm</span><span class="p">))</span> +<span class="n">par</span><span class="p">(</span><span class="n">mfrow</span><span class="o">=</span><span class="n">c</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span> +<span class="n">plot</span><span class="p">(</span><span class="n">XYlm</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<pre> +Call: +lm(formula = Y ~ X) + +Residuals: + 1 2 3 4 5 +-0.2 0.9 -1.0 0.1 0.2 + +Coefficients: + Estimate Std. Error t value Pr(>|t|) +(Intercept) 3.2000 0.6164 5.191 0.0139 * +X 0.9000 0.2517 3.576 0.0374 * +--- +Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + +Residual standard error: 0.7958 on 3 degrees of freedom +Multiple R-squared: 0.81, Adjusted R-squared: 0.7467 +F-statistic: 12.79 on 1 and 3 DF, p-value: 0.03739 + +</pre> +</div> +</div> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_display_data"> +<img src="data:image/png;base64,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 +l5WVdXFx+e233/YfOiR19KhUZaXdDz9cvXoVl97gizlz5owYMaKoqCgiIiI1NXXjxo04FwfqXgSU +oA0MDLjul5OTMzExab7n/fv3Ojo6AglKmF69enXy5MnCwsKjR49KSUlVVVXB/v0gJfXpjz9YLJaw +oxMRnp6eU6dOVVNT09HRSUxMXLRoEc4NjboXIQ8VYLPZkyZNar4nNze3J4wbXbNmTVxc3IoVK3x8 +fHR0dFasWPHtt9/W1dX9/PPP165dE3Z0IoLBYJBdzwBgZGRkZGQk3HgQ6ixKEvShQ4da7/Tw8KCi +rm4qJCRk1qxZDx8+dHFxCQsLu3jx4q+//iopKRkeHq6uri7s6BBCtEBJglZSUlq9erWvr6+YmBgV +5YsASUlJV1dXZWVl8sljPT29Fo8IIxoiCKK8vFxRUZGBj+AjgaAkQS9btuzSpUtr167FBwjb4ujo +iANyu4s1a9YEBATEx8fPmzePyWQymcygoCAzMzNhx4VEH1UJ9C98UhmJiidPngDA9u3bQ0NDjY2N +8/LyXFxc7t27x0NR9fX1UVFR1dXV48aNU1NTaz6YZ+LEiXyOG3V/lI+Dxq5nJBqkpaXJGQu0tLQa +Gxt5KKG2ttbOzi46OjojI8Pe3j45OZkczOPp6Xnjxg1+x4tEAeUJOicnh+oqEKJUenq6k5NTRkYG +OWb/4MGDWlpaPJQTHh4+ZcqUvXv3uru7BwUF+fr6rlmz5vXr187OznZ2dvyOGokCyvuImy96j1B3 +VFRUlJmZmZqaqqysDAASEhInTpzgrRzOGH8dHZ2ioqLmg3mmTJnCz6CRSKA8Qbu6ulJdBUKUEhMT +MzAw4DxsxZldurMmTpy4du1aOzs7BQWFffv2TZ8+vcVgHoRawFEWCHWarq5uVlZWZ19laGjo6enp +4uJSV1fn4OCwcuVKBoOBg3lQOzBBI9Rpbc0tU1FR0WLloIyMDA0NDc6PNjY2NjY21AaHRAgdE3Rc +XJxc8/WfOiY9PT0rK6sr67+VlJSoqKjw/PLi4mJVVVWeX15VVSUmJtat4x8yZIimpmZnX5iYmMh5 +ILu7aGtumfLy8vT09OZ7yIlWQkNDO1X+P//8U1paSuljBF18u7+o6+35i6g+hZqaGl1d3RZrmH0R +f9szgyAIfpXFFzk5OTdv3uThhdevX//w4UOfPn14q7e6uvrZs2cWFha8vRwA/vzzT1tbW55f/vr1 +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 +"></img> +</div> +</div> +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [17]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="n">XYcoef</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt">Out [17]:</div> +<div class="output_subarea output_pyout"> +<pre>[ 3.2 0.9]</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>And finally, in the same spirit, the <a href="http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/3607712653c66d63e0d7f13f073bde8c0f209ba8/docs/examples/notebooks/cython_extension.ipynb">cython magic extension</a> lets you call Cython code directly from the notebook:</p> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [18]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%</span><span class="k">load_ext</span> <span class="n">cythonmagic</span> +</pre></div> + +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell vbox"> +<div class="input hbox"> +<div class="prompt input_prompt">In [19]:</div> +<div class="input_area box-flex1"> +<div class="highlight"><pre><span class="o">%%</span><span class="k">cython</span> <span class="o">-</span><span class="n">lm</span> +<span class="kn">from</span> <span class="nn">libc.math</span> <span class="nn">cimport</span> <span class="nn">sin</span> +<span class="k">print</span> <span class="s">'sin(1)='</span><span class="p">,</span> <span class="n">sin</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</pre></div> + +</div> +</div> +<div class="vbox output_wrapper"> +<div class="output vbox"> +<div class="hbox output_area"> +<div class="prompt output_prompt"></div> +<div class="output_subarea output_stream output_stdout"> +<pre>sin(1)= 0.841470984808 +</pre> +</div> +</div> +</div> +</div> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<h2> + Keep in mind, this is still experimental code! +</h2> +</div> +<div class="text_cell_render border-box-sizing rendered_html"> +<p>Hopefully this post shows that the system is already useful to communicate technical content in blog form with a minimal amount of effort. But please note that we're still in heavy development of many of these features, so things are susceptible to changing in the near future. By all means join the <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev">IPython dev mailing list</a> if you'd like to participate and help us make IPython a better tool!</p> +</div> \ No newline at end of file diff --git a/output/2012/06/index.html b/output/2012/06/index.html index 3596536e..185960b6 100644 --- a/output/2012/06/index.html +++ b/output/2012/06/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2012/06/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2012/06/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2012/06/"> </head> <body> <section class="social"><ul> @@ -31,39 +28,39 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for June 2012</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2012/06/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2012/06/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2012-06-29T13:50:00-03:00" title="2012-06-29 13:50">2012-06-29 13:50</time><a href="../../posts/a-simple-overview-of-viper.html" class="listtitle">A simple overview of vIPer</a> +<time class="listdate" datetime="2012-06-29T13:50:00-03:00" title="2012-06-29 13:50">2012-06-29 13:50</time><a href="../../posts/a-simple-overview-of-viper/" class="listtitle">A simple overview of vIPer</a> </li> <li> -<time class="listdate" datetime="2012-06-25T00:44:00-03:00" title="2012-06-25 00:44">2012-06-25 00:44</time><a href="../../posts/viper.html" class="listtitle">vIPer</a> +<time class="listdate" datetime="2012-06-25T00:44:00-03:00" title="2012-06-25 00:44">2012-06-25 00:44</time><a href="../../posts/viper/" class="listtitle">vIPer</a> </li> <li> -<time class="listdate" datetime="2012-06-22T16:19:00-03:00" title="2012-06-22 16:19">2012-06-22 16:19</time><a href="../../posts/paraguay.html" class="listtitle">Paraguay</a> +<time class="listdate" datetime="2012-06-22T16:19:00-03:00" title="2012-06-22 16:19">2012-06-22 16:19</time><a href="../../posts/paraguay/" class="listtitle">Paraguay</a> </li> <li> -<time class="listdate" datetime="2012-06-20T13:05:00-03:00" title="2012-06-20 13:05">2012-06-20 13:05</time><a href="../../posts/powered-by-nikola.html" class="listtitle">Powered by Nikola...</a> +<time class="listdate" datetime="2012-06-20T13:05:00-03:00" title="2012-06-20 13:05">2012-06-20 13:05</time><a href="../../posts/powered-by-nikola/" class="listtitle">Powered by Nikola...</a> </li> <li> -<time class="listdate" datetime="2012-06-19T20:09:00-03:00" title="2012-06-19 20:09">2012-06-19 20:09</time><a href="../../posts/beginning.html" class="listtitle">Beginning...</a> +<time class="listdate" datetime="2012-06-19T20:09:00-03:00" title="2012-06-19 20:09">2012-06-19 20:09</time><a href="../../posts/beginning/" class="listtitle">Beginning...</a> </li> <li> -<time class="listdate" datetime="2012-06-17T21:30:00-03:00" title="2012-06-17 21:30">2012-06-17 21:30</time><a href="../../posts/hello-world-again.html" class="listtitle">Hello World! Again...</a> +<time class="listdate" datetime="2012-06-17T21:30:00-03:00" title="2012-06-17 21:30">2012-06-17 21:30</time><a href="../../posts/hello-world-again/" class="listtitle">Hello World! Again...</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2012/09/index.html b/output/2012/09/index.html index a8039f0a..c4da593d 100644 --- a/output/2012/09/index.html +++ b/output/2012/09/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2012/09/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2012/09/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2012/09/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for September 2012</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2012/09/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2012/09/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2012-09-20T17:08:19-03:00" title="2012-09-20 17:08">2012-09-20 17:08</time><a href="../../posts/nikola-nbconvert.html" class="listtitle">Nikola + nbconvert</a> +<time class="listdate" datetime="2012-09-20T17:08:19-03:00" title="2012-09-20 17:08">2012-09-20 17:08</time><a href="../../posts/nikola-nbconvert/" class="listtitle">Nikola + nbconvert</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2012/10/index.html b/output/2012/10/index.html index 6fdc7f39..84f691e2 100644 --- a/output/2012/10/index.html +++ b/output/2012/10/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2012/10/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2012/10/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2012/10/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for October 2012</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2012/10/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2012/10/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2012-10-08T00:33:45-03:00" title="2012-10-08 00:33">2012-10-08 00:33</time><a href="../../posts/improving-viper-slideshows-styling.html" class="listtitle">Improving vIPer slideshows styling</a> +<time class="listdate" datetime="2012-10-08T00:33:45-03:00" title="2012-10-08 00:33">2012-10-08 00:33</time><a href="../../posts/improving-viper-slideshows-styling/" class="listtitle">Improving vIPer slideshows styling</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2012/11/index.html b/output/2012/11/index.html index a5ac27f2..ae425e55 100644 --- a/output/2012/11/index.html +++ b/output/2012/11/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2012/11/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2012/11/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2012/11/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for November 2012</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2012/11/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2012/11/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2012-11-08T23:05:24-03:00" title="2012-11-08 23:05">2012-11-08 23:05</time><a href="../../posts/facundo.html" class="listtitle">Facundo</a> +<time class="listdate" datetime="2012-11-08T23:05:24-03:00" title="2012-11-08 23:05">2012-11-08 23:05</time><a href="../../posts/facundo/" class="listtitle">Facundo</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2012/12/index.html b/output/2012/12/index.html index bbfa9a1e..e1c8276b 100644 --- a/output/2012/12/index.html +++ b/output/2012/12/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2012/12/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2012/12/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2012/12/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for December 2012</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2012/12/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2012/12/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2012-12-02T21:40:56-03:00" title="2012-12-02 21:40">2012-12-02 21:40</time><a href="../../posts/slider-for-nbconvert.html" class="listtitle">Slider for nbconvert...</a> +<time class="listdate" datetime="2012-12-02T21:40:56-03:00" title="2012-12-02 21:40">2012-12-02 21:40</time><a href="../../posts/slider-for-nbconvert/" class="listtitle">Slider for nbconvert...</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2012/index.html b/output/2012/index.html index 0eb01b49..cad8d12d 100644 --- a/output/2012/index.html +++ b/output/2012/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2012/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2012/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2012/"> </head> <body> <section class="social"><ul> @@ -31,41 +28,41 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2012</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2012/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2012/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="12/index.html">December</a> +<a href="12/">December</a> (1) </li> <li> -<a href="11/index.html">November</a> +<a href="11/">November</a> (1) </li> <li> -<a href="10/index.html">October</a> +<a href="10/">October</a> (1) </li> <li> -<a href="09/index.html">September</a> +<a href="09/">September</a> (1) </li> <li> -<a href="06/index.html">June</a> +<a href="06/">June</a> (6) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/01/index.html b/output/2013/01/index.html index 6d358a8c..71117771 100644 --- a/output/2013/01/index.html +++ b/output/2013/01/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/01/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/01/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/01/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for January 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/01/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/01/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-01-25T16:46:46-03:00" title="2013-01-25 16:46">2013-01-25 16:46</time><a href="../../posts/blogging-with-nikola-and-ipython.html" class="listtitle">Blogging with Nikola and IPython</a> +<time class="listdate" datetime="2013-01-25T16:46:46-03:00" title="2013-01-25 16:46">2013-01-25 16:46</time><a href="../../posts/blogging-with-nikola-and-ipython/" class="listtitle">Blogging with Nikola and IPython</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/02/index.html b/output/2013/02/index.html index 7e5f9abf..6fd7f759 100644 --- a/output/2013/02/index.html +++ b/output/2013/02/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/02/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/02/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/02/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for February 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/02/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/02/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-02-15T15:05:21-03:00" title="2013-02-15 15:05">2013-02-15 15:05</time><a href="../../posts/reveal-converter-mini-tutorial.html" class="listtitle">Reveal converter mini-tutorial</a> +<time class="listdate" datetime="2013-02-15T15:05:21-03:00" title="2013-02-15 15:05">2013-02-15 15:05</time><a href="../../posts/reveal-converter-mini-tutorial/" class="listtitle">Reveal converter mini-tutorial</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/04/index.html b/output/2013/04/index.html index d40988c4..db44bf00 100644 --- a/output/2013/04/index.html +++ b/output/2013/04/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/04/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/04/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/04/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for April 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/04/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/04/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-04-23T15:03:18-03:00" title="2013-04-23 15:03">2013-04-23 15:03</time><a href="../../posts/under-the-sea-en-la-plata.html" class="listtitle">Under the Sea... en La Plata</a> +<time class="listdate" datetime="2013-04-23T15:03:18-03:00" title="2013-04-23 15:03">2013-04-23 15:03</time><a href="../../posts/under-the-sea-en-la-plata/" class="listtitle">Under the Sea... en La Plata</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/05/index.html b/output/2013/05/index.html index 4174a58e..d5a1fcc8 100644 --- a/output/2013/05/index.html +++ b/output/2013/05/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/05/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/05/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/05/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for May 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/05/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/05/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-05-04T20:18:56-03:00" title="2013-05-04 20:18">2013-05-04 20:18</time><a href="../../posts/scipycon-argentina-2013.html" class="listtitle">SciPyCon Argentina 2013</a> +<time class="listdate" datetime="2013-05-04T20:18:56-03:00" title="2013-05-04 20:18">2013-05-04 20:18</time><a href="../../posts/scipycon-argentina-2013/" class="listtitle">SciPyCon Argentina 2013</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/08/index.html b/output/2013/08/index.html index b2172240..f8942727 100644 --- a/output/2013/08/index.html +++ b/output/2013/08/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/08/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/08/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/08/"> </head> <body> <section class="social"><ul> @@ -31,39 +28,39 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for August 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/08/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/08/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-08-30T20:25:39-03:00" title="2013-08-30 20:25">2013-08-30 20:25</time><a href="../../posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html" class="listtitle">A little hack to get a pdf from your IPython slides</a> +<time class="listdate" datetime="2013-08-30T20:25:39-03:00" title="2013-08-30 20:25">2013-08-30 20:25</time><a href="../../posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/" class="listtitle">A little hack to get a pdf from your IPython slides</a> </li> <li> -<time class="listdate" datetime="2013-08-27T00:21:30-03:00" title="2013-08-27 00:21">2013-08-27 00:21</time><a href="../../posts/zen-mode-extension-for-the-ipython-notebook.html" class="listtitle">Zen mode extension for the IPython notebook</a> +<time class="listdate" datetime="2013-08-27T00:21:30-03:00" title="2013-08-27 00:21">2013-08-27 00:21</time><a href="../../posts/zen-mode-extension-for-the-ipython-notebook/" class="listtitle">Zen mode extension for the IPython notebook</a> </li> <li> -<time class="listdate" datetime="2013-08-23T09:25:44-03:00" title="2013-08-23 09:25">2013-08-23 09:25</time><a href="../../posts/make-your-slides-with-ipython.html" class="listtitle">Make your slides with IPython</a> +<time class="listdate" datetime="2013-08-23T09:25:44-03:00" title="2013-08-23 09:25">2013-08-23 09:25</time><a href="../../posts/make-your-slides-with-ipython/" class="listtitle">Make your slides with IPython</a> </li> <li> -<time class="listdate" datetime="2013-08-21T08:17:00-03:00" title="2013-08-21 08:17">2013-08-21 08:17</time><a href="../../posts/one-line-deployment-of-your-site-to-gh-pages.html" class="listtitle">One line deployment of your site to gh-pages</a> +<time class="listdate" datetime="2013-08-21T08:17:00-03:00" title="2013-08-21 08:17">2013-08-21 08:17</time><a href="../../posts/one-line-deployment-of-your-site-to-gh-pages/" class="listtitle">One line deployment of your site to gh-pages</a> </li> <li> -<time class="listdate" datetime="2013-08-12T16:40:29-03:00" title="2013-08-12 16:40">2013-08-12 16:40</time><a href="../../posts/ipython-plugin-for-nikola-updated.html" class="listtitle">IPython plugin for Nikola updated</a> +<time class="listdate" datetime="2013-08-12T16:40:29-03:00" title="2013-08-12 16:40">2013-08-12 16:40</time><a href="../../posts/ipython-plugin-for-nikola-updated/" class="listtitle">IPython plugin for Nikola updated</a> </li> <li> -<time class="listdate" datetime="2013-08-02T15:46:31-03:00" title="2013-08-02 15:46">2013-08-02 15:46</time><a href="../../posts/teasers-with-the-ipython-notebook-plugin.html" class="listtitle">Teasers with the IPython notebook plugin</a> +<time class="listdate" datetime="2013-08-02T15:46:31-03:00" title="2013-08-02 15:46">2013-08-02 15:46</time><a href="../../posts/teasers-with-the-ipython-notebook-plugin/" class="listtitle">Teasers with the IPython notebook plugin</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/09/index.html b/output/2013/09/index.html index 3fd0466f..0bac7e37 100644 --- a/output/2013/09/index.html +++ b/output/2013/09/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/09/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/09/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/09/"> </head> <body> <section class="social"><ul> @@ -31,45 +28,45 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for September 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/09/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/09/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-09-29T23:53:58-03:00" title="2013-09-29 23:53">2013-09-29 23:53</time><a href="../../posts/mimic-the-ipython-notebook-cell-execution.html" class="listtitle">Mimic the IPython notebook cell execution</a> +<time class="listdate" datetime="2013-09-29T23:53:58-03:00" title="2013-09-29 23:53">2013-09-29 23:53</time><a href="../../posts/mimic-the-ipython-notebook-cell-execution/" class="listtitle">Mimic the IPython notebook cell execution</a> </li> <li> -<time class="listdate" datetime="2013-09-25T19:20:45-03:00" title="2013-09-25 19:20">2013-09-25 19:20</time><a href="../../posts/nikolas-zen-theme-finally-released.html" class="listtitle">Nikola's Zen theme finally released</a> +<time class="listdate" datetime="2013-09-25T19:20:45-03:00" title="2013-09-25 19:20">2013-09-25 19:20</time><a href="../../posts/nikolas-zen-theme-finally-released/" class="listtitle">Nikola's Zen theme finally released</a> </li> <li> -<time class="listdate" datetime="2013-09-24T19:02:38-03:00" title="2013-09-24 19:02">2013-09-24 19:02</time><a href="../../posts/viper-is-now-using-ipythonnbconvert.html" class="listtitle">vIPer is now using IPython.nbconvert</a> +<time class="listdate" datetime="2013-09-24T19:02:38-03:00" title="2013-09-24 19:02">2013-09-24 19:02</time><a href="../../posts/viper-is-now-using-ipythonnbconvert/" class="listtitle">vIPer is now using IPython.nbconvert</a> </li> <li> -<time class="listdate" datetime="2013-09-16T19:47:33-03:00" title="2013-09-16 19:47">2013-09-16 19:47</time><a href="../../posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html" class="listtitle">Change the IPython slides defaults with an IPython config file</a> +<time class="listdate" datetime="2013-09-16T19:47:33-03:00" title="2013-09-16 19:47">2013-09-16 19:47</time><a href="../../posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/" class="listtitle">Change the IPython slides defaults with an IPython config file</a> </li> <li> -<time class="listdate" datetime="2013-09-13T18:50:22-03:00" title="2013-09-13 18:50">2013-09-13 18:50</time><a href="../../posts/using-a-local-revealjs-library-with-your-ipython-slides.html" class="listtitle">Using a local Reveal.js library with your IPython slides</a> +<time class="listdate" datetime="2013-09-13T18:50:22-03:00" title="2013-09-13 18:50">2013-09-13 18:50</time><a href="../../posts/using-a-local-revealjs-library-with-your-ipython-slides/" class="listtitle">Using a local Reveal.js library with your IPython slides</a> </li> <li> -<time class="listdate" datetime="2013-09-13T01:40:50-03:00" title="2013-09-13 01:40">2013-09-13 01:40</time><a href="../../posts/different-ways-to-lead-an-open-source-project.html" class="listtitle">Different ways to lead an open source project</a> +<time class="listdate" datetime="2013-09-13T01:40:50-03:00" title="2013-09-13 01:40">2013-09-13 01:40</time><a href="../../posts/different-ways-to-lead-an-open-source-project/" class="listtitle">Different ways to lead an open source project</a> </li> <li> -<time class="listdate" datetime="2013-09-09T21:10:18-03:00" title="2013-09-09 21:10">2013-09-09 21:10</time><a href="../../posts/a-new-nikolas-theme-for-my-site-zen.html" class="listtitle">A new Nikola's theme for my site: Zen</a> +<time class="listdate" datetime="2013-09-09T21:10:18-03:00" title="2013-09-09 21:10">2013-09-09 21:10</time><a href="../../posts/a-new-nikolas-theme-for-my-site-zen/" class="listtitle">A new Nikola's theme for my site: Zen</a> </li> <li> -<time class="listdate" datetime="2013-09-03T16:08:16-03:00" title="2013-09-03 16:08">2013-09-03 16:08</time><a href="../../posts/customizing-your-ipython-slides.html" class="listtitle">Customizing your IPython slides</a> +<time class="listdate" datetime="2013-09-03T16:08:16-03:00" title="2013-09-03 16:08">2013-09-03 16:08</time><a href="../../posts/customizing-your-ipython-slides/" class="listtitle">Customizing your IPython slides</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/10/index.html b/output/2013/10/index.html index 00e9da4e..745b9038 100644 --- a/output/2013/10/index.html +++ b/output/2013/10/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/10/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/10/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/10/"> </head> <body> <section class="social"><ul> @@ -31,30 +28,30 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for October 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/10/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/10/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-10-15T18:08:28-03:00" title="2013-10-15 18:08">2013-10-15 18:08</time><a href="../../posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html" class="listtitle">Bidirectional IPython-Nikola workflow to write your blog post</a> +<time class="listdate" datetime="2013-10-15T18:08:28-03:00" title="2013-10-15 18:08">2013-10-15 18:08</time><a href="../../posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/" class="listtitle">Bidirectional IPython-Nikola workflow to write your blog post</a> </li> <li> -<time class="listdate" datetime="2013-10-10T19:54:27-03:00" title="2013-10-10 19:54">2013-10-10 19:54</time><a href="../../posts/hide-the-input-cells-from-your-ipython-slides.html" class="listtitle">Hide the input cells from your IPython slides</a> +<time class="listdate" datetime="2013-10-10T19:54:27-03:00" title="2013-10-10 19:54">2013-10-10 19:54</time><a href="../../posts/hide-the-input-cells-from-your-ipython-slides/" class="listtitle">Hide the input cells from your IPython slides</a> </li> <li> -<time class="listdate" datetime="2013-10-04T00:59:36-03:00" title="2013-10-04 00:59">2013-10-04 00:59</time><a href="../../posts/a-simple-minimap-for-your-nbconverted-ipynb.html" class="listtitle">A simple minimap for your nbconverted ipynb</a> +<time class="listdate" datetime="2013-10-04T00:59:36-03:00" title="2013-10-04 00:59">2013-10-04 00:59</time><a href="../../posts/a-simple-minimap-for-your-nbconverted-ipynb/" class="listtitle">A simple minimap for your nbconverted ipynb</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/11/index.html b/output/2013/11/index.html index d13cdd32..b41fb17a 100644 --- a/output/2013/11/index.html +++ b/output/2013/11/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/11/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/11/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/11/"> </head> <body> <section class="social"><ul> @@ -31,27 +28,27 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for November 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/11/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/11/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-11-22T23:55:38-03:00" title="2013-11-22 23:55">2013-11-22 23:55</time><a href="../../posts/trading-logbook-update-22-nov-2013.html" class="listtitle">Trading logbook update: 22-Nov-2013</a> +<time class="listdate" datetime="2013-11-22T23:55:38-03:00" title="2013-11-22 23:55">2013-11-22 23:55</time><a href="../../posts/trading-logbook-update-22-nov-2013/" class="listtitle">Trading logbook update: 22-Nov-2013</a> </li> <li> -<time class="listdate" datetime="2013-11-13T02:24:40-03:00" title="2013-11-13 02:24">2013-11-13 02:24</time><a href="../../posts/live-trading-logbook.html" class="listtitle">Live trading logbook</a> +<time class="listdate" datetime="2013-11-13T02:24:40-03:00" title="2013-11-13 02:24">2013-11-13 02:24</time><a href="../../posts/live-trading-logbook/" class="listtitle">Live trading logbook</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/12/index.html b/output/2013/12/index.html index cb744058..36a89717 100644 --- a/output/2013/12/index.html +++ b/output/2013/12/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/12/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/12/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2013/12/"> </head> <body> <section class="social"><ul> @@ -31,39 +28,39 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for December 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2013/12/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2013/12/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2013-12-30T16:41:08-03:00" title="2013-12-30 16:41">2013-12-30 16:41</time><a href="../../posts/my-ipython-powered-semi-automatic-git-workflow.html" class="listtitle">My IPython-powered semi-automatic git workflow</a> +<time class="listdate" datetime="2013-12-30T16:41:08-03:00" title="2013-12-30 16:41">2013-12-30 16:41</time><a href="../../posts/my-ipython-powered-semi-automatic-git-workflow/" class="listtitle">My IPython-powered semi-automatic git workflow</a> </li> <li> -<time class="listdate" datetime="2013-12-27T20:35:57-03:00" title="2013-12-27 20:35">2013-12-27 20:35</time><a href="../../posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html" class="listtitle">Deploy your Nikola-powered blog content from the IPython notebook</a> +<time class="listdate" datetime="2013-12-27T20:35:57-03:00" title="2013-12-27 20:35">2013-12-27 20:35</time><a href="../../posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/" class="listtitle">Deploy your Nikola-powered blog content from the IPython notebook</a> </li> <li> -<time class="listdate" datetime="2013-12-18T19:21:28-03:00" title="2013-12-18 19:21">2013-12-18 19:21</time><a href="../../posts/a-poor-man-spell-checker-for-the-ipython-notebook.html" class="listtitle">A 'poor man' spell checker for the IPython notebook</a> +<time class="listdate" datetime="2013-12-18T19:21:28-03:00" title="2013-12-18 19:21">2013-12-18 19:21</time><a href="../../posts/a-poor-man-spell-checker-for-the-ipython-notebook/" class="listtitle">A 'poor man' spell checker for the IPython notebook</a> </li> <li> -<time class="listdate" datetime="2013-12-13T13:21:09-03:00" title="2013-12-13 13:21">2013-12-13 13:21</time><a href="../../posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html" class="listtitle">Tweet me... said an IPython notebook cell and I did it</a> +<time class="listdate" datetime="2013-12-13T13:21:09-03:00" title="2013-12-13 13:21">2013-12-13 13:21</time><a href="../../posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/" class="listtitle">Tweet me... said an IPython notebook cell and I did it</a> </li> <li> -<time class="listdate" datetime="2013-12-03T21:50:05-03:00" title="2013-12-03 21:50">2013-12-03 21:50</time><a href="../../posts/dont-write-scripts-just-write-ipyscripts.html" class="listtitle">Don't write scripts, just write ipyscripts!</a> +<time class="listdate" datetime="2013-12-03T21:50:05-03:00" title="2013-12-03 21:50">2013-12-03 21:50</time><a href="../../posts/dont-write-scripts-just-write-ipyscripts/" class="listtitle">Don't write scripts, just write ipyscripts!</a> </li> <li> -<time class="listdate" datetime="2013-12-03T14:40:36-03:00" title="2013-12-03 14:40">2013-12-03 14:40</time><a href="../../posts/pyconar-2013.html" class="listtitle">PyConAr 2013</a> +<time class="listdate" datetime="2013-12-03T14:40:36-03:00" title="2013-12-03 14:40">2013-12-03 14:40</time><a href="../../posts/pyconar-2013/" class="listtitle">PyConAr 2013</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2013/index.html b/output/2013/index.html index 01ccdcee..a6b19d80 100644 --- a/output/2013/index.html +++ b/output/2013/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2013/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2013/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2013/"> </head> <body> <section class="social"><ul> @@ -31,57 +28,57 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2013</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2013/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2013/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="12/index.html">December</a> +<a href="12/">December</a> (6) </li> <li> -<a href="11/index.html">November</a> +<a href="11/">November</a> (2) </li> <li> -<a href="10/index.html">October</a> +<a href="10/">October</a> (3) </li> <li> -<a href="09/index.html">September</a> +<a href="09/">September</a> (8) </li> <li> -<a href="08/index.html">August</a> +<a href="08/">August</a> (6) </li> <li> -<a href="05/index.html">May</a> +<a href="05/">May</a> (1) </li> <li> -<a href="04/index.html">April</a> +<a href="04/">April</a> (1) </li> <li> -<a href="02/index.html">February</a> +<a href="02/">February</a> (1) </li> <li> -<a href="01/index.html">January</a> +<a href="01/">January</a> (1) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2014/03/index.html b/output/2014/03/index.html index 4ea4248c..e8e45f3a 100644 --- a/output/2014/03/index.html +++ b/output/2014/03/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2014/03/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2014/03/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2014/03/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for March 2014</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2014/03/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2014/03/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2014-03-30T21:51:13-03:00" title="2014-03-30 21:51">2014-03-30 21:51</time><a href="../../posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html" class="listtitle">Slideviewer: a simple way to share your IPython slides</a> +<time class="listdate" datetime="2014-03-30T21:51:13-03:00" title="2014-03-30 21:51">2014-03-30 21:51</time><a href="../../posts/slideviewer-a-simple-way-to-share-your-ipython-slides/" class="listtitle">Slideviewer: a simple way to share your IPython slides</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2014/04/index.html b/output/2014/04/index.html index 7e390f46..6f01d658 100644 --- a/output/2014/04/index.html +++ b/output/2014/04/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2014/04/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2014/04/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2014/04/"> </head> <body> <section class="social"><ul> @@ -31,27 +28,27 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for April 2014</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2014/04/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2014/04/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2014-04-18T12:10:15-03:00" title="2014-04-18 12:10">2014-04-18 12:10</time><a href="../../posts/48-themes-for-your-ipython-notebook.html" class="listtitle">48 themes for your IPython notebook</a> +<time class="listdate" datetime="2014-04-18T12:10:15-03:00" title="2014-04-18 12:10">2014-04-18 12:10</time><a href="../../posts/48-themes-for-your-ipython-notebook/" class="listtitle">48 themes for your IPython notebook</a> </li> <li> -<time class="listdate" datetime="2014-04-07T10:23:21-03:00" title="2014-04-07 10:23">2014-04-07 10:23</time><a href="../../posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html" class="listtitle">Loader and Writer, IPython nbextensions to easily edit your text.</a> +<time class="listdate" datetime="2014-04-07T10:23:21-03:00" title="2014-04-07 10:23">2014-04-07 10:23</time><a href="../../posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/" class="listtitle">Loader and Writer, IPython nbextensions to easily edit your text.</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2014/05/index.html b/output/2014/05/index.html index 324b75f5..a80940df 100644 --- a/output/2014/05/index.html +++ b/output/2014/05/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2014/05/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2014/05/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2014/05/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for May 2014</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2014/05/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2014/05/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2014-05-30T15:03:18-03:00" title="2014-05-30 15:03">2014-05-30 15:03</time><a href="../../posts/zen-themes-updated.html" class="listtitle">Zen themes updated</a> +<time class="listdate" datetime="2014-05-30T15:03:18-03:00" title="2014-05-30 15:03">2014-05-30 15:03</time><a href="../../posts/zen-themes-updated/" class="listtitle">Zen themes updated</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2014/index.html b/output/2014/index.html index 5db85e5c..dbd9d2d4 100644 --- a/output/2014/index.html +++ b/output/2014/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2014/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2014/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2014/"> </head> <body> <section class="social"><ul> @@ -31,33 +28,33 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2014</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2014/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2014/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="05/index.html">May</a> +<a href="05/">May</a> (1) </li> <li> -<a href="04/index.html">April</a> +<a href="04/">April</a> (2) </li> <li> -<a href="03/index.html">March</a> +<a href="03/">March</a> (1) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2016/05/index.html b/output/2016/05/index.html index 40260c96..d56929d9 100644 --- a/output/2016/05/index.html +++ b/output/2016/05/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2016/05/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2016/05/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2016/05/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for May 2016</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2016/05/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2016/05/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2016-05-30T18:33:11-03:00" title="2016-05-30 18:33">2016-05-30 18:33</time><a href="../../posts/coming-back.html" class="listtitle">Coming back</a> +<time class="listdate" datetime="2016-05-30T18:33:11-03:00" title="2016-05-30 18:33">2016-05-30 18:33</time><a href="../../posts/coming-back/" class="listtitle">Coming back</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2016/06/index.html b/output/2016/06/index.html index c3330f48..17c75117 100644 --- a/output/2016/06/index.html +++ b/output/2016/06/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2016/06/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2016/06/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2016/06/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for June 2016</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2016/06/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2016/06/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2016-06-25T12:54:52-03:00" title="2016-06-25 12:54">2016-06-25 12:54</time><a href="../../posts/how-to-pin-conda.html" class="listtitle">How to pin Conda</a> +<time class="listdate" datetime="2016-06-25T12:54:52-03:00" title="2016-06-25 12:54">2016-06-25 12:54</time><a href="../../posts/how-to-pin-conda/" class="listtitle">How to pin Conda</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2016/08/index.html b/output/2016/08/index.html index 7b8fef7f..fecbe995 100644 --- a/output/2016/08/index.html +++ b/output/2016/08/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2016/08/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2016/08/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2016/08/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for August 2016</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2016/08/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2016/08/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2016-08-09T16:52:46-03:00" title="2016-08-09 16:52">2016-08-09 16:52</time><a href="../../posts/rise-400b1-is-available-please-test-it.html" class="listtitle">RISE 4.0.0b1 is available, please test it!</a> +<time class="listdate" datetime="2016-08-09T16:52:46-03:00" title="2016-08-09 16:52">2016-08-09 16:52</time><a href="../../posts/rise-400b1-is-available-please-test-it/" class="listtitle">RISE 4.0.0b1 is available, please test it!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2016/index.html b/output/2016/index.html index 855d89e0..96c48b78 100644 --- a/output/2016/index.html +++ b/output/2016/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2016/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2016/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2016/"> </head> <body> <section class="social"><ul> @@ -31,33 +28,33 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2016</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2016/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2016/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="08/index.html">August</a> +<a href="08/">August</a> (1) </li> <li> -<a href="06/index.html">June</a> +<a href="06/">June</a> (1) </li> <li> -<a href="05/index.html">May</a> +<a href="05/">May</a> (1) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2017/06/index.html b/output/2017/06/index.html index a446ade3..21a6c2d6 100644 --- a/output/2017/06/index.html +++ b/output/2017/06/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2017/06/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2017/06/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2017/06/"> </head> <body> <section class="social"><ul> @@ -31,30 +28,30 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for June 2017</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2017/06/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2017/06/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2017-06-26T18:29:09-03:00" title="2017-06-26 18:29">2017-06-26 18:29</time><a href="../../posts/trading-logbook-update-3.html" class="listtitle">Trading logbook update 3</a> +<time class="listdate" datetime="2017-06-26T18:29:09-03:00" title="2017-06-26 18:29">2017-06-26 18:29</time><a href="../../posts/trading-logbook-update-3/" class="listtitle">Trading logbook update 3</a> </li> <li> -<time class="listdate" datetime="2017-06-19T11:13:43-03:00" title="2017-06-19 11:13">2017-06-19 11:13</time><a href="../../posts/rise-meets-jupyterlab.html" class="listtitle">RISE meets JupyterLab</a> +<time class="listdate" datetime="2017-06-19T11:13:43-03:00" title="2017-06-19 11:13">2017-06-19 11:13</time><a href="../../posts/rise-meets-jupyterlab/" class="listtitle">RISE meets JupyterLab</a> </li> <li> -<time class="listdate" datetime="2017-06-13T08:18:35-03:00" title="2017-06-13 08:18">2017-06-13 08:18</time><a href="../../posts/rise-500-is-out.html" class="listtitle">RISE 5.0.0 is out!</a> +<time class="listdate" datetime="2017-06-13T08:18:35-03:00" title="2017-06-13 08:18">2017-06-13 08:18</time><a href="../../posts/rise-500-is-out/" class="listtitle">RISE 5.0.0 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2017/07/index.html b/output/2017/07/index.html index a5f5316a..c5308898 100644 --- a/output/2017/07/index.html +++ b/output/2017/07/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2017/07/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2017/07/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2017/07/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for July 2017</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2017/07/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2017/07/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2017-07-12T13:45:00-03:00" title="2017-07-12 13:45">2017-07-12 13:45</time><a href="../../posts/we-are-above-1000-stars.html" class="listtitle">We are above 1000 stars!</a> +<time class="listdate" datetime="2017-07-12T13:45:00-03:00" title="2017-07-12 13:45">2017-07-12 13:45</time><a href="../../posts/we-are-above-1000-stars/" class="listtitle">We are above 1000 stars!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2017/11/index.html b/output/2017/11/index.html index 108132e0..4d58c1a9 100644 --- a/output/2017/11/index.html +++ b/output/2017/11/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2017/11/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2017/11/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2017/11/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for November 2017</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2017/11/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2017/11/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2017-11-06T07:45:52-03:00" title="2017-11-06 07:45">2017-11-06 07:45</time><a href="../../posts/rise-510-is-out.html" class="listtitle">RISE 5.1.0 is out!</a> +<time class="listdate" datetime="2017-11-06T07:45:52-03:00" title="2017-11-06 07:45">2017-11-06 07:45</time><a href="../../posts/rise-510-is-out/" class="listtitle">RISE 5.1.0 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2017/12/index.html b/output/2017/12/index.html index ee56f34b..1ff525c4 100644 --- a/output/2017/12/index.html +++ b/output/2017/12/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2017/12/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2017/12/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2017/12/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for December 2017</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2017/12/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2017/12/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2017-12-17T18:12:53-03:00" title="2017-12-17 18:12">2017-12-17 18:12</time><a href="../../posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.html" class="listtitle">Binder + Nikola + Jupyter + Github = Blogging resourceless</a> +<time class="listdate" datetime="2017-12-17T18:12:53-03:00" title="2017-12-17 18:12">2017-12-17 18:12</time><a href="../../posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/" class="listtitle">Binder + Nikola + Jupyter + Github = Blogging resourceless</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2017/index.html b/output/2017/index.html index 32b6d1f2..27e4340c 100644 --- a/output/2017/index.html +++ b/output/2017/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2017/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2017/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2017/"> </head> <body> <section class="social"><ul> @@ -31,37 +28,37 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2017</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2017/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2017/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="12/index.html">December</a> +<a href="12/">December</a> (1) </li> <li> -<a href="11/index.html">November</a> +<a href="11/">November</a> (1) </li> <li> -<a href="07/index.html">July</a> +<a href="07/">July</a> (1) </li> <li> -<a href="06/index.html">June</a> +<a href="06/">June</a> (3) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2018/02/index.html b/output/2018/02/index.html index 18c3a6ba..435bf489 100644 --- a/output/2018/02/index.html +++ b/output/2018/02/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2018/02/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2018/02/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2018/02/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for February 2018</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2018/02/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2018/02/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2018-02-04T23:45:53-03:00" title="2018-02-04 23:45">2018-02-04 23:45</time><a href="../../posts/rise-520-is-out.html" class="listtitle">RISE 5.2.0 is out!</a> +<time class="listdate" datetime="2018-02-04T23:45:53-03:00" title="2018-02-04 23:45">2018-02-04 23:45</time><a href="../../posts/rise-520-is-out/" class="listtitle">RISE 5.2.0 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2018/05/index.html b/output/2018/05/index.html index 17af6267..f2c1060e 100644 --- a/output/2018/05/index.html +++ b/output/2018/05/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2018/05/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2018/05/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2018/05/"> </head> <body> <section class="social"><ul> @@ -31,27 +28,27 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for May 2018</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2018/05/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2018/05/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2018-05-28T14:43:15-03:00" title="2018-05-28 14:43">2018-05-28 14:43</time><a href="../../posts/rise-530-is-out.html" class="listtitle">RISE 5.3.0 is out!</a> +<time class="listdate" datetime="2018-05-28T14:43:15-03:00" title="2018-05-28 14:43">2018-05-28 14:43</time><a href="../../posts/rise-530-is-out/" class="listtitle">RISE 5.3.0 is out!</a> </li> <li> -<time class="listdate" datetime="2018-05-02T19:18:40-03:00" title="2018-05-02 19:18">2018-05-02 19:18</time><a href="../../posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html" class="listtitle">Some thoughts about the 2017 ACM Software System Award for Project Jupyter</a> +<time class="listdate" datetime="2018-05-02T19:18:40-03:00" title="2018-05-02 19:18">2018-05-02 19:18</time><a href="../../posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/" class="listtitle">Some thoughts about the 2017 ACM Software System Award for Project Jupyter</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2018/08/index.html b/output/2018/08/index.html index 3afe4b94..ec21e478 100644 --- a/output/2018/08/index.html +++ b/output/2018/08/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2018/08/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2018/08/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2018/08/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for August 2018</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2018/08/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2018/08/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2018-08-25T15:44:17-03:00" title="2018-08-25 15:44">2018-08-25 15:44</time><a href="../../posts/rise-541-is-out.html" class="listtitle">RISE 5.4.1 is out!</a> +<time class="listdate" datetime="2018-08-25T15:44:17-03:00" title="2018-08-25 15:44">2018-08-25 15:44</time><a href="../../posts/rise-541-is-out/" class="listtitle">RISE 5.4.1 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2018/09/index.html b/output/2018/09/index.html index cdf1a7f0..34b47051 100644 --- a/output/2018/09/index.html +++ b/output/2018/09/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2018/09/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2018/09/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2018/09/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for September 2018</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2018/09/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2018/09/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2018-09-16T09:58:09-03:00" title="2018-09-16 09:58">2018-09-16 09:58</time><a href="../../posts/my-aikido-shodan-test.html" class="listtitle">My Aikido Shodan test</a> +<time class="listdate" datetime="2018-09-16T09:58:09-03:00" title="2018-09-16 09:58">2018-09-16 09:58</time><a href="../../posts/my-aikido-shodan-test/" class="listtitle">My Aikido Shodan test</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2018/index.html b/output/2018/index.html index ca298697..6b4be5a8 100644 --- a/output/2018/index.html +++ b/output/2018/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2018/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2018/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2018/"> </head> <body> <section class="social"><ul> @@ -31,37 +28,37 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2018</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2018/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2018/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="09/index.html">September</a> +<a href="09/">September</a> (1) </li> <li> -<a href="08/index.html">August</a> +<a href="08/">August</a> (1) </li> <li> -<a href="05/index.html">May</a> +<a href="05/">May</a> (2) </li> <li> -<a href="02/index.html">February</a> +<a href="02/">February</a> (1) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2019/01/index.html b/output/2019/01/index.html index c30949ba..4f98f2fc 100644 --- a/output/2019/01/index.html +++ b/output/2019/01/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2019/01/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2019/01/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2019/01/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for January 2019</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2019/01/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2019/01/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2019-01-20T21:51:03-03:00" title="2019-01-20 21:51">2019-01-20 21:51</time><a href="../../posts/abandoning-the-oquanta-domain-name.html" class="listtitle">Abandoning the oquanta domain name</a> +<time class="listdate" datetime="2019-01-20T21:51:03-03:00" title="2019-01-20 21:51">2019-01-20 21:51</time><a href="../../posts/abandoning-the-oquanta-domain-name/" class="listtitle">Abandoning the oquanta domain name</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2019/04/index.html b/output/2019/04/index.html index fd34b6f5..92cc7cab 100644 --- a/output/2019/04/index.html +++ b/output/2019/04/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2019/04/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2019/04/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2019/04/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for April 2019</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2019/04/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2019/04/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2019-04-27T13:39:26-03:00" title="2019-04-27 13:39">2019-04-27 13:39</time><a href="../../posts/rise-550-is-out.html" class="listtitle">RISE 5.5.0 is out!</a> +<time class="listdate" datetime="2019-04-27T13:39:26-03:00" title="2019-04-27 13:39">2019-04-27 13:39</time><a href="../../posts/rise-550-is-out/" class="listtitle">RISE 5.5.0 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2019/11/index.html b/output/2019/11/index.html index ea7d4ba3..a64f982a 100644 --- a/output/2019/11/index.html +++ b/output/2019/11/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2019/11/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2019/11/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2019/11/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for November 2019</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2019/11/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2019/11/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2019-11-14T16:08:38-03:00" title="2019-11-14 16:08">2019-11-14 16:08</time><a href="../../posts/rise-560-is-out.html" class="listtitle">RISE 5.6.0 is out!</a> +<time class="listdate" datetime="2019-11-14T16:08:38-03:00" title="2019-11-14 16:08">2019-11-14 16:08</time><a href="../../posts/rise-560-is-out/" class="listtitle">RISE 5.6.0 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2019/index.html b/output/2019/index.html index 61a9e80a..2af6e93e 100644 --- a/output/2019/index.html +++ b/output/2019/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2019/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2019/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2019/"> </head> <body> <section class="social"><ul> @@ -31,33 +28,33 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2019</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2019/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2019/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="11/index.html">November</a> +<a href="11/">November</a> (1) </li> <li> -<a href="04/index.html">April</a> +<a href="04/">April</a> (1) </li> <li> -<a href="01/index.html">January</a> +<a href="01/">January</a> (1) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2020/02/index.html b/output/2020/02/index.html index 6cced6c1..787f2d53 100644 --- a/output/2020/02/index.html +++ b/output/2020/02/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2020/02/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2020/02/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2020/02/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for February 2020</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2020/02/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2020/02/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2020-02-21T18:30:45-03:00" title="2020-02-21 18:30">2020-02-21 18:30</time><a href="../../posts/rise-561-is-out.html" class="listtitle">RISE 5.6.1 is out!</a> +<time class="listdate" datetime="2020-02-21T18:30:45-03:00" title="2020-02-21 18:30">2020-02-21 18:30</time><a href="../../posts/rise-561-is-out/" class="listtitle">RISE 5.6.1 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2020/04/index.html b/output/2020/04/index.html index 1c4faf26..b90eb6bc 100644 --- a/output/2020/04/index.html +++ b/output/2020/04/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2020/04/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2020/04/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2020/04/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for April 2020</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2020/04/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2020/04/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2020-04-03T14:08:22-03:00" title="2020-04-03 14:08">2020-04-03 14:08</time><a href="../../posts/supporting-rise.html" class="listtitle">Supporting RISE</a> +<time class="listdate" datetime="2020-04-03T14:08:22-03:00" title="2020-04-03 14:08">2020-04-03 14:08</time><a href="../../posts/supporting-rise/" class="listtitle">Supporting RISE</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2020/10/index.html b/output/2020/10/index.html index 3cb1bd14..bacc8dc7 100644 --- a/output/2020/10/index.html +++ b/output/2020/10/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2020/10/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2020/10/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2020/10/"> </head> <body> <section class="social"><ul> @@ -31,24 +28,24 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for October 2020</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2020/10/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2020/10/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2020-10-30T11:52:24-03:00" title="2020-10-30 11:52">2020-10-30 11:52</time><a href="../../posts/rise-571-is-out.html" class="listtitle">RISE 5.7.1 is out!</a> +<time class="listdate" datetime="2020-10-30T11:52:24-03:00" title="2020-10-30 11:52">2020-10-30 11:52</time><a href="../../posts/rise-571-is-out/" class="listtitle">RISE 5.7.1 is out!</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2020/index.html b/output/2020/index.html index 0ba94e86..99bee295 100644 --- a/output/2020/index.html +++ b/output/2020/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2020/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2020/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2020/"> </head> <body> <section class="social"><ul> @@ -31,33 +28,33 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2020</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2020/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2020/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="10/index.html">October</a> +<a href="10/">October</a> (1) </li> <li> -<a href="04/index.html">April</a> +<a href="04/">April</a> (1) </li> <li> -<a href="02/index.html">February</a> +<a href="02/">February</a> (1) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2021/08/index.html b/output/2021/08/index.html index 781f776c..5c3f2907 100644 --- a/output/2021/08/index.html +++ b/output/2021/08/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2021/08/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2021/08/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../../es/2021/08/"> </head> <body> <section class="social"><ul> @@ -31,27 +28,27 @@ <li><a href="../../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for August 2021</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../../es/2021/08/index.html" rel="alternate">Español - </a></p> + <p> <a href="../../es/2021/08/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<time class="listdate" datetime="2021-08-31T11:35:28-03:00" title="2021-08-31 11:35">2021-08-31 11:35</time><a href="../../posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html" class="listtitle">A deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinx</a> +<time class="listdate" datetime="2021-08-31T11:35:28-03:00" title="2021-08-31 11:35">2021-08-31 11:35</time><a href="../../posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/" class="listtitle">A deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinx</a> </li> <li> -<time class="listdate" datetime="2021-08-23T16:00:19-03:00" title="2021-08-23 16:00">2021-08-23 16:00</time><a href="../../posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html" class="listtitle">A deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikola</a> +<time class="listdate" datetime="2021-08-23T16:00:19-03:00" title="2021-08-23 16:00">2021-08-23 16:00</time><a href="../../posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/" class="listtitle">A deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikola</a> </li> - </ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/2021/index.html b/output/2021/index.html index 7da8cd40..b4fad4d2 100644 --- a/output/2021/index.html +++ b/output/2021/index.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -11,7 +8,7 @@ <link href="../assets/css/all-nocdn.css" rel="stylesheet" type="text/css"> <link rel="alternate" type="application/rss+xml" title="RSS (en)" href="../rss.xml"> <link rel="alternate" type="application/rss+xml" title="RSS (es)" href="../es/rss.xml"> -<link rel="canonical" href="http://damianavila.github.io/blog/2021/index.html"> +<link rel="canonical" href="http://damianavila.github.io/blog/2021/"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="../es/2021/"> </head> <body> <section class="social"><ul> @@ -31,23 +28,23 @@ <li><a href="../archive.html" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="../categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="../rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="../stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="../stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="../stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="../stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Posts for year 2021</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="../es/2021/index.html" rel="alternate">Español - </a></p> + <p> <a href="../es/2021/" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"><li> -<a href="08/index.html">August</a> +<a href="08/">August</a> (2) - </li></ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - + </li></ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/archive.html b/output/archive.html index 4944943f..aae58c47 100644 --- a/output/archive.html +++ b/output/archive.html @@ -1,8 +1,5 @@ <!DOCTYPE html> -<html prefix=" -og: http://ogp.me/ns# -article: http://ogp.me/ns/article# -" lang="en"> +<html lang="en"> <head> <meta charset="utf-8"> <meta name="description" content="My place to share some thoughts with the world."> @@ -23,7 +20,7 @@ styles: {'.MathJax_Display': {"margin": 0}} } }); -</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--> +</script><!--[if lt IE 9]><script src="/assets/js/html5.js"></script><![endif]--><link rel="alternate" hreflang="es" href="es/archive.html"> </head> <body> <section class="social"><ul> @@ -31,57 +28,57 @@ <li><a href="#" title="Archives"><i class="icon-folder-open-alt"></i></a></li> <li><a href="categories/index.html" title="Tags"><i class="icon-tags"></i></a></li> <li><a href="rss.xml" title="RSS"><i class="icon-rss"></i></a></li> - <li><a href="stories/about-me.html" title="About me"><i class="icon-user"></i></a></li> - <li><a href="stories/support-me.html" title="Support me"><i class="icon-usd"></i></a></li> - <li><a href="https://twitter.com/damian_avila" title="My Twitter"><i class="icon-twitter"></i></a></li> + <li><a href="stories/about-me/index.html" title="About me"><i class="icon-user"></i></a></li> + <li><a href="stories/support-me/index.html" title="Support me"><i class="icon-usd"></i></a></li> + <li><a href="https://x.com/damian_avila" title="My x"><i class="icon-remove"></i></a></li> <li><a href="https://github.com/damianavila" title="My Github"><i class="icon-github"></i></a></li> </ul></section><section class="page-content"><div class="content" rel="main"> <article class="listpage"><header><h1>Archive</h1> </header><div class="translationslist translations"> <h3 class="translationslist-intro">Also available in:</h3> - <p><a href="es/archive.html" rel="alternate">Español - </a></p> + <p> <a href="es/archive.html" hreflang="es" rel="alternate">Español</a> +</p> </div> <ul class="postlist"> <li> -<a href="2021/index.html">2021</a> +<a href="2021/">2021</a> (2) </li> <li> -<a href="2020/index.html">2020</a> +<a href="2020/">2020</a> (3) </li> <li> -<a href="2019/index.html">2019</a> +<a href="2019/">2019</a> (3) </li> <li> -<a href="2018/index.html">2018</a> +<a href="2018/">2018</a> (5) </li> <li> -<a href="2017/index.html">2017</a> +<a href="2017/">2017</a> (6) </li> <li> -<a href="2016/index.html">2016</a> +<a href="2016/">2016</a> (3) </li> <li> -<a href="2014/index.html">2014</a> +<a href="2014/">2014</a> (4) </li> <li> -<a href="2013/index.html">2013</a> +<a href="2013/">2013</a> (29) </li> <li> -<a href="2012/index.html">2012</a> +<a href="2012/">2012</a> (10) </li> -</ul></article><footer id="footer"><p>Contents © 2021 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - +</ul></article><footer id="footer"><p>Contents © 2024 <a href="mailto:damianavila82@yahoo.com.ar">Damian Avila</a> - Powered by <a href="http://getnikola.com">Nikola</a> - Zen theme based in <a href="https://github.com/arusahni/website-template">Arusahni's website-template</a><br><a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/ar/"> <img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="https://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a></p> diff --git a/output/assets/css/all-nocdn.css b/output/assets/css/all-nocdn.css index b0dde006..2cc5530c 100644 --- a/output/assets/css/all-nocdn.css +++ b/output/assets/css/all-nocdn.css @@ -2598,80 +2598,95 @@ pre.code { margin-top: 48px; } -@import url("html4css1.css"); +@import url("rst_base.css"); @import url("nikola_rst.css"); /* code.css file generated by Nikola */ -pre.code .hll { background-color: #ffffcc } -pre.code { background: #f8f8f8; } -pre.code .c { color: #408080; font-style: italic } /* Comment */ -pre.code .err { border: 1px solid #FF0000 } /* Error */ -pre.code .k { color: #008000; font-weight: bold } /* Keyword */ -pre.code .o { color: #666666 } /* Operator */ -pre.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ -pre.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -pre.code .cp { color: #BC7A00 } /* Comment.Preproc */ -pre.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ -pre.code .c1 { color: #408080; font-style: italic } /* Comment.Single */ -pre.code .cs { color: #408080; font-style: italic } /* Comment.Special */ -pre.code .gd { color: #A00000 } /* Generic.Deleted */ -pre.code .ge { font-style: italic } /* Generic.Emph */ -pre.code .gr { color: #FF0000 } /* Generic.Error */ -pre.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -pre.code .gi { color: #00A000 } /* Generic.Inserted */ -pre.code .go { color: #888888 } /* Generic.Output */ -pre.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -pre.code .gs { font-weight: bold } /* Generic.Strong */ -pre.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -pre.code .gt { color: #0044DD } /* Generic.Traceback */ -pre.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -pre.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -pre.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -pre.code .kp { color: #008000 } /* Keyword.Pseudo */ -pre.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -pre.code .kt { color: #B00040 } /* Keyword.Type */ -pre.code .m { color: #666666 } /* Literal.Number */ -pre.code .s { color: #BA2121 } /* Literal.String */ -pre.code .na { color: #7D9029 } /* Name.Attribute */ -pre.code .nb { color: #008000 } /* Name.Builtin */ -pre.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -pre.code .no { color: #880000 } /* Name.Constant */ -pre.code .nd { color: #AA22FF } /* Name.Decorator */ -pre.code .ni { color: #999999; font-weight: bold } /* Name.Entity */ -pre.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -pre.code .nf { color: #0000FF } /* Name.Function */ -pre.code .nl { color: #A0A000 } /* Name.Label */ -pre.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -pre.code .nt { color: #008000; font-weight: bold } /* Name.Tag */ -pre.code .nv { color: #19177C } /* Name.Variable */ -pre.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -pre.code .w { color: #bbbbbb } /* Text.Whitespace */ -pre.code .mb { color: #666666 } /* Literal.Number.Bin */ -pre.code .mf { color: #666666 } /* Literal.Number.Float */ -pre.code .mh { color: #666666 } /* Literal.Number.Hex */ -pre.code .mi { color: #666666 } /* Literal.Number.Integer */ -pre.code .mo { color: #666666 } /* Literal.Number.Oct */ -pre.code .sa { color: #BA2121 } /* Literal.String.Affix */ -pre.code .sb { color: #BA2121 } /* Literal.String.Backtick */ -pre.code .sc { color: #BA2121 } /* Literal.String.Char */ -pre.code .dl { color: #BA2121 } /* Literal.String.Delimiter */ -pre.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -pre.code .s2 { color: #BA2121 } /* Literal.String.Double */ -pre.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -pre.code .sh { color: #BA2121 } /* Literal.String.Heredoc */ -pre.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -pre.code .sx { color: #008000 } /* Literal.String.Other */ -pre.code .sr { color: #BB6688 } /* Literal.String.Regex */ -pre.code .s1 { color: #BA2121 } /* Literal.String.Single */ -pre.code .ss { color: #19177C } /* Literal.String.Symbol */ -pre.code .bp { color: #008000 } /* Name.Builtin.Pseudo */ -pre.code .fm { color: #0000FF } /* Name.Function.Magic */ -pre.code .vc { color: #19177C } /* Name.Variable.Class */ -pre.code .vg { color: #19177C } /* Name.Variable.Global */ -pre.code .vi { color: #19177C } /* Name.Variable.Instance */ -pre.code .vm { color: #19177C } /* Name.Variable.Magic */ -pre.code .il { color: #666666 } /* Literal.Number.Integer.Long */ -table.codetable { width: 100%;} td.linenos {text-align: right; width: 4em;} +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +pre.code .hll, .code .codetable .hll, .highlight pre .hll { background-color: #ffffcc } +pre.code , .code .codetable , .highlight pre { background: #f8f8f8; } +pre.code .c, .code .codetable .c, .highlight pre .c { color: #3D7B7B; font-style: italic } /* Comment */ +pre.code .err, .code .codetable .err, .highlight pre .err { border: 1px solid #FF0000 } /* Error */ +pre.code .k, .code .codetable .k, .highlight pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre.code .o, .code .codetable .o, .highlight pre .o { color: #666666 } /* Operator */ +pre.code .ch, .code .codetable .ch, .highlight pre .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +pre.code .cm, .code .codetable .cm, .highlight pre .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +pre.code .cp, .code .codetable .cp, .highlight pre .cp { color: #9C6500 } /* Comment.Preproc */ +pre.code .cpf, .code .codetable .cpf, .highlight pre .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +pre.code .c1, .code .codetable .c1, .highlight pre .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +pre.code .cs, .code .codetable .cs, .highlight pre .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +pre.code .gd, .code .codetable .gd, .highlight pre .gd { color: #A00000 } /* Generic.Deleted */ +pre.code .ge, .code .codetable .ge, .highlight pre .ge { font-style: italic } /* Generic.Emph */ +pre.code .ges, .code .codetable .ges, .highlight pre .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +pre.code .gr, .code .codetable .gr, .highlight pre .gr { color: #E40000 } /* Generic.Error */ +pre.code .gh, .code .codetable .gh, .highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre.code .gi, .code .codetable .gi, .highlight pre .gi { color: #008400 } /* Generic.Inserted */ +pre.code .go, .code .codetable .go, .highlight pre .go { color: #717171 } /* Generic.Output */ +pre.code .gp, .code .codetable .gp, .highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre.code .gs, .code .codetable .gs, .highlight pre .gs { font-weight: bold } /* Generic.Strong */ +pre.code .gu, .code .codetable .gu, .highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre.code .gt, .code .codetable .gt, .highlight pre .gt { color: #0044DD } /* Generic.Traceback */ +pre.code .kc, .code .codetable .kc, .highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre.code .kd, .code .codetable .kd, .highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre.code .kn, .code .codetable .kn, .highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre.code .kp, .code .codetable .kp, .highlight pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre.code .kr, .code .codetable .kr, .highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre.code .kt, .code .codetable .kt, .highlight pre .kt { color: #B00040 } /* Keyword.Type */ +pre.code .m, .code .codetable .m, .highlight pre .m { color: #666666 } /* Literal.Number */ +pre.code .s, .code .codetable .s, .highlight pre .s { color: #BA2121 } /* Literal.String */ +pre.code .na, .code .codetable .na, .highlight pre .na { color: #687822 } /* Name.Attribute */ +pre.code .nb, .code .codetable .nb, .highlight pre .nb { color: #008000 } /* Name.Builtin */ +pre.code .nc, .code .codetable .nc, .highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre.code .no, .code .codetable .no, .highlight pre .no { color: #880000 } /* Name.Constant */ +pre.code .nd, .code .codetable .nd, .highlight pre .nd { color: #AA22FF } /* Name.Decorator */ +pre.code .ni, .code .codetable .ni, .highlight pre .ni { color: #717171; font-weight: bold } /* Name.Entity */ +pre.code .ne, .code .codetable .ne, .highlight pre .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +pre.code .nf, .code .codetable .nf, .highlight pre .nf { color: #0000FF } /* Name.Function */ +pre.code .nl, .code .codetable .nl, .highlight pre .nl { color: #767600 } /* Name.Label */ +pre.code .nn, .code .codetable .nn, .highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre.code .nt, .code .codetable .nt, .highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre.code .nv, .code .codetable .nv, .highlight pre .nv { color: #19177C } /* Name.Variable */ +pre.code .ow, .code .codetable .ow, .highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre.code .w, .code .codetable .w, .highlight pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre.code .mb, .code .codetable .mb, .highlight pre .mb { color: #666666 } /* Literal.Number.Bin */ +pre.code .mf, .code .codetable .mf, .highlight pre .mf { color: #666666 } /* Literal.Number.Float */ +pre.code .mh, .code .codetable .mh, .highlight pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre.code .mi, .code .codetable .mi, .highlight pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre.code .mo, .code .codetable .mo, .highlight pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre.code .sa, .code .codetable .sa, .highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */ +pre.code .sb, .code .codetable .sb, .highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre.code .sc, .code .codetable .sc, .highlight pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre.code .dl, .code .codetable .dl, .highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */ +pre.code .sd, .code .codetable .sd, .highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre.code .s2, .code .codetable .s2, .highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre.code .se, .code .codetable .se, .highlight pre .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +pre.code .sh, .code .codetable .sh, .highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre.code .si, .code .codetable .si, .highlight pre .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +pre.code .sx, .code .codetable .sx, .highlight pre .sx { color: #008000 } /* Literal.String.Other */ +pre.code .sr, .code .codetable .sr, .highlight pre .sr { color: #A45A77 } /* Literal.String.Regex */ +pre.code .s1, .code .codetable .s1, .highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre.code .ss, .code .codetable .ss, .highlight pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre.code .bp, .code .codetable .bp, .highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre.code .fm, .code .codetable .fm, .highlight pre .fm { color: #0000FF } /* Name.Function.Magic */ +pre.code .vc, .code .codetable .vc, .highlight pre .vc { color: #19177C } /* Name.Variable.Class */ +pre.code .vg, .code .codetable .vg, .highlight pre .vg { color: #19177C } /* Name.Variable.Global */ +pre.code .vi, .code .codetable .vi, .highlight pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre.code .vm, .code .codetable .vm, .highlight pre .vm { color: #19177C } /* Name.Variable.Magic */ +pre.code .il, .code .codetable .il, .highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */ +.highlight table, .highlight tr, .highlight td, .code table, .code tr, .code td { border-spacing: 0; border-collapse: separate; padding: 0 } +.highlight pre, .code pre { white-space: pre-wrap; line-height: normal } +.highlighttable td.linenos, .codetable td.linenos { vertical-align: top; padding-left: 10px; padding-right: 10px; user-select: none; -webkit-user-select: none } +.highlighttable td.linenos code:before, .codetable td.linenos code:before { content: attr(data-line-number) } +.highlighttable td.code, .codetable td.code { overflow-wrap: normal; border-collapse: collapse } +.highlighttable td.code code, .codetable td.code code { overflow: unset; border: none; padding: 0; margin: 0; white-space: pre-wrap; line-height: unset; background: none } +.highlight .lineno.nonumber, .code .lineno.nonumber { list-style: none } +table.codetable, table.highlighttable { width: 100%;} +.codetable td.linenos, td.linenos { text-align: right; width: 3.5em; padding-right: 0.5em; background: rgba(127, 127, 127, 0.2) } +.codetable td.code, td.code { padding-left: 0.5em; } /*! * @@ -4097,3 +4112,4 @@ div.text_cell_render { .ansi-white-intense-fg { color: #A1A6B2; } .ansi-white-intense-bg { background-color: #A1A6B2; } .ansi-bold { font-weight: bold; } + diff --git a/output/assets/css/all.css b/output/assets/css/all.css index 8d4189ca..30c3de66 100644 --- a/output/assets/css/all.css +++ b/output/assets/css/all.css @@ -2576,80 +2576,95 @@ pre.code { margin-top: 48px; } -@import url("html4css1.css"); +@import url("rst_base.css"); @import url("nikola_rst.css"); /* code.css file generated by Nikola */ -pre.code .hll { background-color: #ffffcc } -pre.code { background: #f8f8f8; } -pre.code .c { color: #408080; font-style: italic } /* Comment */ -pre.code .err { border: 1px solid #FF0000 } /* Error */ -pre.code .k { color: #008000; font-weight: bold } /* Keyword */ -pre.code .o { color: #666666 } /* Operator */ -pre.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ -pre.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -pre.code .cp { color: #BC7A00 } /* Comment.Preproc */ -pre.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ -pre.code .c1 { color: #408080; font-style: italic } /* Comment.Single */ -pre.code .cs { color: #408080; font-style: italic } /* Comment.Special */ -pre.code .gd { color: #A00000 } /* Generic.Deleted */ -pre.code .ge { font-style: italic } /* Generic.Emph */ -pre.code .gr { color: #FF0000 } /* Generic.Error */ -pre.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -pre.code .gi { color: #00A000 } /* Generic.Inserted */ -pre.code .go { color: #888888 } /* Generic.Output */ -pre.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -pre.code .gs { font-weight: bold } /* Generic.Strong */ -pre.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -pre.code .gt { color: #0044DD } /* Generic.Traceback */ -pre.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -pre.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -pre.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -pre.code .kp { color: #008000 } /* Keyword.Pseudo */ -pre.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -pre.code .kt { color: #B00040 } /* Keyword.Type */ -pre.code .m { color: #666666 } /* Literal.Number */ -pre.code .s { color: #BA2121 } /* Literal.String */ -pre.code .na { color: #7D9029 } /* Name.Attribute */ -pre.code .nb { color: #008000 } /* Name.Builtin */ -pre.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -pre.code .no { color: #880000 } /* Name.Constant */ -pre.code .nd { color: #AA22FF } /* Name.Decorator */ -pre.code .ni { color: #999999; font-weight: bold } /* Name.Entity */ -pre.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -pre.code .nf { color: #0000FF } /* Name.Function */ -pre.code .nl { color: #A0A000 } /* Name.Label */ -pre.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -pre.code .nt { color: #008000; font-weight: bold } /* Name.Tag */ -pre.code .nv { color: #19177C } /* Name.Variable */ -pre.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -pre.code .w { color: #bbbbbb } /* Text.Whitespace */ -pre.code .mb { color: #666666 } /* Literal.Number.Bin */ -pre.code .mf { color: #666666 } /* Literal.Number.Float */ -pre.code .mh { color: #666666 } /* Literal.Number.Hex */ -pre.code .mi { color: #666666 } /* Literal.Number.Integer */ -pre.code .mo { color: #666666 } /* Literal.Number.Oct */ -pre.code .sa { color: #BA2121 } /* Literal.String.Affix */ -pre.code .sb { color: #BA2121 } /* Literal.String.Backtick */ -pre.code .sc { color: #BA2121 } /* Literal.String.Char */ -pre.code .dl { color: #BA2121 } /* Literal.String.Delimiter */ -pre.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -pre.code .s2 { color: #BA2121 } /* Literal.String.Double */ -pre.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -pre.code .sh { color: #BA2121 } /* Literal.String.Heredoc */ -pre.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -pre.code .sx { color: #008000 } /* Literal.String.Other */ -pre.code .sr { color: #BB6688 } /* Literal.String.Regex */ -pre.code .s1 { color: #BA2121 } /* Literal.String.Single */ -pre.code .ss { color: #19177C } /* Literal.String.Symbol */ -pre.code .bp { color: #008000 } /* Name.Builtin.Pseudo */ -pre.code .fm { color: #0000FF } /* Name.Function.Magic */ -pre.code .vc { color: #19177C } /* Name.Variable.Class */ -pre.code .vg { color: #19177C } /* Name.Variable.Global */ -pre.code .vi { color: #19177C } /* Name.Variable.Instance */ -pre.code .vm { color: #19177C } /* Name.Variable.Magic */ -pre.code .il { color: #666666 } /* Literal.Number.Integer.Long */ -table.codetable { width: 100%;} td.linenos {text-align: right; width: 4em;} +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +pre.code .hll, .code .codetable .hll, .highlight pre .hll { background-color: #ffffcc } +pre.code , .code .codetable , .highlight pre { background: #f8f8f8; } +pre.code .c, .code .codetable .c, .highlight pre .c { color: #3D7B7B; font-style: italic } /* Comment */ +pre.code .err, .code .codetable .err, .highlight pre .err { border: 1px solid #FF0000 } /* Error */ +pre.code .k, .code .codetable .k, .highlight pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre.code .o, .code .codetable .o, .highlight pre .o { color: #666666 } /* Operator */ +pre.code .ch, .code .codetable .ch, .highlight pre .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +pre.code .cm, .code .codetable .cm, .highlight pre .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +pre.code .cp, .code .codetable .cp, .highlight pre .cp { color: #9C6500 } /* Comment.Preproc */ +pre.code .cpf, .code .codetable .cpf, .highlight pre .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +pre.code .c1, .code .codetable .c1, .highlight pre .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +pre.code .cs, .code .codetable .cs, .highlight pre .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +pre.code .gd, .code .codetable .gd, .highlight pre .gd { color: #A00000 } /* Generic.Deleted */ +pre.code .ge, .code .codetable .ge, .highlight pre .ge { font-style: italic } /* Generic.Emph */ +pre.code .ges, .code .codetable .ges, .highlight pre .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +pre.code .gr, .code .codetable .gr, .highlight pre .gr { color: #E40000 } /* Generic.Error */ +pre.code .gh, .code .codetable .gh, .highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre.code .gi, .code .codetable .gi, .highlight pre .gi { color: #008400 } /* Generic.Inserted */ +pre.code .go, .code .codetable .go, .highlight pre .go { color: #717171 } /* Generic.Output */ +pre.code .gp, .code .codetable .gp, .highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre.code .gs, .code .codetable .gs, .highlight pre .gs { font-weight: bold } /* Generic.Strong */ +pre.code .gu, .code .codetable .gu, .highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre.code .gt, .code .codetable .gt, .highlight pre .gt { color: #0044DD } /* Generic.Traceback */ +pre.code .kc, .code .codetable .kc, .highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre.code .kd, .code .codetable .kd, .highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre.code .kn, .code .codetable .kn, .highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre.code .kp, .code .codetable .kp, .highlight pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre.code .kr, .code .codetable .kr, .highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre.code .kt, .code .codetable .kt, .highlight pre .kt { color: #B00040 } /* Keyword.Type */ +pre.code .m, .code .codetable .m, .highlight pre .m { color: #666666 } /* Literal.Number */ +pre.code .s, .code .codetable .s, .highlight pre .s { color: #BA2121 } /* Literal.String */ +pre.code .na, .code .codetable .na, .highlight pre .na { color: #687822 } /* Name.Attribute */ +pre.code .nb, .code .codetable .nb, .highlight pre .nb { color: #008000 } /* Name.Builtin */ +pre.code .nc, .code .codetable .nc, .highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre.code .no, .code .codetable .no, .highlight pre .no { color: #880000 } /* Name.Constant */ +pre.code .nd, .code .codetable .nd, .highlight pre .nd { color: #AA22FF } /* Name.Decorator */ +pre.code .ni, .code .codetable .ni, .highlight pre .ni { color: #717171; font-weight: bold } /* Name.Entity */ +pre.code .ne, .code .codetable .ne, .highlight pre .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +pre.code .nf, .code .codetable .nf, .highlight pre .nf { color: #0000FF } /* Name.Function */ +pre.code .nl, .code .codetable .nl, .highlight pre .nl { color: #767600 } /* Name.Label */ +pre.code .nn, .code .codetable .nn, .highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre.code .nt, .code .codetable .nt, .highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre.code .nv, .code .codetable .nv, .highlight pre .nv { color: #19177C } /* Name.Variable */ +pre.code .ow, .code .codetable .ow, .highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre.code .w, .code .codetable .w, .highlight pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre.code .mb, .code .codetable .mb, .highlight pre .mb { color: #666666 } /* Literal.Number.Bin */ +pre.code .mf, .code .codetable .mf, .highlight pre .mf { color: #666666 } /* Literal.Number.Float */ +pre.code .mh, .code .codetable .mh, .highlight pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre.code .mi, .code .codetable .mi, .highlight pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre.code .mo, .code .codetable .mo, .highlight pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre.code .sa, .code .codetable .sa, .highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */ +pre.code .sb, .code .codetable .sb, .highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre.code .sc, .code .codetable .sc, .highlight pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre.code .dl, .code .codetable .dl, .highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */ +pre.code .sd, .code .codetable .sd, .highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre.code .s2, .code .codetable .s2, .highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre.code .se, .code .codetable .se, .highlight pre .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +pre.code .sh, .code .codetable .sh, .highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre.code .si, .code .codetable .si, .highlight pre .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +pre.code .sx, .code .codetable .sx, .highlight pre .sx { color: #008000 } /* Literal.String.Other */ +pre.code .sr, .code .codetable .sr, .highlight pre .sr { color: #A45A77 } /* Literal.String.Regex */ +pre.code .s1, .code .codetable .s1, .highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre.code .ss, .code .codetable .ss, .highlight pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre.code .bp, .code .codetable .bp, .highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre.code .fm, .code .codetable .fm, .highlight pre .fm { color: #0000FF } /* Name.Function.Magic */ +pre.code .vc, .code .codetable .vc, .highlight pre .vc { color: #19177C } /* Name.Variable.Class */ +pre.code .vg, .code .codetable .vg, .highlight pre .vg { color: #19177C } /* Name.Variable.Global */ +pre.code .vi, .code .codetable .vi, .highlight pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre.code .vm, .code .codetable .vm, .highlight pre .vm { color: #19177C } /* Name.Variable.Magic */ +pre.code .il, .code .codetable .il, .highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */ +.highlight table, .highlight tr, .highlight td, .code table, .code tr, .code td { border-spacing: 0; border-collapse: separate; padding: 0 } +.highlight pre, .code pre { white-space: pre-wrap; line-height: normal } +.highlighttable td.linenos, .codetable td.linenos { vertical-align: top; padding-left: 10px; padding-right: 10px; user-select: none; -webkit-user-select: none } +.highlighttable td.linenos code:before, .codetable td.linenos code:before { content: attr(data-line-number) } +.highlighttable td.code, .codetable td.code { overflow-wrap: normal; border-collapse: collapse } +.highlighttable td.code code, .codetable td.code code { overflow: unset; border: none; padding: 0; margin: 0; white-space: pre-wrap; line-height: unset; background: none } +.highlight .lineno.nonumber, .code .lineno.nonumber { list-style: none } +table.codetable, table.highlighttable { width: 100%;} +.codetable td.linenos, td.linenos { text-align: right; width: 3.5em; padding-right: 0.5em; background: rgba(127, 127, 127, 0.2) } +.codetable td.code, td.code { padding-left: 0.5em; } /*! * @@ -4075,3 +4090,4 @@ div.text_cell_render { .ansi-white-intense-fg { color: #A1A6B2; } .ansi-white-intense-bg { background-color: #A1A6B2; } .ansi-bold { font-weight: bold; } + diff --git a/output/assets/css/baguetteBox.css b/output/assets/css/baguetteBox.css deleted file mode 100644 index 5f5bac2a..00000000 --- a/output/assets/css/baguetteBox.css +++ /dev/null @@ -1,197 +0,0 @@ -/*! - * baguetteBox.js - * @author feimosi - * @version 1.8.2 - * @url https://github.com/feimosi/baguetteBox.js - */ -#baguetteBox-overlay { - display: none; - opacity: 0; - position: fixed; - overflow: hidden; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1000000; - background-color: #222; - background-color: rgba(0, 0, 0, 0.8); - -webkit-transition: opacity .5s ease; - transition: opacity .5s ease; } - #baguetteBox-overlay.visible { - opacity: 1; } - #baguetteBox-overlay .full-image { - display: inline-block; - position: relative; - width: 100%; - height: 100%; - text-align: center; } - #baguetteBox-overlay .full-image figure { - display: inline; - margin: 0; - height: 100%; } - #baguetteBox-overlay .full-image img { - display: inline-block; - width: auto; - height: auto; - max-height: 100%; - max-width: 100%; - vertical-align: middle; - -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); } - #baguetteBox-overlay .full-image figcaption { - display: block; - position: absolute; - bottom: 0; - width: 100%; - text-align: center; - line-height: 1.8; - white-space: normal; - color: #ccc; - background-color: #000; - background-color: rgba(0, 0, 0, 0.6); - font-family: sans-serif; } - #baguetteBox-overlay .full-image:before { - content: ""; - display: inline-block; - height: 50%; - width: 1px; - margin-right: -1px; } - -#baguetteBox-slider { - position: absolute; - left: 0; - top: 0; - height: 100%; - width: 100%; - white-space: nowrap; - -webkit-transition: left .4s ease, -webkit-transform .4s ease; - transition: left .4s ease, -webkit-transform .4s ease; - transition: left .4s ease, transform .4s ease; - transition: left .4s ease, transform .4s ease, -webkit-transform .4s ease, -moz-transform .4s ease; } - #baguetteBox-slider.bounce-from-right { - -webkit-animation: bounceFromRight .4s ease-out; - animation: bounceFromRight .4s ease-out; } - #baguetteBox-slider.bounce-from-left { - -webkit-animation: bounceFromLeft .4s ease-out; - animation: bounceFromLeft .4s ease-out; } - -@-webkit-keyframes bounceFromRight { - 0% { - margin-left: 0; } - 50% { - margin-left: -30px; } - 100% { - margin-left: 0; } } - -@keyframes bounceFromRight { - 0% { - margin-left: 0; } - 50% { - margin-left: -30px; } - 100% { - margin-left: 0; } } - -@-webkit-keyframes bounceFromLeft { - 0% { - margin-left: 0; } - 50% { - margin-left: 30px; } - 100% { - margin-left: 0; } } - -@keyframes bounceFromLeft { - 0% { - margin-left: 0; } - 50% { - margin-left: 30px; } - 100% { - margin-left: 0; } } - -.baguetteBox-button#next-button, .baguetteBox-button#previous-button { - top: 50%; - top: calc(50% - 30px); - width: 44px; - height: 60px; } - -.baguetteBox-button { - position: absolute; - cursor: pointer; - outline: none; - padding: 0; - margin: 0; - border: 0; - -moz-border-radius: 15%; - border-radius: 15%; - background-color: #323232; - background-color: rgba(50, 50, 50, 0.5); - color: #ddd; - font: 1.6em sans-serif; - -webkit-transition: background-color .4s ease; - transition: background-color .4s ease; } - .baguetteBox-button:focus, .baguetteBox-button:hover { - background-color: rgba(50, 50, 50, 0.9); } - .baguetteBox-button#next-button { - right: 2%; } - .baguetteBox-button#previous-button { - left: 2%; } - .baguetteBox-button#close-button { - top: 20px; - right: 2%; - right: calc(2% + 6px); - width: 30px; - height: 30px; } - .baguetteBox-button svg { - position: absolute; - left: 0; - top: 0; } - -/* - Preloader - Borrowed from http://tobiasahlin.com/spinkit/ -*/ -.baguetteBox-spinner { - width: 40px; - height: 40px; - display: inline-block; - position: absolute; - top: 50%; - left: 50%; - margin-top: -20px; - margin-left: -20px; } - -.baguetteBox-double-bounce1, -.baguetteBox-double-bounce2 { - width: 100%; - height: 100%; - -moz-border-radius: 50%; - border-radius: 50%; - background-color: #fff; - opacity: .6; - position: absolute; - top: 0; - left: 0; - -webkit-animation: bounce 2s infinite ease-in-out; - animation: bounce 2s infinite ease-in-out; } - -.baguetteBox-double-bounce2 { - -webkit-animation-delay: -1s; - animation-delay: -1s; } - -@-webkit-keyframes bounce { - 0%, 100% { - -webkit-transform: scale(0); - transform: scale(0); } - 50% { - -webkit-transform: scale(1); - transform: scale(1); } } - -@keyframes bounce { - 0%, 100% { - -webkit-transform: scale(0); - -moz-transform: scale(0); - transform: scale(0); } - 50% { - -webkit-transform: scale(1); - -moz-transform: scale(1); - transform: scale(1); } } diff --git a/output/assets/css/baguetteBox.min.css b/output/assets/css/baguetteBox.min.css index 9aa79bef..f1c5ca91 100644 --- a/output/assets/css/baguetteBox.min.css +++ b/output/assets/css/baguetteBox.min.css @@ -1,6 +1,6 @@ /*! * baguetteBox.js * @author feimosi - * @version 1.8.2 + * @version 1.11.1 * @url https://github.com/feimosi/baguetteBox.js - */#baguetteBox-overlay{display:none;opacity:0;position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;z-index:1000000;background-color:#222;background-color:rgba(0,0,0,.8);-webkit-transition:opacity .5s ease;transition:opacity .5s ease}#baguetteBox-overlay.visible{opacity:1}#baguetteBox-overlay .full-image{display:inline-block;position:relative;width:100%;height:100%;text-align:center}#baguetteBox-overlay .full-image figure{display:inline;margin:0;height:100%}#baguetteBox-overlay .full-image img{display:inline-block;width:auto;height:auto;max-height:100%;max-width:100%;vertical-align:middle;-moz-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6)}#baguetteBox-overlay .full-image figcaption{display:block;position:absolute;bottom:0;width:100%;text-align:center;line-height:1.8;white-space:normal;color:#ccc;background-color:#000;background-color:rgba(0,0,0,.6);font-family:sans-serif}#baguetteBox-overlay .full-image:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}#baguetteBox-slider{position:absolute;left:0;top:0;height:100%;width:100%;white-space:nowrap;-webkit-transition:left .4s ease,-webkit-transform .4s ease;transition:left .4s ease,-webkit-transform .4s ease;transition:left .4s ease,transform .4s ease;transition:left .4s ease,transform .4s ease,-webkit-transform .4s ease,-moz-transform .4s ease}#baguetteBox-slider.bounce-from-right{-webkit-animation:bounceFromRight .4s ease-out;animation:bounceFromRight .4s ease-out}#baguetteBox-slider.bounce-from-left{-webkit-animation:bounceFromLeft .4s ease-out;animation:bounceFromLeft .4s ease-out}@-webkit-keyframes bounceFromRight{0%,100%{margin-left:0}50%{margin-left:-30px}}@keyframes bounceFromRight{0%,100%{margin-left:0}50%{margin-left:-30px}}@-webkit-keyframes bounceFromLeft{0%,100%{margin-left:0}50%{margin-left:30px}}@keyframes bounceFromLeft{0%,100%{margin-left:0}50%{margin-left:30px}}.baguetteBox-button#next-button,.baguetteBox-button#previous-button{top:50%;top:calc(50% - 30px);width:44px;height:60px}.baguetteBox-button{position:absolute;cursor:pointer;outline:0;padding:0;margin:0;border:0;-moz-border-radius:15%;border-radius:15%;background-color:#323232;background-color:rgba(50,50,50,.5);color:#ddd;font:1.6em sans-serif;-webkit-transition:background-color .4s ease;transition:background-color .4s ease}.baguetteBox-button:focus,.baguetteBox-button:hover{background-color:rgba(50,50,50,.9)}.baguetteBox-button#next-button{right:2%}.baguetteBox-button#previous-button{left:2%}.baguetteBox-button#close-button{top:20px;right:2%;right:calc(2% + 6px);width:30px;height:30px}.baguetteBox-button svg{position:absolute;left:0;top:0}.baguetteBox-spinner{width:40px;height:40px;display:inline-block;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px}.baguetteBox-double-bounce1,.baguetteBox-double-bounce2{width:100%;height:100%;-moz-border-radius:50%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:bounce 2s infinite ease-in-out;animation:bounce 2s infinite ease-in-out}.baguetteBox-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes bounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounce{0%,100%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}} \ No newline at end of file + */#baguetteBox-overlay{display:none;opacity:0;position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;z-index:1000000;background-color:#222;background-color:rgba(0,0,0,.8);-webkit-transition:opacity .5s ease;transition:opacity .5s ease}#baguetteBox-overlay.visible{opacity:1}#baguetteBox-overlay .full-image{display:inline-block;position:relative;width:100%;height:100%;text-align:center}#baguetteBox-overlay .full-image figure{display:inline;margin:0;height:100%}#baguetteBox-overlay .full-image img{display:inline-block;width:auto;height:auto;max-height:100%;max-width:100%;vertical-align:middle;-webkit-box-shadow:0 0 8px rgba(0,0,0,.6);-moz-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6)}#baguetteBox-overlay .full-image figcaption{display:block;position:absolute;bottom:0;width:100%;text-align:center;line-height:1.8;white-space:normal;color:#ccc;background-color:#000;background-color:rgba(0,0,0,.6);font-family:sans-serif}#baguetteBox-overlay .full-image:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}#baguetteBox-slider{position:absolute;left:0;top:0;height:100%;width:100%;white-space:nowrap;-webkit-transition:left .4s ease,-webkit-transform .4s ease;transition:left .4s ease,-webkit-transform .4s ease;transition:left .4s ease,transform .4s ease;transition:left .4s ease,transform .4s ease,-webkit-transform .4s ease,-moz-transform .4s ease}#baguetteBox-slider.bounce-from-right{-webkit-animation:bounceFromRight .4s ease-out;animation:bounceFromRight .4s ease-out}#baguetteBox-slider.bounce-from-left{-webkit-animation:bounceFromLeft .4s ease-out;animation:bounceFromLeft .4s ease-out}@-webkit-keyframes bounceFromRight{0%,100%{margin-left:0}50%{margin-left:-30px}}@keyframes bounceFromRight{0%,100%{margin-left:0}50%{margin-left:-30px}}@-webkit-keyframes bounceFromLeft{0%,100%{margin-left:0}50%{margin-left:30px}}@keyframes bounceFromLeft{0%,100%{margin-left:0}50%{margin-left:30px}}.baguetteBox-button#next-button,.baguetteBox-button#previous-button{top:50%;top:calc(50% - 30px);width:44px;height:60px}.baguetteBox-button{position:absolute;cursor:pointer;outline:0;padding:0;margin:0;border:0;-moz-border-radius:15%;border-radius:15%;background-color:#323232;background-color:rgba(50,50,50,.5);color:#ddd;font:1.6em sans-serif;-webkit-transition:background-color .4s ease;transition:background-color .4s ease}.baguetteBox-button:focus,.baguetteBox-button:hover{background-color:rgba(50,50,50,.9)}.baguetteBox-button#next-button{right:2%}.baguetteBox-button#previous-button{left:2%}.baguetteBox-button#close-button{top:20px;right:2%;right:calc(2% + 6px);width:30px;height:30px}.baguetteBox-button svg{position:absolute;left:0;top:0}.baguetteBox-spinner{width:40px;height:40px;display:inline-block;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px}.baguetteBox-double-bounce1,.baguetteBox-double-bounce2{width:100%;height:100%;-moz-border-radius:50%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:bounce 2s infinite ease-in-out;animation:bounce 2s infinite ease-in-out}.baguetteBox-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes bounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounce{0%,100%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}} \ No newline at end of file diff --git a/output/assets/css/code.css b/output/assets/css/code.css index 3c16d389..fc470e48 100644 --- a/output/assets/css/code.css +++ b/output/assets/css/code.css @@ -1,71 +1,86 @@ /* code.css file generated by Nikola */ -pre.code .hll { background-color: #ffffcc } -pre.code { background: #f8f8f8; } -pre.code .c { color: #408080; font-style: italic } /* Comment */ -pre.code .err { border: 1px solid #FF0000 } /* Error */ -pre.code .k { color: #008000; font-weight: bold } /* Keyword */ -pre.code .o { color: #666666 } /* Operator */ -pre.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ -pre.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -pre.code .cp { color: #BC7A00 } /* Comment.Preproc */ -pre.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ -pre.code .c1 { color: #408080; font-style: italic } /* Comment.Single */ -pre.code .cs { color: #408080; font-style: italic } /* Comment.Special */ -pre.code .gd { color: #A00000 } /* Generic.Deleted */ -pre.code .ge { font-style: italic } /* Generic.Emph */ -pre.code .gr { color: #FF0000 } /* Generic.Error */ -pre.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -pre.code .gi { color: #00A000 } /* Generic.Inserted */ -pre.code .go { color: #888888 } /* Generic.Output */ -pre.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -pre.code .gs { font-weight: bold } /* Generic.Strong */ -pre.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -pre.code .gt { color: #0044DD } /* Generic.Traceback */ -pre.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -pre.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -pre.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -pre.code .kp { color: #008000 } /* Keyword.Pseudo */ -pre.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -pre.code .kt { color: #B00040 } /* Keyword.Type */ -pre.code .m { color: #666666 } /* Literal.Number */ -pre.code .s { color: #BA2121 } /* Literal.String */ -pre.code .na { color: #7D9029 } /* Name.Attribute */ -pre.code .nb { color: #008000 } /* Name.Builtin */ -pre.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -pre.code .no { color: #880000 } /* Name.Constant */ -pre.code .nd { color: #AA22FF } /* Name.Decorator */ -pre.code .ni { color: #999999; font-weight: bold } /* Name.Entity */ -pre.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -pre.code .nf { color: #0000FF } /* Name.Function */ -pre.code .nl { color: #A0A000 } /* Name.Label */ -pre.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -pre.code .nt { color: #008000; font-weight: bold } /* Name.Tag */ -pre.code .nv { color: #19177C } /* Name.Variable */ -pre.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -pre.code .w { color: #bbbbbb } /* Text.Whitespace */ -pre.code .mb { color: #666666 } /* Literal.Number.Bin */ -pre.code .mf { color: #666666 } /* Literal.Number.Float */ -pre.code .mh { color: #666666 } /* Literal.Number.Hex */ -pre.code .mi { color: #666666 } /* Literal.Number.Integer */ -pre.code .mo { color: #666666 } /* Literal.Number.Oct */ -pre.code .sa { color: #BA2121 } /* Literal.String.Affix */ -pre.code .sb { color: #BA2121 } /* Literal.String.Backtick */ -pre.code .sc { color: #BA2121 } /* Literal.String.Char */ -pre.code .dl { color: #BA2121 } /* Literal.String.Delimiter */ -pre.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -pre.code .s2 { color: #BA2121 } /* Literal.String.Double */ -pre.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -pre.code .sh { color: #BA2121 } /* Literal.String.Heredoc */ -pre.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -pre.code .sx { color: #008000 } /* Literal.String.Other */ -pre.code .sr { color: #BB6688 } /* Literal.String.Regex */ -pre.code .s1 { color: #BA2121 } /* Literal.String.Single */ -pre.code .ss { color: #19177C } /* Literal.String.Symbol */ -pre.code .bp { color: #008000 } /* Name.Builtin.Pseudo */ -pre.code .fm { color: #0000FF } /* Name.Function.Magic */ -pre.code .vc { color: #19177C } /* Name.Variable.Class */ -pre.code .vg { color: #19177C } /* Name.Variable.Global */ -pre.code .vi { color: #19177C } /* Name.Variable.Instance */ -pre.code .vm { color: #19177C } /* Name.Variable.Magic */ -pre.code .il { color: #666666 } /* Literal.Number.Integer.Long */ -table.codetable { width: 100%;} td.linenos {text-align: right; width: 4em;} +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +pre.code .hll, .code .codetable .hll, .highlight pre .hll { background-color: #ffffcc } +pre.code , .code .codetable , .highlight pre { background: #f8f8f8; } +pre.code .c, .code .codetable .c, .highlight pre .c { color: #3D7B7B; font-style: italic } /* Comment */ +pre.code .err, .code .codetable .err, .highlight pre .err { border: 1px solid #FF0000 } /* Error */ +pre.code .k, .code .codetable .k, .highlight pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre.code .o, .code .codetable .o, .highlight pre .o { color: #666666 } /* Operator */ +pre.code .ch, .code .codetable .ch, .highlight pre .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +pre.code .cm, .code .codetable .cm, .highlight pre .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +pre.code .cp, .code .codetable .cp, .highlight pre .cp { color: #9C6500 } /* Comment.Preproc */ +pre.code .cpf, .code .codetable .cpf, .highlight pre .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +pre.code .c1, .code .codetable .c1, .highlight pre .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +pre.code .cs, .code .codetable .cs, .highlight pre .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +pre.code .gd, .code .codetable .gd, .highlight pre .gd { color: #A00000 } /* Generic.Deleted */ +pre.code .ge, .code .codetable .ge, .highlight pre .ge { font-style: italic } /* Generic.Emph */ +pre.code .ges, .code .codetable .ges, .highlight pre .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +pre.code .gr, .code .codetable .gr, .highlight pre .gr { color: #E40000 } /* Generic.Error */ +pre.code .gh, .code .codetable .gh, .highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre.code .gi, .code .codetable .gi, .highlight pre .gi { color: #008400 } /* Generic.Inserted */ +pre.code .go, .code .codetable .go, .highlight pre .go { color: #717171 } /* Generic.Output */ +pre.code .gp, .code .codetable .gp, .highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre.code .gs, .code .codetable .gs, .highlight pre .gs { font-weight: bold } /* Generic.Strong */ +pre.code .gu, .code .codetable .gu, .highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre.code .gt, .code .codetable .gt, .highlight pre .gt { color: #0044DD } /* Generic.Traceback */ +pre.code .kc, .code .codetable .kc, .highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre.code .kd, .code .codetable .kd, .highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre.code .kn, .code .codetable .kn, .highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre.code .kp, .code .codetable .kp, .highlight pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre.code .kr, .code .codetable .kr, .highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre.code .kt, .code .codetable .kt, .highlight pre .kt { color: #B00040 } /* Keyword.Type */ +pre.code .m, .code .codetable .m, .highlight pre .m { color: #666666 } /* Literal.Number */ +pre.code .s, .code .codetable .s, .highlight pre .s { color: #BA2121 } /* Literal.String */ +pre.code .na, .code .codetable .na, .highlight pre .na { color: #687822 } /* Name.Attribute */ +pre.code .nb, .code .codetable .nb, .highlight pre .nb { color: #008000 } /* Name.Builtin */ +pre.code .nc, .code .codetable .nc, .highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre.code .no, .code .codetable .no, .highlight pre .no { color: #880000 } /* Name.Constant */ +pre.code .nd, .code .codetable .nd, .highlight pre .nd { color: #AA22FF } /* Name.Decorator */ +pre.code .ni, .code .codetable .ni, .highlight pre .ni { color: #717171; font-weight: bold } /* Name.Entity */ +pre.code .ne, .code .codetable .ne, .highlight pre .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +pre.code .nf, .code .codetable .nf, .highlight pre .nf { color: #0000FF } /* Name.Function */ +pre.code .nl, .code .codetable .nl, .highlight pre .nl { color: #767600 } /* Name.Label */ +pre.code .nn, .code .codetable .nn, .highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre.code .nt, .code .codetable .nt, .highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre.code .nv, .code .codetable .nv, .highlight pre .nv { color: #19177C } /* Name.Variable */ +pre.code .ow, .code .codetable .ow, .highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre.code .w, .code .codetable .w, .highlight pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre.code .mb, .code .codetable .mb, .highlight pre .mb { color: #666666 } /* Literal.Number.Bin */ +pre.code .mf, .code .codetable .mf, .highlight pre .mf { color: #666666 } /* Literal.Number.Float */ +pre.code .mh, .code .codetable .mh, .highlight pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre.code .mi, .code .codetable .mi, .highlight pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre.code .mo, .code .codetable .mo, .highlight pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre.code .sa, .code .codetable .sa, .highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */ +pre.code .sb, .code .codetable .sb, .highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre.code .sc, .code .codetable .sc, .highlight pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre.code .dl, .code .codetable .dl, .highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */ +pre.code .sd, .code .codetable .sd, .highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre.code .s2, .code .codetable .s2, .highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre.code .se, .code .codetable .se, .highlight pre .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +pre.code .sh, .code .codetable .sh, .highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre.code .si, .code .codetable .si, .highlight pre .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +pre.code .sx, .code .codetable .sx, .highlight pre .sx { color: #008000 } /* Literal.String.Other */ +pre.code .sr, .code .codetable .sr, .highlight pre .sr { color: #A45A77 } /* Literal.String.Regex */ +pre.code .s1, .code .codetable .s1, .highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre.code .ss, .code .codetable .ss, .highlight pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre.code .bp, .code .codetable .bp, .highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre.code .fm, .code .codetable .fm, .highlight pre .fm { color: #0000FF } /* Name.Function.Magic */ +pre.code .vc, .code .codetable .vc, .highlight pre .vc { color: #19177C } /* Name.Variable.Class */ +pre.code .vg, .code .codetable .vg, .highlight pre .vg { color: #19177C } /* Name.Variable.Global */ +pre.code .vi, .code .codetable .vi, .highlight pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre.code .vm, .code .codetable .vm, .highlight pre .vm { color: #19177C } /* Name.Variable.Magic */ +pre.code .il, .code .codetable .il, .highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */ +.highlight table, .highlight tr, .highlight td, .code table, .code tr, .code td { border-spacing: 0; border-collapse: separate; padding: 0 } +.highlight pre, .code pre { white-space: pre-wrap; line-height: normal } +.highlighttable td.linenos, .codetable td.linenos { vertical-align: top; padding-left: 10px; padding-right: 10px; user-select: none; -webkit-user-select: none } +.highlighttable td.linenos code:before, .codetable td.linenos code:before { content: attr(data-line-number) } +.highlighttable td.code, .codetable td.code { overflow-wrap: normal; border-collapse: collapse } +.highlighttable td.code code, .codetable td.code code { overflow: unset; border: none; padding: 0; margin: 0; white-space: pre-wrap; line-height: unset; background: none } +.highlight .lineno.nonumber, .code .lineno.nonumber { list-style: none } +table.codetable, table.highlighttable { width: 100%;} +.codetable td.linenos, td.linenos { text-align: right; width: 3.5em; padding-right: 0.5em; background: rgba(127, 127, 127, 0.2) } +.codetable td.code, td.code { padding-left: 0.5em; } diff --git a/output/assets/css/html4css1.css b/output/assets/css/html4css1.css index 427d33e1..cc293359 100644 --- a/output/assets/css/html4css1.css +++ b/output/assets/css/html4css1.css @@ -1,349 +1 @@ -/* -:Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $ -:Copyright: This stylesheet has been placed in the public domain. - -Default cascading style sheet for the HTML output of Docutils. - -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to -customize this style sheet. -*/ - -/* used to remove borders from tables and images */ -.borderless, table.borderless td, table.borderless th { - border: 0 } - -table.borderless td, table.borderless th { - /* Override padding for "table.docutils td" with "! important". - The right padding separates the table cells. */ - padding: 0 0.5em 0 0 ! important } - -.first { - /* Override more specific margin styles with "! important". */ - margin-top: 0 ! important } - -.last, .with-subtitle { - margin-bottom: 0 ! important } - -.hidden { - display: none } - -.subscript { - vertical-align: sub; - font-size: smaller } - -.superscript { - vertical-align: super; - font-size: smaller } - -a.toc-backref { - text-decoration: none ; - color: black } - -blockquote.epigraph { - margin: 2em 5em ; } - -dl.docutils dd { - margin-bottom: 0.5em } - -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { - overflow: hidden; -} - -/* Uncomment (and remove this text!) to get bold-faced definition list terms -dl.docutils dt { - font-weight: bold } -*/ - -div.abstract { - margin: 2em 5em } - -div.abstract p.topic-title { - font-weight: bold ; - text-align: center } - -div.admonition, div.attention, div.caution, div.danger, div.error, -div.hint, div.important, div.note, div.tip, div.warning { - margin: 2em ; - border: medium outset ; - padding: 1em } - -div.admonition p.admonition-title, div.hint p.admonition-title, -div.important p.admonition-title, div.note p.admonition-title, -div.tip p.admonition-title { - font-weight: bold ; - font-family: sans-serif } - -div.attention p.admonition-title, div.caution p.admonition-title, -div.danger p.admonition-title, div.error p.admonition-title, -div.warning p.admonition-title, .code .error { - color: red ; - font-weight: bold ; - font-family: sans-serif } - -/* Uncomment (and remove this text!) to get reduced vertical space in - compound paragraphs. -div.compound .compound-first, div.compound .compound-middle { - margin-bottom: 0.5em } - -div.compound .compound-last, div.compound .compound-middle { - margin-top: 0.5em } -*/ - -div.dedication { - margin: 2em 5em ; - text-align: center ; - font-style: italic } - -div.dedication p.topic-title { - font-weight: bold ; - font-style: normal } - -div.figure { - margin-left: 2em ; - margin-right: 2em } - -div.footer, div.header { - clear: both; - font-size: smaller } - -div.line-block { - display: block ; - margin-top: 1em ; - margin-bottom: 1em } - -div.line-block div.line-block { - margin-top: 0 ; - margin-bottom: 0 ; - margin-left: 1.5em } - -div.sidebar { - margin: 0 0 0.5em 1em ; - border: medium outset ; - padding: 1em ; - background-color: #ffffee ; - width: 40% ; - float: right ; - clear: right } - -div.sidebar p.rubric { - font-family: sans-serif ; - font-size: medium } - -div.system-messages { - margin: 5em } - -div.system-messages h1 { - color: red } - -div.system-message { - border: medium outset ; - padding: 1em } - -div.system-message p.system-message-title { - color: red ; - font-weight: bold } - -div.topic { - margin: 2em } - -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { - margin-top: 0.4em } - -h1.title { - text-align: center } - -h2.subtitle { - text-align: center } - -hr.docutils { - width: 75% } - -img.align-left, .figure.align-left, object.align-left, table.align-left { - clear: left ; - float: left ; - margin-right: 1em } - -img.align-right, .figure.align-right, object.align-right, table.align-right { - clear: right ; - float: right ; - margin-left: 1em } - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left } - -.align-center { - clear: both ; - text-align: center } - -.align-right { - text-align: right } - -/* reset inner alignment in figures */ -div.align-right { - text-align: inherit } - -/* div.align-center * { */ -/* text-align: left } */ - -.align-top { - vertical-align: top } - -.align-middle { - vertical-align: middle } - -.align-bottom { - vertical-align: bottom } - -ol.simple, ul.simple { - margin-bottom: 1em } - -ol.arabic { - list-style: decimal } - -ol.loweralpha { - list-style: lower-alpha } - -ol.upperalpha { - list-style: upper-alpha } - -ol.lowerroman { - list-style: lower-roman } - -ol.upperroman { - list-style: upper-roman } - -p.attribution { - text-align: right ; - margin-left: 50% } - -p.caption { - font-style: italic } - -p.credits { - font-style: italic ; - font-size: smaller } - -p.label { - white-space: nowrap } - -p.rubric { - font-weight: bold ; - font-size: larger ; - color: maroon ; - text-align: center } - -p.sidebar-title { - font-family: sans-serif ; - font-weight: bold ; - font-size: larger } - -p.sidebar-subtitle { - font-family: sans-serif ; - font-weight: bold } - -p.topic-title { - font-weight: bold } - -pre.address { - margin-bottom: 0 ; - margin-top: 0 ; - font: inherit } - -pre.literal-block, pre.doctest-block, pre.math, pre.code { - margin-left: 2em ; - margin-right: 2em } - -pre.code .ln { color: grey; } /* line numbers */ -pre.code, code { background-color: #eeeeee } -pre.code .comment, code .comment { color: #5C6576 } -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } -pre.code .literal.string, code .literal.string { color: #0C5404 } -pre.code .name.builtin, code .name.builtin { color: #352B84 } -pre.code .deleted, code .deleted { background-color: #DEB0A1} -pre.code .inserted, code .inserted { background-color: #A3D289} - -span.classifier { - font-family: sans-serif ; - font-style: oblique } - -span.classifier-delimiter { - font-family: sans-serif ; - font-weight: bold } - -span.interpreted { - font-family: sans-serif } - -span.option { - white-space: nowrap } - -span.pre { - white-space: pre } - -span.problematic { - color: red } - -span.section-subtitle { - /* font-size relative to parent (h1..h6 element) */ - font-size: 80% } - -table.citation { - border-left: solid 1px gray; - margin-left: 1px } - -table.docinfo { - margin: 2em 4em } - -table.docutils { - margin-top: 0.5em ; - margin-bottom: 0.5em } - -table.footnote { - border-left: solid 1px black; - margin-left: 1px } - -table.docutils td, table.docutils th, -table.docinfo td, table.docinfo th { - padding-left: 0.5em ; - padding-right: 0.5em ; - vertical-align: top } - -table.docutils th.field-name, table.docinfo th.docinfo-name { - font-weight: bold ; - text-align: left ; - white-space: nowrap ; - padding-left: 0 } - -/* "booktabs" style (no vertical lines) */ -table.docutils.booktabs { - border: 0px; - border-top: 2px solid; - border-bottom: 2px solid; - border-collapse: collapse; -} -table.docutils.booktabs * { - border: 0px; -} -table.docutils.booktabs th { - border-bottom: thin solid; - text-align: left; -} - -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { - font-size: 100% } - -ul.auto-toc { - list-style-type: none } +@import url("rst_base.css"); diff --git a/output/assets/css/nikola_rst.css b/output/assets/css/nikola_rst.css index 3b17adcd..71a0f843 100644 --- a/output/assets/css/nikola_rst.css +++ b/output/assets/css/nikola_rst.css @@ -1,18 +1,39 @@ div.admonition, div.attention, div.caution, div.danger, div.error, -div.hint, div.important, div.note, div.tip, div.warning, div.sidebar { -/* stolen from Boostrap 3 (.panel .panel-default) */ - margin-bottom: 20px; +div.hint, div.important, div.note, div.tip, div.warning, div.sidebar, +div.system-message { +/* stolen from Boostrap 4 (.card) */ + margin-bottom: 2rem; + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - padding: 0 15px 15px 15px; + color: #212529; + background-clip: border-box; + border: 1px solid rgba(0,0,0,.125); + border-radius: .25rem; + padding: 0; } div.attention, div.caution, div.danger, div.error, div.warning { - /* stolen from Boostrap 3 (.panel .panel-danger) */ - border-color: #EBCCD1; + /* stolen from Boostrap 3 (.border-danger) */ + border-color: #dc3545!important; +} + +div.admonition p, div.hint p, +div.important p, div.note p, +div.tip p, div.sidebar p, +div.attention p, div.caution p, +div.danger p, div.error p, +div.warning p, div.system-message p { + padding-left: 1rem; + padding-right: 1rem; } div.admonition p.admonition-title, div.hint p.admonition-title, @@ -20,27 +41,39 @@ div.important p.admonition-title, div.note p.admonition-title, div.tip p.admonition-title, div.sidebar p.sidebar-title, div.attention p.admonition-title, div.caution p.admonition-title, div.danger p.admonition-title, div.error p.admonition-title, -div.warning p.admonition-title { -/* stolen from Boostrap 3 (.panel .panel-default .panel-heading) */ - font-size: 16px; - color: #333; - background-color: #F5F5F5; - padding: 10px 15px; - margin-left: -15px; - margin-right: -15px; - border-bottom: 1px solid rgba(0, 0, 0, 0); - border-top-left-radius: 3px; - border-top-right-radius: 3px; - color: #333; - background-color: #F5F5F5; - border-color: #DDD; +div.warning p.admonition-title, div.system-message p.system-message-title { +/* stolen from Boostrap 4 (.card .card-header) */ + font-weight: 400; + font-size: 1.25rem; + padding: .75rem 1.25rem; + margin-bottom: 1rem; + background-color: rgba(0,0,0,.03); + border-bottom: 1px solid rgba(0,0,0,.125); } div.attention p.admonition-title, div.caution p.admonition-title, div.danger p.admonition-title, div.error p.admonition-title, -div.warning p.admonition-title { - /* stolen from Boostrap 3 (.panel .panel-danger) */ - color: #A94442; - background-color: #F2DEDE; - border-color: #EBCCD1; +div.warning p.admonition-title, div.system-message p.system-message-title { + /* stolen from Boostrap 4 (.card .card-header .bg-danger) */ + background-color: #dc3545; + color: white; +} + +div.sidebar { + margin-right: 0; +} + +/* Improved margin overrides */ +div.topic, +pre.literal-block, +pre.doctest-block, +pre.math, +pre.code, +div.code { + margin-left: 1rem; + margin-right: 1rem; +} + +div.code { + margin-bottom: 1rem; } diff --git a/output/assets/css/rst.css b/output/assets/css/rst.css index b6b4924a..03424a8d 100644 --- a/output/assets/css/rst.css +++ b/output/assets/css/rst.css @@ -1,2 +1,2 @@ -@import url("html4css1.css"); +@import url("rst_base.css"); @import url("nikola_rst.css"); diff --git a/output/assets/css/rst_base.css b/output/assets/css/rst_base.css new file mode 100644 index 00000000..d5aa552a --- /dev/null +++ b/output/assets/css/rst_base.css @@ -0,0 +1,516 @@ +/* Minimal style sheet for the HTML output of Docutils. */ +/* */ +/* :Author: Günter Milde, based on html4css1.css by David Goodger */ +/* :Id: $Id: minimal.css 9079 2022-06-19 14:00:56Z milde $ */ +/* :Copyright: © 2015, 2021 Günter Milde. */ +/* :License: Released under the terms of the `2-Clause BSD license`_, */ +/* in short: */ +/* */ +/* Copying and distribution of this file, with or without modification, */ +/* are permitted in any medium without royalty provided the copyright */ +/* notice and this notice are preserved. */ +/* */ +/* This file is offered as-is, without any warranty. */ +/* */ +/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ + +/* This CSS3 stylesheet defines rules for Docutils elements without */ +/* HTML equivalent. It is required to make the document semantics visible. */ +/* */ +/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */ + +/* titles */ +p.topic-title, +p.admonition-title, +p.system-message-title { + font-weight: bold; +} +p.sidebar-title, +p.rubric { + font-weight: bold; + font-size: larger; +} +p.rubric { + color: maroon; +} +p.subtitle, +p.section-subtitle, +p.sidebar-subtitle { + font-weight: bold; + margin-top: -0.5em; +} +h1 + p.subtitle { + font-size: 1.6em; +} +a.toc-backref { + color: inherit; + text-decoration: none; +} + +/* Warnings, Errors */ +.system-messages h2, +.system-message-title, +span.problematic { + color: red; +} + +/* Inline Literals */ +.docutils.literal { + font-family: monospace; + white-space: pre-wrap; +} +/* do not wrap at hyphens and similar: */ +.literal > span.pre { white-space: nowrap; } + +/* Lists */ + +/* compact and simple lists: no margin between items */ +.simple li, .simple ul, .simple ol, +.compact li, .compact ul, .compact ol, +.simple > li p, dl.simple > dd, +.compact > li p, dl.compact > dd { + margin-top: 0; + margin-bottom: 0; +} +/* Nested Paragraphs +p:first-child { margin-top: 0; } +p:last-child { margin-bottom: 0; } +details > p:last-child { margin-bottom: 1em; } + */ + +/* Table of Contents */ +.contents ul.auto-toc { /* section numbers present */ + list-style-type: none; +} + +/* Enumerated Lists */ +ol.arabic { list-style: decimal } +ol.loweralpha { list-style: lower-alpha } +ol.upperalpha { list-style: upper-alpha } +ol.lowerroman { list-style: lower-roman } +ol.upperroman { list-style: upper-roman } + +/* Definition Lists and Derivatives */ +dt .classifier { font-style: italic } +dt .classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} +/* Field Lists and similar */ +/* bold field name, content starts on the same line */ +dl.field-list, +dl.option-list, +dl.docinfo, +dl.footnote, +dl.citation { + display: flow-root; +} +dl.field-list > dt, +dl.option-list > dt, +dl.docinfo > dt, +dl.footnote > dt, +dl.citation > dt { + font-weight: bold; + clear: left; + float: left; + margin: 0; + padding: 0; + padding-right: 0.2em; +} +/* Offset for field content (corresponds to the --field-name-limit option) */ +dl.field-list > dd, +dl.option-list > dd, +dl.docinfo > dd { + margin-left: 9em; /* ca. 14 chars in the test examples, fit all Docinfo fields */ +} +/* start nested lists on new line */ +dd > dl:first-child, +dd > ul:first-child, +dd > ol:first-child { + clear: left; +} +/* start field-body on a new line after long field names */ +dl.field-list > dd > *:first-child, +dl.option-list > dd > *:first-child +{ + display: inline-block; + width: 100%; + margin: 0; +} + +/* Bibliographic Fields (docinfo) */ +dl.docinfo pre.address { + font: inherit; + margin: 0.5em 0; +} +dl.docinfo > dd.authors > p { margin: 0; } + +/* Option Lists */ +dl.option-list > dt { font-weight: normal; } +span.option { white-space: nowrap; } + +/* Footnotes and Citations */ + +.footnote, .citation { margin: 1em 0; } /* default paragraph skip (Firefox) */ +/* hanging indent */ +.citation { padding-left: 2em; } +.footnote { padding-left: 1.7em; } +.footnote.superscript { padding-left: 1.0em; } +.citation > .label { margin-left: -2em; } +.footnote > .label { margin-left: -1.7em; } +.footnote.superscript > .label { margin-left: -1.0em; } + +.footnote > .label + *, +.citation > .label + * { + display: inline-block; + margin-top: 0; + vertical-align: top; +} +.footnote > .backrefs + *, +.citation > .backrefs + * { + margin-top: 0; +} +.footnote > .label + p, .footnote > .backrefs + p, +.citation > .label + p, .citation > .backrefs + p { + display: inline; + vertical-align: inherit; +} + +.backrefs { user-select: none; } +.backrefs > a { font-style: italic; } + +/* superscript footnotes */ +a[role="doc-noteref"].superscript, +.footnote.superscript > .label, +.footnote.superscript > .backrefs { + vertical-align: super; + font-size: smaller; + line-height: 1; +} +a[role="doc-noteref"].superscript > .fn-bracket, +.footnote.superscript > .label > .fn-bracket { + /* hide brackets in display but leave for copy/paste */ + display: inline-block; + width: 0; + overflow: hidden; +} +[role="doc-noteref"].superscript + [role="doc-noteref"].superscript { + padding-left: 0.15em; /* separate consecutive footnote references */ + /* TODO: unfortunately, "+" also selects with text between the references. */ +} + +/* Legacy Footnotes and Citations */ +dl.footnote.superscript > dd { margin-left: 1em; } +dl.footnote.brackets > dd { margin-left: 2em; } +dl.footnote > dt { font-weight: normal; } +dt.label > span.brackets:before { content: "["; } +dt.label > span.brackets:after { content: "]"; } +a.footnote-reference.superscript, +dl.footnote.superscript > dt.label { + vertical-align: super; + font-size: small; +} +dt.label > span.fn-backref { + margin-left: 0.2em; + font-weight: normal; +} +dt.label > span.fn-backref > a { font-style: italic; } + +/* Alignment */ +.align-left { + text-align: left; + margin-right: auto; +} +.align-center { + text-align: center; + margin-left: auto; + margin-right: auto; +} +.align-right { + text-align: right; + margin-left: auto; +} +.align-top { vertical-align: top; } +.align-middle { vertical-align: middle; } +.align-bottom { vertical-align: bottom; } + +img.align-left, img.align-center, img.align-right, +.figure.align-left, .figure.align-center, .figure.align-right, +object.align-left, object.align-center, object.align-right { + display: block; +} + +/* reset inner alignment in figures and tables */ +figure.align-left, figure.align-right, +table.align-left, table.align-center, table.align-right { + text-align: inherit; +} + +/* Text Blocks */ +.topic { margin: 1em 2em; } +.sidebar, +.admonition, +.system-message { + margin: 1em 2em; + border: thin solid; + padding: 0.5em 1em; +} +div.line-block { display: block; } +div.line-block div.line-block, pre { margin-left: 2em; } + +/* Code line numbers: dropped when copying text from the page */ +pre.code .ln { display: none; } +pre.code code:before { + content: attr(data-lineno); /* …, none) fallback not supported by any browser */ + color: gray; +} + +/* Tables */ +td > p:first-child, th > p:first-child { margin-top: 0; } +td > p, th > p { margin-bottom: 0; } + +.borderless td, .borderless th { + border: 0; + padding: 0; + padding-right: 0.5em /* separate table cells */ +} + +table > caption { + text-align: left; + margin-top: 0.2em; + margin-bottom: 0.2em; +} +table.captionbelow { + caption-side: bottom; +} + +/* CSS31_ style sheet for the output of Docutils HTML writers. */ +/* Rules for easy reading and pre-defined style variants. */ +/* */ +/* :Author: Günter Milde, based on html4css1.css by David Goodger */ +/* :Id: $Id: plain.css 9081 2022-06-19 20:23:12Z milde $ */ +/* :Copyright: © 2015 Günter Milde. */ +/* :License: Released under the terms of the `2-Clause BSD license`_, */ +/* in short: */ +/* */ +/* Copying and distribution of this file, with or without modification, */ +/* are permitted in any medium without royalty provided the copyright */ +/* notice and this notice are preserved. */ +/* */ +/* This file is offered as-is, without any warranty. */ +/* */ +/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ +/* .. _CSS3: https://www.w3.org/Style/CSS/ */ + + +/* Document Structure */ +/* ****************** */ + +/* Table of Contents */ +ul.auto-toc > li > p { + padding-left: 1em; + text-indent: -1em; +} +nav.contents ul { + padding-left: 1em; +} +main > nav.contents ul ul ul ul:not(.auto-toc) { + list-style-type: '\2B29\ '; +} +main > nav.contents ul ul ul ul ul:not(.auto-toc) { + list-style-type: '\2B1D\ '; +} + +/* Transitions */ +hr.docutils { + width: 80%; + margin-top: 1em; + margin-bottom: 1em; + clear: both; +} + +dl > dd { + margin-bottom: 0.5em; +} + +/* Lists */ +/* ===== */ + +/* Definition Lists */ +/* Indent lists nested in definition lists */ +dd > ul:only-child, dd > ol:only-child { padding-left: 1em; } + +/* Description Lists */ +/* styled like in most dictionaries, encyclopedias etc. */ +dl.description { + display: flow-root; +} +dl.description > dt { + font-weight: bold; + clear: left; + float: left; + margin: 0; + padding: 0; + padding-right: 0.3em; +} +dl.description > dd:after { + display: table; + content: ""; + clear: left; /* clearfix for empty descriptions */ +} + +/* Field Lists */ + +dl.field-list > dd, +dl.docinfo > dd { + margin-left: var(--field-indent); /* adapted in media queries or HTML */ +} + +/* example for custom field-name width */ +dl.field-list.narrow > dd { + --field-indent: 5em; +} +/* run-in: start field-body on same line after long field names */ +dl.field-list.run-in > dd p { + display: block; +} + +/* Bibliographic Fields */ + +/* generally, bibliographic fields use dl.docinfo */ +/* but dedication and abstract are placed into divs */ +div.abstract p.topic-title { + text-align: center; +} +div.dedication { + margin: 2em 5em; + text-align: center; + font-style: italic; +} +div.dedication p.topic-title { + font-style: normal; +} + +/* disclosures */ +details { padding-left: 1em; } +summary { margin-left: -1em; } + +/* Text Blocks */ +/* =========== */ + +/* Literal Blocks */ +pre.literal-block, pre.doctest-block, +pre.math, pre.code { + font-family: monospace; +} + +/* Block Quotes and Topics */ +blockquote p.attribution, +.topic p.attribution { + text-align: right; + margin-left: 20%; +} + +/* Tables */ +/* ====== */ + +/* th { vertical-align: bottom; } */ + +table tr { text-align: left; } + +/* "booktabs" style (no vertical lines) */ +table.booktabs { + border: 0; + border-top: 2px solid; + border-bottom: 2px solid; + border-collapse: collapse; +} +table.booktabs * { + border: 0; +} +table.booktabs th { + border-bottom: thin solid; +} + +/* numbered tables (counter defined in div.document) */ +table.numbered > caption:before { + counter-increment: table; + content: "Table " counter(table) ": "; + font-weight: bold; +} + +/* Explicit Markup Blocks */ +/* ====================== */ + +/* Footnotes and Citations */ +/* ----------------------- */ + +/* line on the left */ +.footnote-list { + border-left: solid thin; + padding-left: 0.25em; +} + +/* same thing for old docutils versions */ +dl.footnote { + padding-left: 1ex; + border-left: solid; + border-left-width: thin; +} + +/* Directives */ +/* ---------- */ + +/* Body Elements */ +/* ~~~~~~~~~~~~~ */ + +/* Images and Figures */ + +/* let content flow to the side of aligned images and figures */ +figure.align-left, +img.align-left, +video.align-left, +object.align-left { + clear: left; + float: left; + margin-right: 1em; +} +figure.align-right, +img.align-right, +video.align-right, +object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +/* Numbered figures */ +figure.numbered > figcaption > p:before { + counter-increment: figure; + content: "Figure " counter(figure) ": "; + font-weight: bold; +} + +/* Admonitions and System Messages */ +.caution p.admonition-title, +.attention p.admonition-title, +.danger p.admonition-title, +.error p.admonition-title, +.warning p.admonition-title, +div.error { + color: red; +} + +/* Sidebar */ +/* Move right. In a layout with fixed margins, */ +/* it can be moved into the margin. */ +aside.sidebar { + width: 30%; + max-width: 26em; + float: right; + clear: right; + margin-left: 1em; + margin-right: -1%; + background-color: #fffffa; +} diff --git a/output/assets/css/theme.css b/output/assets/css/theme.css index c9b571f4..cd09792c 100644 --- a/output/assets/css/theme.css +++ b/output/assets/css/theme.css @@ -1,7 +1,7 @@ @charset "UTF-8"; /* - Copyright © 2014-2017 Daniel Aleksandersen and others. + Copyright © 2014-2024 Daniel Aleksandersen and others. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -67,9 +67,9 @@ body { margin-right: 1.5em; } -#menu ul li:dir(rtl), -#toptranslations ul li:dir(rtl), -#toptranslations h2:dir(rtl) { +html[dir="rtl"] #menu ul li, +html[dir="rtl"] #toptranslations ul li, +html[dir="rtl"] #toptranslations h2 { margin-left: 1.5em; margin-right: 0; } @@ -79,7 +79,7 @@ body { float: right; } -#toptranslations:dir(rtl) { +html[dir="rtl"] #toptranslations { text-align: left; float: left; } @@ -127,6 +127,9 @@ body { .postlist li { margin-bottom: .33em; } +.byline a:not(:last-child):after { + content: ","; +} /* Post and archive pagers */ .postindexpager .pager .next:before { @@ -140,19 +143,24 @@ body { .archivenav .pager .next:after { content: " →"; } -.postpromonav .pager .previous:dir(rtl):after, -.archivenav .pager .previous:dir(rtl):after { +html[dir="rtl"] .postpromonav .pager .previous:after, +html[dir="rtl"] .archivenav .pager .previous:after { content: " →"; } .postpromonav .pager .previous:before, .archivenav .pager .previous:before { content: "← "; } -.postpromonav .pager .next:dir(rtl):before, -.archivenav .pager .next:dir(rtl):before { +html[dir="rtl"] .postpromonav .pager .next:before, +html[dir="rtl"] .archivenav .pager .next:before { content: "← "; } - +html[dir="rtl"] .postpromonav .pager .next:after, +html[dir="rtl"] .archivenav .pager .next:after, +html[dir="rtl"] .postpromonav .pager .previous:before, +html[dir="rtl"] .archivenav .pager .previous:before { + content: ""; +} .metadata p:first-of-type:before, .postpromonav .tags li:first-of-type:before, .translationslist p:first-of-type:before { @@ -174,8 +182,8 @@ body { .archivenav .pager .next { float: right; } -.postpromonav .pager .next:dir(rtl), -.archivenav .pager .next:dir(rtl) { +html[dir="rtl"] .postpromonav .pager .next, +html[dir="rtl"] .archivenav .pager .next { float: left; } @@ -183,16 +191,16 @@ body { .archivenav .pager .previous { float: left; } -.postpromonav .pager .previous:dir(rtl), -.archivenav .pager .previous:dir(rtl) { +html[dir="rtl"] .postpromonav .pager .previous, +html[dir="rtl"] .archivenav .pager .previous { float: right; } .archivenav .pager .disabled, .archivenav .pager .disabled a, .archivenav .pager .disabled:link { - color: #888; - cursor: not-allowed; + color: #888; + cursor: not-allowed; } .metadata p, @@ -277,10 +285,6 @@ img { margin-right: 0; } -.codetable .linenos { - padding-right: 10px; -} - .sr-only { position: absolute; width: 1px; @@ -303,11 +307,16 @@ img { } pre.code, code { - white-space: pre; + white-space: pre-wrap; word-wrap: normal; overflow: auto; } +/* Set a minimum logo height to ensure .svg are displayed if there is no brand text (#3493) */ +#logo { + min-height: 25px; +} + /* SOURCE: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ @media print { *, diff --git a/output/assets/js/all-nocdn.js b/output/assets/js/all-nocdn.js index 5333d462..895e4bc5 100644 --- a/output/assets/js/all-nocdn.js +++ b/output/assets/js/all-nocdn.js @@ -3280,3 +3280,4 @@ function extendJQuery($){ head.appendChild(script); } }(document, window)); + diff --git a/output/assets/js/baguetteBox.js b/output/assets/js/baguetteBox.js deleted file mode 100644 index 5303faed..00000000 --- a/output/assets/js/baguetteBox.js +++ /dev/null @@ -1,710 +0,0 @@ -/*! - * baguetteBox.js - * @author feimosi - * @version 1.8.2 - * @url https://github.com/feimosi/baguetteBox.js - */ - -/* global define, module */ - -(function (root, factory) { - 'use strict'; - if (typeof define === 'function' && define.amd) { - define(factory); - } else if (typeof exports === 'object') { - module.exports = factory(); - } else { - root.baguetteBox = factory(); - } -}(this, function () { - 'use strict'; - - // SVG shapes used on the buttons - var leftArrow = '<svg width="44" height="60">' + - '<polyline points="30 10 10 30 30 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"' + - 'stroke-linecap="butt" fill="none" stroke-linejoin="round"/>' + - '</svg>', - rightArrow = '<svg width="44" height="60">' + - '<polyline points="14 10 34 30 14 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"' + - 'stroke-linecap="butt" fill="none" stroke-linejoin="round"/>' + - '</svg>', - closeX = '<svg width="30" height="30">' + - '<g stroke="rgb(160,160,160)" stroke-width="4">' + - '<line x1="5" y1="5" x2="25" y2="25"/>' + - '<line x1="5" y1="25" x2="25" y2="5"/>' + - '</g></svg>'; - // Global options and their defaults - var options = {}, - defaults = { - captions: true, - fullScreen: false, - noScrollbars: false, - titleTag: false, - buttons: 'auto', - async: false, - preload: 2, - animation: 'slideIn', - afterShow: null, - afterHide: null, - // callback when image changes with `currentIndex` and `imagesElements.length` as parameters - onChange: null, - overlayBackgroundColor: 'rgba(0,0,0,.8)' - }; - // Object containing information about features compatibility - var supports = {}; - // DOM Elements references - var overlay, slider, previousButton, nextButton, closeButton; - // An array with all images in the current gallery - var currentGallery = []; - // Current image index inside the slider - var currentIndex = 0; - // Touch event start position (for slide gesture) - var touch = {}; - // If set to true ignore touch events because animation was already fired - var touchFlag = false; - // Regex pattern to match image files - var regex = /.+\.(gif|jpe?g|png|webp)/i; - // Object of all used galleries - var data = {}; - // Array containing temporary images DOM elements - var imagesElements = []; - // The last focused element before opening the overlay - var documentLastFocus = null; - var overlayClickHandler = function(event) { - // Close the overlay when user clicks directly on the background - if (event.target.id.indexOf('baguette-img') !== -1) { - hideOverlay(); - } - }; - var previousButtonClickHandler = function(event) { - event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true; // jshint ignore:line - showPreviousImage(); - }; - var nextButtonClickHandler = function(event) { - event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true; // jshint ignore:line - showNextImage(); - }; - var closeButtonClickHandler = function(event) { - event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true; // jshint ignore:line - hideOverlay(); - }; - var touchstartHandler = function(event) { - touch.count++; - if (touch.count > 1) { - touch.multitouch = true; - } - // Save x and y axis position - touch.startX = event.changedTouches[0].pageX; - touch.startY = event.changedTouches[0].pageY; - }; - var touchmoveHandler = function(event) { - // If action was already triggered or multitouch return - if (touchFlag || touch.multitouch) { - return; - } - event.preventDefault ? event.preventDefault() : event.returnValue = false; // jshint ignore:line - var touchEvent = event.touches[0] || event.changedTouches[0]; - // Move at least 40 pixels to trigger the action - if (touchEvent.pageX - touch.startX > 40) { - touchFlag = true; - showPreviousImage(); - } else if (touchEvent.pageX - touch.startX < -40) { - touchFlag = true; - showNextImage(); - // Move 100 pixels up to close the overlay - } else if (touch.startY - touchEvent.pageY > 100) { - hideOverlay(); - } - }; - var touchendHandler = function() { - touch.count--; - if (touch.count <= 0) { - touch.multitouch = false; - } - touchFlag = false; - }; - - var trapFocusInsideOverlay = function(event) { - if (overlay.style.display === 'block' && (overlay.contains && !overlay.contains(event.target))) { - event.stopPropagation(); - initFocus(); - } - }; - - // forEach polyfill for IE8 - // http://stackoverflow.com/a/14827443/1077846 - /* jshint ignore:start */ - if (![].forEach) { - Array.prototype.forEach = function(callback, thisArg) { - for (var i = 0; i < this.length; i++) { - callback.call(thisArg, this[i], i, this); - } - }; - } - - // filter polyfill for IE8 - // https://gist.github.com/eliperelman/1031656 - if (![].filter) { - Array.prototype.filter = function(a, b, c, d, e) { - c = this; - d = []; - for (e = 0; e < c.length; e++) - a.call(b, c[e], e, c) && d.push(c[e]); - return d; - }; - } - /* jshint ignore:end */ - - // Script entry point - function run(selector, userOptions) { - // Fill supports object - supports.transforms = testTransformsSupport(); - supports.svg = testSVGSupport(); - - buildOverlay(); - removeFromCache(selector); - bindImageClickListeners(selector, userOptions); - } - - function bindImageClickListeners(selector, userOptions) { - // For each gallery bind a click event to every image inside it - var galleryNodeList = document.querySelectorAll(selector); - var selectorData = { - galleries: [], - nodeList: galleryNodeList - }; - data[selector] = selectorData; - - [].forEach.call(galleryNodeList, function(galleryElement) { - if (userOptions && userOptions.filter) { - regex = userOptions.filter; - } - - // Get nodes from gallery elements or single-element galleries - var tagsNodeList = []; - if (galleryElement.tagName === 'A') { - tagsNodeList = [galleryElement]; - } else { - tagsNodeList = galleryElement.getElementsByTagName('a'); - } - - // Filter 'a' elements from those not linking to images - tagsNodeList = [].filter.call(tagsNodeList, function(element) { - return regex.test(element.href); - }); - if (tagsNodeList.length === 0) { - return; - } - - var gallery = []; - [].forEach.call(tagsNodeList, function(imageElement, imageIndex) { - var imageElementClickHandler = function(event) { - event.preventDefault ? event.preventDefault() : event.returnValue = false; // jshint ignore:line - prepareOverlay(gallery, userOptions); - showOverlay(imageIndex); - }; - var imageItem = { - eventHandler: imageElementClickHandler, - imageElement: imageElement - }; - bind(imageElement, 'click', imageElementClickHandler); - gallery.push(imageItem); - }); - selectorData.galleries.push(gallery); - }); - } - - function clearCachedData() { - for (var selector in data) { - if (data.hasOwnProperty(selector)) { - removeFromCache(selector); - } - } - } - - function removeFromCache(selector) { - if (!data.hasOwnProperty(selector)) { - return; - } - var galleries = data[selector].galleries; - [].forEach.call(galleries, function(gallery) { - [].forEach.call(gallery, function(imageItem) { - unbind(imageItem.imageElement, 'click', imageItem.eventHandler); - }); - - if (currentGallery === gallery) { - currentGallery = []; - } - }); - - delete data[selector]; - } - - function buildOverlay() { - overlay = getByID('baguetteBox-overlay'); - // Check if the overlay already exists - if (overlay) { - slider = getByID('baguetteBox-slider'); - previousButton = getByID('previous-button'); - nextButton = getByID('next-button'); - closeButton = getByID('close-button'); - return; - } - // Create overlay element - overlay = create('div'); - overlay.setAttribute('role', 'dialog'); - overlay.id = 'baguetteBox-overlay'; - document.getElementsByTagName('body')[0].appendChild(overlay); - // Create gallery slider element - slider = create('div'); - slider.id = 'baguetteBox-slider'; - overlay.appendChild(slider); - // Create all necessary buttons - previousButton = create('button'); - previousButton.setAttribute('type', 'button'); - previousButton.id = 'previous-button'; - previousButton.setAttribute('aria-label', 'Previous'); - previousButton.innerHTML = supports.svg ? leftArrow : '<'; - overlay.appendChild(previousButton); - - nextButton = create('button'); - nextButton.setAttribute('type', 'button'); - nextButton.id = 'next-button'; - nextButton.setAttribute('aria-label', 'Next'); - nextButton.innerHTML = supports.svg ? rightArrow : '>'; - overlay.appendChild(nextButton); - - closeButton = create('button'); - closeButton.setAttribute('type', 'button'); - closeButton.id = 'close-button'; - closeButton.setAttribute('aria-label', 'Close'); - closeButton.innerHTML = supports.svg ? closeX : '×'; - overlay.appendChild(closeButton); - - previousButton.className = nextButton.className = closeButton.className = 'baguetteBox-button'; - - bindEvents(); - } - - function keyDownHandler(event) { - switch (event.keyCode) { - case 37: // Left arrow - showPreviousImage(); - break; - case 39: // Right arrow - showNextImage(); - break; - case 27: // Esc - hideOverlay(); - break; - } - } - - function bindEvents() { - bind(overlay, 'click', overlayClickHandler); - bind(previousButton, 'click', previousButtonClickHandler); - bind(nextButton, 'click', nextButtonClickHandler); - bind(closeButton, 'click', closeButtonClickHandler); - bind(overlay, 'touchstart', touchstartHandler); - bind(overlay, 'touchmove', touchmoveHandler); - bind(overlay, 'touchend', touchendHandler); - bind(document, 'focus', trapFocusInsideOverlay, true); - } - - function unbindEvents() { - unbind(overlay, 'click', overlayClickHandler); - unbind(previousButton, 'click', previousButtonClickHandler); - unbind(nextButton, 'click', nextButtonClickHandler); - unbind(closeButton, 'click', closeButtonClickHandler); - unbind(overlay, 'touchstart', touchstartHandler); - unbind(overlay, 'touchmove', touchmoveHandler); - unbind(overlay, 'touchend', touchendHandler); - unbind(document, 'focus', trapFocusInsideOverlay, true); - } - - function prepareOverlay(gallery, userOptions) { - // If the same gallery is being opened prevent from loading it once again - if (currentGallery === gallery) { - return; - } - currentGallery = gallery; - // Update gallery specific options - setOptions(userOptions); - // Empty slider of previous contents (more effective than .innerHTML = "") - while (slider.firstChild) { - slider.removeChild(slider.firstChild); - } - imagesElements.length = 0; - - var imagesFiguresIds = []; - var imagesCaptionsIds = []; - // Prepare and append images containers and populate figure and captions IDs arrays - for (var i = 0, fullImage; i < gallery.length; i++) { - fullImage = create('div'); - fullImage.className = 'full-image'; - fullImage.id = 'baguette-img-' + i; - imagesElements.push(fullImage); - - imagesFiguresIds.push('baguetteBox-figure-' + i); - imagesCaptionsIds.push('baguetteBox-figcaption-' + i); - slider.appendChild(imagesElements[i]); - } - overlay.setAttribute('aria-labelledby', imagesFiguresIds.join(' ')); - overlay.setAttribute('aria-describedby', imagesCaptionsIds.join(' ')); - } - - function setOptions(newOptions) { - if (!newOptions) { - newOptions = {}; - } - // Fill options object - for (var item in defaults) { - options[item] = defaults[item]; - if (typeof newOptions[item] !== 'undefined') { - options[item] = newOptions[item]; - } - } - /* Apply new options */ - // Change transition for proper animation - slider.style.transition = slider.style.webkitTransition = (options.animation === 'fadeIn' ? 'opacity .4s ease' : - options.animation === 'slideIn' ? '' : 'none'); - // Hide buttons if necessary - if (options.buttons === 'auto' && ('ontouchstart' in window || currentGallery.length === 1)) { - options.buttons = false; - } - // Set buttons style to hide or display them - previousButton.style.display = nextButton.style.display = (options.buttons ? '' : 'none'); - // Set overlay color - try { - overlay.style.backgroundColor = options.overlayBackgroundColor; - } catch (e) { - // Silence the error and continue - } - } - - function showOverlay(chosenImageIndex) { - if (options.noScrollbars) { - document.documentElement.style.overflowY = 'hidden'; - document.body.style.overflowY = 'scroll'; - } - if (overlay.style.display === 'block') { - return; - } - - bind(document, 'keydown', keyDownHandler); - currentIndex = chosenImageIndex; - touch = { - count: 0, - startX: null, - startY: null - }; - loadImage(currentIndex, function() { - preloadNext(currentIndex); - preloadPrev(currentIndex); - }); - - updateOffset(); - overlay.style.display = 'block'; - if (options.fullScreen) { - enterFullScreen(); - } - // Fade in overlay - setTimeout(function() { - overlay.className = 'visible'; - if (options.afterShow) { - options.afterShow(); - } - }, 50); - if (options.onChange) { - options.onChange(currentIndex, imagesElements.length); - } - documentLastFocus = document.activeElement; - initFocus(); - } - - function initFocus() { - if (options.buttons) { - previousButton.focus(); - } else { - closeButton.focus(); - } - } - - function enterFullScreen() { - if (overlay.requestFullscreen) { - overlay.requestFullscreen(); - } else if (overlay.webkitRequestFullscreen) { - overlay.webkitRequestFullscreen(); - } else if (overlay.mozRequestFullScreen) { - overlay.mozRequestFullScreen(); - } - } - - function exitFullscreen() { - if (document.exitFullscreen) { - document.exitFullscreen(); - } else if (document.mozCancelFullScreen) { - document.mozCancelFullScreen(); - } else if (document.webkitExitFullscreen) { - document.webkitExitFullscreen(); - } - } - - function hideOverlay() { - if (options.noScrollbars) { - document.documentElement.style.overflowY = 'auto'; - document.body.style.overflowY = 'auto'; - } - if (overlay.style.display === 'none') { - return; - } - - unbind(document, 'keydown', keyDownHandler); - // Fade out and hide the overlay - overlay.className = ''; - setTimeout(function() { - overlay.style.display = 'none'; - exitFullscreen(); - if (options.afterHide) { - options.afterHide(); - } - }, 500); - documentLastFocus.focus(); - } - - function loadImage(index, callback) { - var imageContainer = imagesElements[index]; - var galleryItem = currentGallery[index]; - - // Return if the index exceeds prepared images in the overlay - // or if the current gallery has been changed / closed - if (imageContainer === undefined || galleryItem === undefined) { - return; - } - - // If image is already loaded run callback and return - if (imageContainer.getElementsByTagName('img')[0]) { - if (callback) { - callback(); - } - return; - } - - // Get element reference, optional caption and source path - var imageElement = galleryItem.imageElement; - var thumbnailElement = imageElement.getElementsByTagName('img')[0]; - var imageCaption = typeof options.captions === 'function' ? - options.captions.call(currentGallery, imageElement) : - imageElement.getAttribute('data-caption') || imageElement.title; - var imageSrc = getImageSrc(imageElement); - - // Prepare figure element - var figure = create('figure'); - figure.id = 'baguetteBox-figure-' + index; - figure.innerHTML = '<div class="baguetteBox-spinner">' + - '<div class="baguetteBox-double-bounce1"></div>' + - '<div class="baguetteBox-double-bounce2"></div>' + - '</div>'; - // Insert caption if available - if (options.captions && imageCaption) { - var figcaption = create('figcaption'); - figcaption.id = 'baguetteBox-figcaption-' + index; - figcaption.innerHTML = imageCaption; - figure.appendChild(figcaption); - } - imageContainer.appendChild(figure); - - // Prepare gallery img element - var image = create('img'); - image.onload = function() { - // Remove loader element - var spinner = document.querySelector('#baguette-img-' + index + ' .baguetteBox-spinner'); - figure.removeChild(spinner); - if (!options.async && callback) { - callback(); - } - }; - image.setAttribute('src', imageSrc); - image.alt = thumbnailElement ? thumbnailElement.alt || '' : ''; - if (options.titleTag && imageCaption) { - image.title = imageCaption; - } - figure.appendChild(image); - - // Run callback - if (options.async && callback) { - callback(); - } - } - - // Get image source location, mostly used for responsive images - function getImageSrc(image) { - // Set default image path from href - var result = image.href; - // If dataset is supported find the most suitable image - if (image.dataset) { - var srcs = []; - // Get all possible image versions depending on the resolution - for (var item in image.dataset) { - if (item.substring(0, 3) === 'at-' && !isNaN(item.substring(3))) { - srcs[item.replace('at-', '')] = image.dataset[item]; - } - } - // Sort resolutions ascending - var keys = Object.keys(srcs).sort(function(a, b) { - return parseInt(a, 10) < parseInt(b, 10) ? -1 : 1; - }); - // Get real screen resolution - var width = window.innerWidth * window.devicePixelRatio; - // Find the first image bigger than or equal to the current width - var i = 0; - while (i < keys.length - 1 && keys[i] < width) { - i++; - } - result = srcs[keys[i]] || result; - } - return result; - } - - // Return false at the right end of the gallery - function showNextImage() { - var returnValue; - // Check if next image exists - if (currentIndex <= imagesElements.length - 2) { - currentIndex++; - updateOffset(); - preloadNext(currentIndex); - returnValue = true; - } else if (options.animation) { - slider.className = 'bounce-from-right'; - setTimeout(function() { - slider.className = ''; - }, 400); - returnValue = false; - } - if (options.onChange) { - options.onChange(currentIndex, imagesElements.length); - } - return returnValue; - } - - // Return false at the left end of the gallery - function showPreviousImage() { - var returnValue; - // Check if previous image exists - if (currentIndex >= 1) { - currentIndex--; - updateOffset(); - preloadPrev(currentIndex); - returnValue = true; - } else if (options.animation) { - slider.className = 'bounce-from-left'; - setTimeout(function() { - slider.className = ''; - }, 400); - returnValue = false; - } - if (options.onChange) { - options.onChange(currentIndex, imagesElements.length); - } - return returnValue; - } - - function updateOffset() { - var offset = -currentIndex * 100 + '%'; - if (options.animation === 'fadeIn') { - slider.style.opacity = 0; - setTimeout(function() { - /* jshint -W030 */ - supports.transforms ? - slider.style.transform = slider.style.webkitTransform = 'translate3d(' + offset + ',0,0)' - : slider.style.left = offset; - slider.style.opacity = 1; - }, 400); - } else { - /* jshint -W030 */ - supports.transforms ? - slider.style.transform = slider.style.webkitTransform = 'translate3d(' + offset + ',0,0)' - : slider.style.left = offset; - } - } - - // CSS 3D Transforms test - function testTransformsSupport() { - var div = create('div'); - return typeof div.style.perspective !== 'undefined' || typeof div.style.webkitPerspective !== 'undefined'; - } - - // Inline SVG test - function testSVGSupport() { - var div = create('div'); - div.innerHTML = '<svg/>'; - return (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg'; - } - - function preloadNext(index) { - if (index - currentIndex >= options.preload) { - return; - } - loadImage(index + 1, function() { - preloadNext(index + 1); - }); - } - - function preloadPrev(index) { - if (currentIndex - index >= options.preload) { - return; - } - loadImage(index - 1, function() { - preloadPrev(index - 1); - }); - } - - function bind(element, event, callback, useCapture) { - if (element.addEventListener) { - element.addEventListener(event, callback, useCapture); - } else { - // IE8 fallback - element.attachEvent('on' + event, function(event) { - // `event` and `event.target` are not provided in IE8 - event = event || window.event; - event.target = event.target || event.srcElement; - callback(event); - }); - } - } - - function unbind(element, event, callback, useCapture) { - if (element.removeEventListener) { - element.removeEventListener(event, callback, useCapture); - } else { - // IE8 fallback - element.detachEvent('on' + event, callback); - } - } - - function getByID(id) { - return document.getElementById(id); - } - - function create(element) { - return document.createElement(element); - } - - function destroyPlugin() { - unbindEvents(); - clearCachedData(); - unbind(document, 'keydown', keyDownHandler); - document.getElementsByTagName('body')[0].removeChild(document.getElementById('baguetteBox-overlay')); - data = {}; - currentGallery = []; - currentIndex = 0; - } - - return { - run: run, - destroy: destroyPlugin, - showNext: showNextImage, - showPrevious: showPreviousImage - }; -})); diff --git a/output/assets/js/baguetteBox.min.js b/output/assets/js/baguetteBox.min.js index df754ee2..6af785d4 100644 --- a/output/assets/js/baguetteBox.min.js +++ b/output/assets/js/baguetteBox.min.js @@ -1,7 +1,7 @@ /*! * baguetteBox.js * @author feimosi - * @version 1.8.2 + * @version 1.11.1 * @url https://github.com/feimosi/baguetteBox.js */ -!function(t,e){"use strict";"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.baguetteBox=e()}(this,function(){"use strict";function t(t,n){M.transforms=w(),M.svg=k(),i(),o(t),e(t,n)}function e(t,e){var n=document.querySelectorAll(t),o={galleries:[],nodeList:n};U[t]=o,[].forEach.call(n,function(t){e&&e.filter&&(V=e.filter);var n=[];if(n="A"===t.tagName?[t]:t.getElementsByTagName("a"),n=[].filter.call(n,function(t){return V.test(t.href)}),0!==n.length){var i=[];[].forEach.call(n,function(t,n){var o=function(t){t.preventDefault?t.preventDefault():t.returnValue=!1,u(i,e),c(n)},a={eventHandler:o,imageElement:t};E(t,"click",o),i.push(a)}),o.galleries.push(i)}})}function n(){for(var t in U)U.hasOwnProperty(t)&&o(t)}function o(t){if(U.hasOwnProperty(t)){var e=U[t].galleries;[].forEach.call(e,function(t){[].forEach.call(t,function(t){B(t.imageElement,"click",t.eventHandler)}),R===t&&(R=[])}),delete U[t]}}function i(){if(S=T("baguetteBox-overlay"))return P=T("baguetteBox-slider"),F=T("previous-button"),H=T("next-button"),void(L=T("close-button"));S=N("div"),S.setAttribute("role","dialog"),S.id="baguetteBox-overlay",document.getElementsByTagName("body")[0].appendChild(S),P=N("div"),P.id="baguetteBox-slider",S.appendChild(P),F=N("button"),F.setAttribute("type","button"),F.id="previous-button",F.setAttribute("aria-label","Previous"),F.innerHTML=M.svg?I:"<",S.appendChild(F),H=N("button"),H.setAttribute("type","button"),H.id="next-button",H.setAttribute("aria-label","Next"),H.innerHTML=M.svg?Y:">",S.appendChild(H),L=N("button"),L.setAttribute("type","button"),L.id="close-button",L.setAttribute("aria-label","Close"),L.innerHTML=M.svg?q:"×",S.appendChild(L),F.className=H.className=L.className="baguetteBox-button",r()}function a(t){switch(t.keyCode){case 37:v();break;case 39:h();break;case 27:m()}}function r(){E(S,"click",J),E(F,"click",K),E(H,"click",Q),E(L,"click",Z),E(S,"touchstart",$),E(S,"touchmove",_),E(S,"touchend",tt),E(document,"focus",et,!0)}function l(){B(S,"click",J),B(F,"click",K),B(H,"click",Q),B(L,"click",Z),B(S,"touchstart",$),B(S,"touchmove",_),B(S,"touchend",tt),B(document,"focus",et,!0)}function u(t,e){if(R!==t){for(R=t,s(e);P.firstChild;)P.removeChild(P.firstChild);W.length=0;for(var n,o=[],i=[],a=0;a<t.length;a++)n=N("div"),n.className="full-image",n.id="baguette-img-"+a,W.push(n),o.push("baguetteBox-figure-"+a),i.push("baguetteBox-figcaption-"+a),P.appendChild(W[a]);S.setAttribute("aria-labelledby",o.join(" ")),S.setAttribute("aria-describedby",i.join(" "))}}function s(t){t||(t={});for(var e in X)j[e]=X[e],void 0!==t[e]&&(j[e]=t[e]);P.style.transition=P.style.webkitTransition="fadeIn"===j.animation?"opacity .4s ease":"slideIn"===j.animation?"":"none","auto"===j.buttons&&("ontouchstart"in window||1===R.length)&&(j.buttons=!1),F.style.display=H.style.display=j.buttons?"":"none";try{S.style.backgroundColor=j.overlayBackgroundColor}catch(t){}}function c(t){j.noScrollbars&&(document.documentElement.style.overflowY="hidden",document.body.style.overflowY="scroll"),"block"!==S.style.display&&(E(document,"keydown",a),z=t,D={count:0,startX:null,startY:null},p(z,function(){x(z),C(z)}),y(),S.style.display="block",j.fullScreen&&f(),setTimeout(function(){S.className="visible",j.afterShow&&j.afterShow()},50),j.onChange&&j.onChange(z,W.length),G=document.activeElement,d())}function d(){j.buttons?F.focus():L.focus()}function f(){S.requestFullscreen?S.requestFullscreen():S.webkitRequestFullscreen?S.webkitRequestFullscreen():S.mozRequestFullScreen&&S.mozRequestFullScreen()}function g(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()}function m(){j.noScrollbars&&(document.documentElement.style.overflowY="auto",document.body.style.overflowY="auto"),"none"!==S.style.display&&(B(document,"keydown",a),S.className="",setTimeout(function(){S.style.display="none",g(),j.afterHide&&j.afterHide()},500),G.focus())}function p(t,e){var n=W[t],o=R[t];if(void 0!==n&&void 0!==o){if(n.getElementsByTagName("img")[0])return void(e&&e());var i=o.imageElement,a=i.getElementsByTagName("img")[0],r="function"==typeof j.captions?j.captions.call(R,i):i.getAttribute("data-caption")||i.title,l=b(i),u=N("figure");if(u.id="baguetteBox-figure-"+t,u.innerHTML='<div class="baguetteBox-spinner"><div class="baguetteBox-double-bounce1"></div><div class="baguetteBox-double-bounce2"></div></div>',j.captions&&r){var s=N("figcaption");s.id="baguetteBox-figcaption-"+t,s.innerHTML=r,u.appendChild(s)}n.appendChild(u);var c=N("img");c.onload=function(){var n=document.querySelector("#baguette-img-"+t+" .baguetteBox-spinner");u.removeChild(n),!j.async&&e&&e()},c.setAttribute("src",l),c.alt=a?a.alt||"":"",j.titleTag&&r&&(c.title=r),u.appendChild(c),j.async&&e&&e()}}function b(t){var e=t.href;if(t.dataset){var n=[];for(var o in t.dataset)"at-"!==o.substring(0,3)||isNaN(o.substring(3))||(n[o.replace("at-","")]=t.dataset[o]);for(var i=Object.keys(n).sort(function(t,e){return parseInt(t,10)<parseInt(e,10)?-1:1}),a=window.innerWidth*window.devicePixelRatio,r=0;r<i.length-1&&i[r]<a;)r++;e=n[i[r]]||e}return e}function h(){var t;return z<=W.length-2?(z++,y(),x(z),t=!0):j.animation&&(P.className="bounce-from-right",setTimeout(function(){P.className=""},400),t=!1),j.onChange&&j.onChange(z,W.length),t}function v(){var t;return z>=1?(z--,y(),C(z),t=!0):j.animation&&(P.className="bounce-from-left",setTimeout(function(){P.className=""},400),t=!1),j.onChange&&j.onChange(z,W.length),t}function y(){var t=100*-z+"%";"fadeIn"===j.animation?(P.style.opacity=0,setTimeout(function(){M.transforms?P.style.transform=P.style.webkitTransform="translate3d("+t+",0,0)":P.style.left=t,P.style.opacity=1},400)):M.transforms?P.style.transform=P.style.webkitTransform="translate3d("+t+",0,0)":P.style.left=t}function w(){var t=N("div");return void 0!==t.style.perspective||void 0!==t.style.webkitPerspective}function k(){var t=N("div");return t.innerHTML="<svg/>","http://www.w3.org/2000/svg"===(t.firstChild&&t.firstChild.namespaceURI)}function x(t){t-z>=j.preload||p(t+1,function(){x(t+1)})}function C(t){z-t>=j.preload||p(t-1,function(){C(t-1)})}function E(t,e,n,o){t.addEventListener?t.addEventListener(e,n,o):t.attachEvent("on"+e,function(t){t=t||window.event,t.target=t.target||t.srcElement,n(t)})}function B(t,e,n,o){t.removeEventListener?t.removeEventListener(e,n,o):t.detachEvent("on"+e,n)}function T(t){return document.getElementById(t)}function N(t){return document.createElement(t)}function A(){l(),n(),B(document,"keydown",a),document.getElementsByTagName("body")[0].removeChild(document.getElementById("baguetteBox-overlay")),U={},R=[],z=0}var S,P,F,H,L,I='<svg width="44" height="60"><polyline points="30 10 10 30 30 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"stroke-linecap="butt" fill="none" stroke-linejoin="round"/></svg>',Y='<svg width="44" height="60"><polyline points="14 10 34 30 14 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"stroke-linecap="butt" fill="none" stroke-linejoin="round"/></svg>',q='<svg width="30" height="30"><g stroke="rgb(160,160,160)" stroke-width="4"><line x1="5" y1="5" x2="25" y2="25"/><line x1="5" y1="25" x2="25" y2="5"/></g></svg>',j={},X={captions:!0,fullScreen:!1,noScrollbars:!1,titleTag:!1,buttons:"auto",async:!1,preload:2,animation:"slideIn",afterShow:null,afterHide:null,onChange:null,overlayBackgroundColor:"rgba(0,0,0,.8)"},M={},R=[],z=0,D={},O=!1,V=/.+\.(gif|jpe?g|png|webp)/i,U={},W=[],G=null,J=function(t){t.target.id.indexOf("baguette-img")!==-1&&m()},K=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,v()},Q=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,h()},Z=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,m()},$=function(t){D.count++,D.count>1&&(D.multitouch=!0),D.startX=t.changedTouches[0].pageX,D.startY=t.changedTouches[0].pageY},_=function(t){if(!O&&!D.multitouch){t.preventDefault?t.preventDefault():t.returnValue=!1;var e=t.touches[0]||t.changedTouches[0];e.pageX-D.startX>40?(O=!0,v()):e.pageX-D.startX<-40?(O=!0,h()):D.startY-e.pageY>100&&m()}},tt=function(){D.count--,D.count<=0&&(D.multitouch=!1),O=!1},et=function(t){"block"===S.style.display&&S.contains&&!S.contains(t.target)&&(t.stopPropagation(),d())};return[].forEach||(Array.prototype.forEach=function(t,e){for(var n=0;n<this.length;n++)t.call(e,this[n],n,this)}),[].filter||(Array.prototype.filter=function(t,e,n,o,i){for(n=this,o=[],i=0;i<n.length;i++)t.call(e,n[i],i,n)&&o.push(n[i]);return o}),{run:t,destroy:A,showNext:h,showPrevious:v}}); \ No newline at end of file +!function(e,t){"use strict";"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.baguetteBox=t()}(this,function(){"use strict";var e,t,n,o,i,a='<svg width="44" height="60"><polyline points="30 10 10 30 30 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"stroke-linecap="butt" fill="none" stroke-linejoin="round"/></svg>',s='<svg width="44" height="60"><polyline points="14 10 34 30 14 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"stroke-linecap="butt" fill="none" stroke-linejoin="round"/></svg>',l='<svg width="30" height="30"><g stroke="rgb(160,160,160)" stroke-width="4"><line x1="5" y1="5" x2="25" y2="25"/><line x1="5" y1="25" x2="25" y2="5"/></g></svg>',r={},u={captions:!0,buttons:"auto",fullScreen:!1,noScrollbars:!1,bodyClass:"baguetteBox-open",titleTag:!1,async:!1,preload:2,animation:"slideIn",afterShow:null,afterHide:null,onChange:null,overlayBackgroundColor:"rgba(0,0,0,.8)"},c={},d=[],f=0,g=!1,p={},m=!1,b=/.+\.(gif|jpe?g|png|webp)/i,v={},h=[],y=null,w=function(e){-1!==e.target.id.indexOf("baguette-img")&&I()},k=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,q()},E=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,j()},x=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,I()},C=function(e){p.count++,p.count>1&&(p.multitouch=!0),p.startX=e.changedTouches[0].pageX,p.startY=e.changedTouches[0].pageY},B=function(e){if(!m&&!p.multitouch){e.preventDefault?e.preventDefault():e.returnValue=!1;var t=e.touches[0]||e.changedTouches[0];t.pageX-p.startX>40?(m=!0,q()):t.pageX-p.startX<-40?(m=!0,j()):p.startY-t.pageY>100&&I()}},T=function(){p.count--,p.count<=0&&(p.multitouch=!1),m=!1},N=function(){T()},L=function(t){"block"===e.style.display&&e.contains&&!e.contains(t.target)&&(t.stopPropagation(),H())};function A(e){if(v.hasOwnProperty(e)){var t=v[e].galleries;[].forEach.call(t,function(e){[].forEach.call(e,function(e){V(e.imageElement,"click",e.eventHandler)}),d===e&&(d=[])}),delete v[e]}}function P(e){switch(e.keyCode){case 37:q();break;case 39:j();break;case 27:I();break;case 36:!function(e){e&&e.preventDefault();X(0)}(e);break;case 35:!function(e){e&&e.preventDefault();X(d.length-1)}(e)}}function S(i,a){if(d!==i){for(d=i,function(i){i||(i={});for(var a in u)r[a]=u[a],"undefined"!=typeof i[a]&&(r[a]=i[a]);t.style.transition=t.style.webkitTransition="fadeIn"===r.animation?"opacity .4s ease":"slideIn"===r.animation?"":"none","auto"===r.buttons&&("ontouchstart"in window||1===d.length)&&(r.buttons=!1);n.style.display=o.style.display=r.buttons?"":"none";try{e.style.backgroundColor=r.overlayBackgroundColor}catch(e){}}(a);t.firstChild;)t.removeChild(t.firstChild);h.length=0;for(var s,l=[],c=[],f=0;f<i.length;f++)(s=W("div")).className="full-image",s.id="baguette-img-"+f,h.push(s),l.push("baguetteBox-figure-"+f),c.push("baguetteBox-figcaption-"+f),t.appendChild(h[f]);e.setAttribute("aria-labelledby",l.join(" ")),e.setAttribute("aria-describedby",c.join(" "))}}function F(t){r.noScrollbars&&(document.documentElement.style.overflowY="hidden",document.body.style.overflowY="scroll"),"block"!==e.style.display&&(z(document,"keydown",P),p={count:0,startX:null,startY:null},Y(f=t,function(){O(f),R(f)}),M(),e.style.display="block",r.fullScreen&&(e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen&&e.mozRequestFullScreen()),setTimeout(function(){e.className="visible",r.bodyClass&&document.body.classList&&document.body.classList.add(r.bodyClass),r.afterShow&&r.afterShow()},50),r.onChange&&r.onChange(f,h.length),y=document.activeElement,H(),g=!0)}function H(){r.buttons?n.focus():i.focus()}function I(){r.noScrollbars&&(document.documentElement.style.overflowY="auto",document.body.style.overflowY="auto"),"none"!==e.style.display&&(V(document,"keydown",P),e.className="",setTimeout(function(){e.style.display="none",document.fullscreen&&(document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()),r.bodyClass&&document.body.classList&&document.body.classList.remove(r.bodyClass),r.afterHide&&r.afterHide(),y&&y.focus(),g=!1},500))}function Y(e,t){var n=h[e],o=d[e];if(void 0!==n&&void 0!==o)if(n.getElementsByTagName("img")[0])t&&t();else{var i=o.imageElement,a=i.getElementsByTagName("img")[0],s="function"==typeof r.captions?r.captions.call(d,i):i.getAttribute("data-caption")||i.title,l=function(e){var t=e.href;if(e.dataset){var n=[];for(var o in e.dataset)"at-"!==o.substring(0,3)||isNaN(o.substring(3))||(n[o.replace("at-","")]=e.dataset[o]);for(var i=Object.keys(n).sort(function(e,t){return parseInt(e,10)<parseInt(t,10)?-1:1}),a=window.innerWidth*window.devicePixelRatio,s=0;s<i.length-1&&i[s]<a;)s++;t=n[i[s]]||t}return t}(i),u=W("figure");if(u.id="baguetteBox-figure-"+e,u.innerHTML='<div class="baguetteBox-spinner"><div class="baguetteBox-double-bounce1"></div><div class="baguetteBox-double-bounce2"></div></div>',r.captions&&s){var c=W("figcaption");c.id="baguetteBox-figcaption-"+e,c.innerHTML=s,u.appendChild(c)}n.appendChild(u);var f=W("img");f.onload=function(){var n=document.querySelector("#baguette-img-"+e+" .baguetteBox-spinner");u.removeChild(n),!r.async&&t&&t()},f.setAttribute("src",l),f.alt=a&&a.alt||"",r.titleTag&&s&&(f.title=s),u.appendChild(f),r.async&&t&&t()}}function j(){return X(f+1)}function q(){return X(f-1)}function X(e,t){return!g&&e>=0&&e<t.length?(S(t,r),F(e),!0):e<0?(r.animation&&D("left"),!1):e>=h.length?(r.animation&&D("right"),!1):(Y(f=e,function(){O(f),R(f)}),M(),r.onChange&&r.onChange(f,h.length),!0)}function D(e){t.className="bounce-from-"+e,setTimeout(function(){t.className=""},400)}function M(){var e=100*-f+"%";"fadeIn"===r.animation?(t.style.opacity=0,setTimeout(function(){c.transforms?t.style.transform=t.style.webkitTransform="translate3d("+e+",0,0)":t.style.left=e,t.style.opacity=1},400)):c.transforms?t.style.transform=t.style.webkitTransform="translate3d("+e+",0,0)":t.style.left=e}function O(e){e-f>=r.preload||Y(e+1,function(){O(e+1)})}function R(e){f-e>=r.preload||Y(e-1,function(){R(e-1)})}function z(e,t,n,o){e.addEventListener?e.addEventListener(t,n,o):e.attachEvent("on"+t,function(e){(e=e||window.event).target=e.target||e.srcElement,n(e)})}function V(e,t,n,o){e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent("on"+t,n)}function U(e){return document.getElementById(e)}function W(e){return document.createElement(e)}return[].forEach||(Array.prototype.forEach=function(e,t){for(var n=0;n<this.length;n++)e.call(t,this[n],n,this)}),[].filter||(Array.prototype.filter=function(e,t,n,o,i){for(n=this,o=[],i=0;i<n.length;i++)e.call(t,n[i],i,n)&&o.push(n[i]);return o}),{run:function(r,u){var d;return c.transforms="undefined"!=typeof(d=W("div")).style.perspective||"undefined"!=typeof d.style.webkitPerspective,c.svg=function(){var e=W("div");return e.innerHTML="<svg/>","http://www.w3.org/2000/svg"===(e.firstChild&&e.firstChild.namespaceURI)}(),c.passiveEvents=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(e){}return e}(),function(){if(e=U("baguetteBox-overlay"))return t=U("baguetteBox-slider"),n=U("previous-button"),o=U("next-button"),void(i=U("close-button"));var r,u;(e=W("div")).setAttribute("role","dialog"),e.id="baguetteBox-overlay",document.getElementsByTagName("body")[0].appendChild(e),(t=W("div")).id="baguetteBox-slider",e.appendChild(t),(n=W("button")).setAttribute("type","button"),n.id="previous-button",n.setAttribute("aria-label","Previous"),n.innerHTML=c.svg?a:"<",e.appendChild(n),(o=W("button")).setAttribute("type","button"),o.id="next-button",o.setAttribute("aria-label","Next"),o.innerHTML=c.svg?s:">",e.appendChild(o),(i=W("button")).setAttribute("type","button"),i.id="close-button",i.setAttribute("aria-label","Close"),i.innerHTML=c.svg?l:"×",e.appendChild(i),n.className=o.className=i.className="baguetteBox-button",r=c.passiveEvents?{passive:!1}:null,u=c.passiveEvents?{passive:!0}:null,z(e,"click",w),z(n,"click",k),z(o,"click",E),z(i,"click",x),z(t,"contextmenu",N),z(e,"touchstart",C,u),z(e,"touchmove",B,r),z(e,"touchend",T),z(document,"focus",L,!0)}(),A(r),function(e,t){var n=document.querySelectorAll(e),o={galleries:[],nodeList:n};return v[e]=o,[].forEach.call(n,function(e){t&&t.filter&&(b=t.filter);var n=[];if(n="A"===e.tagName?[e]:e.getElementsByTagName("a"),0!==(n=[].filter.call(n,function(e){if(-1===e.className.indexOf(t&&t.ignoreClass)&&e.getElementsByTagName("img").length>0)return b.test(e.href)})).length){var i=[];[].forEach.call(n,function(e,n){var o=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1,S(i,t),F(n)},a={eventHandler:o,imageElement:e};z(e,"click",o),i.push(a)}),o.galleries.push(i)}}),o.galleries}(r,u)},show:X,showNext:j,showPrevious:q,hide:I,destroy:function(){var a,s;a=c.passiveEvents?{passive:!1}:null,s=c.passiveEvents?{passive:!0}:null,V(e,"click",w),V(n,"click",k),V(o,"click",E),V(i,"click",x),V(t,"contextmenu",N),V(e,"touchstart",C,s),V(e,"touchmove",B,a),V(e,"touchend",T),V(document,"focus",L,!0),function(){for(var e in v)v.hasOwnProperty(e)&&A(e)}(),V(document,"keydown",P),document.getElementsByTagName("body")[0].removeChild(document.getElementById("baguetteBox-overlay")),v={},d=[],f=0}}}); \ No newline at end of file diff --git a/output/assets/js/fancydates.js b/output/assets/js/fancydates.js index d13b11b0..dc7906dd 100644 --- a/output/assets/js/fancydates.js +++ b/output/assets/js/fancydates.js @@ -1,19 +1,21 @@ -function fancydates(fanciness, date_format) { - if (fanciness == 0) { +function fancydates(fanciness, luxonDateFormat) { + if (fanciness === 0) { return; } - dates = $('time.published.dt-published'); + var dates = document.querySelectorAll('.dt-published, .dt-updated, .listdate'); - i = 0; - l = dates.length; + var l = dates.length; - for (i = 0; i < l; i++) { - d = moment(dates[i].attributes.datetime.value); - if (fanciness == 1) { - o = d.local().format(date_format); + for (var i = 0; i < l; i++) { + var d = luxon.DateTime.fromISO(dates[i].attributes.datetime.value); + var o; + if (fanciness === 1 && luxonDateFormat.preset) { + o = d.toLocal().toLocaleString(luxon.DateTime[luxonDateFormat.format]); + } else if (fanciness === 1) { + o = d.toLocal().toFormat(luxonDateFormat.format); } else { - o = d.fromNow(); + o = d.toRelative(); } dates[i].innerHTML = o; } diff --git a/output/assets/js/fancydates.min.js b/output/assets/js/fancydates.min.js new file mode 100644 index 00000000..bb0b07be --- /dev/null +++ b/output/assets/js/fancydates.min.js @@ -0,0 +1 @@ +function fancydates(t,e){if(0!==t)for(var a=document.querySelectorAll(".dt-published, .dt-updated, .listdate"),o=a.length,l=0;l<o;l++){var r,i=luxon.DateTime.fromISO(a[l].attributes.datetime.value);r=1===t&&e.preset?i.toLocal().toLocaleString(luxon.DateTime[e.format]):1===t?i.toLocal().toFormat(e.format):i.toRelative(),a[l].innerHTML=r}} diff --git a/output/assets/js/flowr.js b/output/assets/js/flowr.js deleted file mode 100644 index 79d28302..00000000 --- a/output/assets/js/flowr.js +++ /dev/null @@ -1,307 +0,0 @@ -/** - * Flowr.js - Simple jQuery plugin to emulate Flickr's justified view - * For usage information refer to http://github.com/kalyan02/flowr-js - * - * - * @author: Kalyan Chakravarthy (http://KalyanChakravarthy.net) - * @version: v0.1 - */ -(function() { - //$("#container2").css( 'border', '1px solid #ccc'); - - - flowr = function(elem, options) { - - $this = elem; - - var extend = function(out) { - out = out || {}; - - for (var i = 1; i < arguments.length; i++) { - if (!arguments[i]) - continue; - - for (var key in arguments[i]) { - if (arguments[i].hasOwnProperty(key)) - out[key] = arguments[i][key]; - } - } - - return out; - }; - - - var data = (function() { - var lastId = 0, - store = {}; - - return { - set: function(element, info) { - var id; - if (element.myCustomDataTag === undefined) { - id = lastId++; - element.myCustomDataTag = id; - } else { id = element.myCustomDataTag; } - store[id] = extend(store[id], info); - }, - - get: function(element) { - return store[element.myCustomDataTag] || {}; - } - }; - }()); - - function reorderContent() { - var _initialWidth = data.get($this).width; - var _newWidth = $this.offsetWidth; - var _change = _initialWidth - _newWidth; - - if (_initialWidth != _newWidth) { - $this.innerHTML = ""; - var _settings = data.get($this).lastSettings || {}; - _settings.data = data.get($this).data || {}; - _settings.maxWidth = $this.offsetWidth - 1; - flowr($this, _settings); - } - } - - - var ROW_CLASS_NAME = 'flowr-row'; // Class name for the row of flowy - var MAX_LAST_ROW_GAP = 25; // If the width of last row is lesser than max-width, recalculation is needed - var NO_COPY_FIELDS = ['complete', 'data', 'responsive']; // these attributes will not be carried forward for append related calls - var DEFAULTS = { - 'data': [], - 'padding': 5, // whats the padding between flowy items - 'height': 240, // Minimum height an image row should take - 'render': null, // callback function to get the tag - 'append': false, // TODO - 'widthAttr': 'width', // a custom data structure can specify which attribute refers to height/width - 'heightAttr': 'height', - 'maxScale': 1.5, // In case there is only 1 elment in last row - 'maxWidth': $this.offsetWidth - 1, // 1px is just for offset - 'itemWidth': null, // callback function for width - 'itemHeight': null, // callback function for height - 'complete': null, // complete callback - 'rowClassName': ROW_CLASS_NAME, - 'rows': -1, // Maximum number of rows to render. -1 for no limit. - 'responsive': true // make content responsive - }; - - var settings = extend(DEFAULTS, options); - - // If data is being appended, we already have settings - // If we already have settings, retrieve them - if (settings.append && data.get($this).lastSettings) { - lastSettings = data.get($this).lastSettings; - - // Copy over the settings from previous init - for (attr in DEFAULTS) { - if (NO_COPY_FIELDS.indexOf(attr) < 0 && settings[attr] == DEFAULTS[attr]) { - settings[attr] = lastSettings[attr]; - } - } - - // Check if we have an incomplete last row - lastRow = data.get($this).lastRow; - if (lastRow.data.length > 0 && settings.maxWidth - lastRow.width > MAX_LAST_ROW_GAP) { - // Prepend the incomplete row to newly loaded data and redraw - lastRowData = lastSettings.data.slice(lastSettings.data.length - lastRow.data.length - 1); - settings.data = lastRowData.concat(settings.data); - - // Remove the incomplete row - // TODO: Don't reload this stuff later. Reattach to new row. - $('.' + settings.rowClassName + ':last', $this).detach(); - } else { - // console.log( lastRow.data.length ); - // console.log( lastRow.width ); - } - } - - // only on the first initial call - if (!settings.responsive && !settings.append) - $this.width($this.width()); - - // Basic sanity checks - if (!(settings.data instanceof Array)) - return; - - if (typeof(settings.padding) != 'number') - settings.padding = parseInt(settings.padding); - - if (typeof(settings.itemWidth) != 'function') { - settings.itemWidth = function(data) { - return data[settings.widthAttr]; - } - } - - if (typeof(settings.itemHeight) != 'function') { - settings.itemHeight = function(data) { - return data[settings.heightAttr]; - } - } - - function getNextRow(data, settings) { - var itemIndex = 0; - var itemsLength = data.length; - var lineItems = []; - var lineWidth = 0; - var maxWidth = settings.maxWidth; - var paddingSize = settings.padding; - - // console.log( 'maxItems=' + data.length ); - - requiredPadding = function() { - var extraPads = arguments.length == 1 ? arguments[0] : 0; - return (lineItems.length - 1 + extraPads) * settings.padding; - } - - while (lineWidth + requiredPadding() < settings.maxWidth && (itemIndex < itemsLength)) { - var itemData = data[itemIndex]; - var itemWidth = settings.itemWidth.call($this, itemData); - var itemHeight = settings.itemHeight.call($this, itemData); - - var minHeight = settings.height; - var minWidth = Math.floor(itemWidth * settings.height / itemHeight); - - - if (minWidth > settings.maxWidth) { - // very short+wide images like panoramas - // show them even if ugly, as wide as possible - minWidth = settings.maxWidth - 1 - requiredPadding(1); - minHeight = settings.height * minHeight / minWidth; - } - var newLineWidth = lineWidth + minWidth; - - // console.log( 'lineWidth = ' + lineWidth ); - // console.log( 'newLineWidth = ' + newLineWidth ); - if (newLineWidth < settings.maxWidth) { - lineItems.push({ - 'height': minHeight, - 'width': minWidth, - 'itemData': itemData - }); - - lineWidth += minWidth; - itemIndex++; - } else { - // We'd have exceeded width. So break off to scale. - // console.log( 'breaking off = ' + itemIndex ); - // console.log( 'leave off size = ' + lineItems.length ); - break; - } - } //while - - // Scale the size to max width - testWidth = 0; - if (lineWidth < settings.maxWidth) { - var fullScaleWidth = settings.maxWidth - requiredPadding() - 10; - var currScaleWidth = lineWidth; - var scaleFactor = fullScaleWidth / currScaleWidth; - if (scaleFactor > settings.maxScale) - scaleFactor = 1; - - var newHeight = Math.round(settings.height * scaleFactor); - for (i = 0; i < lineItems.length; i++) { - var lineItem = lineItems[i]; - lineItem.width = Math.floor(lineItem.width * scaleFactor); - lineItem.height = newHeight; - - testWidth += lineItem.width; - } - } - - return { - data: lineItems, - width: testWidth + requiredPadding() - }; - } - - - // If the responsive var is set to true then listen for resize method - // and prevent resizing from happening twice if responsive is set again during append phase! - if (settings.responsive && !data.get($this).__responsive) { - window.addEventListener('resize', function() { - initialWidth = data.get($this).width; - newWidth = $this.offsetWidth; - - //initiate resize - if (initialWidth != newWidth) { - var task_id = data.get($this).task_id; - if (task_id) { - task_id = clearTimeout(task_id); - task_id = null; - } - task_id = setTimeout(function() {reorderContent(data);}, 80); - data.set($this, {task_id: task_id}); - } - }); - data.set($this, {__responsive: true}); - } - - - // Get a copy of original data. 1 level deep copy is sufficient. - var _data = settings.data.slice(0); - var rowData = null; - var currentRow = 0; - var currentItem = 0; - - // Store all the data - var allData = []; - for (i = 0; i < _data.length; i++) { - allData.push(_data[i]); - } - data.set($this, {data: allData}); - - // While we have a new row - while ((rowData = getNextRow(_data, settings)) != null && rowData.data.length > 0) { - if (settings.rows > 0 && currentRow >= settings.rows) - break; - // remove the number of elements in the new row from the top of data stack - _data.splice(0, rowData.data.length); - - // Create a new row div, add class, append the htmls and insert the flowy items - var $row = document.createElement('DIV'); - if ($row.classList) - $row.classList.add(settings.rowClassName); - else - $row.className += ' ' + settings.rowClassName; - var slack = $this.clientWidth - rowData.width - 2 * settings.padding - for (i = 0; i < rowData.data.length; i++) { - var displayData = rowData.data[i]; - // Get the HTML object from custom render function passed as argument - var displayObject = settings.render.call($this, displayData); - extraw = Math.floor(slack/rowData.data.length) - if (i == 0) { - extraw += slack % rowData.data.length - } - // Set some basic stuff - displayObject.style.width = displayData.width + extraw; - displayObject.style.height = displayData.height; - displayObject.style.marginBottom = settings.padding + "px"; - displayObject.style.marginLeft = i == 0 ? '0' : settings.padding + "px"; - $row.append(displayObject); - - currentItem++; - } - $this.append($row); - // console.log ( "I> rowData.data.length="+rowData.data.length +" rowData.width="+rowData.width ); - - currentRow++; - data.set($this, {lastRow: rowData}); - } - // store the current state of settings and the items in last row - // we'll need this info when we append more items - data.set($this, {lastSettings: settings}); - - // onComplete callback - // pass back info about list of rows and items rendered - if (typeof(settings.complete) == 'function') { - var completeData = { - renderedRows: currentRow, - renderedItems: currentItem - } - settings.complete.call($this, completeData); - } - }; - -})(); diff --git a/output/assets/js/gallery.js b/output/assets/js/gallery.js new file mode 100644 index 00000000..af29f478 --- /dev/null +++ b/output/assets/js/gallery.js @@ -0,0 +1,32 @@ +function renderGallery(jsonContent, thumbnailSize) { + var container = document.getElementById("gallery_container"); + container.innerHTML = ''; + var layoutGeometry = require('justified-layout')(jsonContent, { + "containerWidth": container.offsetWidth, + "targetRowHeight": thumbnailSize * 0.6, + "boxSpacing": 5}); + container.style.height = layoutGeometry.containerHeight + 'px'; + var boxes = layoutGeometry.boxes; + for (var i = 0; i < boxes.length; i++) { + var img = document.createElement("img"); + img.setAttribute('src', jsonContent[i].url_thumb); + img.setAttribute('alt', jsonContent[i].title); + img.style.width = boxes[i].width + 'px'; + img.style.height = boxes[i].height + 'px'; + link = document.createElement("a"); + link.setAttribute('href', jsonContent[i].url); + link.setAttribute('class', 'image-reference'); + div = document.createElement("div"); + div.setAttribute('class', 'image-block'); + div.setAttribute('title', jsonContent[i].title); + div.setAttribute('data-toggle', "tooltip") + div.style.width = boxes[i].width + 'px'; + div.style.height = boxes[i].height + 'px'; + div.style.top = boxes[i].top + 'px'; + div.style.left = boxes[i].left + 'px'; + link.appendChild(img); + div.appendChild(link); + container.appendChild(div); + } +} + diff --git a/output/assets/js/gallery.min.js b/output/assets/js/gallery.min.js new file mode 100644 index 00000000..c4341550 --- /dev/null +++ b/output/assets/js/gallery.min.js @@ -0,0 +1 @@ +function renderGallery(t,e){var i=document.getElementById("gallery_container");i.innerHTML="";var l=require("justified-layout")(t,{containerWidth:i.offsetWidth,targetRowHeight:.6*e,boxSpacing:5});i.style.height=l.containerHeight+"px";for(var n=l.boxes,r=0;r<n.length;r++){var a=document.createElement("img");a.setAttribute("src",t[r].url_thumb),a.setAttribute("alt",t[r].title),a.style.width=n[r].width+"px",a.style.height=n[r].height+"px",link=document.createElement("a"),link.setAttribute("href",t[r].url),link.setAttribute("class","image-reference"),div=document.createElement("div"),div.setAttribute("class","image-block"),div.setAttribute("title",t[r].title),div.setAttribute("data-toggle","tooltip"),div.style.width=n[r].width+"px",div.style.height=n[r].height+"px",div.style.top=n[r].top+"px",div.style.left=n[r].left+"px",link.appendChild(a),div.appendChild(link),i.appendChild(div)}} diff --git a/output/assets/js/html5.js b/output/assets/js/html5.js index e68716ce..2b43bd06 100644 --- a/output/assets/js/html5.js +++ b/output/assets/js/html5.js @@ -1,4 +1,4 @@ /** -* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */ !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/output/assets/js/html5shiv-printshiv.min.js b/output/assets/js/html5shiv-printshiv.min.js index e68716ce..2b43bd06 100644 --- a/output/assets/js/html5shiv-printshiv.min.js +++ b/output/assets/js/html5shiv-printshiv.min.js @@ -1,4 +1,4 @@ /** -* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */ !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/output/assets/js/justified-layout.min.js b/output/assets/js/justified-layout.min.js new file mode 100644 index 00000000..b7c42abc --- /dev/null +++ b/output/assets/js/justified-layout.min.js @@ -0,0 +1,11 @@ +require=function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){/*! + * Copyright 2019 SmugMug, Inc. + * Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms. + * @license + */ +var merge=require("merge");var Row=module.exports=function(params){this.top=params.top;this.left=params.left;this.width=params.width;this.spacing=params.spacing;this.targetRowHeight=params.targetRowHeight;this.targetRowHeightTolerance=params.targetRowHeightTolerance;this.minAspectRatio=this.width/params.targetRowHeight*(1-params.targetRowHeightTolerance);this.maxAspectRatio=this.width/params.targetRowHeight*(1+params.targetRowHeightTolerance);this.edgeCaseMinRowHeight=params.edgeCaseMinRowHeight;this.edgeCaseMaxRowHeight=params.edgeCaseMaxRowHeight;this.widowLayoutStyle=params.widowLayoutStyle;this.isBreakoutRow=params.isBreakoutRow;this.items=[];this.height=0};Row.prototype={addItem:function(itemData){var newItems=this.items.concat(itemData),rowWidthWithoutSpacing=this.width-(newItems.length-1)*this.spacing,newAspectRatio=newItems.reduce(function(sum,item){return sum+item.aspectRatio},0),targetAspectRatio=rowWidthWithoutSpacing/this.targetRowHeight,previousRowWidthWithoutSpacing,previousAspectRatio,previousTargetAspectRatio;if(this.isBreakoutRow){if(this.items.length===0){if(itemData.aspectRatio>=1){this.items.push(itemData);this.completeLayout(rowWidthWithoutSpacing/itemData.aspectRatio,"justify");return true}}}if(newAspectRatio<this.minAspectRatio){this.items.push(merge(itemData));return true}else if(newAspectRatio>this.maxAspectRatio){if(this.items.length===0){this.items.push(merge(itemData));this.completeLayout(rowWidthWithoutSpacing/newAspectRatio,"justify");return true}previousRowWidthWithoutSpacing=this.width-(this.items.length-1)*this.spacing;previousAspectRatio=this.items.reduce(function(sum,item){return sum+item.aspectRatio},0);previousTargetAspectRatio=previousRowWidthWithoutSpacing/this.targetRowHeight;if(Math.abs(newAspectRatio-targetAspectRatio)>Math.abs(previousAspectRatio-previousTargetAspectRatio)){this.completeLayout(previousRowWidthWithoutSpacing/previousAspectRatio,"justify");return false}else{this.items.push(merge(itemData));this.completeLayout(rowWidthWithoutSpacing/newAspectRatio,"justify");return true}}else{this.items.push(merge(itemData));this.completeLayout(rowWidthWithoutSpacing/newAspectRatio,"justify");return true}},isLayoutComplete:function(){return this.height>0},completeLayout:function(newHeight,widowLayoutStyle){var itemWidthSum=this.left,rowWidthWithoutSpacing=this.width-(this.items.length-1)*this.spacing,clampedToNativeRatio,clampedHeight,errorWidthPerItem,roundedCumulativeErrors,singleItemGeometry,centerOffset;if(typeof widowLayoutStyle==="undefined"||["justify","center","left"].indexOf(widowLayoutStyle)<0){widowLayoutStyle="left"}clampedHeight=Math.max(this.edgeCaseMinRowHeight,Math.min(newHeight,this.edgeCaseMaxRowHeight));if(newHeight!==clampedHeight){this.height=clampedHeight;clampedToNativeRatio=rowWidthWithoutSpacing/clampedHeight/(rowWidthWithoutSpacing/newHeight)}else{this.height=newHeight;clampedToNativeRatio=1}this.items.forEach(function(item){item.top=this.top;item.width=item.aspectRatio*this.height*clampedToNativeRatio;item.height=this.height;item.left=itemWidthSum;itemWidthSum+=item.width+this.spacing},this);if(widowLayoutStyle==="justify"){itemWidthSum-=this.spacing+this.left;errorWidthPerItem=(itemWidthSum-this.width)/this.items.length;roundedCumulativeErrors=this.items.map(function(item,i){return Math.round((i+1)*errorWidthPerItem)});if(this.items.length===1){singleItemGeometry=this.items[0];singleItemGeometry.width-=Math.round(errorWidthPerItem)}else{this.items.forEach(function(item,i){if(i>0){item.left-=roundedCumulativeErrors[i-1];item.width-=roundedCumulativeErrors[i]-roundedCumulativeErrors[i-1]}else{item.width-=roundedCumulativeErrors[i]}})}}else if(widowLayoutStyle==="center"){centerOffset=(this.width-itemWidthSum)/2;this.items.forEach(function(item){item.left+=centerOffset+this.spacing},this)}},forceComplete:function(fitToWidth,rowHeight){if(typeof rowHeight==="number"){this.completeLayout(rowHeight,this.widowLayoutStyle)}else{this.completeLayout(this.targetRowHeight,this.widowLayoutStyle)}},getItems:function(){return this.items}}},{merge:2}],2:[function(require,module,exports){(function(isNode){var Public=function(clone){return merge(clone===true,false,arguments)},publicName="merge";Public.recursive=function(clone){return merge(clone===true,true,arguments)};Public.clone=function(input){var output=input,type=typeOf(input),index,size;if(type==="array"){output=[];size=input.length;for(index=0;index<size;++index)output[index]=Public.clone(input[index])}else if(type==="object"){output={};for(index in input)output[index]=Public.clone(input[index])}return output};function merge_recursive(base,extend){if(typeOf(base)!=="object")return extend;for(var key in extend){if(typeOf(base[key])==="object"&&typeOf(extend[key])==="object"){base[key]=merge_recursive(base[key],extend[key])}else{base[key]=extend[key]}}return base}function merge(clone,recursive,argv){var result=argv[0],size=argv.length;if(clone||typeOf(result)!=="object")result={};for(var index=0;index<size;++index){var item=argv[index],type=typeOf(item);if(type!=="object")continue;for(var key in item){if(key==="__proto__")continue;var sitem=clone?Public.clone(item[key]):item[key];if(recursive){result[key]=merge_recursive(result[key],sitem)}else{result[key]=sitem}}}return result}function typeOf(input){return{}.toString.call(input).slice(8,-1).toLowerCase()}if(isNode){module.exports=Public}else{window[publicName]=Public}})(typeof module==="object"&&module&&typeof module.exports==="object"&&module.exports)},{}],"justified-layout":[function(require,module,exports){/*! + * Copyright 2019 SmugMug, Inc. + * Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms. + * @license + */ +"use strict";var merge=require("merge"),Row=require("./row");function createNewRow(layoutConfig,layoutData){var isBreakoutRow;if(layoutConfig.fullWidthBreakoutRowCadence!==false){if((layoutData._rows.length+1)%layoutConfig.fullWidthBreakoutRowCadence===0){isBreakoutRow=true}}return new Row({top:layoutData._containerHeight,left:layoutConfig.containerPadding.left,width:layoutConfig.containerWidth-layoutConfig.containerPadding.left-layoutConfig.containerPadding.right,spacing:layoutConfig.boxSpacing.horizontal,targetRowHeight:layoutConfig.targetRowHeight,targetRowHeightTolerance:layoutConfig.targetRowHeightTolerance,edgeCaseMinRowHeight:.5*layoutConfig.targetRowHeight,edgeCaseMaxRowHeight:2*layoutConfig.targetRowHeight,rightToLeft:false,isBreakoutRow:isBreakoutRow,widowLayoutStyle:layoutConfig.widowLayoutStyle})}function addRow(layoutConfig,layoutData,row){layoutData._rows.push(row);layoutData._layoutItems=layoutData._layoutItems.concat(row.getItems());layoutData._containerHeight+=row.height+layoutConfig.boxSpacing.vertical;return row.items}function computeLayout(layoutConfig,layoutData,itemLayoutData){var laidOutItems=[],itemAdded,currentRow,nextToLastRowHeight;if(layoutConfig.forceAspectRatio){itemLayoutData.forEach(function(itemData){itemData.forcedAspectRatio=true;itemData.aspectRatio=layoutConfig.forceAspectRatio})}itemLayoutData.some(function(itemData,i){if(isNaN(itemData.aspectRatio)){throw new Error("Item "+i+" has an invalid aspect ratio")}if(!currentRow){currentRow=createNewRow(layoutConfig,layoutData)}itemAdded=currentRow.addItem(itemData);if(currentRow.isLayoutComplete()){laidOutItems=laidOutItems.concat(addRow(layoutConfig,layoutData,currentRow));if(layoutData._rows.length>=layoutConfig.maxNumRows){currentRow=null;return true}currentRow=createNewRow(layoutConfig,layoutData);if(!itemAdded){itemAdded=currentRow.addItem(itemData);if(currentRow.isLayoutComplete()){laidOutItems=laidOutItems.concat(addRow(layoutConfig,layoutData,currentRow));if(layoutData._rows.length>=layoutConfig.maxNumRows){currentRow=null;return true}currentRow=createNewRow(layoutConfig,layoutData)}}}});if(currentRow&¤tRow.getItems().length&&layoutConfig.showWidows){if(layoutData._rows.length){if(layoutData._rows[layoutData._rows.length-1].isBreakoutRow){nextToLastRowHeight=layoutData._rows[layoutData._rows.length-1].targetRowHeight}else{nextToLastRowHeight=layoutData._rows[layoutData._rows.length-1].height}currentRow.forceComplete(false,nextToLastRowHeight)}else{currentRow.forceComplete(false)}laidOutItems=laidOutItems.concat(addRow(layoutConfig,layoutData,currentRow));layoutConfig._widowCount=currentRow.getItems().length}layoutData._containerHeight=layoutData._containerHeight-layoutConfig.boxSpacing.vertical;layoutData._containerHeight=layoutData._containerHeight+layoutConfig.containerPadding.bottom;return{containerHeight:layoutData._containerHeight,widowCount:layoutConfig._widowCount,boxes:layoutData._layoutItems}}module.exports=function(input,config){var layoutConfig={};var layoutData={};var defaults={containerWidth:1060,containerPadding:10,boxSpacing:10,targetRowHeight:320,targetRowHeightTolerance:.25,maxNumRows:Number.POSITIVE_INFINITY,forceAspectRatio:false,showWidows:true,fullWidthBreakoutRowCadence:false,widowLayoutStyle:"left"};var containerPadding={};var boxSpacing={};config=config||{};layoutConfig=merge(defaults,config);containerPadding.top=!isNaN(parseFloat(layoutConfig.containerPadding.top))?layoutConfig.containerPadding.top:layoutConfig.containerPadding;containerPadding.right=!isNaN(parseFloat(layoutConfig.containerPadding.right))?layoutConfig.containerPadding.right:layoutConfig.containerPadding;containerPadding.bottom=!isNaN(parseFloat(layoutConfig.containerPadding.bottom))?layoutConfig.containerPadding.bottom:layoutConfig.containerPadding;containerPadding.left=!isNaN(parseFloat(layoutConfig.containerPadding.left))?layoutConfig.containerPadding.left:layoutConfig.containerPadding;boxSpacing.horizontal=!isNaN(parseFloat(layoutConfig.boxSpacing.horizontal))?layoutConfig.boxSpacing.horizontal:layoutConfig.boxSpacing;boxSpacing.vertical=!isNaN(parseFloat(layoutConfig.boxSpacing.vertical))?layoutConfig.boxSpacing.vertical:layoutConfig.boxSpacing;layoutConfig.containerPadding=containerPadding;layoutConfig.boxSpacing=boxSpacing;layoutData._layoutItems=[];layoutData._awakeItems=[];layoutData._inViewportItems=[];layoutData._leadingOrphans=[];layoutData._trailingOrphans=[];layoutData._containerHeight=layoutConfig.containerPadding.top;layoutData._rows=[];layoutData._orphans=[];layoutConfig._widowCount=0;return computeLayout(layoutConfig,layoutData,input.map(function(item){if(item.width&&item.height){return{aspectRatio:item.width/item.height}}else{return{aspectRatio:item}}}))}},{"./row":1,merge:2}]},{},[]); \ No newline at end of file diff --git a/output/assets/js/luxon.min.js b/output/assets/js/luxon.min.js new file mode 100644 index 00000000..1e7696f9 --- /dev/null +++ b/output/assets/js/luxon.min.js @@ -0,0 +1 @@ +var luxon=function(t){"use strict";function j(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,function(t){t=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0===n)return("string"===e?String:Number)(t);n=n.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}(t,"string");return"symbol"==typeof t?t:String(t)}(r.key),r)}}function o(t,e,n){e&&j(t.prototype,e),n&&j(t,n),Object.defineProperty(t,"prototype",{writable:!1})}function s(){return(s=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n,r=arguments[e];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}function i(t,e){t.prototype=Object.create(e.prototype),z(t.prototype.constructor=t,e)}function A(t){return(A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function z(t,e){return(z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function q(t,e,n){return(q=function(){if("undefined"!=typeof Reflect&&Reflect.construct&&!Reflect.construct.sham){if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(t){}}}()?Reflect.construct.bind():function(t,e,n){var r=[null];r.push.apply(r,e);e=new(Function.bind.apply(t,r));return n&&z(e,n.prototype),e}).apply(null,arguments)}function _(t){var n="function"==typeof Map?new Map:void 0;return function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return q(t,arguments,A(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),z(e,t)}(t)}function U(t,e){if(null==t)return{};for(var n,r={},i=Object.keys(t),o=0;o<i.length;o++)n=i[o],0<=e.indexOf(n)||(r[n]=t[n]);return r}function P(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function R(t,e){var n,r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){var n;if(t)return"string"==typeof t?P(t,e):"Map"===(n="Object"===(n=Object.prototype.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:n)||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?P(t,e):void 0}(t))||e&&t&&"number"==typeof t.length)return r&&(t=r),n=0,function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var e=function(t){function e(){return t.apply(this,arguments)||this}return i(e,t),e}(_(Error)),H=function(e){function t(t){return e.call(this,"Invalid DateTime: "+t.toMessage())||this}return i(t,e),t}(e),W=function(e){function t(t){return e.call(this,"Invalid Interval: "+t.toMessage())||this}return i(t,e),t}(e),J=function(e){function t(t){return e.call(this,"Invalid Duration: "+t.toMessage())||this}return i(t,e),t}(e),Y=function(t){function e(){return t.apply(this,arguments)||this}return i(e,t),e}(e),G=function(e){function t(t){return e.call(this,"Invalid unit "+t)||this}return i(t,e),t}(e),u=function(t){function e(){return t.apply(this,arguments)||this}return i(e,t),e}(e),n=function(t){function e(){return t.call(this,"Zone is an abstract class")||this}return i(e,t),e}(e),e="numeric",r="short",a="long",$={year:e,month:e,day:e},B={year:e,month:r,day:e},Q={year:e,month:r,day:e,weekday:r},K={year:e,month:a,day:e},X={year:e,month:a,day:e,weekday:a},tt={hour:e,minute:e},et={hour:e,minute:e,second:e},nt={hour:e,minute:e,second:e,timeZoneName:r},rt={hour:e,minute:e,second:e,timeZoneName:a},it={hour:e,minute:e,hourCycle:"h23"},ot={hour:e,minute:e,second:e,hourCycle:"h23"},at={hour:e,minute:e,second:e,hourCycle:"h23",timeZoneName:r},ut={hour:e,minute:e,second:e,hourCycle:"h23",timeZoneName:a},st={year:e,month:e,day:e,hour:e,minute:e},ct={year:e,month:e,day:e,hour:e,minute:e,second:e},lt={year:e,month:r,day:e,hour:e,minute:e},ft={year:e,month:r,day:e,hour:e,minute:e,second:e},dt={year:e,month:r,day:e,weekday:r,hour:e,minute:e},ht={year:e,month:a,day:e,hour:e,minute:e,timeZoneName:r},mt={year:e,month:a,day:e,hour:e,minute:e,second:e,timeZoneName:r},yt={year:e,month:a,day:e,weekday:a,hour:e,minute:e,timeZoneName:a},vt={year:e,month:a,day:e,weekday:a,hour:e,minute:e,second:e,timeZoneName:a},c=function(){function t(){}var e=t.prototype;return e.offsetName=function(t,e){throw new n},e.formatOffset=function(t,e){throw new n},e.offset=function(t){throw new n},e.equals=function(t){throw new n},o(t,[{key:"type",get:function(){throw new n}},{key:"name",get:function(){throw new n}},{key:"ianaName",get:function(){return this.name}},{key:"isUniversal",get:function(){throw new n}},{key:"isValid",get:function(){throw new n}}]),t}(),pt=null,gt=function(t){function e(){return t.apply(this,arguments)||this}i(e,t);var n=e.prototype;return n.offsetName=function(t,e){return te(t,e.format,e.locale)},n.formatOffset=function(t,e){return ie(this.offset(t),e)},n.offset=function(t){return-new Date(t).getTimezoneOffset()},n.equals=function(t){return"system"===t.type},o(e,[{key:"type",get:function(){return"system"}},{key:"name",get:function(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return pt=null===pt?new e:pt}}]),e}(c),wt={};var kt={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};var bt={},f=function(n){function r(t){var e=n.call(this)||this;return e.zoneName=t,e.valid=r.isValidZone(t),e}i(r,n),r.create=function(t){return bt[t]||(bt[t]=new r(t)),bt[t]},r.resetCache=function(){bt={},wt={}},r.isValidSpecifier=function(t){return this.isValidZone(t)},r.isValidZone=function(t){if(!t)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:t}).format(),!0}catch(t){return!1}};var t=r.prototype;return t.offsetName=function(t,e){return te(t,e.format,e.locale,this.name)},t.formatOffset=function(t,e){return ie(this.offset(t),e)},t.offset=function(t){var e,n,r,i,o,a,u,s,t=new Date(t);return isNaN(t)?NaN:(i=this.name,wt[i]||(wt[i]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),a=(i=(i=wt[i]).formatToParts?function(t,e){for(var n=t.formatToParts(e),r=[],i=0;i<n.length;i++){var o=n[i],a=o.type,o=o.value,u=kt[a];"era"===a?r[u]=o:b(u)||(r[u]=parseInt(o,10))}return r}(i,t):(o=t,i=(i=i).format(o).replace(/\u200E/g,""),i=(o=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(i))[1],a=o[2],[o[3],i,a,o[4],o[5],o[6],o[7]]))[0],o=i[1],e=i[2],n=i[3],u=i[4],r=i[5],i=i[6],u=24===u?0:u,s=(t=+t)%1e3,(Qt({year:a="BC"===n?1-Math.abs(a):a,month:o,day:e,hour:u,minute:r,second:i,millisecond:0})-(t-=0<=s?s:1e3+s))/6e4)},t.equals=function(t){return"iana"===t.type&&t.name===this.name},o(r,[{key:"type",get:function(){return"iana"}},{key:"name",get:function(){return this.zoneName}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return this.valid}}]),r}(c),Tt=["base"],St=["padTo","floor"],Ot={};var Mt={};function Nt(t,e){void 0===e&&(e={});var n=JSON.stringify([t,e]),r=Mt[n];return r||(r=new Intl.DateTimeFormat(t,e),Mt[n]=r),r}var Dt={};var Et={};var Vt=null;function It(t,e,n,r,i){t=t.listingMode(n);return"error"===t?null:("en"===t?r:i)(e)}var xt=function(){function t(t,e,n){this.padTo=n.padTo||0,this.floor=n.floor||!1,n.padTo,n.floor;var r=U(n,St);(!e||0<Object.keys(r).length)&&(e=s({useGrouping:!1},n),0<n.padTo&&(e.minimumIntegerDigits=n.padTo),this.inf=(r=t,void 0===(n=e)&&(n={}),t=JSON.stringify([r,n]),(e=Dt[t])||(e=new Intl.NumberFormat(r,n),Dt[t]=e),e))}return t.prototype.format=function(t){var e;return this.inf?(e=this.floor?Math.floor(t):t,this.inf.format(e)):l(this.floor?Math.floor(t):Yt(t,3),this.padTo)},t}(),Ct=function(){function t(t,e,n){this.opts=n;var n=this.originalZone=void 0,r=(this.opts.timeZone?this.dt=t:"fixed"===t.zone.type?(r=0<=(r=t.offset/60*-1)?"Etc/GMT+"+r:"Etc/GMT"+r,0!==t.offset&&f.create(r).valid?(n=r,this.dt=t):(n="UTC",this.dt=0===t.offset?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)):"system"===t.zone.type?this.dt=t:"iana"===t.zone.type?n=(this.dt=t).zone.name:(this.dt=t.setZone(n="UTC").plus({minutes:t.offset}),this.originalZone=t.zone),s({},this.opts));r.timeZone=r.timeZone||n,this.dtf=Nt(e,r)}var e=t.prototype;return e.format=function(){return this.originalZone?this.formatToParts().map(function(t){return t.value}).join(""):this.dtf.format(this.dt.toJSDate())},e.formatToParts=function(){var e=this,t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(function(t){return"timeZoneName"===t.type?s({},t,{value:e.originalZone.offsetName(e.dt.ts,{locale:e.dt.locale,format:e.opts.timeZoneName})}):t}):t},e.resolvedOptions=function(){return this.dtf.resolvedOptions()},t}(),Zt=function(){function t(t,e,n){var r;this.opts=s({style:"long"},n),!e&&Ht()&&(this.rtf=(e=t,(n=t=void 0===(t=n)?{}:t).base,n=U(n=t,Tt),n=JSON.stringify([e,n]),(r=Et[n])||(r=new Intl.RelativeTimeFormat(e,t),Et[n]=r),r))}var e=t.prototype;return e.format=function(t,e){if(this.rtf)return this.rtf.format(t,e);var n=e,e=t,t=this.opts.numeric,r="long"!==this.opts.style,i=(void 0===t&&(t="always"),void 0===r&&(r=!1),{years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]}),o=-1===["hours","minutes","seconds"].indexOf(n);if("auto"===t&&o){var a="days"===n;switch(e){case 1:return a?"tomorrow":"next "+i[n][0];case-1:return a?"yesterday":"last "+i[n][0];case 0:return a?"today":"this "+i[n][0]}}var t=Object.is(e,-0)||e<0,e=1===(o=Math.abs(e)),u=i[n],r=r?!e&&u[2]||u[1]:e?i[n][0]:n;return t?o+" "+r+" ago":"in "+o+" "+r},e.formatToParts=function(t,e){return this.rtf?this.rtf.formatToParts(t,e):[]},t}(),g=function(){function i(t,e,n,r){var t=function(e){var n=e.indexOf("-x-");if(-1===(n=(e=-1!==n?e.substring(0,n):e).indexOf("-u-")))return[e];try{r=Nt(e).resolvedOptions(),i=e}catch(t){var e=e.substring(0,n),r=Nt(e).resolvedOptions(),i=e}return[i,(n=r).numberingSystem,n.calendar]}(t),i=t[0],o=t[1],t=t[2];this.locale=i,this.numberingSystem=e||o||null,this.outputCalendar=n||t||null,this.intl=(i=this.locale,e=this.numberingSystem,((o=this.outputCalendar)||e)&&(i.includes("-u-")||(i+="-u"),o&&(i+="-ca-"+o),e)&&(i+="-nu-"+e),i),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}i.fromOpts=function(t){return i.create(t.locale,t.numberingSystem,t.outputCalendar,t.defaultToEN)},i.create=function(t,e,n,r){void 0===r&&(r=!1);t=t||k.defaultLocale;return new i(t||(r?"en-US":Vt=Vt||(new Intl.DateTimeFormat).resolvedOptions().locale),e||k.defaultNumberingSystem,n||k.defaultOutputCalendar,t)},i.resetCache=function(){Vt=null,Mt={},Dt={},Et={}},i.fromObject=function(t){var t=void 0===t?{}:t,e=t.locale,n=t.numberingSystem,t=t.outputCalendar;return i.create(e,n,t)};var t=i.prototype;return t.listingMode=function(){var t=this.isEnglish(),e=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return t&&e?"en":"intl"},t.clone=function(t){return t&&0!==Object.getOwnPropertyNames(t).length?i.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,t.defaultToEN||!1):this},t.redefaultToEN=function(t){return this.clone(s({},t=void 0===t?{}:t,{defaultToEN:!0}))},t.redefaultToSystem=function(t){return this.clone(s({},t=void 0===t?{}:t,{defaultToEN:!1}))},t.months=function(n,r,t){var i=this;return void 0===r&&(r=!1),It(this,n,t=void 0===t?!0:t,ce,function(){var e=r?{month:n,day:"numeric"}:{month:n},t=r?"format":"standalone";return i.monthsCache[t][n]||(i.monthsCache[t][n]=function(t){for(var e=[],n=1;n<=12;n++){var r=L.utc(2016,n,1);e.push(t(r))}return e}(function(t){return i.extract(t,e,"month")})),i.monthsCache[t][n]})},t.weekdays=function(n,r,t){var i=this;return void 0===r&&(r=!1),It(this,n,t=void 0===t?!0:t,he,function(){var e=r?{weekday:n,year:"numeric",month:"long",day:"numeric"}:{weekday:n},t=r?"format":"standalone";return i.weekdaysCache[t][n]||(i.weekdaysCache[t][n]=function(t){for(var e=[],n=1;n<=7;n++){var r=L.utc(2016,11,13+n);e.push(t(r))}return e}(function(t){return i.extract(t,e,"weekday")})),i.weekdaysCache[t][n]})},t.meridiems=function(t){var n=this;return It(this,void 0,t=void 0===t?!0:t,function(){return me},function(){var e;return n.meridiemCache||(e={hour:"numeric",hourCycle:"h12"},n.meridiemCache=[L.utc(2016,11,13,9),L.utc(2016,11,13,19)].map(function(t){return n.extract(t,e,"dayperiod")})),n.meridiemCache})},t.eras=function(t,e){var n=this;return It(this,t,e=void 0===e?!0:e,ge,function(){var e={era:t};return n.eraCache[t]||(n.eraCache[t]=[L.utc(-40,1,1),L.utc(2017,1,1)].map(function(t){return n.extract(t,e,"era")})),n.eraCache[t]})},t.extract=function(t,e,n){t=this.dtFormatter(t,e).formatToParts().find(function(t){return t.type.toLowerCase()===n});return t?t.value:null},t.numberFormatter=function(t){return new xt(this.intl,(t=void 0===t?{}:t).forceSimple||this.fastNumbers,t)},t.dtFormatter=function(t,e){return new Ct(t,this.intl,e=void 0===e?{}:e)},t.relFormatter=function(t){return void 0===t&&(t={}),new Zt(this.intl,this.isEnglish(),t)},t.listFormatter=function(t){return void 0===t&&(t={}),e=this.intl,void 0===(t=t)&&(t={}),n=JSON.stringify([e,t]),(r=Ot[n])||(r=new Intl.ListFormat(e,t),Ot[n]=r),r;var e,n,r},t.isEnglish=function(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")},t.equals=function(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar},o(i,[{key:"fastNumbers",get:function(){var t;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(t=this).numberingSystem||"latn"===t.numberingSystem)&&("latn"===t.numberingSystem||!t.locale||t.locale.startsWith("en")||"latn"===new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}}]),i}(),Ft=null,d=function(n){function e(t){var e=n.call(this)||this;return e.fixed=t,e}i(e,n),e.instance=function(t){return 0===t?e.utcInstance:new e(t)},e.parseSpecifier=function(t){if(t){t=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new e(ee(t[1],t[2]))}return null};var t=e.prototype;return t.offsetName=function(){return this.name},t.formatOffset=function(t,e){return ie(this.fixed,e)},t.offset=function(){return this.fixed},t.equals=function(t){return"fixed"===t.type&&t.fixed===this.fixed},o(e,[{key:"type",get:function(){return"fixed"}},{key:"name",get:function(){return 0===this.fixed?"UTC":"UTC"+ie(this.fixed,"narrow")}},{key:"ianaName",get:function(){return 0===this.fixed?"Etc/UTC":"Etc/GMT"+ie(-this.fixed,"narrow")}},{key:"isUniversal",get:function(){return!0}},{key:"isValid",get:function(){return!0}}],[{key:"utcInstance",get:function(){return Ft=null===Ft?new e(0):Ft}}]),e}(c),Lt=function(n){function t(t){var e=n.call(this)||this;return e.zoneName=t,e}i(t,n);var e=t.prototype;return e.offsetName=function(){return null},e.formatOffset=function(){return""},e.offset=function(){return NaN},e.equals=function(){return!1},o(t,[{key:"type",get:function(){return"invalid"}},{key:"name",get:function(){return this.zoneName}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!1}}]),t}(c);function w(t,e){var n;return b(t)||null===t?e:t instanceof c?t:"string"==typeof t?"default"===(n=t.toLowerCase())?e:"local"===n||"system"===n?gt.instance:"utc"===n||"gmt"===n?d.utcInstance:d.parseSpecifier(n)||f.create(t):v(t)?d.instance(t):"object"==typeof t&&t.offset&&"number"==typeof t.offset?t:new Lt(t)}var jt,At=function(){return Date.now()},zt="system",qt=null,_t=null,Ut=null,Pt=60,k=function(){function t(){}return t.resetCaches=function(){g.resetCache(),f.resetCache()},o(t,null,[{key:"now",get:function(){return At},set:function(t){At=t}},{key:"defaultZone",get:function(){return w(zt,gt.instance)},set:function(t){zt=t}},{key:"defaultLocale",get:function(){return qt},set:function(t){qt=t}},{key:"defaultNumberingSystem",get:function(){return _t},set:function(t){_t=t}},{key:"defaultOutputCalendar",get:function(){return Ut},set:function(t){Ut=t}},{key:"twoDigitCutoffYear",get:function(){return Pt},set:function(t){Pt=t%100}},{key:"throwOnInvalid",get:function(){return jt},set:function(t){jt=t}}]),t}();function b(t){return void 0===t}function v(t){return"number"==typeof t}function Rt(t){return"number"==typeof t&&t%1==0}function Ht(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(t){return!1}}function Wt(t,n,r){if(0!==t.length)return t.reduce(function(t,e){e=[n(e),e];return t&&r(t[0],e[0])===t[0]?t:e},null)[1]}function h(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function T(t,e,n){return Rt(t)&&e<=t&&t<=n}function l(t,e){void 0===e&&(e=2);t=t<0?"-"+(""+-t).padStart(e,"0"):(""+t).padStart(e,"0");return t}function m(t){if(!b(t)&&null!==t&&""!==t)return parseInt(t,10)}function y(t){if(!b(t)&&null!==t&&""!==t)return parseFloat(t)}function Jt(t){if(!b(t)&&null!==t&&""!==t)return t=1e3*parseFloat("0."+t),Math.floor(t)}function Yt(t,e,n){void 0===n&&(n=!1);e=Math.pow(10,e);return(n?Math.trunc:Math.round)(t*e)/e}function Gt(t){return t%4==0&&(t%100!=0||t%400==0)}function $t(t){return Gt(t)?366:365}function Bt(t,e){var n,r=(r=e-1)-(n=12)*Math.floor(r/n)+1;return 2==r?Gt(t+(e-r)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Qt(t){var e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&0<=t.year&&(e=new Date(e)).setUTCFullYear(t.year,t.month-1,t.day),+e}function Kt(t){var e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,t=t-1,t=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return 4==e||3==t?53:52}function Xt(t){return 99<t?t:t>k.twoDigitCutoffYear?1900+t:2e3+t}function te(t,e,n,r){void 0===r&&(r=null);var t=new Date(t),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"},r=(r&&(i.timeZone=r),s({timeZoneName:e},i)),e=new Intl.DateTimeFormat(n,r).formatToParts(t).find(function(t){return"timezonename"===t.type.toLowerCase()});return e?e.value:null}function ee(t,e){t=parseInt(t,10),Number.isNaN(t)&&(t=0),e=parseInt(e,10)||0;return 60*t+(t<0||Object.is(t,-0)?-e:e)}function ne(t){var e=Number(t);if("boolean"==typeof t||""===t||Number.isNaN(e))throw new u("Invalid unit value "+t);return e}function re(t,e){var n,r,i={};for(n in t)h(t,n)&&null!=(r=t[n])&&(i[e(n)]=ne(r));return i}function ie(t,e){var n=Math.trunc(Math.abs(t/60)),r=Math.trunc(Math.abs(t%60)),i=0<=t?"+":"-";switch(e){case"short":return i+l(n,2)+":"+l(r,2);case"narrow":return i+n+(0<r?":"+r:"");case"techie":return i+l(n,2)+l(r,2);default:throw new RangeError("Value format "+e+" is out of range for property format")}}function oe(t){return n=t,["hour","minute","second","millisecond"].reduce(function(t,e){return t[e]=n[e],t},{});var n}var ae=["January","February","March","April","May","June","July","August","September","October","November","December"],ue=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],se=["J","F","M","A","M","J","J","A","S","O","N","D"];function ce(t){switch(t){case"narrow":return[].concat(se);case"short":return[].concat(ue);case"long":return[].concat(ae);case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var le=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],fe=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],de=["M","T","W","T","F","S","S"];function he(t){switch(t){case"narrow":return[].concat(de);case"short":return[].concat(fe);case"long":return[].concat(le);case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var me=["AM","PM"],ye=["Before Christ","Anno Domini"],ve=["BC","AD"],pe=["B","A"];function ge(t){switch(t){case"narrow":return[].concat(pe);case"short":return[].concat(ve);case"long":return[].concat(ye);default:return null}}function we(t,e){for(var n="",r=R(t);!(i=r()).done;){var i=i.value;i.literal?n+=i.val:n+=e(i.val)}return n}var ke={D:$,DD:B,DDD:K,DDDD:X,t:tt,tt:et,ttt:nt,tttt:rt,T:it,TT:ot,TTT:at,TTTT:ut,f:st,ff:lt,fff:ht,ffff:yt,F:ct,FF:ft,FFF:mt,FFFF:vt},S=function(){function d(t,e){this.opts=e,this.loc=t,this.systemLoc=null}d.create=function(t,e){return new d(t,e=void 0===e?{}:e)},d.parseFormat=function(t){for(var e=null,n="",r=!1,i=[],o=0;o<t.length;o++){var a=t.charAt(o);"'"===a?(0<n.length&&i.push({literal:r||/^\s+$/.test(n),val:n}),e=null,n="",r=!r):r||a===e?n+=a:(0<n.length&&i.push({literal:/^\s+$/.test(n),val:n}),e=n=a)}return 0<n.length&&i.push({literal:r||/^\s+$/.test(n),val:n}),i},d.macroTokenToFormatOpts=function(t){return ke[t]};var t=d.prototype;return t.formatWithSystemDefault=function(t,e){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,s({},this.opts,e)).format()},t.formatDateTime=function(t,e){return this.loc.dtFormatter(t,s({},this.opts,e=void 0===e?{}:e)).format()},t.formatDateTimeParts=function(t,e){return this.loc.dtFormatter(t,s({},this.opts,e=void 0===e?{}:e)).formatToParts()},t.formatInterval=function(t,e){return this.loc.dtFormatter(t.start,s({},this.opts,e=void 0===e?{}:e)).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())},t.resolvedOptions=function(t,e){return this.loc.dtFormatter(t,s({},this.opts,e=void 0===e?{}:e)).resolvedOptions()},t.num=function(t,e){var n;return void 0===e&&(e=0),this.opts.forceSimple?l(t,e):(n=s({},this.opts),0<e&&(n.padTo=e),this.loc.numberFormatter(n).format(t))},t.formatDateTimeFromString=function(r,t){var n=this,i="en"===this.loc.listingMode(),e=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,o=function(t,e){return n.loc.extract(r,t,e)},a=function(t){return r.isOffsetFixed&&0===r.offset&&t.allowZ?"Z":r.isValid?r.zone.formatOffset(r.ts,t.format):""},u=function(){return i?me[r.hour<12?0:1]:o({hour:"numeric",hourCycle:"h12"},"dayperiod")},s=function(t,e){return i?(n=r,ce(t)[n.month-1]):o(e?{month:t}:{month:t,day:"numeric"},"month");var n},c=function(t,e){return i?(n=r,he(t)[n.weekday-1]):o(e?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday");var n},l=function(t){var e=d.macroTokenToFormatOpts(t);return e?n.formatWithSystemDefault(r,e):t},f=function(t){return i?(e=r,ge(t)[e.year<0?0:1]):o({era:t},"era");var e};return we(d.parseFormat(t),function(t){switch(t){case"S":return n.num(r.millisecond);case"u":case"SSS":return n.num(r.millisecond,3);case"s":return n.num(r.second);case"ss":return n.num(r.second,2);case"uu":return n.num(Math.floor(r.millisecond/10),2);case"uuu":return n.num(Math.floor(r.millisecond/100));case"m":return n.num(r.minute);case"mm":return n.num(r.minute,2);case"h":return n.num(r.hour%12==0?12:r.hour%12);case"hh":return n.num(r.hour%12==0?12:r.hour%12,2);case"H":return n.num(r.hour);case"HH":return n.num(r.hour,2);case"Z":return a({format:"narrow",allowZ:n.opts.allowZ});case"ZZ":return a({format:"short",allowZ:n.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:n.opts.allowZ});case"ZZZZ":return r.zone.offsetName(r.ts,{format:"short",locale:n.loc.locale});case"ZZZZZ":return r.zone.offsetName(r.ts,{format:"long",locale:n.loc.locale});case"z":return r.zoneName;case"a":return u();case"d":return e?o({day:"numeric"},"day"):n.num(r.day);case"dd":return e?o({day:"2-digit"},"day"):n.num(r.day,2);case"c":return n.num(r.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return n.num(r.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return e?o({month:"numeric",day:"numeric"},"month"):n.num(r.month);case"LL":return e?o({month:"2-digit",day:"numeric"},"month"):n.num(r.month,2);case"LLL":return s("short",!0);case"LLLL":return s("long",!0);case"LLLLL":return s("narrow",!0);case"M":return e?o({month:"numeric"},"month"):n.num(r.month);case"MM":return e?o({month:"2-digit"},"month"):n.num(r.month,2);case"MMM":return s("short",!1);case"MMMM":return s("long",!1);case"MMMMM":return s("narrow",!1);case"y":return e?o({year:"numeric"},"year"):n.num(r.year);case"yy":return e?o({year:"2-digit"},"year"):n.num(r.year.toString().slice(-2),2);case"yyyy":return e?o({year:"numeric"},"year"):n.num(r.year,4);case"yyyyyy":return e?o({year:"numeric"},"year"):n.num(r.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return n.num(r.weekYear.toString().slice(-2),2);case"kkkk":return n.num(r.weekYear,4);case"W":return n.num(r.weekNumber);case"WW":return n.num(r.weekNumber,2);case"o":return n.num(r.ordinal);case"ooo":return n.num(r.ordinal,3);case"q":return n.num(r.quarter);case"qq":return n.num(r.quarter,2);case"X":return n.num(Math.floor(r.ts/1e3));case"x":return n.num(r.ts);default:return l(t)}})},t.formatDurationFromString=function(t,e){var n,r=this,i=function(t){switch(t[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},e=d.parseFormat(e),o=e.reduce(function(t,e){var n=e.literal,e=e.val;return n?t:t.concat(e)},[]),t=t.shiftTo.apply(t,o.map(i).filter(function(t){return t}));return we(e,(n=t,function(t){var e=i(t);return e?r.num(n.get(e),t.length):t}))},d}(),O=function(){function t(t,e){this.reason=t,this.explanation=e}return t.prototype.toMessage=function(){return this.explanation?this.reason+": "+this.explanation:this.reason},t}(),r=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function p(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var r=e.reduce(function(t,e){return t+e.source},"");return RegExp("^"+r+"$")}function M(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(o){return e.reduce(function(t,e){var n=t[0],r=t[1],t=t[2],e=e(o,t),t=e[0],i=e[1],e=e[2];return[s({},n,t),i||r,e]},[{},null,1]).slice(0,2)}}function N(t){if(null!=t){for(var e=arguments.length,n=new Array(1<e?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];for(var i=0,o=n;i<o.length;i++){var a=o[i],u=a[0],a=a[1],u=u.exec(t);if(u)return a(u)}}return[null,null]}function be(){for(var t=arguments.length,i=new Array(t),e=0;e<t;e++)i[e]=arguments[e];return function(t,e){for(var n={},r=0;r<i.length;r++)n[i[r]]=m(t[e+r]);return[n,null,e+r]}}var e=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,a=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Te=RegExp(a.source+("(?:"+e.source+"?(?:\\[("+r.source+")\\])?)?")),D=RegExp("(?:T"+Te.source+")?"),Se=be("weekYear","weekNumber","weekDay"),Oe=be("year","ordinal"),e=RegExp(a.source+" ?(?:"+e.source+"|("+r.source+"))?"),r=RegExp("(?: "+e.source+")?");function Me(t,e,n){t=t[e];return b(t)?n:m(t)}function Ne(t,e){return[{hours:Me(t,e,0),minutes:Me(t,e+1,0),seconds:Me(t,e+2,0),milliseconds:Jt(t[e+3])},null,e+4]}function De(t,e){var n=!t[e]&&!t[e+1],t=ee(t[e+1],t[e+2]);return[{},n?null:d.instance(t),e+3]}function Ee(t,e){return[{},t[e]?f.create(t[e]):null,e+1]}var Ve=RegExp("^T?"+a.source+"$"),Ie=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function xe(t){function e(t,e){return void 0===e&&(e=!1),void 0!==t&&(e||t&&l)?-t:t}var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],u=t[5],s=t[6],c=t[7],t=t[8],l="-"===n[0],n=c&&"-"===c[0];return[{years:e(y(r)),months:e(y(i)),weeks:e(y(o)),days:e(y(a)),hours:e(y(u)),minutes:e(y(s)),seconds:e(y(c),"-0"===c),milliseconds:e(Jt(t),n)}]}var Ce={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ze(t,e,n,r,i,o,a){e={year:2===e.length?Xt(m(e)):m(e),month:ue.indexOf(n)+1,day:m(r),hour:m(i),minute:m(o)};return a&&(e.second=m(a)),t&&(e.weekday=3<t.length?le.indexOf(t)+1:fe.indexOf(t)+1),e}var Fe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Le(t){var e=t[1],n=t[2],r=t[3],i=t[4],o=t[5],a=t[6],u=t[7],s=t[8],c=t[9],l=t[10],t=t[11],e=Ze(e,i,r,n,o,a,u),i=s?Ce[s]:c?0:ee(l,t);return[e,new d(i)]}var je=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Ae=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,ze=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function qe(t){var e=t[1],n=t[2],r=t[3];return[Ze(e,t[4],r,n,t[5],t[6],t[7]),d.utcInstance]}function _e(t){var e=t[1],n=t[2],r=t[3],i=t[4],o=t[5],a=t[6];return[Ze(e,t[7],n,r,i,o,a),d.utcInstance]}var Ue=p(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,D),Pe=p(/(\d{4})-?W(\d\d)(?:-?(\d))?/,D),Re=p(/(\d{4})-?(\d{3})/,D),He=p(Te),We=M(function(t,e){return[{year:Me(t,e),month:Me(t,e+1,1),day:Me(t,e+2,1)},null,e+3]},Ne,De,Ee),Je=M(Se,Ne,De,Ee),Ye=M(Oe,Ne,De,Ee),Ge=M(Ne,De,Ee);var $e=M(Ne);var Be=p(/(\d{4})-(\d\d)-(\d\d)/,r),Qe=p(e),Ke=M(Ne,De,Ee);var a={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},Xe=s({years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6}},a),D=365.2425,Te=30.436875,tn=s({years:{quarters:4,months:12,weeks:D/7,days:D,hours:24*D,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:D/28,days:D/4,hours:24*D/4,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:Te/7,days:Te,hours:24*Te,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},a),E=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],en=E.slice(0).reverse();function V(t,e,n){n={values:(n=void 0===n?!1:n)?e.values:s({},t.values,e.values||{}),loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new I(n)}function nn(t,e,n,r,i){var t=t[i][n],o=e[n]/t,a=!(Math.sign(o)===Math.sign(r[i]))&&0!==r[i]&&Math.abs(o)<=1?(a=o)<0?Math.floor(a):Math.ceil(a):Math.trunc(o);r[i]+=a,e[n]-=a*t}var I=function(){function y(t){var e="longterm"===t.conversionAccuracy||!1,n=e?tn:Xe;t.matrix&&(n=t.matrix),this.values=t.values,this.loc=t.loc||g.create(),this.conversionAccuracy=e?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=n,this.isLuxonDuration=!0}y.fromMillis=function(t,e){return y.fromObject({milliseconds:t},e)},y.fromObject=function(t,e){if(void 0===e&&(e={}),null==t||"object"!=typeof t)throw new u("Duration.fromObject: argument expected to be an object, got "+(null===t?"null":typeof t));return new y({values:re(t,y.normalizeUnit),loc:g.fromObject(e),conversionAccuracy:e.conversionAccuracy,matrix:e.matrix})},y.fromDurationLike=function(t){if(v(t))return y.fromMillis(t);if(y.isDuration(t))return t;if("object"==typeof t)return y.fromObject(t);throw new u("Unknown duration argument "+t+" of type "+typeof t)},y.fromISO=function(t,e){var n=N(t,[Ie,xe])[0];return n?y.fromObject(n,e):y.invalid("unparsable",'the input "'+t+"\" can't be parsed as ISO 8601")},y.fromISOTime=function(t,e){var n=N(t,[Ve,$e])[0];return n?y.fromObject(n,e):y.invalid("unparsable",'the input "'+t+"\" can't be parsed as ISO 8601")},y.invalid=function(t,e){if(void 0===e&&(e=null),!t)throw new u("need to specify a reason the Duration is invalid");t=t instanceof O?t:new O(t,e);if(k.throwOnInvalid)throw new J(t);return new y({invalid:t})},y.normalizeUnit=function(t){var e={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(e)return e;throw new G(t)},y.isDuration=function(t){return t&&t.isLuxonDuration||!1};var t=y.prototype;return t.toFormat=function(t,e){e=s({},e=void 0===e?{}:e,{floor:!1!==e.round&&!1!==e.floor});return this.isValid?S.create(this.loc,e).formatDurationFromString(this,t):"Invalid Duration"},t.toHuman=function(n){var r=this,t=(void 0===n&&(n={}),E.map(function(t){var e=r.values[t];return b(e)?null:r.loc.numberFormatter(s({style:"unit",unitDisplay:"long"},n,{unit:t.slice(0,-1)})).format(e)}).filter(function(t){return t}));return this.loc.listFormatter(s({type:"conjunction",style:n.listStyle||"narrow"},n)).format(t)},t.toObject=function(){return this.isValid?s({},this.values):{}},t.toISO=function(){var t;return this.isValid?(t="P",0!==this.years&&(t+=this.years+"Y"),0===this.months&&0===this.quarters||(t+=this.months+3*this.quarters+"M"),0!==this.weeks&&(t+=this.weeks+"W"),0!==this.days&&(t+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(t+="T"),0!==this.hours&&(t+=this.hours+"H"),0!==this.minutes&&(t+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(t+=Yt(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===t&&(t+="T0S"),t):null},t.toISOTime=function(t){if(void 0===t&&(t={}),!this.isValid)return null;var e=this.toMillis();if(e<0||864e5<=e)return null;t=s({suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended"},t);var e=this.shiftTo("hours","minutes","seconds","milliseconds"),n="basic"===t.format?"hhmm":"hh:mm",e=(t.suppressSeconds&&0===e.seconds&&0===e.milliseconds||(n+="basic"===t.format?"ss":":ss",t.suppressMilliseconds&&0===e.milliseconds)||(n+=".SSS"),e.toFormat(n));return e=t.includePrefix?"T"+e:e},t.toJSON=function(){return this.toISO()},t.toString=function(){return this.toISO()},t.toMillis=function(){return this.as("milliseconds")},t.valueOf=function(){return this.toMillis()},t.plus=function(t){if(!this.isValid)return this;for(var e=y.fromDurationLike(t),n={},r=0,i=E;r<i.length;r++){var o=i[r];(h(e.values,o)||h(this.values,o))&&(n[o]=e.get(o)+this.get(o))}return V(this,{values:n},!0)},t.minus=function(t){return this.isValid?(t=y.fromDurationLike(t),this.plus(t.negate())):this},t.mapUnits=function(t){if(!this.isValid)return this;for(var e={},n=0,r=Object.keys(this.values);n<r.length;n++){var i=r[n];e[i]=ne(t(this.values[i],i))}return V(this,{values:e},!0)},t.get=function(t){return this[y.normalizeUnit(t)]},t.set=function(t){return this.isValid?V(this,{values:s({},this.values,re(t,y.normalizeUnit))}):this},t.reconfigure=function(t){var t=void 0===t?{}:t,e=t.locale,n=t.numberingSystem,r=t.conversionAccuracy,t=t.matrix,e=this.loc.clone({locale:e,numberingSystem:n});return V(this,{loc:e,matrix:t,conversionAccuracy:r})},t.as=function(t){return this.isValid?this.shiftTo(t).get(t):NaN},t.normalize=function(){var t,n,r;return this.isValid?(t=this.toObject(),n=this.matrix,r=t,en.reduce(function(t,e){return b(r[e])?t:(t&&nn(n,r,t,r,e),e)},null),V(this,{values:t},!0)):this},t.rescale=function(){var t;return this.isValid?(t=function(t){for(var e={},n=0,r=Object.entries(t);n<r.length;n++){var i=r[n],o=i[0],i=i[1];0!==i&&(e[o]=i)}return e}(this.normalize().shiftToAll().toObject()),V(this,{values:t},!0)):this},t.shiftTo=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];if(!this.isValid)return this;if(0===e.length)return this;for(var r,e=e.map(function(t){return y.normalizeUnit(t)}),i={},o={},a=this.toObject(),u=0,s=E;u<s.length;u++){var c=s[u];if(0<=e.indexOf(c)){var l,f=c,d=0;for(l in o)d+=this.matrix[l][c]*o[l],o[l]=0;v(a[c])&&(d+=a[c]);var h,m=Math.trunc(d);for(h in o[c]=(1e3*d-1e3*(i[c]=m))/1e3,a)E.indexOf(h)>E.indexOf(c)&&nn(this.matrix,a,h,i,c)}else v(a[c])&&(o[c]=a[c])}for(r in o)0!==o[r]&&(i[f]+=r===f?o[r]:o[r]/this.matrix[f][r]);return V(this,{values:i},!0).normalize()},t.shiftToAll=function(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this},t.negate=function(){if(!this.isValid)return this;for(var t={},e=0,n=Object.keys(this.values);e<n.length;e++){var r=n[e];t[r]=0===this.values[r]?0:-this.values[r]}return V(this,{values:t},!0)},t.equals=function(t){if(!this.isValid||!t.isValid)return!1;if(!this.loc.equals(t.loc))return!1;for(var e,n=0,r=E;n<r.length;n++){var i=r[n];if(e=this.values[i],i=t.values[i],!(void 0===e||0===e?void 0===i||0===i:e===i))return!1}return!0},o(y,[{key:"locale",get:function(){return this.isValid?this.loc.locale:null}},{key:"numberingSystem",get:function(){return this.isValid?this.loc.numberingSystem:null}},{key:"years",get:function(){return this.isValid?this.values.years||0:NaN}},{key:"quarters",get:function(){return this.isValid?this.values.quarters||0:NaN}},{key:"months",get:function(){return this.isValid?this.values.months||0:NaN}},{key:"weeks",get:function(){return this.isValid?this.values.weeks||0:NaN}},{key:"days",get:function(){return this.isValid?this.values.days||0:NaN}},{key:"hours",get:function(){return this.isValid?this.values.hours||0:NaN}},{key:"minutes",get:function(){return this.isValid?this.values.minutes||0:NaN}},{key:"seconds",get:function(){return this.isValid?this.values.seconds||0:NaN}},{key:"milliseconds",get:function(){return this.isValid?this.values.milliseconds||0:NaN}},{key:"isValid",get:function(){return null===this.invalid}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}}]),y}(),rn="Invalid Interval";var on=function(){function c(t){this.s=t.start,this.e=t.end,this.invalid=t.invalid||null,this.isLuxonInterval=!0}c.invalid=function(t,e){if(void 0===e&&(e=null),!t)throw new u("need to specify a reason the Interval is invalid");t=t instanceof O?t:new O(t,e);if(k.throwOnInvalid)throw new W(t);return new c({invalid:t})},c.fromDateTimes=function(t,e){var n,t=ir(t),e=ir(e),r=(n=e,(r=t)&&r.isValid?n&&n.isValid?n<r?on.invalid("end before start","The end of an interval must be after its start, but you had start="+r.toISO()+" and end="+n.toISO()):null:on.invalid("missing or invalid end"):on.invalid("missing or invalid start"));return null==r?new c({start:t,end:e}):r},c.after=function(t,e){e=I.fromDurationLike(e),t=ir(t);return c.fromDateTimes(t,t.plus(e))},c.before=function(t,e){e=I.fromDurationLike(e),t=ir(t);return c.fromDateTimes(t.minus(e),t)},c.fromISO=function(t,e){var n,r,i,o=(t||"").split("/",2),a=o[0],u=o[1];if(a&&u){try{s=(n=L.fromISO(a,e)).isValid}catch(u){s=!1}try{i=(r=L.fromISO(u,e)).isValid}catch(u){i=!1}if(s&&i)return c.fromDateTimes(n,r);if(s){o=I.fromISO(u,e);if(o.isValid)return c.after(n,o)}else if(i){var s=I.fromISO(a,e);if(s.isValid)return c.before(r,s)}}return c.invalid("unparsable",'the input "'+t+"\" can't be parsed as ISO 8601")},c.isInterval=function(t){return t&&t.isLuxonInterval||!1};var t=c.prototype;return t.length=function(t){return void 0===t&&(t="milliseconds"),this.isValid?this.toDuration.apply(this,[t]).get(t):NaN},t.count=function(t){var e,n;return void 0===t&&(t="milliseconds"),this.isValid?(e=this.start.startOf(t),n=this.end.startOf(t),Math.floor(n.diff(e,t).get(t))+(n.valueOf()!==this.end.valueOf())):NaN},t.hasSame=function(t){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,t))},t.isEmpty=function(){return this.s.valueOf()===this.e.valueOf()},t.isAfter=function(t){return!!this.isValid&&this.s>t},t.isBefore=function(t){return!!this.isValid&&this.e<=t},t.contains=function(t){return!!this.isValid&&this.s<=t&&this.e>t},t.set=function(t){var t=void 0===t?{}:t,e=t.start,t=t.end;return this.isValid?c.fromDateTimes(e||this.s,t||this.e):this},t.splitAt=function(){var e=this;if(!this.isValid)return[];for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];for(var i=n.map(ir).filter(function(t){return e.contains(t)}).sort(),o=[],a=this.s,u=0;a<this.e;){var s=i[u]||this.e,s=+s>+this.e?this.e:s;o.push(c.fromDateTimes(a,s)),a=s,u+=1}return o},t.splitBy=function(t){var e=I.fromDurationLike(t);if(!this.isValid||!e.isValid||0===e.as("milliseconds"))return[];for(var n=this.s,r=1,i=[];n<this.e;){var o=this.start.plus(e.mapUnits(function(t){return t*r})),o=+o>+this.e?this.e:o;i.push(c.fromDateTimes(n,o)),n=o,r+=1}return i},t.divideEqually=function(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]},t.overlaps=function(t){return this.e>t.s&&this.s<t.e},t.abutsStart=function(t){return!!this.isValid&&+this.e==+t.s},t.abutsEnd=function(t){return!!this.isValid&&+t.e==+this.s},t.engulfs=function(t){return!!this.isValid&&this.s<=t.s&&this.e>=t.e},t.equals=function(t){return!(!this.isValid||!t.isValid)&&this.s.equals(t.s)&&this.e.equals(t.e)},t.intersection=function(t){var e;return this.isValid?(e=(this.s>t.s?this:t).s,(t=(this.e<t.e?this:t).e)<=e?null:c.fromDateTimes(e,t)):this},t.union=function(t){var e;return this.isValid?(e=(this.s<t.s?this:t).s,t=(this.e>t.e?this:t).e,c.fromDateTimes(e,t)):this},c.merge=function(t){var t=t.sort(function(t,e){return t.s-e.s}).reduce(function(t,e){var n=t[0],t=t[1];return t?t.overlaps(e)||t.abutsStart(e)?[n,t.union(e)]:[n.concat([t]),e]:[n,e]},[[],null]),e=t[0],t=t[1];return t&&e.push(t),e},c.xor=function(t){for(var e,n=null,r=0,i=[],t=t.map(function(t){return[{time:t.s,type:"s"},{time:t.e,type:"e"}]}),o=R((e=Array.prototype).concat.apply(e,t).sort(function(t,e){return t.time-e.time}));!(a=o()).done;)var a=a.value,n=1===(r+="s"===a.type?1:-1)?a.time:(n&&+n!=+a.time&&i.push(c.fromDateTimes(n,a.time)),null);return c.merge(i)},t.difference=function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return c.xor([this].concat(n)).map(function(t){return e.intersection(t)}).filter(function(t){return t&&!t.isEmpty()})},t.toString=function(){return this.isValid?"["+this.s.toISO()+" – "+this.e.toISO()+")":rn},t.toLocaleString=function(t,e){return void 0===t&&(t=$),void 0===e&&(e={}),this.isValid?S.create(this.s.loc.clone(e),t).formatInterval(this):rn},t.toISO=function(t){return this.isValid?this.s.toISO(t)+"/"+this.e.toISO(t):rn},t.toISODate=function(){return this.isValid?this.s.toISODate()+"/"+this.e.toISODate():rn},t.toISOTime=function(t){return this.isValid?this.s.toISOTime(t)+"/"+this.e.toISOTime(t):rn},t.toFormat=function(t,e){e=(void 0===e?{}:e).separator,e=void 0===e?" – ":e;return this.isValid?""+this.s.toFormat(t)+e+this.e.toFormat(t):rn},t.toDuration=function(t,e){return this.isValid?this.e.diff(this.s,t,e):I.invalid(this.invalidReason)},t.mapEndpoints=function(t){return c.fromDateTimes(t(this.s),t(this.e))},o(c,[{key:"start",get:function(){return this.isValid?this.s:null}},{key:"end",get:function(){return this.isValid?this.e:null}},{key:"isValid",get:function(){return null===this.invalidReason}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}}]),c}(),an=function(){function t(){}return t.hasDST=function(t){void 0===t&&(t=k.defaultZone);var e=L.now().setZone(t).set({month:12});return!t.isUniversal&&e.offset!==e.set({month:6}).offset},t.isValidIANAZone=function(t){return f.isValidZone(t)},t.normalizeZone=function(t){return w(t,k.defaultZone)},t.months=function(t,e){void 0===t&&(t="long");var e=void 0===e?{}:e,n=e.locale,r=e.numberingSystem,i=e.locObj,i=void 0===i?null:i,e=e.outputCalendar;return(i||g.create(void 0===n?null:n,void 0===r?null:r,void 0===e?"gregory":e)).months(t)},t.monthsFormat=function(t,e){void 0===t&&(t="long");var e=void 0===e?{}:e,n=e.locale,r=e.numberingSystem,i=e.locObj,i=void 0===i?null:i,e=e.outputCalendar;return(i||g.create(void 0===n?null:n,void 0===r?null:r,void 0===e?"gregory":e)).months(t,!0)},t.weekdays=function(t,e){void 0===t&&(t="long");var e=void 0===e?{}:e,n=e.locale,r=e.numberingSystem,e=e.locObj;return((void 0===e?null:e)||g.create(void 0===n?null:n,void 0===r?null:r,null)).weekdays(t)},t.weekdaysFormat=function(t,e){void 0===t&&(t="long");var e=void 0===e?{}:e,n=e.locale,r=e.numberingSystem,e=e.locObj;return((void 0===e?null:e)||g.create(void 0===n?null:n,void 0===r?null:r,null)).weekdays(t,!0)},t.meridiems=function(t){t=(void 0===t?{}:t).locale;return g.create(void 0===t?null:t).meridiems()},t.eras=function(t,e){void 0===t&&(t="short");e=(void 0===e?{}:e).locale;return g.create(void 0===e?null:e,null,"gregory").eras(t)},t.features=function(){return{relative:Ht()}},t}();function un(t,e){function n(t){return t.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf()}e=n(e)-n(t);return Math.floor(I.fromMillis(e).as("days"))}function sn(t,e,n,r){var t=function(t,e,n){for(var r,i,o={},a=t,u=0,s=[["years",function(t,e){return e.year-t.year}],["quarters",function(t,e){return e.quarter-t.quarter+4*(e.year-t.year)}],["months",function(t,e){return e.month-t.month+12*(e.year-t.year)}],["weeks",function(t,e){t=un(t,e);return(t-t%7)/7}],["days",un]];u<s.length;u++){var c=s[u],l=c[0],c=c[1];0<=n.indexOf(l)&&(o[r=l]=c(t,e),t=e<(i=a.plus(o))?(o[l]--,a.plus(o)):i)}return[t,o,i,r]}(t,e,n),i=t[0],o=t[1],a=t[2],t=t[3],u=e-i,n=n.filter(function(t){return 0<=["hours","minutes","seconds","milliseconds"].indexOf(t)}),e=(0===n.length&&(a=a<e?i.plus(((e={})[t]=1,e)):a)!==i&&(o[t]=(o[t]||0)+u/(a-i)),I.fromObject(o,r));return 0<n.length?(t=I.fromMillis(u,r)).shiftTo.apply(t,n).plus(e):e}var cn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},ln={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},fn=cn.hanidec.replace(/[\[|\]]/g,"").split("");function x(t,e){t=t.numberingSystem;return void 0===e&&(e=""),new RegExp(""+cn[t||"latn"]+e)}var dn="missing Intl.DateTimeFormat.formatToParts support";function C(t,e){return void 0===e&&(e=function(t){return t}),{regex:t,deser:function(t){t=t[0];return e(function(t){var e=parseInt(t,10);if(isNaN(e)){for(var e="",n=0;n<t.length;n++){var r=t.charCodeAt(n);if(-1!==t[n].search(cn.hanidec))e+=fn.indexOf(t[n]);else for(var i in ln){var i=ln[i],o=i[0],i=i[1];o<=r&&r<=i&&(e+=r-o)}}return parseInt(e,10)}return e}(t))}}}var hn="[ "+String.fromCharCode(160)+"]",mn=new RegExp(hn,"g");function yn(t){return t.replace(/\./g,"\\.?").replace(mn,hn)}function vn(t){return t.replace(/\./g,"").replace(mn," ").toLowerCase()}function Z(n,r){return null===n?null:{regex:RegExp(n.map(yn).join("|")),deser:function(t){var e=t[0];return n.findIndex(function(t){return vn(e)===vn(t)})+r}}}function pn(t,e){return{regex:t,deser:function(t){return ee(t[1],t[2])},groups:e}}function gn(t){return{regex:t,deser:function(t){return t[0]}}}function wn(e,n){function r(t){return{regex:RegExp(t.val.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")),deser:function(t){return t[0]},literal:!0}}var i=x(n),o=x(n,"{2}"),a=x(n,"{3}"),u=x(n,"{4}"),s=x(n,"{6}"),c=x(n,"{1,2}"),l=x(n,"{1,3}"),f=x(n,"{1,6}"),d=x(n,"{1,9}"),h=x(n,"{2,4}"),m=x(n,"{4,6}"),t=function(t){if(e.literal)return r(t);switch(t.val){case"G":return Z(n.eras("short",!1),0);case"GG":return Z(n.eras("long",!1),0);case"y":return C(f);case"yy":return C(h,Xt);case"yyyy":return C(u);case"yyyyy":return C(m);case"yyyyyy":return C(s);case"M":return C(c);case"MM":return C(o);case"MMM":return Z(n.months("short",!0,!1),1);case"MMMM":return Z(n.months("long",!0,!1),1);case"L":return C(c);case"LL":return C(o);case"LLL":return Z(n.months("short",!1,!1),1);case"LLLL":return Z(n.months("long",!1,!1),1);case"d":return C(c);case"dd":return C(o);case"o":return C(l);case"ooo":return C(a);case"HH":return C(o);case"H":return C(c);case"hh":return C(o);case"h":return C(c);case"mm":return C(o);case"m":case"q":return C(c);case"qq":return C(o);case"s":return C(c);case"ss":return C(o);case"S":return C(l);case"SSS":return C(a);case"u":return gn(d);case"uu":return gn(c);case"uuu":return C(i);case"a":return Z(n.meridiems(),0);case"kkkk":return C(u);case"kk":return C(h,Xt);case"W":return C(c);case"WW":return C(o);case"E":case"c":return C(i);case"EEE":return Z(n.weekdays("short",!1,!1),1);case"EEEE":return Z(n.weekdays("long",!1,!1),1);case"ccc":return Z(n.weekdays("short",!0,!1),1);case"cccc":return Z(n.weekdays("long",!0,!1),1);case"Z":case"ZZ":return pn(new RegExp("([+-]"+c.source+")(?::("+o.source+"))?"),2);case"ZZZ":return pn(new RegExp("([+-]"+c.source+")("+o.source+")?"),2);case"z":return gn(/[a-z_+-/]{1,256}?/i);case" ":return gn(/[^\S\n\r]/);default:return r(t)}}(e)||{invalidReason:dn};return t.token=e,t}var kn={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};var bn=null;function Tn(t,n){var e;return(e=Array.prototype).concat.apply(e,t.map(function(t){return e=n,(t=t).literal||null==(e=On(S.macroTokenToFormatOpts(t.val),e))||e.includes(void 0)?t:e;var e}))}function Sn(e,t,n){var n=Tn(S.parseFormat(n),e),r=n.map(function(t){return wn(t,e)}),i=r.find(function(t){return t.invalidReason});if(i)return{input:t,tokens:n,invalidReason:i.invalidReason};var o,r=["^"+(i=r).map(function(t){return t.regex}).reduce(function(t,e){return t+"("+e.source+")"},"")+"$",i],i=r[1],r=RegExp(r[0],"i"),i=function(t,e,n){var r=t.match(e);if(r){var i,o,a,u={},s=1;for(i in n)h(n,i)&&(a=(o=n[i]).groups?o.groups+1:1,!o.literal&&o.token&&(u[o.token.val[0]]=o.deser(r.slice(s,s+a))),s+=a);return[r,u]}return[r,{}]}(t,r,i),a=i[0],i=i[1],u=i?(u=null,b((o=i).z)||(u=f.create(o.z)),b(o.Z)||(u=u||new d(o.Z),s=o.Z),b(o.q)||(o.M=3*(o.q-1)+1),b(o.h)||(o.h<12&&1===o.a?o.h+=12:12===o.h&&0===o.a&&(o.h=0)),0===o.G&&o.y&&(o.y=-o.y),b(o.u)||(o.S=Jt(o.u)),[Object.keys(o).reduce(function(t,e){var n=function(t){switch(t){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}}(e);return n&&(t[n]=o[e]),t},{}),u,s]):[null,null,void 0],s=u[0],c=u[1],l=u[2];if(h(i,"a")&&h(i,"H"))throw new Y("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:n,regex:r,rawMatches:a,matches:i,result:s,zone:c,specificOffset:l}}function On(i,t){return i?S.create(t,i).formatDateTimeParts(bn=bn||L.fromMillis(1555555555555)).map(function(t){return e=i,r=(t=t).type,t=t.value,"literal"===r?{literal:!(n=/^\s+$/.test(t)),val:n?" ":t}:(n=e[r],(t="object"==typeof(t=kn[r])?t[n]:t)?{literal:!1,val:t}:void 0);var e,n,r}):null}var Mn=[0,31,59,90,120,151,181,212,243,273,304,334],Nn=[0,31,60,91,121,152,182,213,244,274,305,335];function F(t,e){return new O("unit out of range","you specified "+e+" (of type "+typeof e+") as a "+t+", which is invalid")}function Dn(t,e,n){e=new Date(Date.UTC(t,e-1,n)),t<100&&0<=t&&e.setUTCFullYear(e.getUTCFullYear()-1900),n=e.getUTCDay();return 0===n?7:n}function En(t,e,n){return n+(Gt(t)?Nn:Mn)[e-1]}function Vn(t,e){var t=Gt(t)?Nn:Mn,n=t.findIndex(function(t){return t<e});return{month:n+1,day:e-t[n]}}function In(t){var e,n=t.year,r=t.month,i=t.day,o=En(n,r,i),r=Dn(n,r,i),i=Math.floor((o-r+10)/7);return i<1?i=Kt(e=n-1):i>Kt(n)?(e=n+1,i=1):e=n,s({weekYear:e,weekNumber:i,weekday:r},oe(t))}function xn(t){var e,n=t.weekYear,r=t.weekNumber,i=t.weekday,o=Dn(n,1,4),a=$t(n),r=7*r+i-o-3,i=(r<1?r+=$t(e=n-1):a<r?(e=n+1,r-=$t(n)):e=n,Vn(e,r));return s({year:e,month:i.month,day:i.day},oe(t))}function Cn(t){var e=t.year;return s({year:e,ordinal:En(e,t.month,t.day)},oe(t))}function Zn(t){var e=t.year,n=Vn(e,t.ordinal);return s({year:e,month:n.month,day:n.day},oe(t))}function Fn(t){var e=Rt(t.year),n=T(t.month,1,12),r=T(t.day,1,Bt(t.year,t.month));return e?n?!r&&F("day",t.day):F("month",t.month):F("year",t.year)}function Ln(t){var e=t.hour,n=t.minute,r=t.second,t=t.millisecond,i=T(e,0,23)||24===e&&0===n&&0===r&&0===t,o=T(n,0,59),a=T(r,0,59),u=T(t,0,999);return i?o?a?!u&&F("millisecond",t):F("second",r):F("minute",n):F("hour",e)}var jn="Invalid DateTime";function An(t){return new O("unsupported zone",'the zone "'+t.name+'" is not supported')}function zn(t){return null===t.weekData&&(t.weekData=In(t.c)),t.weekData}function qn(t,e){t={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new L(s({},t,e,{old:t}))}function _n(t,e,n){var r=t-60*e*1e3,i=n.offset(r);return e===i?[r,e]:i===(n=n.offset(r-=60*(i-e)*1e3))?[r,i]:[t-60*Math.min(i,n)*1e3,Math.max(i,n)]}function Un(t,e){t+=60*e*1e3;e=new Date(t);return{year:e.getUTCFullYear(),month:e.getUTCMonth()+1,day:e.getUTCDate(),hour:e.getUTCHours(),minute:e.getUTCMinutes(),second:e.getUTCSeconds(),millisecond:e.getUTCMilliseconds()}}function Pn(t,e,n){return _n(Qt(t),e,n)}function Rn(t,e){var n=t.o,r=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+3*Math.trunc(e.quarters),r=s({},t.c,{year:r,month:i,day:Math.min(t.c.day,Bt(r,i))+Math.trunc(e.days)+7*Math.trunc(e.weeks)}),i=I.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),e=_n(Qt(r),n,t.zone),r=e[0],n=e[1];return 0!==i&&(n=t.zone.offset(r+=i)),{ts:r,o:n}}function Hn(t,e,n,r,i,o){var a=n.setZone,u=n.zone;return t&&0!==Object.keys(t).length||e?(t=L.fromObject(t,s({},n,{zone:e||u,specificOffset:o})),a?t:t.setZone(u)):L.invalid(new O("unparsable",'the input "'+i+"\" can't be parsed as "+r))}function Wn(t,e,n){return void 0===n&&(n=!0),t.isValid?S.create(g.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Jn(t,e){var n=9999<t.c.year||t.c.year<0,r="";return n&&0<=t.c.year&&(r+="+"),r+=l(t.c.year,n?6:4),r=e?(r=(r+="-")+l(t.c.month)+"-")+l(t.c.day):(r+=l(t.c.month))+l(t.c.day)}function Yn(t,e,n,r,i,o){var a=l(t.c.hour);return e?(a=(a+=":")+l(t.c.minute),0===t.c.second&&n||(a+=":")):a+=l(t.c.minute),0===t.c.second&&n||(a+=l(t.c.second),0===t.c.millisecond&&r)||(a=(a+=".")+l(t.c.millisecond,3)),i&&(t.isOffsetFixed&&0===t.offset&&!o?a+="Z":a=t.o<0?(a=(a+="-")+l(Math.trunc(-t.o/60))+":")+l(Math.trunc(-t.o%60)):(a=(a+="+")+l(Math.trunc(t.o/60))+":")+l(Math.trunc(t.o%60))),o&&(a+="["+t.zone.ianaName+"]"),a}var Gn={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},$n={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Bn={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Qn=["year","month","day","hour","minute","second","millisecond"],Kn=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Xn=["year","ordinal","hour","minute","second","millisecond"];function tr(t){var e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(e)return e;throw new G(t)}function er(t,e){var n=w(e.zone,k.defaultZone),e=g.fromObject(e),r=k.now();if(b(t.year))s=r;else{for(var i=0,o=Qn;i<o.length;i++){var a=o[i];b(t[a])&&(t[a]=Gn[a])}var u=Fn(t)||Ln(t);if(u)return L.invalid(u);var u=Pn(t,n.offset(r),n),s=u[0],u=u[1]}return new L({ts:s,zone:n,loc:e,o:u})}function nr(e,n,r){function t(t,e){return t=Yt(t,o||r.calendary?0:2,!0),n.loc.clone(r).relFormatter(r).format(t,e)}function i(t){return r.calendary?n.hasSame(e,t)?0:n.startOf(t).diff(e.startOf(t),t).get(t):n.diff(e,t).get(t)}var o=!!b(r.round)||r.round;if(r.unit)return t(i(r.unit),r.unit);for(var a=R(r.units);!(u=a()).done;){var u=u.value,s=i(u);if(1<=Math.abs(s))return t(s,u)}return t(n<e?-0:0,r.units[r.units.length-1])}function rr(t){var e={},t=0<t.length&&"object"==typeof t[t.length-1]?(e=t[t.length-1],Array.from(t).slice(0,t.length-1)):Array.from(t);return[e,t]}var L=function(){function p(t){var e,n=t.zone||k.defaultZone,r=t.invalid||(Number.isNaN(t.ts)?new O("invalid input"):null)||(n.isValid?null:An(n)),i=(this.ts=b(t.ts)?k.now():t.ts,null),o=null;r||(o=t.old&&t.old.ts===this.ts&&t.old.zone.equals(n)?(i=(e=[t.old.c,t.old.o])[0],e[1]):(e=n.offset(this.ts),i=Un(this.ts,e),i=(r=Number.isNaN(i.year)?new O("invalid input"):null)?null:i,r?null:e)),this._zone=n,this.loc=t.loc||g.create(),this.invalid=r,this.weekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}p.now=function(){return new p({})},p.local=function(){var t=rr(arguments),e=t[0],t=t[1];return er({year:t[0],month:t[1],day:t[2],hour:t[3],minute:t[4],second:t[5],millisecond:t[6]},e)},p.utc=function(){var t=rr(arguments),e=t[0],t=t[1],n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],u=t[5],t=t[6];return e.zone=d.utcInstance,er({year:n,month:r,day:i,hour:o,minute:a,second:u,millisecond:t},e)},p.fromJSDate=function(t,e){void 0===e&&(e={});var n,t="[object Date]"===Object.prototype.toString.call(t)?t.valueOf():NaN;return Number.isNaN(t)?p.invalid("invalid input"):(n=w(e.zone,k.defaultZone)).isValid?new p({ts:t,zone:n,loc:g.fromObject(e)}):p.invalid(An(n))},p.fromMillis=function(t,e){if(void 0===e&&(e={}),v(t))return t<-864e13||864e13<t?p.invalid("Timestamp out of range"):new p({ts:t,zone:w(e.zone,k.defaultZone),loc:g.fromObject(e)});throw new u("fromMillis requires a numerical input, but received a "+typeof t+" with value "+t)},p.fromSeconds=function(t,e){if(void 0===e&&(e={}),v(t))return new p({ts:1e3*t,zone:w(e.zone,k.defaultZone),loc:g.fromObject(e)});throw new u("fromSeconds requires a numerical input")},p.fromObject=function(t,e){t=t||{};var n=w((e=void 0===e?{}:e).zone,k.defaultZone);if(!n.isValid)return p.invalid(An(n));var r=k.now(),i=b(e.specificOffset)?n.offset(r):e.specificOffset,o=re(t,tr),a=!b(o.ordinal),u=!b(o.year),s=!b(o.month)||!b(o.day),u=u||s,c=o.weekYear||o.weekNumber,e=g.fromObject(e);if((u||a)&&c)throw new Y("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(s&&a)throw new Y("Can't mix ordinal dates with month/day");for(var l,s=c||o.weekday&&!u,f=Un(r,i),d=(s?(v=Kn,l=$n,f=In(f)):a?(v=Xn,l=Bn,f=Cn(f)):(v=Qn,l=Gn),!1),h=R(v);!(m=h()).done;){var m=m.value;b(o[m])?o[m]=(d?l:f)[m]:d=!0}var y,v,c=(s?(r=Rt((c=o).weekYear),v=T(c.weekNumber,1,Kt(c.weekYear)),y=T(c.weekday,1,7),r?v?!y&&F("weekday",c.weekday):F("week",c.week):F("weekYear",c.weekYear)):a?(v=Rt((r=o).year),y=T(r.ordinal,1,$t(r.year)),v?!y&&F("ordinal",r.ordinal):F("year",r.year)):Fn(o))||Ln(o);return c?p.invalid(c):(r=new p({ts:(v=Pn(s?xn(o):a?Zn(o):o,i,n))[0],zone:n,o:v[1],loc:e}),o.weekday&&u&&t.weekday!==r.weekday?p.invalid("mismatched weekday","you can't specify both a weekday of "+o.weekday+" and a date of "+r.toISO()):r)},p.fromISO=function(t,e){void 0===e&&(e={});var n=N(t,[Ue,We],[Pe,Je],[Re,Ye],[He,Ge]);return Hn(n[0],n[1],e,"ISO 8601",t)},p.fromRFC2822=function(t,e){void 0===e&&(e={});var n=N(t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim(),[Fe,Le]);return Hn(n[0],n[1],e,"RFC 2822",t)},p.fromHTTP=function(t,e){void 0===e&&(e={});t=N(t,[je,qe],[Ae,qe],[ze,_e]);return Hn(t[0],t[1],e,"HTTP",e)},p.fromFormat=function(t,e,n){if(void 0===n&&(n={}),b(t)||b(e))throw new u("fromFormat requires an input string and a format");var r=n,i=r.locale,r=r.numberingSystem,i=g.fromOpts({locale:void 0===i?null:i,numberingSystem:void 0===r?null:r,defaultToEN:!0}),i=[(r=Sn(r=i,t,e)).result,r.zone,r.specificOffset,r.invalidReason],r=i[0],o=i[1],a=i[2],i=i[3];return i?p.invalid(i):Hn(r,o,n,"format "+e,t,a)},p.fromString=function(t,e,n){return p.fromFormat(t,e,n=void 0===n?{}:n)},p.fromSQL=function(t,e){void 0===e&&(e={});var n=N(t,[Be,We],[Qe,Ke]);return Hn(n[0],n[1],e,"SQL",t)},p.invalid=function(t,e){if(void 0===e&&(e=null),!t)throw new u("need to specify a reason the DateTime is invalid");t=t instanceof O?t:new O(t,e);if(k.throwOnInvalid)throw new H(t);return new p({invalid:t})},p.isDateTime=function(t){return t&&t.isLuxonDateTime||!1},p.parseFormatForOpts=function(t,e){t=On(t,g.fromObject(e=void 0===e?{}:e));return t?t.map(function(t){return t?t.val:null}).join(""):null},p.expandFormat=function(t,e){return void 0===e&&(e={}),Tn(S.parseFormat(t),g.fromObject(e)).map(function(t){return t.val}).join("")};var t=p.prototype;return t.get=function(t){return this[t]},t.resolvedLocaleOptions=function(t){t=S.create(this.loc.clone(t=void 0===t?{}:t),t).resolvedOptions(this);return{locale:t.locale,numberingSystem:t.numberingSystem,outputCalendar:t.calendar}},t.toUTC=function(t,e){return void 0===e&&(e={}),this.setZone(d.instance(t=void 0===t?0:t),e)},t.toLocal=function(){return this.setZone(k.defaultZone)},t.setZone=function(t,e){var n,e=void 0===e?{}:e,r=e.keepLocalTime,r=void 0!==r&&r,e=e.keepCalendarTime,e=void 0!==e&&e;return(t=w(t,k.defaultZone)).equals(this.zone)?this:t.isValid?(n=this.ts,(r||e)&&(r=t.offset(this.ts),n=Pn(this.toObject(),r,t)[0]),qn(this,{ts:n,zone:t})):p.invalid(An(t))},t.reconfigure=function(t){var t=void 0===t?{}:t,e=t.locale,n=t.numberingSystem,t=t.outputCalendar,e=this.loc.clone({locale:e,numberingSystem:n,outputCalendar:t});return qn(this,{loc:e})},t.setLocale=function(t){return this.reconfigure({locale:t})},t.set=function(t){if(!this.isValid)return this;var e,t=re(t,tr),n=!b(t.weekYear)||!b(t.weekNumber)||!b(t.weekday),r=!b(t.ordinal),i=!b(t.year),o=!b(t.month)||!b(t.day),a=t.weekYear||t.weekNumber;if((i||o||r)&&a)throw new Y("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&r)throw new Y("Can't mix ordinal dates with month/day");n?e=xn(s({},In(this.c),t)):b(t.ordinal)?(e=s({},this.toObject(),t),b(t.day)&&(e.day=Math.min(Bt(e.year,e.month),e.day))):e=Zn(s({},Cn(this.c),t));i=Pn(e,this.o,this.zone);return qn(this,{ts:i[0],o:i[1]})},t.plus=function(t){return this.isValid?qn(this,Rn(this,I.fromDurationLike(t))):this},t.minus=function(t){return this.isValid?qn(this,Rn(this,I.fromDurationLike(t).negate())):this},t.startOf=function(t){if(!this.isValid)return this;var e={},t=I.normalizeUnit(t);switch(t){case"years":e.month=1;case"quarters":case"months":e.day=1;case"weeks":case"days":e.hour=0;case"hours":e.minute=0;case"minutes":e.second=0;case"seconds":e.millisecond=0}return"weeks"===t&&(e.weekday=1),"quarters"===t&&(t=Math.ceil(this.month/3),e.month=3*(t-1)+1),this.set(e)},t.endOf=function(t){var e;return this.isValid?this.plus(((e={})[t]=1,e)).startOf(t).minus(1):this},t.toFormat=function(t,e){return void 0===e&&(e={}),this.isValid?S.create(this.loc.redefaultToEN(e)).formatDateTimeFromString(this,t):jn},t.toLocaleString=function(t,e){return void 0===t&&(t=$),void 0===e&&(e={}),this.isValid?S.create(this.loc.clone(e),t).formatDateTime(this):jn},t.toLocaleParts=function(t){return void 0===t&&(t={}),this.isValid?S.create(this.loc.clone(t),t).formatDateTimeParts(this):[]},t.toISO=function(t){var e,t=void 0===t?{}:t,n=t.format,r=t.suppressSeconds,r=void 0!==r&&r,i=t.suppressMilliseconds,i=void 0!==i&&i,o=t.includeOffset,o=void 0===o||o,t=t.extendedZone,t=void 0!==t&&t;return this.isValid?(e=Jn(this,n="extended"===(void 0===n?"extended":n)),(e+="T")+Yn(this,n,r,i,o,t)):null},t.toISODate=function(t){t=(void 0===t?{}:t).format;return this.isValid?Jn(this,"extended"===(void 0===t?"extended":t)):null},t.toISOWeekDate=function(){return Wn(this,"kkkk-'W'WW-c")},t.toISOTime=function(t){var t=void 0===t?{}:t,e=t.suppressMilliseconds,n=t.suppressSeconds,r=t.includeOffset,i=t.includePrefix,o=t.extendedZone,t=t.format;return this.isValid?(void 0!==i&&i?"T":"")+Yn(this,"extended"===(void 0===t?"extended":t),void 0!==n&&n,void 0!==e&&e,void 0===r||r,void 0!==o&&o):null},t.toRFC2822=function(){return Wn(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)},t.toHTTP=function(){return Wn(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")},t.toSQLDate=function(){return this.isValid?Jn(this,!0):null},t.toSQLTime=function(t){var t=void 0===t?{}:t,e=t.includeOffset,e=void 0===e||e,n=t.includeZone,n=void 0!==n&&n,t=t.includeOffsetSpace,r="HH:mm:ss.SSS";return(n||e)&&((void 0===t||t)&&(r+=" "),n?r+="z":e&&(r+="ZZ")),Wn(this,r,!0)},t.toSQL=function(t){return void 0===t&&(t={}),this.isValid?this.toSQLDate()+" "+this.toSQLTime(t):null},t.toString=function(){return this.isValid?this.toISO():jn},t.valueOf=function(){return this.toMillis()},t.toMillis=function(){return this.isValid?this.ts:NaN},t.toSeconds=function(){return this.isValid?this.ts/1e3:NaN},t.toUnixInteger=function(){return this.isValid?Math.floor(this.ts/1e3):NaN},t.toJSON=function(){return this.toISO()},t.toBSON=function(){return this.toJSDate()},t.toObject=function(t){var e;return void 0===t&&(t={}),this.isValid?(e=s({},this.c),t.includeConfig&&(e.outputCalendar=this.outputCalendar,e.numberingSystem=this.loc.numberingSystem,e.locale=this.loc.locale),e):{}},t.toJSDate=function(){return new Date(this.isValid?this.ts:NaN)},t.diff=function(t,e,n){var r;return void 0===e&&(e="milliseconds"),void 0===n&&(n={}),this.isValid&&t.isValid?(n=s({locale:this.locale,numberingSystem:this.numberingSystem},n),e=e,e=(Array.isArray(e)?e:[e]).map(I.normalizeUnit),t=sn((r=t.valueOf()>this.valueOf())?this:t,r?t:this,e,n),r?t.negate():t):I.invalid("created by diffing an invalid DateTime")},t.diffNow=function(t,e){return void 0===t&&(t="milliseconds"),void 0===e&&(e={}),this.diff(p.now(),t,e)},t.until=function(t){return this.isValid?on.fromDateTimes(this,t):this},t.hasSame=function(t,e){var n;return!!this.isValid&&(n=t.valueOf(),(t=this.setZone(t.zone,{keepLocalTime:!0})).startOf(e)<=n)&&n<=t.endOf(e)},t.equals=function(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)},t.toRelative=function(t){var e,n,r,i;return this.isValid?(e=(t=void 0===t?{}:t).base||p.fromObject({},{zone:this.zone}),n=t.padding?this<e?-t.padding:t.padding:0,r=["years","months","days","hours","minutes","seconds"],i=t.unit,Array.isArray(t.unit)&&(r=t.unit,i=void 0),nr(e,this.plus(n),s({},t,{numeric:"always",units:r,unit:i}))):null},t.toRelativeCalendar=function(t){return void 0===t&&(t={}),this.isValid?nr(t.base||p.fromObject({},{zone:this.zone}),this,s({},t,{numeric:"auto",units:["years","months","days"],calendary:!0})):null},p.min=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];if(e.every(p.isDateTime))return Wt(e,function(t){return t.valueOf()},Math.min);throw new u("min requires all arguments be DateTimes")},p.max=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];if(e.every(p.isDateTime))return Wt(e,function(t){return t.valueOf()},Math.max);throw new u("max requires all arguments be DateTimes")},p.fromFormatExplain=function(t,e,n){var n=n=void 0===n?{}:n,r=n.locale,n=n.numberingSystem;return Sn(g.fromOpts({locale:void 0===r?null:r,numberingSystem:void 0===n?null:n,defaultToEN:!0}),t,e)},p.fromStringExplain=function(t,e,n){return p.fromFormatExplain(t,e,n=void 0===n?{}:n)},o(p,[{key:"isValid",get:function(){return null===this.invalid}},{key:"invalidReason",get:function(){return this.invalid?this.invalid.reason:null}},{key:"invalidExplanation",get:function(){return this.invalid?this.invalid.explanation:null}},{key:"locale",get:function(){return this.isValid?this.loc.locale:null}},{key:"numberingSystem",get:function(){return this.isValid?this.loc.numberingSystem:null}},{key:"outputCalendar",get:function(){return this.isValid?this.loc.outputCalendar:null}},{key:"zone",get:function(){return this._zone}},{key:"zoneName",get:function(){return this.isValid?this.zone.name:null}},{key:"year",get:function(){return this.isValid?this.c.year:NaN}},{key:"quarter",get:function(){return this.isValid?Math.ceil(this.c.month/3):NaN}},{key:"month",get:function(){return this.isValid?this.c.month:NaN}},{key:"day",get:function(){return this.isValid?this.c.day:NaN}},{key:"hour",get:function(){return this.isValid?this.c.hour:NaN}},{key:"minute",get:function(){return this.isValid?this.c.minute:NaN}},{key:"second",get:function(){return this.isValid?this.c.second:NaN}},{key:"millisecond",get:function(){return this.isValid?this.c.millisecond:NaN}},{key:"weekYear",get:function(){return this.isValid?zn(this).weekYear:NaN}},{key:"weekNumber",get:function(){return this.isValid?zn(this).weekNumber:NaN}},{key:"weekday",get:function(){return this.isValid?zn(this).weekday:NaN}},{key:"ordinal",get:function(){return this.isValid?Cn(this.c).ordinal:NaN}},{key:"monthShort",get:function(){return this.isValid?an.months("short",{locObj:this.loc})[this.month-1]:null}},{key:"monthLong",get:function(){return this.isValid?an.months("long",{locObj:this.loc})[this.month-1]:null}},{key:"weekdayShort",get:function(){return this.isValid?an.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}},{key:"weekdayLong",get:function(){return this.isValid?an.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}},{key:"offset",get:function(){return this.isValid?+this.o:NaN}},{key:"offsetNameShort",get:function(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}},{key:"offsetNameLong",get:function(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}},{key:"isOffsetFixed",get:function(){return this.isValid?this.zone.isUniversal:null}},{key:"isInDST",get:function(){return!this.isOffsetFixed&&(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return Gt(this.year)}},{key:"daysInMonth",get:function(){return Bt(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?$t(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?Kt(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return $}},{key:"DATE_MED",get:function(){return B}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return Q}},{key:"DATE_FULL",get:function(){return K}},{key:"DATE_HUGE",get:function(){return X}},{key:"TIME_SIMPLE",get:function(){return tt}},{key:"TIME_WITH_SECONDS",get:function(){return et}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return nt}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return rt}},{key:"TIME_24_SIMPLE",get:function(){return it}},{key:"TIME_24_WITH_SECONDS",get:function(){return ot}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return at}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return ut}},{key:"DATETIME_SHORT",get:function(){return st}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return ct}},{key:"DATETIME_MED",get:function(){return lt}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return ft}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return dt}},{key:"DATETIME_FULL",get:function(){return ht}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return mt}},{key:"DATETIME_HUGE",get:function(){return yt}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return vt}}]),p}();function ir(t){if(L.isDateTime(t))return t;if(t&&t.valueOf&&v(t.valueOf()))return L.fromJSDate(t);if(t&&"object"==typeof t)return L.fromObject(t);throw new u("Unknown datetime argument: "+t+", of type "+typeof t)}return t.DateTime=L,t.Duration=I,t.FixedOffsetZone=d,t.IANAZone=f,t.Info=an,t.Interval=on,t.InvalidZone=Lt,t.Settings=k,t.SystemZone=gt,t.VERSION="3.3.0",t.Zone=c,Object.defineProperty(t,"__esModule",{value:!0}),t}({}); \ No newline at end of file diff --git a/output/assets/js/moment-with-locales.min.js b/output/assets/js/moment-with-locales.min.js deleted file mode 100644 index a2842a7d..00000000 --- a/output/assets/js/moment-with-locales.min.js +++ /dev/null @@ -1,505 +0,0 @@ -!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return re.apply(null,arguments)}function b(a){re=a}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){return null!=a&&"[object Object]"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return"number"==typeof a||"[object Number]"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function j(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function k(a,b){for(var c in b)j(b,c)&&(a[c]=b[c]);return j(b,"toString")&&(a.toString=b.toString),j(b,"valueOf")&&(a.valueOf=b.valueOf),a}function l(a,b,c,d){return sb(a,b,c,d,!0).utc()}function m(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function n(a){return null==a._pf&&(a._pf=m()),a._pf}function o(a){if(null==a._isValid){var b=n(a),c=te.call(b.parsedDateParts,function(a){return null!=a}),d=!isNaN(a._d.getTime())&&b.overflow<0&&!b.empty&&!b.invalidMonth&&!b.invalidWeekday&&!b.nullInput&&!b.invalidFormat&&!b.userInvalidated&&(!b.meridiem||b.meridiem&&c);if(a._strict&&(d=d&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour),null!=Object.isFrozen&&Object.isFrozen(a))return d;a._isValid=d}return a._isValid}function p(a){var b=l(NaN);return null!=a?k(n(b),a):n(b).userInvalidated=!0,b}function q(a,b){var c,d,e;if(f(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),f(b._i)||(a._i=b._i),f(b._f)||(a._f=b._f),f(b._l)||(a._l=b._l),f(b._strict)||(a._strict=b._strict),f(b._tzm)||(a._tzm=b._tzm),f(b._isUTC)||(a._isUTC=b._isUTC),f(b._offset)||(a._offset=b._offset),f(b._pf)||(a._pf=n(b)),f(b._locale)||(a._locale=b._locale),ue.length>0)for(c=0;c<ue.length;c++)d=ue[c],e=b[d],f(e)||(a[d]=e);return a}function r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),ve===!1&&(ve=!0,a.updateOffset(this),ve=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a<0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}function v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d<e;d++)(c&&a[d]!==b[d]||!c&&u(a[d])!==u(b[d]))&&g++;return g+f}function w(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function x(b,c){var d=!0;return k(function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,b),d){for(var e,f=[],g=0;g<arguments.length;g++){if(e="","object"==typeof arguments[g]){e+="\n["+g+"] ";for(var h in arguments[0])e+=h+": "+arguments[0][h]+", ";e=e.slice(0,-2)}else e=arguments[g];f.push(e)}w(b+"\nArguments: "+Array.prototype.slice.call(f).join("")+"\n"+(new Error).stack),d=!1}return c.apply(this,arguments)},c)}function y(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),we[b]||(w(c),we[b]=!0)}function z(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}function A(a){var b,c;for(c in a)b=a[c],z(b)?this[c]=b:this["_"+c]=b;this._config=a,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function B(a,b){var c,e=k({},a);for(c in b)j(b,c)&&(d(a[c])&&d(b[c])?(e[c]={},k(e[c],a[c]),k(e[c],b[c])):null!=b[c]?e[c]=b[c]:delete e[c]);for(c in a)j(a,c)&&!j(b,c)&&d(a[c])&&(e[c]=k({},e[c]));return e}function C(a){null!=a&&this.set(a)}function D(a,b,c){var d=this._calendar[a]||this._calendar.sameElse;return z(d)?d.call(b,c):d}function E(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function F(){return this._invalidDate}function G(a){return this._ordinal.replace("%d",a)}function H(a,b,c,d){var e=this._relativeTime[c];return z(e)?e(a,b,c,d):e.replace(/%d/i,a)}function I(a,b){var c=this._relativeTime[a>0?"future":"past"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Ge[c]=Ge[c+"s"]=Ge[b]=a}function K(a){return"string"==typeof a?Ge[a]||Ge[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){He[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:He[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if("object"==typeof a){a=L(a);for(var c=N(a),d=0;d<c.length;d++)this[c[d].unit](a[c[d].unit])}else if(a=K(a),z(this[a]))return this[a](b);return this}function T(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Le[a]=e),b&&(Le[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Le[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function W(a){var b,c,d=a.match(Ie);for(b=0,c=d.length;b<c;b++)Le[d[b]]?d[b]=Le[d[b]]:d[b]=V(d[b]);return function(b){var e,f="";for(e=0;e<c;e++)f+=z(d[e])?d[e].call(b,a):d[e];return f}}function X(a,b){return a.isValid()?(b=Y(b,a.localeData()),Ke[b]=Ke[b]||W(b),Ke[b](a)):a.localeData().invalidDate()}function Y(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Je.lastIndex=0;d>=0&&Je.test(a);)a=a.replace(Je,c),Je.lastIndex=0,d-=1;return a}function Z(a,b,c){bf[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(bf,a)?bf[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ba(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c<a.length;c++)cf[a[c]]=d}function ca(a,b){ba(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function da(a,b,c){null!=b&&j(cf,a)&&cf[a](b,c._a,c,a)}function ea(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function fa(a,b){return a?c(this._months)?this._months[a.month()]:this._months[(this._months.isFormat||of).test(b)?"format":"standalone"][a.month()]:c(this._months)?this._months:this._months.standalone}function ga(a,b){return a?c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[of.test(b)?"format":"standalone"][a.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],d=0;d<12;++d)f=l([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,"").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,"").toLocaleLowerCase();return c?"MMM"===b?(e=nf.call(this._shortMonthsParse,g),e!==-1?e:null):(e=nf.call(this._longMonthsParse,g),e!==-1?e:null):"MMM"===b?(e=nf.call(this._shortMonthsParse,g),e!==-1?e:(e=nf.call(this._longMonthsParse,g),e!==-1?e:null)):(e=nf.call(this._longMonthsParse,g),e!==-1?e:(e=nf.call(this._shortMonthsParse,g),e!==-1?e:null))}function ia(a,b,c){var d,e,f;if(this._monthsParseExact)return ha.call(this,a,b,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;d<12;d++){if(e=l([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function ja(a,b){var c;if(!a.isValid())return a;if("string"==typeof b)if(/^\d+$/.test(b))b=u(b);else if(b=a.localeData().monthsParse(b),!g(b))return a;return c=Math.min(a.date(),ea(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a}function ka(b){return null!=b?(ja(this,b),a.updateOffset(this,!0),this):P(this,"Month")}function la(){return ea(this.year(),this.month())}function ma(a){return this._monthsParseExact?(j(this,"_monthsRegex")||oa.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(j(this,"_monthsShortRegex")||(this._monthsShortRegex=rf),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function na(a){return this._monthsParseExact?(j(this,"_monthsRegex")||oa.call(this),a?this._monthsStrictRegex:this._monthsRegex):(j(this,"_monthsRegex")||(this._monthsRegex=sf),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function oa(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;b<12;b++)c=l([2e3,b]),d.push(this.monthsShort(c,"")),e.push(this.months(c,"")),f.push(this.months(c,"")),f.push(this.monthsShort(c,""));for(d.sort(a),e.sort(a),f.sort(a),b=0;b<12;b++)d[b]=aa(d[b]),e[b]=aa(e[b]);for(b=0;b<24;b++)f[b]=aa(f[b]);this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+e.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")}function pa(a){return qa(a)?366:365}function qa(a){return a%4===0&&a%100!==0||a%400===0}function ra(){return qa(this.year())}function sa(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return a<100&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function Da(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return"string"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=nf.call(this._weekdaysParse,g),e!==-1?e:null):"ddd"===b?(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null):"dddd"===b?(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null))):"ddd"===b?(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,"d")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,"_weekdaysRegex")||(this._weekdaysRegex=yf),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=zf),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Af),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return"p"===(a+"").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Xa(a){return a?a.toLowerCase().replace("_","-"):a}function Ya(a){for(var b,c,d,e,f=0;f<a.length;){for(e=Xa(a[f]).split("-"),b=e.length,c=Xa(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=Za(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Ff[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Bf._abbr,require("./locale/"+a),$a(b)}catch(a){}return Ff[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Bf=c)),Bf._abbr}function _a(a,b){if(null!==b){var c=Ef;if(b.abbr=a,null!=Ff[a])y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),c=Ff[a]._config;else if(null!=b.parentLocale){if(null==Ff[b.parentLocale])return Gf[b.parentLocale]||(Gf[b.parentLocale]=[]),Gf[b.parentLocale].push({name:a,config:b}),null;c=Ff[b.parentLocale]._config}return Ff[a]=new C(B(c,b)),Gf[a]&&Gf[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Ff[a]}return delete Ff[a],null}function ab(a,b){if(null!=b){var c,d=Ef;null!=Ff[a]&&(d=Ff[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Ff[a],Ff[a]=c,$a(a)}else null!=Ff[a]&&(null!=Ff[a].parentLocale?Ff[a]=Ff[a].parentLocale:null!=Ff[a]&&delete Ff[a]);return Ff[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Bf;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return ze(Ff)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[ef]<0||c[ef]>11?ef:c[ff]<1||c[ff]>ea(c[df],c[ef])?ff:c[gf]<0||c[gf]>24||24===c[gf]&&(0!==c[hf]||0!==c[jf]||0!==c[kf])?gf:c[hf]<0||c[hf]>59?hf:c[jf]<0||c[jf]>59?jf:c[kf]<0||c[kf]>999?kf:-1,n(a)._overflowDayOfYear&&(b<df||b>ff)&&(b=ff),n(a)._overflowWeeks&&b===-1&&(b=lf),n(a)._overflowWeekday&&b===-1&&(b=mf),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=Hf.exec(h)||If.exec(h);if(i){for(n(a).iso=!0,b=0,c=Kf.length;b<c;b++)if(Kf[b][1].exec(i[1])){e=Kf[b][0],d=Kf[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Lf.length;b<c;b++)if(Lf[b][1].exec(i[3])){f=(i[2]||" ")+Lf[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!Jf.exec(i[4]))return void(a._isValid=!1);g="Z"}a._f=e+(f||"")+(g||""),lb(a)}else a._isValid=!1}function fb(a){var b,c,d,e,f,g,h,i,j={" GMT":" +0000"," EDT":" -0400"," EST":" -0500"," CDT":" -0500"," CST":" -0600"," MDT":" -0600"," MST":" -0700"," PDT":" -0700"," PST":" -0800"},k="YXWVUTSRQPONZABCDEFGHIKLM";if(b=a._i.replace(/\([^\)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s|\s$/g,""),c=Nf.exec(b)){if(d=c[1]?"ddd"+(5===c[1].length?", ":" "):"",e="D MMM "+(c[2].length>10?"YYYY ":"YY "),f="HH:mm"+(c[4]?":ss":""),c[1]){var l=new Date(c[2]),m=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=" +0000":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?" -":" +")+(""+i).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:h=j[c[5]];break;default:h=j[" GMT"]}c[5]=h,a._i=c.splice(1).join(""),g=" ZZ",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Mf.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ff]&&null==a._a[ef]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[df],d[df]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[ef]=c.getUTCMonth(),a._a[ff]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[gf]&&0===a._a[hf]&&0===a._a[jf]&&0===a._a[kf]&&(a._nextDay=!0,a._a[gf]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[gf]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[df],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[df],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[df]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Ie)||[],c=0;c<e.length;c++)f=e[c],d=(h.match($(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Le[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[gf]<=12&&n(b).bigHour===!0&&b._a[gf]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[gf]=mb(b._locale,b._a[gf],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=q({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],lb(b),o(b)&&(f+=n(b).charsLeftOver,f+=10*n(b).unusedTokens.length,n(b).score=f,(null==d||f<d)&&(d=f,c=b));k(a,c||b)}function ob(a){if(!a._d){var b=L(a._i);a._a=i([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),jb(a)}}function pb(a){var b=new r(db(qb(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function qb(a){var b=a._i,d=a._f;return a._locale=a._locale||bb(a._l),null===b||void 0===d&&""===b?p({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),s(b)?new r(db(b)):(h(b)?a._d=b:c(d)?nb(a):d?lb(a):rb(a),o(a)||(a._d=null),a))}function rb(b){var e=b._i;f(e)?b._d=new Date(a.now()):h(e)?b._d=new Date(e.valueOf()):"string"==typeof e?gb(b):c(e)?(b._a=i(e.slice(0),function(a){return parseInt(a,10)}),jb(b)):d(e)?ob(b):g(e)?b._d=new Date(e):a.createFromInputFallback(b)}function sb(a,b,f,g,h){var i={};return f!==!0&&f!==!1||(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,pb(i)}function tb(a,b,c,d){return sb(a,b,c,d,!1)}function ub(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return tb();for(d=b[0],e=1;e<b.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}function vb(){var a=[].slice.call(arguments,0);return ub("isBefore",a)}function wb(){var a=[].slice.call(arguments,0);return ub("isAfter",a)}function xb(a){for(var b in a)if(Rf.indexOf(b)===-1||null!=a[b]&&isNaN(a[b]))return!1;for(var c=!1,d=0;d<Rf.length;++d)if(a[Rf[d]]){if(c)return!1;parseFloat(a[Rf[d]])!==u(a[Rf[d]])&&(c=!0)}return!0}function yb(){return this._isValid}function zb(){return Sb(NaN)}function Ab(a){var b=L(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._isValid=xb(b),this._milliseconds=+k+1e3*j+6e4*i+1e3*h*60*60,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=bb(),this._bubble()}function Bb(a){return a instanceof Ab}function Cb(a){return a<0?Math.round(-1*a)*-1:Math.round(a)}function Db(a,b){U(a,0,0,function(){var a=this.utcOffset(),c="+";return a<0&&(a=-a,c="-"),c+T(~~(a/60),2)+b+T(~~a%60,2)})}function Eb(a,b){var c=(b||"").match(a);if(null===c)return null;var d=c[c.length-1]||[],e=(d+"").match(Sf)||["-",0,0],f=+(60*e[1])+u(e[2]);return 0===f?0:"+"===e[0]?f:-f}function Fb(b,c){var d,e;return c._isUTC?(d=c.clone(),e=(s(b)||h(b)?b.valueOf():tb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):tb(b).local()}function Gb(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Hb(b,c,d){var e,f=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if("string"==typeof b){if(b=Eb($e,b),null===b)return this}else Math.abs(b)<16&&!d&&(b=60*b);return!this._isUTC&&c&&(e=Gb(this)),this._offset=b,this._isUTC=!0,null!=e&&this.add(e,"m"),f!==b&&(!c||this._changeInProgress?Xb(this,Sb(b-f,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?f:Gb(this)}function Ib(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Jb(a){return this.utcOffset(0,a)}function Kb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Gb(this),"m")),this}function Lb(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var a=Eb(Ze,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Mb(a){return!!this.isValid()&&(a=a?tb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Nb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Tf.exec(a))?(c="-"===h[1]?-1:1,f={y:0,d:u(h[ff])*c,h:u(h[gf])*c,m:u(h[hf])*c,s:u(h[jf])*c,ms:u(Cb(1e3*h[kf]))*c}):(h=Uf.exec(a))?(c="-"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:"object"==typeof f&&("from"in f||"to"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,"_locale")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,"Date",P(b,"Date")+g*d),h&&ja(b,P(b,"Month")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,"days",!0);return c<-6?"sameElse":c<-1?"lastWeek":c<0?"lastDay":c<1?"sameDay":c<2?"nextDay":c<7?"nextWeek":"sameElse"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf("day"),f=a.calendarFormat(this,e)||"sameElse",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()<this.clone().startOf(b).valueOf())}function ac(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()<c.valueOf():this.clone().endOf(b).valueOf()<c.valueOf())}function bc(a,b,c,d){return d=d||"()",("("===d[0]?this.isAfter(a,c):!this.isBefore(a,c))&&(")"===d[1]?this.isBefore(b,c):!this.isAfter(b,c))}function cc(a,b){var c,d=s(a)?a:tb(a);return!(!this.isValid()||!d.isValid())&&(b=K(b||"millisecond"),"millisecond"===b?this.valueOf()===d.valueOf():(c=d.valueOf(),this.clone().startOf(b).valueOf()<=c&&c<=this.clone().endOf(b).valueOf()))}function dc(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function ec(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function fc(a,b,c){var d,e,f,g;return this.isValid()?(d=Fb(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=K(b),"year"===b||"month"===b||"quarter"===b?(g=gc(this,d),"quarter"===b?g/=3:"year"===b&&(g/=12)):(f=this-d,g="second"===b?f/1e3:"minute"===b?f/6e4:"hour"===b?f/36e5:"day"===b?(f-e)/864e5:"week"===b?(f-e)/6048e5:f),c?g:t(g)):NaN):NaN}function gc(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return b-f<0?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)||0}function hc(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ic(){if(!this.isValid())return null;var a=this.clone().utc();return a.year()<0||a.year()>9999?X(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function jc(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var a="moment",b="";this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",b="Z");var c="["+a+'("]',d=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",e="-MM-DD[T]HH:mm:ss.SSS",f=b+'[")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||"millisecond"===a?this:("date"===a&&(a="day"),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){ -return k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function Mc(a,b){b[kf]=u(1e3*("0."+a))}function Nc(){return this._isUTC?"UTC":""}function Oc(){return this._isUTC?"Coordinated Universal Time":""}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||"",null!=b)return Sc(a,b,c,"month");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,"month");return e}function Uc(a,b,c,d){"boolean"==typeof a?(g(b)&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||"");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,"day");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,"day");return i}function Vc(a,b){return Tc(a,b,"months")}function Wc(a,b){return Tc(a,b,"monthsShort")}function Xc(a,b,c){return Uc(a,b,c,"weekdays")}function Yc(a,b,c){return Uc(a,b,c,"weekdaysShort")}function Zc(a,b,c){return Uc(a,b,c,"weekdaysMin")}function $c(){var a=this._data;return this._milliseconds=dg(this._milliseconds),this._days=dg(this._days),this._months=dg(this._months),a.milliseconds=dg(a.milliseconds),a.seconds=dg(a.seconds),a.minutes=dg(a.minutes),a.hours=dg(a.hours),a.months=dg(a.months),a.years=dg(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+ed(b),"month"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+"s"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=tg(d.as("s")),f=tg(d.as("m")),g=tg(d.as("h")),h=tg(d.as("d")),i=tg(d.as("M")),j=tg(d.as("y")),k=e<=ug.ss&&["s",e]||e<ug.s&&["ss",e]||f<=1&&["m"]||f<ug.m&&["mm",f]||g<=1&&["h"]||g<ug.h&&["hh",g]||h<=1&&["d"]||h<ug.d&&["dd",h]||i<=1&&["M"]||i<ug.M&&["MM",i]||j<=1&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?tg:"function"==typeof a&&(tg=a,!0)}function pd(a,b){return void 0!==ug[a]&&(void 0===b?ug[a]:(ug[a]=b,"s"===a&&(ug.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=vg(this._milliseconds)/1e3,e=vg(this._days),f=vg(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"} -//! moment.js locale configuration -//! locale : Belarusian [be] -//! author : Dmitry Demidov : https://github.com/demidov91 -//! author: Praleska: http://praleska.pro/ -//! Author : Menelion Elensúle : https://github.com/Oire -function sd(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function td(a,b,c){var d={mm:b?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:b?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===c?b?"хвіліна":"хвіліну":"h"===c?b?"гадзіна":"гадзіну":a+" "+sd(d[c],+a)} -//! moment.js locale configuration -//! locale : Breton [br] -//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou -function ud(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+xd(d[c],a)}function vd(a){switch(wd(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function wd(a){return a>9?wd(a%10):a}function xd(a,b){return 2===b?yd(a):a}function yd(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)} -//! moment.js locale configuration -//! locale : Bosnian [bs] -//! author : Nedim Cholich : https://github.com/frontyard -//! based on (hr) translation by Bojan Marković -function zd(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Ad(a){return a>1&&a<5&&1!==~~(a/10)}function Bd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekund":"pár sekundami";case"m":return b?"minuta":d?"minutu":"minutou";case"mm":return b||d?e+(Ad(a)?"minuty":"minut"):e+"minutami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(Ad(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":return b||d?"den":"dnem";case"dd":return b||d?e+(Ad(a)?"dny":"dní"):e+"dny";break;case"M":return b||d?"měsíc":"měsícem";case"MM":return b||d?e+(Ad(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":return b||d?"rok":"rokem";case"yy":return b||d?e+(Ad(a)?"roky":"let"):e+"lety"}} -//! moment.js locale configuration -//! locale : German (Austria) [de-at] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Martin Groller : https://github.com/MadMG -//! author : Mikolaj Dadela : https://github.com/mik01aj -function Cd(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : German (Switzerland) [de-ch] -//! author : sschueller : https://github.com/sschueller -function Dd(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : German [de] -//! author : lluchs : https://github.com/lluchs -//! author: Menelion Elensúle: https://github.com/Oire -//! author : Mikolaj Dadela : https://github.com/mik01aj -function Ed(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Estonian [et] -//! author : Henry Kehlmann : https://github.com/madhenry -//! improvements : Illimar Tambek : https://github.com/ragulka -function Fd(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function Gd(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=Hd(a,d)+" "+e}function Hd(a,b){return a<10?b?$g[a]:Zg[a]:a} -//! moment.js locale configuration -//! locale : Konkani Latin script [gom-latn] -//! author : The Discoverer : https://github.com/WikiDiscoverer -function Id(a,b,c,d){var e={s:["thodde secondanim","thodde second"],m:["eka mintan","ek minute"],mm:[a+" mintanim",a+" mintam"],h:["eka horan","ek hor"],hh:[a+" horanim",a+" hor"],d:["eka disan","ek dis"],dd:[a+" disanim",a+" dis"],M:["eka mhoinean","ek mhoino"],MM:[a+" mhoineanim",a+" mhoine"],y:["eka vorsan","ek voros"],yy:[a+" vorsanim",a+" vorsam"]};return b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Croatian [hr] -//! author : Bojan Marković : https://github.com/bmarkovic -function Jd(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Kd(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function Ld(a){return(a?"":"[múlt] ")+"["+ih[this.day()]+"] LT[-kor]"} -//! moment.js locale configuration -//! locale : Icelandic [is] -//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik -function Md(a){return a%100===11||a%10!==1}function Nd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return Md(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return Md(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return Md(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return Md(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return Md(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}} -//! moment.js locale configuration -//! locale : Luxembourgish [lb] -//! author : mweimerskirch : https://github.com/mweimerskirch -//! author : David Raison : https://github.com/kwisatz -function Od(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function Pd(a){var b=a.substr(0,a.indexOf(" "));return Rd(b)?"a "+a:"an "+a}function Qd(a){var b=a.substr(0,a.indexOf(" "));return Rd(b)?"viru "+a:"virun "+a}function Rd(a){if(a=parseInt(a,10),isNaN(a))return!1;if(a<0)return!0;if(a<10)return 4<=a&&a<=7;if(a<100){var b=a%10,c=a/10;return Rd(0===b?c:b)}if(a<1e4){for(;a>=10;)a/=10;return Rd(a)}return a/=1e3,Rd(a)}function Sd(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function Td(a,b,c,d){return b?Vd(c)[0]:d?Vd(c)[1]:Vd(c)[2]}function Ud(a){return a%10===0||a>10&&a<20}function Vd(a){return nh[a].split("_")}function Wd(a,b,c,d){var e=a+" ";return 1===a?e+Td(a,b,c[0],d):b?e+(Ud(a)?Vd(c)[1]:Vd(c)[0]):d?e+Vd(c)[1]:e+(Ud(a)?Vd(c)[1]:Vd(c)[2])}function Xd(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function Yd(a,b,c){return a+" "+Xd(oh[c],a,b)}function Zd(a,b,c){return Xd(oh[c],a,b)}function $d(a,b){return b?"dažas sekundes":"dažām sekundēm"}function _d(a,b,c,d){var e="";if(b)switch(c){case"s":e="काही सेकंद";break;case"m":e="एक मिनिट";break;case"mm":e="%d मिनिटे";break;case"h":e="एक तास";break;case"hh":e="%d तास";break;case"d":e="एक दिवस";break;case"dd":e="%d दिवस";break;case"M":e="एक महिना";break;case"MM":e="%d महिने";break;case"y":e="एक वर्ष";break;case"yy":e="%d वर्षे"}else switch(c){case"s":e="काही सेकंदां";break;case"m":e="एका मिनिटा";break;case"mm":e="%d मिनिटां";break;case"h":e="एका तासा";break;case"hh":e="%d तासां";break;case"d":e="एका दिवसा";break;case"dd":e="%d दिवसां";break;case"M":e="एका महिन्या";break;case"MM":e="%d महिन्यां";break;case"y":e="एका वर्षा";break;case"yy":e="%d वर्षां"}return e.replace(/%d/i,a)}function ae(a){return a%10<5&&a%10>1&&~~(a/10)%10!==1}function be(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(ae(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(ae(a)?"godziny":"godzin");case"MM":return d+(ae(a)?"miesiące":"miesięcy");case"yy":return d+(ae(a)?"lata":"lat")}} -//! moment.js locale configuration -//! locale : Romanian [ro] -//! author : Vlad Gurdiga : https://github.com/gurdiga -//! author : Valentin Agachi : https://github.com/avaly -function ce(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]} -//! moment.js locale configuration -//! locale : Russian [ru] -//! author : Viktorminator : https://github.com/Viktorminator -//! Author : Menelion Elensúle : https://github.com/Oire -//! author : Коренберг Марк : https://github.com/socketpair -function de(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function ee(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===c?b?"минута":"минуту":a+" "+de(d[c],+a)}function fe(a){return a>1&&a<5}function ge(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekúnd":"pár sekundami";case"m":return b?"minúta":d?"minútu":"minútou";case"mm":return b||d?e+(fe(a)?"minúty":"minút"):e+"minútami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(fe(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":return b||d?"deň":"dňom";case"dd":return b||d?e+(fe(a)?"dni":"dní"):e+"dňami";break;case"M":return b||d?"mesiac":"mesiacom";case"MM":return b||d?e+(fe(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":return b||d?"rok":"rokom";case"yy":return b||d?e+(fe(a)?"roky":"rokov"):e+"rokmi"}} -//! moment.js locale configuration -//! locale : Slovenian [sl] -//! author : Robert Sedovšek : https://github.com/sedovsek -function he(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":a<5?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":a<5?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":a<5?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":a<5?b||d?"leta":"leti":b||d?"let":"leti"}}function ie(a){var b=a;return b=a.indexOf("jaj")!==-1?b.slice(0,-3)+"leS":a.indexOf("jar")!==-1?b.slice(0,-3)+"waQ":a.indexOf("DIS")!==-1?b.slice(0,-3)+"nem":b+" pIq"}function je(a){var b=a;return b=a.indexOf("jaj")!==-1?b.slice(0,-3)+"Hu’":a.indexOf("jar")!==-1?b.slice(0,-3)+"wen":a.indexOf("DIS")!==-1?b.slice(0,-3)+"ben":b+" ret"}function ke(a,b,c,d){var e=le(a);switch(c){case"mm":return e+" tup";case"hh":return e+" rep";case"dd":return e+" jaj";case"MM":return e+" jar";case"yy":return e+" DIS"}}function le(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e="";return b>0&&(e+=Rh[b]+"vatlh"),c>0&&(e+=(""!==e?" ":"")+Rh[c]+"maH"),d>0&&(e+=(""!==e?" ":"")+Rh[d]),""===e?"pagh":e}function me(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts",""+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras",""+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas",""+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen",""+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars",""+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1]} -//! moment.js locale configuration -//! locale : Ukrainian [uk] -//! author : zemlanin : https://github.com/zemlanin -//! Author : Menelion Elensúle : https://github.com/Oire -function ne(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function oe(a,b,c){var d={mm:b?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:b?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+ne(d[c],+a)}function pe(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};if(!a)return c.nominative;var d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function qe(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}var re,se;se=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d<c;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};var te=se,ue=a.momentProperties=[],ve=!1,we={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var xe;xe=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)j(a,b)&&c.push(b);return c};var ye,ze=xe,Ae={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Be={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Ce="Invalid date",De="%d",Ee=/\d{1,2}/,Fe={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ge={},He={},Ie=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Je=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ke={},Le={},Me=/\d/,Ne=/\d\d/,Oe=/\d{3}/,Pe=/\d{4}/,Qe=/[+-]?\d{6}/,Re=/\d\d?/,Se=/\d\d\d\d?/,Te=/\d\d\d\d\d\d?/,Ue=/\d{1,3}/,Ve=/\d{1,4}/,We=/[+-]?\d{1,6}/,Xe=/\d+/,Ye=/[+-]?\d+/,Ze=/Z|[+-]\d\d:?\d\d/gi,$e=/Z|[+-]\d\d(?::?\d\d)?/gi,_e=/[+-]?\d+(\.\d{1,3})?/,af=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,bf={},cf={},df=0,ef=1,ff=2,gf=3,hf=4,jf=5,kf=6,lf=7,mf=8;ye=Array.prototype.indexOf?Array.prototype.indexOf:function(a){var b;for(b=0;b<this.length;++b)if(this[b]===a)return b;return-1};var nf=ye;U("M",["MM",2],"Mo",function(){return this.month()+1}),U("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),U("MMMM",0,0,function(a){return this.localeData().months(this,a)}),J("month","M"),M("month",8),Z("M",Re),Z("MM",Re,Ne),Z("MMM",function(a,b){return b.monthsShortRegex(a)}),Z("MMMM",function(a,b){return b.monthsRegex(a)}),ba(["M","MM"],function(a,b){b[ef]=u(a)-1}),ba(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[ef]=e:n(c).invalidMonth=a});var of=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,pf="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),qf="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),rf=af,sf=af;U("Y",0,0,function(){var a=this.year();return a<=9999?""+a:"+"+a}),U(0,["YY",2],0,function(){return this.year()%100}),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),J("year","y"),M("year",1),Z("Y",Ye),Z("YY",Re,Ne),Z("YYYY",Ve,Pe),Z("YYYYY",We,Qe),Z("YYYYYY",We,Qe),ba(["YYYYY","YYYYYY"],df),ba("YYYY",function(b,c){c[df]=2===b.length?a.parseTwoDigitYear(b):u(b)}),ba("YY",function(b,c){c[df]=a.parseTwoDigitYear(b)}),ba("Y",function(a,b){b[df]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return u(a)+(u(a)>68?1900:2e3)};var tf=O("FullYear",!0);U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),J("week","w"),J("isoWeek","W"),M("week",5),M("isoWeek",5),Z("w",Re),Z("ww",Re,Ne),Z("W",Re),Z("WW",Re,Ne),ca(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var uf={dow:0,doy:6};U("d",0,"do","day"),U("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),J("day","d"),J("weekday","e"),J("isoWeekday","E"),M("day",11),M("weekday",11),M("isoWeekday",11),Z("d",Re),Z("e",Re),Z("E",Re),Z("dd",function(a,b){return b.weekdaysMinRegex(a)}),Z("ddd",function(a,b){return b.weekdaysShortRegex(a)}),Z("dddd",function(a,b){return b.weekdaysRegex(a)}),ca(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca(["d","e","E"],function(a,b,c,d){b[d]=u(a)});var vf="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),wf="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),xf="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yf=af,zf=af,Af=af;U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Ra),U("k",["kk",2],0,Sa),U("hmm",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)}),U("hmmss",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+T(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta("a",!0),Ta("A",!1),J("hour","h"),M("hour",13),Z("a",Ua),Z("A",Ua),Z("H",Re),Z("h",Re),Z("k",Re),Z("HH",Re,Ne),Z("hh",Re,Ne),Z("kk",Re,Ne),Z("hmm",Se),Z("hmmss",Te),Z("Hmm",Se),Z("Hmmss",Te),ba(["H","HH"],gf),ba(["k","kk"],function(a,b,c){var d=u(a);b[gf]=24===d?0:d}),ba(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba(["h","hh"],function(a,b,c){b[gf]=u(a),n(c).bigHour=!0}),ba("hmm",function(a,b,c){var d=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d)),n(c).bigHour=!0}),ba("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d,2)),b[jf]=u(a.substr(e)),n(c).bigHour=!0}),ba("Hmm",function(a,b,c){var d=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d))}),ba("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d,2)),b[jf]=u(a.substr(e))});var Bf,Cf=/[ap]\.?m?\.?/i,Df=O("Hours",!0),Ef={calendar:Ae,longDateFormat:Be,invalidDate:Ce,ordinal:De,dayOfMonthOrdinalParse:Ee,relativeTime:Fe,months:pf,monthsShort:qf,week:uf,weekdays:vf,weekdaysMin:xf,weekdaysShort:wf,meridiemParse:Cf},Ff={},Gf={},Hf=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,If=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Jf=/Z|[+-]\d\d(?::?\d\d)?/,Kf=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Lf=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mf=/^\/?Date\((\-?\d+)/i,Nf=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;a.createFromInputFallback=x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Of=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a<this?this:a:p()}),Pf=x("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:p()}),Qf=function(){return Date.now?Date.now():+new Date},Rf=["year","quarter","month","week","day","hour","minute","second","millisecond"];Db("Z",":"),Db("ZZ",""),Z("Z",$e),Z("ZZ",$e),ba(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Eb($e,a)});var Sf=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var Tf=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Uf=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Vf=Wb(1,"add"),Wf=Wb(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xf=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Dc("gggg","weekYear"),Dc("ggggg","weekYear"),Dc("GGGG","isoWeekYear"),Dc("GGGGG","isoWeekYear"),J("weekYear","gg"),J("isoWeekYear","GG"),M("weekYear",1),M("isoWeekYear",1),Z("G",Ye),Z("g",Ye),Z("GG",Re,Ne),Z("gg",Re,Ne),Z("GGGG",Ve,Pe),Z("gggg",Ve,Pe),Z("GGGGG",We,Qe),Z("ggggg",We,Qe),ca(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U("Q",0,"Qo","quarter"),J("quarter","Q"),M("quarter",7),Z("Q",Me),ba("Q",function(a,b){b[ef]=3*(u(a)-1)}),U("D",["DD",2],"Do","date"),J("date","D"),M("date",9),Z("D",Re),Z("DD",Re,Ne),Z("Do",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba(["D","DD"],ff),ba("Do",function(a,b){b[ff]=u(a.match(Re)[0],10)});var Yf=O("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),J("dayOfYear","DDD"),M("dayOfYear",4),Z("DDD",Ue),Z("DDDD",Oe),ba(["DDD","DDDD"],function(a,b,c){c._dayOfYear=u(a)}),U("m",["mm",2],0,"minute"),J("minute","m"),M("minute",14),Z("m",Re),Z("mm",Re,Ne),ba(["m","mm"],hf);var Zf=O("Minutes",!1);U("s",["ss",2],0,"second"),J("second","s"),M("second",15),Z("s",Re),Z("ss",Re,Ne),ba(["s","ss"],jf);var $f=O("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),J("millisecond","ms"),M("millisecond",16),Z("S",Ue,Me),Z("SS",Ue,Ne),Z("SSS",Ue,Oe);var _f;for(_f="SSSS";_f.length<=9;_f+="S")Z(_f,Xe);for(_f="S";_f.length<=9;_f+="S")ba(_f,Mc);var ag=O("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var bg=r.prototype;bg.add=Vf,bg.calendar=Zb,bg.clone=$b,bg.diff=fc,bg.endOf=sc,bg.format=kc,bg.from=lc,bg.fromNow=mc,bg.to=nc,bg.toNow=oc,bg.get=R,bg.invalidAt=Bc,bg.isAfter=_b,bg.isBefore=ac,bg.isBetween=bc,bg.isSame=cc,bg.isSameOrAfter=dc,bg.isSameOrBefore=ec,bg.isValid=zc,bg.lang=Xf,bg.locale=pc,bg.localeData=qc,bg.max=Pf,bg.min=Of,bg.parsingFlags=Ac,bg.set=S,bg.startOf=rc,bg.subtract=Wf,bg.toArray=wc,bg.toObject=xc,bg.toDate=vc,bg.toISOString=ic,bg.inspect=jc,bg.toJSON=yc,bg.toString=hc,bg.unix=uc,bg.valueOf=tc,bg.creationData=Cc,bg.year=tf,bg.isLeapYear=ra,bg.weekYear=Ec,bg.isoWeekYear=Fc,bg.quarter=bg.quarters=Kc,bg.month=ka,bg.daysInMonth=la,bg.week=bg.weeks=Ba,bg.isoWeek=bg.isoWeeks=Ca,bg.weeksInYear=Hc,bg.isoWeeksInYear=Gc,bg.date=Yf,bg.day=bg.days=Ka,bg.weekday=La,bg.isoWeekday=Ma,bg.dayOfYear=Lc,bg.hour=bg.hours=Df,bg.minute=bg.minutes=Zf,bg.second=bg.seconds=$f,bg.millisecond=bg.milliseconds=ag,bg.utcOffset=Hb,bg.utc=Jb,bg.local=Kb,bg.parseZone=Lb,bg.hasAlignedHourOffset=Mb,bg.isDST=Nb,bg.isLocal=Pb,bg.isUtcOffset=Qb,bg.isUtc=Rb,bg.isUTC=Rb,bg.zoneAbbr=Nc,bg.zoneName=Oc,bg.dates=x("dates accessor is deprecated. Use date instead.",Yf),bg.months=x("months accessor is deprecated. Use month instead",ka),bg.years=x("years accessor is deprecated. Use year instead",tf),bg.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ib),bg.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ob);var cg=C.prototype;cg.calendar=D,cg.longDateFormat=E,cg.invalidDate=F,cg.ordinal=G,cg.preparse=Rc,cg.postformat=Rc,cg.relativeTime=H,cg.pastFuture=I,cg.set=A,cg.months=fa,cg.monthsShort=ga,cg.monthsParse=ia,cg.monthsRegex=na,cg.monthsShortRegex=ma,cg.week=ya,cg.firstDayOfYear=Aa,cg.firstDayOfWeek=za,cg.weekdays=Fa,cg.weekdaysMin=Ha,cg.weekdaysShort=Ga,cg.weekdaysParse=Ja,cg.weekdaysRegex=Na,cg.weekdaysShortRegex=Oa,cg.weekdaysMinRegex=Pa,cg.isPM=Va,cg.meridiem=Wa,$a("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=x("moment.lang is deprecated. Use moment.locale instead.",$a),a.langData=x("moment.langData is deprecated. Use moment.localeData instead.",bb);var dg=Math.abs,eg=id("ms"),fg=id("s"),gg=id("m"),hg=id("h"),ig=id("d"),jg=id("w"),kg=id("M"),lg=id("y"),mg=kd("milliseconds"),ng=kd("seconds"),og=kd("minutes"),pg=kd("hours"),qg=kd("days"),rg=kd("months"),sg=kd("years"),tg=Math.round,ug={ss:44,s:45,m:45,h:22,d:26,M:11},vg=Math.abs,wg=Ab.prototype;wg.isValid=yb,wg.abs=$c,wg.add=ad,wg.subtract=bd,wg.as=gd,wg.asMilliseconds=eg,wg.asSeconds=fg,wg.asMinutes=gg,wg.asHours=hg,wg.asDays=ig,wg.asWeeks=jg,wg.asMonths=kg,wg.asYears=lg,wg.valueOf=hd,wg._bubble=dd,wg.get=jd,wg.milliseconds=mg,wg.seconds=ng,wg.minutes=og,wg.hours=pg,wg.days=qg,wg.weeks=ld,wg.months=rg,wg.years=sg,wg.humanize=qd,wg.toISOString=rd,wg.toString=rd,wg.toJSON=rd,wg.locale=pc,wg.localeData=qc,wg.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",rd),wg.lang=Xf,U("X",0,0,"unix"),U("x",0,0,"valueOf"),Z("x",Ye),Z("X",_e),ba("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba("x",function(a,b,c){c._d=new Date(u(a))}), -//! moment.js -//! version : 2.18.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -a.version="2.18.1",b(tb),a.fn=bg,a.min=vb,a.max=wb,a.now=Qf,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bg, -//! moment.js locale configuration -//! locale : Afrikaans [af] -//! author : Werner Mollentze : https://github.com/wernerm -a.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return a<12?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Arabic (Algeria) [ar-dz] -//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme -a.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}}), -//! moment.js locale configuration -//! locale : Arabic (Kuwait) [ar-kw] -//! author : Nusret Parlak: https://github.com/nusretparlak -a.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}}); -//! moment.js locale configuration -//! locale : Arabic (Lybia) [ar-ly] -//! author : Ali Hmer: https://github.com/kikoanis -var xg={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},yg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},zg={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Ag=function(a){return function(b,c,d,e){var f=yg(b),g=zg[a][yg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Bg=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];a.defineLocale("ar-ly",{months:Bg,monthsShort:Bg,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Ag("s"),m:Ag("m"),mm:Ag("m"),h:Ag("h"),hh:Ag("h"),d:Ag("d"),dd:Ag("d"),M:Ag("M"),MM:Ag("M"),y:Ag("y"),yy:Ag("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return xg[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}), -//! moment.js locale configuration -//! locale : Arabic (Morocco) [ar-ma] -//! author : ElFadili Yassine : https://github.com/ElFadiliY -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Arabic (Saudi Arabia) [ar-sa] -//! author : Suhail Alkowaileet : https://github.com/xsoh -var Cg={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Dg={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};a.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Dg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Cg[a]}).replace(/,/g,"،")},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Arabic (Tunisia) [ar-tn] -//! author : Nader Toukabri : https://github.com/naderio -a.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Arabic [ar] -//! author : Abdel Said: https://github.com/abdelsaid -//! author : Ahmed Elkhatib -//! author : forabi https://github.com/forabi -var Eg={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Fg={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},Gg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},Hg={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Ig=function(a){return function(b,c,d,e){var f=Gg(b),g=Hg[a][Gg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Jg=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"];a.defineLocale("ar",{months:Jg,monthsShort:Jg,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return a<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Ig("s"),m:Ig("m"),mm:Ig("m"),h:Ig("h"),hh:Ig("h"),d:Ig("d"),dd:Ig("d"),M:Ig("M"),MM:Ig("M"),y:Ig("y"),yy:Ig("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Fg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Eg[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Azerbaijani [az] -//! author : topchiyev : https://github.com/topchiyev -var Kg={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return a<4?"gecə":a<12?"səhər":a<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Kg[b]||Kg[c]||Kg[d])},week:{dow:1,doy:7}}),a.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:td,mm:td,h:td,hh:td,d:"дзень",dd:td,M:"месяц",MM:td,y:"год",yy:td},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночы":a<12?"раніцы":a<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Bulgarian [bg] -//! author : Krasen Borisov : https://github.com/kraz -a.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&c<20?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Bengali [bn] -//! author : Kaushik Gandhi : https://github.com/kaushikgandhi -var Lg={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},Mg={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};a.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return Mg[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Lg[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),"রাত"===b&&a>=4||"দুপুর"===b&&a<5||"বিকাল"===b?a+12:a},meridiem:function(a,b,c){return a<4?"রাত":a<10?"সকাল":a<17?"দুপুর":a<20?"বিকাল":"রাত"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Tibetan [bo] -//! author : Thupten N. Chakrishar : https://github.com/vajradog -var Ng={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},Og={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};a.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return Og[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ng[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),"མཚན་མོ"===b&&a>=4||"ཉིན་གུང"===b&&a<5||"དགོང་དག"===b?a+12:a},meridiem:function(a,b,c){return a<4?"མཚན་མོ":a<10?"ཞོགས་ཀས":a<17?"ཉིན་གུང":a<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),a.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:ud,h:"un eur",hh:"%d eur",d:"un devezh",dd:ud,M:"ur miz",MM:ud,y:"ur bloaz",yy:vd},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}}),a.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:zd,mm:zd,h:zd,hh:zd,d:"dan",dd:zd,M:"mjesec",MM:zd,y:"godinu",yy:zd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Catalan [ca] -//! author : Juan G. Hurtado : https://github.com/juanghurtado -a.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"[el] D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"[el] D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"[el] dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return"w"!==b&&"W"!==b||(c="a"),a+c},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Czech [cs] -//! author : petrbela : https://github.com/petrbela -var Pg="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),Qg="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");a.defineLocale("cs",{months:Pg,monthsShort:Qg,monthsParse:function(a,b){var c,d=[];for(c=0;c<12;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(Pg,Qg),shortMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(Qg),longMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(Pg),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:Bd,m:Bd,mm:Bd,h:Bd,hh:Bd,d:Bd,dd:Bd,M:Bd,MM:Bd,y:Bd,yy:Bd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Chuvash [cv] -//! author : Anatoly Mironov : https://github.com/mirontoli -a.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/ҫул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пӗр-ик ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Welsh [cy] -//! author : Robert Allen : https://github.com/robgallen -//! author : https://github.com/ryangreaves -a.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Danish [da] -//! author : Ulrik Nielsen : https://github.com/mrbase -a.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Cd,mm:"%d Minuten",h:Cd,hh:"%d Stunden",d:Cd,dd:Cd,M:Cd,MM:Cd,y:Cd,yy:Cd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH.mm",LLLL:"dddd, D. MMMM YYYY HH.mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Dd,mm:"%d Minuten",h:Dd,hh:"%d Stunden",d:Dd,dd:Dd,M:Dd,MM:Dd,y:Dd,yy:Dd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Ed,mm:"%d Minuten",h:Ed,hh:"%d Stunden",d:Ed,dd:Ed,M:Ed,MM:Ed,y:Ed,yy:Ed},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Maldivian [dv] -//! author : Jawish Hameed : https://github.com/jawish -var Rg=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],Sg=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];a.defineLocale("dv",{months:Rg,monthsShort:Rg,weekdays:Sg,weekdaysShort:Sg,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(a){return"މފ"===a},meridiem:function(a,b,c){return a<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(a){return a.replace(/،/g,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:7,doy:12}}), -//! moment.js locale configuration -//! locale : Greek [el] -//! author : Aggelos Karalias : https://github.com/mehiel -a.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return a?/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return z(c)&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Australia) [en-au] -//! author : Jared Morse : https://github.com/jarcoal -a.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Canada) [en-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca -a.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}), -//! moment.js locale configuration -//! locale : English (United Kingdom) [en-gb] -//! author : Chris Gedrim : https://github.com/chrisgedrim -a.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (Ireland) [en-ie] -//! author : Chris Cartlidge : https://github.com/chriscartlidge -a.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : English (New Zealand) [en-nz] -//! author : Luke McGregor : https://github.com/lukemcgregor -a.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Esperanto [eo] -//! author : Colin Dean : https://github.com/colindean -//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia -//! comment : miestasmia corrected the translation by colindean -a.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Spanish (Dominican Republic) [es-do] -var Tg="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ug="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");a.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Ug[a.month()]:Tg[a.month()]:Tg},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Spanish [es] -//! author : Julio Napurí : https://github.com/julionc -var Vg="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Wg="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");a.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Wg[a.month()]:Vg[a.month()]:Vg},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:Fd,m:Fd,mm:Fd,h:Fd,hh:Fd,d:Fd,dd:"%d päeva",M:Fd,MM:Fd,y:Fd,yy:Fd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Basque [eu] -//! author : Eneko Illarramendi : https://github.com/eillarra -a.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Persian [fa] -//! author : Ebrahim Byagowi : https://github.com/ebraminio -var Xg={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},Yg={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};a.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return a<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return Yg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Xg[a]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}}); -//! moment.js locale configuration -//! locale : Finnish [fi] -//! author : Tarmo Aidantausta : https://github.com/bleadof -var Zg="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),$g=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Zg[7],Zg[8],Zg[9]];a.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:Gd,m:Gd,mm:Gd,h:Gd,hh:Gd,d:Gd,dd:Gd,M:Gd,MM:Gd,y:Gd,yy:Gd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Faroese [fo] -//! author : Ragnar Johannesen : https://github.com/ragnar123 -a.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : French (Canada) [fr-ca] -//! author : Jonathan Abourbih : https://github.com/jonbca -a.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case"M":case"Q":case"D":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}}}), -//! moment.js locale configuration -//! locale : French (Switzerland) [fr-ch] -//! author : Gaspard Bucher : https://github.com/gaspard -a.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case"M":case"Q":case"D":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : French [fr] -//! author : John Fischer : https://github.com/jfroffice -a.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(a,b){switch(b){case"D":return a+(1===a?"er":"");default:case"M":case"Q":case"DDD":case"d":return a+(1===a?"er":"e");case"w":case"W":return a+(1===a?"re":"e")}},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Frisian [fy] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -var _g="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),ah="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");a.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?ah[a.month()]:_g[a.month()]:_g},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Scottish Gaelic [gd] -//! author : Jon Ashdown : https://github.com/jonashdown -var bh=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],ch=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],dh=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],eh=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],fh=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];a.defineLocale("gd",{months:bh,monthsShort:ch,monthsParseExact:!0,weekdays:dh,weekdaysShort:eh,weekdaysMin:fh,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?"d":a%10===2?"na":"mh";return a+b},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Galician [gl] -//! author : Juan G. Hurtado : https://github.com/juanghurtado -a.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return 0===a.indexOf("un")?"n"+a:"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:Id,m:Id,mm:Id,h:Id,hh:Id,d:Id,dd:Id,M:Id,MM:Id,y:Id,yy:Id},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(a,b){switch(b){case"D":return a+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return a}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(a,b){return 12===a&&(a=0),"rati"===b?a<4?a:a+12:"sokalli"===b?a:"donparam"===b?a>12?a:a+12:"sanje"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"rati":a<12?"sokalli":a<16?"donparam":a<20?"sanje":"rati"}}), -//! moment.js locale configuration -//! locale : Hebrew [he] -//! author : Tomer Cohen : https://github.com/tomer -//! author : Moshe Simantov : https://github.com/DevelopmentIL -//! author : Tal Ater : https://github.com/TalAter -a.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a%10===0&&10!==a?a+" שנה":a+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return a<5?"לפנות בוקר":a<10?"בבוקר":a<12?c?'לפנה"צ':"לפני הצהריים":a<18?c?'אחה"צ':"אחרי הצהריים":"בערב"}}); -//! moment.js locale configuration -//! locale : Hindi [hi] -//! author : Mayank Singhal : https://github.com/mayanksinghal -var gh={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},hh={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return hh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return gh[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?a<4?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"रात":a<10?"सुबह":a<17?"दोपहर":a<20?"शाम":"रात"},week:{dow:0,doy:6}}),a.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:Jd,mm:Jd,h:Jd,hh:Jd,d:"dan",dd:Jd,M:"mjesec",MM:Jd,y:"godinu",yy:Jd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Hungarian [hu] -//! author : Adam Brunner : https://github.com/adambrunner -var ih="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");a.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return a<12?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return Ld.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return Ld.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Kd,m:Kd,mm:Kd,h:Kd,hh:Kd,d:Kd,dd:Kd,M:Kd,MM:Kd,y:Kd,yy:Kd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Armenian [hy-am] -//! author : Armendarabyan : https://github.com/armendarabyan -a.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return a<4?"գիշերվա":a<12?"առավոտվա":a<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Indonesian [id] -//! author : Mohammad Satrio Utomo : https://github.com/tyok -//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan -a.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"siang":a<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),a.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:Nd,m:Nd,mm:Nd,h:"klukkustund",hh:Nd,d:Nd,dd:Nd,M:Nd,MM:Nd,y:Nd,yy:Nd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Italian [it] -//! author : Lorenzo : https://github.com/aliem -//! author: Mattia Larentis: https://github.com/nostalgiaz -a.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Japanese [ja] -//! author : LI Long : https://github.com/baryon -a.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return a<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";default:return a}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}), -//! moment.js locale configuration -//! locale : Javanese [jv] -//! author : Rony Lantip : https://github.com/lantip -//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa -a.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"enjing":a<15?"siyang":a<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Georgian [ka] -//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili -a.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის უკან"):/წელი/.test(a)?a.replace(/წელი$/,"წლის უკან"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":a<20||a<=100&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Kazakh [kk] -//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan -var jh={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};a.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(jh[a]||jh[b]||jh[c])},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Cambodian [km] -//! author : Kruy Vanna : https://github.com/kruyvanna -a.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Kannada [kn] -//! author : Rajeev Naik : https://github.com/rajeevnaikte -var kh={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},lh={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};a.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(a){return a.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(a){return lh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return kh[a]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ರಾತ್ರಿ"===b?a<4?a:a+12:"ಬೆಳಿಗ್ಗೆ"===b?a:"ಮಧ್ಯಾಹ್ನ"===b?a>=10?a:a+12:"ಸಂಜೆ"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"ರಾತ್ರಿ":a<10?"ಬೆಳಿಗ್ಗೆ":a<17?"ಮಧ್ಯಾಹ್ನ":a<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(a){return a+"ನೇ"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Korean [ko] -//! author : Kyungwook, Park : https://github.com/kyungw00k -//! author : Jeeeyul Lee <jeeeyul@gmail.com> -a.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return a<12?"오전":"오후"}}); -//! moment.js locale configuration -//! locale : Kyrgyz [ky] -//! author : Chyngyz Arystan uulu : https://github.com/chyngyz -var mh={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};a.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кече саат] LT",lastWeek:"[Өткен аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(mh[a]||mh[b]||mh[c])},week:{dow:1,doy:7}}),a.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:Pd,past:Qd,s:"e puer Sekonnen",m:Od,mm:"%d Minutten",h:Od,hh:"%d Stonnen",d:Od,dd:"%d Deeg",M:Od,MM:"%d Méint",y:Od,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Lao [lo] -//! author : Ryan Hart : https://github.com/ryanhart2 -a.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return"ຕອນແລງ"===a},meridiem:function(a,b,c){return a<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(a){return"ທີ່"+a}}); -//! moment.js locale configuration -//! locale : Lithuanian [lt] -//! author : Mindaugas Mozūras : https://github.com/mmozuras -var nh={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};a.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:Sd,m:Td,mm:Wd,h:Td,hh:Wd,d:Td,dd:Wd,M:Td,MM:Wd,y:Td,yy:Wd},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Latvian [lv] -//! author : Kristaps Karlsons : https://github.com/skakri -//! author : Jānis Elmeris : https://github.com/JanisE -var oh={m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};a.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:$d,m:Zd,mm:Yd,h:Zd,hh:Yd,d:Zd,dd:Yd,M:Zd,MM:Yd,y:Zd,yy:Yd},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Montenegrin [me] -//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac -var ph={words:{m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=ph.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+ph.correctGrammaticalCase(a,d)}};a.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:ph.translate,mm:ph.translate,h:ph.translate,hh:ph.translate,d:"dan",dd:ph.translate,M:"mjesec",MM:ph.translate,y:"godinu",yy:ph.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Maori [mi] -//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal -a.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Macedonian [mk] -//! author : Borislav Mickov : https://github.com/B0k0 -a.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&c<20?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Malayalam [ml] -//! author : Floyd Pink : https://github.com/floydpink -a.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),"രാത്രി"===b&&a>=4||"ഉച്ച കഴിഞ്ഞ്"===b||"വൈകുന്നേരം"===b?a+12:a},meridiem:function(a,b,c){return a<4?"രാത്രി":a<12?"രാവിലെ":a<17?"ഉച്ച കഴിഞ്ഞ്":a<20?"വൈകുന്നേരം":"രാത്രി"}}); -//! moment.js locale configuration -//! locale : Marathi [mr] -//! author : Harshad Kale : https://github.com/kalehv -//! author : Vivek Athalye : https://github.com/vnathalye -var qh={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},rh={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:_d,m:_d,mm:_d,h:_d,hh:_d,d:_d,dd:_d,M:_d,MM:_d,y:_d,yy:_d},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return rh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return qh[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात्री"===b?a<4?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"रात्री":a<10?"सकाळी":a<17?"दुपारी":a<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Malay [ms-my] -//! note : DEPRECATED, the correct one is [ms] -//! author : Weldan Jamili : https://github.com/weldan -a.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"tengahari":a<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Malay [ms] -//! author : Weldan Jamili : https://github.com/weldan -a.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?"pagi":a<15?"tengahari":a<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Burmese [my] -//! author : Squar team, mysquar.com -//! author : David Rossellat : https://github.com/gholadr -//! author : Tin Aung Lin : https://github.com/thanyawzinmin -var sh={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},th={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};a.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return th[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return sh[a]})},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Norwegian Bokmål [nb] -//! authors : Espen Hovlandsdal : https://github.com/rexxars -//! Sigurd Gartmann : https://github.com/sigurdga -a.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Nepalese [ne] -//! author : suvash : https://github.com/suvash -var uh={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},vh={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};a.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return vh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return uh[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),"राति"===b?a<4?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return a<3?"राति":a<12?"बिहान":a<16?"दिउँसो":a<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Dutch (Belgium) [nl-be] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj -var wh="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),xh="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),yh=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],zh=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;a.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?xh[a.month()]:wh[a.month()]:wh},monthsRegex:zh,monthsShortRegex:zh,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:yh,longMonthsParse:yh,shortMonthsParse:yh,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Dutch [nl] -//! author : Joris Röling : https://github.com/jorisroling -//! author : Jacob Middag : https://github.com/middagj -var Ah="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Bh="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Ch=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Dh=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;a.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Bh[a.month()]:Ah[a.month()]:Ah},monthsRegex:Dh,monthsShortRegex:Dh,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Ch,longMonthsParse:Ch,shortMonthsParse:Ch,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Nynorsk [nn] -//! author : https://github.com/mechuwind -a.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Punjabi (India) [pa-in] -//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit -var Eh={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},Fh={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};a.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(a){return a.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(a){return Fh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Eh[a]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ਰਾਤ"===b?a<4?a:a+12:"ਸਵੇਰ"===b?a:"ਦੁਪਹਿਰ"===b?a>=10?a:a+12:"ਸ਼ਾਮ"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"ਰਾਤ":a<10?"ਸਵੇਰ":a<17?"ਦੁਪਹਿਰ":a<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}}); -//! moment.js locale configuration -//! locale : Polish [pl] -//! author : Rafal Hirsz : https://github.com/evoL -var Gh="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),Hh="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");a.defineLocale("pl",{months:function(a,b){return a?""===b?"("+Hh[a.month()]+"|"+Gh[a.month()]+")":/D MMMM/.test(b)?Hh[a.month()]:Gh[a.month()]:Gh},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:be,mm:be,h:be,hh:be,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:be,y:"rok",yy:be},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Portuguese (Brazil) [pt-br] -//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira -a.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"}), -//! moment.js locale configuration -//! locale : Portuguese [pt] -//! author : Jefferson : https://github.com/jalex79 -a.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:ce,h:"o oră",hh:ce,d:"o zi",dd:ce,M:"o lună",MM:ce,y:"un an",yy:ce},week:{dow:1,doy:7}});var Ih=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];a.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:Ih,longMonthsParse:Ih,shortMonthsParse:Ih,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:ee,mm:ee,h:"час",hh:ee,d:"день",dd:ee,M:"месяц",MM:ee,y:"год",yy:ee},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночи":a<12?"утра":a<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Sindhi [sd] -//! author : Narain Sagar : https://github.com/narainsagar -var Jh=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],Kh=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];a.defineLocale("sd",{months:Jh,monthsShort:Jh,weekdays:Kh,weekdaysShort:Kh,weekdaysMin:Kh,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(a){return"شام"===a},meridiem:function(a,b,c){return a<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(a){return a.replace(/،/g,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Northern Sami [se] -//! authors : Bård Rolstad Henriksen : https://github.com/karamell -a.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Sinhalese [si] -//! author : Sampath Sitinamaluwa : https://github.com/sampathsris -a.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return"ප.ව."===a||"පස් වරු"===a},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}); -//! moment.js locale configuration -//! locale : Slovak [sk] -//! author : Martin Minka : https://github.com/k2s -//! based on work of petrbela : https://github.com/petrbela -var Lh="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),Mh="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");a.defineLocale("sk",{months:Lh,monthsShort:Mh,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:ge,m:ge,mm:ge,h:ge,hh:ge,d:ge,dd:ge,M:ge,MM:ge,y:ge,yy:ge},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:he,m:he,mm:he,h:he,hh:he,d:he,dd:he,M:he,MM:he,y:he,yy:he},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Albanian [sq] -//! author : Flakërim Ismani : https://github.com/flakerimi -//! author : Menelion Elensúle : https://github.com/Oire -//! author : Oerd Cukalla : https://github.com/oerd -a.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return a<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Serbian Cyrillic [sr-cyrl] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j -var Nh={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Nh.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Nh.correctGrammaticalCase(a,d)}};a.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:Nh.translate,mm:Nh.translate,h:Nh.translate,hh:Nh.translate,d:"дан",dd:Nh.translate,M:"месец",MM:Nh.translate,y:"годину",yy:Nh.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Serbian [sr] -//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j -var Oh={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Oh.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Oh.correctGrammaticalCase(a,d)}};a.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:Oh.translate,mm:Oh.translate,h:Oh.translate,hh:Oh.translate,d:"dan",dd:Oh.translate,M:"mesec",MM:Oh.translate,y:"godinu",yy:Oh.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : siSwati [ss] -//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies -a.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return a<11?"ekuseni":a<15?"emini":a<19?"entsambama":"ebusuku"},meridiemHour:function(a,b){return 12===a&&(a=0),"ekuseni"===b?a:"emini"===b?a>=11?a:a+12:"entsambama"===b||"ebusuku"===b?0===a?0:a+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Swedish [sv] -//! author : Jens Alm : https://github.com/ulmus -a.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Swahili [sw] -//! author : Fahad Kassim : https://github.com/fadsel -a.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Tamil [ta] -//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 -var Ph={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},Qh={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};a.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return Qh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ph[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return a<2?" யாமம்":a<6?" வைகறை":a<10?" காலை":a<14?" நண்பகல்":a<18?" எற்பாடு":a<22?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?a<2?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Telugu [te] -//! author : Krishna Chaitanya Thota : https://github.com/kcthota -a.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),"రాత్రి"===b?a<4?a:a+12:"ఉదయం"===b?a:"మధ్యాహ్నం"===b?a>=10?a:a+12:"సాయంత్రం"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?"రాత్రి":a<10?"ఉదయం":a<17?"మధ్యాహ్నం":a<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}), -//! moment.js locale configuration -//! locale : Tetun Dili (East Timor) [tet] -//! author : Joshua Brooks : https://github.com/joshbrooks -//! author : Onorio De J. Afonso : https://github.com/marobo -a.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sext_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Sex_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",m:"minutu ida",mm:"minutus %d",h:"horas ida",hh:"horas %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Thai [th] -//! author : Kridsada Thanabulpong : https://github.com/sirn -a.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return a<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}), -//! moment.js locale configuration -//! locale : Tagalog (Philippines) [tl-ph] -//! author : Dan Hagman : https://github.com/hagmandan -a.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Klingon [tlh] -//! author : Dominika Kruk : https://github.com/amaranthrose -var Rh="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");a.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:ie,past:je,s:"puS lup",m:"wa’ tup",mm:ke,h:"wa’ rep",hh:ke,d:"wa’ jaj",dd:ke,M:"wa’ jar",MM:ke,y:"wa’ DIS",yy:ke},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}); -//! moment.js locale configuration -//! locale : Turkish [tr] -//! authors : Erhan Gundogan : https://github.com/erhangundogan, -//! Burak Yiğit Kaya: https://github.com/BYK -var Sh={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};a.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Sh[b]||Sh[c]||Sh[d])},week:{dow:1,doy:7}}), -//! moment.js locale configuration -//! locale : Talossan [tzl] -//! author : Robin van der Vliet : https://github.com/robin0van0der0v -//! author : Iustì Canun -a.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(a){return"d'o"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:me,m:me,mm:me,h:me,hh:me,d:me,dd:me,M:me,MM:me,y:me,yy:me},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}), -//! moment.js locale configuration -//! locale : Central Atlas Tamazight Latin [tzm-latn] -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}), -//! moment.js locale configuration -//! locale : Central Atlas Tamazight [tzm] -//! author : Abdel Said : https://github.com/abdelsaid -a.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),a.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:pe,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:qe("[Сьогодні "),nextDay:qe("[Завтра "),lastDay:qe("[Вчора "),nextWeek:qe("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return qe("[Минулої] dddd [").call(this);case 1:case 2:case 4:return qe("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:oe,mm:oe,h:"годину",hh:oe,d:"день",dd:oe,M:"місяць",MM:oe,y:"рік",yy:oe},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return a<4?"ночі":a<12?"ранку":a<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}}); -//! moment.js locale configuration -//! locale : Urdu [ur] -//! author : Sawood Alam : https://github.com/ibnesayeed -//! author : Zack : https://github.com/ZackVision -var Th=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],Uh=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"]; -//! moment.js locale configuration -//! locale : Uzbek Latin [uz-latn] -//! author : Rasulbek Mirzayev : github.com/Rasulbeeek -//! moment.js locale configuration -//! locale : Uzbek [uz] -//! author : Sardor Muminov : https://github.com/muminoff -//! moment.js locale configuration -//! locale : Vietnamese [vi] -//! author : Bang Nguyen : https://github.com/bangnk -//! moment.js locale configuration -//! locale : Pseudo [x-pseudo] -//! author : Andrew Hood : https://github.com/andrewhood125 -//! moment.js locale configuration -//! locale : Yoruba Nigeria [yo] -//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe -//! moment.js locale configuration -//! locale : Chinese (China) [zh-cn] -//! author : suupic : https://github.com/suupic -//! author : Zeno Zeng : https://github.com/zenozeng -//! moment.js locale configuration -//! locale : Chinese (Hong Kong) [zh-hk] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -//! author : Konstantin : https://github.com/skfd -//! moment.js locale configuration -//! locale : Chinese (Taiwan) [zh-tw] -//! author : Ben : https://github.com/ben-lin -//! author : Chris Lam : https://github.com/hehachris -return a.defineLocale("ur",{months:Th,monthsShort:Th,weekdays:Uh,weekdaysShort:Uh,weekdaysMin:Uh,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(a){return"شام"===a},meridiem:function(a,b,c){return a<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(a){return a.replace(/،/g,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:1,doy:4}}),a.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),a.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),a.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return a<12?c?"sa":"SA":c?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),a.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}),a.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日 HH:mm",LLLL:"YYYY年MMMD日dddd HH:mm",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),a.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日 HH:mm",LLLL:"YYYY年MMMD日dddd HH:mm",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日 HH:mm",llll:"YYYY年MMMD日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?"凌晨":d<900?"早上":d<1130?"上午":d<1230?"中午":d<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),a.locale("en"),a}); \ No newline at end of file diff --git a/output/categories/aikido.xml b/output/categories/aikido.xml index 84f7a419..d629dff0 100644 --- a/output/categories/aikido.xml +++ b/output/categories/aikido.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> -<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Damian's blog (Posts about Aikido)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssMy Aikido Shodan testhttp://damianavila.github.io/blog/posts/my-aikido-shodan-test.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about Aikido)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssMy Aikido Shodan testhttp://damianavila.github.io/blog/posts/my-aikido-shodan-test/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Do you want to see how an <a href="https://en.wikipedia.org/wiki/Aikido"><strong>Aikido</strong></a> Shodan test looks like? Well, this is your opportunity!! -You just need to keep reading for a little bit ;-) -</p><p><a href="http://damianavila.github.io/blog/posts/my-aikido-shodan-test.html">Read more…</a> (2 min remaining to read)</p></div></div></div>AikidoasaikidocordobaaikikaiShodanhttp://damianavila.github.io/blog/posts/my-aikido-shodan-test.htmlSun, 16 Sep 2018 12:58:09 GMTComing backhttp://damianavila.github.io/blog/posts/coming-back.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +You just need to keep reading for a little bit ;-)</p> +<p><a href="http://damianavila.github.io/blog/posts/my-aikido-shodan-test/">Read more…</a> (2 min remaining to read)</p></div></div></div>AikidoasaikidocordobaaikikaiShodanhttp://damianavila.github.io/blog/posts/my-aikido-shodan-test/Sun, 16 Sep 2018 12:58:09 GMTComing backhttp://damianavila.github.io/blog/posts/coming-back/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.</p> -<p><a href="http://damianavila.github.io/blog/posts/coming-back.html">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back.htmlMon, 30 May 2016 21:33:11 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/coming-back/">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back/Mon, 30 May 2016 21:33:11 GMT \ No newline at end of file diff --git a/output/categories/aikido.html b/output/categories/aikido/index.html similarity index 56% rename from output/categories/aikido.html rename to output/categories/aikido/index.html index bbe9fd7b..edd25e67 100644 --- a/output/categories/aikido.html +++ b/output/categories/aikido/index.html @@ -1,16 +1,13 @@ - + Posts about Aikido | Damian's blog - - - - + + + + - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
- -
-
- - diff --git a/output/categories/binder.xml b/output/categories/binder.xml index 98bf04f8..8a929471 100644 --- a/output/categories/binder.xml +++ b/output/categories/binder.xml @@ -1,11 +1,11 @@ -Damian's blog (Posts about Binder)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about Binder)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -</p><p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlWed, 02 May 2018 22:18:40 GMTBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Wed, 02 May 2018 22:18:40 GMTBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You are in vacation time but you want to blog something nice to share with your friends.</p> @@ -14,5 +14,5 @@ <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -</p><p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.html">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlSun, 17 Dec 2017 21:12:53 GMT \ No newline at end of file +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Sun, 17 Dec 2017 21:12:53 GMT \ No newline at end of file diff --git a/output/categories/binder/index.html b/output/categories/binder/index.html new file mode 100644 index 00000000..ccdc0c20 --- /dev/null +++ b/output/categories/binder/index.html @@ -0,0 +1,71 @@ + + + + + +Posts about Binder | Damian's blog + + + + + + + +
+ +
+
+ + diff --git a/output/categories/blog.html b/output/categories/blog.html deleted file mode 100644 index 79f2881f..00000000 --- a/output/categories/blog.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - -Posts about blog | Damian's blog - - - - - - - - -
-

Posts about blog

- - -
-
-
- - diff --git a/output/categories/blog.xml b/output/categories/blog.xml index e95bddbc..1e55a875 100644 --- a/output/categories/blog.xml +++ b/output/categories/blog.xml @@ -1,5 +1,5 @@ -Damian's blog (Posts about blog)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssAbandoning the oquanta domain namehttp://damianavila.github.io/blog/posts/abandoning-the-oquanta-domain-name.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about blog)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:52 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssAbandoning the oquanta domain namehttp://damianavila.github.io/blog/posts/abandoning-the-oquanta-domain-name/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is a very short but important post!</p> @@ -8,42 +8,43 @@ <p>As you probably know as well, for several years, this blog has been hosted in <code>gh-pages</code>, so I will just use the default and expected URL provided by <em>Github</em>: <a href="https://damianavila.github.io/blog">https://damianavila.github.io/blog</a></p> <p>Please, make sure to <strong>bookmark/save/link</strong> the correct URL if you want to keep reading about some of my stuff ;-)</p> <p>Have a great start of the week!</p> - </div> </div> -</div>bloggh-pageshttp://damianavila.github.io/blog/posts/abandoning-the-oquanta-domain-name.htmlMon, 21 Jan 2019 00:51:03 GMTComing backhttp://damianavila.github.io/blog/posts/coming-back.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</div>bloggh-pageshttp://damianavila.github.io/blog/posts/abandoning-the-oquanta-domain-name/Mon, 21 Jan 2019 00:51:03 GMTComing backhttp://damianavila.github.io/blog/posts/coming-back/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.</p> -<p><a href="http://damianavila.github.io/blog/posts/coming-back.html">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back.htmlMon, 30 May 2016 21:33:11 GMTZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/coming-back/">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back/Mon, 30 May 2016 21:33:11 GMTZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=a37a2d91"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, time to recap some things... As you know, <a href="http://getnikola.com/"><strong>Nikola</strong></a> 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones. -</p><p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlFri, 30 May 2014 18:03:18 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones.</p> +<p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated/Fri, 30 May 2014 18:03:18 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -</p><p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlFri, 27 Dec 2013 23:35:57 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Fri, 27 Dec 2013 23:35:57 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -</p><p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlTue, 15 Oct 2013 21:08:28 GMTNikola's Zen theme finally releasedhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, first of all, let's go to the folder containing my blog:</p> +<p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Tue, 15 Oct 2013 21:08:28 GMTNikola's Zen theme finally releasedhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Just a quick update... Some weeks ago I <a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.html">blogged</a> about my new <strong>Nikola</strong>'s theme family called <strong>Zen</strong>. In fact, you are seeing the <code>zen-ipython</code> theme powering my blog right now.</p> +<p>Just a quick update... Some weeks ago I <a href="http://damianavila.github.io/blog/posts/posts/a-new-nikolas-theme-for-my-site-zen.html">blogged</a> about my new <strong>Nikola</strong>'s theme family called <strong>Zen</strong>. In fact, you are seeing the <code>zen-ipython</code> theme powering my blog right now.</p> <p>I have used them for several days without any remarkable issue, so I decided to release them at the <strong>Nikola</strong>'s <a href="https://github.com/getnikola/nikola-themes">theme repository</a>.</p> <p>There, you will see three <strong>Zen</strong> themes:</p> <ul> <li><code>zen</code>, based in <em>mako</em> templates</li> <li><code>zen-jinja</code>, the same <em>zen</em> theme but based (obviously) in <em>jinja</em> templates</li> -<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.<p><a href="http://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.html">Read more…</a> (1 min remaining to read)</p></li></ul></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.htmlWed, 25 Sep 2013 22:20:45 GMTA new Nikola's theme for my site: Zenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.</li> +</ul> +<p><a href="http://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/Wed, 25 Sep 2013 22:20:45 GMTA new Nikola's theme for my site: Zenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=76507fef"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme. -</p><p><a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.html">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.htmlTue, 10 Sep 2013 00:10:18 GMTOne line deployment of your site to gh-pageshttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen/Tue, 10 Sep 2013 00:10:18 GMTOne line deployment of your site to gh-pageshttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=05961e74"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Do you want to <strong>easily</strong> deploy your site to Github pages?</p> @@ -52,12 +53,14 @@ As part of the release, we paid attention to update all the plugins and themes i <li><p>You have to upload your complete blog/site to a new Github repository (you know how to do it... if not, probably you need to learn some things before try this one, hehe). As a plus, now your blog/site is version-controlled!</p> </li> <li><p>Almost for sure, your site/blog lives in the master branch of the new repository, but you need to generated a <code>gh-pages</code> branch to push your <code>build</code> or <code>output</code> folder, I mean your site/blog content to deploy... not all the machinery of your site/blog platform (<strong>Nikola</strong> in my case):</p> -<p><a href="http://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages.html">Read more…</a> (1 min remaining to read)</p></li></ol></div></div></div>bloggh-pagesgitnikolapythonhttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages.htmlWed, 21 Aug 2013 11:17:00 GMTReveal converter mini-tutorialhttp://damianavila.github.io/blog/posts/reveal-converter-mini-tutorial.htmlDamian Avila<div><div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +</li> +</ol> +<p><a href="http://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages/">Read more…</a> (1 min remaining to read)</p></div></div></div>bloggh-pagesgitnikolapythonhttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages/Wed, 21 Aug 2013 11:17:00 GMTReveal converter mini-tutorialhttp://damianavila.github.io/blog/posts/reveal-converter-mini-tutorial/Damian Avila<div><div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="http://damianavila.github.io/blog/posts/make-your-slides-with-ipython.html">link</a> to get updated information.</p> +<blockquote> +<p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="http://damianavila.github.io/blog/posts/posts/make-your-slides-with-ipython.html">link</a> to get updated information.</p> </blockquote> - </div> </div> </div> @@ -67,19 +70,18 @@ As part of the release, we paid attention to update all the plugins and themes i <p>After some weeks of work and a lot of useful colaboration with the IPython team, we now have the reveal converter merged in nbconvert (a conversion utilities for the IPython notebook format).</p> <p>Currently nbconvert is being rewritten... but we also have a reveal converter in the new codebase, so you do not have problems if you begin to use it now, you will be able to use it tomorrow :-)</p> <p>I wrote a little tutorial (a reveal-based notebook slideshow, of course) about how to use reveal converter option inside nbconvert</p> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><a href="http://damianavila.github.io/blog/posts/reveal-converter-mini-tutorial.html">Read more…</a> (1 min remaining to read)</p></div></div></div></div>blogIPythonnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/reveal-converter-mini-tutorial.htmlFri, 15 Feb 2013 18:05:21 GMTBlogging with Nikola and IPythonhttp://damianavila.github.io/blog/posts/blogging-with-nikola-and-ipython.htmlDamian Avila<div><div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/reveal-converter-mini-tutorial/">Read more…</a> (1 min remaining to read)</p></div></div></div></div>blogIPythonnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/reveal-converter-mini-tutorial/Fri, 15 Feb 2013 18:05:21 GMTBlogging with Nikola and IPythonhttp://damianavila.github.io/blog/posts/blogging-with-nikola-and-ipython/Damian Avila<div><div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="http://damianavila.github.io/blog/posts/ipython-plugin-for-nikola-updated.html">link</a> to get updated information.</p> +<blockquote> +<p><strong>Alert!</strong> This post is outdated, please <code>goto</code> ;-) this <a href="http://damianavila.github.io/blog/posts/posts/ipython-plugin-for-nikola-updated.html">link</a> to get updated information.</p> </blockquote> - </div> </div> </div> @@ -87,7 +89,6 @@ As part of the release, we paid attention to update all the plugins and themes i </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>NOTE</strong>: Obviously, this post was written in the IPython notebook and was rendered by Nikola (helped by nbconvert).</p> - </div> </div> </div> @@ -95,7 +96,6 @@ As part of the release, we paid attention to update all the plugins and themes i </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>INGREDIENTS</strong>:</p> - </div> </div> </div> @@ -108,14 +108,13 @@ As part of the release, we paid attention to update all the plugins and themes i <p><strong>NOTE: The theme was tested with Nikola version <a href="https://github.com/ralsina/nikola/tags">5.1</a></strong></p> <ul> <li><a href="https://github.com/ipython/ipython">IPython</a></li> -<li><a href="https://github.com/damianavila/site-ipython-theme-for-Nikola.git">site-ipython</a> theme for Nikola </li> -<li><a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">compile_ipynb</a> for Nikola </li> +<li><a href="https://github.com/damianavila/site-ipython-theme-for-Nikola.git">site-ipython</a> theme for Nikola</li> +<li><a href="https://github.com/damianavila/compile_ipynb-for-Nikola.git">compile_ipynb</a> for Nikola</li> </ul> - </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><a href="http://damianavila.github.io/blog/posts/blogging-with-nikola-and-ipython.html">Read more…</a> (3 min remaining to read)</p></div></div></div></div>blogIPythonnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/blogging-with-nikola-and-ipython.htmlFri, 25 Jan 2013 19:46:46 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/blogging-with-nikola-and-ipython/">Read more…</a> (3 min remaining to read)</p></div></div></div></div>blogIPythonnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/blogging-with-nikola-and-ipython/Fri, 25 Jan 2013 19:46:46 GMT \ No newline at end of file diff --git a/output/categories/blog/index.html b/output/categories/blog/index.html new file mode 100644 index 00000000..31be11c1 --- /dev/null +++ b/output/categories/blog/index.html @@ -0,0 +1,101 @@ + + + + + +Posts about blog | Damian's blog + + + + + + + +
+

Posts about blog

+ + +
+
+
+ + diff --git a/output/categories/conda.xml b/output/categories/conda.xml index b1c8d7a4..d628814b 100644 --- a/output/categories/conda.xml +++ b/output/categories/conda.xml @@ -1,59 +1,59 @@ -Damian's blog (Posts about conda)http://damianavila.github.io/blog/enFri, 30 Oct 2020 15:52:24 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about conda)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out.htmlFri, 30 Oct 2020 14:52:24 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out/Fri, 30 Oct 2020 14:52:24 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out.htmlFri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out/Fri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out.htmlThu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out/Thu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out.htmlSat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out/Sat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out.htmlSat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out/Sat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out.htmlMon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out/Mon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out.htmlMon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out/Mon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.1.0!</p> <p><strong>RISE</strong> allows you show your <strong>Jupyter</strong> notebooks rendered as an <em>executable</em> <code>Reveal.js</code>-based slideshow. It is your very same notebook but <em>presented</em> in a <em>slidy</em> way!</p> -<p><em>What are the new goodies for this release?</em> -</p><p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out.htmlMon, 06 Nov 2017 10:45:52 GMTRISE 5.0.0 is out!http://damianavila.github.io/blog/posts/rise-500-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><em>What are the new goodies for this release?</em></p> +<p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out/Mon, 06 Nov 2017 10:45:52 GMTRISE 5.0.0 is out!http://damianavila.github.io/blog/posts/rise-500-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.0.0!</p> <p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> -<p><em>How you can get it?</em> -</p><p><a href="http://damianavila.github.io/blog/posts/rise-500-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-500-is-out.htmlTue, 13 Jun 2017 11:18:35 GMTRISE 4.0.0b1 is available, please test it!http://damianavila.github.io/blog/posts/rise-400b1-is-available-please-test-it.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><em>How you can get it?</em></p> +<p><a href="http://damianavila.github.io/blog/posts/rise-500-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-500-is-out/Tue, 13 Jun 2017 11:18:35 GMTRISE 4.0.0b1 is available, please test it!http://damianavila.github.io/blog/posts/rise-400b1-is-available-please-test-it/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Quick post! I have beta packages available for you to test <strong>RISE</strong>, if you can test it that would be awesome!!</p> <p>In case you don't know about it, with <strong>RISE</strong> you get your <strong>Jupyter</strong> notebook rendered as a Reveal.js-based slideshow, where you can <strong>execute</strong> code on the fly or show to the audience whatever you can show/do inside the notebook itself (but in a "slidy" way).</p> -<p>How you can get it? -</p><p><a href="http://damianavila.github.io/blog/posts/rise-400b1-is-available-please-test-it.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-400b1-is-available-please-test-it.htmlTue, 09 Aug 2016 19:52:46 GMT \ No newline at end of file +<p>How you can get it?</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-400b1-is-available-please-test-it/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-400b1-is-available-please-test-it/Tue, 09 Aug 2016 19:52:46 GMT \ No newline at end of file diff --git a/output/categories/conda.html b/output/categories/conda/index.html similarity index 51% rename from output/categories/conda.html rename to output/categories/conda/index.html index 7abae6c6..278574ea 100644 --- a/output/categories/conda.html +++ b/output/categories/conda/index.html @@ -1,16 +1,13 @@ - + Posts about conda | Damian's blog - - - - + + + + - +

Posts about conda

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -95,7 +89,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Posts about config

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -74,7 +68,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
-

Posts about extension

- - -
-
-
- - diff --git a/output/categories/extension.xml b/output/categories/extension.xml index 8f751162..ceeb6359 100644 --- a/output/categories/extension.xml +++ b/output/categories/extension.xml @@ -1,34 +1,34 @@ -Damian's blog (Posts about extension)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:46 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about extension)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file. -</p><p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlMon, 07 Apr 2014 13:23:21 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file.</p> +<p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Mon, 07 Apr 2014 13:23:21 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -</p><p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlFri, 27 Dec 2013 23:35:57 GMTA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Fri, 27 Dec 2013 23:35:57 GMTA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, today I will release another <strong>IPython</strong> <em>js</em> extension: <strong>Spellchecker</strong>, which obviously do what you are thinking... spell check the content of your <strong>IPython</strong> notebook cells.</p> -<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems! -</p><p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlWed, 18 Dec 2013 22:21:28 GMTTweet me... said an IPython notebook cell and I did ithttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems!</p> +<p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Wed, 18 Dec 2013 22:21:28 GMTTweet me... said an IPython notebook cell and I did ithttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>It is time to release some extensions I wrote the last weeks. -And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension... -</p><p><a href="http://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html">Read more…</a> (2 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythontwitterhttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.htmlFri, 13 Dec 2013 16:21:09 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension...</p> +<p><a href="http://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/">Read more…</a> (2 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythontwitterhttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/Fri, 13 Dec 2013 16:21:09 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -</p><p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlTue, 15 Oct 2013 21:08:28 GMTZen mode extension for the IPython notebookhttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, first of all, let's go to the folder containing my blog:</p> +<p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Tue, 15 Oct 2013 21:08:28 GMTZen mode extension for the IPython notebookhttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I write a lot stuff inside the IPython notebook.</p> <p>And I thought it would be great to have a <em>sort</em> of <strong>Zen mode</strong> for the notebook...</p> <p>I mean, a <em>peaceful</em> user interface to write my blog posts (and other stuff, of course).</p> <p>So I wrote a little js extension which give me this <strong>Zen mode</strong>.</p> -<p>You can see some screen shots below: -</p><p><a href="http://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook.html">Read more…</a> (1 min remaining to read)</p></div></div></div>extensionIPythonjavascriptpythonzenmodehttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook.htmlTue, 27 Aug 2013 03:21:30 GMT \ No newline at end of file +<p>You can see some screen shots below:</p> +<p><a href="http://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook/">Read more…</a> (1 min remaining to read)</p></div></div></div>extensionIPythonjavascriptpythonzenmodehttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook/Tue, 27 Aug 2013 03:21:30 GMT \ No newline at end of file diff --git a/output/categories/extension/index.html b/output/categories/extension/index.html new file mode 100644 index 00000000..aaa7ba0b --- /dev/null +++ b/output/categories/extension/index.html @@ -0,0 +1,83 @@ + + + + + +Posts about extension | Damian's blog + + + + + + + +
+

Posts about extension

+ + +
+
+
+ + diff --git a/output/categories/facu.xml b/output/categories/facu.xml index a504717d..4f17b2e7 100644 --- a/output/categories/facu.xml +++ b/output/categories/facu.xml @@ -1,6 +1,6 @@ -Damian's blog (Posts about Facu)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:45 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssComing backhttp://damianavila.github.io/blog/posts/coming-back.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about Facu)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssComing backhttp://damianavila.github.io/blog/posts/coming-back/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.</p> -<p><a href="http://damianavila.github.io/blog/posts/coming-back.html">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back.htmlMon, 30 May 2016 21:33:11 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/coming-back/">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back/Mon, 30 May 2016 21:33:11 GMT \ No newline at end of file diff --git a/output/categories/facu.html b/output/categories/facu/index.html similarity index 58% rename from output/categories/facu.html rename to output/categories/facu/index.html index 0d715cb6..cbc30138 100644 --- a/output/categories/facu.html +++ b/output/categories/facu/index.html @@ -1,16 +1,13 @@ - + Posts about Facu | Damian's blog - - - - + + + + - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

Posts about gh-pages

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -77,7 +71,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
-

Posts about git

- - -
-
-
- - diff --git a/output/categories/git.xml b/output/categories/git.xml index 2ef0d586..cedb2bdf 100644 --- a/output/categories/git.xml +++ b/output/categories/git.xml @@ -1,5 +1,5 @@ -Damian's blog (Posts about git)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:48 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about git)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You are in vacation time but you want to blog something nice to share with your friends.</p> @@ -8,31 +8,31 @@ <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -</p><p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.html">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlSun, 17 Dec 2017 21:12:53 GMTMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Sun, 17 Dec 2017 21:12:53 GMTMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=93e7b089"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the last post of this year, so I try to do my best to give you something interesting to think about...</p> <p>In this case, I will show you <em>my git workflow</em>... and you know there are a lot of workflows out there... and probably better than mine, but I just want to share with you the place where I find myself comfortable.</p> <p>And yes... <em>my git workflow</em> is also powered by <strong>IPython</strong> (I am very repetitive when I love a project!). -And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!). -</p><p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.html">Read more…</a> (10 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlMon, 30 Dec 2013 19:41:08 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!).</p> +<p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/">Read more…</a> (23 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Mon, 30 Dec 2013 19:41:08 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -</p><p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlFri, 27 Dec 2013 23:35:57 GMTDon't write scripts, just write ipyscripts!http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Fri, 27 Dec 2013 23:35:57 GMTDon't write scripts, just write ipyscripts!http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=db17c248"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I usually have some repetitive tasks in my daily work-flow. You probably have some of those too. To save some minutes from your day, you probably write little scripts to do these jobs.</p> <p>I used to do that... but now I am only writing little IPython notebooks to do these simple jobs, I call them <em>ipyscripts</em> (yes, I won a prize for originality, he he!).</p> -<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way... -</p><p><a href="http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.html">Read more…</a> (3 min remaining to read)</p></div></div></div>gitipyscriptIPythonmagicpythonworkflowhttp://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.htmlWed, 04 Dec 2013 00:50:05 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way...</p> +<p><a href="http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/">Read more…</a> (3 min remaining to read)</p></div></div></div>gitipyscriptIPythonmagicpythonworkflowhttp://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/Wed, 04 Dec 2013 00:50:05 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -</p><p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlTue, 15 Oct 2013 21:08:28 GMTOne line deployment of your site to gh-pageshttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, first of all, let's go to the folder containing my blog:</p> +<p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Tue, 15 Oct 2013 21:08:28 GMTOne line deployment of your site to gh-pageshttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=05961e74"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Do you want to <strong>easily</strong> deploy your site to Github pages?</p> @@ -41,4 +41,6 @@ And it is a <em>semi-automatic</em> one, using the <strong>IPy <li><p>You have to upload your complete blog/site to a new Github repository (you know how to do it... if not, probably you need to learn some things before try this one, hehe). As a plus, now your blog/site is version-controlled!</p> </li> <li><p>Almost for sure, your site/blog lives in the master branch of the new repository, but you need to generated a <code>gh-pages</code> branch to push your <code>build</code> or <code>output</code> folder, I mean your site/blog content to deploy... not all the machinery of your site/blog platform (<strong>Nikola</strong> in my case):</p> -<p><a href="http://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages.html">Read more…</a> (1 min remaining to read)</p></li></ol></div></div></div>bloggh-pagesgitnikolapythonhttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages.htmlWed, 21 Aug 2013 11:17:00 GMT \ No newline at end of file +</li> +</ol> +<p><a href="http://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages/">Read more…</a> (1 min remaining to read)</p></div></div></div>bloggh-pagesgitnikolapythonhttp://damianavila.github.io/blog/posts/one-line-deployment-of-your-site-to-gh-pages/Wed, 21 Aug 2013 11:17:00 GMT \ No newline at end of file diff --git a/output/categories/git/index.html b/output/categories/git/index.html new file mode 100644 index 00000000..fd78e3dd --- /dev/null +++ b/output/categories/git/index.html @@ -0,0 +1,83 @@ + + + + + +Posts about git | Damian's blog + + + + + + + +
+

Posts about git

+ + +
+
+
+ + diff --git a/output/categories/github.xml b/output/categories/github.xml index a529a149..871eb8c5 100644 --- a/output/categories/github.xml +++ b/output/categories/github.xml @@ -1,5 +1,5 @@ -Damian's blog (Posts about Github)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:48 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about Github)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You are in vacation time but you want to blog something nice to share with your friends.</p> @@ -8,5 +8,5 @@ <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -</p><p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.html">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlSun, 17 Dec 2017 21:12:53 GMT \ No newline at end of file +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Sun, 17 Dec 2017 21:12:53 GMT \ No newline at end of file diff --git a/output/categories/github.html b/output/categories/github/index.html similarity index 56% rename from output/categories/github.html rename to output/categories/github/index.html index 121b222e..99b4a76b 100644 --- a/output/categories/github.html +++ b/output/categories/github/index.html @@ -1,16 +1,13 @@ - + Posts about Github | Damian's blog - - - - + + + + - +

Contents © 2021 Damian Avila - +

Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
Creative Commons License BY-NC-SA

@@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - +

Tags

+

Contents © 2021 Damian Avila - +

  • Aikido
  • +
  • asaikido
  • +
  • base16
  • +
  • Binder
  • +
  • blog
  • +
  • conda
  • +
  • config
  • +
  • connectivity
  • +
  • cordobaaikikai
  • +
  • css
  • +
  • Daniela
  • +
  • docutils
  • +
  • extension
  • +
  • Facu
  • +
  • Facundo
  • +
  • family
  • +
  • first_post
  • +
  • flood
  • +
  • format
  • +
  • gh-pages
  • +
  • git
  • +
  • Github
  • +
  • ipyscript
  • +
  • IPython
  • +
  • ipytmpl
  • +
  • javascript
  • +
  • jinja
  • +
  • Jupyter
  • +
  • jupyterlab
  • +
  • kofi
  • +
  • less
  • +
  • life
  • +
  • linux
  • +
  • local
  • +
  • magic
  • +
  • minimap
  • +
  • mIPyex
  • +
  • MyST
  • +
  • nbconvert
  • +
  • nbviewer
  • +
  • nikola
  • +
  • opensource
  • +
  • osx
  • +
  • pdf
  • +
  • performance
  • +
  • pinned
  • +
  • pip
  • +
  • politics
  • +
  • pyconar
  • +
  • python
  • +
  • reveal
  • +
  • RISE
  • +
  • SciPyCon
  • +
  • Shodan
  • +
  • slideshow
  • +
  • spellcheck
  • +
  • sphinx
  • +
  • support
  • +
  • talks
  • +
  • theme
  • +
  • themes
  • +
  • threads
  • +
  • toggle
  • +
  • trading
  • +
  • tutorials
  • +
  • twitter
  • +
  • typescript
  • +
  • videos
  • +
  • vIPer
  • +
  • win
  • +
  • workflow
  • +
  • zen
  • +
  • zenmode
  • +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/categories/ipyscript.xml b/output/categories/ipyscript.xml index cd1034de..91c3f86b 100644 --- a/output/categories/ipyscript.xml +++ b/output/categories/ipyscript.xml @@ -1,8 +1,8 @@ -Damian's blog (Posts about ipyscript)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssDon't write scripts, just write ipyscripts!http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about ipyscript)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssDon't write scripts, just write ipyscripts!http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=db17c248"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I usually have some repetitive tasks in my daily work-flow. You probably have some of those too. To save some minutes from your day, you probably write little scripts to do these jobs.</p> <p>I used to do that... but now I am only writing little IPython notebooks to do these simple jobs, I call them <em>ipyscripts</em> (yes, I won a prize for originality, he he!).</p> -<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way... -</p><p><a href="http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.html">Read more…</a> (3 min remaining to read)</p></div></div></div>gitipyscriptIPythonmagicpythonworkflowhttp://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.htmlWed, 04 Dec 2013 00:50:05 GMT \ No newline at end of file +<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way...</p> +<p><a href="http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/">Read more…</a> (3 min remaining to read)</p></div></div></div>gitipyscriptIPythonmagicpythonworkflowhttp://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/Wed, 04 Dec 2013 00:50:05 GMT \ No newline at end of file diff --git a/output/categories/ipyscript.html b/output/categories/ipyscript/index.html similarity index 56% rename from output/categories/ipyscript.html rename to output/categories/ipyscript/index.html index 407f8311..1c6447ea 100644 --- a/output/categories/ipyscript.html +++ b/output/categories/ipyscript/index.html @@ -1,16 +1,13 @@ - + Posts about ipyscript | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about IPython

    - - -
    -
    -
    - - diff --git a/output/categories/ipython.xml b/output/categories/ipython.xml index f915a2b9..41c8e40b 100644 --- a/output/categories/ipython.xml +++ b/output/categories/ipython.xml @@ -1,53 +1,53 @@ -Damian's blog (Posts about IPython)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about IPython)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -</p><p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlWed, 02 May 2018 22:18:40 GMTComing backhttp://damianavila.github.io/blog/posts/coming-back.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Wed, 02 May 2018 22:18:40 GMTComing backhttp://damianavila.github.io/blog/posts/coming-back/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.</p> -<p><a href="http://damianavila.github.io/blog/posts/coming-back.html">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back.htmlMon, 30 May 2016 21:33:11 GMTZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/coming-back/">Read more…</a> (1 min remaining to read)</p></div></div></div>AikidoblogDanielaFacuIPythonJupyterRISEhttp://damianavila.github.io/blog/posts/coming-back/Mon, 30 May 2016 21:33:11 GMTZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=a37a2d91"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, time to recap some things... As you know, <a href="http://getnikola.com/"><strong>Nikola</strong></a> 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones. -</p><p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlFri, 30 May 2014 18:03:18 GMT48 themes for your IPython notebookhttp://damianavila.github.io/blog/posts/48-themes-for-your-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones.</p> +<p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated/Fri, 30 May 2014 18:03:18 GMT48 themes for your IPython notebookhttp://damianavila.github.io/blog/posts/48-themes-for-your-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=37312cd9"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, a short post to give you some material to play with over the weekend ;-).</p> <p>Today, I woke up early and whereas I was drinking a <em>mate</em> (a native drink here in Argentina) for breakfast, I remember a tweet from <a href="https://twitter.com/nsonnad">Nikhil Sonnad</a> where I was mentioned:</p> -<p><a href="http://damianavila.github.io/blog/posts/48-themes-for-your-ipython-notebook.html">Read more…</a> (6 min remaining to read)</p></div></div></div>base16cssIPythonpythonthemeshttp://damianavila.github.io/blog/posts/48-themes-for-your-ipython-notebook.htmlFri, 18 Apr 2014 15:10:15 GMTLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/48-themes-for-your-ipython-notebook/">Read more…</a> (6 min remaining to read)</p></div></div></div>base16cssIPythonpythonthemeshttp://damianavila.github.io/blog/posts/48-themes-for-your-ipython-notebook/Fri, 18 Apr 2014 15:10:15 GMTLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file. -</p><p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlMon, 07 Apr 2014 13:23:21 GMTSlideviewer: a simple way to share your IPython slideshttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file.</p> +<p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Mon, 07 Apr 2014 13:23:21 GMTSlideviewer: a simple way to share your IPython slideshttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Short Notice</strong>:</p> <p><strong>After some months of silence, I am back... A lot of things have happened in my life lately, some of them are really good things... some others don't. And all those things kept me very busy, but finally I have made me some time to write again! ;-)</strong></p> -<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>. -</p><p><a href="http://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html">Read more…</a> (2 min remaining to read)</p></div></div></div>IPythonnbconvertnbviewerpythonrevealslideshowhttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.htmlMon, 31 Mar 2014 00:51:13 GMTMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>.</p> +<p><a href="http://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/">Read more…</a> (2 min remaining to read)</p></div></div></div>IPythonnbconvertnbviewerpythonrevealslideshowhttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/Mon, 31 Mar 2014 00:51:13 GMTMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=93e7b089"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the last post of this year, so I try to do my best to give you something interesting to think about...</p> <p>In this case, I will show you <em>my git workflow</em>... and you know there are a lot of workflows out there... and probably better than mine, but I just want to share with you the place where I find myself comfortable.</p> <p>And yes... <em>my git workflow</em> is also powered by <strong>IPython</strong> (I am very repetitive when I love a project!). -And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!). -</p><p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.html">Read more…</a> (10 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlMon, 30 Dec 2013 19:41:08 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!).</p> +<p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/">Read more…</a> (23 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Mon, 30 Dec 2013 19:41:08 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -</p><p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlFri, 27 Dec 2013 23:35:57 GMTA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Fri, 27 Dec 2013 23:35:57 GMTA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, today I will release another <strong>IPython</strong> <em>js</em> extension: <strong>Spellchecker</strong>, which obviously do what you are thinking... spell check the content of your <strong>IPython</strong> notebook cells.</p> -<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems! -</p><p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlWed, 18 Dec 2013 22:21:28 GMTTweet me... said an IPython notebook cell and I did ithttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems!</p> +<p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Wed, 18 Dec 2013 22:21:28 GMTTweet me... said an IPython notebook cell and I did ithttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>It is time to release some extensions I wrote the last weeks. -And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension... -</p><p><a href="http://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html">Read more…</a> (2 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythontwitterhttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.htmlFri, 13 Dec 2013 16:21:09 GMT \ No newline at end of file +And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension...</p> +<p><a href="http://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/">Read more…</a> (2 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythontwitterhttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/Fri, 13 Dec 2013 16:21:09 GMT \ No newline at end of file diff --git a/output/categories/ipython/index.html b/output/categories/ipython/index.html new file mode 100644 index 00000000..60eb8fb4 --- /dev/null +++ b/output/categories/ipython/index.html @@ -0,0 +1,176 @@ + + + + + +Posts about IPython | Damian's blog + + + + + + + +
    +

    Posts about IPython

    + + +
    +
    +
    + + diff --git a/output/categories/ipytmpl.xml b/output/categories/ipytmpl.xml index 4e8d3f61..cc2f3c6d 100644 --- a/output/categories/ipytmpl.xml +++ b/output/categories/ipytmpl.xml @@ -1,9 +1,9 @@ -Damian's blog (Posts about ipytmpl)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:46 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about ipytmpl)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=93e7b089"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the last post of this year, so I try to do my best to give you something interesting to think about...</p> <p>In this case, I will show you <em>my git workflow</em>... and you know there are a lot of workflows out there... and probably better than mine, but I just want to share with you the place where I find myself comfortable.</p> <p>And yes... <em>my git workflow</em> is also powered by <strong>IPython</strong> (I am very repetitive when I love a project!). -And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!). -</p><p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.html">Read more…</a> (10 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlMon, 30 Dec 2013 19:41:08 GMT \ No newline at end of file +And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!).</p> +<p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/">Read more…</a> (23 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Mon, 30 Dec 2013 19:41:08 GMT \ No newline at end of file diff --git a/output/categories/ipytmpl.html b/output/categories/ipytmpl/index.html similarity index 56% rename from output/categories/ipytmpl.html rename to output/categories/ipytmpl/index.html index b81e4836..8a3bf02a 100644 --- a/output/categories/ipytmpl.html +++ b/output/categories/ipytmpl/index.html @@ -1,16 +1,13 @@ - + Posts about ipytmpl | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about javascript

    - - -
    -
    -
    - - diff --git a/output/categories/javascript.xml b/output/categories/javascript.xml index a5e3e309..3907530f 100644 --- a/output/categories/javascript.xml +++ b/output/categories/javascript.xml @@ -1,52 +1,53 @@ -Damian's blog (Posts about javascript)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:48 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE meets JupyterLabhttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about javascript)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE meets JupyterLabhttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><a href="https://github.com/jupyterlab/jupyterlab"><strong>JupyterLab</strong></a> is the future for the notebook/authoring experience.</p> <p>And people started to ask me if we will have <a href="https://github.com/damianavila/RISE"><strong>RISE</strong></a> on <strong>JupyterLab</strong></p> -<p>Do you want to know the answer? -</p><p><a href="http://damianavila.github.io/blog/posts/rise-meets-jupyterlab.html">Read more…</a> (1 min remaining to read)</p></div></div></div>javascriptJupyterjupyterlabpythonrevealRISEslideshowtypescripthttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab.htmlMon, 19 Jun 2017 14:13:43 GMTLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Do you want to know the answer?</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-meets-jupyterlab/">Read more…</a> (1 min remaining to read)</p></div></div></div>javascriptJupyterjupyterlabpythonrevealRISEslideshowtypescripthttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab/Mon, 19 Jun 2017 14:13:43 GMTLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file. -</p><p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlMon, 07 Apr 2014 13:23:21 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file.</p> +<p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Mon, 07 Apr 2014 13:23:21 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -</p><p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlFri, 27 Dec 2013 23:35:57 GMTA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Fri, 27 Dec 2013 23:35:57 GMTA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, today I will release another <strong>IPython</strong> <em>js</em> extension: <strong>Spellchecker</strong>, which obviously do what you are thinking... spell check the content of your <strong>IPython</strong> notebook cells.</p> -<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems! -</p><p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlWed, 18 Dec 2013 22:21:28 GMTTweet me... said an IPython notebook cell and I did ithttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems!</p> +<p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Wed, 18 Dec 2013 22:21:28 GMTTweet me... said an IPython notebook cell and I did ithttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>It is time to release some extensions I wrote the last weeks. -And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension... -</p><p><a href="http://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.html">Read more…</a> (2 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythontwitterhttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it.htmlFri, 13 Dec 2013 16:21:09 GMTHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +And because it is <strong>Friday</strong>, and it is a great moment to begin with the "relax" and procrastination, I will release the tweet me extension...</p> +<p><a href="http://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/">Read more…</a> (2 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythontwitterhttp://damianavila.github.io/blog/posts/tweet-me-said-an-ipython-notebook-cell-and-i-did-it/Fri, 13 Dec 2013 16:21:09 GMTHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A tweet arrived...</p> -<p></p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>And my answer was <strong>YES</strong>...</p> -<p>How we can easily do it? Just follow these few steps: -</p><p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.html">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlThu, 10 Oct 2013 22:54:27 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>And my answer was <strong>YES</strong>...</p> +<p>How we can easily do it? Just follow these few steps:</p> +<p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Thu, 10 Oct 2013 22:54:27 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=13764374"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I presented a way to mimic the execution of <em>nbconverted</em> <strong>IPython</strong> notebooks (<em>ipynb</em>). Today, I will show you how to add a simple <em>minimap</em> to these static html documents.</p> -<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -</p><p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlFri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...</p> +<p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Fri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=86fef7a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -</p><p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlMon, 30 Sep 2013 02:53:58 GMTZen mode extension for the IPython notebookhttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Mon, 30 Sep 2013 02:53:58 GMTZen mode extension for the IPython notebookhttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I write a lot stuff inside the IPython notebook.</p> <p>And I thought it would be great to have a <em>sort</em> of <strong>Zen mode</strong> for the notebook...</p> <p>I mean, a <em>peaceful</em> user interface to write my blog posts (and other stuff, of course).</p> <p>So I wrote a little js extension which give me this <strong>Zen mode</strong>.</p> -<p>You can see some screen shots below: -</p><p><a href="http://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook.html">Read more…</a> (1 min remaining to read)</p></div></div></div>extensionIPythonjavascriptpythonzenmodehttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook.htmlTue, 27 Aug 2013 03:21:30 GMT \ No newline at end of file +<p>You can see some screen shots below:</p> +<p><a href="http://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook/">Read more…</a> (1 min remaining to read)</p></div></div></div>extensionIPythonjavascriptpythonzenmodehttp://damianavila.github.io/blog/posts/zen-mode-extension-for-the-ipython-notebook/Tue, 27 Aug 2013 03:21:30 GMT \ No newline at end of file diff --git a/output/categories/javascript/index.html b/output/categories/javascript/index.html new file mode 100644 index 00000000..0d5a0fe1 --- /dev/null +++ b/output/categories/javascript/index.html @@ -0,0 +1,92 @@ + + + + + +Posts about javascript | Damian's blog + + + + + + + +
    +

    Posts about javascript

    + + +
    +
    +
    + + diff --git a/output/categories/jinja.xml b/output/categories/jinja.xml index 8d320841..ee43ddc3 100644 --- a/output/categories/jinja.xml +++ b/output/categories/jinja.xml @@ -1,26 +1,27 @@ -Damian's blog (Posts about jinja)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about jinja)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A tweet arrived...</p> -<p></p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>And my answer was <strong>YES</strong>...</p> -<p>How we can easily do it? Just follow these few steps: -</p><p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.html">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlThu, 10 Oct 2013 22:54:27 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>And my answer was <strong>YES</strong>...</p> +<p>How we can easily do it? Just follow these few steps:</p> +<p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Thu, 10 Oct 2013 22:54:27 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=13764374"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I presented a way to mimic the execution of <em>nbconverted</em> <strong>IPython</strong> notebooks (<em>ipynb</em>). Today, I will show you how to add a simple <em>minimap</em> to these static html documents.</p> -<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -</p><p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlFri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...</p> +<p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Fri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=86fef7a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -</p><p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlMon, 30 Sep 2013 02:53:58 GMTChange the IPython slides defaults with an IPython config filehttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Mon, 30 Sep 2013 02:53:58 GMTChange the IPython slides defaults with an IPython config filehttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=cb3e1a6c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some people are asking me how to change the IPython slides's defaults. You can see the description of the request <a href="http://stackoverflow.com/questions/18820253/modifying-reveal-js-defaults-in-ipython-notebook-slide-generation">here</a>. Essentially, he wants to change the default transition between the slides.</p> <p>To solve this question, we introduce the notion of IPython config files, which let us easily change <em>things</em> inside <code>IPython.nbconvert</code> (the library where the IPython slides lives) to achieve our desires, at least in the slideshow generation issue ;-)</p> -<p>First of all, you need to know some details: -</p><p><a href="http://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html">Read more…</a> (3 min remaining to read)</p></div></div></div>configIPythonjinjanbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.htmlMon, 16 Sep 2013 22:47:33 GMT \ No newline at end of file +<p>First of all, you need to know some details:</p> +<p><a href="http://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/">Read more…</a> (3 min remaining to read)</p></div></div></div>configIPythonjinjanbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/Mon, 16 Sep 2013 22:47:33 GMT \ No newline at end of file diff --git a/output/categories/jinja.html b/output/categories/jinja/index.html similarity index 52% rename from output/categories/jinja.html rename to output/categories/jinja/index.html index 76c759c6..de9f1a88 100644 --- a/output/categories/jinja.html +++ b/output/categories/jinja/index.html @@ -1,16 +1,13 @@ - + Posts about jinja | Damian's blog - - - - + + + + - +

    Posts about jinja

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -74,7 +68,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about Jupyter

    - - -
    -
    -
    - - diff --git a/output/categories/jupyter.xml b/output/categories/jupyter.xml index a495bbad..f12ea998 100644 --- a/output/categories/jupyter.xml +++ b/output/categories/jupyter.xml @@ -1,8 +1,9 @@ -Damian's blog (Posts about Jupyter)http://damianavila.github.io/blog/enTue, 31 Aug 2021 19:40:02 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about Jupyter)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -11,64 +12,65 @@ we have identified some limitations in the MyST-Parser Python API and we started understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -</p><p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlTue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +expected support.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Tue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> -<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlMon, 23 Aug 2021 19:00:19 GMTRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Mon, 23 Aug 2021 19:00:19 GMTRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out.htmlFri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out/Fri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -</p><p><a href="http://damianavila.github.io/blog/posts/supporting-rise.html">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise.htmlFri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<p><a href="http://damianavila.github.io/blog/posts/supporting-rise/">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise/Fri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out.htmlFri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out/Fri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out.htmlThu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out/Thu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out.htmlSat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out/Sat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out.htmlSat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out/Sat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out.htmlMon, 28 May 2018 17:43:15 GMTSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out/Mon, 28 May 2018 17:43:15 GMTSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -</p><p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlWed, 02 May 2018 22:18:40 GMT \ No newline at end of file +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Wed, 02 May 2018 22:18:40 GMT \ No newline at end of file diff --git a/output/categories/jupyter/index.html b/output/categories/jupyter/index.html new file mode 100644 index 00000000..ae55ede5 --- /dev/null +++ b/output/categories/jupyter/index.html @@ -0,0 +1,119 @@ + + + + + +Posts about Jupyter | Damian's blog + + + + + + + +
    +

    Posts about Jupyter

    + + +
    +
    +
    + + diff --git a/output/categories/jupyterlab.html b/output/categories/jupyterlab.html deleted file mode 100644 index 4c40f279..00000000 --- a/output/categories/jupyterlab.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - -Posts about jupyterlab | Damian's blog - - - - - - - - -
    - -
    -
    - - diff --git a/output/categories/jupyterlab.xml b/output/categories/jupyterlab.xml index 0bfb32ec..8306204f 100644 --- a/output/categories/jupyterlab.xml +++ b/output/categories/jupyterlab.xml @@ -1,14 +1,14 @@ -Damian's blog (Posts about jupyterlab)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about jupyterlab)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -</p><p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlWed, 02 May 2018 22:18:40 GMTRISE meets JupyterLabhttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Wed, 02 May 2018 22:18:40 GMTRISE meets JupyterLabhttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><a href="https://github.com/jupyterlab/jupyterlab"><strong>JupyterLab</strong></a> is the future for the notebook/authoring experience.</p> <p>And people started to ask me if we will have <a href="https://github.com/damianavila/RISE"><strong>RISE</strong></a> on <strong>JupyterLab</strong></p> -<p>Do you want to know the answer? -</p><p><a href="http://damianavila.github.io/blog/posts/rise-meets-jupyterlab.html">Read more…</a> (1 min remaining to read)</p></div></div></div>javascriptJupyterjupyterlabpythonrevealRISEslideshowtypescripthttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab.htmlMon, 19 Jun 2017 14:13:43 GMT \ No newline at end of file +<p>Do you want to know the answer?</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-meets-jupyterlab/">Read more…</a> (1 min remaining to read)</p></div></div></div>javascriptJupyterjupyterlabpythonrevealRISEslideshowtypescripthttp://damianavila.github.io/blog/posts/rise-meets-jupyterlab/Mon, 19 Jun 2017 14:13:43 GMT \ No newline at end of file diff --git a/output/categories/jupyterlab/index.html b/output/categories/jupyterlab/index.html new file mode 100644 index 00000000..fb6ac99b --- /dev/null +++ b/output/categories/jupyterlab/index.html @@ -0,0 +1,71 @@ + + + + + +Posts about jupyterlab | Damian's blog + + + + + + + +
    + +
    +
    + + diff --git a/output/categories/kofi.xml b/output/categories/kofi.xml index 76c87c25..2a4c27ba 100644 --- a/output/categories/kofi.xml +++ b/output/categories/kofi.xml @@ -1,12 +1,12 @@ -Damian's blog (Posts about kofi)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:58:00 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about kofi)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:54 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -</p><p><a href="http://damianavila.github.io/blog/posts/supporting-rise.html">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise.htmlFri, 03 Apr 2020 17:08:22 GMT \ No newline at end of file +<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<p><a href="http://damianavila.github.io/blog/posts/supporting-rise/">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise/Fri, 03 Apr 2020 17:08:22 GMT \ No newline at end of file diff --git a/output/categories/kofi.html b/output/categories/kofi/index.html similarity index 58% rename from output/categories/kofi.html rename to output/categories/kofi/index.html index f357bfce..5369f42a 100644 --- a/output/categories/kofi.html +++ b/output/categories/kofi/index.html @@ -1,16 +1,13 @@ - + Posts about kofi | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Posts about linux

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -92,7 +86,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Posts about mIPyex

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -74,7 +68,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    - -
    -
    - - diff --git a/output/categories/myst.xml b/output/categories/myst.xml index 17b1a4e4..379232b1 100644 --- a/output/categories/myst.xml +++ b/output/categories/myst.xml @@ -1,8 +1,9 @@ -Damian's blog (Posts about MyST)http://damianavila.github.io/blog/enTue, 31 Aug 2021 19:40:02 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about MyST)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -11,14 +12,15 @@ we have identified some limitations in the MyST-Parser Python API and we started understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -</p><p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlTue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +expected support.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Tue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> -<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlMon, 23 Aug 2021 19:00:19 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Mon, 23 Aug 2021 19:00:19 GMT \ No newline at end of file diff --git a/output/categories/myst/index.html b/output/categories/myst/index.html new file mode 100644 index 00000000..7a4c43ee --- /dev/null +++ b/output/categories/myst/index.html @@ -0,0 +1,71 @@ + + + + + +Posts about MyST | Damian's blog + + + + + + + +
    + +
    +
    + + diff --git a/output/categories/nbconvert.html b/output/categories/nbconvert.html deleted file mode 100644 index f605f373..00000000 --- a/output/categories/nbconvert.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - -Posts about nbconvert | Damian's blog - - - - - - - - -
    -

    Posts about nbconvert

    - - -
    -
    -
    - - diff --git a/output/categories/nbconvert.xml b/output/categories/nbconvert.xml index e65fe489..ee3abe38 100644 --- a/output/categories/nbconvert.xml +++ b/output/categories/nbconvert.xml @@ -1,64 +1,66 @@ -Damian's blog (Posts about nbconvert)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:46 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSlideviewer: a simple way to share your IPython slideshttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about nbconvert)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSlideviewer: a simple way to share your IPython slideshttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Short Notice</strong>:</p> <p><strong>After some months of silence, I am back... A lot of things have happened in my life lately, some of them are really good things... some others don't. And all those things kept me very busy, but finally I have made me some time to write again! ;-)</strong></p> -<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>. -</p><p><a href="http://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html">Read more…</a> (2 min remaining to read)</p></div></div></div>IPythonnbconvertnbviewerpythonrevealslideshowhttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.htmlMon, 31 Mar 2014 00:51:13 GMTHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>.</p> +<p><a href="http://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/">Read more…</a> (2 min remaining to read)</p></div></div></div>IPythonnbconvertnbviewerpythonrevealslideshowhttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/Mon, 31 Mar 2014 00:51:13 GMTHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A tweet arrived...</p> -<p></p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>And my answer was <strong>YES</strong>...</p> -<p>How we can easily do it? Just follow these few steps: -</p><p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.html">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlThu, 10 Oct 2013 22:54:27 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>And my answer was <strong>YES</strong>...</p> +<p>How we can easily do it? Just follow these few steps:</p> +<p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Thu, 10 Oct 2013 22:54:27 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=13764374"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I presented a way to mimic the execution of <em>nbconverted</em> <strong>IPython</strong> notebooks (<em>ipynb</em>). Today, I will show you how to add a simple <em>minimap</em> to these static html documents.</p> -<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -</p><p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlFri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...</p> +<p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Fri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=86fef7a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -</p><p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlMon, 30 Sep 2013 02:53:58 GMTvIPer is now using IPython.nbconverthttp://damianavila.github.io/blog/posts/viper-is-now-using-ipythonnbconvert.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Mon, 30 Sep 2013 02:53:58 GMTvIPer is now using IPython.nbconverthttp://damianavila.github.io/blog/posts/viper-is-now-using-ipythonnbconvert/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=cef2a976"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>As you know (if not, probably the following lines gives you an idea), <strong>vIPer</strong> was originally designed to export from <em>ipynb</em> files to:</p> <ul> -<li>a plain static html </li> +<li>a plain static html</li> <li>a slideshow powered by Landslide</li> </ul> -<p>With the last release, <strong>IPython</strong> support this kind of exportation using the well designed and easily extensible <code>IPython.nbconvert</code> library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats. -</p><p><a href="http://damianavila.github.io/blog/posts/viper-is-now-using-ipythonnbconvert.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnbconvertpythonthreadsvIPerhttp://damianavila.github.io/blog/posts/viper-is-now-using-ipythonnbconvert.htmlTue, 24 Sep 2013 22:02:38 GMTChange the IPython slides defaults with an IPython config filehttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>With the last release, <strong>IPython</strong> support this kind of exportation using the well designed and easily extensible <code>IPython.nbconvert</code> library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats.</p> +<p><a href="http://damianavila.github.io/blog/posts/viper-is-now-using-ipythonnbconvert/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnbconvertpythonthreadsvIPerhttp://damianavila.github.io/blog/posts/viper-is-now-using-ipythonnbconvert/Tue, 24 Sep 2013 22:02:38 GMTChange the IPython slides defaults with an IPython config filehttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=cb3e1a6c"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some people are asking me how to change the IPython slides's defaults. You can see the description of the request <a href="http://stackoverflow.com/questions/18820253/modifying-reveal-js-defaults-in-ipython-notebook-slide-generation">here</a>. Essentially, he wants to change the default transition between the slides.</p> <p>To solve this question, we introduce the notion of IPython config files, which let us easily change <em>things</em> inside <code>IPython.nbconvert</code> (the library where the IPython slides lives) to achieve our desires, at least in the slideshow generation issue ;-)</p> -<p>First of all, you need to know some details: -</p><p><a href="http://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.html">Read more…</a> (3 min remaining to read)</p></div></div></div>configIPythonjinjanbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file.htmlMon, 16 Sep 2013 22:47:33 GMTUsing a local Reveal.js library with your IPython slideshttp://damianavila.github.io/blog/posts/using-a-local-revealjs-library-with-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>First of all, you need to know some details:</p> +<p><a href="http://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/">Read more…</a> (3 min remaining to read)</p></div></div></div>configIPythonjinjanbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/change-the-ipython-slides-defaults-with-an-ipython-config-file/Mon, 16 Sep 2013 22:47:33 GMTUsing a local Reveal.js library with your IPython slideshttp://damianavila.github.io/blog/posts/using-a-local-revealjs-library-with-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=76fa9a98"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>IPython slides are powered by <a href="https://github.com/hakimel/reveal.js/">Reveal.js</a> library, you probably already know that.</p> <p>But... you probably don't know that we use <a href="http://www.jsdelivr.com/">jsdelivr</a> CDN to load all the necessary js and css files. As a consequence, you don't need to download Reveal.js, but also, the speaker notes are not working by default.</p> -<p>But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)? -</p><p><a href="http://damianavila.github.io/blog/posts/using-a-local-revealjs-library-with-your-ipython-slides.html">Read more…</a> (1 min remaining to read)</p></div></div></div>connectivityIPythonlocalnbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/using-a-local-revealjs-library-with-your-ipython-slides.htmlFri, 13 Sep 2013 21:50:22 GMTCustomizing your IPython slideshttp://damianavila.github.io/blog/posts/customizing-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)?</p> +<p><a href="http://damianavila.github.io/blog/posts/using-a-local-revealjs-library-with-your-ipython-slides/">Read more…</a> (1 min remaining to read)</p></div></div></div>connectivityIPythonlocalnbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/using-a-local-revealjs-library-with-your-ipython-slides/Fri, 13 Sep 2013 21:50:22 GMTCustomizing your IPython slideshttp://damianavila.github.io/blog/posts/customizing-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=1432f26b"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I received this message on G+:</p> -<blockquote><p>In a future release, would be handy to add custom classes to slides so that you can use CSS rules to choose certain layouts for image slides, text, multiple charts, etc.</p> +<blockquote> +<p>In a future release, would be handy to add custom classes to slides so that you can use CSS rules to choose certain layouts for image slides, text, multiple charts, etc.</p> </blockquote> -<p>But... we already support this kind of customization! And it is clearly my fault that you don't know about this feature... so: -</p><p><a href="http://damianavila.github.io/blog/posts/customizing-your-ipython-slides.html">Read more…</a> (2 min remaining to read)</p></div></div></div>cssIPythonnbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/customizing-your-ipython-slides.htmlTue, 03 Sep 2013 19:08:16 GMTA little hack to get a pdf from your IPython slideshttp://damianavila.github.io/blog/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>But... we already support this kind of customization! And it is clearly my fault that you don't know about this feature... so:</p> +<p><a href="http://damianavila.github.io/blog/posts/customizing-your-ipython-slides/">Read more…</a> (2 min remaining to read)</p></div></div></div>cssIPythonnbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/customizing-your-ipython-slides/Tue, 03 Sep 2013 19:08:16 GMTA little hack to get a pdf from your IPython slideshttp://damianavila.github.io/blog/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=a4b545e1"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A lot of users of the <code>slides</code> option in <code>IPython.nbconvert</code> asked me about how to get a pdf from the generated Reveal.js-based slideshow.</p> -<p>To make the story short, here you have the detailed steps: -</p><p><a href="http://damianavila.github.io/blog/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnbconvertpdfpythonrevealslideshowhttp://damianavila.github.io/blog/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides.htmlFri, 30 Aug 2013 23:25:39 GMTMake your slides with IPythonhttp://damianavila.github.io/blog/posts/make-your-slides-with-ipython.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>To make the story short, here you have the detailed steps:</p> +<p><a href="http://damianavila.github.io/blog/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnbconvertpdfpythonrevealslideshowhttp://damianavila.github.io/blog/posts/a-little-hack-to-get-a-pdf-from-your-ipython-slides/Fri, 30 Aug 2013 23:25:39 GMTMake your slides with IPythonhttp://damianavila.github.io/blog/posts/make-your-slides-with-ipython/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=0274d078"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>With the integration of nbconvert inside IPython, the last 1.0 release has the possibility to export the ipynb to other formats such as rst, markdown, latex, html and slides (<a href="http://ipython.org/ipython-doc/stable/interactive/nbconvert.html">info</a>).</p> -<p>The slides option generates a Reveal.js-powered HTML slideshow, like this one: -</p><p><a href="http://damianavila.github.io/blog/posts/make-your-slides-with-ipython.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/make-your-slides-with-ipython.htmlFri, 23 Aug 2013 12:25:44 GMT \ No newline at end of file +<p>The slides option generates a Reveal.js-powered HTML slideshow, like this one:</p> +<p><a href="http://damianavila.github.io/blog/posts/make-your-slides-with-ipython/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnbconvertpythonrevealslideshowhttp://damianavila.github.io/blog/posts/make-your-slides-with-ipython/Fri, 23 Aug 2013 12:25:44 GMT \ No newline at end of file diff --git a/output/categories/nbconvert/index.html b/output/categories/nbconvert/index.html new file mode 100644 index 00000000..e6287065 --- /dev/null +++ b/output/categories/nbconvert/index.html @@ -0,0 +1,107 @@ + + + + + +Posts about nbconvert | Damian's blog + + + + + + + +
    +

    Posts about nbconvert

    + + +
    +
    +
    + + diff --git a/output/categories/nbviewer.xml b/output/categories/nbviewer.xml index f2413489..bc209589 100644 --- a/output/categories/nbviewer.xml +++ b/output/categories/nbviewer.xml @@ -1,8 +1,8 @@ -Damian's blog (Posts about nbviewer)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:46 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSlideviewer: a simple way to share your IPython slideshttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about nbviewer)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSlideviewer: a simple way to share your IPython slideshttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Short Notice</strong>:</p> <p><strong>After some months of silence, I am back... A lot of things have happened in my life lately, some of them are really good things... some others don't. And all those things kept me very busy, but finally I have made me some time to write again! ;-)</strong></p> -<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>. -</p><p><a href="http://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.html">Read more…</a> (2 min remaining to read)</p></div></div></div>IPythonnbconvertnbviewerpythonrevealslideshowhttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides.htmlMon, 31 Mar 2014 00:51:13 GMT \ No newline at end of file +<p>OK, I have a long list of news, topics, ideas and developments I want to share with you, but we have to begin with one of them, and the chosen one is <code>Slideviewer</code>.</p> +<p><a href="http://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/">Read more…</a> (2 min remaining to read)</p></div></div></div>IPythonnbconvertnbviewerpythonrevealslideshowhttp://damianavila.github.io/blog/posts/slideviewer-a-simple-way-to-share-your-ipython-slides/Mon, 31 Mar 2014 00:51:13 GMT \ No newline at end of file diff --git a/output/categories/nbviewer.html b/output/categories/nbviewer/index.html similarity index 56% rename from output/categories/nbviewer.html rename to output/categories/nbviewer/index.html index 7e26ad6d..6437010c 100644 --- a/output/categories/nbviewer.html +++ b/output/categories/nbviewer/index.html @@ -1,16 +1,13 @@ - + Posts about nbviewer | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about nikola

    - - -
    -
    -
    - - diff --git a/output/categories/nikola.xml b/output/categories/nikola.xml index 5eb97f38..ae81af6a 100644 --- a/output/categories/nikola.xml +++ b/output/categories/nikola.xml @@ -1,8 +1,9 @@ -Damian's blog (Posts about nikola)http://damianavila.github.io/blog/enTue, 31 Aug 2021 19:40:02 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about nikola)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -11,17 +12,18 @@ we have identified some limitations in the MyST-Parser Python API and we started understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -</p><p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlTue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +expected support.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Tue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> -<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlMon, 23 Aug 2021 19:00:19 GMTBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Mon, 23 Aug 2021 19:00:19 GMTBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You are in vacation time but you want to blog something nice to share with your friends.</p> @@ -30,49 +32,51 @@ important things... or at least, some interesting stuff to share with you!</p <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -</p><p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.html">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlSun, 17 Dec 2017 21:12:53 GMTZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Sun, 17 Dec 2017 21:12:53 GMTZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=a37a2d91"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, time to recap some things... As you know, <a href="http://getnikola.com/"><strong>Nikola</strong></a> 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones. -</p><p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlFri, 30 May 2014 18:03:18 GMTLive trading logbookhttp://damianavila.github.io/blog/posts/live-trading-logbook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones.</p> +<p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated/Fri, 30 May 2014 18:03:18 GMTLive trading logbookhttp://damianavila.github.io/blog/posts/live-trading-logbook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>After some weeks of silence, he he... I come back with a short post about <em>live</em> trading in the <strong>forex</strong> market. As you probably know [if not, you are knowing it right now ;-)], one of my interests is the <em>analysis</em>, <em>modeling</em> and <em>forecasting</em> of financial time series. To make it short, I have developed some statistical models to forecast the dynamic of selected portfolios. Currently, I am trading equities and other more complex financial derivatives. But my models are also suitable to apply to other markets, ie. the <strong>foreign exchange</strong> market (yes... <strong>forex</strong>). So, I made a quick research on some interesting <strong>forex</strong> pairs and then I started a little account to perform some <em>live trades</em> accordingly to these models. And now, I pretend to <em>log</em> the trades from this little account in a subset of post on my blog, a sort of public <em>live trading logbook</em>.</p> -<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago: -</p><p><a href="http://damianavila.github.io/blog/posts/live-trading-logbook.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaperformancepythontradinghttp://damianavila.github.io/blog/posts/live-trading-logbook.htmlWed, 13 Nov 2013 05:24:40 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago:</p> +<p><a href="http://damianavila.github.io/blog/posts/live-trading-logbook/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaperformancepythontradinghttp://damianavila.github.io/blog/posts/live-trading-logbook/Wed, 13 Nov 2013 05:24:40 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -</p><p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlTue, 15 Oct 2013 21:08:28 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>OK, first of all, let's go to the folder containing my blog:</p> +<p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Tue, 15 Oct 2013 21:08:28 GMTA simple minimap for your nbconverted ipynbhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=13764374"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Some days ago, I presented a way to mimic the execution of <em>nbconverted</em> <strong>IPython</strong> notebooks (<em>ipynb</em>). Today, I will show you how to add a simple <em>minimap</em> to these static html documents.</p> -<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -</p><p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb.htmlFri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>But, what is a <em>minimap</em>? Do you know <strong>SublimeText</strong> or <strong>Ninja-IDE</strong>? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...</p> +<p><a href="http://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjaminimapnbconvertnikolapythonhttp://damianavila.github.io/blog/posts/a-simple-minimap-for-your-nbconverted-ipynb/Fri, 04 Oct 2013 03:59:36 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=86fef7a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -</p><p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlMon, 30 Sep 2013 02:53:58 GMTNikola's Zen theme finally releasedhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Mon, 30 Sep 2013 02:53:58 GMTNikola's Zen theme finally releasedhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Just a quick update... Some weeks ago I <a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.html">blogged</a> about my new <strong>Nikola</strong>'s theme family called <strong>Zen</strong>. In fact, you are seeing the <code>zen-ipython</code> theme powering my blog right now.</p> +<p>Just a quick update... Some weeks ago I <a href="http://damianavila.github.io/blog/posts/posts/a-new-nikolas-theme-for-my-site-zen.html">blogged</a> about my new <strong>Nikola</strong>'s theme family called <strong>Zen</strong>. In fact, you are seeing the <code>zen-ipython</code> theme powering my blog right now.</p> <p>I have used them for several days without any remarkable issue, so I decided to release them at the <strong>Nikola</strong>'s <a href="https://github.com/getnikola/nikola-themes">theme repository</a>.</p> <p>There, you will see three <strong>Zen</strong> themes:</p> <ul> <li><code>zen</code>, based in <em>mako</em> templates</li> <li><code>zen-jinja</code>, the same <em>zen</em> theme but based (obviously) in <em>jinja</em> templates</li> -<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.<p><a href="http://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.html">Read more…</a> (1 min remaining to read)</p></li></ul></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.htmlWed, 25 Sep 2013 22:20:45 GMTDifferent ways to lead an open source projecthttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.</li> +</ul> +<p><a href="http://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/Wed, 25 Sep 2013 22:20:45 GMTDifferent ways to lead an open source projecthttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=416ff472"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Just a few lines, to trigger the discussion... to describe my point, I will pick two projects I have contributed (and I want to contribute even more): <code>IPython</code> and <code>Nikola</code>.</p> -<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said: -</p><p><a href="http://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project.htmlFri, 13 Sep 2013 04:40:50 GMT \ No newline at end of file +<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said:</p> +<p><a href="http://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project/Fri, 13 Sep 2013 04:40:50 GMT \ No newline at end of file diff --git a/output/categories/nikola/index.html b/output/categories/nikola/index.html new file mode 100644 index 00000000..4c4e12a3 --- /dev/null +++ b/output/categories/nikola/index.html @@ -0,0 +1,122 @@ + + + + + +Posts about nikola | Damian's blog + + + + + + + +
    +

    Posts about nikola

    + + +
    +
    +
    + + diff --git a/output/categories/opensource.xml b/output/categories/opensource.xml index f62d76f4..0b265607 100644 --- a/output/categories/opensource.xml +++ b/output/categories/opensource.xml @@ -1,8 +1,9 @@ -Damian's blog (Posts about opensource)http://damianavila.github.io/blog/enTue, 31 Aug 2021 19:40:03 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about opensource)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -11,35 +12,36 @@ we have identified some limitations in the MyST-Parser Python API and we started understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -</p><p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlTue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +expected support.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Tue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> -<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlMon, 23 Aug 2021 19:00:19 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Mon, 23 Aug 2021 19:00:19 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -</p><p><a href="http://damianavila.github.io/blog/posts/supporting-rise.html">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise.htmlFri, 03 Apr 2020 17:08:22 GMTSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<p><a href="http://damianavila.github.io/blog/posts/supporting-rise/">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise/Fri, 03 Apr 2020 17:08:22 GMTSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -</p><p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlWed, 02 May 2018 22:18:40 GMTDifferent ways to lead an open source projecthttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Wed, 02 May 2018 22:18:40 GMTDifferent ways to lead an open source projecthttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=416ff472"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Just a few lines, to trigger the discussion... to describe my point, I will pick two projects I have contributed (and I want to contribute even more): <code>IPython</code> and <code>Nikola</code>.</p> -<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said: -</p><p><a href="http://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project.htmlFri, 13 Sep 2013 04:40:50 GMT \ No newline at end of file +<p>Some months ago, <strong>Brian Granger</strong>, a core developer from the <code>IPython</code> project gave a <a href="http://nbviewer.ipython.org/urls/raw.github.com/ellisonbg/talk-scipy2013/master/FeaturesAndScope.ipynb">talk</a> at <code>SciPy 2013</code> where he said:</p> +<p><a href="http://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/different-ways-to-lead-an-open-source-project/Fri, 13 Sep 2013 04:40:50 GMT \ No newline at end of file diff --git a/output/categories/opensource.html b/output/categories/opensource/index.html similarity index 50% rename from output/categories/opensource.html rename to output/categories/opensource/index.html index 75be724a..c8db0a7b 100644 --- a/output/categories/opensource.html +++ b/output/categories/opensource/index.html @@ -1,16 +1,13 @@ - + Posts about opensource | Damian's blog - - - - + + + + - +

    Posts about opensource

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -77,7 +71,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Posts about osx

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -92,7 +86,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -71,7 +65,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Posts about pip

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -92,7 +86,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about python

    - - -
    -
    -
    - - diff --git a/output/categories/python.xml b/output/categories/python.xml index fd10ec6c..b73be9ce 100644 --- a/output/categories/python.xml +++ b/output/categories/python.xml @@ -1,8 +1,9 @@ -Damian's blog (Posts about python)http://damianavila.github.io/blog/enTue, 31 Aug 2021 19:40:03 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about python)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA deep dive into MyST, Part 2: The MyST-Parser, Docutils and Sphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure it out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> @@ -11,59 +12,60 @@ we have identified some limitations in the MyST-Parser Python API and we started understand why roles and directives were not supported by the API as we expected.</p> <p>In this post, we will explore the machinery underneath the MyST-Parser with the goal to deepen our understanding and being able to propose some alternatives to provide the -expected support. -</p><p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.html">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx.htmlTue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +expected support.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/">Read more…</a> (5 min remaining to read)</p></div></div></div>docutilsJupyterMySTnikolaopensourcepythonsphinxhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-2-the-myst-parser-docutils-and-sphinx/Tue, 31 Aug 2021 14:35:28 GMTA deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikolahttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<blockquote><p><em>This is a series of blog posts inviting you to join me in a little journey I have +<blockquote> +<p><em>This is a series of blog posts inviting you to join me in a little journey I have experienced in the last few weeks to figure out a nice story for <strong>MyST</strong> inside the <strong>Nikola</strong> world.</em></p> </blockquote> <p>Hey, a lot of time without writing, you know... (lack of) time, but let's go back to the important things... or at least, some interesting stuff to share with you!</p> -<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.htmlMon, 23 Aug 2021 19:00:19 GMTRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><a href="http://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/">Read more…</a> (4 min remaining to read)</p></div></div></div>JupyterMySTnikolaopensourcepythonhttp://damianavila.github.io/blog/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/Mon, 23 Aug 2021 19:00:19 GMTRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out.htmlFri, 30 Oct 2020 14:52:24 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out/Fri, 30 Oct 2020 14:52:24 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out.htmlFri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out/Fri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out.htmlThu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out/Thu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out.htmlSat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out/Sat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out.htmlSat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out/Sat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out.htmlMon, 28 May 2018 17:43:15 GMTSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out/Mon, 28 May 2018 17:43:15 GMTSome thoughts about the 2017 ACM Software System Award for Project Jupyterhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I am very happy to inform you that <strong>Project Jupyter</strong> has been awarded the 2017 <strong>ACM Software System Award</strong>!</p> <p>As part of the <em>Jupyter Steering Council</em>, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the <strong>Project Jupyter</strong> forward and beyond its limits.</p> -<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine. -</p><p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.html">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter.htmlWed, 02 May 2018 22:18:40 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>Project Jupyter</strong> is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that <strong>Project Jupyter</strong> filled that space and allowed me to achieve that goal more than I could imagine.</p> +<p><a href="http://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/">Read more…</a> (3 min remaining to read)</p></div></div></div>BinderIPythonJupyterjupyterlabopensourcepythonhttp://damianavila.github.io/blog/posts/some-thoughts-about-the-2017-acm-software-system-award-for-project-jupyter/Wed, 02 May 2018 22:18:40 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out.htmlMon, 05 Feb 2018 02:45:53 GMT \ No newline at end of file +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out/Mon, 05 Feb 2018 02:45:53 GMT \ No newline at end of file diff --git a/output/categories/python/index.html b/output/categories/python/index.html new file mode 100644 index 00000000..149751c6 --- /dev/null +++ b/output/categories/python/index.html @@ -0,0 +1,230 @@ + + + + + +Posts about python | Damian's blog + + + + + + + +
    +

    Posts about python

    + + +
    +
    +
    + + diff --git a/output/categories/reveal.html b/output/categories/reveal.html deleted file mode 100644 index 54c14f97..00000000 --- a/output/categories/reveal.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - -Posts about reveal | Damian's blog - - - - - - - - -
    -

    Posts about reveal

    - - -
    -
    -
    - - diff --git a/output/categories/reveal.xml b/output/categories/reveal.xml index 79fa6b8b..2beeabe3 100644 --- a/output/categories/reveal.xml +++ b/output/categories/reveal.xml @@ -1,63 +1,63 @@ -Damian's blog (Posts about reveal)http://damianavila.github.io/blog/enFri, 30 Oct 2020 15:52:24 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about reveal)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out.htmlFri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out/Fri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -</p><p><a href="http://damianavila.github.io/blog/posts/supporting-rise.html">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise.htmlFri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<p><a href="http://damianavila.github.io/blog/posts/supporting-rise/">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise/Fri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out.htmlFri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out/Fri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out.htmlThu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out/Thu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out.htmlSat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out/Sat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out.htmlSat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out/Sat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out.htmlMon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out/Mon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out.htmlMon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out/Mon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.1.0!</p> <p><strong>RISE</strong> allows you show your <strong>Jupyter</strong> notebooks rendered as an <em>executable</em> <code>Reveal.js</code>-based slideshow. It is your very same notebook but <em>presented</em> in a <em>slidy</em> way!</p> -<p><em>What are the new goodies for this release?</em> -</p><p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out.htmlMon, 06 Nov 2017 10:45:52 GMTWe are above 1000 stars!http://damianavila.github.io/blog/posts/we-are-above-1000-stars.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><em>What are the new goodies for this release?</em></p> +<p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out/Mon, 06 Nov 2017 10:45:52 GMTWe are above 1000 stars!http://damianavila.github.io/blog/posts/we-are-above-1000-stars/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Github</strong> has a way to measure projects <code>popularity</code> through stars.</p> <p>And those stars are given by the users themselves.</p> <p>And we are just above a <strong>remarkable</strong> line...</p> -<p><a href="http://damianavila.github.io/blog/posts/we-are-above-1000-stars.html">Read more…</a> (1 min remaining to read)</p></div></div></div>JupyterpythonrevealRISEslideshowhttp://damianavila.github.io/blog/posts/we-are-above-1000-stars.htmlWed, 12 Jul 2017 16:45:00 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/we-are-above-1000-stars/">Read more…</a> (1 min remaining to read)</p></div></div></div>JupyterpythonrevealRISEslideshowhttp://damianavila.github.io/blog/posts/we-are-above-1000-stars/Wed, 12 Jul 2017 16:45:00 GMT \ No newline at end of file diff --git a/output/categories/reveal/index.html b/output/categories/reveal/index.html new file mode 100644 index 00000000..ed75a0ea --- /dev/null +++ b/output/categories/reveal/index.html @@ -0,0 +1,128 @@ + + + + + +Posts about reveal | Damian's blog + + + + + + + +
    +

    Posts about reveal

    + + +
    +
    +
    + + diff --git a/output/categories/rise.html b/output/categories/rise.html deleted file mode 100644 index c2d9df2c..00000000 --- a/output/categories/rise.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - -Posts about RISE | Damian's blog - - - - - - - - -
    -

    Posts about RISE

    - - -
    -
    -
    - - diff --git a/output/categories/rise.xml b/output/categories/rise.xml index 1dc835b7..940f0090 100644 --- a/output/categories/rise.xml +++ b/output/categories/rise.xml @@ -1,63 +1,63 @@ -Damian's blog (Posts about RISE)http://damianavila.github.io/blog/enFri, 30 Oct 2020 15:52:24 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about RISE)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out.htmlFri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out/Fri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -</p><p><a href="http://damianavila.github.io/blog/posts/supporting-rise.html">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise.htmlFri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<p><a href="http://damianavila.github.io/blog/posts/supporting-rise/">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise/Fri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out.htmlFri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out/Fri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out.htmlThu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out/Thu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out.htmlSat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out/Sat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out.htmlSat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out/Sat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out.htmlMon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out/Mon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out.htmlMon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out/Mon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.1.0!</p> <p><strong>RISE</strong> allows you show your <strong>Jupyter</strong> notebooks rendered as an <em>executable</em> <code>Reveal.js</code>-based slideshow. It is your very same notebook but <em>presented</em> in a <em>slidy</em> way!</p> -<p><em>What are the new goodies for this release?</em> -</p><p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out.htmlMon, 06 Nov 2017 10:45:52 GMTWe are above 1000 stars!http://damianavila.github.io/blog/posts/we-are-above-1000-stars.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><em>What are the new goodies for this release?</em></p> +<p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out/Mon, 06 Nov 2017 10:45:52 GMTWe are above 1000 stars!http://damianavila.github.io/blog/posts/we-are-above-1000-stars/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Github</strong> has a way to measure projects <code>popularity</code> through stars.</p> <p>And those stars are given by the users themselves.</p> <p>And we are just above a <strong>remarkable</strong> line...</p> -<p><a href="http://damianavila.github.io/blog/posts/we-are-above-1000-stars.html">Read more…</a> (1 min remaining to read)</p></div></div></div>JupyterpythonrevealRISEslideshowhttp://damianavila.github.io/blog/posts/we-are-above-1000-stars.htmlWed, 12 Jul 2017 16:45:00 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/we-are-above-1000-stars/">Read more…</a> (1 min remaining to read)</p></div></div></div>JupyterpythonrevealRISEslideshowhttp://damianavila.github.io/blog/posts/we-are-above-1000-stars/Wed, 12 Jul 2017 16:45:00 GMT \ No newline at end of file diff --git a/output/categories/rise/index.html b/output/categories/rise/index.html new file mode 100644 index 00000000..2d488706 --- /dev/null +++ b/output/categories/rise/index.html @@ -0,0 +1,107 @@ + + + + + +Posts about RISE | Damian's blog + + + + + + + +
    +

    Posts about RISE

    + + +
    +
    +
    + + diff --git a/output/categories/scipycon.xml b/output/categories/scipycon.xml index 1b4427eb..d4e07d0c 100644 --- a/output/categories/scipycon.xml +++ b/output/categories/scipycon.xml @@ -1,14 +1,13 @@ -Damian's blog (Posts about SciPyCon)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:48 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSciPyCon Argentina 2013http://damianavila.github.io/blog/posts/scipycon-argentina-2013.htmlDamian Avila<div><div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about SciPyCon)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssSciPyCon Argentina 2013http://damianavila.github.io/blog/posts/scipycon-argentina-2013/Damian Avila<div><div class="cell border-box-sizing text_cell rendered" id="cell-id=79b31221"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the first <strong>SciPy Conference in Argentina</strong> (as far as I know, it is also the first one in Latin American).</p> <p>It will be held from <strong>16 to 18th of May in Puerto Madryn</strong>, at the Patagonia Argentina (more details at SciPyCon <a href="http://scipycon.com.ar">homepage</a>).</p> - </div> </div> </div> -<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<div class="cell border-box-sizing text_cell rendered" id="cell-id=ff5dad74"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p><a href="http://damianavila.github.io/blog/posts/scipycon-argentina-2013.html">Read more…</a> (1 min remaining to read)</p></div></div></div></div>IPythonpythonSciPyContalkstutorialshttp://damianavila.github.io/blog/posts/scipycon-argentina-2013.htmlSat, 04 May 2013 23:18:56 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/scipycon-argentina-2013/">Read more…</a> (1 min remaining to read)</p></div></div></div></div>IPythonpythonSciPyContalkstutorialshttp://damianavila.github.io/blog/posts/scipycon-argentina-2013/Sat, 04 May 2013 23:18:56 GMT \ No newline at end of file diff --git a/output/categories/scipycon.html b/output/categories/scipycon/index.html similarity index 57% rename from output/categories/scipycon.html rename to output/categories/scipycon/index.html index e5d9bcb6..0b8b0f71 100644 --- a/output/categories/scipycon.html +++ b/output/categories/scipycon/index.html @@ -1,16 +1,13 @@ - + Posts about SciPyCon | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about slideshow

    - - -
    -
    -
    - - diff --git a/output/categories/slideshow.xml b/output/categories/slideshow.xml index 7d1b28e4..ee283207 100644 --- a/output/categories/slideshow.xml +++ b/output/categories/slideshow.xml @@ -1,63 +1,63 @@ -Damian's blog (Posts about slideshow)http://damianavila.github.io/blog/enFri, 30 Oct 2020 15:52:24 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about slideshow)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:54 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssRISE 5.7.1 is out!http://damianavila.github.io/blog/posts/rise-571-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.7.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out.htmlFri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-571-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-571-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-571-is-out/Fri, 30 Oct 2020 14:52:24 GMTSupporting RISEhttp://damianavila.github.io/blog/posts/supporting-rise/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Hi folks!</p> <p>This is a little blog post requesting your support for <strong>RISE</strong>.</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> is a <strong>very</strong> popular extension for the <strong>Jupyter Notebook</strong>. It lets you show your notebooks rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> <p>We have been working on <strong>RISE</strong> for several years and we are looking into its future and evolution.</p> -<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise.html#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> -<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development: -</p><p><a href="http://damianavila.github.io/blog/posts/supporting-rise.html">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise.htmlFri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="How-you-can-help-us-(with-money-;-)">How you can help us (with money ;-)<a class="anchor-link" href="http://damianavila.github.io/blog/posts/supporting-rise/#How-you-can-help-us-(with-money-;-)">¶</a></h4><p>You can <strong>always</strong> help us contributing to the project with your time (through code, documentation, testing, showing, using it) <strong>BUT</strong> we are currently looking for a <em>continuous flow</em> of money so we can spend time on a <em>daily</em> basis with <strong>RISE</strong>.</p> +<p>Basically, you have 2-3 ways to fund <strong>RISE</strong> support and development:</p> +<p><a href="http://damianavila.github.io/blog/posts/supporting-rise/">Read more…</a> (2 min remaining to read)</p></div></div></div>JupyterkofiopensourcerevealRISEslideshowsupporthttp://damianavila.github.io/blog/posts/supporting-rise/Fri, 03 Apr 2020 17:08:22 GMTRISE 5.6.1 is out!http://damianavila.github.io/blog/posts/rise-561-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.1!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out.htmlFri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-561-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-561-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-561-is-out/Fri, 21 Feb 2020 21:30:45 GMTRISE 5.6.0 is out!http://damianavila.github.io/blog/posts/rise-560-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.6.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out.htmlThu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-560-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-560-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-560-is-out/Thu, 14 Nov 2019 19:08:38 GMTRISE 5.5.0 is out!http://damianavila.github.io/blog/posts/rise-550-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.5.0!</p> -<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out.html#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> -<p>It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out.htmlSat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<h4 id="What-is-RISE?"><em>What is RISE?</em><a class="anchor-link" href="http://damianavila.github.io/blog/posts/rise-550-is-out/#What-is-RISE?">¶</a></h4><p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow.</p> +<p>It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-550-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-550-is-out/Sat, 27 Apr 2019 16:39:26 GMTRISE 5.4.1 is out!http://damianavila.github.io/blog/posts/rise-541-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.4.1!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out.htmlSat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-541-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-541-is-out/Sat, 25 Aug 2018 18:44:17 GMTRISE 5.3.0 is out!http://damianavila.github.io/blog/posts/rise-530-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of <strong>RISE</strong> 5.3.0!</p> -<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out.htmlMon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> lets you show your <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> <code>Reveal.js</code>-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-530-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-530-is-out/Mon, 28 May 2018 17:43:15 GMTRISE 5.2.0 is out!http://damianavila.github.io/blog/posts/rise-520-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.2.0!</p> -<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way! -</p><p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out.htmlMon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><strong>RISE</strong> let's you show yout <strong>Jupyter</strong> notebook rendered as an <strong>executable</strong> Reveal.js-based slideshow. It is your very same notebook but in a <em>slidy</em> way!</p> +<p><a href="http://damianavila.github.io/blog/posts/rise-520-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-520-is-out/Mon, 05 Feb 2018 02:45:53 GMTRISE 5.1.0 is out!http://damianavila.github.io/blog/posts/rise-510-is-out/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>We're pleased to announce the release of RISE 5.1.0!</p> <p><strong>RISE</strong> allows you show your <strong>Jupyter</strong> notebooks rendered as an <em>executable</em> <code>Reveal.js</code>-based slideshow. It is your very same notebook but <em>presented</em> in a <em>slidy</em> way!</p> -<p><em>What are the new goodies for this release?</em> -</p><p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out.html">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out.htmlMon, 06 Nov 2017 10:45:52 GMTWe are above 1000 stars!http://damianavila.github.io/blog/posts/we-are-above-1000-stars.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p><em>What are the new goodies for this release?</em></p> +<p><a href="http://damianavila.github.io/blog/posts/rise-510-is-out/">Read more…</a> (1 min remaining to read)</p></div></div></div>condaJupyterlinuxosxpippythonrevealRISEslideshowwinhttp://damianavila.github.io/blog/posts/rise-510-is-out/Mon, 06 Nov 2017 10:45:52 GMTWe are above 1000 stars!http://damianavila.github.io/blog/posts/we-are-above-1000-stars/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p><strong>Github</strong> has a way to measure projects <code>popularity</code> through stars.</p> <p>And those stars are given by the users themselves.</p> <p>And we are just above a <strong>remarkable</strong> line...</p> -<p><a href="http://damianavila.github.io/blog/posts/we-are-above-1000-stars.html">Read more…</a> (1 min remaining to read)</p></div></div></div>JupyterpythonrevealRISEslideshowhttp://damianavila.github.io/blog/posts/we-are-above-1000-stars.htmlWed, 12 Jul 2017 16:45:00 GMT \ No newline at end of file +<p><a href="http://damianavila.github.io/blog/posts/we-are-above-1000-stars/">Read more…</a> (1 min remaining to read)</p></div></div></div>JupyterpythonrevealRISEslideshowhttp://damianavila.github.io/blog/posts/we-are-above-1000-stars/Wed, 12 Jul 2017 16:45:00 GMT \ No newline at end of file diff --git a/output/categories/slideshow/index.html b/output/categories/slideshow/index.html new file mode 100644 index 00000000..c94bdc36 --- /dev/null +++ b/output/categories/slideshow/index.html @@ -0,0 +1,125 @@ + + + + + +Posts about slideshow | Damian's blog + + + + + + + +
    +

    Posts about slideshow

    + + +
    +
    +
    + + diff --git a/output/categories/spellcheck.xml b/output/categories/spellcheck.xml index d0cdc611..ba272260 100644 --- a/output/categories/spellcheck.xml +++ b/output/categories/spellcheck.xml @@ -1,7 +1,7 @@ -Damian's blog (Posts about spellcheck)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:46 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about spellcheck)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssA 'poor man' spell checker for the IPython notebookhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, today I will release another <strong>IPython</strong> <em>js</em> extension: <strong>Spellchecker</strong>, which obviously do what you are thinking... spell check the content of your <strong>IPython</strong> notebook cells.</p> -<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems! -</p><p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook.htmlWed, 18 Dec 2013 22:21:28 GMT \ No newline at end of file +<p>And why it is a <em>poor man</em> extension? Because it is a simple workaround to get the spell checker functionality and not a broad solution... but it works, and solve my spelling problems!</p> +<p><a href="http://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionIPythonjavascriptmIPyexpythonspellcheckhttp://damianavila.github.io/blog/posts/a-poor-man-spell-checker-for-the-ipython-notebook/Wed, 18 Dec 2013 22:21:28 GMT \ No newline at end of file diff --git a/output/categories/spellcheck.html b/output/categories/spellcheck/index.html similarity index 56% rename from output/categories/spellcheck.html rename to output/categories/spellcheck/index.html index 3269db86..402e9215 100644 --- a/output/categories/spellcheck.html +++ b/output/categories/spellcheck/index.html @@ -1,16 +1,13 @@ - + Posts about spellcheck | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -68,7 +62,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    - -
    -
    - - diff --git a/output/categories/toggle.xml b/output/categories/toggle.xml index fc1b61aa..811bc74f 100644 --- a/output/categories/toggle.xml +++ b/output/categories/toggle.xml @@ -1,15 +1,16 @@ -Damian's blog (Posts about toggle)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:47 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about toggle)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssHide the input cells from your IPython slideshttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>A tweet arrived...</p> -<p></p><blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> -<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>And my answer was <strong>YES</strong>...</p> -<p>How we can easily do it? Just follow these few steps: -</p><p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.html">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.htmlThu, 10 Oct 2013 22:54:27 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<blockquote class="twitter-tweet" data-partner="tweetdeck"><p><a href="https://twitter.com/damian_avila">@damian_avila</a> Is there a way to only show the output of a cell in an NB slideshow?</p>— Thomas Wiecki (@TWiecki) <a href="https://twitter.com/TWiecki/statuses/388378339716505601">October 10, 2013</a></blockquote> +<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script> +<p>And my answer was <strong>YES</strong>...</p> +<p>How we can easily do it? Just follow these few steps:</p> +<p><a href="http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/">Read more…</a> (1 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertpythonrevealslideshowtogglehttp://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides/Thu, 10 Oct 2013 22:54:27 GMTMimic the IPython notebook cell executionhttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=86fef7a7"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Yesterday, I was visiting the <a href="http://www.astro.washington.edu/users/vanderplas/">Jake VanderPlas</a>'s Scientific Python Course <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/schedule">site</a> because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).</p> <p>To build his site, Jake wrote an <strong>Hyde</strong> plugin to render <em>ipynb</em> files to static html files using the <code>IPython.convert</code> platform. You can see an example of the final rendered document <a href="http://www.astro.washington.edu/users/vanderplas/Astr599/notebooks/01_basic_training">here</a>.</p> -<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-) -</p><p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.html">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution.htmlMon, 30 Sep 2013 02:53:58 GMT \ No newline at end of file +<p>When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the <code>IPython.nbconvert</code> library ;-)</p> +<p><a href="http://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/">Read more…</a> (2 min remaining to read)</p></div></div></div>configIPythonjavascriptjinjanbconvertnikolapythontogglehttp://damianavila.github.io/blog/posts/mimic-the-ipython-notebook-cell-execution/Mon, 30 Sep 2013 02:53:58 GMT \ No newline at end of file diff --git a/output/categories/toggle/index.html b/output/categories/toggle/index.html new file mode 100644 index 00000000..890a5540 --- /dev/null +++ b/output/categories/toggle/index.html @@ -0,0 +1,71 @@ + + + + + +Posts about toggle | Damian's blog + + + + + + + +
    + +
    +
    + + diff --git a/output/categories/trading.xml b/output/categories/trading.xml index 8a7411ba..4e2aacd0 100644 --- a/output/categories/trading.xml +++ b/output/categories/trading.xml @@ -1,21 +1,21 @@ -Damian's blog (Posts about trading)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:48 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssTrading logbook update 3http://damianavila.github.io/blog/posts/trading-logbook-update-3.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about trading)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssTrading logbook update 3http://damianavila.github.io/blog/posts/trading-logbook-update-3/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, I have run my models again and it was time to enter the market.</p> -<p>Early today, I opened two positions: -</p><p><a href="http://damianavila.github.io/blog/posts/trading-logbook-update-3.html">Read more…</a> (1 min remaining to read)</p></div></div></div>performancepythontradinghttp://damianavila.github.io/blog/posts/trading-logbook-update-3.htmlMon, 26 Jun 2017 21:29:09 GMTTrading logbook update: 22-Nov-2013http://damianavila.github.io/blog/posts/trading-logbook-update-22-nov-2013.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Early today, I opened two positions:</p> +<p><a href="http://damianavila.github.io/blog/posts/trading-logbook-update-3/">Read more…</a> (1 min remaining to read)</p></div></div></div>performancepythontradinghttp://damianavila.github.io/blog/posts/trading-logbook-update-3/Mon, 26 Jun 2017 21:29:09 GMTTrading logbook update: 22-Nov-2013http://damianavila.github.io/blog/posts/trading-logbook-update-22-nov-2013/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, logging my trades in the <strong>forex</strong> market, as I promised in the last post.</p> <p>FYI, I am a daily trader, so you will see me holding positions over several days. -Last week, I performed some <em>real account trades</em> accordingly to my models, opening positions at several currencies pairs. You can see the detailed information in the table below: -</p><p><a href="http://damianavila.github.io/blog/posts/trading-logbook-update-22-nov-2013.html">Read more…</a> (1 min remaining to read)</p></div></div></div>performancepythontradinghttp://damianavila.github.io/blog/posts/trading-logbook-update-22-nov-2013.htmlSat, 23 Nov 2013 02:55:38 GMTLive trading logbookhttp://damianavila.github.io/blog/posts/live-trading-logbook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Last week, I performed some <em>real account trades</em> accordingly to my models, opening positions at several currencies pairs. You can see the detailed information in the table below:</p> +<p><a href="http://damianavila.github.io/blog/posts/trading-logbook-update-22-nov-2013/">Read more…</a> (1 min remaining to read)</p></div></div></div>performancepythontradinghttp://damianavila.github.io/blog/posts/trading-logbook-update-22-nov-2013/Sat, 23 Nov 2013 02:55:38 GMTLive trading logbookhttp://damianavila.github.io/blog/posts/live-trading-logbook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>After some weeks of silence, he he... I come back with a short post about <em>live</em> trading in the <strong>forex</strong> market. As you probably know [if not, you are knowing it right now ;-)], one of my interests is the <em>analysis</em>, <em>modeling</em> and <em>forecasting</em> of financial time series. To make it short, I have developed some statistical models to forecast the dynamic of selected portfolios. Currently, I am trading equities and other more complex financial derivatives. But my models are also suitable to apply to other markets, ie. the <strong>foreign exchange</strong> market (yes... <strong>forex</strong>). So, I made a quick research on some interesting <strong>forex</strong> pairs and then I started a little account to perform some <em>live trades</em> accordingly to these models. And now, I pretend to <em>log</em> the trades from this little account in a subset of post on my blog, a sort of public <em>live trading logbook</em>.</p> -<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago: -</p><p><a href="http://damianavila.github.io/blog/posts/live-trading-logbook.html">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaperformancepythontradinghttp://damianavila.github.io/blog/posts/live-trading-logbook.htmlWed, 13 Nov 2013 05:24:40 GMT \ No newline at end of file +<p>OK, we can start the logging right now! I opened two <strong>short</strong> positions some days ago:</p> +<p><a href="http://damianavila.github.io/blog/posts/live-trading-logbook/">Read more…</a> (1 min remaining to read)</p></div></div></div>IPythonnikolaperformancepythontradinghttp://damianavila.github.io/blog/posts/live-trading-logbook/Wed, 13 Nov 2013 05:24:40 GMT \ No newline at end of file diff --git a/output/categories/trading.html b/output/categories/trading/index.html similarity index 55% rename from output/categories/trading.html rename to output/categories/trading/index.html index e7bc954a..99d7b301 100644 --- a/output/categories/trading.html +++ b/output/categories/trading/index.html @@ -1,16 +1,13 @@ - + Posts about trading | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -71,7 +65,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -74,7 +68,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Posts about win

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -92,7 +86,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - - - -
    -

    Posts about workflow

    - - -
    -
    -
    - - diff --git a/output/categories/workflow.xml b/output/categories/workflow.xml index a0ad6cd7..6e6ea86d 100644 --- a/output/categories/workflow.xml +++ b/output/categories/workflow.xml @@ -1,5 +1,5 @@ -Damian's blog (Posts about workflow)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:48 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about workflow)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:53 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssBinder + Nikola + Jupyter + Github = Blogging resourcelesshttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>You are in vacation time but you want to blog something nice to share with your friends.</p> @@ -8,32 +8,32 @@ <p>But you don't have your laptop with you, because you are on <em>vacation</em> time, remember? ;-)</p> <p>But you still have your phone and some connectivity.</p> <p>What do you think if I say that you have a complete workflow to write your blogpost, build the site and deploy it just using your phone? But without using computational resources from it (that would be also interesting, btw).</p> -<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun! -</p><p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.html">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless.htmlSun, 17 Dec 2017 21:12:53 GMTLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!</p> +<p><a href="http://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/">Read more…</a> (16 min remaining to read)</p></div></div></div>Bindergh-pagesgitGithubJupyternikolaworkflowhttp://damianavila.github.io/blog/posts/binder-%2B-nikola-%2B-jupyter-%2B-github-blogging-resourceless/Sun, 17 Dec 2017 21:12:53 GMTLoader and Writer, IPython nbextensions to easily edit your text.http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file. -</p><p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.html">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text.htmlMon, 07 Apr 2014 13:23:21 GMTMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Coming back to the nice practice of release my own <strong>IPython</strong> <em>nbextensions</em>, today I will release two extensions I use a lot in my daily workflow: <code>loader</code> and <code>writer</code>, useful extensions to load files into the <strong>IPython notebook</strong> and to write the content to the same (or another) file.</p> +<p><a href="http://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/">Read more…</a> (4 min remaining to read)</p></div></div></div>extensionformatIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/loader-and-writer-ipython-nbextensions-to-easily-edit-your-text/Mon, 07 Apr 2014 13:23:21 GMTMy IPython-powered semi-automatic git workflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=93e7b089"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>This is the last post of this year, so I try to do my best to give you something interesting to think about...</p> <p>In this case, I will show you <em>my git workflow</em>... and you know there are a lot of workflows out there... and probably better than mine, but I just want to share with you the place where I find myself comfortable.</p> <p>And yes... <em>my git workflow</em> is also powered by <strong>IPython</strong> (I am very repetitive when I love a project!). -And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!). -</p><p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.html">Read more…</a> (10 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow.htmlMon, 30 Dec 2013 19:41:08 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +And it is a <em>semi-automatic</em> one, using the <strong>IPython</strong> notebooks (<em>ipynbs</em>) as a sort of templates, transforming them into a new conceptual entity: the <strong>ipytmpl</strong> (and yes, I love to invent names too!).</p> +<p><a href="http://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/">Read more…</a> (23 min remaining to read)</p></div></div></div>gitIPythonipytmplpythonworkflowhttp://damianavila.github.io/blog/posts/my-ipython-powered-semi-automatic-git-workflow/Mon, 30 Dec 2013 19:41:08 GMTDeploy your Nikola-powered blog content from the IPython notebookhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension. -</p><p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook.htmlFri, 27 Dec 2013 23:35:57 GMTDon't write scripts, just write ipyscripts!http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful <strong>IPython</strong> notebook extension for people blogging with <strong>Nikola</strong>: the <em>nikola_deploy</em> extension.</p> +<p><a href="http://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/">Read more…</a> (2 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonjavascriptmIPyexpythonworkflowhttp://damianavila.github.io/blog/posts/deploy-your-nikola-powered-blog-content-from-the-ipython-notebook/Fri, 27 Dec 2013 23:35:57 GMTDon't write scripts, just write ipyscripts!http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=db17c248"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>I usually have some repetitive tasks in my daily work-flow. You probably have some of those too. To save some minutes from your day, you probably write little scripts to do these jobs.</p> <p>I used to do that... but now I am only writing little IPython notebooks to do these simple jobs, I call them <em>ipyscripts</em> (yes, I won a prize for originality, he he!).</p> -<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way... -</p><p><a href="http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.html">Read more…</a> (3 min remaining to read)</p></div></div></div>gitipyscriptIPythonmagicpythonworkflowhttp://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts.htmlWed, 04 Dec 2013 00:50:05 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<p>These <em>ipyscripts</em> are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way...</p> +<p><a href="http://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/">Read more…</a> (3 min remaining to read)</p></div></div></div>gitipyscriptIPythonmagicpythonworkflowhttp://damianavila.github.io/blog/posts/dont-write-scripts-just-write-ipyscripts/Wed, 04 Dec 2013 00:50:05 GMTBidirectional IPython-Nikola workflow to write your blog posthttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>The idea of this blog post is to show you how you can achieve an efficient <em>bidirectional</em> workflow to write your blog posts using great tools/features derived from <strong>IPython</strong> and <strong>Nikola</strong>.</p> <p>Probably, this would be interesting not only for the people using <strong>IPython</strong> and <strong>Nikola</strong> to write their blog post, but also to other people because this would be a simple but nice example of how you can integrate this two applications to better suit your needs.</p> -<p>OK, first of all, let's go to the folder containing my blog: -</p><p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.html">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post.htmlTue, 15 Oct 2013 21:08:28 GMT \ No newline at end of file +<p>OK, first of all, let's go to the folder containing my blog:</p> +<p><a href="http://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/">Read more…</a> (4 min remaining to read)</p></div></div></div>blogextensiongh-pagesgitIPythonnikolapythonworkflowhttp://damianavila.github.io/blog/posts/bidirectional-ipython-nikola-workflow-to-write-your-blog-post/Tue, 15 Oct 2013 21:08:28 GMT \ No newline at end of file diff --git a/output/categories/workflow/index.html b/output/categories/workflow/index.html new file mode 100644 index 00000000..462fbe31 --- /dev/null +++ b/output/categories/workflow/index.html @@ -0,0 +1,83 @@ + + + + + +Posts about workflow | Damian's blog + + + + + + + +
    +

    Posts about workflow

    + + +
    +
    +
    + + diff --git a/output/categories/zen.xml b/output/categories/zen.xml index 2ac0b057..fd88ecde 100644 --- a/output/categories/zen.xml +++ b/output/categories/zen.xml @@ -1,20 +1,22 @@ -Damian's blog (Posts about zen)http://damianavila.github.io/blog/enFri, 03 Apr 2020 17:01:46 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +Damian's blog (Posts about zen)http://damianavila.github.io/blog/enMon, 04 Nov 2024 22:07:54 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssZen themes updatedhttp://damianavila.github.io/blog/posts/zen-themes-updated/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=a37a2d91"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>OK, time to recap some things... As you know, <a href="http://getnikola.com/"><strong>Nikola</strong></a> 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones. -</p><p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated.html">Read more…</a> (2 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated.htmlFri, 30 May 2014 18:03:18 GMTNikola's Zen theme finally releasedhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +As part of the release, we paid attention to update all the plugins and themes inside the <strong>Nikola Github organization</strong> (don't forget you can contribute with your own <a href="https://github.com/getnikola/plugins">plugins</a> and <a href="https://github.com/getnikola/nikola-themes">themes</a>!). So, I updated my own themes, in particular, the <strong>Zen</strong> ones.</p> +<p><a href="http://damianavila.github.io/blog/posts/zen-themes-updated/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonnikolapythonthemeszenhttp://damianavila.github.io/blog/posts/zen-themes-updated/Fri, 30 May 2014 18:03:18 GMTNikola's Zen theme finally releasedhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/Damian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Just a quick update... Some weeks ago I <a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.html">blogged</a> about my new <strong>Nikola</strong>'s theme family called <strong>Zen</strong>. In fact, you are seeing the <code>zen-ipython</code> theme powering my blog right now.</p> +<p>Just a quick update... Some weeks ago I <a href="http://damianavila.github.io/blog/posts/posts/a-new-nikolas-theme-for-my-site-zen.html">blogged</a> about my new <strong>Nikola</strong>'s theme family called <strong>Zen</strong>. In fact, you are seeing the <code>zen-ipython</code> theme powering my blog right now.</p> <p>I have used them for several days without any remarkable issue, so I decided to release them at the <strong>Nikola</strong>'s <a href="https://github.com/getnikola/nikola-themes">theme repository</a>.</p> <p>There, you will see three <strong>Zen</strong> themes:</p> <ul> <li><code>zen</code>, based in <em>mako</em> templates</li> <li><code>zen-jinja</code>, the same <em>zen</em> theme but based (obviously) in <em>jinja</em> templates</li> -<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.<p><a href="http://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.html">Read more…</a> (1 min remaining to read)</p></li></ul></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released.htmlWed, 25 Sep 2013 22:20:45 GMTA new Nikola's theme for my site: Zenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.htmlDamian Avila<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> +<li><code>zen-ipython</code>, a <em>jinja</em>-based <em>zen</em> theme suited to be used with the IPython notebooks.</li> +</ul> +<p><a href="http://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/nikolas-zen-theme-finally-released/Wed, 25 Sep 2013 22:20:45 GMTA new Nikola's theme for my site: Zenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen/Damian Avila<div class="cell border-box-sizing text_cell rendered" id="cell-id=76507fef"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> -<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme. -</p><p><a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.html">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen.htmlTue, 10 Sep 2013 00:10:18 GMT \ No newline at end of file +<p>Some days ago, <a href="https://plus.google.com/106780152352450272697/about">Aru Sahni</a> wrote to <a href="https://groups.google.com/forum/#!forum/nikola-discuss">Nikola's</a> forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme.</p> +<p><a href="http://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen/">Read more…</a> (1 min remaining to read)</p></div></div></div>blogIPythonlessnikolapythonthemezenhttp://damianavila.github.io/blog/posts/a-new-nikolas-theme-for-my-site-zen/Tue, 10 Sep 2013 00:10:18 GMT \ No newline at end of file diff --git a/output/categories/zen.html b/output/categories/zen/index.html similarity index 55% rename from output/categories/zen.html rename to output/categories/zen/index.html index 26689903..c365332a 100644 --- a/output/categories/zen.html +++ b/output/categories/zen/index.html @@ -1,16 +1,13 @@ - + Posts about zen | Damian's blog - - - - + + + + - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -71,7 +65,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    @@ -65,7 +59,7 @@ gtag('js', new Date()); gtag('config', 'UA-139225553-1'); - +
    -

    Nikola + nbconvert

    +

    Nikola + nbconvert

    @@ -173,31 +172,29 @@

    Nikola + nbconvert

    Importando, en un posteo del blog, un html estático (obtenido con nbconvert) de un notebook (ejemplo) de IPython:

    -
    -.. raw:: html
    -   :file: /Users/damian/devel/blog/files/Test.html
    -
    -

    Leer más…

    +
    .. raw:: html
    +   :file: /Users/damian/Documents/devel/blog/files/Test.html
    +

    Leer más…

    -

    Una pequeña demostración de vIPer

    +

    Una pequeña demostración de vIPer

    -

    vIPer

    +

    vIPer

    @@ -240,32 +237,31 @@

    vIPer

    A continuación, pueden ver un video en el cual demuestro una de mis funciones predilectas: la posibilidad de tener una vista "presentación" para el notebook con el cual estoy trabajando (súper útil a la hora de exponer resultados o preparar charlas, por ejemplo).

    -

    Leer más…

    +

    Leer más…

    -

    Paraguay

    +

    Paraguay

    -
    -

    Lo que esta viviendo hoy el Paraguay me causa mucha tristeza...

    +

    Lo que esta viviendo hoy el Paraguay me causa mucha tristeza...

    ¡¿Cómo puede ser que a comienzos del siglo XXI, la retrógrada derecha latinoamericana no se haya superado y alcanzado el nivel democrático necesario para, al menos, respetar que otros han ganado @@ -276,33 +272,31 @@

    Paraguay

    http://www.pagina12.com.ar/diario/elmundo/4-196944-2012-06-22.html

    Hasta la próxima...

    Damián.

    -
    -

    Hecho con Nikola...

    +

    Hecho con Nikola...

    -
    -

    Nikola es un generador de sitios estáticos creado por uno de los miembros de la comunidad +

    Nikola es un generador de sitios estáticos creado por uno de los miembros de la comunidad de PyAr (Roberto Alsina). Es un excelente proyecto y, también, la herramienta pythonica que he elegido para construir mi nuevo blog...

    Espero poder con contribuir al proyecto en el futuro cercano (ya le prometí a Roberto que @@ -313,31 +307,29 @@

    Hecho con Nikola...

    Damián.

    PD: El "tema" que están viendo ahora mismo en el blog no está incluído en Nikola, lo postearé pronto, cuando esté listo para "salir del horno"...

    -

    -

    Comienzo...

    +

    Comienzo...

    -
    -

    Durante 5 años, prácticamente todos los dias hábiles, +

    Durante 5 años, prácticamente todos los dias hábiles, he viajado desde La Plata hasta C.A.B.A. (ida y vuelta). He utilizado múltiples medios de locomoción: auto, colectivo, subte, tren... Muchas horas de transporte público han corrido "bajo el puente". @@ -350,44 +342,41 @@

    Comienzo...

    invertiré mis "tiempos" de viaje para escribir algunas "cosas" que luego publicaré en este blog.

    Así que, ¡nos vemos pronto!

    Damián.

    -
    -

    Hola Mundo! Nuevamente...

    +

    Hola Mundo! Nuevamente...

    -
    -

    Ustedes saben que, en otras épocas, he tratado de mantener "vivos" un par de blogs. +

    Ustedes saben que, en otras épocas, he tratado de mantener "vivos" un par de blogs. Este es un nuevo ensayo... Esta vez, no les prometo postear todos los días... pero si tienen paciencia, podrán leer algunas "cosas" interesantes (al menos interesantes para mi).

    Nos vemos pronto!

    Damián.

    -

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/index-2.html b/output/es/index-2.html index 5423a254..e9f3e519 100644 --- a/output/es/index-2.html +++ b/output/es/index-2.html @@ -1,8 +1,5 @@ - + @@ -42,63 +39,62 @@
    -

    A little hack to get a pdf from your IPython slides

    +

    A little hack to get a pdf from your IPython slides

    -
    +

    A lot of users of the slides option in IPython.nbconvert asked me about how to get a pdf from the generated Reveal.js-based slideshow.

    -

    To make the story short, here you have the detailed steps: -

    -

    Leer más…

    +

    To make the story short, here you have the detailed steps:

    +

    Leer más…

    -

    Zen mode extension for the IPython notebook

    +

    Zen mode extension for the IPython notebook

    @@ -113,77 +109,75 @@

    Leer más…

    +

    You can see some screen shots below:

    +

    Leer más…

    -

    Make your slides with IPython

    +

    Make your slides with IPython

    -
    +

    With the integration of nbconvert inside IPython, the last 1.0 release has the possibility to export the ipynb to other formats such as rst, markdown, latex, html and slides (info).

    -

    The slides option generates a Reveal.js-powered HTML slideshow, like this one: -

    -

    Leer más…

    +

    The slides option generates a Reveal.js-powered HTML slideshow, like this one:

    +

    Leer más…

    -

    One line deployment of your site to gh-pages

    +

    One line deployment of your site to gh-pages

    -
    +
    @@ -196,38 +190,38 @@

    Leer más…

    +

    Leer más…

    -

    IPython plugin for Nikola updated

    +

    IPython plugin for Nikola updated

    -

    Teasers with the IPython notebook plugin

    +

    Teasers with the IPython notebook plugin

    -
    +
    @@ -274,54 +267,53 @@

    You know that Nikola support TEASERS... if not, you can read more about that here: teasers_info.

    In a few words, if you don't want to show the complete content of your posts at the index page, but instead display only the beginning of them, you only need to add a "magical comment" in a markdown cell:

    -

    Leer más…

    +

    Leer más…

    -

    SciPyCon Argentina 2013

    +

    SciPyCon Argentina 2013

    -

    Reveal converter mini-tutorial

    +

    Reveal converter mini-tutorial

    @@ -405,9 +396,8 @@

    Reveal con
    -

    Alert! This post is outdated, please goto ;-) this link to get updated information.

    +

    Alert! This post is outdated, please goto ;-) this link to get updated information.

    -

    @@ -419,7 +409,6 @@

    Reveal con

    After some weeks of work and a lot of useful colaboration with the IPython team, we now have the reveal converter merged in nbconvert (a conversion utilities for the IPython notebook format).

    Currently nbconvert is being rewritten... but we also have a reveal converter in the new codebase, so you do not have problems if you begin to use it now, you will be able to use it tomorrow :-)

    I wrote a little tutorial (a reveal-based notebook slideshow, of course) about how to use reveal converter option inside nbconvert

    -

    @@ -428,7 +417,7 @@

    Reveal con

    @@ -436,24 +425,24 @@

    Reveal con

    -

    Blogging with Nikola and IPython

    +

    Blogging with Nikola and IPython

    @@ -466,9 +455,8 @@

    Blogging
    -

    Alert! This post is outdated, please goto ;-) this link to get updated information.

    +

    Alert! This post is outdated, please goto ;-) this link to get updated information.

    -

    @@ -478,7 +466,6 @@

    Blogging

    NOTE: Obviously, this post was written in the IPython notebook and was rendered by Nikola (helped by nbconvert).

    -

    @@ -488,7 +475,6 @@

    Blogging

    INGREDIENTS:

    -

    @@ -504,9 +490,9 @@

    Blogging

    @@ -516,7 +502,7 @@

    Blogging

    @@ -530,7 +516,7 @@

    Blogging -

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/index-3.html b/output/es/index-3.html index b78e22c7..d23f4cab 100644 --- a/output/es/index-3.html +++ b/output/es/index-3.html @@ -1,8 +1,5 @@ - + @@ -42,28 +39,28 @@

    -

    Hide the input cells from your IPython slides

    +

    Hide the input cells from your IPython slides

    @@ -75,123 +72,119 @@

    A tweet arrived...

    -

    -

    And my answer was YES...

    -

    How we can easily do it? Just follow these few steps: -

    -

    Leer más…

    +

    And my answer was YES...

    +

    How we can easily do it? Just follow these few steps:

    +

    Leer más…

    -

    A simple minimap for your nbconverted ipynb

    +

    A simple minimap for your nbconverted ipynb

    -
    +

    Some days ago, I presented a way to mimic the execution of nbconverted IPython notebooks (ipynb). Today, I will show you how to add a simple minimap to these static html documents.

    -

    But, what is a minimap? Do you know SublimeText or Ninja-IDE? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see... -

    -

    Leer más…

    +

    But, what is a minimap? Do you know SublimeText or Ninja-IDE? They are IDEs with a thin column to the right (of the main window) which provides an overview of the code we are working on... OK, you don't have an idea what am I talking about? Just go ahead and you will see...

    +

    Leer más…

    -

    Mimic the IPython notebook cell execution

    +

    Mimic the IPython notebook cell execution

    -
    +

    Yesterday, I was visiting the Jake VanderPlas's Scientific Python Course site because of some issues raised at the ipython-dev mailing list (and obviously, because Jake usually do amazing things).

    To build his site, Jake wrote an Hyde plugin to render ipynb files to static html files using the IPython.convert platform. You can see an example of the final rendered document here.

    -

    When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the IPython.nbconvert library ;-) -

    -

    Leer más…

    +

    When I saw the final document, I wondered if we could have hidden output cells which automatically get visible after a click over the input cell... and then, I made some experiments using the power of the IPython.nbconvert library ;-)

    +

    Leer más…

    -

    Nikola's Zen theme finally released

    +

    Nikola's Zen theme finally released

    @@ -202,7 +195,7 @@

    Nikola

    -

    Just a quick update... Some weeks ago I blogged about my new Nikola's theme family called Zen. In fact, you are seeing the zen-ipython theme powering my blog right now.

    +

    Just a quick update... Some weeks ago I blogged about my new Nikola's theme family called Zen. In fact, you are seeing the zen-ipython theme powering my blog right now.

    I have used them for several days without any remarkable issue, so I decided to release them at the Nikola's theme repository.

    There, you will see three Zen themes:

    +

    Leer más…

    -

    vIPer is now using IPython.nbconvert

    +

    vIPer is now using IPython.nbconvert

    -
    +

    As you know (if not, probably the following lines gives you an idea), vIPer was originally designed to export from ipynb files to:

      -
    • a plain static html
    • +
    • a plain static html
    • a slideshow powered by Landslide
    -

    With the last release, IPython support this kind of exportation using the well designed and easily extensible IPython.nbconvert library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats. -

    -

    Leer más…

    +

    With the last release, IPython support this kind of exportation using the well designed and easily extensible IPython.nbconvert library. Now, it is easier to incorporate the IPython machinery inside vIPer and support the exportation to several formats.

    +

    Leer más…

    -

    Change the IPython slides defaults with an IPython config file

    +

    Change the IPython slides defaults with an IPython config file

    -
    +

    Some people are asking me how to change the IPython slides's defaults. You can see the description of the request here. Essentially, he wants to change the default transition between the slides.

    To solve this question, we introduce the notion of IPython config files, which let us easily change things inside IPython.nbconvert (the library where the IPython slides lives) to achieve our desires, at least in the slideshow generation issue ;-)

    -

    First of all, you need to know some details: -

    -

    Leer más…

    +

    First of all, you need to know some details:

    +

    Leer más…

    -

    Using a local Reveal.js library with your IPython slides

    +

    Using a local Reveal.js library with your IPython slides

    -
    +

    IPython slides are powered by Reveal.js library, you probably already know that.

    But... you probably don't know that we use jsdelivr CDN to load all the necessary js and css files. As a consequence, you don't need to download Reveal.js, but also, the speaker notes are not working by default.

    -

    But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)? -

    -

    Leer más…

    +

    But... what happens, if you have low connectivity in the place where you will be presenting your talk (or if you want to use the speaker notes feature)?

    +

    Leer más…

    -

    Different ways to lead an open source project

    +

    Different ways to lead an open source project

    -
    +

    Just a few lines, to trigger the discussion... to describe my point, I will pick two projects I have contributed (and I want to contribute even more): IPython and Nikola.

    -

    Some months ago, Brian Granger, a core developer from the IPython project gave a talk at SciPy 2013 where he said: -

    -

    Leer más…

    +

    Some months ago, Brian Granger, a core developer from the IPython project gave a talk at SciPy 2013 where he said:

    +

    Leer más…

    -

    A new Nikola's theme for my site: Zen

    +

    A new Nikola's theme for my site: Zen

    -
    +
    -

    Some days ago, Aru Sahni wrote to Nikola's forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme. -

    -

    Leer más…

    +

    Some days ago, Aru Sahni wrote to Nikola's forum and posted a link to his site... I really like the theme he was using so I though to take it as a starting point to develop my own theme.

    +

    Leer más…

    -

    Customizing your IPython slides

    +

    Customizing your IPython slides

    - @@ -468,7 +455,7 @@

    Customizi -

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/index-4.html b/output/es/index-4.html index e444a3a5..4c3daac9 100644 --- a/output/es/index-4.html +++ b/output/es/index-4.html @@ -1,8 +1,5 @@ - + @@ -42,25 +39,25 @@

    -

    Slideviewer: a simple way to share your IPython slides

    +

    Slideviewer: a simple way to share your IPython slides

    -

    My IPython-powered semi-automatic git workflow

    +

    My IPython-powered semi-automatic git workflow

    -
    +
    @@ -113,37 +109,36 @@

    Leer más…

    +And it is a semi-automatic one, using the IPython notebooks (ipynbs) as a sort of templates, transforming them into a new conceptual entity: the ipytmpl (and yes, I love to invent names too!).

    +

    Leer más…

    -

    Deploy your Nikola-powered blog content from the IPython notebook

    +

    Deploy your Nikola-powered blog content from the IPython notebook

    @@ -154,34 +149,33 @@

    -

    Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful IPython notebook extension for people blogging with Nikola: the nikola_deploy extension. -

    -

    Leer más…

    +

    Following the idea to release all the extensions I had working on in the last few weeks/months, today I will release an old but very useful IPython notebook extension for people blogging with Nikola: the nikola_deploy extension.

    +

    Leer más…

    -

    A 'poor man' spell checker for the IPython notebook

    +

    A 'poor man' spell checker for the IPython notebook

    -

    Tweet me... said an IPython notebook cell and I did it

    +

    Tweet me... said an IPython notebook cell and I did it

    @@ -232,110 +225,107 @@

    -

    Don't write scripts, just write ipyscripts!

    +

    Don't write scripts, just write ipyscripts!

    -
    +

    I usually have some repetitive tasks in my daily work-flow. You probably have some of those too. To save some minutes from your day, you probably write little scripts to do these jobs.

    I used to do that... but now I am only writing little IPython notebooks to do these simple jobs, I call them ipyscripts (yes, I won a prize for originality, he he!).

    -

    These ipyscripts are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way... -

    -

    Leer más…

    +

    These ipyscripts are IPython-powered, so we can use all the IPython's machinery to do complex things in a simple way...

    +

    Leer más…

    -

    PyConAr 2013

    +

    PyConAr 2013

    -
    +

    Note: Post only in spanish (but also interesting!)

    Hace un par de semanas, terminando el mes de Octubre, se llevó a cabo en la ciudad de Rosario, la 5° Conferencia Anual de Python Argentina - PyConAr 2013.

    -

    En esta oportunidad, presenté dos charlas: -

    -

    Leer más…

    +

    En esta oportunidad, presenté dos charlas:

    +

    Leer más…

    -

    Trading logbook update: 22-Nov-2013

    +

    Trading logbook update: 22-Nov-2013

    -

    Live trading logbook

    +

    Live trading logbook

    -

    Bidirectional IPython-Nikola workflow to write your blog post

    +

    Bidirectional IPython-Nikola workflow to write your blog post

    @@ -446,7 +433,7 @@

    -

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/index-5.html b/output/es/index-5.html index 2cc7bb29..74d5aad3 100644 --- a/output/es/index-5.html +++ b/output/es/index-5.html @@ -1,8 +1,5 @@ - + @@ -42,24 +39,24 @@

    -

    We are above 1000 stars!

    +

    We are above 1000 stars!

    -

    Trading logbook update 3

    +

    Trading logbook update 3

    -

    RISE meets JupyterLab

    +

    RISE meets JupyterLab

    @@ -149,38 +145,37 @@

    RISE meets JupyterL

    JupyterLab is the future for the notebook/authoring experience.

    And people started to ask me if we will have RISE on JupyterLab

    -

    Do you want to know the answer? -

    -

    Leer más…

    +

    Do you want to know the answer?

    +

    Leer más…

    -

    RISE 5.0.0 is out!

    +

    RISE 5.0.0 is out!

    @@ -193,38 +188,37 @@

    RISE 5.0.0 is out!

    We're pleased to announce the release of RISE 5.0.0!

    RISE let's you show yout Jupyter notebook rendered as an executable Reveal.js-based slideshow. It is your very same notebook but in a slidy way!

    -

    How you can get it? -

    -

    Leer más…

    +

    How you can get it?

    +

    Leer más…

    -

    RISE 4.0.0b1 is available, please test it!

    +

    RISE 4.0.0b1 is available, please test it!

    -

    How to pin Conda

    +

    How to pin Conda

    @@ -273,35 +266,34 @@

    How to pin Conda

    One interesting advance feature in Conda is the capacity to pin packages from your environments so they can not be updated at all. If you are interested in that specific version of some package and not the next one because it breaks your work completely or for some other reason, you are probably pinning that package. If you are adding the specific version in every command you run instead of pinning the package, you are doing it wrong and you should keep reading ;-)

    -

    But, is it possible to pin Conda itself so it does not get updated every time you try to install/update something else? -

    -

    Leer más…

    +

    But, is it possible to pin Conda itself so it does not get updated every time you try to install/update something else?

    +

    Leer más…

    -

    Coming back

    +

    Coming back

    @@ -313,109 +305,108 @@

    Coming back

    OK... two years since my last post... exactly. Time goes fast, really fast! And a lot of things happened in the last two years.

    -

    Leer más…

    +

    Leer más…

    -

    Zen themes updated

    +

    Zen themes updated

    -
    +

    OK, time to recap some things... As you know, Nikola 7.0.0 was released some weeks ago. It has a lot of improvements, bug fixes and new features. I recommend you to download and try it! -As part of the release, we paid attention to update all the plugins and themes inside the Nikola Github organization (don't forget you can contribute with your own plugins and themes!). So, I updated my own themes, in particular, the Zen ones. -

    -

    Leer más…

    +As part of the release, we paid attention to update all the plugins and themes inside the Nikola Github organization (don't forget you can contribute with your own plugins and themes!). So, I updated my own themes, in particular, the Zen ones.

    +

    Leer más…

    -

    48 themes for your IPython notebook

    +

    48 themes for your IPython notebook

    -
    +

    OK, a short post to give you some material to play with over the weekend ;-).

    Today, I woke up early and whereas I was drinking a mate (a native drink here in Argentina) for breakfast, I remember a tweet from Nikhil Sonnad where I was mentioned:

    -

    Leer más…

    +

    Leer más…

    -

    Loader and Writer, IPython nbextensions to easily edit your text.

    +

    Loader and Writer, IPython nbextensions to easily edit your text.

    @@ -426,9 +417,8 @@

    -

    Coming back to the nice practice of release my own IPython nbextensions, today I will release two extensions I use a lot in my daily workflow: loader and writer, useful extensions to load files into the IPython notebook and to write the content to the same (or another) file. -

    -

    Leer más…

    +

    Coming back to the nice practice of release my own IPython nbextensions, today I will release two extensions I use a lot in my daily workflow: loader and writer, useful extensions to load files into the IPython notebook and to write the content to the same (or another) file.

    +

    Leer más…

    @@ -441,7 +431,7 @@

    -

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/index-6.html b/output/es/index-6.html index 7a70363c..a3b94ebf 100644 --- a/output/es/index-6.html +++ b/output/es/index-6.html @@ -1,8 +1,5 @@ - + @@ -42,29 +39,29 @@

    -

    RISE 5.3.0 is out!

    +

    RISE 5.3.0 is out!

    @@ -76,34 +73,33 @@

    RISE 5.3.0 is out!

    We're pleased to announce the release of RISE 5.3.0!

    -

    RISE lets you show your Jupyter notebook rendered as an executable Reveal.js-based slideshow. It is your very same notebook but in a slidy way! -

    -

    Leer más…

    +

    RISE lets you show your Jupyter notebook rendered as an executable Reveal.js-based slideshow. It is your very same notebook but in a slidy way!

    +

    Leer más…

    -

    Some thoughts about the 2017 ACM Software System Award for Project Jupyter

    +

    Some thoughts about the 2017 ACM Software System Award for Project Jupyter

    @@ -116,38 +112,37 @@

    I am very happy to inform you that Project Jupyter has been awarded the 2017 ACM Software System Award!

    As part of the Jupyter Steering Council, I am one of the official recipients of the award, but I wanted to highlight that I am just one member of a large group of people (contributors and users) working together to push the Project Jupyter forward and beyond its limits.

    -

    Project Jupyter is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that Project Jupyter filled that space and allowed me to achieve that goal more than I could imagine. -

    -

    Leer más…

    +

    Project Jupyter is an essential part of my life. It gave me the opportunity to work with amazing people, to learn a lot of new things, to help other people. Some years ago, I left academia for several reasons, but one of the most important ones was to find an opportunity to make a substantial impact on people’s lives. I wanted to be involved in something that could empower people to do amazing things. And I certainly believe that Project Jupyter filled that space and allowed me to achieve that goal more than I could imagine.

    +

    Leer más…

    -

    RISE 5.2.0 is out!

    +

    RISE 5.2.0 is out!

    @@ -159,35 +154,34 @@

    RISE 5.2.0 is out!

    We're pleased to announce the release of RISE 5.2.0!

    -

    RISE let's you show yout Jupyter notebook rendered as an executable Reveal.js-based slideshow. It is your very same notebook but in a slidy way! -

    -

    Leer más…

    +

    RISE let's you show yout Jupyter notebook rendered as an executable Reveal.js-based slideshow. It is your very same notebook but in a slidy way!

    +

    Leer más…

    -

    Binder + Nikola + Jupyter + Github = Blogging resourceless

    +

    Binder + Nikola + Jupyter + Github = Blogging resourceless

    @@ -204,38 +198,37 @@

    Leer más…

    +

    Don't you believe me? Just read this post and I will show you how you can make this possible... and fun!

    +

    Leer más…

    -

    RISE 5.1.0 is out!

    +

    RISE 5.1.0 is out!

    @@ -248,9 +241,8 @@

    RISE 5.1.0 is out!

    We're pleased to announce the release of RISE 5.1.0!

    RISE allows you show your Jupyter notebooks rendered as an executable Reveal.js-based slideshow. It is your very same notebook but presented in a slidy way!

    -

    What are the new goodies for this release? -

    -

    Leer más…

    +

    What are the new goodies for this release?

    +

    Leer más…

    @@ -258,12 +250,12 @@

    RISE 5.1.0 is out!

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/index.html b/output/es/index.html index a1a8ce9a..07365a0b 100644 --- a/output/es/index.html +++ b/output/es/index.html @@ -1,8 +1,5 @@ - + @@ -11,7 +8,7 @@ - +

    Contents © 2021 Damian Avila - +

    Contents © 2024 Damian Avila - Powered by Nikola - Zen theme based in Arusahni's website-template
    Creative Commons License BY-NC-SA

    diff --git a/output/es/posts/48-themes-for-your-ipython-notebook.html b/output/es/posts/48-themes-for-your-ipython-notebook.html deleted file mode 100644 index 6b8bf398..00000000 --- a/output/es/posts/48-themes-for-your-ipython-notebook.html +++ /dev/null @@ -1,620 +0,0 @@ - - - - - -48 themes for your IPython notebook | El blog de Damian - - - - - - - - - - - - - - - - - - - -
    -
    -

    48 themes for your IPython notebook

    - -
    -
    - - English - -   |   - Código fuente -   |   - Minimap - -
    -
    - -
    - -
    -
    -
    -
    -
    -
    -
    -
    -

    OK, a short post to give you some material to play with over the weekend ;-).

    -

    Today, I woke up early and whereas I was drinking a mate (a native drink here in Argentina) for breakfast, I remember a tweet from Nikhil Sonnad where I was mentioned:

    - - -

    - -

    Essentially, he made available 48 IPython notebook themes based in the base16 color scheme generator. Thanks Nikhil for your work!!!

    -

    Well, I want to try them all and quickly, so I wrote some little code to do it:

    -

    First, some imports...

    - -
    -
    -
    -
    -
    -
    In [1]:
    -
    -
    -
    import os
    -import subprocess
    -import urllib
    -
    - - -   Click me to hide the output -
    -
    -
    - -
    -
    -
    -
    -
    -
    -

    Second, make a list with all the theme names...

    - -
    -
    -
    -
    -
    -
    In [2]:
    -
    -
    -
    theme_names = ['3024-dark',
    -               '3024-light',
    -               'atelierdune-dark',
    -               'atelierdune-light',
    -               'atelierforest-dark',
    -               'atelierforest-light',
    -               'atelierheath-dark',
    -               'atelierheath-light',
    -               'atelierlakeside-dark',
    -               'atelierlakeside-light',
    -               'atelierseaside-dark',
    -               'atelierseaside-light',
    -               'bespin-dark',
    -               'bespin-light',
    -               'chalk-dark',
    -               'chalk-light',
    -               'default-dark',
    -               'default-light',
    -               'eighties-dark',
    -               'eighties-light',
    -               'grayscale-dark',
    -               'grayscale-light',
    -               'greenscreen-dark',
    -               'greenscreen-light',
    -               'isotope-dark',
    -               'isotope-light',
    -               'londontube-dark',
    -               'londontube-light',
    -               'marrakesh-dark',
    -               'marrakesh-light',
    -               'mocha-dark',
    -               'mocha-light',
    -               'monokai-dark',
    -               'monokai-light',
    -               'ocean-dark',
    -               'ocean-light',
    -               'paraiso-dark',
    -               'paraiso-light',
    -               'railscasts-dark',
    -               'railscasts-light',
    -               'shapeshifter-dark',
    -               'shapeshifter-light',
    -               'solarized-dark',
    -               'solarized-light',
    -               'tomorrow-dark',
    -               'tomorrow-light',
    -               'twilight-dark',
    -               'twilight-light']
    -
    - - -   Click me to hide the output -
    -
    -
    - -
    -
    -
    -
    -
    -
    -

    The themes are css files, so we can create a new profile for each theme and add the css content to the custom.css file inside each profile. -To do it, I use some little magic tricks from IPython...

    - -
    -
    -
    -
    -
    -
    In [3]:
    -
    -
    -
    for i in theme_names:
    -    !ipython profile create $i
    -    profile_dir = !ipython locate profile $i
    -    url = "https://raw.githubusercontent.com/nsonnad/base16-ipython-notebook/master/base16-" + i + ".css"
    -    tgt = os.path.join(profile_dir[0], 'static', 'custom', "custom.css")
    -    urllib.urlretrieve (url, tgt)
    -
    - - -   Click me to hide the output -
    -
    -
    - -
    -
    - -
    -
    - - -
    - -
    - - -
    -
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_nbconvert_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_notebook_config.py'
    -[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_nbconvert_config.py'
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -

    Now, I want to try it... quickly... so I launch a new IPython server for each profile in specific ports. I also pass the --no-browser option to avoid opening 48 tabs in a row (depending of your computing power this can be problematic).

    - -
    -
    -
    -
    -
    -
    In [4]:
    -
    -
    -
    for i, name in enumerate(theme_names):
    -    port = str(9000 + i) 
    -    subprocess.Popen(["ipython", "notebook", "--profile=" + name, "--port=" + port, "--no-browser"])
    -
    - - -   Click me to hide the output -
    -
    -
    - -
    -
    -
    -
    -
    -
    -

    Finally, because I am lazy ;-), I build the urls to see this same notebook with each different theme (don't forget to use the incognito mode of your browser to avoid css caching and at least IPython 2.0).

    - -
    -
    -
    -
    -
    -
    In [5]:
    -
    -
    -
    base_url = "http://127.0.0.1:"
    -notebook = "/notebooks/48-themes-for-your-ipython-notebook.ipynb"
    -
    -for i, name in enumerate(theme_names):
    -    port = str(9000 + i) 
    -    url = base_url + port + notebook
    -    print url, name
    -
    - - -   Click me to hide the output -
    -
    -
    - -
    -
    - -
    -
    - - -
    - -
    - - -
    -
    http://127.0.0.1:9000/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-dark
    -http://127.0.0.1:9001/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-light
    -http://127.0.0.1:9002/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierdune-dark
    -http://127.0.0.1:9003/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierdune-light
    -http://127.0.0.1:9004/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierforest-dark
    -http://127.0.0.1:9005/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierforest-light
    -http://127.0.0.1:9006/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierheath-dark
    -http://127.0.0.1:9007/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierheath-light
    -http://127.0.0.1:9008/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierlakeside-dark
    -http://127.0.0.1:9009/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierlakeside-light
    -http://127.0.0.1:9010/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierseaside-dark
    -http://127.0.0.1:9011/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierseaside-light
    -http://127.0.0.1:9012/notebooks/48-themes-for-your-ipython-notebook.ipynb bespin-dark
    -http://127.0.0.1:9013/notebooks/48-themes-for-your-ipython-notebook.ipynb bespin-light
    -http://127.0.0.1:9014/notebooks/48-themes-for-your-ipython-notebook.ipynb chalk-dark
    -http://127.0.0.1:9015/notebooks/48-themes-for-your-ipython-notebook.ipynb chalk-light
    -http://127.0.0.1:9016/notebooks/48-themes-for-your-ipython-notebook.ipynb default-dark
    -http://127.0.0.1:9017/notebooks/48-themes-for-your-ipython-notebook.ipynb default-light
    -http://127.0.0.1:9018/notebooks/48-themes-for-your-ipython-notebook.ipynb eighties-dark
    -http://127.0.0.1:9019/notebooks/48-themes-for-your-ipython-notebook.ipynb eighties-light
    -http://127.0.0.1:9020/notebooks/48-themes-for-your-ipython-notebook.ipynb grayscale-dark
    -http://127.0.0.1:9021/notebooks/48-themes-for-your-ipython-notebook.ipynb grayscale-light
    -http://127.0.0.1:9022/notebooks/48-themes-for-your-ipython-notebook.ipynb greenscreen-dark
    -http://127.0.0.1:9023/notebooks/48-themes-for-your-ipython-notebook.ipynb greenscreen-light
    -http://127.0.0.1:9024/notebooks/48-themes-for-your-ipython-notebook.ipynb isotope-dark
    -http://127.0.0.1:9025/notebooks/48-themes-for-your-ipython-notebook.ipynb isotope-light
    -http://127.0.0.1:9026/notebooks/48-themes-for-your-ipython-notebook.ipynb londontube-dark
    -http://127.0.0.1:9027/notebooks/48-themes-for-your-ipython-notebook.ipynb londontube-light
    -http://127.0.0.1:9028/notebooks/48-themes-for-your-ipython-notebook.ipynb marrakesh-dark
    -http://127.0.0.1:9029/notebooks/48-themes-for-your-ipython-notebook.ipynb marrakesh-light
    -http://127.0.0.1:9030/notebooks/48-themes-for-your-ipython-notebook.ipynb mocha-dark
    -http://127.0.0.1:9031/notebooks/48-themes-for-your-ipython-notebook.ipynb mocha-light
    -http://127.0.0.1:9032/notebooks/48-themes-for-your-ipython-notebook.ipynb monokai-dark
    -http://127.0.0.1:9033/notebooks/48-themes-for-your-ipython-notebook.ipynb monokai-light
    -http://127.0.0.1:9034/notebooks/48-themes-for-your-ipython-notebook.ipynb ocean-dark
    -http://127.0.0.1:9035/notebooks/48-themes-for-your-ipython-notebook.ipynb ocean-light
    -http://127.0.0.1:9036/notebooks/48-themes-for-your-ipython-notebook.ipynb paraiso-dark
    -http://127.0.0.1:9037/notebooks/48-themes-for-your-ipython-notebook.ipynb paraiso-light
    -http://127.0.0.1:9038/notebooks/48-themes-for-your-ipython-notebook.ipynb railscasts-dark
    -http://127.0.0.1:9039/notebooks/48-themes-for-your-ipython-notebook.ipynb railscasts-light
    -http://127.0.0.1:9040/notebooks/48-themes-for-your-ipython-notebook.ipynb shapeshifter-dark
    -http://127.0.0.1:9041/notebooks/48-themes-for-your-ipython-notebook.ipynb shapeshifter-light
    -http://127.0.0.1:9042/notebooks/48-themes-for-your-ipython-notebook.ipynb solarized-dark
    -http://127.0.0.1:9043/notebooks/48-themes-for-your-ipython-notebook.ipynb solarized-light
    -http://127.0.0.1:9044/notebooks/48-themes-for-your-ipython-notebook.ipynb tomorrow-dark
    -http://127.0.0.1:9045/notebooks/48-themes-for-your-ipython-notebook.ipynb tomorrow-light
    -http://127.0.0.1:9046/notebooks/48-themes-for-your-ipython-notebook.ipynb twilight-dark
    -http://127.0.0.1:9047/notebooks/48-themes-for-your-ipython-notebook.ipynb twilight-light
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -

    Easy and quick, don't you think?

    -

    OK, a lot of IPython servers opened, let's kill them all!!! I feel like George R. R. Martin ;-).

    - -
    -
    -
    -
    -
    -
    In [ ]:
    -
    -
    -
    !killall -9 ipython
    -
    - - -   Click me to hide the output -
    -
    -
    - -
    -
    -
    -
    -
    -
    -

    Obviously, this command also killed the current notebook (remember, this post is in fact an IPython notebook, and you can get it from the source link at the top of the post)... but I am right with that... this is the end of this post.

    -

    Final note: I did not like any complete theme, but I really like some part from several themes, so it worths to see them to take each nice part and make my own theme in the future.

    -

    Good weekend!

    -

    Damián

    - -
    -
    -
    -
    -
    -

    Did you like the content? Great!

    -

    Or visit my support page for more information.

    -

    Btw, don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link - at the top of the post if you want to play with it ;-)

    - -
    - - Comments powered by Disqus - - - -
    - -
    -
    - - diff --git a/output/es/posts/48-themes-for-your-ipython-notebook/index.html b/output/es/posts/48-themes-for-your-ipython-notebook/index.html new file mode 100644 index 00000000..b0b2ed33 --- /dev/null +++ b/output/es/posts/48-themes-for-your-ipython-notebook/index.html @@ -0,0 +1,1192 @@ + + + + + +48 themes for your IPython notebook | El blog de Damian + + + + + + + + + + + + + + + + + + + +
    +
    +

    48 themes for your IPython notebook

    + +
    +
    + + English + +   |   + Código fuente +   |   + Minimap + +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +

    OK, a short post to give you some material to play with over the weekend ;-).

    +

    Today, I woke up early and whereas I was drinking a mate (a native drink here in Argentina) for breakfast, I remember a tweet from Nikhil Sonnad where I was mentioned:

    + + +

    Essentially, he made available 48 IPython notebook themes based in the base16 color scheme generator. Thanks Nikhil for your work!!!

    +

    Well, I want to try them all and quickly, so I wrote some little code to do it:

    +

    First, some imports...

    +
    +
    +
    +
    +
    +
    In [1]:
    +
    +
    +
    import os
    +import subprocess
    +import urllib
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Second, make a list with all the theme names...

    +
    +
    +
    +
    +
    +
    In [2]:
    +
    +
    +
    theme_names = ['3024-dark',
    +               '3024-light',
    +               'atelierdune-dark',
    +               'atelierdune-light',
    +               'atelierforest-dark',
    +               'atelierforest-light',
    +               'atelierheath-dark',
    +               'atelierheath-light',
    +               'atelierlakeside-dark',
    +               'atelierlakeside-light',
    +               'atelierseaside-dark',
    +               'atelierseaside-light',
    +               'bespin-dark',
    +               'bespin-light',
    +               'chalk-dark',
    +               'chalk-light',
    +               'default-dark',
    +               'default-light',
    +               'eighties-dark',
    +               'eighties-light',
    +               'grayscale-dark',
    +               'grayscale-light',
    +               'greenscreen-dark',
    +               'greenscreen-light',
    +               'isotope-dark',
    +               'isotope-light',
    +               'londontube-dark',
    +               'londontube-light',
    +               'marrakesh-dark',
    +               'marrakesh-light',
    +               'mocha-dark',
    +               'mocha-light',
    +               'monokai-dark',
    +               'monokai-light',
    +               'ocean-dark',
    +               'ocean-light',
    +               'paraiso-dark',
    +               'paraiso-light',
    +               'railscasts-dark',
    +               'railscasts-light',
    +               'shapeshifter-dark',
    +               'shapeshifter-light',
    +               'solarized-dark',
    +               'solarized-light',
    +               'tomorrow-dark',
    +               'tomorrow-light',
    +               'twilight-dark',
    +               'twilight-light']
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    The themes are css files, so we can create a new profile for each theme and add the css content to the custom.css file inside each profile. +To do it, I use some little magic tricks from IPython...

    +
    +
    +
    +
    +
    +
    In [3]:
    +
    +
    +
    for i in theme_names:
    +    !ipython profile create $i
    +    profile_dir = !ipython locate profile $i
    +    url = "https://raw.githubusercontent.com/nsonnad/base16-ipython-notebook/master/base16-" + i + ".css"
    +    tgt = os.path.join(profile_dir[0], 'static', 'custom', "custom.css")
    +    urllib.urlretrieve (url, tgt)
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_3024-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_notebook_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierdune-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierforest-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_notebook_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierheath-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_notebook_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierlakeside-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_atelierseaside-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_bespin-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_chalk-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_default-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_eighties-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_grayscale-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_greenscreen-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_isotope-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_londontube-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_marrakesh-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_mocha-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_monokai-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_notebook_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_ocean-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_paraiso-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_railscasts-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_shapeshifter-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_solarized-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_tomorrow-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-dark/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_config.py'
    +[ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_notebook_config.py'
    +
    +
    +
    +
    +
    +
    +
    [ProfileCreate] Generating default config file: u'/home/damian/.ipython/profile_twilight-light/ipython_nbconvert_config.py'
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Now, I want to try it... quickly... so I launch a new IPython server for each profile in specific ports. I also pass the --no-browser option to avoid opening 48 tabs in a row (depending of your computing power this can be problematic).

    +
    +
    +
    +
    +
    +
    In [4]:
    +
    +
    +
    for i, name in enumerate(theme_names):
    +    port = str(9000 + i) 
    +    subprocess.Popen(["ipython", "notebook", "--profile=" + name, "--port=" + port, "--no-browser"])
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Finally, because I am lazy ;-), I build the urls to see this same notebook with each different theme (don't forget to use the incognito mode of your browser to avoid css caching and at least IPython 2.0).

    +
    +
    +
    +
    +
    +
    In [5]:
    +
    +
    +
    base_url = "http://127.0.0.1:"
    +notebook = "/notebooks/48-themes-for-your-ipython-notebook.ipynb"
    +
    +for i, name in enumerate(theme_names):
    +    port = str(9000 + i) 
    +    url = base_url + port + notebook
    +    print url, name
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    http://127.0.0.1:9000/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-dark
    +http://127.0.0.1:9001/notebooks/48-themes-for-your-ipython-notebook.ipynb 3024-light
    +http://127.0.0.1:9002/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierdune-dark
    +http://127.0.0.1:9003/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierdune-light
    +http://127.0.0.1:9004/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierforest-dark
    +http://127.0.0.1:9005/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierforest-light
    +http://127.0.0.1:9006/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierheath-dark
    +http://127.0.0.1:9007/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierheath-light
    +http://127.0.0.1:9008/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierlakeside-dark
    +http://127.0.0.1:9009/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierlakeside-light
    +http://127.0.0.1:9010/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierseaside-dark
    +http://127.0.0.1:9011/notebooks/48-themes-for-your-ipython-notebook.ipynb atelierseaside-light
    +http://127.0.0.1:9012/notebooks/48-themes-for-your-ipython-notebook.ipynb bespin-dark
    +http://127.0.0.1:9013/notebooks/48-themes-for-your-ipython-notebook.ipynb bespin-light
    +http://127.0.0.1:9014/notebooks/48-themes-for-your-ipython-notebook.ipynb chalk-dark
    +http://127.0.0.1:9015/notebooks/48-themes-for-your-ipython-notebook.ipynb chalk-light
    +http://127.0.0.1:9016/notebooks/48-themes-for-your-ipython-notebook.ipynb default-dark
    +http://127.0.0.1:9017/notebooks/48-themes-for-your-ipython-notebook.ipynb default-light
    +http://127.0.0.1:9018/notebooks/48-themes-for-your-ipython-notebook.ipynb eighties-dark
    +http://127.0.0.1:9019/notebooks/48-themes-for-your-ipython-notebook.ipynb eighties-light
    +http://127.0.0.1:9020/notebooks/48-themes-for-your-ipython-notebook.ipynb grayscale-dark
    +http://127.0.0.1:9021/notebooks/48-themes-for-your-ipython-notebook.ipynb grayscale-light
    +http://127.0.0.1:9022/notebooks/48-themes-for-your-ipython-notebook.ipynb greenscreen-dark
    +http://127.0.0.1:9023/notebooks/48-themes-for-your-ipython-notebook.ipynb greenscreen-light
    +http://127.0.0.1:9024/notebooks/48-themes-for-your-ipython-notebook.ipynb isotope-dark
    +http://127.0.0.1:9025/notebooks/48-themes-for-your-ipython-notebook.ipynb isotope-light
    +http://127.0.0.1:9026/notebooks/48-themes-for-your-ipython-notebook.ipynb londontube-dark
    +http://127.0.0.1:9027/notebooks/48-themes-for-your-ipython-notebook.ipynb londontube-light
    +http://127.0.0.1:9028/notebooks/48-themes-for-your-ipython-notebook.ipynb marrakesh-dark
    +http://127.0.0.1:9029/notebooks/48-themes-for-your-ipython-notebook.ipynb marrakesh-light
    +http://127.0.0.1:9030/notebooks/48-themes-for-your-ipython-notebook.ipynb mocha-dark
    +http://127.0.0.1:9031/notebooks/48-themes-for-your-ipython-notebook.ipynb mocha-light
    +http://127.0.0.1:9032/notebooks/48-themes-for-your-ipython-notebook.ipynb monokai-dark
    +http://127.0.0.1:9033/notebooks/48-themes-for-your-ipython-notebook.ipynb monokai-light
    +http://127.0.0.1:9034/notebooks/48-themes-for-your-ipython-notebook.ipynb ocean-dark
    +http://127.0.0.1:9035/notebooks/48-themes-for-your-ipython-notebook.ipynb ocean-light
    +http://127.0.0.1:9036/notebooks/48-themes-for-your-ipython-notebook.ipynb paraiso-dark
    +http://127.0.0.1:9037/notebooks/48-themes-for-your-ipython-notebook.ipynb paraiso-light
    +http://127.0.0.1:9038/notebooks/48-themes-for-your-ipython-notebook.ipynb railscasts-dark
    +http://127.0.0.1:9039/notebooks/48-themes-for-your-ipython-notebook.ipynb railscasts-light
    +http://127.0.0.1:9040/notebooks/48-themes-for-your-ipython-notebook.ipynb shapeshifter-dark
    +http://127.0.0.1:9041/notebooks/48-themes-for-your-ipython-notebook.ipynb shapeshifter-light
    +http://127.0.0.1:9042/notebooks/48-themes-for-your-ipython-notebook.ipynb solarized-dark
    +http://127.0.0.1:9043/notebooks/48-themes-for-your-ipython-notebook.ipynb solarized-light
    +http://127.0.0.1:9044/notebooks/48-themes-for-your-ipython-notebook.ipynb tomorrow-dark
    +http://127.0.0.1:9045/notebooks/48-themes-for-your-ipython-notebook.ipynb tomorrow-light
    +http://127.0.0.1:9046/notebooks/48-themes-for-your-ipython-notebook.ipynb twilight-dark
    +http://127.0.0.1:9047/notebooks/48-themes-for-your-ipython-notebook.ipynb twilight-light
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Easy and quick, don't you think?

    +

    OK, a lot of IPython servers opened, let's kill them all!!! I feel like George R. R. Martin ;-).

    +
    +
    +
    +
    +
    +
    In [ ]:
    +
    +
    +
    !killall -9 ipython
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Obviously, this command also killed the current notebook (remember, this post is in fact an IPython notebook, and you can get it from the source link at the top of the post)... but I am right with that... this is the end of this post.

    +

    Final note: I did not like any complete theme, but I really like some part from several themes, so it worths to see them to take each nice part and make my own theme in the future.

    +

    Good weekend!

    +

    Damián

    +
    +
    +
    +
    +

    Did you like the content? Great!

    +

    Or visit my support page for more information.

    +

    Btw, don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link + at the top of the post if you want to play with it ;-)

    + +
    + + Comments powered by Disqus + + + +
    + +
    +
    + + diff --git a/output/es/posts/48-themes-for-your-ipython-notebook.ipynb b/output/es/posts/48-themes-for-your-ipython-notebook/index.ipynb similarity index 100% rename from output/es/posts/48-themes-for-your-ipython-notebook.ipynb rename to output/es/posts/48-themes-for-your-ipython-notebook/index.ipynb diff --git a/output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html b/output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html similarity index 82% rename from output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html rename to output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html index 671d9b88..c869ff53 100644 --- a/output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola.html +++ b/output/es/posts/a-deep-dive-into-myst-part-1-the-myst-parser-python-api-usage-in-nikola/index.html @@ -1,16 +1,13 @@ - + A deep dive into MyST, Part 1: The MyST-Parser Python API usage in Nikola | El blog de Damian - - - - + + + + - + - +

    -

    Current limitations (there is always a but...) +

    Current limitations (there is always a but...)

    One of the key concepts in the MyST (and rST) world is the support for roles and directives. People using rST would be tempted to use MyST and the MyST plugin for Nikola if they have support for the main pieces they use on a daily basis to save them some time.

    So, what happens when you try to use the MyST Python API to render a simple directive:

    -
    @@ -159,76 +151,48 @@

    Current limitations (the
    In [1]:
    -
    -
    from myst_parser.main import to_html
    +
    +
    from myst_parser.main import to_html
     
    - - -   Click me to hide the output -
    - +
    In [2]:
    -
    -
    text = """
    +
    +
    text = """
     ```{admonition} This is my admonition
     This is my note
     ```
     """
     
    - - -   Click me to hide the output -
    - +
    In [3]:
    -
    -
    to_html(text)
    +
    +
    to_html(text)
     
    - - -   Click me to hide the output -
    - -
    -
    - +
    - -
    - -
    Out[3]:
    - - - - +
    Out[3]:
    '<pre><code class="language-{admonition}">This is my note\n</code></pre>\n'
    - -
    -
    - -
    -
    @@ -243,11 +207,12 @@

    Current limitations (the

    I don't know if it's intended to behave this way.

    + +

    Heya, yes it is; you have to use sphinx to fully parse to HTML

    That surprised me, as I assumed that roles and directives would be supported by the Python API, but I learnt things are a little bit more complex than that!

    -

    @@ -256,7 +221,7 @@

    Current limitations (the

    -

    Understanding the limitations (fun/not fun dive, actually fun...) +

    Understanding the limitations (fun/not fun dive, actually fun...)

    I started digging into the codebase and some MyST documentation.

    If you look at the to_html function I showed before:

    @@ -269,7 +234,7 @@

    Under

    We have a default_parser rendering stuff (we will talk about that "stuff" later). Let's now get into the some pieces of the default parser implementation:

    def default_parser(config: MdParserConfig) -> MarkdownIt:
    -    """Return the default parser configuration for MyST"""
    +    """Return the default parser configuration for MyST"""
         renderer_cls: Callable[[MarkdownIt], RendererProtocol]
     
         if config.renderer == "sphinx":
    @@ -316,7 +281,6 @@ 

    Under through the Docutils/Sphinx path (those concepts are core-supported in the Docutils/Sphinx ecosystem) and those unsupported when you use the MyST Python API which does not understand how to parse nor render these concepts as we've previously shown.

    -

    @@ -325,7 +289,7 @@

    Under

    -

    Overcome the limitations (don't worry I will stop here... for now) +

    Overcome the limitations (don't worry I will stop here... for now)

    OK, this is long enough for now, the next post will deep dive a little bit more in the MyST-Parser and the markdown-it-py codebases in the context of potentially supporting @@ -333,7 +297,6 @@

    Over fundamental question for the MyST ecosystem. We will also introduce some exciting new projects from the Executable Books community that are closely related with these ideas.

    I hope you enjoyed the ride and I will see you soon with the second part!

    -

    @@ -343,28 +306,26 @@

    Over

    PS: Thanks Chris Holdgraf for your suggestions at the time to write this blog post!

    - -

    Did you like the content? Great!

    -

    Or visit my support page for more information.

    +

    Or visit my support page for more information.


    Btw, don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link at the top of the post if you want to play with it ;-)

    -