{"id":25761005,"url":"https://github.com/zhgchgli/linkyee","last_synced_at":"2025-02-26T18:28:29.856Z","repository":{"id":260194135,"uuid":"877945203","full_name":"ZhgChgLi/linkyee","owner":"ZhgChgLi","description":"A fully customized, open-source LinkTree alternative deployed directly on GitHub Pages.","archived":false,"fork":false,"pushed_at":"2025-02-24T01:08:55.000Z","size":3505,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T02:24:23.857Z","etag":null,"topics":["bio","free-hosting","github-pages","jekyllrb","links-management","linkspage","linktree","linktree-alternative","linktree-clone","open-source","static-website","wix"],"latest_commit_sha":null,"homepage":"https://zhgchg.li/linkyee/","language":"JavaScript","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/ZhgChgLi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"buy_me_a_coffee":"zhgchgli"}},"created_at":"2024-10-24T14:07:30.000Z","updated_at":"2025-02-13T03:34:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"40883c4f-8ccb-4a01-84a9-efd6310c2d55","html_url":"https://github.com/ZhgChgLi/linkyee","commit_stats":null,"previous_names":["zhgchgli/linkyee"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhgChgLi%2Flinkyee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhgChgLi%2Flinkyee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhgChgLi%2Flinkyee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhgChgLi%2Flinkyee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZhgChgLi","download_url":"https://codeload.github.com/ZhgChgLi/linkyee/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240910819,"owners_count":19877252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bio","free-hosting","github-pages","jekyllrb","links-management","linkspage","linktree","linktree-alternative","linktree-clone","open-source","static-website","wix"],"created_at":"2025-02-26T18:28:29.158Z","updated_at":"2025-02-26T18:28:29.846Z","avatar_url":"https://github.com/ZhgChgLi.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/zhgchgli","https://www.buymeacoffee.com/zhgchgli"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable-next-line --\u003e\n\u003cdiv align=\"center\"\u003e\n\n  \u003c!-- markdownlint-disable-next-line --\u003e\n  # linkyee - Your Own Link Pages\n\n  A fully customized, open-source LinkTree alternative deployed directly on GitHub Pages.\n\n  Inspired by Jekyllrb and LinkTree.\n\n  [![Automatic build](../../actions/workflows/build.yml/badge.svg)](../../actions/workflows/build.yml) [![pages-build-deployment](../../actions/workflows/pages/pages-build-deployment/badge.svg)](../../actions/workflows/pages/pages-build-deployment)\n\n  [**Live Demo**→](https://zhgchg.li/linkyee/)\n\n  ![linkyee](https://github.com/user-attachments/assets/f6a1ac98-0f0f-485f-ae2a-9abb57a114d3)\n\n\u003c/div\u003e\n\n[中文介紹](https://medium.com/zrealm-robotic-process-automation/linkyee-%E4%BD%BF%E7%94%A8-github-pages-%E5%BF%AB%E9%80%9F%E5%85%8D%E8%B2%BB%E5%BB%BA%E7%AB%8B%E5%80%8B%E4%BA%BA%E9%A1%9E-linktree-%E9%80%A3%E7%B5%90%E9%A0%81%E9%9D%A2-70aeddb1fd9b)\n\n- [Features](https://github.com/ZhgChgLi/linkyee/edit/main/README.md#features)\n- [Get Started – Deploy on GitHub Pages](https://github.com/ZhgChgLi/linkyee/edit/main/README.md#get-started--deploy-on-github-pages)\n- [Configuration \u0026 Customized \u0026 Automatic Redeployment](https://github.com/ZhgChgLi/linkyee/edit/main/README.md#configuration)\n- [Custom Domain](https://en.zhgchg.li/posts/483af5d93297/)\n\n## Features\n\n- 100% Customized\n- 100% Free\n- Supports plugins and dynamic variable injection (e.g., displaying current Medium follower count, GitHub repo stars)\n- Deployed directly on GitHub Pages\n- SEO and performance optimization\n- Theme switching and custom themes supported (the default theme is generated by ChatGPT :\\))\n\n### Buy me a coffee ❤️❤️❤️\n\n\u003ca href=\"https://www.buymeacoffee.com/zhgchgli\" target=\"_blank\"\u003e\u003cimg width=\"545\" alt=\"bmc-button\" src=\"https://github.com/user-attachments/assets/5983bfc9-27fd-49e0-a7f4-eb07657c6e31\"\u003e\u003c/a\u003e\n\n[**If this project has helped you, please consider starring the repo, recommending it to your friends, or sponsoring me a cup of coffee. Thank you for your support!**](https://www.buymeacoffee.com/zhgchgli)\n\nFeel free to open an issue or submit a fix/contribution via pull request. :)\n\n## Get Started – Deploy on GitHub Pages\n### About Github Pages\n\u003e GitHub Pages is a free hosting service provided by GitHub, designed for creating and publishing websites directly from a GitHub repository. It allows developers, designers, and anyone with a GitHub account to host personal, project, or organizational websites without needing external hosting services. GitHub Pages works seamlessly with GitHub repositories, automatically generating a static website whenever new content is pushed.\n\n#### Step 1. Click the “Use this template” button at the top-right corner of the [linkyee](https://github.com/ZhgChgLi/linkyee) Template Repo -\u003e “Create a new repository”:\n![image](https://github.com/user-attachments/assets/4b88da62-df4b-4f3b-a22c-e78b7527a92d)\n\n#### Step 2. Check “Include all branches,” enter your desired GitHub Pages repo name, and click “Create repository” once finished:\n![image](https://github.com/user-attachments/assets/d3611204-7507-41a1-8221-707200a3e269)\n\n\u003e The GitHub Pages repo name will affect the access URL. If you enter `your-username.github.io` as the Repo Name, that will be the direct URL to your GitHub Pages site.\n\u003e If you already have a `your-username.github.io` repo, the GitHub Pages URL will be `your-username.github.io/Repo-Name`.\n\n#### Wait for the fork to complete. You might encounter deployment errors during the initial setup due to forked repo permission issues. Let’s proceed with the steps to adjust this.\n![image](https://github.com/user-attachments/assets/038fac9e-83eb-4f2f-ba9a-88712b4af022)\n\n#### Step 4. Go to Settings -\u003e Actions -\u003e General, ensure the following options are selected:\n![image](https://github.com/user-attachments/assets/6851c4e6-9466-4800-862f-e9e5e5b65b11)\n\n- Actions permissions: `Allow all actions and reusable workflows`\n- Workflow permissions: `Read and write permissions`\n\nAfter selecting, click the Save button to save your changes.\n\n#### Step 5. Go to Settings -\u003e Pages and ensure the selected branch for GitHub Pages is set to “gh-pages”:\n![image](https://github.com/user-attachments/assets/1802bc78-4615-4d29-b180-9c84f3fb8d6d)\n\n\u003e \tThe message `Your site is live at: XXXX` above is your public GitHub Pages access URL.\n\n#### Step 6. Go to Settings -\u003e Actions and wait for the first deployment to complete:\n![image](https://github.com/user-attachments/assets/e57336ef-2f35-4455-abc0-76dce07470ee)\n\n#### Step 7. Access the GitHub Pages URL to ensure the fork was successful:\n![image](https://github.com/user-attachments/assets/023c39f7-9351-4175-8c9f-5eb42e2ecdb9)\n\n\u003e Congratulations! Deployment successful. You can now modify the configuration files with your own data. 🎉🎉🎉\n\n### Configuration\nEdit The [config.yml](./config.yml) file located in the root directory.\n\n```yaml\n# Site Configuration\n\n# Theme, mapped to the directory: ./theme/xxxx\ntheme: default\n\n# HTML Language setting\nlang: \"en\"\n\n# Plugins, implemented in ./plugins/PLUGIN_NAME\n# Use {{ vars.PLUGIN_NAME }} in the settings below\n\n# The output of the plugin can be used below, e.g., {{vars.MediumFollowersCountPlugin}}\nplugins:\n  # Automatically fetch Medium follower count\n  - MediumFollowersCountPlugin:\n      username: zhgchgli\n  # Automatically fetch Github repo star count\n  - GithubRepoStarsCountPlugin:\n      - ZhgChgLi/ZMarkupParser\n      - ZhgChgLi/ZReviewTender\n      - ZhgChgLi/ZMediumToMarkdown\n      - ZhgChgLi/linkyee\n\n# Google Analytics tracking id\ngoogle_analytics_id:\n\n# Google Analytics tracking id\ngoogle_analytics_id:\n\n# HTML Title\ntitle: \"ZhgChgLi's Links\"\n\n# Avatar image path\navatar: \"./images/profile.jpeg\"\n\n# Name section text\nname: \"@zhgchgli\"\n\n# Tagline section text\ntagline: \u003e-\n    An iOS, web, and automation developer from Taiwan 🇹🇼 who also loves sharing, traveling, and writing.\n\n# List of links\n# icon: Use Font Awesome icons (https://fontawesome.com/search?o=r\u0026m=free)\n# text: The displayed text for the link\n# title: The url title\n# url: The URL of the link\n# alt: Alternative text for accessibility\n# target: `_blank` opens in a new tab, `_self` opens in the same frame\nlinks:\n  - link:\n      icon: \"fa-brands fa-medium\"\n      text: \"Tech Blog \u003cspan class='link-button-text'\u003e({{vars.MediumFollowersCountPlugin}} Followers)\u003c/span\u003e\"\n      url: \"https://blog.zhgchg.li\"\n      alt: \"ZhgChgLi's Tech Blog\"\n      title: \"ZhgChgLi's Tech Blog\"\n      target: \"_blank\"\n  - link:\n      icon: \"fa-brands fa-medium\"\n      text: \"Travelog \u003cspan class='link-button-text'\u003e({{vars.MediumFollowersCountPlugin}} Followers)\u003c/span\u003e\"\n      url: \"https://medium.com/ztravel\"\n      alt: \"ZhgChgLi's Travelog\"\n      title: \"ZhgChgLi's Travelog\"\n      target: \"_blank\"\n  - link:\n      icon: \"fa-solid fa-rss\"\n      text: \"Website\"\n      url: \"https://zhgchg.li/\"\n      alt: \"ZhgChgLi's Website\"\n      title: \"ZhgChgLi's Website\"\n      target: \"_blank\"\n  - link:\n      icon: \"fa-brands fa-swift\"\n      text: \"ZMarkupParser \u003cspan class='link-button-text'\u003e({{vars.GithubRepoStarsCountPlugin['ZhgChgLi/ZMarkupParser']}} Stars)\u003c/span\u003e\"\n      url: \"https://github.com/ZhgChgLi/ZMarkupParser\"\n      alt: \"ZMarkupParser is a pure-Swift library that helps you to convert HTML strings to NSAttributedString with customized style and tags.\"\n      title: \"ZMarkupParser is a pure-Swift library that helps you to convert HTML strings to NSAttributedString with customized style and tags.\"\n      target: \"_blank\"\n  - link:\n      icon: \"fa-brands fa-app-store-ios\"\n      text: \"ZReviewTender \u003cspan class='link-button-text'\u003e({{vars.GithubRepoStarsCountPlugin['ZhgChgLi/ZReviewTender']}} Stars)\u003c/span\u003e\"\n      url: \"https://github.com/ZhgChgLi/ZReviewTender\"\n      alt: \"ZReviewTender is a tool for fetching app reviews from the App Store and Google Play Console and integrating them into your workflow.\"\n      title: \"ZReviewTender is a tool for fetching app reviews from the App Store and Google Play Console and integrating them into your workflow.\"\n      target: \"_blank\"\n  - link:\n      icon: \"fa-brands fa-markdown\"\n      text: \"ZMediumToMarkdown \u003cspan class='link-button-text'\u003e({{vars.GithubRepoStarsCountPlugin['ZhgChgLi/ZMediumToMarkdown']}} Stars)\u003c/span\u003e\"\n      url: \"https://github.com/ZhgChgLi/ZMediumToMarkdown\"\n      alt: \"ZMediumToMarkdown is a powerful tool that allows you to effortlessly download and convert your Medium posts to Markdown format.\"\n      title: \"ZMediumToMarkdown is a powerful tool that allows you to effortlessly download and convert your Medium posts to Markdown format.\"\n      target: \"_blank\"\n  - link:\n      icon: \"fa-brands fa-github\"\n      text: \"linkyee \u003cspan class='link-button-text'\u003e({{vars.GithubRepoStarsCountPlugin['ZhgChgLi/linkyee']}} Stars)\u003c/span\u003e\"\n      url: \"https://github.com/ZhgChgLi/linkyee\"\n      alt: \"linkyee is a fully customized, open-source LinkTree alternative deployed directly on GitHub Pages.\"\n      title: \"linkyee is a fully customized, open-source LinkTree alternative deployed directly on GitHub Pages.\"\n      target: \"_blank\"\n\n\n# List of social media links\n# icon: Use Font Awesome icons (https://fontawesome.com/search?o=r\u0026m=free)\n# title: The url title\n# url: The URL of the social media link\n# alt: Alternative text for accessibility\n# target: _blank opens in a new tab, _self opens in the same frame\nsocials:\n  - social:\n      icon: \"fa-brands fa-medium\"\n      url: \"https://blog.zhgchg.li\"\n      title: \"ZhgChgLi's Medium\"\n      alt: \"ZhgChgLi's Medium\"\n      target: \"_blank\"\n  - social:\n      icon: \"fa-brands fa-github\"\n      url: \"https://github.com/ZhgChgLi\"\n      title: \"ZhgChgLi's GitHub\"\n      alt: \"ZhgChgLi's GitHub\"\n      target: \"_blank\"\n  - social:\n      icon: \"fa-brands fa-twitter\"\n      url: \"https://twitter.com/zhgchgli\"\n      title: \"ZhgChgLi's Twitter\"\n      alt: \"ZhgChgLi's Twitter\"\n      target: \"_blank\"\n  - social:\n      icon: \"fa-brands fa-linkedin\"\n      url: \"https://www.linkedin.com/in/zhgchgli/\"\n      title: \"ZhgChgLi's LinkedIn\"\n      alt: \"ZhgChgLi's LinkedIn\"\n      target: \"_blank\"\n  - social:\n      icon: \"fa-brands fa-instagram\"\n      url: \"https://www.instagram.com/zhgchgli/\"\n      title: \"Instagram\"\n      alt: \"ZhgChgLi's Instagram\"\n      target: \"_blank\"\n  - social:\n      icon: \"fa-solid fa-envelope\"\n      url: \"mailto:zhgchgli@gmail.com\"\n      title: \"Email: zhgchgli@gmail.com\"\n      alt: \"zhgchgli@gmail.com\"\n      target: \"_blank\"\n\n# Footer text\nfooter: \u003e\n    Welcome to my website! Follow me on Medium or GitHub, or stay connected on Instagram or LinkedIn.\n\n# Footer copyright message\n# Linkyee is a 100% free, open-source project—feel free to modify the copyright message as you like. :)\ncopyright: \u003e\n  © 2024  \u003ca href=\"https://zhgchg.li\" target=\"_blank\"\u003eZhgChgLi\u003c/a\u003e. Powered by \u003ca href=\"https://github.com/ZhgChgLi/linkyee\" target=\"_blank\"\u003elinkyee\u003c/a\u003e\n```\n\n#### Please note that after each files modification, you need to wait for GitHub Actions to complete the `Automatic build` and `pages build and deployment` tasks.\n\n![image](https://github.com/user-attachments/assets/0ba637cc-3bb6-4458-a076-5f754c7429b3)\n\nRefresh the page for the changes to take effect. 🚀\n\n### Customized\n#### Modify Default Theme\n\n- `./themes/default/index.html`\n- `./themes/default/styles.css`\n- `./themes/default/scripts.js`\n\n#### Create a New Theme\n\n1. `./themes/YOUR_THEME`\n2. Update `theme:YOUR_THEME` in `config.yml` file\n\n\u003e Yes, you can use GenAI tools like ChatGPT to help you create your own custom link pages!\n\n#### Automatic Redeployment\n\nBy default, the project redeploys automatically once a day to refresh the values of plugin's dynamic variables. You can adjust the [cron](https://crontab.guru/#0_0_*_*_*) settings in [build.yml](../../actions/workflows/build.yml):\n```\nschedule:\n    - cron: '0 0 * * *'  # Runs daily at midnight (00:00 UTC)\n```\nIf you don’t need scheduled redeployment, simply delete the schedule block.\n\n## Custom Domain ❤️❤️❤️\n\nYou can set a custom GitHub Pages domain, such as my own: [https://link.zhgchg.li](https://link.zhgchg.li).\n\nFollow [my tutorial for domain binding.](https://en.zhgchg.li/posts/483af5d93297/) If you’d like, you can [purchase a domain through my Namecheap referral](https://namecheap.pxf.io/P0jdZQ) link—I’ll earn a small commission, which will help me continue contributing to open-source projects.\n\n---\n\n## About\n- [ZhgChg.Li](https://zhgchg.li/)\n- [ZhgChgLi's Medium](https://blog.zhgchg.li/)\n\n## Other works\n### Swift Libraries\n- [ZMarkupParser](https://github.com/ZhgChgLi/ZMarkupParser) is a pure-Swift library that helps you to convert HTML strings to NSAttributedString with customized style and tags.\n- [ZPlayerCacher](https://github.com/ZhgChgLi/ZPlayerCacher) is a lightweight implementation of the AVAssetResourceLoaderDelegate protocol that enables AVPlayerItem to support caching streaming files.\n- [ZNSTextAttachment](https://github.com/ZhgChgLi/ZNSTextAttachment) enables NSTextAttachment to download images from remote URLs, support both UITextView and UILabel.\n\n### Integration Tools\n- [ZReviewTender](https://github.com/ZhgChgLi/ZReviewTender) is a tool for fetching app reviews from the App Store and Google Play Console and integrating them into your workflow.\n- [ZMediumToMarkdown](https://github.com/ZhgChgLi/ZMediumToMarkdown) is a powerful tool that allows you to effortlessly download and convert your Medium posts to Markdown format.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhgchgli%2Flinkyee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhgchgli%2Flinkyee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhgchgli%2Flinkyee/lists"}