{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## 打开jupyter-ipython\n", "\n", "其实人家就叫jupyter了,后面咱可能就少提ipython了。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 打开命令行,让我们输入\n", "jupyter notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "当然,这个前提是你已经安装了jupyter并学会了基本使用,请看本系列的前两篇文章。\n", "\n", "- [jupyter巨好玩-简介与安装](http://www.cnblogs.com/howiewang/p/jupyter-install.html)\n", "- [jupyter巨好玩-常用设置](http://www.cnblogs.com/howiewang/p/ipython-config.html)\n", "\n", "ok,咱们继续!\n", "\n", "这时候应该已经自动打开一个网页了,右上角有个**new**点一下,出现下拉菜单,是你的python版本,点一下,就会新建一个网页,就可以开始玩了!\n", "如下图所示:\n", "\n", "\n", "第一行是jupyter xxxxxxxx一堆东西,有个**Untitled**看见没?\n", "如下图所示:\n", "\n", "点一下,是可以编辑的,改成你想要的名字,比如我们正在写的这篇:\n", "如下图所示:\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 开始写博客了\n", "\n", "现在就已经是在jupyter的页面上写东西了。简单说说能写啥吧!\n", "\n", "### 两种模式\n", "\n", "#### 命令模式(Esc)\n", "\n", "在默认的输入模式下,按`Esc`可以进入命令模式,是不是和vim有点像?\n", "\n", "代码和markdown是常用的两种:分别用`y和m`切换,前提是在命令模式下!\n", "\n", "查看快捷键:\n", "\n", "**Help-Keyboard Shortcuts**\n", "\n", "如下图所示:最常用的我给加点颜色吧!\n", "\n", "\n", "\n", "\n", "\n", "#### 输入模式(Enter)\n", "\n", "在命令模式下,直接按一下回车`Enter`就进入到编辑模式了,比如咱们刚才一瞬间就是这么切换过来写文字的。\n", "\n", "\n", "### 写代码\n", "\n", "用过ipython的应该对前面的`In[]`,这种标志已经见习惯了,就是直接输入代码的。\n", "**这样的代码有语句,有运行结果,有错误提示,简直是居家必备啊!**\n", "\n", "下面是个检测python版本的例子:\n", "但此时咱们在写字呢,怎么添加一个cell并且开始写代码,直到运行呢?\n", "步骤如下:\n", "\n", "- Esc进入命令模式\n", "- 按一下B在下面添加一行\n", "- 写代码\n", "- 用ctrl+enter运行,或者alt+enter也行(这时候会自动再插入一行)\n", "- 你会看见类似下面的样式" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.7.11 |Anaconda 4.0.0 (64-bit)| (default, Feb 16 2016, 09:58:36) [MSC v.1500 64 bit (AMD64)]\n" ] } ], "source": [ "import sys\n", "print sys.version" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 写博客到cnblogs\n", "\n", "这里的文字已经是md的格式了,按理说直接粘贴到任意一个博客,就好了,现在很多博客都直接支持md输入,比如cnblogs,csdn,图灵社区等等。\n", "\n", "但是,别着急,咱们可以结合VScode把博客写到cnblogs上,这是一种更好玩的方式。\n", "\n", "\n", "**步骤如下:**\n", "\n", "- 下载VScode\n", "- 安装writecnblog插件\n", "- 导出当前的jupyter notebook为markdown文件\n", "- 用VScode编辑md文件\n", "- 发布博客\n", "\n", "#### 下载VScode\n", "\n", "微软这几年开源的脚步挺大的,挺好!哈哈!这个VScode就是其一,跨平台,而且用了最先进的js桌面框架(electron)开发,和github出的Atom同属一派。\n", "\n", "下载地址:https://code.visualstudio.com/\n", "\n", "\n", "#### 安装writecnblog插件\n", "\n", "打开vscode,按一下ctrl+p,会打开一个窗口,输入\n", "```\n", "ext install writecnblog\n", "```\n", "回车,等一会,安装好了会提示你的!\n", "\n", "\n", "更多内容请参考作者博客吧!http://www.cnblogs.com/caipeiyu/p/5475761.html\n", "\n", "这里简单贴俩效果图:\n", "\n", "![](http://images2015.cnblogs.com/blog/248834/201605/248834-20160509223057812-1280028866.gif)\n", "![](http://images2015.cnblogs.com/blog/248834/201605/248834-20160509224120812-627986082.gif)\n", "\n", "\n", "#### 导出当前的jupyter notebook为markdown文件\n", "\n", "回到jupyter的页面,在菜单找到file-download as-Markdown,保存一下,\n", "\n", "如下图所示:\n", "\n", "\n", "\n", "#### 用VScode编辑md文件\n", "\n", "打开我们刚才保存的md文件,我们刚才有几个地方写的是**如下图所示:**,这时候就要真的开始加图片了!(我已经边做边截图都准备好了^-^)\n", "\n", "就用刚才安装好的vscode插件!\n", "\n", "- 用 ctrl + shift + p 打开命令行\n", "- 在命令框里面输入cnblog:上传图片,然后就出现一个本地图片路径的输入框\n", "- 要输入完整的本地图片地址\n", "- 输入Blog地址名的输入框,这个地址名在博客管理的设置里面查看\n", "- 再输入用户名和密码,就可以上传图片\n", "- 图片上传成功后,就会返回一个图片地址到编辑框里面。\n", "\n", "自己调整一下位置就好了!\n", "\n", "\n", "#### 发布博客\n", "\n", "作者这样规定的插件规则:\n", "**发布文章是把文件名称当做标题名称。**\n", "\n", "发布完文章后,会在文件名称前面加一个[文章id]文件名称,这个[文章id]是用于更新时候用的,如果开头有这么一个东西,还要当做新文章发布,会先提醒你有更新信息。\n", "\n", "经过测试,我们需要先保存一下草稿,这时候就会生成带id的文件了,由于源文件改了名字,这时候vscode会报错,不用理他。再次打开刚才带有id的文件,再用发布的命令发布一下就好了,这时候还需要填三个东西的:\n", "\n", "- 输入Blog地址名的输入框,这个地址名在博客管理的设置里面查看。一般就是用户名\n", "- 再输入用户名和密码,就可以上传图片\n", "\n", "然后登陆你的博客园看看吧!\n", "\n", "have fun!\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }