{"id":18904283,"url":"https://github.com/hugo-fixit/component-projects","last_synced_at":"2026-03-04T09:03:19.372Z","repository":{"id":232506799,"uuid":"784444213","full_name":"hugo-fixit/component-projects","owner":"hugo-fixit","description":"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.","archived":false,"fork":false,"pushed_at":"2025-12-25T09:19:06.000Z","size":125,"stargazers_count":27,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-26T22:26:00.706Z","etag":null,"topics":["hugo","hugo-fixit","shortcodes","theme-component"],"latest_commit_sha":null,"homepage":"https://fixit.lruihao.cn/ecosystem/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hugo-fixit.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://paypal.me/Lruihao"]}},"created_at":"2024-04-09T21:38:42.000Z","updated_at":"2025-12-25T09:18:48.000Z","dependencies_parsed_at":"2025-04-15T03:49:08.445Z","dependency_job_id":"362f08d1-7693-46fb-b35b-7634676d829d","html_url":"https://github.com/hugo-fixit/component-projects","commit_stats":null,"previous_names":["hugo-fixit/component-projects"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/hugo-fixit/component-projects","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugo-fixit%2Fcomponent-projects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugo-fixit%2Fcomponent-projects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugo-fixit%2Fcomponent-projects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugo-fixit%2Fcomponent-projects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hugo-fixit","download_url":"https://codeload.github.com/hugo-fixit/component-projects/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugo-fixit%2Fcomponent-projects/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30076935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hugo","hugo-fixit","shortcodes","theme-component"],"created_at":"2024-11-08T09:08:00.022Z","updated_at":"2026-03-04T09:03:19.367Z","avatar_url":"https://github.com/hugo-fixit.png","language":"HTML","funding_links":["https://paypal.me/Lruihao"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eGitHub Projects Embed | FixIt\u003c/h1\u003e\n\n![apple-devices-preview](https://github.com/hugo-fixit/component-projects/assets/33419593/3f75bd94-90df-4057-bee5-cbe2a61422f1)\n\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n  \u003cp\u003eDisplay your GitHub projects in the FixIt theme and generate blog posts from README.\u003c/p\u003e\n  \u003ca href=\"/README.md\"\u003e简体中文\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n  English |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"\u003eFrançais\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"\u003edeutsch\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"\u003e한국어\u003c/a\u003e |\n  \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"\u003eしろうと\u003c/a\u003e\n\u003c/div\u003e\n\n## Demo\n\n- [Ecosystem | FixIt](https://fixit.lruihao.cn/ecosystem/)\n- [Lruihao's Projects](https://lruihao.cn/projects/)\n\n## Features\n\n- Support GitHub project cards display (`layout` or `shortcodes`)\n- Support generating blog posts from README (`content adapter`)\n\n## Requirements\n\n- [FixIt](https://github.com/hugo-fixit) v0.4.0 or higher\n\n## Installation\n\nThe installation method is the same as [installing a theme](https://fixit.lruihao.cn/documentation/installation/). There are several ways to install, choose one.\n\n### Install as Hugo Module\n\nFirst make sure that your project itself is a [Hugo module](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module).\n\nThen add this theme component to your `hugo.toml` configuration file:\n\n```toml\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/component-projects\"\n```\n\nOn the first start of Hugo it will download the required files.\n\nTo update to the latest version of the module run:\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### Install as Git Submodule\n\nClone [FixIt](https://github.com/hugo-fixit/FixIt) and this git repository into your theme folder and add it as submodules of your website directory.\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/component-projects.git themes/component-projects\n```\n\nNext edit `hugo.toml` of your project and add this theme component to your themes:\n\n```toml\ntheme = [\"FixIt\", \"component-projects\"]\n```\n\n## Configuration\n\nFinally, in order to Inject the partial `{component-projects}.html` into the `custom-assets` through the [custom block](https://fixit.lruihao.cn/references/blocks/) opened by the FixIt theme in the `layouts/_partials/custom.html` file, you need to fill in the following necessary configurations:\n\n```toml\n[params]\n  [params.customPartials]\n    # ... other partials\n    assets = [ \"inject/component-projects.html\" ]\n    # ... other partials\n```\n\n## Access Token (Optional)\n\nObtaining repositories information relies on GitHub official API. Before starting to use it, it is recommended to generate personal access token on GitHub to prevent GitHub API usage limit.\n\n1. Click to jump to GitHub [Generate token](https://github.com/settings/tokens/new), select the scope named `public_repo` to generate personal access token.\n2. Configure with environment variable `HUGO_PARAMS_GHTOKEN=your-person-access-token`, see details in [os.Getenv | Hugo](https://gohugo.io/functions/os/getenv/#examples)\n\n## Usage\n\n### Layout\n\nFirst, create the `projects.yml` file and edit your data:\n\n```bash\ncp themes/component-projects/projects.yml.example data/projects.yml\n```\n\n\u003e If your site is multilingual, you can create a `projects.en.yml` file for English and `projects.zh-cn.yml` for Chinese.\n\nNext, create a new page with the `projects` layout:\n\n```bash\nhugo new projects/_index.md\n```\n\nEdit the front matter and content of the new page:\n\n```yaml\n---\ntitle: My Projects\ntitleIcon: fa-solid fa-laptop-code\nsubtitle: \u003chttps://github.com/Lruihao\u003e\nsectionSlot: Some text to display in the section slot which is above the related articles list.\nhiddenAdapters: false\nlayout: projects\n---\n\nSome text to display at the start of the page.\n```\n\n### Shortcodes\n\nUse the `gh-repo-card-container` and `gh-repo-card` shortcodes in any page to display a GitHub repository card:\n\n```markdown\n{{\u003c gh-repo-card-container \u003e}}\n  {{\u003c gh-repo-card repo=\"hugo-fixit/component-projects\" \u003e}}\n  {{\u003c gh-repo-card repo=\"Lruihao/hugo-blog\" \u003e}}\n{{\u003c /gh-repo-card-container \u003e}}\n```\n\n### Content Adapter\n\n:tada: This is a awesome feature! It can generate blog posts from the README of the repositories according to the projects data you configured.\n\nCreate `_content.gotmpl` in projects section folder, add the following code:\n\n```go-html-template\n{{- partial \"adapters/projects.html\" . -}}\n```\n\nDirectory structure:\n\n```plain\ncontent/\n├── projects/\n│   ├── _content.gotmpl  \u003c-- content adapter\n│   └── _index.md        \u003c-- layout: projects\ndata/\n└── projects.yml         \u003c-- projects data\n```\n\nThen, open the `hugo.toml` file and configure the `projectsAdapters` option to enable the content adapter:\n\n```toml\n[params]\n  [params.projectsAdapters]\n    enable = true\n    onlyPublic = true\n    categories = []\n    collections = []\n    ignoreList = []\n    [params.projectsAdapters.params]\n      hiddenFromHomePage = true\n      # more font matter here ...\n```\n\n### Custom Blocks\n\nYou can implement these blocks through `define`.\n\n| Block Name        | Description                                       |\n| :---------------- | :------------------------------------------------ |\n| `projects-aside`  | Displayed in the aside of the projects page       |\n| `projects-meta`   | Displayed in the post meta of the projects page   |\n| `projects-footer` | Displayed in the post footer of the projects page |\n\n## Scheduled tasks\n\nSince it uses server-side rendering, all data is fetched at build time and not requested from the GitHub API on each visit. Therefore, we can use scheduled tasks to update the data to keep it up to date.\n\n### Deploy to GitHub Pages\n\nIf your site is hosted on GitHub Pages, you can use GitHub Actions to deploy automatically.\n\n```yaml\nname: Hugo build and deploy\non:\n  schedule:\n    # Rebuid the site every day at 00:00 UTC to update the projects data\n    - cron: '0 0 * * *'\n  push:\n    branches: [ main ]\n  workflow_dispatch:\njobs:\n  # Your build and deploy jobs here\n```\n\n### Deplot to Vercel\n\nIf your site is hosted on Vercel, you can use Vercel's [Deploy Hooks](https://vercel.com/docs/deployments/deploy-hooks#creating-\u0026-triggering-deploy-hooks) feature with GitHub Actions to deploy automatically.\n\n```yaml\nname: Vercel deploy hook\non:\n  schedule:\n    # Rebuid the site every day at 00:00 UTC to update the projects data\n    - cron: '0 0 * * *'\njobs:\n  Vercel-Deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Trigger Vercel deploy hook\n        run: |\n          curl -X POST ${{ secrets.VERCEL_DEPLOY_HOOK }}\n```\n\nCreate a deploy hook in the project settings of Vercel and add the `VERCEL_DEPLOY_HOOK` variable in the Secrets of the GitHub project.\n\n## Troubleshooting\n\nYou can add the `--ignoreCache` parameter to the `hugo server` command to clear the cache in local server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhugo-fixit%2Fcomponent-projects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhugo-fixit%2Fcomponent-projects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhugo-fixit%2Fcomponent-projects/lists"}