效果见:我的个人网站 的右下角

第一步,在主题目录配置下打开 themes\landscape\layout\_widget

新建 calender.ejs 文件,

代码太长,所有在本文最后附上。

注:为了避免代码在Hexo渲染时中文字符乱码,此 .ejs 内容均为已经转码后的代码,特此说明!

第二步,在主题目录配置下 themes\landscape\ 打开 _config.yml 文件,

在 widgets: 中添加 - calendar 即可。

第三步,在Hexo根目录配置下鼠标右键 git bash 运行 "hexo g -d" 即可在个人网站查看效果。

附: calender.ejs 文件代码(已转码)

<div class="widget-wrap"><h3 class="widget-title">日历小工具</h3><ul class="widget calendar"><!-- 以下是含农历日历代码--><body>
<SCRIPT  type="text/javascript" > var lunarInfo=new Array(0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0) var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)
var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十')
var nStr2 = new Array('初','十','廿','卅',' ')
var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"); var sFtv = new Array( "0101*元旦", "0214 情人节", "0303 我生日", "0308 妇女节", "0312 植树节", "0315 消费者权益日", "0317 St. Patrick's", "0401 愚人节", "0501 劳动节", "0504 青年节", "0512 护士节", "0512 茵生日", "0601 儿童节", "0614 Flag Day", "0701 建党节 香港回归纪念", "0703 炎黄在线诞辰", "0718 托普诞辰", "0801 建军节", "0808 父亲节", "0909 毛泽东逝世纪念","0910 教师节", "0928 孔子诞辰", "1001*国庆节", "1006 老人节","1024 联合国日","1111 Veteran's / Remembrance Day","1112 孙中山诞辰纪念", "1220 澳门回归纪念", "1225 Christmas Day","1226 毛泽东诞辰纪念") var lFtv = new Array( "0101*春节", "0115 元宵节", "0505 端午节", "0707 七夕情人节", "0715 中元节","0815 中秋节", "0909 重阳节", "1208 腊八节", "1224 小年", "0100*除夕") var wFtv = new Array( "0131 Martin Luther King Day", "0231 President's Day", "0520 母亲节", "0530 Armed Forces Day", "0531 Victoria Day", "0716 合作节", "0730 被奴役国家周", "0811 Civic Holiday", "0911 Labor Holiday", "1021 Columbus Day", "1144 Thanksgiving") function lYearDays(y) {
var I, sum = 348
for(I=0x8000; I>0x8; I>>=1) sum += (lunarInfo[y-1900] & I)? 1: 0
return(sum+leapDays(y))
} function leapDays(y) {
if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30: 29)
else return(0)
} function leapMonth(y) {
return(lunarInfo[y-1900] & 0xf)
} function monthDays(y,m) {
return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 )
} function Lunar(objDate) { var I, leap=0, temp=0
var baseDate = new Date(1900,0,31)
var offset = (objDate - baseDate)/86400000 this.dayCyl = offset + 40
this.monCyl = 14 for(I=1900; I<2050 && offset>0; I++) {
temp = lYearDays(I)
offset -= temp
this.monCyl += 12
} if(offset<0) {
offset += temp;
I--;
this.monCyl -= 12
} this.year = I
this.yearCyl = I-1864 leap = leapMonth(I)
this.isLeap = false for(I=1; I<13 && offset>0; I++) { if(leap>0 && I==(leap+1) && this.isLeap==false)
{ --I; this.isLeap = true; temp = leapDays(this.year); }
else
{ temp = monthDays(this.year, I); } if(this.isLeap==true && I==(leap+1)) this.isLeap = false offset -= temp
if(this.isLeap == false) this.monCyl ++
} if(offset==0 && leap>0 && I==leap+1)
if(this.isLeap)
{ this.isLeap = false; }
else
{ this.isLeap = true; --I; --this.monCyl;} if(offset<0){ offset += temp; --I; --this.monCyl; } this.month = I
this.day = offset + 1
} function solarDays(y,m) {
if(m==1)
return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28)
else
return(solarMonth[m])
} function cyclical(num) {
return(Gan[num%10]+Zhi[num%12])
} function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) { this.isToday = false; this.sYear = sYear;
this.sMonth = sMonth;
this.sDay = sDay;
this.week = week; this.lYear = lYear;
this.lMonth = lMonth;
this.lDay = lDay;
this.isLeap = isLeap; this.cYear = cYear;
this.cMonth = cMonth;
this.cDay = cDay; this.color = ''; this.lunarFestival = '';
this.solarFestival = '';
this.solarTerms = ''; } function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )
return(offDate.getUTCDate())
} function calendar(y,m) { var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2
var lDPOS = new Array(3)
var n = 0
var firstLM = 0 sDObj = new Date(y,m,1) this.length = solarDays(y,m)
this.firstWeek = sDObj.getDay() for(var I=0;I<this.length;I++) { if(lD>lX) {
sDObj = new Date(y,m,I+1)
lDObj = new Lunar(sDObj)
lY = lDObj.year
lM = lDObj.month
lD = lDObj.day
lL = lDObj.isLeap
lX = lL? leapDays(lY): monthDays(lY,lM) if(n==0) firstLM = lM
lDPOS[n++] = I-lD+1
} this[I] = new calElement(y, m+1, I+1, nStr1[(I+this.firstWeek)%7],
lY, lM, lD++, lL,
cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) ) if((I+this.firstWeek)%7==0) this[I].color = 'red'
if((I+this.firstWeek)%14==13) this[I].color = 'red'
} tmp1=sTerm(y,m*2 )-1
tmp2=sTerm(y,m*2+1)-1
this[tmp1].solarTerms = solarTerm[m*2]
this[tmp2].solarTerms = solarTerm[m*2+1]
if(m==3) this[tmp1].color = 'red' for(I in sFtv)
if(sFtv[I].match(/^(d{2})(d{2})([s*])(.+)$/))
if(Number(RegExp.$1)==(m+1)) {
this[Number(RegExp.$2)-1].solarFestival += RegExp.$4 + ' '
if(RegExp.$3=='*') this[Number(RegExp.$2)-1].color = 'red'
} for(I in wFtv)
if(wFtv[I].match(/^(d{2})(d)(d)([s*])(.+)$/))
if(Number(RegExp.$1)==(m+1)) {
tmp1=Number(RegExp.$2)
tmp2=Number(RegExp.$3)
this[((this.firstWeek>tmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' '
} for(I in lFtv)
if(lFtv[I].match(/^(d{2})(.{2})([s*])(.+)$/)) {
tmp1=Number(RegExp.$1)-firstLM
if(tmp1==-11) tmp1=1
if(tmp1 >=0 && tmp1<n) {
tmp2 = lDPOS[tmp1] + Number(RegExp.$2) -1
if( tmp2 >= 0 && tmp2<this.length) {
this[tmp2].lunarFestival += RegExp.$4 + ' '
if(RegExp.$3=='*') this[tmp2].color = 'red'
}
}
} if((this.firstWeek+12)%7==5)
this[12].solarFestival += '黑色星期五 ' if(y==tY && m==tM) this[tD-1].isToday = true; } function cDay(d){
var s; switch (d) {
case 10:
s = '初十'; break;
case 20:
s = '二十'; break;
break;
case 30:
s = '三十'; break;
break;
default :
s = nStr2[Math.floor(d/10)];
s += nStr1[d%10];
}
return(s);
} var cld; function drawCld(SY,SM) {
var I,sD,s,size;
cld = new calendar(SY,SM); if(SY>1874 && SY<1909) yDisplay = '光绪' + (((SY-1874)==1)?'元':SY-1874)
if(SY>1908 && SY<1912) yDisplay = '宣统' + (((SY-1908)==1)?'元':SY-1908)
if(SY>1911 && SY<1950) yDisplay = '民国' + (((SY-1911)==1)?'元':SY-1911) if(SY>1949) yDisplay = '' GZ.innerHTML = yDisplay +' 农历' + cyclical(SY-1900+36) + '年 ['+Animals[(SY-4)%12]+'年]'; YMBG.innerHTML = " " + SY + "<BR> " + monthName[SM]; for(I=0;I<42;I++) { sObj=eval('SD'+ I);
lObj=eval('LD'+ I); sObj.className = ''; sD = I - cld.firstWeek; if(sD>-1 && sD<cld.length) {
sObj.innerHTML = sD+1; if(cld[sD].isToday) sObj.className = 'todyaColor'; sObj.style.color = cld[sD].color; if(cld[sD].lDay==1)
lObj.innerHTML = '<b>'+(cld[sD].isLeap?'闰':'') + cld[sD].lMonth + '月' + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'</b>';
else
lObj.innerHTML = cDay(cld[sD].lDay); s=cld[sD].lunarFestival;
if(s.length>0) {
if(s.length>6) s = s.substr(0, 4)+'…';
s = s.fontcolor('red');
}
else {
s=cld[sD].solarFestival;
if(s.length>0) {
size = (s.charCodeAt(0)>0 && s.charCodeAt(0)<128)?8:4;
if(s.length>size+2) s = s.substr(0, size)+'…';
s = s.fontcolor('blue');
}
else {
s=cld[sD].solarTerms;
if(s.length>0) s = s.fontcolor('limegreen');
}
}
if(s.length>0) lObj.innerHTML = s; }
else {
sObj.innerHTML = '';
lObj.innerHTML = '';
}
}
} function changeLong()
{
var y,m,ly,lm,id,im,iy,yangy,yangm,deltm,miny,tt;
CLD.SY.selectedIndex=CLD.D1.selectedIndex;
CLD.SM.selectedIndex=CLD.D2.selectedIndex;
yangm=0;yangy=0;
tt=true;
while (tt)
{
yangm=0;yangy=0;
changeCld();
for(I=0;I<42;I++)
{
sD = I - cld.firstWeek;
if(sD>-1 && sD<cld.length)
{
if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)&&(cld[sD].lYear==CLD.D1.selectedIndex+1900))
{
yangy=CLD.SY.selectedIndex+1900; yangm=CLD.SM.selectedIndex ;
tt=false;
break;
}
}
}
if (!tt) break; pushBtm('MD');
changeCld(); for(I=0;I<42;I++)
{
sD = I - cld.firstWeek;
if(sD>-1 && sD<cld.length)
{
if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)&&(cld[sD].lYear==CLD.D1.selectedIndex+1900))
{
yangy=CLD.SY.selectedIndex+1900; yangm=CLD.SM.selectedIndex ;
tt=false;
break;
}
}
}
break;
} CLD.SM.selectedIndex=yangm;
pushBtm('MD');
pushBtm('MU'); } function changeCld() {
var y,m;
y=CLD.SY.selectedIndex+1900;
m=CLD.SM.selectedIndex;
drawCld(y,m);
} function pushBtm(K) {
switch (K){
case 'YU' :
if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--;
break;
case 'YD' :
if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++;
break;
case 'MU' :
if(CLD.SM.selectedIndex>0) {
CLD.SM.selectedIndex--;
}
else {
CLD.SM.selectedIndex=11;
if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--;
}
break;
case 'MD' :
if(CLD.SM.selectedIndex<11) {
CLD.SM.selectedIndex++;
}
else {
CLD.SM.selectedIndex=0;
if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++;
}
break;
default :
CLD.SY.selectedIndex=tY-1900;
CLD.SM.selectedIndex=tM;
}
changeCld();
} var Today = new Date();
var tY = Today.getFullYear();
var tM = Today.getMonth();
var tD = Today.getDate(); var width = "130";
var offsetx = 2;
var offsety = 16; var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0; var dStyle;
document.onmousemove = mEvn; function mOvr(v) {
var s,festival;
var sObj=eval('SD'+ v);
var d=sObj.innerHTML-1; if(sObj.innerHTML!='') { sObj.style.cursor = 's-resize'; if(cld[d].solarTerms == '' && cld[d].solarFestival == '' && cld[d].lunarFestival == '')
festival = '';
else
festival = '<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#CCFFCC"><TR><TD>'+
'<FONT COLOR="#000000" >'+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+'</FONT></TD>'+
'</TR></TABLE>'; s= '<TABLE WIDTH="130" BORDER=0 CELLPADDING="2" CELLSPACING=0 BGCOLOR="#000066"><TR><TD>' +
'<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD ALIGN="right"><FONT COLOR="#ffffff">'+
cld[d].sYear+' 年 '+cld[d].sMonth+' 月 '+cld[d].sDay+' 日<br>星期'+cld[d].week+'<br>'+
'<font color="violet">农历'+(cld[d].isLeap?'闰 ':' ')+cld[d].lMonth+' 月 '+cld[d].lDay+' 日</font><br>'+
'<font color="yellow">'+cld[d].cYear+'年 '+cld[d].cMonth+'月 '+cld[d].cDay + '日</font>'+
'</FONT></TD></TR></TABLE>'+ festival +'</TD></TR></TABLE>'; document.all["detail"].innerHTML = s; if (snow == 0) {
dStyle.left = x+offsetx-(width/2);
dStyle.top = y+offsety;
dStyle.visibility = "visible";
snow = 1;
}
}
} function mOut() {
if ( cnt >= 1 ) { sw = 0 }
if ( sw == 0 ) { snow = 0; dStyle.visibility = "hidden";}
else cnt++;
} function mEvn() {
x=event.x;
y=event.y;
if (document.body.scrollLeft)
{x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
if (snow){
dStyle.left = x+offsetx-(width/2)
dStyle.top = y+offsety
}
} function tick() {
var today
today = new Date()
Clock.innerHTML = today.toLocaleString().replace(/(年|月)/g, "/").replace(/日/, ""); window.setTimeout("tick()", 1000);
} function setCookie(name, value) {
var today = new Date()
var expires = new Date()
expires.setTime(today.getTime() + 1000*60*60*24*365)
document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString()
} function getCookie(Name) {
var search = Name + "="
if(document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if(offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if(end == -1) end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
else return ""
}
} function initial() {
dStyle = detail.style;
CLD.SY.selectedIndex=tY-1900;
CLD.SM.selectedIndex=tM;
drawCld(tY,tM); tick();
} </SCRIPT> <STYLE>.todyaColor {
BACKGROUND-COLOR: aqua
}
</STYLE> <BODY onload=initial()> <DIV id=detail style="POSITION: absolute"></DIV>
<FORM name=CLD> <div align="center">
<TABLE width=100% align="center" height="40" bordercolordark="#CC9900" border=1>
<center>
<TBODY>
<TD align=middle vAlign=top width=100% height=50%> <!-- 本机计算机时间UTF8转码后为下一行的:本地计算机时间--><center><font  color=RED><span>本地计算机时间:</span> </FONT></FONT><BR><FONT color=#000080 id=Clock size=3 align="center"></FONT>
<!--时区 *表示自动调整为日光节约时间-->
</TABLE>
</div> <center><tr>---------------------------------------------------------</tr></center>
<div align="center">
<table  width=100% align="center" height="40" border=1>
<CENTER>
<center>
<TBODY>
</center></center> <td height="40" width=80% align="center"><font size="2"><!-- 公历,年,月UTF8转码后为 公历  年   月-->
<font color="#0000FF">公历&nbsp;</font>年</font><FONT color=#ffffff ><SELECT name=SY onchange=changeCld()>
<SCRIPT type="text/javascript" >
for(I=1900;I<2050;I++) document.write('<option>'+I)
</SCRIPT>
</SELECT> </FONT>月<FONT color=#ffffff ><SELECT name=SM onchange=changeCld() >
<SCRIPT type="text/javascript" >
for(I=1;I<13;I++) document.write('<option>'+I)
</SCRIPT>
</SELECT></FONT></font> <!-- 阴历,年,月UTF8转码后为 阴历  年   月-->
<br><font size="2"><FONT ><font color="#0000FF">阴历&nbsp;</font>年</font><FONT color=#ffffff ><SELECT name=D1 onchange=changeLong() >
<SCRIPT type="text/javascript" >
for(I=1900;I<2050;I++) document.write('<option>'+I)
</SCRIPT>
</SELECT> </FONT>月<FONT color=#ffffff ><SELECT name=D2 onchange=changeLong() >
<SCRIPT type="text/javascript" >
for(I=1;I<13;I++) document.write('<option>'+I)
</SCRIPT>
</SELECT></FONT></font></br></div><!-- 月,当月 UTF8转码后为 月  当月-->
<!-- ↑ ↓ UTF8转码后为 ↑  ↓-->
<td height="40" width=20% align="center">
<BUTTON onclick="pushBtm('MU')" >月↑ &nbsp;</BUTTON><br>
<BUTTON onclick="pushBtm('')" >当月</BUTTON><br>
<BUTTON onclick="pushBtm('MD')" >月↓ &nbsp;</BUTTON>
</td> <CENTER>
<!--'阴历存在跨月情况,如果查找到的阴历月跨两个公历月,用' UTF8转码后为 阴历存在跨月情况,如果查找到的阴历月跨两个公历月,用-->
<!-- '翻动可以找到你想要的确切日期。'UTF8转码后为 翻动可以找到你想要的确切日期。-->
<table align=middle border=1 width=100%  bordercolordark="#FFFFCC">
<td width="100%" align=middle ><font  color=#0> 阴历存在跨月情况,如果查找到的阴历月跨两个公历月,用<font color=blue>[月↑][月↓]</font>翻动可以找到你想要的确切日期。</font></td>
<center><tr>---------------------------------------------------------</tr></center>
</table>
</CENTER>
</table> <center><tr>---------------------------------------------------------</tr></center>
<FONT id=YMBG COLOR=#f0f0f0> </FONT> <div align="center">
<center>
<TABLE align="center" border=1 width=100% cellspacing="1">
<center>
<TBODY>
<center>
<TR>
<center><TD bgColor=#000080 colSpan=7 align="center" width=100% height="25"><FONT color=#000080 size=2> </FONT>
<center> <FONT color=#ffffff id=GZ size=4></FONT><BR></TD></TR>
<center> <TR align=middle bgColor=#e0e0e0>
<center>
<!-- 日一二三四五六 UTF8转码后为  日 一 二 三 四 五 六 -->
<center> <TD width=15% align="center" bgcolor="#99CCFF"><font size="2">日</font></TD>
<center> <TD width=14% align="center" bgcolor="#99CCFF"><font size="2">一</font></TD>
<center> <TD width=14% align="center" bgcolor="#99CCFF"><font size="2">二</font></TD>
<center> <TD width=14% align="center" bgcolor="#99CCFF"><font size="2">三</font></TD>
<center> <TD width=14% align="center" bgcolor="#99CCFF"><font size="2">四</font></TD>
<center> <TD width=14% align="center" bgcolor="#99CCFF"><font size="2">五</font></TD>
<center> <TD width=15% align="center" bgcolor="#99CCFF"><font size="2">六 </font></TD></TR>
<center> <SCRIPT type="text/javascript" >
var gNum
for(I=0;I<6;I++) {
document.write('<tr align=center>')
for(j=0;j<7;j++) {
gNum = I*7+j
document.write('<td id="GD' + gNum +'" onMouseOver="mOvr(' + gNum +')" onMouseOut="mOut()"><font id="SD' + gNum +'" size=2 ')
if(j == 0) document.write(' color=red')
if(j == 6)
if(I%2==1) document.write(' color=red')
else document.write(' color=green')
document.write(' TITLE=""> </font><br><font id="LD' + gNum + '" size=2 > </font></td>')
}
document.write('</tr>')
}
</SCRIPT>
</TBODY></TABLE>
</center>
</div>
</TD>
</TR></TBODY></TABLE>
</div>
</FORM>
</body>
</td><!-- 日历代码结束--></ul>
</div>

转载于:https://my.oschina.net/u/3372900/blog/878655

Hexo Landscape博客添加【农历日历】相关推荐

  1. Hexo Next 博客添加相册瀑布流

    原文:https://rebootcat.com/2020/09/19/nextphotowall/ 前言 一直没有时间来整理下博客搭建的一些事情,现在补上一篇,给 Hexo Next 博客添加一个相 ...

  2. Hexo+yilia博客添加背景音乐

    个人主页:https://www.yuehan.online 现在博客:www.wangyurui.top 第一步: 打开网易云音乐的官网:https://music.163.com/ 第二步: 搜索 ...

  3. 为 hexo 博客添加本地搜索功能

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:我的大学到研究生自学 Java 之路,过程艰辛,不放弃,保持热情,最终发现我是这样拿到大厂 offer 的!个人 ...

  4. hexo博客添加暗色模式_我如何向网站添加暗模式

    hexo博客添加暗色模式 同一个网站,两种不同的配色方案 (Same website, two different color schemes) Last year I made it a point ...

  5. hexo博客添加暗色模式_我如何将暗模式添加到我的网站

    hexo博客添加暗色模式 I recently redesigned my website. Here are 2 pictures of how it looked, for reference: ...

  6. 用Github Pages+Hexo搭建博客之(八)Hexo博客Next主题添加统计文章阅读量(访问量/浏览量/阅读次数)功能

    [置顶][专栏]用Github Pages+Hexo搭建博客 文章目录 [置顶][专栏][用Github Pages+Hexo搭建博客](https://blog.csdn.net/qq_342439 ...

  7. Hexo + yilia 主题 +githubpages博客添加友言评论功能

    前言 Hexo博客的Yilia主题中评论系统只提供了畅言.网易云跟帖.多说和Disqus. 由于多说评论.网易云跟帖已经关闭系统,畅言需要域名备案,而github是国外的,没有备案,所以尝试了其他第三 ...

  8. hexo博客结合百度语音合成为你的博客添加欢迎语音

    前言 今晚在知乎和CSDN看文章时都发现了文章有点击即可朗读,将文字转换成语音,虽然机器音很严重,但可以将这个用来做个人博客的一个欢迎语.也就是别人点击你博客进入的时候会自动播放这个欢迎语,有点像是你 ...

  9. 给hexo个人博客 next主题添加背景图片

    前几天没事自己通过hexo加github搭建了一个自己的个人博客,用的是next主题,发现挺好用,捣鼓了半天终于把全部全部配置完了,但是想改给自己的博客添加一张背景图片,在网上找了很久没找到相关的资料 ...

最新文章

  1. python 设置开机自动启动 .py 文件
  2. 码栈开发手册(三)---编码方式开发(高级课程①)
  3. HTACCESS 伪静态书写规则
  4. photoshop 常见问题与分析
  5. 【中国好公司】中国人最向往的公司:BAT相差太多!华为排名出乎意料
  6. PowerShell全自动分配CPU
  7. pdf python 3.7编程快速入门 潘中强_无python基础,这些书籍可以帮您快速入门。
  8. 11. 给 apache ,nginx 设置变量
  9. 生信技能树课程记录笔记(二)20220523-20220524
  10. HTML5期末大作业:健康网页设计——健康菜谱7页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  11. 如何在IBM SPSS Statistics中进行K均值聚类分析
  12. 模电——三极管各个引脚之间的电压关系
  13. 刀片服务器如何选择操作系统,刀片服务器如何选择操作系统?
  14. 电脑桌面云便签怎么通过便签快捷键锁屏加密?
  15. java制作安卓游戏脚本_autoA开源(用java写安卓无障碍脚本)
  16. BZOJ3811: 玛里苟斯
  17. 华为面试Android岗;群面+技术面+综合面+英语面
  18. python 代码编译
  19. java ldap 根ou_【LDAP】LDAP 中 CN, OU, DC 的含义
  20. 电竞入亚各方皆大欢喜,但电竞本身却不是最大赢家

热门文章

  1. firewall-cmd设置ipset简化配置
  2. 计算机毕业设计springcloud商城源码
  3. 离线数仓建设,企业大数据的业务驱动与技术实现丨03期直播回顾
  4. 【ML】线性回归的吉布斯采样(Gibbs Sampling)实现(python)
  5. Android逆向之旅---微信封了抖音分享功能,而我要把短视频分享到朋友圈!
  6. python Using or importing the ABCs from ‘collections‘ instead of from ‘collections.abc‘ is deprecate
  7. 如何使用粉末沉积工艺实现可扩展的多材料3D打印?
  8. 喝“饮料”后财物被偷 菲2华人起诉“迷魂党”成员
  9. oracle oaf lov 验证,OAF Lov 带出描述消失
  10. Exchange Server 2013 运维系列——邮箱配额设置(管理中心)