首页
/ BewlyBewly项目新页面适配开发指南

BewlyBewly项目新页面适配开发指南

2025-05-30 14:52:44作者:仰钰奇

前言

BewlyBewly是一款基于浏览器扩展的项目,它需要针对不同网页进行样式适配。本文将详细介绍如何为BewlyBewly项目快速适配新页面的完整流程和技术要点。

准备工作

在开始适配新页面之前,开发者需要完成以下准备工作:

  1. 按照项目贡献文档配置好开发环境
  2. 熟悉基本的CSS/SCSS语法
  3. 了解浏览器扩展的基本工作原理
  4. 安装必要的开发工具(如Node.js、pnpm等)

适配流程详解

1. 确定目标页面

首先需要明确要适配的目标页面URL。例如,我们以B站登录页为例,其URL为passport.bilibili.com/login。

2. 修改manifest配置

打开manifest.ts文件,在content_scripts的matches数组中添加新页面的匹配规则。规则需要使用通配符形式:

'*://passport.bilibili.com/*'

3. 添加页面支持检测

在src/contentScripts/index.ts文件中,找到isSupportedPages函数,添加新页面的URL正则匹配:

// 登录页
|| /^https?:\/\/passport\.bilibili\.com\/login.*$/.test(currentUrl)

4. 创建样式文件

在src/styles/adaptedStyles/pages目录下创建新的SCSS文件,命名采用驼峰式,如loginPage.scss。

5. 注册样式文件

在src/styles/adaptedStyles/index.ts文件的setupStyles函数中添加样式文件引用:

// 登录页
else if (/https?:\/\/passport\.bilibili\.com\/login*/.test(currentUrl)) {
  await import('./pages/loginPage.scss')
  document.documentElement.classList.add('loginPage')
}

样式编写规范

基本结构

样式文件应采用以下基本结构:

.bewly-design.loginPage {
  // 固定修改区域
  .top-header {
    display: none;
  }
  
  // 主题颜色适配部分
  :not(foobar) {
    a, b, c {
      color: var(--bew-theme-color);
    }
  }
  
  // 深色模式特有修改
  &.dark {
    d, e, f {
      background: var(--bew-bg);
    }
  }
}

颜色使用规范

  1. 必须使用variables.scss中定义的CSS变量
  2. 禁止直接写死颜色值
  3. 主要颜色变量包括:
    • --bew-theme-color:主题色
    • --bew-bg:背景色
    • --bew-text-1:主要文本色

区域注释

使用#region和#endregion包裹代码块,便于在编辑器中折叠:

// #region 深色模式适配
&.dark {
  // 样式规则
}
// #endregion

开发建议

  1. 在完成第3步后,建议先运行pnpm dev进行测试,可以节省不必要的样式编写
  2. 样式应尽量保持简洁,只做必要的颜色适配
  3. 避免过度"美化",保持与原页面的一致性
  4. 注意处理顶部栏的显示问题,通常需要隐藏原页面顶部栏

调试与测试

  1. 使用浏览器的开发者工具检查元素和样式
  2. 分别在浅色和深色模式下测试适配效果
  3. 检查不同分辨率下的显示效果
  4. 确保没有破坏原页面的功能

注意事项

  1. 适配新页面前建议先在issue中讨论,避免维护成本过高
  2. 不要随意修改页面布局结构
  3. 注意B站CSS可能会变更,适配时要考虑兼容性
  4. 保持代码风格一致,遵循项目现有规范

结语

通过本文介绍的方法,开发者可以高效地为BewlyBewly项目适配新页面。记住保持代码简洁、遵循规范,并在适配前充分讨论需求,这样才能为项目做出高质量的贡献。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
197
2.17 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
208
285
pytorchpytorch
Ascend Extension for PyTorch
Python
59
94
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
973
574
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
549
81
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.02 K
399
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
393
27
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
1.2 K
133