让你的Github Profile高大时尚!

目录

前言

正文

GitHub Profile

特点:

GitHub Actions

核心概念:

应用场景:

RSS

RSS的主要特点:

使用场景:

RSS的工作原理:

关于Github Readme Card

关于Github贡献的3D图

关于个人最新博文的获取

关于代码时常占比模块

尾声


 

原文地址:让你的Github Profile高大时尚! - Pleasure的博客

下面是正文内容:


前言

距离上一次写博客已经是三个月前的事了

这段时间主要在写自己的项目

于是找了一个相对合适的话题,来聊聊

正文

如图可见,下面是我的github主页样式

不仅具备丰富的样式,还能根据在github的活动贡献,博文的发布,写代码的时间和占比等对个人的主页进行实时的更新操作

仓库地址:https://github.com/Pleasurecruise/Pleasurecruise

首先针对什么都不知道的小白简单介绍一些前置知识

GitHub Profile

在 GitHub 上,每个用户或组织都可以创建一个名称与其用户名相同的特殊仓库,这种仓库被称为“特殊仓库”(Special Repository)。例如,你的仓库名为 Pleasurecruise/Pleasurecruise,其中 Pleasurecruise 是你的 GitHub 用户名。

特点:

展示在个人资料页

  • 该仓库的 README 文件会显示在你的 GitHub 个人资料页面的顶部位置,作为个人介绍。
  • 这意味着你可以在 Pleasurecruise/Pleasurecruise 仓库的 README.md 文件中添加任何你希望展示给别人看的信息,如个人简介、项目、社交媒体链接等。

个性化展示

  • 你可以使用 Markdown 和 HTML 来设计个人简介,嵌入图片、GIF、链接、徽章、统计图、贡献图等。
  • 可以使用 GitHub Actions 自动更新一些内容(例如:显示最新的博客文章、最新的 GitHub 动态等)。

应用场景

  • 个人展示:用于展示你的个人技能、项目、成就等。
  • 自动化更新:可以通过 GitHub Actions 自动更新 README 文件中的动态内容,如博客、代码贡献、项目进展等。


GitHub Actions

GitHub Actions 是 GitHub 提供的一种持续集成和持续交付(CI/CD)服务。它允许你在特定事件发生时(例如代码推送、Pull Request 提交、定时任务等),自动化执行某些操作或脚本。你可以通过 YAML 文件定义工作流,来自动化处理各种任务。

核心概念:

Workflow(工作流)

  • 工作流是由一系列步骤组成的自动化过程。每个工作流可以在特定的事件触发时运行(如代码推送或创建 PR),也可以通过手动触发或定时运行。
  • 工作流文件通常放置在 .github/workflows/ 目录下,文件格式为 .yaml

Job(任务)

  • 每个工作流可以包含多个任务(Job),每个任务是一系列需要在特定环境(如 Linux、Windows、macOS)中运行的步骤。
  • 任务之间可以是并行执行或依赖执行。

Steps(步骤)

  • 步骤是任务的最小单元,包含要执行的具体操作。步骤可以是执行脚本、安装依赖、运行测试、部署应用等。

Events(事件)

  • 事件是触发工作流运行的条件,例如代码推送、PR 提交、Release 发布、定时任务等。

Runner(执行器)

  • Runner 是执行工作流中任务的服务器环境,GitHub 提供默认的虚拟环境,如 ubuntu-latest,也可以使用自定义的 runner。

应用场景:

  • 自动化测试:代码提交后,自动运行测试用例,确保代码质量。

  • 自动部署:代码合并或发布版本后,自动部署应用到服务器。

  • 生成和更新文档:例如,定期或事件触发更新 README 中的贡献图、最新动态等信息。

  • 代码格式化和检查:自动执行代码格式化检查、Lint 检查等,确保代码风格一致。

  • 发布到包管理器:例如,将代码自动发布到 NPM、PyPI 等包管理平台。

通过 GitHub Actions,你可以轻松地实现 CI/CD 流程的自动化,提升工作效率,确保代码的质量与一致性。


RSS

RSS(Really Simple SyndicationRich Site Summary)是一种用于分发和聚合网络内容的格式。它允许网站以结构化的方式将更新内容(如文章、新闻、博客等)发布出去,用户或其他应用程序可以通过RSS订阅这些内容。

RSS的主要特点:

  1. 内容聚合:RSS提供了一种标准化的格式,用于将网站上的更新信息发布给订阅者。这可以包括新闻、博客文章、播客等内容。
  2. 自动更新:用户通过RSS阅读器(如Feedly、Inoreader等)订阅RSS源后,无需手动访问网站,当内容有更新时,RSS阅读器会自动拉取最新的内容,方便用户及时获取信息。
  3. XML格式:RSS是一种基于XML的文件格式,包含了文章的标题、链接、摘要、发布日期等信息,简单易用。

使用场景:

  • 订阅网站更新:用户可以通过RSS订阅自己感兴趣的网站,获取最新的博客文章、新闻等,而无需逐一访问网站。
  • 内容聚合:新闻门户、应用程序可以通过RSS汇集来自多个来源的内容,形成信息流。
  • 播客发布:RSS也是播客分发的主要手段,订阅者可以通过RSS自动接收到新发布的播客节目。

RSS的工作原理:

  1. RSS Feed生成:网站通过RSS生成器或CMS(如WordPress)生成RSS源。
  2. 用户订阅:用户通过RSS阅读器订阅这些RSS源。
  3. 内容拉取:RSS阅读器会定期检查订阅的RSS源,一旦有新内容,阅读器会将其显示给用户。

RSS是一个便捷的方式来追踪和管理多站点的内容,尤其适合那些经常更新的网站或博客。


下面是重点!!

主要介绍我在自己的Github Profile中用到的几个应用和仓库地址

关于Github Readme Card

这应该是一个比较著名的仓库

可以在个人的readme中添加Stats Card,Top Languages Card,GitHub Extra Pins等Demo

主要涉及到的仓库

https://github.com/anuraghazra/github-readme-stats

这个仓库没有涉及到个人的工作流所以不需要建立.github/workflow配置文件

关于Github贡献的3D图

通过github secrets读取在github的contribution利用svg生成3D首图

主要涉及到的仓库

https://github.com/yoshi389111/github-profile-3d-contrib

需要在README.md中添加的字段

![](./profile-3d-contrib/profile-night-rainbow.svg)

针对这个仓库,工作流参考样例

name: GitHub-Profile-3D-Contrib

on:
  schedule: # 每天 18:00 UTC 运行
    - cron: "0 18 * * *"
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    name: generate-github-profile-3d-contrib
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4.2.0
        with:
          token: ${{ secrets.PAT_TOKEN }}
          fetch-depth: 0

      - name: Generate GitHub Profile 3D Contribution
        uses: yoshi389111/github-profile-3d-contrib@0.7.1
        env:
          GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}
          USERNAME: Pleasurecruise

      - name: Commit & Push changes
        run: |
          git config user.name github-actions
          git config user.email github-actions@github.com
          git add -A .
          git diff --staged --exit-code || (git commit -m "generated" && git push https://x-access-token:${{ secrets.PAT_TOKEN }}@github.com/${{ github.repository }}.git)

关于个人最新博文的获取

前提是你有自己的个人博客,而且有自己的RSS订阅源

拿CSDN的博客举例,可以在下图看到一个RSS订阅字样的按钮

在WordPress中,RSS源(RSS feed)的默认位置通常为以下形式:

  • 网站的主RSS源:https://yourdomain.com/feed/
  • 分类RSS源:https://yourdomain.com/category/categoryname/feed/
  • 标签RSS源:https://yourdomain.com/tag/tagname/feed/
  • 评论RSS源:https://yourdomain.com/comments/feed/

其中,yourdomain.com 应该替换为你的实际域名。

你可以通过在浏览器中访问这些URL来查看相关RSS源。
如果你的WordPress网站使用的是自定义链接结构或某些插件(可以在后台管理界面通过设置/固定链接选项进行确认),RSS源的URL可能会有所不同,但大多数情况下这些是标准位置。

主要涉及到的仓库:

https://github.com/gautamkrishnar/blog-post-workflow

需要在README.md中添加的字段

<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->

针对这个仓库,工作流参考样例

name: Latest blog post workflow
on:
  schedule: # Run workflow automatically
    - cron: '0 * * * *' # Runs every hour, on the hour
  workflow_dispatch: # Run workflow manually (without waiting for the cron to be called), through the GitHub Actions Workflow page directly
permissions:
  contents: write # To write the generated contents to the readme

jobs:
  update-readme-with-blog:
    name: Update this repo's README with latest blog posts
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Pull in dev.to posts
        uses: gautamkrishnar/blog-post-workflow@v1
        with:
          max_post_count: 5
          committer_username: "pleasurecruise"
          committer_email: "pleasure@yiming1234.cn"
          feed_list: "https://blog.yiming1234.cn/index.php/feed"
          template: "$newline- [$title]($url) $newline"

关于代码时常占比模块

首先你需要在你的IDE中安装WakaTime的插件,填写密钥初始化之后开始记录你每天的代码实况
推荐主流的IDE,Visual Studio Code,JetBrains系列

主要涉及到的仓库:

https://github.com/athul/waka-readme

需要在README.md中添加的字段

<!--START_SECTION:waka-->
<!--END_SECTION:waka-->

针对这个仓库,工作流参考样例

name: Waka Readme

on:
  # for manual workflow trigger
  workflow_dispatch:
  schedule:
    # runs at 12 AM UTC (5:30 AM IST)
    - cron: "0 0 * * *"

jobs:
  update-readme:
    name: WakaReadme DevMetrics
    runs-on: ubuntu-latest
    steps:
      - uses: athul/waka-readme@master # this action name
        with:
          GH_TOKEN: ${{ secrets.PAT_TOKEN }}
          WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
          SHOW_TITLE: true # optional
          SECTION_NAME: waka # optional
          BLOCKS: -> # optional
          CODE_LANG: rust # optional
          TIME_RANGE: all_time # optional
          LANG_COUNT: 10 # optional
          SHOW_TIME: true # optional
          SHOW_TOTAL: true # optional
          SHOW_MASKED_TIME: false # optional
          STOP_AT_OTHER: true # optional
          IGNORED_LANGUAGES: YAML JSON TOML # optional

在文章的最后还有几个需要注意的点

1.上述只是介绍应用和仓库地址以及我个人使用的示例,并没有介绍具体的使用方法。感兴趣的可以自行点击仓库链接去wiki中查看使用细节。挑选你自己喜欢的主题和方法类。

2.不知道为什么,在工作流中使用{{secrets.GitHub_TOKEN}}时理论上是不需要另外进行生成和储存的,可是我直接使用的时候总是提示权限不足。所以在上面的示例中我采取的是手动配置该环境变量的方式。

3.actions/checkout要使用v4.2.0版本而不是v3.0版本,不然会报错如下
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20

尾声

后续可能主要会写一些和算法有关的博客,因为大二开始主要学这些了

希望对你有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pleasure1234

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值