diff --git a/README.md b/README.md index f3565ea..63ee780 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,10 @@ CSDN博客在未登录状态下无法复制代码,使用这个插件,无需 5. 未关注博主状态下,不再提示关注博主即可阅读全文,且完整展示文章 6. 自动展开代码块,如果不需要自动展开,可以在扩展的`popup`界面中关闭自动展开代码块功能。 +## 脚本之家 + +## 博客园 + ## 参考 1. [copy-csdn](https://github.com/openHacking/copy-csdn) diff --git a/background.ts b/background.ts index b1f0e57..cc87520 100644 --- a/background.ts +++ b/background.ts @@ -1,9 +1,7 @@ export {} chrome.runtime.onInstalled.addListener(function (object) { - let externalUrl = "https://github.com/027xiguapi/code-box" - if (object.reason === chrome.runtime.OnInstalledReason.INSTALL) { - chrome.tabs.create({ url: externalUrl }) + chrome.tabs.create({ url: chrome.runtime.getURL("options.html") }) } }) diff --git a/contents/csdn.tsx b/contents/csdn.tsx index 211e009..24e0902 100644 --- a/contents/csdn.tsx +++ b/contents/csdn.tsx @@ -17,6 +17,7 @@ const csdn = () => { const [closeFollow, setCloseFollow] = useStorage("csdn-closeFollow") const [autoOpenCode] = useStorage("csdn-autoOpenCode") const [closeLoginModal] = useStorage("csdn-closeLoginModal") + const isMount = useRef(false) useEffect(() => { console.log("CSDN closeAds", closeAds) @@ -25,30 +26,22 @@ const csdn = () => { useEffect(() => { console.log("CSDN copyCode", copyCode) - if (copyCode) { - copyCodeFunc() - } + copyCode && copyCodeFunc() }, [copyCode]) useEffect(() => { console.log("CSDN autoOpenCode", autoOpenCode) - if (autoOpenCode) { - autoOpenCodeFunc() - } + autoOpenCode && autoOpenCodeFunc() }, [autoOpenCode]) useEffect(() => { console.log("CSDN closeFollow", closeFollow) - if (closeFollow) { - followFunc() - } + closeFollow && followFunc() }, [closeFollow]) useEffect(() => { console.log("CSDN closeLoginModal", closeLoginModal) - if (closeLoginModal) { - closeLoginModalFunc() - } + closeLoginModal && closeLoginModalFunc() }, [closeLoginModal]) /* 未登录复制代码 */ @@ -74,7 +67,7 @@ const csdn = () => { content_views.replaceWith(content_views.cloneNode(true)) // 功能一: 修改复制按钮,支持一键复制 - const buttons = document.querySelectorAll(".hljs-button") + const buttons = document.querySelectorAll(".hljs-button") buttons.forEach((btn) => { // 更改标题 @@ -92,14 +85,15 @@ const csdn = () => { // 重新添加点击事件 elClone.addEventListener("click", (e) => { // 实现复制 - const parentPreBlock = e.target.closest("pre") + const target = e.target as HTMLElement + const parentPreBlock = target.closest("pre") const codeBlock = parentPreBlock.querySelector("code") - console.log(parentPreBlock, codeBlock) + navigator.clipboard.writeText(codeBlock.innerText) - e.target.dataset.title = "复制成功" + target.dataset.title = "复制成功" setTimeout(() => { - e.target.dataset.title = "复制" + target.dataset.title = "复制" }, 1000) e.stopPropagation() e.preventDefault() @@ -149,9 +143,13 @@ const csdn = () => { // 自动展开代码块 function autoOpenCodeFunc() { const pres = Array.from( - document.querySelectorAll("main div.blog-content-box pre.set-code-hide") + document.querySelectorAll( + "main div.blog-content-box pre.set-code-hide" + ) + ) + const presBox = Array.from( + document.querySelectorAll(".hide-preCode-box") ) - const presBox = Array.from(document.querySelectorAll(".hide-preCode-box")) pres.forEach((pre) => { pre.style.height = "unset" diff --git a/options.tsx b/options.tsx new file mode 100644 index 0000000..bb4f26f --- /dev/null +++ b/options.tsx @@ -0,0 +1,86 @@ +import { useStorage } from "@plasmohq/storage/hook" + +function IndexOptions() { + const [closeAds, setCloseAds] = useStorage("csdn-closeAds", (v) => + v === undefined ? true : v + ) + const [copyCode, setCopyCode] = useStorage("csdn-copyCode", (v) => + v === undefined ? true : v + ) + const [closeFollow, setCloseFollow] = useStorage("csdn-closeFollow", (v) => + v === undefined ? true : v + ) + const [autoOpenCode, setAutoOpenCode] = useStorage( + "csdn-autoOpenCode", + (v) => (v === undefined ? true : v) + ) + const [closeLoginModal, setCloseLoginModal] = useStorage( + "csdn-closeLoginModal", + (v) => (v === undefined ? true : v) + ) + + return ( +
+
+ CSDN设置 +
+ setCloseAds(e.target.checked)} + /> + +
+
+ setCopyCode(e.target.checked)} + /> + +
+
+ setCloseFollow(e.target.checked)} + /> + +
+
+ setAutoOpenCode(e.target.checked)} + /> + +
+
+ setCloseLoginModal(e.target.checked)} + /> + +
+
+
+ ) +} + +export default IndexOptions diff --git a/package.json b/package.json index ad9c778..f49aa3e 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "name": "code-box", "displayName": "Code box", "version": "0.0.1", - "description": "A basic Plasmo extension.", - "author": "Plasmo Corp. ", + "description": "更方便操作网页代码的插件", + "author": "027xiguapi. <458813868@qq.com>", "scripts": { "dev": "plasmo dev", "build": "plasmo build", diff --git a/popup.tsx b/popup.tsx index e61991e..915279c 100644 --- a/popup.tsx +++ b/popup.tsx @@ -25,7 +25,7 @@ function IndexPopup() {

CodeBox 🎉

-

让代码更容易

+

更方便操作网页代码