在 Gridea 发布的网站中使用 Jsdelivr

关于 EJS 的一些其它使用可以参考这里面的文章。

替换文章图片

实际上,写的文章在 EJS 模板里可以当作字符串来处理。只需要掌握基础的 js 字符串知识,就可以轻松实现替换链接的功能。

代码如下:

<%- Content();%><%  -%>
<%
function refineContent(str){
   indexC = str.indexOf('<img');
   while(indexC != -1){
		indexEnd = str.indexOf('>', indexC);
		srcImage = str.indexOf('src', indexC);
       var s = "#Your domain here"; 
        domain = str.substring(srcImage + 5, srcImage + 5 + s.length); 
		if (domain == "#Your domain here"){ 
			str = str.substring(0, srcImage + 5) + 'https://cdn.jsdelivr.net/gh/<user>/<repo>@master/' + str.substring(str.indexOf("post-images", indexC));
		}
	    indexC = str.indexOf('<img', indexEnd);
   }
    return str;
}
function Content(){
    let con= post.content;
    con = refineContent(con);
    return con;
}
%>

使用以上代码的时候只需要把 post.ejs 中的 <%- post.content %> 替换成如上代码即可。

替换 post-feature 头图

function postFeature(){
	postFeatureImg = post.feature;
	if (postFeatureImg.indexOf("Your domain") != -1){
		postFeatureImg = "https://cdn.jsdelivr.net/gh/<user>/<repo>@master/" + postFeatureImg.substring(postFeatureImg.indexOf("post-images"))
	}
	return postFeatureImg;
}

把如上内容也放在 <% %> 的里面,接着再替换 post.ejs 中的 <%= post.feature %><%- postFeature();%><% -%> 就🆗了。