如何更新Typecho

前言

更新了handsome主题后也打算把Typecho更新下,现在Typecho版本已经到了1.1正式版本了。

方法

Typecho更新不需要将文件全部删除(不需要!不需要!不需要! 看清楚)

  1. 官网下载Typecho1.1正式版
  2. 在你的主机或服务器上找到旧版本Typecho目录
  3. 删除其中的admin文件夹、var文件夹、index.php
  4. 上传新的admin文件夹、var文件夹、index.php
  5. 然后回到typecho后台就会发现版本已经更新了

Typecho Handsome主题专用插件UserAgent配置

设置

找到Hansome主题component目录下的commens.php文件,大约在该文件第69行左右修改为如下代码

1
2
3
<span class="comment-author vcard">
<b class="fn"><?php echo $author; ?></b><?php echo $Identity; ?><?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?>
</span>

然后启用插件即可

详情请参考以下文章

[scode type=”yellow”]
https://doge.uk/coding/useragent-modify.html

[/scode]

解决Handsome7.2主题 CodePrettify插件 代码高亮显示不正常的问题

前提

我是用的CodePrettify插件实现的Mac样式代码高亮,详情可访问以下链接。

遇到此问题时,请您先检查您是否已经按照下方链接中的说明进行了正确操作(即先判断是否因您之前操作失误所导致代码高亮显示不正常),然后才可以开始按照本文下方步骤解决对应问题!!!!

作者:Xcnte' s Blog
网址:https://www.xcnte.com/archives/523/

解决问题

  1. 进入typecho后台
  2. 找到 插件
  3. 进入 Handsome 插件的设置
  4. “编辑器设置”一栏中的“前台Markdown解析方式选择”,勾选为“使用typecho自带的markdown解析器”
  5. 保存
  6. 然后回到文章页面刷新或清除浏览器缓存即可发现高亮已经恢复

Typecho设置伪静态

Apache环境

如果是Apache环境的话,需要在根目录创建文件**.htacess**或在宝塔面板添加伪静态,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

</IfModule>

Nginx环境

如果是Nginx环境的话需要修改nginx.conf文件或在宝塔面板内添加伪静态

1
2
3
4
5
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php;
}
}

转换工具

如果你原来已经配置了Apache的伪静态,现在换用了Nginx,则可通过下面方法来转换

转换工具http://winginx.com/en/htaccess

如何防止网站被恶意解析

经历

今天我在百度上搜索我博客的名字,发现有两个除了域名以外完全一样的网站,ping之后IP地址一模一样,我立马意识到网站被恶意解析了。

什么是恶意解析

恶意解析就是别人的域名的A记录填写你的服务器IP地址,对于原本网站的流量和SEO等有影响。

Nginx解决方案

  1. 通过宝塔面板设置一个不用的默认站点,即所有未在面板绑定的域名都会访问到这个默认站点
  2. 在该站点的设置下修改配置文件(不是配置文档)
1
2
3
4
5
6
server{
listen 80 default_server;
listen 443;
server_name *.*.*.*;
return 444;

(注意:server_name后面是你服务器的IP地址,return 444;后面还有原本的内容,这里忽略了)

3.然后你就打开恶意解析的那个域名,发现已经提示无法访问了

(更新)HTML+CSS制作一个高考倒计时

2020-07-09更新

  • 修复倒计时归零后出现负数的bug
  • 自动切换至下一年日期

起因

最近听到要开学的消息,就会想到考试,提到考试自然就会想到受本次疫情影响的高考考生。最后琢磨着做一个高考倒计时网页。为了时间长一点,我特地把日期调为了2021年的高考(别问我,我也不知道我是怎么想的)。然后呢。。。我并不会html/css(因为学业繁忙,又一直以来专注学C语言),于是就跟着B站制作新年倒计时网页的视频抄了抄代码~~ (图片都不换的那种) ~~,勉强搞出来了。
这里附上原地址:Bilibili

代码

** html代码 **

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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Countdown to NCEE</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="container">
<h2><span>Countdown to NCEE</span> 2021</h2>
<div class="countdown">
<div id="day">NA</div>
<div id="hour">NA</div>
<div id="minute">NA</div>
<div id="second">NA</div>
</div>
</div>

</body>
</html>
<script type="text/javascript">

function getEndTime(myYear){
var myEndTime = new Date(''+myYear+'/06/07 00:00:00');
return myEndTime;
}

function countDown(){
var mydate = new Date();
var year = '2021';
var EndTime = getEndTime(year);
var NowTime = new Date();
if( (EndTime.getTime() - NowTime.getTime() ) < 0){
year = mydate.getFullYear() + 1;
EndTime = getEndTime(year);
}
var t = EndTime.getTime() - NowTime.getTime();



var d=Math.floor(t/1000/60/60/24);
var h=Math.floor(t/1000/60/60%24);
var m=Math.floor(t/1000/60%60);
var s=Math.floor(t/1000%60);

document.getElementById('day').innerText = d;
document.getElementById('hour').innerText = h;
document.getElementById('minute').innerText = m;
document.getElementById('second').innerText = s;
}
setInterval(countDown,1000)
</script>

** CSS代码 **

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
@import url("https://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500,600,700,800,900");
*
{
margin: 0;
padding: 0;
font-family: 'Poppins', sans-serif;
}

body
{
background: #000 url(bg.jpg);
background-attachment: fixed;
background-blend-mode: hard-light;
}

.container{
position: absolute;
top: 80px;
left: 100px;
right: 100px;
bottom: 80px;
background: url(bg.jpg);
background-attachment: fixed;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
box-shadow: 0 50px 50px rgba(0,0,0,0.5),
0 0 0 100px rgba(0,0,0,.1);
}

.container h2 {
text-align: center;
font-size: 10em;
line-height: 0.7em;
color: #333;
margin-top: -80px;
}

.container h2 span{
display: block;
font-weight: 300;
letter-spacing: 6px;
font-size: 0.2em;
}
.countdown{
display: flex;
margin-top: 50px;
}
.countdown div{
position: relative;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
background: #333;
color: #fff;
margin: 0 15px;
font-size: 3em;
font-weight: 500;
}
.countdown div:before{
content: '';
position: absolute;
bottom: -30px;
left: 0;
width: 100%;
height: 35px;
background: #ff0;
color: #333;
font-size: 0.35em;
line-height: 35px;
font-weight: 300;
}
.container #day:before{
content: 'Days';
}
.container #hour:before{
content: 'Hours';
}
.container #minute:before{
content: 'Minutes';
}
.container #second:before{
content: 'Seconds';
}

Git地址

Gitee:https://gitee.com/cairbin/nceecountdown

项目演示地址:https://cairbin.gitee.io/nceecountdown/

Linux Git命令提交仓库

##命令##

###提交###

添加远程仓库

1
git remote add origin https://...

添加所需上传的文件

1
git add FileName

提交并添加信息

1
git commit -m "Information of your File"

推送

1
git push

然后会提示你输入用户名和密码

其他

全局设定

用户名

1
git config --global user.name "Your username"

Email

1
git config --global user.email "[email protected]"

C语言模块化编程

说明

C程序可以只有一个main()函数。包含main()函数的模块叫做主模块(main module),其它模块叫做**次模块(secondary module)**。通常,每个次模块都通过一个头文件相关联。

环境

这里仅在Linux环境下调试,其他环境暂不说明

代码

内容说明

依次是主模块、次模块、头文件,读取用户输入数字并输出该数字的平方

###代码###

  • test.c 主模块
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include "calc.h" //注意,这里头文件为自己所写,必须用英文引号。

int main(void)
{
int x;
printf("Enter an integer value: ");
scanf("%d",&x); //如果您用的是Visual Studio的话,这里可能会需要用 scanf_s();
printf("\nThe square of %d is %ld.\n", x, sqr(x)); //这里的sqr();在后面文件中会定义
return(0);
}

  • calc.c 次模块
1
2
3
4
5
6
7
#include "calc.h" //注意,这里头文件为自己所写,必须用英文引号。

long sqr(int x)
{
return ((long)x * x);
}

  • calc.h 头文件
1
long sqr(int x);

连接

1
2
3
4
gcc -c test.c
gcc -c calc.c
gcc -o test test.o calc.o
./test

注: -c是只编译

输出

结果如下(以输入100为例子):

1
2
Enter an integer value: 100
The square of 100 is 10000.

为学校计算机添加一个时钟

起因

学校的钟表实在是太菜了,是一个特别小的数码钟表镶嵌在喇叭上,每次看时间都要眯着眼,实在是太难受了,所以我直接写了一个程序放在多媒体计算机上,反正那东西屏幕这么大,不用白不用。

原理

主要运用了一个timer控件,没什么技术含量

效果如下

SchoolClock

代码

这里只提供主窗口的代码,窗口2只写了个退出功能,打算以后加上倒计时和课程表等功能

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace SchoolClock
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
this.BackColor = Color.White;
this.TransparencyKey = Color.White;

//托盘
NotifyIcon MyNotifyIcon = new NotifyIcon();//实例化

MyNotifyIcon.Visible = true;//可见性
MyNotifyIcon.Text = "ClockSettings";//鼠标放在托盘时显示的文字
MyNotifyIcon.BalloonTipText = "ClockSettings";//气泡显示的文字
MyNotifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Windows.Forms.Application.ExecutablePath);
Icon i = new Icon("favicon.ico");
MyNotifyIcon.Icon = i;
MyNotifyIcon.MouseClick += MyNotifyIcon_MouseDoubleClick;

//隐藏

}
void MyNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}

private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToString("HH:mm:ss");
label2.Text = DateTime.Now.ToString("yyyy-MM-dd");

}
}

其它

好吧,我承认我的确是在水文章,因为开学了时间非常紧张,所以只能抽出很少的一段时间写代码,所以就潦草地写了这个程序。
当然,我还会继续完善,只不过要等一段很长的事件。