/** * * Cloudflare Workers Blog * * https://github.com/kasuganosoras/cloudflare-worker-blog * */ // 定义 Github 项目,文章会从这里读取 const github_base = "kasuganosoras/cloudflare-worker-blog"; // 站点名称 const site_name = "CloudFlare Workers Blog"; // 站点介绍 const site_desc = "一个用 CloudFlare Worker 搭建的博客"; // 资源文件 const highlight_css = "https://cn.tql.ink:4443/css/highlight.js/github.css"; const highlight_main = "https://cn.tql.ink:4443/js/highlight.min.js"; const highlight_pack = "https://cn.tql.ink:4443/js/highlight.pack.js"; // Copyright const copyright = `© 2019 ${site_name} | Github`; /* 配置到此结束 */ addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) var header = ` ${site_name}

${site_name}

${site_desc}


`; function getRequestParams(str) { var index = str.indexOf("?"); str = str.substring(index + 1, str.length); console.log(str); if(typeof(str) == "string"){ u = str.split("&"); var get = {}; for(var i in u){ var j = u[i].split("="); get[j[0]] = j[1]; } return get; } else { return {}; } } async function bloghandle(request) { var $_GET = getRequestParams(request.url); var data = header; if($_GET['p'] == undefined) { var url = "https://raw.githubusercontent.com/" + github_base + "/master/list.json"; const init = { method: "GET" }; const response = await fetch(url, init); var resptxt = await response.text(); var json = JSON.parse(resptxt); console.log(json); data += `

所有文章

`; for(var i = 0;i <= json.length;i++) { try { var filename = encodeURIComponent(json[i].file.replace(/"/g, "")); var time = json[i].time; var title = json[i].title; data += `

${title}

发表于 ${time}

`; } catch(e) { // 收声 } } if(json.length == 0) { data += `

暂时没有文章!

` } data += `

${copyright}

`; } else { data += `

${copyright}

`; } data += `
`; return data; } /** * Respond to the request * @param {Request} request */ async function handleRequest(request) { var resp = new Response(await bloghandle(request), {"Content-type": "text/html;charset=UTF-8", status: 200}); resp.headers.set("Content-Type", "text/html"); return resp; }