背景

个人以前博客常挂在自建的基于docker的WordPress平台,但往日学艺不精,对docker操作陌生,都是基于别人的模板快速搭建;尽近两年来,经历了多次迁移:

  • 腾讯云(centOS) → 阿里云(ubuntu) → DigitalOcean(ubuntu)

同时也经过了多次的版本升级,且前期多是在wordpress内置的编辑器中编写,也尝试过百度UEditor编辑器

,最终转到MarkDown编辑器。除此外,图床也一变再变,过程中多次忘记备份,导致存在一些图片缺失。

回想写博客的本质,是为了记录心路,学习知识。实在不应该放过多时间在博客建设本身😢。

思前想后,还是准备把博客落脚在GitHub Page,不用去考虑数据库、cdn等,仅采用静态页面,一篇文章也为一份md文件,图床部分也不去用七牛等服务商,就是oneDrive的分享,简单直接。写博客也应该像提交代码一样,commit + push😉。

大致步骤如下:

GitHub建立固定格式仓库

登录GitHub,新建一个仓库,在Repository name中输入新建仓库的名称,我们现在是要搭建自己的个人博客,Repository name是有固定格式的:name.github.io,其中name可以随便填,一般是用自己的名字,点击Create Repository。

配置Git

安装Git

Git下载地址,选择适合版本,默认安装即可,安装后git相关命令会自动添加到系统path。可通过:

1
git --version

来确认。

配置Git

为了把本地的仓库中的内容传输到GitHub上,需要配置ssh key,无论是上传自己的博客还是上传其他的仓库都需要连接Github,ssh key是一个token,作用是身份验证。
为了在本地创建ssh key,打开Git Bash,输入命令:

1
ssh-keygen -t rsa -C "email"  # email是我们在注册Github时使用的邮箱

输入上面的命令后按Enter键,Git Bash会提示:

1
Enter file in which to save the key (/c/Users/sun/.ssh/id_rsa):_

直接按Enter,Git Bash会在默认路径C:\users\sun.ssh下生成几个文件。

然后Git Bash又给出提示:

1
Enter passphrase <empty for no passphrase>:_

这是在提示我们输入密码,直接回车表示不设置密码;此处我不设置密码,然后Git Bash要求我们重复密码,也直接回车,然后就会提示ssh key已经生成。

  1. 点击Settings;

  2. 在页面左侧找到Deploy keys并点击;

  3. 点击右侧的Add deploy key按钮,title随意填,Key填写ssh key文件中复制的key(包括ssh-ras头);

  4. 点击Add Key,保存ssh key。

我们需在本地验证ssh key设置是否成功,打开cmd,输入命令:

1
ssh -T git@github.com

若看到

1
You’ve successfully authenticated, but GitHub does not provide shell access

表示当前已经成功地连接上了自己的GitHub账户

接下来,设置一下自己的用户名和邮箱

1
2
git config --global user.name "my_github_name"
git config --global user.email "my_github_email"

至此,我们已经成功地将个人电脑和Github账号连接。

安装node.js 和 hexo

安装node.js

node.js下载地址

按照需要选择不同的版本,下载到本地之后,直接双击安装,一路默认即可,node.js安装后,会自动配置环境变量,打开windows的控制台,输入命令:

1
node -v

安装Hexo

hexo项目须在电脑的磁盘里新建一个空文件夹,在我的电脑上是C:\Users\smile\hexo_next,用于存放本地仓库,和Github上的xxxxx.github.io是对应的,下面以命令行为例,完成Hexo安装

1
2
3
mkdir C:\Users\smile\hexo_next   # 新建文件夹
cd C:\Users\smile\hexo_next
npm install hexo -g # 安装Hexo,-g代表全局安装

安装耗时较长,最终可通过

1
hexo -v

检测安装

搭建本地测试环境

初始化C:\Users\smile\hexo_next这个文件夹,打开Git Bash进入此目录,输入命令:

1
2
3
4
hexo init
npm install # 安装Hexo所需要的组件
hexo g # 产生webapp文件
hexo s # 开启服务器

此时控制台提示:

1
2
3
4
5
6
7
8
9
INFO  Start processing
WARN ===============================================================
WARN ========================= ATTENTION! ==========================
WARN ===============================================================
WARN NexT repository is moving here: https://github.com/theme-next
WARN ===============================================================
WARN It's rebase to v6.0.0 and future maintenance will resume there
WARN ===============================================================
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

表明启动成功

使用next设计个性化博客

将Hexo的主题切换为NexT

进入到C:\Users\smile\hexo_next文件夹,打开cmd

1
git clone https://github.com/theme-next/hexo-theme-next themes/next

打开C:\Users\smile\hexo_next\_config.yml

把theme: lansscape改为theme: next

切换Next主题

进入C:\Users\smile\hexo_next\themes\next,打开NexT的配置文件_config.yml,选择自己喜欢的主题样式,选择哪个样式就需要把主题前面的#去掉

设置动态背景

在C:\Users\smile\hexo_next\themes\next\_config.yml中,canvas_nest设置成ture,并且可选多种动态背景

取消侧边栏目录的自动编号

在C:\Users\smile\hexo_next\themes\next\_config.yml中,修改toc下number属性为false

在右上角或者左上角实现fork me on github

在GitHub Ribbons或GitHub Corners选择自己喜欢的挂饰,拷贝方框内的代码

将复制的代码放到C:\Users\smile\hexo_next\themes\next\layout中的_layout.swig文件中,放在

1
<div class="headband"></div>

后面,如下图

实现文章字数统计和阅读时长功能

1
npm install hexo-wordcount --save

编辑C:\Users\smile\hexo_next\themes\next\_config.yml,找到post_wordcount,将所有的false都改为true:

Hexo博客添加站内搜索

需要安装 hexo-generator-search,输入命令:

1
npm install hexo-generator-search --save

安装 hexo-generator-searchdb,输入命令:

1
npm install hexo-generator-searchdb --save

编辑C:\Users\smile\hexo_next\themes\next\_config.yml,找到Local search,做如下设置:

效果如下:

连接Hexo和Github Pages及部署博客

接下来就是将Hexo与GitHub Pages连接起来
打开C:\Users\smile\hexo_next\_config.yml文件,找到deploy字段,改为如下内容

1
2
3
4
deploy:
type: git
repository: git@github.com:user_name/respname.github.io.git
branch: master

填写GitHub的用户名 和 博客仓库名,如下图所示

在产生webapp应用和部署到GitHub之前,需要安装一个扩展插件,在C:\Users\smile\hexo_next中打开cmd,输入命令:

1
npm install hexo-deployer-git --save

使用命令:

1
hexo clean & hexo d -g  # hexo g 生成webapp应用  # hexo d 部署

就可以发布到GitHub上啦!😉

第十九周

课程 日期 时间
微机原理 1月8号 13:30 - 15:10
计算机网络技术 1月9号 13:30 - 15:10
数字信号处理 1月10号 8:00 - 9:40
毛概 1月10号 10:20 - 12:00
通信原理 1月11号 15:50 - 17:30

存在这样一种情况,经常在非服务器环境下开发python程序,即使在本地运行良好,但是在服务器的环境下就会存在问题,如何保证开发环境跟运行环境一致呢?

这里通过PyCharm的远程解释器加上自动文件同步功能,实现

  • 本地编译 -> 同步到服务器 -> 远程debug

的方式来调试程序。

远程服务器的同步配置

局域网下的服务器IP地址为: 192.168.2.192,python版本3.6, 且在项目下已有虚拟环境,开启ssh服务。

首先我们需要配置PyCharm通服务器的代码同步,打开Tools | Deployment | Configuration

点击左边的“+”添加一个部署配置,输入名字,类型选SFTP

确定之后,再配置远程服务器的ip、端口、用户名和密码。root path是文件上传的根目录,注意这个目录必须用户名有权限创建文件。

然后配置映射,local path是你的工程目录,就是需要将本地这个目录同步到服务器上面,我填的是项目根目录。 Deploy path on server 这里填写相对于root path的目录,下面那个web path不用管先

还有一个设置,打开Tools | Deployment | Options,将”Create Empty directories”打上勾,要是指定的文件夹不存在,会自动创建。

上传和下载文件

有几种方法可以实现本地和远程文件的同步,手动和当文件保存后自动触发。这里我选中Automatic upload。

手动上传方式很简单,选择需要同步的文件或文件夹,然后选择 Tools | Deployment | Upload to sftp(这个是刚刚配置的部署名称)

如果在服务器存在已有项目,选择Compare with … ,然后全部接受服务器端的文件。

比较远程和本地文件

有时候你并不确定远程和本地版本的完全一致,需要去比较看看。PyCharm提供了对比视图来为你解决这个问题。

选择Tools | Deployment | Browse Remote Host,打开远程文件视图,在右侧窗口就能看到远程主机中的文件

选择一个你想要对比的文件夹,点击右键->Sync with Local,打开同步对比窗口,使用左右箭头来同步内容。

配置远程Python解释器

新建一个python解释器,选择SSH 解释器,由于我上面配置过就直接选模板, 这里请仔细看我的Python解释器是虚拟环境virtualenv,这个要在服务器上面先创建好虚拟环境。

配置Django运行参数

指定启动Host为0.0.0.0,表示允许所有ip进行调试
若需要启动web浏览器,指定下地址为服务器端的ip

我们的隐私政策,说明了您通过我们的小程序应用访问和使用“BTBU查询”(下称小程序)过程中信息是如何收集,使用的。就目前而言,我们只使用了最简单的第三方授权登录方式,没有利用任何方式去主动获取您的隐私,我们在后续的过程中如非必要不会在windows程序、App上去请求那些不必要的权限去窥探您的隐私。

1、我们会收集什么信息?

当您使用小程序的过程中,我们会在您自愿选择服务或提供信息的情况下收集您的私人信息,以便向您提供更好的用户服务。
“私人信息”包括您提供给我们的北京工商大学教务处账号、密码等。小程序不会主动收集或请求用户提供这些信息。

2、我们如何使用收集的信息?

我们可能通过以下方式使用信息:

  1. 当您许可并通过交易请求获得小程序的相关产品及服务时;
  2. 当提供客户服务,需要回应您的电子邮件,文件,问题,意见,要求和投诉时;
  3. 当使用产品过程中,为了让您使用产品更加个性化和带来更好的体验,需要分析使用情况和趋势时;
  4. 当需要改进对您的服务体验、管理和操作时,发送给您的许可证明,产品更新,安全警报,支持和管理信息等。

3、信息的披露

我们将对信息严格保密,不会与他人分享这些信息,亦不会将其出售、出租或以其他方式分发给他人。

4、信息的提供

小程序的用户总是可以选择是否披露信息。有些信息是登记我们的服务所必需的,但大多数其他信息的提供是由用户决定的。小程序将视用户舒适度及自主选择为首位。小程序可能为用户提供网络互动活动,为便于用户参予互动活动并获取互动奖品,小程序通常要求申请者在联系方法(通讯地址和电话)之外,还要根据其个人兴趣填写表格。此类信息被小程序用来累积用户数据。如果用户不想提供所要求的信息和参加此类活动,这完全由用户自行决定。

5、未成年人信息及使用

小程序建议:任何未成年人参加网上活动应事先取得家长或其法定监护人(以下简称”监护人”)的书面同意。小程序将根据国家相关法律法规的规定保护未成年人的相关信息。

6、Cookies

通过使用Cookies,小程序向用户提供简单易行并富个性化的网络体验。一个Cookies 是少量的数据,它们从一个网络服务器送至您的浏览器并存在计算机硬盘上。小程序使用Cookies 是为了让其用户受益。Cookies 可用于储存用户偏好设置、改善用户体验以及跟踪用户趋势(例如用户使用小程序的方式),从而帮助我们提高服务质量。Cookies 能帮助我们确定您连接的页面和内容,您在小程序特定网页上花费的时间和您所选择的小程序的服务。 Cookies 是放置在小程序的计算机或服务器上的身份证。它只能被设置它们的服务器阅读,而且不能执行任何代码或病毒。Cookies 使得小程序能更好、更快地为您服务,并且帮助您对小程序进行一些个性化的设置。然而,您应该能够控制Cookies 是否以及怎样被您的浏览器接受。请查阅您的浏览器附带的文件以获得更多这方面的信息。

简而言之,小程序将Cookies 当作一种便捷的体验,其作用是使得用户在从小程序的一项服务转到另一项服务时,无须再证明自己的身份。您可以通过修改浏览器设置的方式拒绝Cookies,如果您选择拒绝Cookies,则您可能无法登录或使用依赖于Cookies 的小程序服务或功能。

7、链接

小程序承诺在现有技术许可的范围内采取合理必要的预防措施保护用户的数据安全,但是所有的互联网服务商都无法保证数据百分百安全,因此小程序也无法做出绝对的保证。我们会在合理商业运作的基础上,采取尽可能完备的措施保护您存放在小程序中的数据。 您的个人信息和数据受到多重保护,包括人员的、电子的和程序上的。

如果小程序得知安全系统漏洞,我们可能联络您提供给我们的电子邮件地址或在我们的网站上发布通知,以试图告知您并提供关于保护措施(如适用)的信息。

8、数据安全

我们仅在本《隐私政策》所述目的所必需的期间和法律法规要求的时限内保留您的个人信息。

我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如SSL)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。

9、更新与公开信息

小程序鼓励用户更新和修改其个人信息以使其有效。用户能在任何时候非常容易地获取并修改其个人信息。用户可以自行决定修改、删除他们的相关资料。请记住,无论何时您自愿披露个人信息(如在网络上公布), 此种信息可能被他人收集及使用,因此造成您的个人信息泄露,小程序不承担责任,如果您将个人信息公布在上述渠道,您就有可能造成个人信息泄露。因此,我们提醒并请您慎重考虑是否有必要在上述渠道公开您的个人信息。

最后,您是唯一对您的账号和密码信息负有保密责任的人。任何情况下,请小心妥善保管。

10、修改与更新

由于本隐私政策可能不时被更新,您应定期查看以了解我们保护所收集之个人信息的方案及程序。您继续使用小程序服务即构成您对本隐私政策及其任何更新版本的同意。有关本声明或小程序的隐私措施的问题请与我们联系。

0%