科带实属良心,每个学生都有 300 m,的FTP空间

用来给学生制作一个静态的网站,方便他人了解信息
本站就是一个校园FTP站点
才不是setu站


本章将介绍如何利用这300m空间建立一个自己的网站

步骤

如果你需要像本站一样外面弄个进入界面的话,直接去百度上找个模板

以下是使用hexo建站步骤

安装node.js
安装git
在本机上找个文件夹用来放hexo文件,比如D:/hexo/,然后打开node.js command prompt

1
2
3
4
5
6
>>D:
>>cd hexo/
>>npm install hexo-cli -g
>>hexo init myblog \\这个myblog是你在当前文件夹下新建文件夹的名称
>>cd myblog \\进入文件夹
>>npm install

然后就建立成功了,可以输入
1
2
>>hexo g        \\生成文件
>>hexo se \\开启本地预览服务器

然后在本地http://localhost:4000就可以查看你的第一个界面了


以下是部署到FTP的步骤

先登录到FTP里看一眼,直接在explorer里输入 ftp://home.ustc.edu.cn/
会让你登录,用户名就是你的邮箱名字(不带@mail.ustc.edu.cn),密码就是邮箱密码
然后登入后新建一个public_html的文件夹,这里就是你的网站的根目录了
用编辑器打开myblog下面的_config.yml,找到url和root(一开始应该都只有两个/)然后这样设置

1
2
url: http://home.ustc.edu.cn/~username
root: /~username/

这里的username换成你的邮箱名(注意:后面一定要加个空格,不然会报格式错误),然后进入node.js 控制台,进入myblog目录
1
2
>>hexo cl       \\清除原来的文件
>>hexo g \\重新生成文件

这时候把myblog里面的public文件夹里面的内容复制到ftp的public_html的下面,浏览器输入http://home.ustc.edu.cn/~username就可以看到你的网站内容了


以下是自动部署的步骤

每次都要手动上传FTP会很麻烦而且没有效率
hexo有一个ftpsync的插件可以用来自动发布,但是我试了半天,一直报错
如果你也用不了的话,可以试着用一下这个python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import os
import hashlib
import json
import ftplib
import sys
name='';
passw='';
dest='';
target='';
u=os.path.abspath(sys.argv[0])
for i in range(len(u)-1,-1,-1):
if(u[i]=='\\'):
break
u=u[:i]
def md5sum(filename, blocksize=65536):
hash = hashlib.md5()
with open(filename, "rb") as f:
for block in iter(lambda: f.read(blocksize), b""):
hash.update(block)
return hash.hexdigest()
def upload_dir(path_source, session, target_dir=None):
if not os.path.exists(u+'\\in.json'):
fp=open(u+'\\in.json','w')
fp.write('{}')
fp.close()
fp=open(u+'\\in.json','r')
jsons=fp.read()
fp.close()
inn=json.loads(jsons)

files = os.listdir(path_source)
last_dir = os.path.abspath('.')
os.chdir(path_source)

if target_dir:
current_dir = session.pwd()
try:
session.mkd(target_dir)
except Exception:
pass
finally:
session.cwd(os.path.join(current_dir, target_dir))

for file_name in files:
current_dir = session.pwd()
if os.path.isfile(path_source + r'/{}'.format(file_name)):
ks=path_source+'\\'+file_name
xr=md5sum(ks)
if(ks in inn):
if(inn[ks]==xr):
print('Not modified: '+file_name)
continue
inn[ks]=xr
upload_file(path_source, file_name, session)
elif os.path.isdir(path_source + r'/{}'.format(file_name)):

current_dir = session.pwd()
try:
session.mkd(file_name)
except:
pass
session.cwd("%s/%s" % (current_dir, file_name))
k=upload_dir(path_source + r'/{}'.format(file_name), session)
inn.update(k)
session.cwd(current_dir)
os.chdir(last_dir)
return inn


def upload_file(path, file_name, session, target_dir=None, callback=None):
cur_dir = session.pwd()

if target_dir:
try:
session.mkd(target_dir)
except:
pass
finally:
session.cwd(os.path.join(cur_dir, target_dir))

print("path:%s \r\n\t file_name:%s" % (path, file_name))
file = open(os.path.join(path, file_name), 'rb') # file to send

session.storbinary('STOR %s' % file_name, file, callback = callback) # send the file
file.close()
session.cwd(cur_dir)
s=ftplib.FTP(host='home.ustc.edu.cn',user=name,passwd=passw)
inn=upload_dir(dest,s,target_dir=target)
f=open(u+'\\in.json',mode='w')
f.write(json.dumps(inn))
f.close()

其中name填你的邮箱名,passw填密码,dest填你的myblog文件夹下public目录的绝对位置,target填你的FTP目标位置(比如’public_html/‘),这个脚本会在本地生产一个json用来记录上一次传输文件的MD5,下一次传输同名同MD5的文件不会被上传(如果你手动清空了FTP文件,需要把in.json删除)

如何让网站变得好看
可以去github上找各种网站的主题包,然后根据网站上的提示修改配置
live2d看板娘的设置可以在百度上搜索到

如何设置公式支持可以直接搜索

现在,你可以使用markdown来写博客了