From 5edbbdff76369adcb84f82be68dd798f8f7528fc Mon Sep 17 00:00:00 2001 From: geekifan Date: Sun, 20 Apr 2025 23:00:58 +0800 Subject: [PATCH] add getting started post --- .../post/2019-08-09-getting-started/index.md | 149 ++++++++++++++++++ .../pages-source-dark.png | Bin 0 -> 6774 bytes .../pages-source-light.png | Bin 0 -> 7043 bytes 3 files changed, 149 insertions(+) create mode 100644 content/post/2019-08-09-getting-started/index.md create mode 100644 content/post/2019-08-09-getting-started/pages-source-dark.png create mode 100644 content/post/2019-08-09-getting-started/pages-source-light.png diff --git a/content/post/2019-08-09-getting-started/index.md b/content/post/2019-08-09-getting-started/index.md new file mode 100644 index 0000000..c3d4706 --- /dev/null +++ b/content/post/2019-08-09-getting-started/index.md @@ -0,0 +1,149 @@ +--- +title: "Getting Started" +date: 2019-08-09 +draft: false +description: >- + Get started with Chirpy basics in this comprehensive overview. + You will learn how to install, configure, and use your first Chirpy-based website, as well as deploy it to a web server. +tags: + - Blogging + - Tutorial +pin: true +--- + +## Creating a Site Repository + +When creating your site repository, you have two options depending on your needs: + +### Option 1. Using the Starter (Recommended) + +This approach simplifies upgrades, isolates unnecessary files, and is perfect for users who want to focus on writing with minimal configuration. + +1. Sign in to GitHub and navigate to the [**starter**][starter]. +2. Click the Use this template button and then select Create a new repository. +3. Name the new repository `.github.io`, replacing `username` with your lowercase GitHub username. + +### Option 2. Forking the Theme + +This approach is convenient for modifying features or UI design, but presents challenges during upgrades. So don't try this unless you are familiar with Jekyll and plan to heavily modify this theme. + +1. Sign in to GitHub. +2. [Fork the theme repository](https://github.com/cotes2020/jekyll-theme-chirpy/fork). +3. Name the new repository `.github.io`, replacing `username` with your lowercase GitHub username. + +## Setting up the Environment + +Once your repository is created, it's time to set up your development environment. There are two primary methods: + +### Using Dev Containers (Recommended for Windows) + +Dev Containers offer an isolated environment using Docker, which prevents conflicts with your system and ensures all dependencies are managed within the container. + +**Steps**: + +1. Install Docker: + - On Windows/macOS, install [Docker Desktop][docker-desktop]. + - On Linux, install [Docker Engine][docker-engine]. +2. Install [VS Code][vscode] and the [Dev Containers extension][dev-containers]. +3. Clone your repository: + - For Docker Desktop: Start VS Code and [clone your repo in a container volume][dc-clone-in-vol]. + - For Docker Engine: Clone your repo locally, then [open it in a container][dc-open-in-container] via VS Code. +4. Wait for the Dev Containers setup to complete. + +### Setting up Natively (Recommended for Unix-like OS) + +For Unix-like systems, you can set up the environment natively for optimal performance, though you can also use Dev Containers as an alternative. + +**Steps**: + +1. Follow the [Jekyll installation guide](https://jekyllrb.com/docs/installation/) to install Jekyll and ensure [Git](https://git-scm.com/) is installed. +2. Clone your repository to your local machine. +3. If you forked the theme, install [Node.js][nodejs] and run `bash tools/init.sh` in the root directory to initialize the repository. +4. Run command `bundle` in the root of your repository to install the dependencies. + +## Usage + +### Start the Jekyll Server + +To run the site locally, use the following command: + +```terminal +$ bundle exec jekyll serve +``` + +> If you are using Dev Containers, you must run that command in the **VS Code** Terminal. +{: .prompt-info } + +After a few seconds, the local server will be available at . + +### Configuration + +Update the variables in `_config.yml`{: .filepath} as needed. Some typical options include: + +- `url` +- `avatar` +- `timezone` +- `lang` + +### Social Contact Options + +Social contact options are displayed at the bottom of the sidebar. You can enable or disable specific contacts in the `_data/contact.yml`{: .filepath} file. + +### Customizing the Stylesheet + +To customize the stylesheet, copy the theme's `assets/css/jekyll-theme-chirpy.scss`{: .filepath} file to the same path in your Jekyll site, and add your custom styles at the end of the file. + +### Customizing Static Assets + +Static assets configuration was introduced in version `5.1.0`. The CDN of the static assets is defined in `_data/origin/cors.yml`{: .filepath }. You can replace some of them based on the network conditions in the region where your website is published. + +If you prefer to self-host the static assets, refer to the [_chirpy-static-assets_](https://github.com/cotes2020/chirpy-static-assets#readme) repository. + +## Deployment + +Before deploying, check the `_config.yml`{: .filepath} file and ensure the `url` is configured correctly. If you prefer a [**project site**](https://help.github.com/en/github/working-with-github-pages/about-github-pages#types-of-github-pages-sites) and don't use a custom domain, or if you want to visit your website with a base URL on a web server other than **GitHub Pages**, remember to set the `baseurl` to your project name, starting with a slash, e.g., `/project-name`. + +Now you can choose _ONE_ of the following methods to deploy your Jekyll site. + +### Deploy Using Github Actions + +Prepare the following: + +- If you're on the GitHub Free plan, keep your site repository public. +- If you have committed `Gemfile.lock`{: .filepath} to the repository, and your local machine is not running Linux, update the platform list of the lock file: + + ```console + $ bundle lock --add-platform x86_64-linux + ``` + +Next, configure the _Pages_ service: + +1. Go to your repository on GitHub. Select the _Settings_ tab, then click _Pages_ in the left navigation bar. In the **Source** section (under _Build and deployment_), select [**GitHub Actions**][pages-workflow-src] from the dropdown menu. + ![Build source](pages-source-light.png){: .light .border .normal w='375' h='140' } + ![Build source](pages-source-dark.png){: .dark .normal w='375' h='140' } + +2. Push any commits to GitHub to trigger the _Actions_ workflow. In the _Actions_ tab of your repository, you should see the workflow _Build and Deploy_ running. Once the build is complete and successful, the site will be deployed automatically. + +You can now visit the URL provided by GitHub to access your site. + +### Manual Build and Deployment + +For self-hosted servers, you will need to build the site on your local machine and then upload the site files to the server. + +Navigate to the root of the source project, and build your site with the following command: + +```console +$ JEKYLL_ENV=production bundle exec jekyll b +``` + +Unless you specified the output path, the generated site files will be placed in the `_site`{: .filepath} folder of the project's root directory. Upload these files to your target server. + +[nodejs]: https://nodejs.org/ +[starter]: https://github.com/cotes2020/chirpy-starter +[pages-workflow-src]: https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow +[docker-desktop]: https://www.docker.com/products/docker-desktop/ +[docker-engine]: https://docs.docker.com/engine/install/ +[vscode]: https://code.visualstudio.com/ +[dev-containers]: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers +[dc-clone-in-vol]: https://code.visualstudio.com/docs/devcontainers/containers#_quick-start-open-a-git-repository-or-github-pr-in-an-isolated-container-volume +[dc-open-in-container]: https://code.visualstudio.com/docs/devcontainers/containers#_quick-start-open-an-existing-folder-in-a-container \ No newline at end of file diff --git a/content/post/2019-08-09-getting-started/pages-source-dark.png b/content/post/2019-08-09-getting-started/pages-source-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad8795c74b4f38802fa5c7b2855fbf36a6cc3c0 GIT binary patch literal 6774 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 I-X{D%09@bg`Tzg` literal 0 HcmV?d00001 diff --git a/content/post/2019-08-09-getting-started/pages-source-light.png b/content/post/2019-08-09-getting-started/pages-source-light.png new file mode 100644 index 0000000000000000000000000000000000000000..d89b343d1785a620ddce24f77cbd4489911a8003 GIT binary patch literal 7043 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 h4cO+tD3N~>ABs;w_gi{6Y-#YHr>?A{RIO+o`ag