Vuepress 2从0-1保姆级进阶教程——标准化流程(Tailwindcss+autoprefixer+commitizen)

在这里插入图片描述

Vuepress 2 专栏目录【已完结】

1. 入门阶段

  1. Vuepress 2从0-1保姆级入门教程——环境配置篇
  2. Vuepress 2从0-1保姆级入门教程——安装流程篇
  3. Vuepress 2从0-1保姆级入门教程——文档配置篇
  4. Vuepress 2从0-1保姆级入门教程——主题与部署

2.进阶阶段

  1. Vuepress 2从0-1保姆级进阶教程——全文搜索篇
  2. Vuepress 2从0-1保姆级进阶教程——美化与模版
  3. Vuepress 2从0-1保姆级进阶教程——标准化流程

一、样式

美化与模版更多是自己手写样式,我们学习使用Tailwind css,使用它丰富的模版、组件,简化我们的书写
如果你专注写作,请跳过样式

(一)介绍

Tailwind CSS 是一个以 Utility Class 为基础的 CSS 框架和设计系统,可以快速地为组件添加常用样式,同时支持主题样式的灵活扩展

初次使用Tailwind css会被它的class恶心到,比如自定义一个按钮样式

<button type="button" class="relative w-full cursor-default rounded-md bg-white py-1.5 pl-3 pr-10 text-left text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 sm:text-sm sm:leading-6" aria-haspopup="listbox" aria-expanded="true" aria-labelledby="listbox-label">
 <span class="ml-3 block truncate">Tom Cook</span>
</button>

但是用的时间长了,你可以从class名字直接了解样式信息,一些重复写的样式直接拿来用

Tailwind css搭配autoprefixer更佳,那autoprefixer是干啥的?

由于浏览器厂商的争夺大战,css3有些写法到今天都没统一下来, 各个浏览器写法不同,比如写个动画延时,考虑到兼容问题,要这样写:

.test{
    -moz-animation-delay:.3s;
    -webkit-animation-delay:.3s;
    -o-animation-delay: .3s;
    animation-delay: .3s;
}

前缀-moz-webkit-o指代不同的浏览器,Autoprefixer是一个用于添加浏览器前缀的工具,在代码打包后自动运行

Tailwind css借助postcss生成css,具体过程参见程序员晚天的TailWindCSS PostCSS 插件都做了些什么?

(二)安装

pnpm install -D tailwindcss postcss autoprefixer

1.初始化配置

npx tailwindcss init -p

初始化后会在项目根目录生成tailwind.config.js,postcss.config.js配置文件

编辑tailwind.config.js

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

2.样式调用

.vuepress/styles/index.scss调用

/* @tailwind base; 不启用,vuepress会覆盖掉样式*/
@tailwind components;
@tailwind utilities;

2.配置

import autoprefixer from 'autoprefixer'
import tailwindcss from 'tailwindcss'

export default defineUserConfig({

 bundler: viteBundler({
    viteOptions: {
      css: {
        postcss: {
          plugins: [
            autoprefixer({
              overrideBrowserslist: ['Chrome > 40', 'ff > 31', 'ie 11'],
            }),
            tailwindcss()
          ]
        }
      }
    }
  }),
})

在这里插入图片描述

(三)测试

1. autoprefixer

.vuepress/styles/index.scss里面添加样式

.test{
    animation-delay: .3s;
}

🏅 pnpm docs:build查看📁dist,成功奏效

在这里插入图片描述

2. Tailwind css

编辑about.md文件,添加以下代码

<div class="relative mt-2">
  <button type="button" class="relative w-full cursor-default rounded-md bg-white py-1.5 pl-3 pr-10 text-left text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 sm:text-sm sm:leading-6" aria-haspopup="listbox" aria-expanded="true" aria-labelledby="listbox-label">
    <span class="flex items-center">
      <img src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" class="h-5 w-5 flex-shrink-0 rounded-full">
      <span class="ml-3 block truncate">Passwordgloo</span>
    </span>
    <span class="pointer-events-none absolute inset-y-0 right-0 ml-3 flex items-center pr-2">
      <svg class="h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
        <path fill-rule="evenodd" d="M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z" clip-rule="evenodd" />
      </svg>
    </span>
  </button>
</div>

然后pnpm docs:dev查看

在这里插入图片描述

利用tailwind css丰富的模版,你可以自定义404页面

二、Commit

是不是经常发现自己推送的commit不知道做了啥,Changelog不想写?随便一写,后面版本更迭,摸不到头脑,用以下工具更好的帮你

(一)cz-git

在这里插入图片描述

1.安装

pnpm install -D commitizen cz-git

2.修改package.json

添加以下内容指定适配器,并单独调用git-cz取代git commit

  "scripts": {
	 "docs:build": "vuepress build docs",
     "docs:clean-dev": "vuepress dev docs --clean-cache",
     "docs:dev": "vuepress dev docs",
     "docs:update-package": "pnpm dlx vp-update",
	 "commit":"git add . && git-cz"
  },
  "config": {
    "commitizen": {
      "path": "node_modules/cz-git"
    }
  },

3.配置模版

根目录新建commitlint.config.cjs(esm规范项目)

// commitlint.config.cjs
/** @type {import('cz-git').UserConfig} */
module.exports = {
    rules: {
      // @see: https://commitlint.js.org/#/reference-rules
    },
    prompt: {
      alias: { fd: 'docs: fix typos' },
      messages: {
        type: '选择你要提交的类型 :',
        scope: '选择一个提交范围(可选):',
        customScope: '请输入自定义的提交范围 :',
        subject: '填写简短精炼的变更描述 :\n',
        body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n',
        breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n',
        footerPrefixesSelect: '选择关联issue前缀(可选):',
        customFooterPrefix: '输入自定义issue前缀 :',
        footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
        confirmCommit: '是否提交或修改commit ?'
      },
      types: [
        { value: 'feat', name: '✨  feat:     新的功能 | A new feature' },
        { value: 'fix', name: '🐞  fix:      Bug 修复 | A bug fix' },
        { value: 'docs', name: '📚  docs:     文档更新 | Documentation only changes' },
        { value: 'style', name: '💅  style:    代码格式 | Changes that do not affect the meaning of the code' },
        { value: 'refactor', name: '🔨  refactor: 功能重构 | redesign structure of project' },
        { value: 'perf', name: '🌸  perf:     性能优化 | A code change that improves performance' },
        { value: 'test', name: '🏁  test:     测试相关 | Adding missing tests or correcting existing tests' },
        { value: 'build', name: '🧰  build:    构建相关 | Changes that affect the build system or external dependencies' },
        { value: 'revert', name: '⏪  revert:   回退代码 | Revert to a commit' },
        { value: 'chore', name: '⚪  chore:    其他修改 | Other changes that do not modify src or test files' },
      ],
      useEmoji: true,
      emojiAlign: 'center',
      useAI: false,
      aiNumber: 1,
      themeColorCode: '',
      scopes: [],
      allowCustomScopes: true,
      allowEmptyScopes: true,
      customScopesAlign: 'bottom',
      customScopesAlias: 'custom',
      emptyScopesAlias: 'empty',
      upperCaseSubject: false,
      markBreakingChangeMode: false,
      allowBreakingChanges: ['feat', 'fix','chore','style'],
      breaklineNumber: 100,
      breaklineChar: '|',
      skipQuestions: [],
      issuePrefixes: [
        // 如果使用 gitee 作为开发管理
        { value: 'link', name: 'link:     链接 ISSUES 进行中' },
        { value: 'closed', name: 'closed:   标记 ISSUES 已完成' }
      ],
      customIssuePrefixAlign: 'top',
      emptyIssuePrefixAlias: 'skip',
      customIssuePrefixAlias: 'custom',
      allowCustomIssuePrefix: true,
      allowEmptyIssuePrefix: true,
      confirmColorize: true,
      scopeOverrides: undefined,
      defaultBody: '',
      defaultIssues: '',
      defaultScope: '',
      defaultSubject: ''
    }
  }

4.项目提交

pnpm commit

在这里插入图片描述

在这里插入图片描述

(二)conventional-changelog

发布新版本时,自动更新 CHANGELOG.md 文件,减少手动工作

1.安装

pnpm install -D conventional-changelog-cli

2.修改快捷指令

修改package.json,

  "scripts": {
    "docs:build": "vuepress build docs",
    "docs:clean-dev": "vuepress dev docs --clean-cache",
    "docs:dev": "vuepress dev docs",
    "docs:update-package": "pnpm dlx vp-update",
    "commit":"git add . && git-cz",
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 2"
  },

3.使用

pnpm changelog

在这里插入图片描述

尾声

🎉 Vuepress 2 保姆级教程已全部更新完毕!涵盖环境搭建、Vuepress 2安装、主题文档配置、美化与模版、全文搜索等内容。

🪫 由于精力有限,除非Vuepress 2后续有大更新,否则内容不做大的调整

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/701955.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

06--jenkins构建CI_CD

前言&#xff1a;上一篇文章整理了git的部署和使用&#xff0c;这章主要复习持续集成软件Jenkins&#xff0c;这个技术现在在云计算方面也是有应用的&#xff0c;同时也是越高级越智能的软件代表。 1、概念简介 1&#xff09;jenkins是什么 Jenkins是一个开源的、可扩展的持…

美国空军发布类ChatGPT产品—NIPRGPT

6月11日&#xff0c;美国空军研究实验室&#xff08;AFRL&#xff09;官网消息&#xff0c;空军部已经发布了一款生成式AI产品NIPRGPT。 据悉&#xff0c;NIPRGPT是一款类ChatGPT产品&#xff0c;可生成文本、代码、摘要等内容&#xff0c;主要为为飞行员、文职人员和承包商提…

传神论文中心|第12期人工智能领域论文推荐

在人工智能领域的快速发展中&#xff0c;我们不断看到令人振奋的技术进步和创新。近期&#xff0c;开放传神&#xff08;OpenCSG&#xff09;社区发现了一些值得关注的成就。传神社区本周也为对AI和大模型感兴趣的读者们提供了一些值得一读的研究工作的简要概述以及它们各自的论…

看国足!不破不立!层次越低的家庭,语言攻击性越强——早读(逆天打工人爬取热门微信文章解读)

你昨晚看国足了吗&#xff1f; 引言Python 代码第一篇 洞见 层次越低的家庭&#xff0c;语言攻击性越强第二篇结尾 引言 昨天看了国足比赛 输了韩国一个球 剩下大概率的出线希望 除非泰国赢新加坡 且3个球或者以上 泰国稍强于新加坡 但并不到打进3个球的地步 都觉得2个球已经是…

移民月贺礼!世贸通EB-5移民项目首批投资人获批了

特大喜讯 第八届移民月正在如火如荼地开展中 世贸通迎来了一个令人振奋的好消息 为移民月送来了一份大礼 增添了一抹格外耀眼的光彩 由世贸通担任大中华区独家代理的 「佛罗里达湖畔犹太社区」EB-5乡村项目 迎来首批投资人I-526E获批 世贸通恭喜获得I-526E批准的投资家庭…

【数据结构 |集合框架、泛型】初始集合框架、时间(空间)复杂度、简单认识泛型

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; &#x1f388;丠丠64-CSDN博客&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…

GitHub加载慢怎么解决

选了一个最简单的方法记录一下 一、GitHub为什么加载这么慢 简而言之就是&#xff0c;国内DNS默认解析到美国服务器&#xff08;慢&#xff09;&#xff0c;我们只要绕过DNS解析&#xff0c;直接访问韩国日本服务器&#xff08;快&#xff09;就可以解决访问缓慢的问题。 二、…

13.shell awk基础

13.shell awk基础 awk作用awk语法结构awk脚本结构awk工作原理awk内部变量awk格式输出awk模式匹配RegExp示例运算符匹配示例布尔运算符匹配示例运算符匹配示例 awk条件判断if判断 awk循环语句while循环for循环 awk是一种强大的文本处理工具&#xff0c;主要用于对文本和数据进行…

启动mysql 3.5时出现 MySql 服务正在启动 . MySql 服务无法启动。

有可能是端口冲突 netstat -ano | findstr :3306运行这段代码出现类似&#xff1a; 可以看到端口 3306 已经被进程 ID 为 6284 的进程占用。为了启动新的 MySQL 服务&#xff0c;我们需要停止这个进程或更改新服务的端口&#xff1a; 1、终止进程 taskkill /PID 6284 /F2、确…

大语言模型QA

Q:关于 Yi-9B 通过 input/output cosine 来分析模型,可能文档里没有把前提说明白。该指标确实存在你们提到的不同模型大小不可比的问题。所以我们比较的是同一个模型在不同训练阶段,以及 layer 深度相同的dense models 之间的比较。除了发现yi-6B/34B 随着训练 tokens 的增加…

在矩池云使用GLM-4的详细指南(无感连GitHubHuggingFace)

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本&#xff0c;在多项测试中表现出超越已有同等规模开源模型的性能&#xff0c;它能兼顾多轮对话、网页浏览、代码执行、多语言、长文本推理等多种功能&#xff0c;性能更加强大。其多模态语言模型GLM-4V-9B在…

Autohotkey使用记录

文章目录 1. 安装1.1 autohotkey1.2 vscode需要安装的插件 3. 函数使用3.1 按键3.2 MouseMove 4. Bug分析4.1 A_TimeSincePriorHotkey 1. 安装 1.1 autohotkey 下载安装即可 1.2 vscode需要安装的插件 3. 函数使用 3.1 按键 各个按键的代词使用关键字搜索&#xff1a;Hotk…

antd Pagination分页组件自定义跳转文案、按钮的方法【配置组件自带api即可支持】

组件默认效果&#xff1a; 期望效果&#xff1a; 代码&#xff1a; <PaginationclassNamelist-pagerpageSize{10}current{params?.pageNo}responsivetotal{listData?.totalItem}showSizeChanger{false}showQuickJumper{{ goButton: <Button classNamego-page>确定…

一、时钟控制

时钟 STM32F4有五种时钟源 HSI 内部高速时钟LSI 内部低速时钟HSE 外部高速时钟LSE 外部低速时钟PLL 锁相环倍频输出 其中 HSI、HSE、PLL可驱动系统时钟 (SYSCLK)&#xff0c;对于每个时钟源来说&#xff0c;在未使用时都可单独打开或者关闭&#xff0c;以降低功耗。 HSE高速…

计算机信息安全技术课后习题答案

计算机信息安全技术课后习题答案 计算机信息安全技术&#xff08;第2版&#xff09;付永刚 部分习题答案 第一章 计算机信息安全技术概述 选择题 关于访问控制服务的描述中&#xff0c;正确的是&#xff08; A &#xff09; A. 可控制用户访问网络资源 B.可识别发送方的真实身…

多用户竞拍商城系统 挂售转卖竞拍商城系统源码 竞拍系统 竞拍系统开发定制 转拍闪拍系统 后端PHP+前端UNIAPP源码+教程

挂售转卖竞拍商城系统源码/竞拍系统/转拍闪拍系统/后端PHP前端UNIAPP源码 玩法简介 ①、后台可添加商品进行挂单 ②、后台设置场次以及场次开始时间 ③、用户抢单 ④、抢单以后可选择提货或者转售 ⑤、玩家寄售需按照后台设置百分比进行加价 ⑥、玩家寄售需支付手续费(余额支付…

u盘数据要在哪台电脑上恢复?u盘数据恢复后保存在哪里

在数字化时代&#xff0c;U盘已成为我们日常生活中不可或缺的数据存储设备。然而&#xff0c;由于各种原因&#xff0c;U盘中的数据可能会意外丢失&#xff0c;这时数据恢复就显得尤为重要。但是&#xff0c;很多人对于在哪台电脑上进行U盘数据恢复以及恢复后的数据应保存在哪里…

【Ardiuno】实验ESP32单片机完成搭建简易Web服务器功能(图文)

今天&#xff0c;小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码&#xff1a; #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char* ssid &q…

【UE5|水文章】在UMG上显示帧率

参考视频&#xff1a; https://www.youtube.com/watch?vH_NdvImlI68 蓝图&#xff1a;

50.Python-web框架-Django中引入静态的bootstrap样式

目录 Bootstrap 官网 特性 下载 在线样例 Bootstrap 入门 Bootstrap v5 中文文档 v5.3 | Bootstrap 中文网 在django中使用bootstrap 新建static\bootstrap5目录&#xff0c;解压后的Bootstrap文件&#xff0c;拷贝项目里就好。 在template文件里引用css文…