AI 编程/AI Short(提示词库)
A

AI Short(提示词库)

按场景分类的 AI 提示词库,复制后即可用于 ChatGPT、Claude 等对话工具。

GitHubTrends

这是一条可直接复制的更多提示词提示词「GitHubTrends」。适用于 ChatGPT、Claude、Gemini、Cursor:复制后替换方括号里的占位内容再发送。

更多提示词Awesome Prompts0 次复制

提示词正文

---
name: GitHubTrends
description: 显示GitHub热门项目趋势,生成可视化仪表板。USE WHEN github trends, trending projects, hot repositories, popular github projects, generate dashboard, create webpage.
version: 2.0.0
---

## Customization

**Before executing, check for user customizations at:**
`~/.claude/skills/CORE/USER/SKILLCUSTOMIZATIONS/GitHubTrends/`

If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.

# GitHubTrends - GitHub热门项目趋势

**快速发现GitHub上最受欢迎的开源项目。**

---

## Philosophy

GitHub trending是发现优质开源项目的最佳途径。这个skill让老王我能快速获取当前最热门的项目列表,按时间周期(每日/每周)和编程语言筛选,帮助发现值得学习和贡献的项目。

---

## Quick Start

```bash
# 查看本周最热门的项目(默认)
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly

# 查看今日最热门的项目
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily

# 按语言筛选
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=Python

# 指定显示数量
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --limit=20
```

---

## When to Use This Skill

**Core Triggers - Use this skill when user says:**

### Direct Requests
- "show github trends" 或 "github trending"
- "显示热门项目" 或 "看看有什么热门项目"
- "what's trending on github" 或 "github hot projects"
- "本周热门项目" 或 "weekly trending"
- "今日热门项目" 或 "daily trending"

### Discovery Requests
- "discover popular projects" 或 "发现热门项目"
- "show repositories trending" 或 "显示trending仓库"
- "github上什么最火" 或 "what's hot on github"
- "找点好项目看看" 或 "find good projects"

### Language-Specific
- "TypeScript trending projects" 或 "TypeScript热门项目"
- "Python trending" 或 "Python热门项目"
- "show trending Rust projects" 或 "显示Rust热门项目"
- "Go语言热门项目" 或 "trending Go projects"

### Dashboard & Visualization
- "生成 GitHub trending 仪表板" 或 "generate trending dashboard"
- "创建趋势网页" 或 "create trending webpage"
- "生成交互式报告" 或 "generate interactive report"
- "export trending dashboard" 或 "导出仪表板"
- "可视化 GitHub 趋势" 或 "visualize github trends"

---

## Core Capabilities

### 获取趋势列表
- **每日趋势** - 过去24小时最热门项目
- **每周趋势** - 过去7天最热门项目(默认)
- **语言筛选** - 按编程语言过滤(TypeScript, Python, Go, Rust等)
- **自定义数量** - 指定返回项目数量(默认10个)

### 生成可视化仪表板 🆕
- **交互式HTML** - 生成交互式网页仪表板
- **数据可视化** - 语言分布饼图、Stars增长柱状图
- **技术新闻** - 集成 Hacker News 技术资讯
- **实时筛选** - 按语言筛选、排序、搜索功能
- **响应式设计** - 支持桌面、平板、手机

### 项目信息
- 项目名称和描述
- Star数量和变化
- 编程语言
- 项目URL

---

## Tool Usage

### GetTrending.ts

**Location:** `Tools/GetTrending.ts`

**功能:** 从GitHub获取trending项目列表

**参数:**
- `period` - 时间周期:`daily` 或 `weekly`(默认:weekly)
- `--language` - 编程语言筛选(可选)
- `--limit` - 返回项目数量(默认:10)

**使用示例:**
```bash
# 基本用法
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly

# 带参数
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript --limit=15

# 简写
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily -l=Python
```

**实现方式:**
使用 GitHub官方trending页面:https://github.com/trending
通过 fetch API 读取页面内容并解析

---

### GenerateDashboard.ts 🆕

**Location:** `Tools/GenerateDashboard.ts`

**功能:** 生成交互式数据可视化仪表板HTML文件

**参数:**
- `--period` - 时间周期:`daily` 或 `weekly`(默认:weekly)
- `--language` - 编程语言筛选(可选)
- `--limit` - 返回项目数量(默认:10)
- `--include-news` - 包含技术新闻
- `--news-count` - 新闻数量(默认:10)
- `--output` - 输出文件路径(默认:./github-trends.html)

**使用示例:**
```bash
# 基本用法 - 生成本周仪表板
bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts

# 包含技术新闻
bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts --include-news

# TypeScript 项目每日仪表板
bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts \
  --period daily \
  --language TypeScript \
  --limit 20 \
  --include-news \
  --output ~/ts-daily.html
```

**实现方式:**
- 获取 GitHub trending 项目数据
- 获取 Hacker News 技术新闻
- 使用 Handlebars 模板引擎渲染 HTML
- 集成 Tailwind CSS 和 Chart.js
- 生成完全独立的 HTML 文件(通过 CDN 加载依赖)

---

## Output Format

```markdown
# GitHub Trending Projects - Weekly (2025-01-19)

## 1. vercel/next.js - ⭐ 125,342 (+1,234 this week)
**Language:** TypeScript
**Description:** The React Framework for the Web
**URL:** https://github.com/vercel/next.js

## 2. microsoft/vscode - ⭐ 160,890 (+987 this week)
**Language:** TypeScript
**Description:** Visual Studio Code
**URL:** https://github.com/microsoft/vscode

...

---
📊 Total: 10 projects | Language: All | Period: Weekly
```

---

## Supported Languages

常用编程语言筛选:
- **TypeScript** - TypeScript项目
- **JavaScript** - JavaScript项目
- **Python** - Python项目
- **Go** - Go语言项目
- **Rust** - Rust项目
- **Java** - Java项目
- **C++** - C++项目
- **Ruby** - Ruby项目
- **Swift** - Swift项目
- **Kotlin** - Kotlin项目

---

## Workflow Integration

这个skill可以被其他skill调用:
- **OSINT** - 在调查技术栈时发现热门工具
- **Research** - 研究特定语言生态系统的趋势
- **System** - 发现有用的PAI相关项目

---

## Technical Notes

**数据来源:** GitHub官方trending页面
**更新频率:** 每小时更新一次
**无需认证:** 使用公开页面,无需GitHub API token
**解析方式:** 通过HTML解析提取项目信息

**错误处理:**
- 网络错误会显示友好提示
- 解析失败会返回原始HTML供调试
- 支持的语言参数不区分大小写

---

## Future Enhancements

可能的未来功能:
- 支持月度趋势(如果GitHub提供)
- 按stars范围筛选(1k+, 10k+, 100k+)
- 保存历史数据用于趋势分析
- 集成到其他skill的自动化工作流

---

## Voice Notification

**When executing a workflow, do BOTH:**

1. **Send voice notification:**
   ```bash
   curl -s -X POST http://localhost:8888/notify \
     -H "Content-Type: application/json" \
     -d '{"message": "Running the GitHubTrends workflow"}' \
     > /dev/null 2>&1 &
   ```

2. **Output text notification:**
   ```
   Running the **GitHubTrends** workflow...
   ```

**Full documentation:** `~/.claude/skills/CORE/SkillNotifications.md`
FILE:README.md
# GitHubTrends Skill

**快速发现GitHub上最受欢迎的开源项目,生成可视化仪表板!**

## 功能特性

### 基础功能
- ✅ 获取每日/每周热门项目列表
- ✅ 按编程语言筛选(TypeScript, Python, Go, Rust等)
- ✅ 自定义返回项目数量
- ✅ 显示Star总数和周期增长
- ✅ 无需GitHub API token

### 可视化仪表板 🆕
- ✨ **交互式HTML** - 生成交互式网页仪表板
- 📊 **数据可视化** - 语言分布饼图、Stars增长柱状图
- 📰 **技术新闻** - 集成 Hacker News 最新资讯
- 🔍 **实时筛选** - 按语言筛选、排序、搜索
- 📱 **响应式设计** - 支持桌面、平板、手机
- 🎨 **美观界面** - Tailwind CSS + GitHub 风格

## 快速开始

### 查看本周热门项目(默认)

```bash
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly
```

### 查看今日热门项目

```bash
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily
```

### 按语言筛选

```bash
# TypeScript热门项目
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript

# Python热门项目
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=Python

# Go热门项目
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly -l=Go
```

### 指定返回数量

```bash
# 返回20个项目
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --limit=20

# 组合使用:返回15个TypeScript项目
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript --limit=15
```

---

## 生成可视化仪表板 🆕

### 基本用法

```bash
# 生成本周趋势仪表板(默认)
bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts
```

### 包含技术新闻

```bash
# 生成包含 Hacker News 的仪表板
bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts --include-news
```

### 高级选项

```bash
# 生成 TypeScript 项目每日仪表板,包含 15 条新闻
bun ~/.claude/skills/GitHubTrends/Tools/GenerateDashboard.ts \
  --period daily \
  --language TypeScript \
  --limit 20 \
  --include-news \
  --news-count 15 \
  --output ~/Downloads/ts-daily-trends.html
```

### 仪表板功能

生成的 HTML 文件包含:
- **统计概览** - 总项目数、总 stars、top 项目
- **语言分布图** - 饼图展示各语言占比
- **Stars 增长图** - 柱状图展示增长趋势
- **项目卡片** - 美观的卡片式项目展示
- **技术新闻** - Hacker News 最新资讯
- **交互功能** - 筛选、排序、搜索
- **响应式** - 自适应各种屏幕尺寸

---

## 输出示例

```markdown
# GitHub Trending Projects - Weekly (2026-01-19)

📊 **Total:** 10 projects | **Language:** All | **Period:** Weekly

---

## 1. vercel/next.js - ⭐ 125,342 (+1,234 this week)
**Language:** TypeScript
**Description:** The React Framework for the Web
**URL:** https://github.com/vercel/next.js

## 2. microsoft/vscode - ⭐ 160,890 (+987 this week)
**Language:** TypeScript
**Description:** Visual Studio Code
**URL:** https://github.com/microsoft/vscode

...
```

## 参数说明

| 参数 | 说明 | 默认值 | 可选值 |
|------|------|--------|--------|
| `period` | 时间周期 | `weekly` | `daily`, `weekly` |
| `--language` | 编程语言筛选 | 全部 | TypeScript, Python, Go, Rust, Java等 |
| `--limit` | 返回项目数量 | 10 | 任意正整数 |

## 支持的语言

常用的编程语言都可以作为筛选条件:
- **TypeScript** - TypeScript项目
- **JavaScript** - JavaScript项目
- **Python** - Python项目
- **Go** - Go语言项目
- **Rust** - Rust项目
- **Java** - Java项目
- **C++** - C++项目
- **Ruby** - Ruby项目
- **Swift** - Swift项目
- **Kotlin** - Kotlin项目

## Skill 触发词

当你说以下任何内容时,这个skill会被触发:

- "show github trends" / "github trending"
- "显示热门项目" / "看看有什么热门项目"
- "weekly trending" / "本周热门项目"
- "daily trending" / "今日热门项目"
- "TypeScript trending" / "Python trending"
- "what's hot on github" / "github上什么最火"

## 技术实现

- **数据源**: GitHub官方trending页面 (https://github.com/trending)
- **解析方式**: HTML解析提取项目信息
- **认证**: 无需GitHub API token
- **更新频率**: 每小时更新一次

## 目录结构

```
~/.claude/skills/GitHubTrends/
├── SKILL.md              # Skill主文件
├── README.md             # 使用文档(本文件)
├── Tools/
│   └── GetTrending.ts    # 获取trending数据的工具
└── Workflows/
    └── GetTrending.md    # 工作流文档
```

## 注意事项

1. **网络要求**: 需要能访问GitHub官网
2. **更新频率**: 数据每小时更新,不是实时
3. **解析准确性**: GitHub页面结构变化可能影响解析,如遇问题请检查 `/tmp/github-trending-debug-*.html`
4. **语言参数**: 不区分大小写,`--language=typescript` 和 `--language=TypeScript` 效果相同

## 已知问题

- GitHub trending页面的HTML结构复杂,某些项目的URL和名称可能解析不完整
- 如果GitHub页面结构变化,工具可能需要更新解析逻辑

## 未来改进

- [ ] 支持保存历史数据用于趋势分析
- [ ] 按stars范围筛选(1k+, 10k+, 100k+)
- [ ] 更智能的HTML解析(使用HTML解析库而非正则)
- [ ] 集成到其他skill的自动化工作流

## 贡献

如果发现问题或有改进建议,欢迎提出!

---

**Made with ❤️ by 老王**
FILE:Tools/GetTrending.ts
#!/usr/bin/env bun
/**
 * GitHub Trending Projects Fetcher
 *
 * 从GitHub获取trending项目列表
 * 支持每日/每周趋势,按语言筛选
 */

import { $ } from "bun";

interface TrendingProject {
  rank: number;
  name: string;
  description: string;
  language: string;
  stars: string;
  starsThisPeriod: string;
  url: string;
}

interface TrendingOptions {
  period: "daily" | "weekly";
  language?: string;
  limit: number;
}

function buildTrendingUrl(options: TrendingOptions): string {
  const baseUrl = "https://github.com/trending";
  const since = options.period === "daily" ? "daily" : "weekly";
  let url = `${baseUrl}?since=${since}`;
  if (options.language) {
    url += `&language=${encodeURIComponent(options.language.toLowerCase())}`;
  }
  return url;
}

function parseTrendingProjects(html: string, limit: number): TrendingProject[] {
  const projects: TrendingProject[] = [];
  try {
    const articleRegex = /<article[^>]*>([\s\S]*?)<\/article>/g;
    const articles = html.match(articleRegex) || [];
    const articlesToProcess = articles.slice(0, limit);
    articlesToProcess.forEach((article, index) => {
      try {
        const headingMatch = article.match(/<h[12][^>]*>([\s\S]*?)<\/h[12]>/);
        let repoName: string | null = null;
        if (headingMatch) {
          const headingContent = headingMatch[1];
          const validLinkMatch = headingContent.match(
            /<a[^>]*href="\/([^\/"\/]+\/[^\/"\/]+)"[^>]*>(?![^<]*login)/
          );
          if (validLinkMatch) {
            repoName = validLinkMatch[1];
          }
        }
        if (!repoName) {
          const repoMatch = article.match(
            /<a[^>]*href="\/([a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+)"[^>]*>(?!.*(?:login|stargazers|forks|issues))/
          );
          repoName = repoMatch ? repoMatch[1] : null;
        }
        const descMatch = article.match(/<p[^>]*class="[^"]*col-9[^"]*"[^>]*>([\s\S]*?)<\/p>/);
        const description = descMatch
          ? descMatch[1]
              .replace(/<[^>]+>/g, "")
              .replace(/&amp;/g, "&")
              .replace(/&lt;/g, "<")
              .replace(/&gt;/g, ">")
              .replace(/&quot;/g, '"')
              .trim()
              .substring(0, 200)
          : "No description";
        const langMatch = article.match(/<span[^>]*itemprop="programmingLanguage"[^>]*>([^<]+)<\/span>/);
        const language = langMatch ? langMatch[1].trim() : "Unknown";
        const starsMatch = article.match(/<a[^>]*href="\/[^"]+\/stargazers"[^>]*>(\d[\d,]*)\s*stars?/);
        const totalStars = starsMatch ? starsMatch[1] : "0";
        const starsAddedMatch = article.match(/(\d[\d,]*)\s*stars?\s*(?:today|this week)/i);
        const starsAdded = starsAddedMatch ? `+${starsAddedMatch[1]}` : "";
        if (repoName && !repoName.includes("login") && !repoName.includes("return_to")) {
          projects.push({
            rank: index + 1,
            name: repoName,
            description,
            language,
            stars: totalStars,
            starsThisPeriod: starsAdded,
            url: `https://github.com/${repoName}`,
          });
        }
      } catch (error) {
        console.error(`解析第${index + 1}个项目失败:`, error);
      }
    });
  } catch (error) {
    console.error("解析trending项目失败:", error);
  }
  return projects;
}

function formatProjects(projects: TrendingProject[], options: TrendingOptions): string {
  if (projects.length === 0) {
    return "# GitHub Trending - No Projects Found\n\n没有找到trending项目,可能是网络问题或页面结构变化。";
  }
  const periodLabel = options.period === "daily" ? "Daily" : "Weekly";
  const languageLabel = options.language ? `Language: ${options.language}` : "Language: All";
  const today = new Date().toISOString().split("T")[0];
  let output = `# GitHub Trending Projects - ${periodLabel} (${today})\n\n`;
  output += `📊 **Total:** ${projects.length} projects | **${languageLabel}** | **Period:** ${periodLabel}\n\n`;
  output += `---\n\n`;
  projects.forEach((project) => {
    output += `## ${project.rank}. ${project.name} - ⭐ ${project.stars}`;
    if (project.starsThisPeriod) {
      output += ` (${project.starsThisPeriod} this ${options.period})`;
    }
    output += `\n`;
    output += `**Language:** ${project.language}\n`;
    output += `**Description:** ${project.description}\n`;
    output += `**URL:** ${project.url}\n\n`;
  });
  output += `---\n`;
  output += `📊 Data from: https://github.com/trending\n`;
  return output;
}

async function main() {
  const args = process.argv.slice(2);
  let period: "daily" | "weekly" = "weekly";
  let language: string | undefined;
  let limit = 10;
  for (const arg of args) {
    if (arg === "daily" || arg === "weekly") {
      period = arg;
    } else if (arg.startsWith("--language=")) {
      language = arg.split("=")[1];
    } else if (arg.startsWith("-l=")) {
      language = arg.split("=")[1];
    } else if (arg.startsWith("--limit=")) {
      limit = parseInt(arg.split("=")[1]) || 10;
    }
  }
  const options: TrendingOptions = { period, language, limit };
  try {
    const url = buildTrendingUrl(options);
    console.error(`正在获取 GitHub trending 数据: ${url}`);
    const response = await fetch(url);
    if (!response.ok) {
      throw new Error(`HTTP ${response.status}: ${response.statusText}`);
    }
    const html = await response.text();
    const projects = parseTrendingProjects(html, limit);
    const formatted = formatProjects(projects, options);
    console.log(formatted);
    if (projects.length === 0) {
      const debugFile = `/tmp/github-trending-debug-${Date.now()}.html`;
      await Bun.write(debugFile, html);
      console.error(`\n调试: 原始HTML已保存到 ${debugFile}`);
    }
  } catch (error) {
    console.error("❌ 获取trending数据失败:");
    console.error(error);
    process.exit(1);
  }
}

main();
FILE:Workflows/GetTrending.md
# GetTrending Workflow

获取GitHub trending项目列表的工作流程。

## Description

这个工作流使用 GetTrending.ts 工具从GitHub获取当前最热门的项目列表,支持按时间周期(每日/每周)和编程语言筛选。

## When to Use

当用户请求以下任何内容时使用此工作流:
- "show github trends" / "github trending"
- "显示热门项目" / "看看有什么热门项目"
- "weekly trending" / "本周热门项目"
- "daily trending" / "今日热门项目"
- "TypeScript trending" / "Python trending" / 按语言筛选
- "what's hot on github" / "github上什么最火"

## Workflow Steps

### Step 1: 确定参数
向用户确认或推断以下参数:
- **时间周期**: daily (每日) 或 weekly (每周,默认)
- **编程语言**: 可选(如 TypeScript, Python, Go, Rust等)
- **项目数量**: 默认10个

### Step 2: 执行工具
运行 GetTrending.ts 工具:

```bash
# 基本用法(本周,全部语言,10个项目)
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly

# 指定语言
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --language=TypeScript

# 指定数量
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts weekly --limit=20

# 组合参数
bun ~/.claude/skills/GitHubTrends/Tools/GetTrending.ts daily --language=Python --limit=15
```

### Step 3: 显示结果
工具会自动格式化输出,包括:
- 项目排名
- 项目名称
- Star总数和周期内增长
- 编程语言
- 项目描述
- GitHub URL

### Step 4: 后续操作(可选)
根据用户需求,可以:
- 打开某个项目页面
- 使用其他skill进一步分析项目
- 将结果保存到文件供后续参考

## Integration with Other Skills

- **OSINT**: 在调查技术栈时发现热门工具
- **Research**: 研究特定语言生态系统的趋势
- **Browser**: 打开项目页面进行详细分析

## Notes

- 数据每小时更新一次
- 无需GitHub API token
- 使用公开的GitHub trending页面
- 支持的语言参数不区分大小写
FILE:Tools/GenerateDashboard.ts
#!/usr/bin/env bun
/**
 * GitHub Trending Dashboard Generator
 *
 * 生成交互式数据可视化仪表板
 *
 * 使用方式:
 *   ./GenerateDashboard.ts [options]
 *
 * 选项:
 *   --period       - daily | weekly (默认: weekly)
 *   --language     - 编程语言筛选 (可选)
 *   --limit        - 项目数量 (默认: 10)
 *   --include-news - 包含技术新闻
 *   --news-count   - 新闻数量 (默认: 10)
 *   --theme        - light | dark | auto (默认: auto)
 *   --output       - 输出文件路径 (默认: ./github-trends.html)
 *
 * 示例:
 *   ./GenerateDashboard.ts
 *   ./GenerateDashboard.ts --period daily --language TypeScript --include-news
 *   ./GenerateDashboard.ts --limit 20 --output ~/trends.html
 */

import Handlebars from 'handlebars';
import type { DashboardOptions, TrendingProject, TechNewsItem, TemplateData } from './Lib/types';
import { registerHelpers, renderTemplate } from './Lib/template-helpers';
import { analyzeData } from './Lib/visualization-helpers';

// 注册 Handlebars 辅助函数
registerHelpers();

/**
 * 构建 GitHub trending URL
 */
function buildTrendingUrl(options: DashboardOptions): string {
  const baseUrl = "https://github.com/trending";
  const since = options.period === "daily" ? "daily" : "weekly";
  let url = `${baseUrl}?since=${since}`;

  if (options.language) {
    url += `&language=${encodeURIComponent(options.language.toLowerCase())}`;
  }

  return url;
}

/**
 * 解析 HTML 提取 trending 项目
 * (从 GetTrending.ts 复制的逻辑)
 */
async function getTrendingProjects(options: DashboardOptions): Promise<TrendingProject[]> {
  const url = buildTrendingUrl(options);

  console.error(`正在获取 GitHub trending 数据: ${url}`);

  const response = await fetch(url);
  if (!response.ok) {
    throw new Error(`HTTP ${response.status}: ${response.statusText}`);
  }

  const html = await response.text();
  return parseTrendingProjects(html, options.limit);
}

/**
 * 解析 HTML
 */
function parseTrendingProjects(html: string, limit: number): TrendingProject[] {
  const projects: TrendingProject[] = [];

  try {
    const articleRegex = /<article[^>]*>([\s\S]*?)<\/article>/g;
    const articles = html.match(articleRegex) || [];
    const articlesToProcess = articles.slice(0, limit);

    articlesToProcess.forEach((article, index) => {
      try {
        const headingMatch = article.match(/<h[12][^>]*>([\s\S]*?)<\/h[12]>/);
        let repoName: string | null = null;

        if (headingMatch) {
          const headingContent = headingMatch[1];
          const validLinkMatch = headingContent.match(
            /<a[^>]*href="\/([^\/"\/]+\/[^\/"\/]+)"[^>]*>(?![^<]*login)/
          );
          if (validLinkMatch) {
            repoName = validLinkMatch[1];
          }
        }

        if (!repoName) {
          const repoMatch = article.match(
            /<a[^>]*href="\/([a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+)"[^>]*>(?!.*(?:login|stargazers|forks|issues))/
          );
          repoName = repoMatch ? repoMatch[1] : null;
        }

        const descMatch = article.match(/<p[^>]*class="[^"]*col-9[^"]*"[^>]*>([\s\S]*?)<\/p>/);
        const description = descMatch
          ? descMatch[1]
              .replace(/<[^>]+>/g, "")
              .replace(/&amp;/g, "&")
              .replace(/&lt;/g, "<")
              .replace(/&gt;/g, ">")
              .replace(/&quot;/g, '"')
              .trim()
              .substring(0, 200

更多更多提示词提示词

生成 PPT 大纲

让 AI 生成主题大纲,然后将其放入指定 Markdown 格式中。PPT(slide) 质量仅作参考。来自 @Asynchro-Epool 的投稿。

充当 Excel 工作表

我希望你充当基于文本的 excel。您只会回复我基于文本的 10 行 Excel 工作表,其中行号和单元格字母作为列(A 到 L)。第一列标题应为空以引用行号。我会告诉你在单元格中写入什么,你只会以文本形式回复 excel 表格的结果,而不是其他任何内容。不要写解释。我会写你的公式,你会执行公式,你只会回复 excel 表的结果作为文本。首先,回复我空表。

充当旅游指南

我想让你做一个旅游指南。我会把我的位置写给你,你会推荐一个靠近我的位置的地方。在某些情况下,我还会告诉您我将访问的地方类型。您还会向我推荐靠近我的第一个位置的类似类型的地方。我的第一个建议请求是“我在上海,我只想参观博物馆。”

充当抄袭检查员

我想让你充当剽窃检查员。我会给你写句子,你只会用给定句子的语言在抄袭检查中未被发现的情况下回复,别无其他。不要在回复上写解释。我的第一句话是“为了让计算机像人类一样行动,语音识别系统必须能够处理非语言信息,例如说话者的情绪状态。”

充当“电影/书籍/任何东西”中的“角色”

Character:角色;series:系列 > 我希望你表现得像{series} 中的{Character}。我希望你像{Character}一样回应和回答。不要写任何解释。只回答像{character}。你必须知道{character}的所有知识。我的第一句话是“你好”

担任关系教练

我想让你担任关系教练。我将提供有关冲突中的两个人的一些细节,而你的工作是就他们如何解决导致他们分离的问题提出建议。这可能包括关于沟通技巧或不同策略的建议,以提高他们对彼此观点的理解。我的第一个请求是“我需要帮助解决我和配偶之间的冲突。”