@webywz/breathing-github-profile 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -2
- package/dist/generator.d.ts +3 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +40 -20
- package/dist/generator.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -116,7 +116,23 @@ Optional: set `GITHUB_TOKEN` or `GH_TOKEN` (or use `secrets.GITHUB_TOKEN` in Act
|
|
|
116
116
|
| `intro.zh` / `intro.en` | string | one of zh/en (non-empty) | zh-only, en-only, or both · 仅中文 / 仅英文 / 双语均可 |
|
|
117
117
|
| `featuredRepos` | string[] | no | Pinned repo names |
|
|
118
118
|
| `sections` | Section[] | no | Ordered sections |
|
|
119
|
-
| `style` | StyleConfig | no |
|
|
119
|
+
| `style` | StyleConfig | no | See style fields below · 见下方 style 说明 |
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Style · 样式字段
|
|
123
|
+
|
|
124
|
+
| Field | Type | Default | Notes |
|
|
125
|
+
| --- | --- | --- | --- |
|
|
126
|
+
| `icons` | boolean | `true` | When `false`, omit emoji from headings, stats table, and repo cards · `false` 时去掉标题/统计表/仓库卡片中的 emoji |
|
|
127
|
+
| `theme` | `'light' \| 'dark' \| 'auto'` | `auto` | **Reserved** — pure Markdown profiles ignore theme; kept for forward compatibility · **预留字段**,纯 Markdown 主页不生效 |
|
|
128
|
+
| `badges` | boolean | `true` | **Reserved** — not applied by the generator yet · **预留字段**,生成器暂未读取 |
|
|
129
|
+
|
|
130
|
+
```yaml
|
|
131
|
+
style:
|
|
132
|
+
icons: true # set false for emoji-free output
|
|
133
|
+
theme: auto # reserved
|
|
134
|
+
badges: true # reserved
|
|
135
|
+
```
|
|
120
136
|
|
|
121
137
|
### Section types · 章节类型
|
|
122
138
|
|
|
@@ -190,7 +206,7 @@ jobs:
|
|
|
190
206
|
- uses: actions/setup-node@v4
|
|
191
207
|
with:
|
|
192
208
|
node-version: '20'
|
|
193
|
-
- run: npm i @webywz/breathing-github-profile@1.0.
|
|
209
|
+
- run: npm i @webywz/breathing-github-profile@1.0.7
|
|
194
210
|
- name: Refresh README
|
|
195
211
|
env:
|
|
196
212
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
package/dist/generator.d.ts
CHANGED
|
@@ -3,9 +3,12 @@ export declare class ReadmeGenerator {
|
|
|
3
3
|
private config;
|
|
4
4
|
private data;
|
|
5
5
|
constructor(config: ProfileConfig, data: ProfileData);
|
|
6
|
+
private get iconsEnabled();
|
|
7
|
+
private icon;
|
|
6
8
|
generate(): string;
|
|
7
9
|
private generateHeader;
|
|
8
10
|
private generateIntro;
|
|
11
|
+
private defaultTitle;
|
|
9
12
|
private generateSection;
|
|
10
13
|
private generateStats;
|
|
11
14
|
private generateLanguages;
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQpE,qBAAa,eAAe;IAExB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;gBADJ,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW;IAG3B,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,IAAI;IAIZ,QAAQ,IAAI,MAAM;IAiBlB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,cAAc;CAcvB;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,aAAa,EAAE,GAC9B,MAAM,CAsBR"}
|
package/dist/generator.js
CHANGED
|
@@ -2,11 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReadmeGenerator = void 0;
|
|
4
4
|
exports.updateReadmeMarkers = updateReadmeMarkers;
|
|
5
|
+
const DEFAULT_TITLES = {
|
|
6
|
+
stats: { withIcons: '📊 GitHub 统计', plain: 'GitHub 统计' },
|
|
7
|
+
languages: { withIcons: '💻 编程语言', plain: '编程语言' },
|
|
8
|
+
repos: { withIcons: '🔥 精选项目', plain: '精选项目' },
|
|
9
|
+
};
|
|
5
10
|
class ReadmeGenerator {
|
|
6
11
|
constructor(config, data) {
|
|
7
12
|
this.config = config;
|
|
8
13
|
this.data = data;
|
|
9
14
|
}
|
|
15
|
+
get iconsEnabled() {
|
|
16
|
+
return this.config.style?.icons !== false;
|
|
17
|
+
}
|
|
18
|
+
icon(emoji) {
|
|
19
|
+
return this.iconsEnabled ? `${emoji} ` : '';
|
|
20
|
+
}
|
|
10
21
|
generate() {
|
|
11
22
|
const sections = [];
|
|
12
23
|
sections.push(this.generateHeader());
|
|
@@ -21,7 +32,8 @@ class ReadmeGenerator {
|
|
|
21
32
|
}
|
|
22
33
|
generateHeader() {
|
|
23
34
|
const { user } = this.data;
|
|
24
|
-
|
|
35
|
+
const wave = this.iconsEnabled ? ' 👋' : '';
|
|
36
|
+
return `# Hi there, I'm ${user.name || user.login}${wave}
|
|
25
37
|
|
|
26
38
|
<div align="center">
|
|
27
39
|
<img src="${user.avatar_url}" width="150" height="150" alt="${user.login}" style="border-radius: 50%;" />
|
|
@@ -30,18 +42,26 @@ class ReadmeGenerator {
|
|
|
30
42
|
generateIntro() {
|
|
31
43
|
const { intro } = this.config;
|
|
32
44
|
const parts = [];
|
|
45
|
+
const aboutZh = this.iconsEnabled ? '## 👨💻 关于我' : '## 关于我';
|
|
46
|
+
const aboutEn = this.iconsEnabled ? '## 👨💻 About Me' : '## About Me';
|
|
33
47
|
if (intro.zh?.trim()) {
|
|
34
|
-
parts.push(
|
|
48
|
+
parts.push(`${aboutZh}
|
|
35
49
|
|
|
36
50
|
${intro.zh.trim()}`);
|
|
37
51
|
}
|
|
38
52
|
if (intro.en?.trim()) {
|
|
39
|
-
parts.push(
|
|
53
|
+
parts.push(`${aboutEn}
|
|
40
54
|
|
|
41
55
|
${intro.en.trim()}`);
|
|
42
56
|
}
|
|
43
57
|
return parts.join('\n\n');
|
|
44
58
|
}
|
|
59
|
+
defaultTitle(type) {
|
|
60
|
+
const entry = DEFAULT_TITLES[type];
|
|
61
|
+
if (!entry)
|
|
62
|
+
return undefined;
|
|
63
|
+
return this.iconsEnabled ? entry.withIcons : entry.plain;
|
|
64
|
+
}
|
|
45
65
|
generateSection(section) {
|
|
46
66
|
const marker = section.marker || section.type.toUpperCase();
|
|
47
67
|
let content = '';
|
|
@@ -61,23 +81,23 @@ ${intro.en.trim()}`);
|
|
|
61
81
|
}
|
|
62
82
|
if (!content)
|
|
63
83
|
return '';
|
|
84
|
+
const title = section.title?.trim() || this.defaultTitle(section.type);
|
|
85
|
+
const heading = title ? `## ${title}\n\n` : '';
|
|
64
86
|
return `<!--${marker}:START-->
|
|
65
|
-
${
|
|
87
|
+
${heading}${content}
|
|
66
88
|
<!--${marker}:END-->`;
|
|
67
89
|
}
|
|
68
90
|
generateStats() {
|
|
69
91
|
const { user, totalStars, totalForks } = this.data;
|
|
70
|
-
return
|
|
71
|
-
|
|
72
|
-
<div align="center">
|
|
92
|
+
return `<div align="center">
|
|
73
93
|
|
|
74
94
|
| 统计项 | 数值 |
|
|
75
95
|
|:---:|:---:|
|
|
76
|
-
| 🌟
|
|
77
|
-
| 🍴
|
|
78
|
-
| 📦
|
|
79
|
-
| 👥
|
|
80
|
-
| 💫
|
|
96
|
+
| ${this.icon('🌟')}总 Stars | ${totalStars} |
|
|
97
|
+
| ${this.icon('🍴')}总 Forks | ${totalForks} |
|
|
98
|
+
| ${this.icon('📦')}公开仓库 | ${user.public_repos} |
|
|
99
|
+
| ${this.icon('👥')}关注者 | ${user.followers} |
|
|
100
|
+
| ${this.icon('💫')}正在关注 | ${user.following} |
|
|
81
101
|
|
|
82
102
|
</div>`;
|
|
83
103
|
}
|
|
@@ -92,9 +112,7 @@ ${section.title ? `## ${section.title}\n\n` : ''}${content}
|
|
|
92
112
|
const percentage = ((count / Object.values(languages).reduce((a, b) => a + b, 0)) * 100).toFixed(1);
|
|
93
113
|
return `| ${lang} | ${count} | ${percentage}% |`;
|
|
94
114
|
}).join('\n');
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
| 语言 | 仓库数 | 占比 |
|
|
115
|
+
return `| 语言 | 仓库数 | 占比 |
|
|
98
116
|
|:---|:---:|:---:|
|
|
99
117
|
${rows}`;
|
|
100
118
|
}
|
|
@@ -115,14 +133,16 @@ ${rows}`;
|
|
|
115
133
|
const cards = displayRepos.map(repo => {
|
|
116
134
|
const lang = repo.language || 'N/A';
|
|
117
135
|
const desc = repo.description || '暂无描述';
|
|
118
|
-
|
|
136
|
+
const namePrefix = this.icon('📦');
|
|
137
|
+
const meta = this.iconsEnabled
|
|
138
|
+
? `⭐ ${repo.stargazers_count} stars | 🍴 ${repo.forks_count} forks | 📝 ${lang}`
|
|
139
|
+
: `${repo.stargazers_count} stars | ${repo.forks_count} forks | ${lang}`;
|
|
140
|
+
return `### ${namePrefix}[${repo.name}](${repo.html_url})
|
|
119
141
|
${desc}
|
|
120
142
|
|
|
121
|
-
|
|
143
|
+
${meta}`;
|
|
122
144
|
}).join('\n\n');
|
|
123
|
-
return
|
|
124
|
-
|
|
125
|
-
${cards}`;
|
|
145
|
+
return cards;
|
|
126
146
|
}
|
|
127
147
|
generateFooter() {
|
|
128
148
|
const { updatedAt } = this.data;
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|