{"id":22430141,"url":"https://github.com/2wce/blog","last_synced_at":"2026-03-19T22:50:36.085Z","repository":{"id":279296434,"uuid":"938320571","full_name":"2wce/blog","owner":"2wce","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-25T14:35:18.000Z","size":699,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-25T05:56:06.998Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://blog-lake-mu-98.vercel.app","language":"XSLT","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/2wce.png","metadata":{"files":{"readme":"README.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}},"created_at":"2025-02-24T19:11:18.000Z","updated_at":"2025-02-26T09:48:54.000Z","dependencies_parsed_at":"2025-10-10T09:14:51.749Z","dependency_job_id":"1c71bf2b-2c76-4d45-8ab4-e37196cd867f","html_url":"https://github.com/2wce/blog","commit_stats":null,"previous_names":["2wce/blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/2wce/blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2wce%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2wce%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2wce%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2wce%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2wce","download_url":"https://codeload.github.com/2wce/blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2wce%2Fblog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29603036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T04:01:40.476Z","status":"ssl_error","status_checked_at":"2026-02-19T04:01:12.960Z","response_time":117,"last_error":"SSL_read: 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":[],"created_at":"2024-12-05T21:07:31.396Z","updated_at":"2026-02-19T04:30:57.747Z","avatar_url":"https://github.com/2wce.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slate blog\n\n\n## Why We build it?\n\nWe love writing and sharing, and we appreciate well-crafted products. That’s why we created this minimalist theme, focusing on content itself, providing a smooth and pure writing and reading experience. Built on the latest framework, it’s faster, lighter, and more efficient.\n\nIt also works seamlessly with [Obsidian](https://obsidian.md/), helping you turn your notes into published posts effortlessly.\n\n## ✨ Features\n\n- Minimalist style theme, adaptable to multiple platforms\n- Support `light` and `dark` mode.\n- Zero-based quick start, foolproof configuration, easy deployment\n- Support for article drafts, local preview, and automatic draft filtering in production builds\n- Default RSS generation with Follow subscription authentication\n- Integrated Algolia search\n- Complete SEO optimization to improve search engine rankings\n\n## 🪜 Framework\n\n- Astro + React + Typescript\n- Tailwindcss + @radix-ui/colors\n  - Updated to [Tailwind CSS v4.0](https://tailwindcss.com/blog/tailwindcss-v4) (Jan 10, 2025)\n- Docsearch\n\n## 🔨 Usage\n\n```bash\n# Start local server\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n\n# Build\nnpm run build\n# or\nyarn build\n# or\npnpm build\n```\n\n\u003e If you fork the repository and set it to private, you will lose the association with the upstream repository by default. You can sync the latest version of Slate Blog by running `pnpm sync-latest`.\n\n## 🗂 Directory Structure\n\n```\n- plugins/            # Custom plugins\n- src/\n  ├── assets/         # Asset files\n  ├── components/     # Components\n  ├── content/        # Content collections\n  ├── helpers/        # Business logic\n  ├── pages/          # Pages\n  └── typings/        # Common types\n```\n\n\u003e Articles are stored in the `src/content/post` directory, supporting markdown and mdx formats. The filename is the path name. For example, `src/content/post/my-first-post.md` =\u003e `https://your-blog.com/blog/my-first-post`.\n\n## Configuration\n\nTheme configuration is done through `slate.config.ts` in the root directory.\n\n| Option | Description | Type | Default |\n| --- | --- | --- | --- |\n| site | Final deployment link | `string` | - |\n| title | Website title | `string` | - |\n| description | Website description | `string` | - |\n| lang | Language | `string` | `zh-CN` |\n| theme | Theme | `{ mode: 'auto' \\| 'light' \\| 'dark', enableUserChange: boolean }` | `{ mode: 'auto', enableUserChange: true }` |\n| avatar | Avatar | `string` | - |\n| sitemap | Website sitemap configuration | [SitemapOptions](https://docs.astro.build/en/guides/integrations-guide/sitemap/)  | - |\n| readTime | Show reading time | `boolean` | `false` |\n| lastModified | Show last modified time | `boolean` | `false` |\n| algolia | Docsearch configuration | `{ appId: string, apiKey: string, indexName: string }` | - |\n| follow | Follow subscription authentication configuration | `{ feedId: string, userId: string }` | - |\n| footer | Website footer configuration | `{ copyright: string }` | - |\n| socialLinks | Social Links Configuration | `{ icon: [SocialLinkIcon](#SocialLinkIcon), link: string, ariaLabel?: string }` | - |\n\n\n### SocialLinkIcon\n\n```ts\ntype SocialLinkIcon =\n  | 'dribbble'\n  | 'facebook'\n  | 'figma'\n  | 'github'\n  | 'instagram'\n  | 'jike'\n  | 'link'\n  | 'notion'\n  | 'npm'\n  | 'rednote'\n  | 'rss'\n  | 'threads'\n  | 'stackoverflow'\n  | 'weibo'\n  | 'x'\n  | 'youtube'\n  | { svg: string }\n```\n\n### Algolia Application\n\n1. Deploy your site first\n2. Apply for an `apiKey` at [algolia](https://docsearch.algolia.com/apply/)\n3. After successful application, configure `algolia` in `slate.config.ts`\n4. Redeploy\n\n### Follow Subscription Authentication\n\n1. Register a [follow](https://follow.is/) account\n2. Deploy your site\n3. Click the `+` button on `follow`, select `RSS` subscription, and enter the `rss` link (usually `[site]/rss.xml`, where `site` is the value of `site` in `slate.config.ts`)\n4. Redeploy\n\n## Article Frontmatter Description\n\n| Option | Description | Type | Required |\n| --- | --- | --- | --- |\n| title | Article title | `string` | Yes |\n| description | Article description | `string` | No |\n| tags | Article tags | `string[]` | No |\n| draft | Whether it's a draft. When not provided or `false`, `pubDate` must be provided; drafts are only visible in local preview | `boolean` | No |\n| pubDate | Article publication date | `date` | No, required when `draft` is `false` |\n\n**For more details, check the `src/content/config.ts` file**\n\n### Example\n\n```md\n---\ntitle: 40 questions\ndescription: This repo maintains revisons and translations to the list of 40 questions I ask myself each year and each decade.\ntags:\n  - Life\n  - Thinking\n  - Writing\npubDate: 2025-01-06\n---\n```\n\n## Markdown Syntax Support\n\nIn addition to standard Markdown syntax, the following extended syntax is supported:\n\n### Basic Syntax\n- Headers, lists, blockquotes, code blocks and other basic syntax\n- Tables\n- Links and images\n- **Bold**, *italic*, and ~strikethrough~ text\n\n### Extended Syntax\n#### Container syntax\nUsing `:::` markers\n  ```md\n  :::info\n  This is an information prompt\n  :::\n  ```\n\n#### LaTeX Mathematical Formulas\n  - Inline formula: $E = mc^2$\n  - Block formula: $$ E = mc^2 $$\n\n#### Support for image captions\n  ```md\n  ![Image caption](image-url)\n  ```\n\n## Updates\n### Version 1.1.1\n- Fixed known issues\n\n### Version 1.1\n- Upgraded to support [Tailwind CSS v4.0](https://tailwindcss.com/blog/tailwindcss-v4)\n- Added dark mode support\n- Fixed known issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2wce%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2wce%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2wce%2Fblog/lists"}