如何使用 javascript 数据创建 md 文件到 github
How to create a md file using javascript data onto github
我正在通过 Netlify 表单获取表单提交数据。
我希望能够在提交表单时在 github 上创建一个包含相同数据的 md 文件。
到目前为止,在我的 submission-created.js
函数(由客户端提交触发)中,我正在像这样获取客户端的提交数据:
exports.handler = async function(event, context, callback) {
const data = JSON.parse(event.body).payload.data;
let date = new Date().toUTCString().replace(/[\s|,|:]/g, "-");
date = date.substring(5, date.length);
let courtData =
`---
name: Automatic-file-${date}
location:
lat: ${data?.latitude}
lng: ${data?.longitude}
email: ${data?.email}
byhoopers: ${data?.byhoopers ? data?.byhoopers : false}
openUse: ${data?.openUse}
openTime: ${data?.openTime ? data?.openTime : "unknown"}
social: ${data?.social}
image: ${data?.file?.url}
formcourt: true
---
${data?.info ? data?.info : ""}
![](${data?.file2?.url ? data?.file2?.url : ""})
![](${data?.file3?.url ? data?.file3?.url : ""})
![](${data?.file4?.url ? data?.file4?.url : ""})
![](${data?.file5?.url ? data?.file5?.url : ""})
`;
return {
statusCode: 200,
body: JSON.stringify(data),
};
};
工作正常,但现在我需要将此数据保存到 md 文件并将其推送到 github。
我正在做类似的事情,但正在努力进行下一步:
let githubContent = Buffer.from(courtData).toString('base64');
let courtInfo = JSON.stringify({
message: `new court file ${date}`,
content: githubContent,
});
let githubPush = {
method: "put",
url: `https://api.github.com/repos/*****${date}.md`,
headers: {
Authorization: "*********",
"Content-Type": "application/json",
},
data: courtInfo,
};
Axios 是这样完成工作的:
await axios(githubPush)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
return {
statusCode: 200,
body: JSON.stringify(data),
};
进一步说明:
此外,发现使用 Netlify Secrets 是隐藏 guthub 令牌以提高安全性的更好方法。
const API_SECRET = process.env.API_SECRET;
然后在 root 上创建一个 .env
文件 API_SECRET = *****
,将 .env
添加到 .gitignore
最后在 Netlify 的平台上创建 environment variables
at ENVIRONMENT
在网站的 Build & Deploy
选项卡中。
我正在通过 Netlify 表单获取表单提交数据。
我希望能够在提交表单时在 github 上创建一个包含相同数据的 md 文件。
到目前为止,在我的 submission-created.js
函数(由客户端提交触发)中,我正在像这样获取客户端的提交数据:
exports.handler = async function(event, context, callback) {
const data = JSON.parse(event.body).payload.data;
let date = new Date().toUTCString().replace(/[\s|,|:]/g, "-");
date = date.substring(5, date.length);
let courtData =
`---
name: Automatic-file-${date}
location:
lat: ${data?.latitude}
lng: ${data?.longitude}
email: ${data?.email}
byhoopers: ${data?.byhoopers ? data?.byhoopers : false}
openUse: ${data?.openUse}
openTime: ${data?.openTime ? data?.openTime : "unknown"}
social: ${data?.social}
image: ${data?.file?.url}
formcourt: true
---
${data?.info ? data?.info : ""}
![](${data?.file2?.url ? data?.file2?.url : ""})
![](${data?.file3?.url ? data?.file3?.url : ""})
![](${data?.file4?.url ? data?.file4?.url : ""})
![](${data?.file5?.url ? data?.file5?.url : ""})
`;
return {
statusCode: 200,
body: JSON.stringify(data),
};
};
工作正常,但现在我需要将此数据保存到 md 文件并将其推送到 github。
我正在做类似的事情,但正在努力进行下一步:
let githubContent = Buffer.from(courtData).toString('base64');
let courtInfo = JSON.stringify({
message: `new court file ${date}`,
content: githubContent,
});
let githubPush = {
method: "put",
url: `https://api.github.com/repos/*****${date}.md`,
headers: {
Authorization: "*********",
"Content-Type": "application/json",
},
data: courtInfo,
};
Axios 是这样完成工作的:
await axios(githubPush)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
return {
statusCode: 200,
body: JSON.stringify(data),
};
进一步说明: 此外,发现使用 Netlify Secrets 是隐藏 guthub 令牌以提高安全性的更好方法。
const API_SECRET = process.env.API_SECRET;
然后在 root 上创建一个 .env
文件 API_SECRET = *****
,将 .env
添加到 .gitignore
最后在 Netlify 的平台上创建 environment variables
at ENVIRONMENT
在网站的 Build & Deploy
选项卡中。