├── .github └── workflows │ └── deploy-site.yml ├── .gitignore ├── .vscode └── settings.json ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── app ├── .gitignore ├── Cargo.toml ├── README.md ├── Trunk.toml ├── assets │ ├── images │ │ ├── $dark_$mobile_banner.png │ │ ├── $dark_$mobile_banner.svg │ │ ├── $dark_$mobile_projects_banner.svg │ │ ├── $dark_banner.png │ │ ├── $dark_banner.svg │ │ ├── $dark_close_btn.svg │ │ ├── $dark_drawer.svg │ │ ├── $dark_github.svg │ │ ├── $dark_projects_banner.svg │ │ ├── $dark_setting.svg │ │ ├── $dark_zzhack_logo.png │ │ ├── $dark_zzhack_logo.svg │ │ ├── $light_$mobile_banner.png │ │ ├── $light_$mobile_banner.svg │ │ ├── $light_$mobile_projects_banner.svg │ │ ├── $light_banner.png │ │ ├── $light_banner.svg │ │ ├── $light_close_btn.svg │ │ ├── $light_drawer.svg │ │ ├── $light_github.svg │ │ ├── $light_projects_banner.svg │ │ ├── $light_setting.svg │ │ ├── $light_zzhack_logo.png │ │ ├── $light_zzhack_logo.svg │ │ ├── $mobile_links_banner.svg │ │ ├── about_compare.svg │ │ ├── about_design_lang.svg │ │ ├── about_zzhack.svg │ │ ├── auto_mode_skeleton.png │ │ ├── avatar.png │ │ ├── dark_mode.svg │ │ ├── dark_mode_skeleton.png │ │ ├── discord.svg │ │ ├── gmail.svg │ │ ├── guide_post.png │ │ ├── label.png │ │ ├── light_mode.svg │ │ ├── light_mode_skeleton.png │ │ ├── links_banner.svg │ │ ├── page_not_found.png │ │ ├── switch_theme_guide.png │ │ ├── switch_theme_guide.svg │ │ ├── twitter.svg │ │ ├── wechat.svg │ │ └── zzhack_favicon.svg │ ├── sources │ │ ├── blog_cover.svg │ │ ├── dark_mode_skeleton.png │ │ ├── dynamic_dispatch.png │ │ ├── into_the_wild.jpg │ │ ├── issues_dispatch.png │ │ ├── links_cover.png │ │ ├── links_cover.svg │ │ ├── mlog_cover.png │ │ ├── provider_dispatch.png │ │ ├── static_dispatch.png │ │ ├── wasm_fib.png │ │ └── yew_logo.png │ └── styles │ │ ├── base.scss │ │ ├── markdown.scss │ │ └── one-dark.scss ├── configs │ ├── md_translate_rs.template │ ├── rs_aggregation.template │ └── rs_iteration.template ├── index.html └── src │ ├── app.rs │ ├── main.rs │ ├── posts.rs │ └── routes.rs ├── doc ├── zzhack_banner.png ├── zzhack_dark_mode.png ├── zzhack_light_mode.png ├── zzhack_links.png └── zzhack_sketch.png ├── global ├── .gitignore ├── Cargo.toml └── src │ ├── lib.rs │ └── theme_context.rs ├── pages ├── about │ ├── .gitignore │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── home │ ├── .gitignore │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── links │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── not_found │ ├── .gitignore │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── post │ ├── Cargo.toml │ └── src │ │ └── lib.rs └── projects │ ├── .gitignore │ ├── Cargo.toml │ └── src │ └── lib.rs ├── posts ├── add_links.md ├── build_blog.md └── mlog_2022-10-26.md ├── router ├── Cargo.toml └── src │ └── lib.rs ├── services ├── .gitignore ├── Cargo.toml └── src │ ├── lib.rs │ ├── links_service │ ├── links.json │ ├── links_service.rs │ └── mod.rs │ ├── markdown_service │ ├── elements.rs │ ├── markdown_service.rs │ └── mod.rs │ ├── post_service │ ├── mod.rs │ ├── post_card_size.rs │ └── post_service.rs │ ├── posts.rs │ ├── projects_service │ ├── mod.rs │ ├── projects.json │ └── projects_service.rs │ └── theme_service │ ├── mod.rs │ ├── theme.rs │ └── theme_service.rs ├── templates ├── md_parser.template └── md_parser_iteration.template ├── ui ├── .gitignore ├── Cargo.toml └── src │ ├── common │ ├── contact.rs │ ├── container.rs │ ├── footer.rs │ ├── gradient_title.rs │ ├── header │ │ ├── drawer.rs │ │ ├── drawer_item.rs │ │ ├── header.rs │ │ └── mod.rs │ ├── image.rs │ ├── layout.rs │ ├── link.rs │ ├── mod.rs │ ├── modal │ │ ├── mod.rs │ │ ├── modal.rs │ │ ├── modal_action.rs │ │ └── modal_content.rs │ └── switch.rs │ ├── lib.rs │ ├── link_card.rs │ ├── post_card │ ├── label.rs │ ├── mod.rs │ ├── post_card.rs │ ├── post_card_header.rs │ ├── post_card_large.rs │ └── post_card_small.rs │ ├── project_card.rs │ └── theme │ ├── mod.rs │ ├── theme_item.rs │ └── theme_selector.rs ├── utils ├── .gitignore ├── Cargo.toml └── src │ ├── error.rs │ ├── html.rs │ ├── lib.rs │ ├── logger.rs │ ├── resource.rs │ ├── style.rs │ ├── theme.rs │ └── time.rs └── vercel.json /.github/workflows/deploy-site.yml: -------------------------------------------------------------------------------- 1 | name: deploy-site 2 | on: 3 | push: 4 | branches: 5 | - main 6 | 7 | jobs: 8 | cargo-build: 9 | name: vercel deploy 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - uses: hecrj/setup-rust-action@v1 15 | with: 16 | rust-version: stable 17 | 18 | - name: 'install wasm32-unknown-unknown' 19 | run: rustup target add wasm32-unknown-unknown 20 | 21 | - uses: jetli/wasm-bindgen-action@v0.1.0 22 | with: 23 | version: 'latest' 24 | 25 | - uses: actions-rs/install@v0.1 26 | with: 27 | crate: rapper 28 | version: latest 29 | 30 | - uses: jetli/trunk-action@v0.1.0 31 | with: 32 | version: 'latest' 33 | 34 | - name: build 35 | run: cd app && trunk build --release -d ../dist 36 | 37 | - uses: amondnet/vercel-action@v20 38 | with: 39 | vercel-cli: vercel 40 | vercel-token: ${{ secrets.VERCEL_TOKEN }} 41 | vercel-args: --prod 42 | vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} 43 | vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} 44 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | **/*.rs.bk 2 | .vercel 3 | 4 | # Dependencies 5 | pkg 6 | /target 7 | 8 | # Dist 9 | dist 10 | 11 | # Platform 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "editor.formatOnSave": true, 4 | "editor.tabSize": 4, 5 | "[rust]": { 6 | "editor.defaultFormatter": "rust-lang.rust-analyzer" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | 3 | members = [ 4 | "app", 5 | "ui", 6 | "utils", 7 | "services", 8 | "global", 9 | "pages/home", 10 | "pages/projects", 11 | "pages/not_found", 12 | "pages/home", 13 | "pages/links", 14 | "pages/post", 15 | "router", 16 | ] 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |  2 |
38 | {"嗨!欢迎来到我的应用 zzhack 😎,这是一个兴趣使然的项目,zzhack 被设计为一个注重信息展示的应用,它是序列化和沉淀我思想的地方。"} 39 |
40 |41 | {"如你所见的 zzhack 已是第五个大版本,它已经经过了两次大规模的重构以及 5 次重新设计,最后回归纯真,专注信息展示。"} 42 |
43 |46 | {"这么看下来 zzhack 的确没有什么让人惊讶的亮点,没有额外的用户交互,没有炫酷的交互动画,看上去只是一个平静的展示内容的 web 应用,但是它的确适合作为一个单纯的内容输出的站点,而不被逐渐社交化。"} 47 |
48 |49 | {"zzhack 是一个纯静态的应用,并且开源内容到代码的所有,如果你对它的技术实现感兴趣可以在 "} 50 | {"这里"} 51 | {" 找到它。"} 52 |
53 |57 | {"我叫 Mist,一名全栈工程师。"} 58 |
59 |{"我会用业余时间维护一些开源项目,包括不限于奇思妙想的产品,提升开发者体验的工具,库,框架。我目前在思考于 UI Design 和想要用 ❤️ 做好一个产品。"}
100 |101 | {"如果你有任何相关的建议或者有趣问题的讨论,欢迎直接通过 "} 102 | {"邮件"} 103 | {" 联系我。"} 104 |
105 |{"你可以在任何地方通过开关随时修改你的主题"}
140 |