Skip to content

Commit 4aa9f11

Browse files
authored
[add] GitHub issue forms & actions of Article & Activity (#150)
1 parent 82631c5 commit 4aa9f11

File tree

6 files changed

+288
-4
lines changed

6 files changed

+288
-4
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: 新文章
2+
description: 自动生成新文章的 pull request
3+
title: 【新文章】(替换此处为文章标题)
4+
labels:
5+
- Article
6+
assignees:
7+
- TechQuery
8+
body:
9+
- type: input
10+
id: date
11+
attributes:
12+
label: 开篇时间
13+
description: 格式为 YYYY-MM-DD hh:mm
14+
- type: input
15+
id: file_name
16+
attributes:
17+
label: Markdown 文件名
18+
description: 标题翻译成英文后设为本文件的文件名
19+
validations:
20+
required: true
21+
- type: input
22+
id: updated
23+
attributes:
24+
label: 修订时间
25+
description: 格式为 YYYY-MM-DD hh:mm
26+
- type: input
27+
id: categories
28+
attributes:
29+
label: 分类
30+
description: 每级分类对应一级目录,写在本文件的文件名前面
31+
placeholder: 分类名应为一个首字母大写的英文单词,多个则用英文逗号隔开
32+
validations:
33+
required: true
34+
- type: input
35+
id: tags
36+
attributes:
37+
label: 标签
38+
description: 与内容相关的更多标签
39+
placeholder: 多个则用英文逗号隔开
40+
validations:
41+
required: true
42+
- type: input
43+
id: authors
44+
attributes:
45+
label: 原作者们的 GitHub 账号
46+
description: "如 https://github.com/TechQuery 中的 TechQuery"
47+
placeholder: 多个则用英文逗号隔开
48+
- type: input
49+
id: original
50+
attributes:
51+
label: 文章出处链接
52+
- type: textarea
53+
id: thumbnail
54+
attributes:
55+
label: 封面图片
56+
description: 请粘贴或上传一张图片
57+
- type: textarea
58+
id: content
59+
attributes:
60+
label: 文章正文
61+
validations:
62+
required: true
63+
- type: input
64+
id: remark
65+
attributes:
66+
label: 备注
67+
value: "@FreeCodeCamp-Chengdu/team-1"
68+
validations:
69+
required: true
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
name: 新活动
2+
description: 自动生成新活动的 pull request
3+
title: 【新活动】(替换此处为活动主题)
4+
labels:
5+
- Activity
6+
assignees:
7+
- TechQuery
8+
body:
9+
- type: input
10+
id: date
11+
attributes:
12+
label: 发起时间
13+
description: 格式为 YYYY-MM-DD hh:mm
14+
- type: input
15+
id: file_name
16+
attributes:
17+
label: Markdown 文件名
18+
description: 主题翻译成英文后设为本文件的文件名
19+
validations:
20+
required: true
21+
- type: dropdown
22+
id: category
23+
attributes:
24+
label: 分类
25+
options:
26+
- Salon
27+
- Workshop
28+
- Conference
29+
validations:
30+
required: true
31+
- type: dropdown
32+
id: type
33+
attributes:
34+
label: 活动类型
35+
options:
36+
- online
37+
- offline
38+
validations:
39+
required: true
40+
- type: input
41+
id: tags
42+
attributes:
43+
label: 标签
44+
description: 与内容相关的更多标签
45+
placeholder: 多个则用英文逗号隔开
46+
validations:
47+
required: true
48+
- type: input
49+
id: description
50+
attributes:
51+
label: 活动简介
52+
validations:
53+
required: true
54+
- type: input
55+
id: start
56+
attributes:
57+
label: 活动开始时间
58+
description: 格式为 YYYY-MM-DD hh:mm
59+
validations:
60+
required: true
61+
- type: input
62+
id: end
63+
attributes:
64+
label: 活动结束时间
65+
description: 格式为 YYYY-MM-DD hh:mm
66+
validations:
67+
required: true
68+
- type: input
69+
id: address
70+
attributes:
71+
label: 线下活动地址
72+
description: 市州、区县、路街、楼栋
73+
- type: input
74+
id: register_link
75+
attributes:
76+
label: 报名链接
77+
description: 如 https://jinshuju.net/f/xxxxxx
78+
- type: input
79+
id: mentors
80+
attributes:
81+
label: 讲师、教练们的 GitHub 账号
82+
description: 如 https://github.com/TechQuery 中的 TechQuery
83+
placeholder: 多个则用英文逗号隔开
84+
- type: input
85+
id: workers
86+
attributes:
87+
label: 组织者、志愿者们的 GitHub 账号
88+
description: 如 https://github.com/TechQuery 中的 TechQuery
89+
placeholder: 多个则用英文逗号隔开
90+
validations:
91+
required: true
92+
- type: input
93+
id: partners
94+
attributes:
95+
label: 合办方、场地方、赞助方
96+
placeholder: 多个则用英文逗号隔开
97+
- type: textarea
98+
id: photos
99+
attributes:
100+
label: 活动照片
101+
description: 第一张为活动封面图,第二张开始为照片画廊
102+
placeholder: 请粘贴或上传活动照片
103+
- type: textarea
104+
id: files
105+
attributes:
106+
label: 活动资料
107+
description: 活动相关的 PDF、PPT 等非纯文本文件
108+
placeholder: 请粘贴或上传活动文件
109+
- type: textarea
110+
id: content
111+
attributes:
112+
label: 宣传正文
113+
validations:
114+
required: true
115+
- type: input
116+
id: remark
117+
attributes:
118+
label: 备注
119+
value: "@FreeCodeCamp-Chengdu/team-1"
120+
validations:
121+
required: true

.github/workflows/formatter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
steps:
1010
- uses: actions/checkout@v4
1111

12-
- uses: pnpm/action-setup@v3
12+
- uses: pnpm/action-setup@v4
1313
with:
1414
version: 9
1515
- uses: actions/setup-node@v4

.github/workflows/save-activity.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Generate Activity Markdown
2+
on:
3+
issues:
4+
types:
5+
- labeled
6+
jobs:
7+
generate-markdown:
8+
if: contains(github.event.issue.labels.*.name, 'Salon') || contains(github.event.issue.labels.*.name, 'Workshop') || contains(github.event.issue.labels.*.name, 'Conference')
9+
runs-on: ubuntu-latest
10+
permissions:
11+
pull-requests: write
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- id: issue-parser
16+
uses: stefanbuck/github-issue-parser@v3
17+
with:
18+
template-path: ".github/ISSUE_TEMPLATE/new_activity.yml"
19+
20+
- name: Generate Markdown file
21+
env:
22+
CATEGORY: ${{ steps.issue-parser.outputs.issueparser_category }}
23+
TYPE: ${{ steps.issue-parser.outputs.issueparser_type }}
24+
run: |
25+
cat <<EOF > _posts/Activity/$CATEGORY/${{ steps.issue-parser.outputs.issueparser_file_name }}.md
26+
---
27+
title: "${{ github.event.issue.title }}"
28+
date: ${{ steps.issue-parser.outputs.issueparser_date || github.event.issue.created_at }}
29+
categories: [Activity, $CATEGORY]
30+
tags: [$TYPE, ${{ steps.issue-parser.outputs.issueparser_tags }}]
31+
toc: true
32+
description: "${{ steps.issue-parser.outputs.issueparser_description }}"
33+
start: ${{ steps.issue-parser.outputs.issueparser_start }}
34+
end: ${{ steps.issue-parser.outputs.issueparser_end }}
35+
address: "${{ steps.issue-parser.outputs.issueparser_address }}"
36+
links:
37+
报名: ${{ steps.issue-parser.outputs.issueparser_links }}
38+
mentors: [${{ steps.issue-parser.outputs.issueparser_mentors }}]
39+
workers: [${{ steps.issue-parser.outputs.issueparser_workers }}]
40+
partners: [${{ steps.issue-parser.outputs.issueparser_partners }}]
41+
photos: [${{ steps.issue-parser.outputs.issueparser_photos }}]
42+
files: [${{ steps.issue-parser.outputs.issueparser_files }}]
43+
---
44+
45+
${{ steps.issue-parser.outputs.issueparser_content }}
46+
EOF
47+
48+
- uses: peter-evans/create-pull-request@v6
49+
with:
50+
title: "[add] ${{ github.event.issue.title }} activity"
51+
body: "closes #${{ github.event.issue.number }}"

.github/workflows/save-article.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Generate Markdown
2+
on:
3+
issues:
4+
types:
5+
- labeled
6+
jobs:
7+
generate-markdown:
8+
if: contains(github.event.issue.labels.*.name, 'Article')
9+
runs-on: ubuntu-latest
10+
permissions:
11+
pull-requests: write
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- id: issue-parser
16+
uses: stefanbuck/github-issue-parser@v3
17+
with:
18+
template-path: ".github/ISSUE_TEMPLATE/new_article.yml"
19+
20+
- name: Generate Markdown file
21+
env:
22+
CATEGORIES: ${{ steps.issue-parser.outputs.issueparser_categories }}
23+
run: |
24+
cat <<EOF > _posts/$(echo $CATEGORIES | tr ',' '/')/${{ steps.issue-parser.outputs.issueparser_file_name }}.md
25+
---
26+
title: "${{ github.event.issue.title }}"
27+
date: ${{ steps.issue-parser.outputs.issueparser_date || github.event.issue.created_at }}
28+
updated: ${{ steps.issue-parser.outputs.issueparser_updated }}
29+
categories: [$CATEGORIES]
30+
tags: [${{ steps.issue-parser.outputs.issueparser_tags }}]
31+
authors: [${{ steps.issue-parser.outputs.issueparser_authors }}]
32+
original: ${{ steps.issue-parser.outputs.issueparser_original }}
33+
toc: true
34+
thumbnail: ${{ steps.issue-parser.outputs.issueparser_thumbnail }}
35+
---
36+
37+
${{ steps.issue-parser.outputs.issueparser_content }}
38+
EOF
39+
40+
- uses: peter-evans/create-pull-request@v6
41+
with:
42+
title: "[add] ${{ github.event.issue.title }} article"
43+
body: "closes #${{ github.event.issue.number }}"

ReadMe.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010

1111
本计划是 [freeCodeCamp 中文社区文章翻译计划][5]的扩展项目,在相同的宗旨和工作流程下翻译 freeCodeCamp 社区之外的优秀开源、技术文章。
1212

13-
- [新增原文][6]
14-
- 翻译文章:[![gitlocalized](https://gitlocalize.com/repo/9653/whole_project/badge.svg)][7]
15-
- [进度看板][8]
13+
- [新增原文][6]
14+
- 翻译文章:[![gitlocalized](https://gitlocalize.com/repo/9653/whole_project/badge.svg)][7]
15+
- [进度看板][8]
1616

1717
## 内容授权
1818

0 commit comments

Comments
 (0)