console.log("行号从5开始");
console.log("下一行是6");def func():
a = 1
b = 2 # 高亮此行
c = 3
d = 4 # 高亮此行及下两行
e = 5
f = 6<div> 两个空格 </div>
→ 一个制表符=================================================
强烈建议开发者认真阅读本文档,掌握md及HBuilderX对md的强大支持。
窄屏幕下,可按Alt+滚轮横向滚动
很多人只把markdown用于网络文章发表,这糟蹋了markdown。
markdown不止是HTML的简化版,更重要的是txt的升级版、word的轻量版、笔记的最佳载体。
作为一种简单的格式标记语言,不同于txt的无格式,不同于HTML的复杂标记,也不同于word的鼠标调整样式。markdown通过简单的几个字符键入,就可以快捷的定义文档的样式。
比如在行首敲一个“#”,就把这行定义为了1级标题,并且在HBuilderX里有直观完善的着色,这样无需发布为web页面,可直接当word用。
掌握markdown,你可以完全抛弃txt和笔记软件的编辑器,并且在大多数场景下替代掉复杂臃肿的word。享受简洁之美、享受效率提升。
而HBuilderX,可以被称为最强大的markdown书写工具了。
下面的示例列举了markdown语法及对应的HBuilderX使用技巧:
开始前,可以先按下文档结构图的快捷键Alt+w(Mac是Ctrl+w),浏览本文的大纲。
markdown的标题是行首以#号开头,空格分割的,不同级别的标题,在HX里着色也不同。如下:
标题使用技巧:
折叠:
markdown的列表支持有序列表、无序列表以及特殊的任务列表。
同样也是在行前加一个特殊符号,并空格后再跟列表文字内容。
有序列表就是有顺序的列表,依靠行前的数字标记顺序。
无序列表就是列表不排序,无序列表因书写随意而被更广泛的使用。
无序列表有3种前缀,HX里分别用于表示1级列表、2级列表、3级列表。
无序列表2
任务列表非常实用,管理待办、已办非常便利。
[x] 任务列表-已完成任务 【快捷键:Ctrl+Alt+]】
以上三种列表,均支持批量修改列表符,有如下方式建议依次学习尝试:
引用1
引用2
快捷键:Ctrl+Alt+Shift+.
智能双击:双击>号可选中整段引用列表
智能回车:行尾回车或行中Ctrl+Enter强制换行后会自动续列表;连续按回车会清除列表符;在列表符后回车或行尾Shift+回车,上一行留出列表符
加粗 【快捷键:Ctrl+B,支持多光标;Emmet:b后敲Tab】
加粗2
_倾斜_【Emmet:i后敲Tab;前后包围:选中文字按Ctrl+\是在选区两侧添加光标,可以继续输入_】
倾斜删除线 单行代码
包围插入:先选中文字内容,然后按_*~`等符号,会自动在2侧加包围
智能双击:双击语法区前面的定义符号,选中包含定义符的整段文字
去包围:选中整段文字后,按Ctrl+Shift+],可去除2侧包围符号
引号括号虽然不属于markdown语法,但也支持相同的包围、选择、去包围操作。
引号括号智能双击选择时略特殊的是:双击引号括号内侧,选中引号括号里的内容(不含引号括号);按下Alt+双击引号括号内侧,则选中包含符号的整段文字
HBuilderX还支持以下对2侧文本高效处理的手段

------------- 【Emmet:hr后敲Tab】
=============
var a = documentEmmet:code后敲Tab,行首生效
智能双击:双击语法区开头,即!左侧,选中包含定义符的整段文字
支持代码直接高亮着色,这应该是只有HBuilderX才有的功能。注意需要在代码区开头指定语言类型
快捷键:Ctrl+/
智能双击:双击注释首尾的定义符,选中整段注释
day后敲Tab,当前日期。注意day需在行首或前面有空格
time后敲Tab,当前时间。注意time需在行首或前面有空格
文章很长时,word里有文档结构图,HBuilderX也有。
菜单视图-文档结构图,快捷键Alt+W(mac是ctrl+W),轻松管理长文档
对md文件点工具栏或菜单里的浏览器运行,可以使用外部浏览器预览此md文件,会自动渲染为HTML。
点右上角的预览【快捷键Alt+p】,可在HBuilderX右侧预览该md文档的HTML渲染结果。
在浏览器中点打印,选择打印到PDF,可将md输出为PDF格式。(注意在打印选项里去掉页眉页脚)
markdown拥有迷人的输入体验,但分享并不方便,尤其是缺少免费、稳定、高速的图床。
uniCloud提供了免费、稳定、高速的服务器和cdn。
HBuilderX,基于uniCloud,提供了markdown的一键分享功能。
利用uniCloud的前端网页托管,将markdown稳定转成了HTML网页,并发布为在线的URL。您可以把URL发送给任何想要分享的人。
同时markdown里涉及的图片也会自动上传到前端网页托管里免费cdn中。
更多见: MarkDown一键分享使用说明
删除
选择
查找
都学会了吗?
markdown语法其实很简单,认真学半小时就能掌握。
本框架是一个功能完整的 CSS 工具集,提供了全面的样式解决方案,包括:
框架设计遵循 "移动优先" 原则,通过清晰的命名规范和模块化结构,使开发者能够快速构建一致、美观的界面。
引入框架
将框架 CSS 文件引入到 HTML 文档的<head>中:
\<link rel="stylesheet" href="path/to/enhanced-css-framework.css">基础结构
一个典型的页面结构如下:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>框架使用 CSS 变量(Custom Properties)定义全局样式,所有变量都在:root选择器下声明,便于统一修改和主题定制。
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;\--color-background: #ffffff; /\* 主要背景色 \*/
\--color-background-alt: #f9fafb; /\* 交替背景色 \*/
\--color-background-hover: #f3f4f6; /\* 悬停背景色 \*/
\--color-background-active: #e5e7eb; /\* 激活背景色 \*/
\--color-background-card: #ffffff; /\* 卡片背景色 \*/
\--color-background-modal: #ffffff; /\* 模态框背景色 \*/
\--color-background-overlay: rgba(0, 0, 0, 0.5); /\* 遮罩层背景色 \*/\--color-text: #000000; /\* 主要文本色 \*/
\--color-text-light: #374151; /\* 浅色文本 \*/
\--color-text-lighter: #6B7280; /\* 更浅文本 \*/
\--color-text-muted: #3d3d3d; /\* 次要文本 \*/
\--color-text-disabled: #9CA3AF; /\* 禁用文本色 \*/
\--color-text-inverse: #ffffff; /\* 深色背景上的文本 \*/\--color-success: #52c41a; /\* 成功色 \*/
\--color-warning: #fa8c16; /\* 警告色 \*/
\--color-danger: #ff4d4f; /\* 危险/错误色 \*/
\--color-info: #4096ff; /\* 信息色 \*/提供从--color-neutral-50(最浅)到--color-neutral-950(最深)的完整中性色阶,满足各种场景需求。
包含红、橙、黄、绿、青、蓝、紫七个色系,每个色系都有从 50 到 950 的色阶变化,如:
/\* 红色系示例 \*/
\--color-red-50: #fff5f5;
\--color-red-100: #ffe3e3;
/\* ... 中间色阶省略 ... \*/
\--color-red-950: #5c0d12;\--font-family-main: 'Helvetica Neue', Helvetica, 'PingFang SC', ...; /\* 主要字体 \*/
\--font-family-mono: 'SF Mono', Menlo, Monaco, ...; /\* 等宽字体(代码用) \*/
\--font-family-display: var(--font-family-main); /\* 标题字体 \*/
/\* 字体大小 \*/
\--font-size-xs: 10px;
\--font-size-sm: 12px;
\--font-size-md: 13px;
\--font-size-lg: 14px;
\--font-size-xl: 16px;
\--font-size-2xl: 18px;
\--font-size-3xl: 22px;
\--font-size-4xl: 26px;
\--font-size-5xl: 32px;
\--font-size-6xl: 40px;
/\* 字体权重 \*/
\--font-weight-light: 300;
\--font-weight-normal: 400;
\--font-weight-medium: 500;
\--font-weight-semibold: 600;
\--font-weight-bold: 700;
\--font-weight-extrabold: 800;
/\* 行高 \*/
\--line-height-xs: 1.2;
\--line-height-sm: 1.3;
\--line-height-md: 1.5;
\--line-height-lg: 1.6;
\--line-height-xl: 1.8;/\* 边框宽度 \*/
\--border-width: 1px;
\--border-width-sm: 0.5px; /\* 细边框 \*/
\--border-width-lg: 2px; /\* 粗边框 \*/
/\* 边框圆角 \*/
\--border-radius: 4px;
\--border-radius-sm: 2px; /\* 小圆角 \*/
\--border-radius-lg: 6px; /\* 大圆角化 \*/
\--border-radius-xl: 8px;
\--border-radius-full: 9999px; /\* 全圆角(圆形) \*/
/\* 边框颜色 \*/
\--color-border: #ccc;
\--color-border-light: #e5e7eb; /\* 浅色边框 \*/
\--color-border-dark: #9CA3AF; /\* 深色边框 \*/
\--color-border-primary: var(--color-primary); /\* 主色边框 \*/\--spacing-0: 0; /\* 零间距 \*/
\--spacing-xxs: 2px; /\* 极小间距 \*/
\--spacing-xs: 4px;
\--spacing-sm: 5px;
\--spacing-md: 10px;
\--spacing-lg: 20px;
\--spacing-xl: 25px;
\--spacing-2xl: 32px; /\* 更大间距 \*/
\--spacing-3xl: 40px;
\--spacing-4xl: 56px;
\--spacing-5xl: 72px;\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>0\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>1框架采用 12 列网格布局,通过容器(container)、行(row)和列(col)的组合实现灵活的页面布局。
容器用于包裹网格内容,提供居中对齐和内边距控制。
| 类名 | 说明 | 最大宽度 |
|---|---|---|
.container | 基础容器 | 1200px |
.container-sm | 小型容器 | 540px |
.container-md | 中型容器 | 720px |
.container-lg | 大型容器 | 960px |
.container-xl | 特大型容器 | 1140px |
.container-xxl | 超大型容器 | 1320px |
.container-fluid | 流体容器 | 100% 宽度 |
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>2行(Row)用于包裹列(Column),并提供负外边距抵消列的内边距,确保布局对齐。
| 类名 | 说明 |
|---|---|
.row | 基础行 |
.row-gutter-sm | 小间距行(8px) |
.row-gutter-lg | 大间距行(24px) |
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>3列是网格系统的核心,通过指定占比来控制宽度。框架采用 12 列系统,每列的宽度为100% / 12 * 列数。
基础列类:
| 类名 | 说明 | 宽度占比 |
|---|---|---|
.col-1 | 1 列宽 | 8.333% |
.col-2 | 2 列宽 | 16.666% |
| ... | ... | ... |
.col-12 | 12 列宽 | 100% |
.col | 自动分配宽度 | 平均分配 |
.col-auto | 自动宽度 | 由内容决定 |
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>4框架提供 6 个响应式断点,支持在不同屏幕尺寸下调整布局:
| 断点前缀 | 断点值 | 说明 |
|---|---|---|
xs | 0 | 超小屏幕(手机,默认) |
sm | 576px | 小屏幕(平板竖屏) |
md | 768px | 中等屏幕(平板横屏) |
lg | 992px | 大屏幕(笔记本 / 小桌面) |
xl | 1200px | 特大屏幕(桌面) |
xxl | 1400px | 超特大屏幕(大桌面) |
响应式列类命名规则:.col-[断点前缀]-[列数]
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>5通过偏移类可以控制列的左侧留白,实现列的右移效果。
偏移类命名规则:.offset-[断点前缀]-[偏移列数]
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>6通过排序类可以改变列的显示顺序,而不改变 HTML 结构。
排序类:
| 类名 | 说明 |
|---|---|
.order-first | 排在最前面 |
.order-last | 排在最后面 |
.order-[n] | 排在第 n 位(n 为 0-12) |
.order-[断点前缀]-first | 在指定断点排在最前面 |
.order-[断点前缀]-last | 在指定断点排在最后面 |
.order-[断点前缀]-[n] | 在指定断点排在第 n 位 |
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>7框架提供了丰富的工具类,用于快速设置元素样式,避免重复编写 CSS。
| 类名 | 说明 |
|---|---|
.hidden | 隐藏元素(display: none) |
.invisible | 不可见但保留空间(visibility: hidden) |
.visible | 可见(visibility: visible) |
.sr-only | 仅屏幕阅读器可见 |
.d-none | 不显示 |
.d-block | 块级显示 |
.d-flex | Flex 布局显示 |
.d-sm-none | 在 sm 断点及以上不显示 |
.d-sm-block | 在 sm 断点及以上块级显示 |
.d-sm-flex | 在 sm 断点及以上 Flex 显示 |
| ... | 类似的 md/lg/xl/xxl 前缀类 |
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>8| 类名 | 说明 |
|---|---|
.flex | 启用 Flex 布局 |
.inline-flex | 启用内联 Flex 布局 |
.flex-row | 水平方向排列(默认) |
.flex-row-reverse | 水平反向排列 |
.flex-col | 垂直方向排列 |
.flex-col-reverse | 垂直反向排列 |
.flex-wrap | 允许换行 |
.flex-nowrap | 不允许换行 |
.justify-start | 主轴起点对齐 |
.justify-end | 主轴终点对齐 |
.justify-center | 主轴居中对齐 |
.justify-between | 主轴两端对齐 |
.justify-around | 主轴均匀分布 |
.items-start | 交叉轴起点对齐 |
.items-end | 交叉轴终点对齐 |
.items-center | 交叉轴居中对齐 |
.items-baseline | 交叉轴基线对齐 |
.items-stretch | 交叉轴拉伸对齐 |
.flex-1 | Flex 项目占满剩余空间 |
.flex-auto | Flex 项目自动调整 |
.flex-none | Flex 项目不伸缩 |
使用示例:
\<!DOCTYPE html>
\<html lang="zh-CN">
\<head>
  \<meta charset="UTF-8">
  \<meta name="viewport" content="width=device-width, initial-scale=1.0">
  \<title>框架示例\</title>
  \<link rel="stylesheet" href="path/to/enhanced-css-framework.css">
\</head>
\<body class="bg-background">
  \<div class="container">
  \<div class="row">
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \<div class="col-md-6">
  \<!-- 内容 -->
  \</div>
  \</div>
  \</div>
\</body>
\</html>9| 类名 | 说明 |
|---|---|
.grid | 启用 Grid 布局 |
.grid-cols-2 | 2 列网格 |
.grid-cols-3 | 3 列网格 |
.grid-cols-4 | 4 列网格 |
.grid-cols-auto | 自动列数 |
.gap-0 至 .gap-2xl | 网格间距 |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;0| 类名 | 说明 |
|---|---|
.position-static | 静态定位 |
.position-relative | 相对定位 |
.position-absolute | 绝对定位 |
.position-fixed | 固定定位 |
.position-sticky | 粘性定位 |
.top-0 | 顶部对齐 |
.right-0 | 右侧对齐 |
.bottom-0 | 底部对齐 |
.left-0 | 左侧对齐 |
间距工具类用于快速设置元素的外边距(margin)和内边距(padding),命名规则如下:
m-(margin)或 p-(padding)t(上)、b(下)、l(左)、r(右)、x(左右)、y(上下)0、xxs、xs、sm、md、lg、xl、2xl常用间距类:
| 类名 | 说明 |
|---|---|
.m-0 | 全方向外边距为 0 |
.p-md | 全方向内边距为 md(10px) |
.mt-sm | 上外边距为 sm(5px) |
.mb-lg | 下外边距为 lg(20px) |
.px-xl | 左右内边距为 xl(25px) |
.py-2xl | 上下内边距为 2xl(32px) |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;1| 类名 | 说明 |
|---|---|
.border | 基础边框 |
.border-0 | 无边框 |
.border-sm | 细边框 |
.border-lg | 粗边框 |
.border-dashed | 虚线边框 |
.border-primary | 主色边框 |
.border-success | 成功色边框 |
.border-warning | 警告色边框 |
.border-danger | 危险色边框 |
.border-t | 上边框 |
.border-r | 右边框 |
.border-b | 下边框 |
.border-l | 左边框 |
.border-t-0 | 无上边框 |
| ... | 类似的 r-0/b-0/l-0 |
圆角工具:
| 类名 | 说明 |
|---|---|
.rounded | 基础圆角 |
.rounded-0 | 无圆角 |
.rounded-sm | 小圆角 |
.rounded-lg | 大圆角化 |
.rounded-xl | 超大圆角 |
.rounded-full | 全圆角(圆形) |
.rounded-t | 上圆角 |
.rounded-r | 右圆角 |
.rounded-b | 下圆角 |
.rounded-l | 左圆角 |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;2| 类名 | 说明 |
|---|---|
.text-left | 左对齐 |
.text-center | 居中对齐 |
.text-right | 右对齐 |
.text-justify | 两端对齐 |
| 类名 | 说明 |
|---|---|
.text-primary | 主色文本 |
.text-secondary | 辅助色文本 |
.text-text | 主要文本色 |
.text-text-light | 浅色文本 |
.text-muted | 次要文本 |
.text-disabled | 禁用文本色 |
.text-inverse | 反色文本(用于深色背景) |
.text-success | 成功色文本 |
.text-warning | 警告色文本 |
.text-danger | 危险色文本 |
.text-info | 信息色文本 |
| 类名 | 说明 | 对应变量 |
|---|---|---|
.text-xs | 超小文本 | --font-size-xs (10px) |
.text-sm | 小文本 | --font-size-sm (12px) |
.text-md | 中等文本 | --font-size-md (13px) |
.text-lg | 大文本 | --font-size-lg (14px) |
.text-xl | 超大文本 | --font-size-xl (16px) |
.text-2xl 至 .text-5xl | 更大文本 | 对应变量逐步增大 |
| 类名 | 说明 | 对应变量 |
|---|---|---|
.font-light | 轻量 | --font-weight-light (300) |
.font-normal | 正常 | --font-weight-normal (400) |
.font-medium | 中等 | --font-weight-medium (500) |
.font-semibold | 半粗体 | --font-weight-semibold (600) |
.font-bold | 粗体 | --font-weight-bold (700) |
.font-extrabold | 特粗体 | --font-weight-extrabold (800) |
| 类名 | 说明 |
|---|---|
.text-underline | 下划线 |
.text-underline-hover | hover 时显示下划线 |
.text-no-underline | 无下划线 |
.text-uppercase | 大写 |
.text-lowercase | 小写 |
.text-capitalize | 首字母大写 |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;3背景工具类用于快速设置元素的背景色,命名规则为.bg-[颜色名称]。
常用背景类:
| 类名 | 说明 |
|---|---|
.bg-primary | 主色背景 |
.bg-primary-light | 主色浅色背景 |
.bg-background | 主要背景色 |
.bg-background-alt | 交替背景色 |
.bg-background-hover | 悬停背景色 |
.bg-success | 成功色背景 |
.bg-success-bg | 成功色浅色背景 |
.bg-warning | 警告色背景 |
.bg-warning-bg | 警告色浅色背景 |
.bg-danger | 危险色背景 |
.bg-danger-bg | 危险色浅色背景 |
.bg-neutral-[n] | 中性色背景(n 为 50-900) |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;4| 类名 | 说明 |
|---|---|
.transition | 基础过渡效果 |
.transition-none | 无过渡 |
.transition-fast | 快速过渡(150ms) |
.transition-normal | 正常过渡(300ms) |
.transition-slow | 慢速过渡(500ms) |
.transition-color | 仅颜色过渡 |
.transition-bg | 仅背景色过渡 |
.transition-border | 仅边框过渡 |
.transition-transform | 仅变换过渡 |
.transition-shadow | 仅阴影过渡 |
| 类名 | 说明 |
|---|---|
.animate-fade-in | 淡入动画 |
.animate-fade-out | 淡出动画 |
.animate-slide-up | 上滑动画 |
.animate-slide-down | 下滑动画 |
.animate-slide-left | 左滑动画 |
.animate-slide-right | 右滑动画 |
.animate-bounce | 弹跳动画 |
.animate-pulse | 脉冲动画 |
.animate-shake | 抖动动画 |
.animate-spin | 旋转动画 |
.animate-zoom-in | 放大动画 |
.animate-zoom-out | 缩小动画 |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;5| 类名 | 说明 |
|---|---|
.shadow | 基础阴影 |
.shadow-sm | 小阴影 |
.shadow-lg | 大阴影 |
.shadow-xl | 超大阴影 |
.shadow-primary | 主色阴影 |
.shadow-hover | hover 时显示更大阴影 |
.w-100 | 宽度 100% |
.h-100 | 高度 100% |
.w-auto | 宽度自动 |
.h-auto | 高度自动 |
.max-w-100 | 最大宽度 100% |
.overflow-hidden | 溢出隐藏 |
.overflow-auto | 溢出自动滚动 |
.cursor-pointer | 鼠标指针为手型 |
.cursor-not-allowed | 鼠标指针为禁止 |
.opacity-0 | 透明度 0 |
.opacity-50 | 透明度 50% |
.opacity-100 | 透明度 100% |
.zoom-hover | hover 时轻微放大 |
使用示例:
\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;6\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;7\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;8\--color-primary: #007BFF; /\* 主色调 \*/
\--color-primary-light: #3395FF; /\* 主色浅变体 \*/
\--color-primary-dark: #0056D2; /\* 主色深变体 \*/
\--color-primary-transparent: rgba(0, 123, 255, 0.15); /\* 主色透明变体 \*/
\--color-primary-rgb: 0, 123, 255; /\* 主色RGB值(用于rgba计算) \*/
\--color-secondary: #444; /\* 辅助色 \*/
\--color-secondary-light: #666;
\--color-secondary-dark: #222;9\--color-background: #ffffff; /\* 主要背景色 \*/
\--color-background-alt: #f9fafb; /\* 交替背景色 \*/
\--color-background-hover: #f3f4f6; /\* 悬停背景色 \*/
\--color-background-active: #e5e7eb; /\* 激活背景色 \*/
\--color-background-card: #ffffff; /\* 卡片背景色 \*/
\--color-background-modal: #ffffff; /\* 模态框背景色 \*/
\--color-background-overlay: rgba(0, 0, 0, 0.5); /\* 遮罩层背景色 \*/0\--color-background: #ffffff; /\* 主要背景色 \*/
\--color-background-alt: #f9fafb; /\* 交替背景色 \*/
\--color-background-hover: #f3f4f6; /\* 悬停背景色 \*/
\--color-background-active: #e5e7eb; /\* 激活背景色 \*/
\--color-background-card: #ffffff; /\* 卡片背景色 \*/
\--color-background-modal: #ffffff; /\* 模态框背景色 \*/
\--color-background-overlay: rgba(0, 0, 0, 0.5); /\* 遮罩层背景色 \*/1以上就是增强版 CSS 框架的详细使用文档。通过灵活运用框架提供的网格系统和工具类,可以快速构建出美观、一致且响应式的网页界面。如需进一步定制,可以通过修改全局变量来调整主题样式,无需修改工具类代码。
(注:文档部分内容可能由 AI 生成)]]>
粗体:bold text
斜体:italicized text
引用
blockquote
有序列表
无序列表
代码(Code):code
自定义链接:title
自定义图片
表格
| Syntax | Description |
|---|---|
| Header | Title |
| Paragraph | Text |
代码块(Fenced Code Block)
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}脚注(Footnote)
Here's a sentence with a footnote. 1
标题编号(Heading ID)
定义列表(Definition List)
term
: definition
删除线(Strikethrough)The world is flat.
任务列表(Task List)
function displayDate(){
document.getElementById("demo").innerHTML=Date();
}已完成
待处理
通知
推荐
热门
小徽章
大徽章
边框样式
VIP会员
默认进度条:
function displayDate(){
document.getElementById("demo").innerHTML=Date();
}已完成
待处理
通知
推荐
热门
小徽章
大徽章
边框样式
自定义边框色
VIP会员
默认进度条:
{tabs}
{tab name="标题1"}
内容
{/tab}
{tab name="标题2"}
内容
{/tab}
{tab name="标题3"}
内容
{/tab}
{/tabs}支持 2 个可选参数,用于自定义面板标题和默认状态:
| 参数名 | 作用 | 取值范围 | 默认值 |
|---|---|---|---|
title | 自定义面板的标题文字 | 任意文本(建议简短明了) | 折叠面板 |
open | 设置面板默认是否展开 | true(默认展开) / false(默认折叠) | false |
指定标题为 【自定义标题】,并设置默认展开【open="true"】或默认折叠【open="false"】
[collapse title="自定义标题" open="true"]
内容
[/collapse]效果:
显示标题为 “常见问题解答” 的面板,默认展开显示内容,点击标题可折叠。
| 参数名 | 必选 | 含义与用途 | 示例值 | 默认值 |
|---|---|---|---|---|
url | 是 | 附件的下载链接(核心参数,为空时会显示错误提示) | https://example.com/file.pdf | 无 |
title | 否 | 附件的显示名称(用于标识附件内容) | 产品手册v2.0 | 下载附件 |
size | 否 | 附件的文件大小(用于展示容量信息,需手动填写) | 2.4MB | 空(不显示) |
icon | 否 | 附件的图标(可以使用主题内置的font-awesome4.7.0图标) | fa fa-file-pdf-o | fa-file-o |
type | 否 | 附件的文件类型(用于 CSS 样式识别,如区分 PDF / 图片 / 压缩包等) | pdf、zip、img | 空 |
基础示例(必填参数)
[attachment url="链接"]效果:生成一个带默认标题 “下载附件”、默认图标📎、新窗口打开的下载卡片。
完整示例(含所有参数)
[attachment url="下载链接" title="标题" size="大小" icon="图标" type="文件类型" target="链接打开方式"]Word文档
Excel表格
软件安装包
源码包
图片文件
视频文件
音频文件
新文件标记
当前窗口打开
| 参数名 | 必选 | 含义与用途 | 示例值 | 默认值 |
|---|---|---|---|---|
$content | 是 | 徽章内部显示的文本(核心内容,为空时返回空字符串,不生成徽章) | 新上线、已完成 | 无(必填) |
type | 否 | 徽章的预设类型(对应预设样式,如颜色、风格,限制在合法类型内) | success、danger、info | default |
color | 否 | 徽章的自定义背景色(支持十六进制、rgb、rgba 格式,格式不合法时不生效) | #ff5722、rgb(255,87,34)、rgba(255,87,34,0.8) | 空(使用type对应的预设颜色) |
size | 否 | 徽章的尺寸(限制在预设尺寸内,为空时使用默认尺寸) | sm(小尺寸)、lg(大尺寸) | 空(默认尺寸) |
outline | 否 | 是否显示边框样式(布尔值,为true时显示边框,不填充纯色背景) | true、false | false |
基础示例(必填参数)
[badge]新消息\[/badge]完整示例(含所有参数)
[badge type="success"]已完成[/badge]
[badge type="danger"]待处理[/badge]
[badge type="cyan"]通知[/badge]
[badge color="rgba(76,175,80,0.7)"]推荐[/badge]
[badge color="#ff9800"]热门[/badge]
[badge size="sm"]小徽章\[/badge]
[badge size="lg" type="info"]大徽章\[/badge]
[badge outline="true" type="warning"]边框样式\[/badge]
[badge outline="true" color="#673ab7"]自定义边框色\[/badge]
[badge type="purple" size="lg" color="rgba(156,39,176,0.9)" outline="false"]VIP会员\[/badge]
type:仅允许预设的 8 种合法类型(default/success/warning/danger/info/orange/cyan/purple),无效值自动转为default,确保样式统一。size:仅允许 3 种合法值(空 /sm/lg),无效值自动转为空,避免异常尺寸破坏布局。color:通过正则表达式验证格式(仅支持十六进制、rgb、rgba),格式不合法时不生成style属性,避免样式错乱。尺寸徽章
小尺寸
大尺寸
扩展颜色
橙色
青色
紫色
边框样式
边框
大边框紫色
自定义颜色
自定义红
自定义轮廓
已完成
待处理
通知
推荐
热门
小徽章
大徽章
边框样式
自定义边框色
VIP会员
## 基础颜色按钮(默认尺寸)
[button url="https://example.com" type="red"]红色按钮(var(--color-red-500))[/button]
[button url="https://example.com" type="orange"]橙色按钮(var(--color-orange-500))[/button]
[button url="https://example.com" type="yellow"]黄色按钮(var(--color-yellow-500))[/button]
[button url="https://example.com" type="green"]绿色按钮(var(--color-green-500))[/button]
[button url="https://example.com" type="cyan"]青色按钮(var(--color-cyan-500))[/button]
[button url="https://example.com" type="blue"]蓝色按钮(var(--color-blue-500))[/button]
[button url="https://example.com" type="purple"]紫色按钮(var(--color-purple-500))[/button]
## 轮廓按钮(默认尺寸)
[button url="https://example.com" type="outline-red"]红色轮廓(var(--color-red-500))[/button]
[button url="https://example.com" type="outline-orange"]橙色轮廓(var(--color-orange-500))[/button]
[button url="https://example.com" type="outline-yellow"]黄色轮廓(var(--color-yellow-600))[/button]
[button url="https://example.com" type="outline-green"]绿色轮廓(var(--color-green-500))[/button]
[button url="https://example.com" type="outline-cyan"]青色轮廓(var(--color-cyan-500))[/button]
[button url="https://example.com" type="outline-blue"]蓝色轮廓(var(--color-blue-500))[/button]
[button url="https://example.com" type="outline-purple"]紫色轮廓(var(--color-purple-500))[/button]
## 小尺寸按钮
[button url="https://example.com" type="red" size="sm"]红色小按钮[/button]
[button url="https://example.com" type="outline-orange" size="sm"]橙色小轮廓按钮[/button]
## 大尺寸按钮
[button url="https://example.com" type="green" size="lg"]绿色大按钮[/button]
[button url="https://example.com" type="outline-cyan" size="lg"]青色大轮廓按钮[/button]
## 块级全宽按钮
[button type="blue" block="true"]蓝色块级按钮[/button]
[button type="outline-purple" block="true"]紫色块级轮廓按钮[/button]
## 带链接的按钮
[button url="https://example.com" type="yellow" target="_blank"]新窗口打开[/button]
[button url="#top" type="outline-green"]返回顶部[/button]默认进度条:[progress percent="60"]
带标题:[progress percent="75" title="完成度"]
成功样式:[progress percent="85" type="success"]
警告样式:[progress percent="90" type="warning"]
危险样式:[progress percent="95" type="danger"]
信息样式:[progress percent="50" type="info"]
条纹样式:[progress percent="65" striped="true"]
动画条纹:[progress percent="70" striped="true" animated="true"]| 参数名 | 必选 | 含义与用途 | 示例值 | 默认值 |
|---|---|---|---|---|
url | 是 | 音频文件的播放链接(核心参数,为空时不生成播放器,仅返回空字符串) | https://example.com/audio/song.mp3 | 空(必填) |
name | 否 | 音频的名称(显示在播放器上,用于标识音频内容) | 《晴天》、访谈录音第1段 | 未知音频 |
artist | 否 | 音频的作者 / 创作者(显示在播放器上,补充音频信息) | 周杰伦、产品部团队 | 未知艺术家 |
cover | 否 | 音频的封面图片链接(显示在播放器左侧,提升视觉效果,支持 JPG/PNG 等格式) | https://example.com/covers/song.jpg | 空(不显示封面) |
[audio name="歌曲名称" artist="作者" url="音频链接" cover="音频封面链接"]| 参数名 | 必选 | 含义与用途 | 示例值 | 默认值 |
|---|---|---|---|---|
src | 是 | 视频文件的播放链接(核心参数,为空时返回错误提示,不生成有效播放器) | https://example.com/video/demo.mp4 | 空(必填) |
poster | 否 | 视频封面图片链接(视频未播放时显示,提升视觉体验,支持 JPG/PNG 等格式) | https://example.com/posters/demo.jpg | 空(不显示封面) |
width | 否 | 视频播放器宽度(支持百分比、像素值,控制播放器在页面中的尺寸) | 80%、1200px | 100%(全屏宽度) |
autoplay | 否 | 是否自动播放(布尔值字符串,需符合浏览器自动播放策略,如静音自动播放) | true、false | false |
loop | 否 | 是否循环播放(视频播放结束后自动重新开始) | true、false | false |
preload | 否 | 视频预加载策略(控制页面加载时视频资源的加载方式) | auto(自动)、none(不预加载)、metadata(仅加载元数据) | auto |
lang | 否 | 播放器界面语言(控制按钮文本、提示信息等语言显示) | zh-cn(中文)、en(英文) | zh-cn |
mutex | 否 | 是否互斥播放(同一页面多个视频播放器,仅允许一个播放,其他自动暂停) | true、false | true |
theme | 否 | 播放器主题颜色(控制进度条、按钮等交互元素的颜色) | #ff4400、rgba(51,153,255,1) | #b7daff(淡蓝色) |
hotkey | 否 | 是否启用热键(支持键盘控制,如空格暂停 / 播放、方向键快进 / 快退) | true、false | true |
volume | 否 | 默认音量大小(0-1 之间的数值,0 为静音,1 为最大音量) | 0.5、0.8 | 0.7(70% 音量) |
基础示例
[video src="https://example.com/video/intro.mp4"]完整示例(自定义常用参数)
[collapse title="自定义标题" open="true"]
内容
[/collapse]0一款简洁的的 Typecho 单栏主题
用户交流群:点击加入
主题介绍页:点击查看
主题短代码使用手册:点击查看
主题宗旨:简洁、简洁、还是简洁!
/usr/themes/ 目录,然后解压。/usr/plugins/ 目录,然后解压。qqwry.dat 文件,并将其放置在 Typecho 程序的根目录。[1.3.1] 更新内容如下
[1.3.0] 更新内容如下
[1.2.9] 更新内容如下
[1.2.8] 更新内容如下
[1.2.7] 更新内容如下
[1.2.6] 更新内容如下
[1.2.5] 更新内容如下
[1.2.4] 更新内容如下
[1.2.3] 更新内容如下
[1.2.2] 更新内容如下
[1.2.1] 更新内容如下
网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。
互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。
目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。
电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。
每个分组都有首部和尾部,包含了源地址和目的地址等控制信息,在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。
在一个邮局通信系统中,邮局收到一份邮件之后,先存储下来,然后把相同目的地的邮件一起转发到下一个目的地,这个过程就是存储转发过程,分组交换也使用了存储转发过程。
总时延 = 排队时延 + 处理时延 + 传输时延 + 传播时延
分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
主机或路由器传输数据帧所需要的时间。
其中 l 表示数据帧的长度,v 表示传输速率。
电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。
其中 l 表示信道长度,v 表示电磁波在信道上的传播速度。
其中表示层和会话层用途如下:
五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。
在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。
]]>本文详细介绍如何使用 Docker 搭建 AList
AList是一个支持多种存储的文件列表程序。
本篇文章我将逐步讲解从拉取镜像、文件配置、通过 1Panel、Docker 部署到域名反向代理的全流程,帮助你快速搭建应用。
我的安装环境
操作系统:Debian12;
服务器架构:x86_64;
服务器CPU:4核;
服务器内存:16GB;
如果你还没有服务器欢迎通过以下优惠链接购买:
腾讯云:https://curl.qcloud.com/Gio4BsMs
筋斗云:https://portal.jindouyun.cn/recommend/zlpoAtGIbuN3
织音云:https://www.zhiyinidc.com/aff/LLQNCNYO
我这里使用的是Debian系统来演示操作。
打开ssh终端,我这里使用的是xshell
输入下方指令后回车执行
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
执行成功后,控制台会打印面板访问信息,可通过浏览器访问 1Panel面板:
http://目标服务器 IP 地址:目标端口/安全入口
如果使用的是云服务器,请至安全组开放目标端口。
ssh 登录 1Panel 服务器后,执行 1pctl user-info 命令可获取安全入口(entrance)
2.1-安装Docker【1Panel面板已默认安装】
确保系统已安装Docker和docker-compose工具。可通过以下命令检查:
docker --version
docker-compose --version
若未安装,请参考官方文档安装Docker和docker-compose。
可点击下方链接参考安装喔
https://www.runoob.com/docker.../debian-docker-install.html
注:可在1Panel-应用商店搜索alist点击安装即可一键安装哦。
2.2-创建数据目录
mkdir -p /etc/alist2.3-拉取Alist镜像
docker pull xhofe/alist:latest
2.4-Docker Compose部署
在/etc/alist目录创建docker-compose.yml文件然后输入下方代码
version: '3.4'
services:
alist:
image: xhofe/alist:latest
container_name: alist
volumes:
- '/etc/alist:/opt/alist/data'
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
- TZ=Asia/Shanghai
restart: unless-stopped 

2.5-启动服务
在/etc/alist目录打开终端输入下方指令即可启动服务
docker-compose up -d

随机生成一个密码
docker exec -it alist ./alist admin random
手动设置一个密码,NEW_PASSWORD是指你需要设置的密码
docker exec -it alist ./alist admin set NEW_PASSWORD
在防火墙放行5244端口然后访问如下地址,服务器ip自行填写
http://服务器ip:5244
输入3.查看管理员信息生成的账号密码即可登录
如果你想使用域名访问,那么请接着继续跟着操作
在1Panel面板左侧边栏点击网站-网站-创建选择反向代理
主域名处填写你要绑定的域名
代理地址填写127.0.0.1:5244
到这里就大功告成了!访问你绑定的域名即可访问网站了!
在终端输入下方代码
docker-compose pull
docker-compose up -d新开了个公众号,叫《不语技栈》主要用于分享学习笔记,资源等。
有兴趣的可以扫描下方二维码关注公众号喔。
app/cms、app/user、app/pay、app/api),通过服务类(Service)封装核心逻辑。示例目录结构:
app/
├── cms/ # 内容管理模块(文章、栏目、评论)
├── user/ # 用户与权限模块
├── pay/ # 支付与订单模块
├── api/ # 接口模块(供前端/第三方调用)
├── common/ # 公共服务(工具类、常量、异常处理)
└── admin/ # 后台管理模块{code: 200, msg: "success", data: []}。