首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于 Tauri, 我写了一个 Markdown 桌面 App

去年,我开发了一款微信排版编辑器 MDX Editor。它可以自定义组件、样式,生成二维码,代码 Diff 高亮,并支持导出 Markdown 和 PDF 等功能。...演示 技术选型 开发 MDX Editor 桌面 App,我使用了如下核心技术栈: React (Next.js) Tauri —— 构建跨平台桌面应用的开发框架 Tailwind CSS —— 原子类样式框架...MDX 自定义组件 MDX 结合了 Markdown 和 JSX 的优点,它让你可以 Markdown 文档中直接使用 React 组件,构建复杂的交互式文档。...你可以选择一个目录,或者将你的文档工作目录拖入编辑器,便能够实时地在编辑器管理文档。 图片 当我开发这个功能之前,我曾担心自己不熟悉 Rust,无法完成这个功能。...await readTextFile('app.conf', { dir: BaseDirectory.AppConfig }) 文档目录树采用了 Ant Design 的 Tree 组件实现,通过自定义样式使其整体皮肤风格保持一致

74740
您找到你想要的搜索结果了吗?
是的
没有找到

使用Next.js创建Blog

Next.js 已经成为 React 应用程序最重要的框架之一。它可以帮助开发人员没有模板的情况下构建更好的服务器端渲染 React 应用程序。...对于那些想要拥有一个简单但功能强大的博客的人来说,使用 Next.js 创建博客是当今的最佳选择。 SEO(搜索引擎优化)是改进应用程序搜索引擎排名的过程。...我们将在本文中使用 Next.js 来构建博客。我们介绍 SSG(静态站点生成)的工作原理,并完成 SEO 友好的博客。...remark-gfm 创建文章 根目录新增_posts目录,_posts目录下创建两个mdx文件(_posts/js/helloWorld.mdx,_posts/demo.mdx),为什么是mdx文件呢...内元素渲染的组件,参考MDX Components,mdx 提供默认的渲染组件,所以,这个是非必须的,不需要删除即可 个人比较喜欢 chakra-ui,所以组件都转成了 chakra-ui 提供的组件

8310

MDX 让 Markdown 步入组件时代

前言 MDX 出现之前, JSX Markdown 混合书写时,Markdown 的优势就不存在了。 通常采是用基于模板字符串的方式,因此就需要大量的转义和繁琐的语法。...MDX 试图让书写 Markdown 和 JSX 更简单、更具有表现力。当你组件 (甚至可以是动态的或需要加载数据的组件) Markdown 混合书写时,你写出更有趣的内容。...MDX 是什么 MDX 是一种书写格式,允许你 Markdown 文档无缝地插入 JSX 代码。 你还可以导入(import)组件,例如交互式图表或弹框,并将它们嵌入到内容当中。... 展示效果 如何使用 create-react-app 只需要安装 @mdx-js/loader, create-react-app...,限制其最大宽度,href 跳转要改成新窗口打开等 ,详情可以查看 unifiedjs.com 定义组件 支持了 mdx 之后, 可以给 mdx 定义组件, 比如给 H1 传递默认样式等,或者加入默认组件

1.5K10

Storybook 7 来了:迄今为止最大的更新

以组件为中心的自动文档生成 Storybook 7 ,你现在可以直接文档附加到你的组件上。页面会出现在侧边栏组件的 stories 一起显示,而不是以前的选项卡式用户界面。...使用 MDX 引用导入 stories Storybook 7 鼓励所有用户 CSF3 定义 stories,然后 MDX 引用它们。...更容易配置的样式插件 使用 Storybook 设置样式工具对许多开发人员来说是一个常见的挑战。...样式插件使你能够加载和应用全局样式到你的组件上,以及使用主题 Providers 包装 stories。甚至还提供了一个主题切换器,让你轻松切换主题。... 7.x 版本,我们推出许多生活质量的改进,特别是更好的模拟、全页面测试和兼容性方面。 参与进来 专业的 UI 开发人员每天都依赖于 Storybook。

40630

JavaScript前端学习有哪些项目可以练习

无论你是编程新手,还是经验丰富的开发人员,都需要不断学习新的概念和语言 / 框架,才能跟得上这个快速变化的行业。...Vue构建聊天应用 你学到什么内容: 在这个教程,你学习如何从头开始设置一款Vue应用,创建组件、处理状态、创建路由、连接到第三方服务,甚至处理身份验证。...04 使用Next.js构建电子商务购物车 你学到什么: 在这个项目中,你学习如何设置Next.js开发环境、创建新页面和组件、获取数据和样式并部署一个next应用程序。...技术栈和功能: Next.js 组件和页面 数据获取 样式 部署 SSR和SPA 教程:https://snipcart.com/blog/next-js-ecommerce-tutorial 05 使用...06 使用Gatsby建立博客 你学到什么内容: 本教程,你学习如何利用Gatsby构建出色的博客,可以很好地用来撰写自己的文章,同时利用React和GraphQL的能力。

2.9K20

2023 React 生态系统,以及我的一些吐槽……

因此,开发人员要么构建封装了对数据获取的严格观点的元框架,要么发明自己的数据获取方式。这通常意味着基于组件的状态和副作用凑合在一起,或者使用更通用的状态管理库应用程序存储和提供异步数据。...这在实现当今应用程序中使用的其他行为时变得更加复杂: 跟踪加载状态以显示 UI 加载指示器 避免对相同数据进行重复请求 进行乐观更新以提高 UI 响应速度 随着用户 UI 进行交互,管理缓存的生命周期...使用它来获取、缓存和修改应用程序数据,同时自动更新用户界面。 Apollo Client 帮助您以经济、可预测和声明式的方式组织代码,现代开发实践一致。...如果你需要做任何特殊的操作,表单进行交互就变得非常痛苦! 因此,React 做了它最擅长的事情,实现的工作交给了我们。事实上,这正是我喜欢 React 的原因!...Tailwind CSS Styled Components Emotion Taiwlind 就不需要多介绍了,最近太火热了,而且可以和 Styled Components 库结合使用

56430

9个不错的前端开源项目

无论您是刚开始编程还是已经是一名经验丰富的开发人员,在这个行业,学习新的概念和语言/框架是跟上快速变化的必要条件。...您将学到什么 本教程向您展示如何使用svelte3制作一个应用程序,从开始到结束。它使用组件、样式和事件处理程序。...该项目向您展示如何构建一个如下所示的电子商务购物车: ? 您将学到什么 在这个项目中,您将学习如何设置一个Next.js开发环境——创建新页面和组件、获取数据、设置样式并部署下一个应用程序。...我个人很喜欢Nuxt合作,因此您应该真正尝试使用它,因为它也会使您成为更好的Vue开发人员。...您将学到什么 本教程,您将学习如何利用Gatsby构建出色的博客,以便在使用React和GraphQL的同时编写自己的文章。

6.1K30

搬砖 React 4 年,我总结了这些企业级应用的要点

在此节,我会分享企业环境中使用 Next.js 所积累的原则。 模块化和组件化 原则:分而治之 庞大的企业级应用领域,代码可以迅速变成一头难以驯服的野兽。...一个维护良好的代码库不仅更易于使用,也更少 Bug 和回归。我最近在工作开发了一个组件库和一个基本的风格指南来规范我们的前端应用。请不要介意文档,它们还未完成 。...它们发挥指南针的作用,确保你的开发工作符合大规模应用的需求,使其健壮、可维护且对用户友好。以下章节,我们深入探讨这些原则如何转化为可执行的策略和最佳实践。...src/styles: 这个目录存放全局样式(global.css)和其他样式相关的文件。 src/public: 这个文件夹包含不经过构建过程的静态资源。...企业应用,验证各个组件的预期工作方式对健壮的应用非常关键。React Testing Library 允许彻底测试每个组件的隔离情况,以及与其他组件的结合情况。

37140

Astro 从静态网站生成器到 Next.js 劲敌的旅程

Netlify 最近的开发者调查,Astro 是 增长最快的 Web 框架,无论是使用率还是满意度。...Astro 的文档 “岛屿”定义为“页面上的任何交互式 UI 组件”,并邀请开发岛屿视为“漂浮在一片静态、轻量级、服务器渲染的 HTML 海洋的交互式小部件”。...最近在 CFE 上的一次演讲,运营着流行 YouTube 频道 的 JavaScript 开发者 James Q Quick 指出,大多数人开始使用 Astro 是因为它被称为“静态优先”框架——换句话说...他的个人博客之前 Gatsby 上,他开始将其迁移到 Next.js,这是他在工作花费大量时间使用的框架。但在此过程,他试用了 Astro,并很快被开发者体验所吸引。...“我敢打赌,他们继续服务器上添加特性和功能,但他们会考虑到出色的开发者体验,因为他们已经通过他们已经完成的所有其他事情证明了这一点。”

21810

岛屿架构

这两三年一直专注于公司的开发工作,做了很多事情,但回头看看,感觉这两年一直吃 ’老本‘,前端相关的技术也没怎么追了。 现在重新捡起笔吧!补补课,记录一些最近学到的新东西,以及过去几年总结。...SSR 也是服务端渲染完整 HTML 树,但是客户端依然需要加载完整的视图框架代码,然后进行水合(Hydration),才能让页面变得可交互: 那 Astro 没有 JS,显然是无法用户进行动态交互的...---- 有了‘岛屿’赋能的 Astro 架构: Astro 服务端渲染完整的 HTML 树,然后客户端按需加载岛屿代码,并进行水合。看起来有点像微前端、或者 iframe 这样的机制。... Astro 的定位非常清晰,它把站点类型分为两种: 内容为中心 → 也称为 网站 → Astro 擅长 交互为中心的 → 也称为 Web 应用程序 → 应该使用 Next.js 或者 Nuxt.js...SPA (Next.js) – 65% 网络使用减少 Astro vs.

38660

2023 年,这 9 个项目助你成为前端高手

学到什么 构建这个 App 时,你将使用相对较新的 Hooks API,这有助于提高你的 React 技能。...你学到什么 这个教程向你展示如何从头到尾使用 Svelte 3 开发 App。它使用了组件、样式和事件处理器。...这个项目向你展示如何构建一个电子商务购物车,它看起来像这样。 你学到什么 在这个项目中,你学习如何搭建 Next.js 开发环境——创建新的页面和组件、获取数据、样式化和部署 App。...6 用 Nuxt.js 构建一个完整的多语言博客网站 Nuxt.js 之于 Vue 就像 Next.js 之于 React——一个结合了服务器端渲染和单页应用程序的强大框架。...你学到什么 在这个教程,你学习如何利用 Gatsby、React 和 GraphQL 构建一个出色的博客。

3.1K20

从零开始使用 Astro 的实用指南

我们构建一个多页面的网站,包括一个博客。 在这篇文章末尾,你会很好地理解Astro是如何工作的,以及你如何使用它来更快地创建高效的网站。开始吧! 什么是Astro框架?...因此,我们可以为我们的用户创建一个快速的网站,而牺牲现代开发者的体验。 但Astro并没有止步不前。...本教程,我们主要使用.astro和.md文件来创建页面。注意,如果你使用.html页面,一些关键的Astro特性HTML组件不被支持。 现在让我们来创建第二个页面,看看它是如何工作的。...加载本地文件 在你的blog目录添加更多的博客文章,这样我们就可以我们的主页上创建一个列表。 Astro.glob()允许你本地文件加载到你的静态页面上。...这样一来,我们的用户就有了快速、无缝的体验,而我们仍然可以享受到使用动态框架工作的所有好处。这对用户和开发者来说是一个双赢的局面!

72240

从 Styleguidist 迁移到 Storybook

使用大型包时,Styleguidist 不能很好地伸缩,因为它会为包的每一个示例渲染一个独立的沙盒,导致初始化加载时间和热加载时间变长。...我们希望新的 Storybook 语法组件源代码保持一致,所以将使用 ES6。 应该让使用过 Styleguidist 的开发人员对 Storybook 的文档也感到熟悉。...Storybook 支持 MDX,这是一种结合了 Markdown 和 JSX 的文件格式,可以用 Markdown 为文档页面渲染 React 组件,我们可以现有的 Styleguidist Markdown...然后我们发现 MDX 代码块是相同的上下文中运行的,而且我们关于保持沙盒 Styleguidist 隔离的假设是不对的。...使用现有的 webpack 配置也意味着组件的外观和行为实际页面的完全一样。

1.3K20

我们如何使用 Next.js React 加载时间缩短 70%

为了解决这些问题,我们改用 Next.js初始页面加载时间减少了 70%,并将开发者的体验提升到一个新的水平。 什么是 Next.js?...样式 Causal 代码库的许多旧的 CSS 文件是团队对 CSS 模块的最佳实践进行标准化之前编写的。...许多 .scss 文件也一直使用 @USE 和 @EXTEND SCSS 指令来使用其他共享的 .scss 文件来构建样式。...评估部署我们新的 Next.js 前端的选项时,我们确定了三种可能性: 不要对 Next.js 使用任何服务器端渲染,使用 next export 构建,并将输出 CRA 的静态输出完全相同。...整个前端托管 Vercel 上,指向我们的后端(托管 GCP )。 为 Next.js 服务器编写一个自定义的 Docker 镜像,并将其与我们的后端和其他服务一起托管 GCP

4.7K10

Nuxt.js,Next.js,Nest.js傻傻分不清?

热模块替换:Next.js 支持热模块替换(HMR),开发过程,您可以实时更新代码并立即看到变化,无需手动刷新页面。...CSS 模块支持:Next.js 内置了对 CSS 模块的支持,使得组件级别的样式隔离和管理变得更加简单。 如何开始使用 Next.js?...要开始使用 Next.js,您可以按照以下步骤进行: 创建新项目:使用命令行工具,您选择的目录创建一个新的 Next.js 项目。...定义路由和请求处理程序:控制器文件使用装饰器和方法来定义路由和请求处理程序。...注册控制器:模块文件控制器注册到相应的模块。您可以使用装饰器 @Module 和 controllers 属性来完成这一步骤。

2.3K30

Next.js 14:虽无新 API,但不乏重大变更

开发者无需为后端任务手动创建 API 路由,现在可以直接在 React 组件定义服务器端功能,从而允许客户端服务器间实现无缝交互,甚至可以 App Router 模型当中合并错误处理、缓存、重新验证重新定向...此次更新的意义在于简化开发工作流程,同时增强用户应用之间的交互。对于各位 TypeScript 用户来说,稳定版功能还能更好地保障客户端服务器间实现类型安全。...,动态个性化响应的灵活性相结合。...通过 PartyKit Next.js结合,她演示了如何创建一款功能全面的实时民意调查应用,用户可以之交互并查看代码和部署过程。...,实现 App“动态无限制”(https://www.infoq.cn/article/sITi66wc3mvcNs3PeRkb) 我们如何使用 Next.js React 加载时间缩短 70%(https

39320

为什么说 Next.js 13 是一个颠覆性版本

结合服务器端组件和客户端组件,你可以服务器端组件用于程序快速加载、非交互性的部分,客户端组件用于交互、浏览器 API 和其它功能。...其他升级 next/image Next.js 的新 Image 组件包括更少的客户端 JavaScript、样式和配置,改进了可访问性。...next/font 你可以 Google Fonts(或者任何其它自定义字体) @next/font 一起使用,无需浏览器提交任何查询。...甚至最新的 React 中一些尖端功能(这些功能被大量使用但仍处于 RFC 阶段)也经常不包括在内。 虽然我建议在生产环境中使用 Next.js 13,但你上手应该试一试。...App“动态无限制”(https://www.infoq.cn/article/sITi66wc3mvcNs3PeRkb ) 我们如何使用 Next.js React 加载时间缩短 70%(https

3K10

vitepress搭建markdown文档博客

功能强大, Gatsby 相似(React)dumi - 一款 UmiJS 生态的组件开发文档工具(React)Nextra - 一个基于 Next.js 的静态站点生成器。...        {            text:"新手入门",            children:[                {                    text:'安装使用...{ demoBlockPlugin } = require('vitepress-theme-demoblock')      md.use(demoBlockPlugin)    }  }}注入主题插件...docs/.vitepress/theme/index.ts 写入如下代码,其中 register-components.js 不需要自己创建, package.json 中注入脚本,执行脚本自动生成...demo 的 index.md 文件中使用特定的语法包裹代码,可以自动生成组件 demo 展示# Button 按钮:::demo 使用`type`,`plain`,`round`来定义 Button

1.5K20
领券