avatarSHAXUTANG

包含「前端」的文章有 3

tailwind CSS 是一个基于原子类的 CSS 框架,它提供了一套可复用的 CSS 类,用于快速构建现代化的用户界面。与传统的 CSS 框架不同,tailwind CSS 不依赖于预定义的组件,而是通过组合多个原子类来构建界面。

为什么要使用 tailwind

tailwind CSS 的核心理念是提供一组小而简单的 CSS 类,每个类都代表一个特定的样式属性。通过将这些类组合在一起,开发者可以轻松地构建出各种样式。

例如,要创建一个按钮,可以使用 bg-blue-500 类设置背景颜色为蓝色,使用 text-white 类设置文字颜色为白色,使用 px-4 py-2 类设置内边距等。

<button class="bg-blue-500 px-4 py-2 text-white">button</button>

与其他 CSS 框架相比,tailwind CSS 具有以下优点:

  • 灵活性:tailwind CSS 提供了大量的原子类,开发者可以根据需要自由组合,而不受预定义组件的限制。
  • 可定制性:tailwind CSS 允许开发者通过配置文件自定义样式属性,以适应不同的项目需求。
  • 性能优化:tailwind CSS 通过使用 PurgeCSS 等工具,可以自动删除未使用的样式,从而减小 CSS 文件的大小。
  • 社区支持:tailwind CSS 拥有庞大的社区,提供了大量的插件和扩展,可以进一步增强框架的功能。

如何使用 tailwind

因为 tailwind CSS 本身并不依赖于任何特定的前端框架。你只需要在项目中安装 tailwind CSS,并在你的项目中使用相应的 CSS 类即可。

安装

npm install -D tailwindcss postcss autoprefixer

初始化 tailwind 配置文件

npx tailwindcss init -p

执行完成后将会在项目根目录生成 tailwind.config.js 配置文件

我们只需要在content属性中配置哪类文件需要使用 tailwind 即可

/** @type {import('tailwindcss').Config} */ export default { content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], theme: { extend: {}, }, plugins: [], };

引入 tailwindcss

  1. 在自己项目中通过 @tailwind 指令引入
@tailwind base; @tailwind components; @tailwind utilities;
  1. 在项目入口文件引入 tailwindcss/tailwind.css
import "tailwindcss/tailwind.css";

这种方式等同于上述 1

在 Vue 项目中使用

vue 项目中只需要在 tailwind.config.js 中配置 .vue 文件

/** @type {import('tailwindcss').Config} */ export default { content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], theme: { extend: {}, }, plugins: [], };

在 vue 文件中使用

<template> <h1 class="text-3xl font-bold underline">Hello world!</h1> </template>

在 React 项目中使用

同在 vue 项目中一样,在tailwind.config.js 中配置 .jsx/tsx 文件即可

/** @type {import('tailwindcss').Config} */ export default { content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], theme: { extend: {}, }, plugins: [], };

在 jsx 文件中使用

export default function App() { return <h1 className="text-3xl font-bold underline">Hello world!</h1>; }

在本站使用

我引入 tailwind 的原因,是因为当我使用 flex 实现垂直水平居中时,总是会把 align-items 写成 items-center, fuck!!

由于本站基于React实现,因此按照上述步骤即使用 tailwind

秉承着能省就省的原则,既然网站部署都已经托管了,那么评论区功能我也就使用 Giscus 好了 🤣。

Giscus 的使用也很简单,进入官网后按照步骤来进行配置就可以了,它主要是利用了 Github 的 discussions 来实现的。

  • 你的仓库必须是公开的,否则访客将无法查看 discussion。
  • giscus app 已安装,否则访客将无法评论和回应。
  • Discussions 功能已在你的仓库中启用。

集成 Giscus

如果你已经按照 Giscus 的步骤完成操作后即可把 Giscus 添加到网站中。

原生 js

如果你的网站是使用原生 javascript 实现的那么你需要在网站中新增标签

<script src="https://giscus.app/client.js" data-repo="[在此输入仓库]" data-repo-id="[在此输入仓库 ID]" data-category="[在此输入分类名]" data-category-id="[在此输入分类 ID]" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="preferred_color_scheme" data-lang="zh-CN" crossorigin="anonymous" async ></script>

组件框架

但如果向我这样使用了组件化的框架那么就需要使用 giscus 组件库

比如,我的网站是用 Docusaurus 构建的,而 Docusaurus 使用的是 React,因此我们需要安装 Giscus React 组件

npm i @giscus/react

使用组件

<Giscus id="comments" repo="[在此输入仓库]" repoId="[在此输入仓库 ID]" category="[在此输入分类名]" categoryId="[在此输入分类 ID]" mapping="pathname" reactionsEnabled="1" emitMetadata="0" inputPosition="top" theme="light" lang="zh-CN" loading="lazy" />

因为是由 Github 的 discussions 来实现的,因此目前只允许有 Github 账号的小伙伴评论 😊, 在本页最下方即可发表评论。

我非常喜欢 Docusaurus 的设计风格,它能帮我快速的构建网站,还可以自定义文档主题,改造成属于自己风格的网站

搭建初衷

很简单,谁不想拥有一个属于自己的网站呢 🐻?

为什么写博客?

学过编程的都知道,不管是前端,还是 Java Python 这些,要学的知识真的太多太多了,人的大脑容量是有限的,想全都记住不太现实,不自己实战一下的话,过一段时间还是会遗忘!写博客需要思考和总结,这可以帮助个人或组织在忙碌的工作中保持长期思考。

搭建过程

如果你也想搭建一个个人网站,我的搭建过程可以给你当作参考。

博客选型

市面上有很多写博客的平台 CSDN博客园知乎。 但我个人并不喜欢这类,因为里面的内容鱼龙混杂,什么都有。 因此我选择速搭建一个属于自己风格的网站。

Docusaurus 是一个静态网站生成器,它使用了 React 的全部功能来构建具有快速客户端导航的单页应用,从而赋予你的网站交互性。它提供了开箱即用的文档功能,并且可以用于创建任何类型的网站,例如个人网站、产品介绍、博客、营销页等等。Docusaurus 本质上是一组 npm 包,可以通过命令行工具来搭建 Docusaurus 骨架网站。使用 Docusaurus 创建新的初始应用也非常简单,可以在新的空存储库或现有存储库中的任何位置运行相关命令,它将创建一个包含脚手架文件的新目录。

前提知识

  • Node.js 是一个强大且流行的 JavaScript 运行时环境,适用于构建高性能、可扩展的服务器端应用程序。

  • React 是一个强大且流行的 JavaScript 库,用于构建高效、可维护、组件化的用户界面。

创建 Docusaurus 项目

pnpm create docusaurus

项目创建完成后执行命令

pnpm start

Docusaurus 的使用非常简单,我们只需要在 (blog/docs) 目录下编写 markdown 即可,它会帮我们解析成响应式页面适配桌面端和手机端,并且生成导航栏展示当前文章目录索引。我们也可以在 pages 目录下使用 React 组件编写特定的页面。

我们也可以使用 Swizzle 改造 Docusaurus 中的主题组件让它变成自己想要的样子。

部署

Netlify

Netlify 是一个静态网站托管和构建工具,可以帮助开发者快速搭建网站并实现自动部署。它提供了一系列的工具和功能,例如连续集成、自动构建、版本控制、域名管理等,使得开发者能够轻松地搭建和维护自己的网站。

上传 Github 之后用 Netlify 导入 Github 仓库之后,它会帮我们打包部署,并提供免费的 CDN、HTTPS, 当你有任何修改提交 Github 之后, Netlify 会自动帮我们重新打包部署更新。

Vercel

Vercle 的使用方式和 Netlify 使用方式差不多,都是可以从 Github 中导入,并且可以自动更新部署的。

站点

因为不涉及后端,所以我就直接用 Netlify 托管了