Indie Wiki Buddy 项目教程
1. 项目的目录结构及介绍
Indie Wiki Buddy 项目的目录结构如下:
indie-wiki-buddy/
├── assets/
│ ├── icons/
│ └── images/
├── src/
│ ├── background/
│ ├── content/
│ ├── options/
│ └── popup/
├── .gitignore
├── LICENSE
├── README.md
├── manifest.json
└── package.json
目录介绍
assets/
: 包含项目的图标和图片资源。icons/
: 存放扩展的图标文件。images/
: 存放其他图片资源。
src/
: 包含项目的源代码。background/
: 存放后台脚本。content/
: 存放内容脚本。options/
: 存放选项页面的代码。popup/
: 存放弹出窗口的代码。
.gitignore
: 指定 Git 忽略的文件和目录。LICENSE
: 项目的开源许可证。README.md
: 项目的说明文档。manifest.json
: 扩展的清单文件,包含扩展的配置信息。package.json
: 项目的依赖和脚本配置文件。
2. 项目的启动文件介绍
Indie Wiki Buddy 的启动文件主要是 manifest.json
,它定义了扩展的基本信息和启动配置。
manifest.json
主要内容
{
"manifest_version": 2,
"name": "Indie Wiki Buddy",
"version": "3.9.1",
"description": "Helps you discover quality independent wikis through alerts, redirects, and search filtering.",
"icons": {
"48": "assets/icons/icon-48.png",
"96": "assets/icons/icon-96.png"
},
"background": {
"scripts": ["src/background/background.js"]
},
"content_scripts": [
{
"matches": ["*://*.fandom.com/*", "*://*.fextralife.com/*"],
"js": ["src/content/content.js"]
}
],
"permissions": [
"activeTab",
"webRequest",
"webRequestBlocking",
"*://*.fandom.com/*",
"*://*.fextralife.com/*"
],
"browser_action": {
"default_icon": "assets/icons/icon-48.png",
"default_popup": "src/popup/popup.html"
},
"options_ui": {
"page": "src/options/options.html",
"open_in_tab": true
}
}
启动文件介绍
manifest_version
: 指定清单文件的版本,当前为 2。name
: 扩展的名称。version
: 扩展的版本号。description
: 扩展的描述。icons
: 扩展的图标路径。background
: 后台脚本的配置,指定启动的后台脚本文件。content_scripts
: 内容脚本的配置,指定在哪些页面加载内容脚本。permissions
: 扩展所需的权限。browser_action
: 浏览器动作的配置,指定默认图标和弹出窗口的页面。options_ui
: 选项页面的配置,指定选项页面的 HTML 文件。
3. 项目的配置文件介绍
Indie Wiki Buddy 的配置文件主要是 manifest.json
和 package.json
。
manifest.json
配置文件介绍
如上所述,manifest.json
包含了扩展的基本信息、启动配置和权限配置。
package.json
配置文件介绍
package.json
包含了项目的依赖和脚本配置。
{
"name": "indie-wiki-buddy",
"version": "3.9.1",
"description": "Helps you discover quality independent wikis through alerts, redirects, and search filtering.",
"scripts": {
"build": "webpack",
"watch": "webpack --watch",
"lint