Lưu trữ
Quartz có thể biến các tệp Markdown và các tài nguyên khác của bạn thành một tập hợp các tệp HTML, JS và CSS (một trang web!).
Tuy nhiên, nếu bạn muốn xuất bản trang web của mình ra thế giới, bạn cần một cách để lưu trữ trực tuyến. Hướng dẫn này sẽ trình bày chi tiết cách triển khai với các nhà cung cấp dịch vụ lưu trữ phổ biến nhưng bất kỳ dịch vụ nào cho phép bạn triển khai HTML tĩnh cũng có thể hoạt động.
Phần còn lại của hướng dẫn này giả định rằng bạn đã tạo kho lưu trữ GitHub của riêng mình cho Quartz. Nếu bạn chưa tạo, hãy đảm bảo rằng bạn đã làm như vậy .
Một số tính năng của Quartz (như RSS Feed và tạo sitemap) cần
baseUrlđược cấu hình đúng trong cấu hình của bạn để hoạt động bình thường. Hãy đảm bảo bạn thiết lập điều này trước khi triển khai!
Các trang Cloudflare
- Đăng nhập vào bảng điều khiển Cloudflare và chọn tài khoản của bạn.
- Trong Trang chủ tài khoản, chọn Công nhân & Trang > Tạo ứng dụng > Trang > Kết nối với Git .
- Chọn kho lưu trữ GitHub mới mà bạn đã tạo và trong phần Thiết lập bản dựng và triển khai , hãy cung cấp thông tin sau:
| Tùy chọn cấu hình | Giá trị |
|---|---|
| Chi nhánh sản xuất | v4 |
| Khung cài đặt trước | None |
| Xây dựng lệnh | npx quartz build |
| Xây dựng thư mục đầu ra | public |
Nhấn “Lưu và triển khai” và Cloudflare sẽ có phiên bản triển khai của trang web của bạn trong khoảng một phút. Sau đó, mỗi lần bạn đồng bộ hóa các thay đổi Quartz của mình với GitHub, trang web của bạn sẽ được cập nhật.
Để thêm tên miền tùy chỉnh, hãy tham khảo tài liệu của Cloudflare .
Theo mặc định, Cloudflare Pages sẽ thực hiện một bản sao nông, vì vậy nếu bạn dựa vào
gitdấu thời gian, bạn nên thêmgit fetch --unshallow &&vào đầu lệnh dựng (ví dụ:git fetch --unshallow && npx quartz build).
Trang GitHub
Trong Quartz cục bộ của bạn, hãy tạo một tệp mới quartz/.github/workflows/deploy.yml.
quartz/.github/workflows/deploy.yml
<span data-line=""><span>name</span><span>: </span><span>Deploy Quartz site to GitHub Pages</span></span>
<span data-line=""> </span>
<span data-line=""><span>on</span><span>:</span></span>
<span data-line=""><span> push</span><span>:</span></span>
<span data-line=""><span> branches</span><span>:</span></span>
<span data-line=""><span> - </span><span>v4</span></span>
<span data-line=""> </span>
<span data-line=""><span>permissions</span><span>:</span></span>
<span data-line=""><span> contents</span><span>: </span><span>read</span></span>
<span data-line=""><span> pages</span><span>: </span><span>write</span></span>
<span data-line=""><span> id-token</span><span>: </span><span>write</span></span>
<span data-line=""> </span>
<span data-line=""><span>concurrency</span><span>:</span></span>
<span data-line=""><span> group</span><span>: </span><span>"pages"</span></span>
<span data-line=""><span> cancel-in-progress</span><span>: </span><span>false</span></span>
<span data-line=""> </span>
<span data-line=""><span>jobs</span><span>:</span></span>
<span data-line=""><span> build</span><span>:</span></span>
<span data-line=""><span> runs-on</span><span>: </span><span>ubuntu-22.04</span></span>
<span data-line=""><span> steps</span><span>:</span></span>
<span data-line=""><span> - </span><span>uses</span><span>: </span><span>actions/checkout@v4</span></span>
<span data-line=""><span> with</span><span>:</span></span>
<span data-line=""><span> fetch-depth</span><span>: </span><span>0</span><span> # Fetch all history for git info</span></span>
<span data-line=""><span> - </span><span>uses</span><span>: </span><span>actions/setup-node@v4</span></span>
<span data-line=""><span> with</span><span>:</span></span>
<span data-line=""><span> node-version</span><span>: </span><span>22</span></span>
<span data-line=""><span> - </span><span>name</span><span>: </span><span>Install Dependencies</span></span>
<span data-line=""><span> run</span><span>: </span><span>npm ci</span></span>
<span data-line=""><span> - </span><span>name</span><span>: </span><span>Build Quartz</span></span>
<span data-line=""><span> run</span><span>: </span><span>npx quartz build</span></span>
<span data-line=""><span> - </span><span>name</span><span>: </span><span>Upload artifact</span></span>
<span data-line=""><span> uses</span><span>: </span><span>actions/upload-pages-artifact@v3</span></span>
<span data-line=""><span> with</span><span>:</span></span>
<span data-line=""><span> path</span><span>: </span><span>public</span></span>
<span data-line=""> </span>
<span data-line=""><span> deploy</span><span>:</span></span>
<span data-line=""><span> needs</span><span>: </span><span>build</span></span>
<span data-line=""><span> environment</span><span>:</span></span>
<span data-line=""><span> name</span><span>: </span><span>github-pages</span></span>
<span data-line=""><span> url</span><span>: </span><span>${{ steps.deployment.outputs.page_url }}</span></span>
<span data-line=""><span> runs-on</span><span>: </span><span>ubuntu-latest</span></span>
<span data-line=""><span> steps</span><span>:</span></span>
<span data-line=""><span> - </span><span>name</span><span>: </span><span>Deploy to GitHub Pages</span></span>
<span data-line=""><span> id</span><span>: </span><span>deployment</span></span>
<span data-line=""><span> uses</span><span>: </span><span>actions/deploy-pages@v4</span></span>
Sau đó:
- Đi đến tab “Settings” của kho lưu trữ phân nhánh của bạn và trong thanh bên, nhấp vào “Pages”. Trong “Source”, chọn “GitHub Actions”.
- Cam kết những thay đổi này bằng cách thực hiện
npx quartz sync. Điều này sẽ triển khai trang web của bạn tới<github-username>.github.io/<repository-name>.
Nếu bạn nhận được lỗi không được phép triển khai
github-pagesdo các quy tắc bảo vệ môi trường, hãy đảm bảo bạn xóa mọi môi trường trang GitHub hiện có.Bạn có thể thực hiện việc này bằng cách vào trang Cài đặt trên GitHub fork của bạn và vào tab Môi trường và nhấn vào biểu tượng thùng rác. Hành động GitHub sẽ tạo lại môi trường cho bạn một cách chính xác vào lần tiếp theo bạn đồng bộ hóa Quartz.
Quartz generates files in the format of
file.htmlinstead offile/index.htmlwhich means the trailing slashes for non-folder paths are dropped. As GitHub pages does not do this redirect, this may cause existing links to your site that use trailing slashes to break. If not breaking existing links is important to you (e.g. you are migrating from Quartz 3), consider using Cloudflare Pages.
Custom Domain
Here’s how to add a custom domain to your GitHub pages deployment.
- Head to the “Settings” tab of your forked repository.
- In the “Code and automation” section of the sidebar, click “Pages”.
- Under “Custom Domain”, type your custom domain and click “Save”.
- This next step depends on whether you are using an apex domain (
example.com) or a subdomain (subdomain.example.com).- If you are using an apex domain, navigate to your DNS provider and create an
Arecord that points your apex domain to GitHub’s name servers which have the following IP addresses:185.199.108.153185.199.109.153185.199.110.153185.199.111.153
- If you are using a subdomain, navigate to your DNS provider and create a
CNAMErecord that points your subdomain to the default domain for your site. For example, if you want to use the subdomainquartz.example.comfor your user site, create aCNAMErecord that pointsquartz.example.comto<github-username>.github.io.
- If you are using an apex domain, navigate to your DNS provider and create an
The above shows a screenshot of Google Domains configured for both jzhao.xyz (an apex domain) and quartz.jzhao.xyz (a subdomain).
See the GitHub documentation for more detail about how to setup your own custom domain with GitHub Pages.
Why aren't my changes showing up?
There could be many different reasons why your changes aren’t showing up but the most likely reason is that you forgot to push your changes to GitHub.
Make sure you save your changes to Git and sync it to GitHub by doing
npx quartz sync. This will also make sure to pull any updates you may have made from other devices so you have them locally.
Vercel
Fix URLs
Before deploying to Vercel, a vercel.json file is required at the root of the project directory. It needs to contain the following configuration so that URLs don’t require the .html extension:
vercel.json
<span data-line=""><span>{</span></span>
<span data-line=""><span> "cleanUrls"</span><span>: </span><span>true</span></span>
<span data-line=""><span>}</span></span>
Deploy to Vercel
- Log in to the Vercel Dashboard and click “Add New…” > Project
- Import the Git repository containing your Quartz project.
- Give the project a name (lowercase characters and hyphens only)
- Check that these configuration options are set:
| Configuration option | Value |
|---|---|
| Framework Preset | Other |
| Root Directory | ./ |
| Build and Output Settings > Build Command | npx quartz build |
- Press Deploy. Once it’s live, you’ll have 2
*.vercel.appURLs to view the page.
Custom Domain
If there is something already hosted on the domain, these steps will not work without replacing the previous content. As a workaround, you could use Next.js rewrites or use the next section to create a subdomain.
- Update the
baseUrlinquartz.config.jsif necessary. - Truy cập trang Bảng điều khiển - Tên miền trong Vercel.
- Kết nối miền với Vercel
- Nhấn “Thêm” để kết nối tên miền tùy chỉnh với Vercel.
- Chọn kho lưu trữ Quartz của bạn và nhấn Tiếp tục.
- Nhập tên miền mà bạn muốn kết nối tới.
- Làm theo hướng dẫn để cập nhật bản ghi DNS của bạn cho đến khi bạn thấy “Cấu hình hợp lệ”
Sử dụng tên miền phụ
Sử dụng docs.example.comlà một ví dụ về tên miền phụ. Đây là cách đơn giản để kết nối nhiều triển khai vào một tên miền.
- Cập nhật thông
baseUrltinquartz.config.jsnếu cần thiết. - Đảm bảo tên miền của bạn đã được thêm vào trang Bảng điều khiển tên miền trong Vercel.
- Truy cập Bảng điều khiển Vercel và chọn dự án Quartz của bạn.
- Vào tab Cài đặt rồi nhấp vào Tên miền trong thanh bên
- Nhập tên miền phụ của bạn vào trường và nhấn Thêm