GitHub 提交資料顯示網頁視圖

該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。

  1. // ==UserScript==
  2. // @name GitHub CommitMessage Html View
  3. // @description This script converts commit messages on GitHub into HTML views for clearer visibility of commit details. It automatically transforms commit message lists, commit headers, and the latest commit information into HTML format, providing enhanced visual appeal and user experience.
  4. // @name:zh-CN GitHub 提交信息显示网页视图
  5. // @description:zh-CN 该脚本将 GitHub 上的提交信息转化为 HTML 视图,以更清晰地查看提交详情。它会自动将提交信息列表、提交头部和最新提交信息转化为 HTML 格式,提供更佳的视觉效果和用户体验。
  6. // @name:ar GitHub إرسال عرض المعلومات على شبكة الإنترنت
  7. // @description:ar هذا البرنامج النصي سوف GitHub معلومات التقديم على HTML منظر,لرؤية تفاصيل التقديم بشكل أكثر وضوحًا。وسوف يقدم تلقائيا قائمة المعلومات、يتم تحويل رأس الالتزام وأحدث معلومات الالتزام إلى HTML شكل,توفير تأثيرات بصرية أفضل وتجربة المستخدم。
  8. // @name:bg GitHub Изпращане на информация за показване на уеб изглед
  9. // @description:bg Този скрипт ще GitHub Информацията за подаване на HTML изглед,за да видите по-ясно подробностите за подаването。Той автоматично ще изпрати списъка с информация、Заглавката на ангажимента и последната информация за ангажимент се преобразуват в HTML формат,Осигурете по-добри визуални ефекти и потребителско изживяване。
  10. // @name:cs GitHub Odeslat zobrazení informací na webu
  11. // @description:cs Tento skript bude GitHub Informace o podání na HTML pohled,pro jasnější zobrazení podrobností o odeslání。Automaticky odešle informační seznam、Záhlaví odevzdání a informace o nejnovějším odevzdání se převedou na HTML Formát,Poskytujte lepší vizuální efekty a uživatelský zážitek。
  12. // @name:da GitHub Indsend informationsvisning webvisning
  13. // @description:da Dette script vil GitHub Indsendelsesoplysningerne vedr HTML udsigt,for at se indsendelsesdetaljerne mere tydeligt。Det vil automatisk indsende informationslisten、Commit-headeren og seneste commit-information konverteres til HTML Format,Giv bedre visuelle effekter og brugeroplevelse。
  14. // @name:de GitHub Webansicht zur Anzeige von Informationen übermitteln
  15. // @description:de Dieses Skript wird GitHub Die Einreichungsinformationen zu HTML Sicht,um die Einreichungsdetails klarer zu sehen。Die Informationsliste wird automatisch übermittelt、Der Commit-Header und die neuesten Commit-Informationen werden konvertiert HTML Format,Bieten Sie bessere visuelle Effekte und ein besseres Benutzererlebnis。
  16. // @name:el GitHub Υποβολή προβολής πληροφοριών ιστού
  17. // @description:el Αυτό το σενάριο θα GitHub Οι πληροφορίες υποβολής για HTML θέα,για να δείτε πιο καθαρά τις λεπτομέρειες υποβολής。Θα υποβάλει αυτόματα τη λίστα πληροφοριών、Η κεφαλίδα δέσμευσης και οι πιο πρόσφατες πληροφορίες δέσμευσης μετατρέπονται σε HTML Σχήμα και διάταξις βιβλίου,Παρέχετε καλύτερα οπτικά εφέ και εμπειρία χρήστη。
  18. // @name:en GitHub Submit information display web view
  19. // @description:en This script will GitHub The submission information on HTML view,to see submission details more clearly。It will automatically submit the information list、The commit header and latest commit information are converted to HTML Format,Provide better visual effects and user experience。
  20. // @name:eo GitHub Sendu informojn montri retejon
  21. // @description:eo Ĉi tiu skripto faros GitHub La submeta informo pri HTML vido,por pli klare vidi prezentaĵojn。Ĝi aŭtomate sendos la informliston、La commit-kapo kaj plej novaj kommit-informoj estas konvertitaj al HTML Formato,Provizu pli bonajn vidajn efikojn kaj sperton de uzanto。
  22. // @name:es GitHub Enviar información mostrar vista web
  23. // @description:es Este guión GitHub La información de presentación en HTML vista,para ver los detalles del envío más claramente。Enviará automáticamente la lista de información.、El encabezado de confirmación y la información de confirmación más reciente se convierten a HTML Formato,Proporcionar mejores efectos visuales y experiencia de usuario.。
  24. // @name:fi GitHub Lähetä tietonäytön verkkonäkymä
  25. // @description:fi Tämä käsikirjoitus tulee GitHub Lähetystiedot osoitteessa HTML näkymä,nähdäksesi lähetyksen tiedot selkeämmin。Se lähettää tietoluettelon automaattisesti、Toimitusotsikko ja viimeisimmät toimitustiedot muunnetaan muotoon HTML Muoto,Tarjoa parempia visuaalisia tehosteita ja käyttökokemusta。
  26. // @name:fr GitHub Soumettre des informations, afficher la vue Web
  27. // @description:fr Ce script sera GitHub Les informations de soumission sur HTML voir,pour voir plus clairement les détails de la soumission。Il soumettra automatiquement la liste d’informations、L’en-tête de validation et les dernières informations de validation sont convertis en HTML Format,Fournir de meilleurs effets visuels et une meilleure expérience utilisateur。
  28. // @name:he GitHub שלח תצוגת מידע באינטרנט
  29. // @description:he התסריט הזה יהיה GitHub מידע ההגשה על HTML נוֹף,כדי לראות את פרטי ההגשה בצורה ברורה יותר。זה יגיש אוטומטית את רשימת המידע、כותרת ההתחייבות ופרטי ההתחייבות העדכניים ביותר מומרים ל HTML פוּרמָט,לספק אפקטים חזותיים וחווית משתמש טובים יותר。
  30. // @name:hr GitHub Pošaljite prikaz informacija na webu
  31. // @description:hr Ova skripta će GitHub Informacije o podnošenju HTML pogled,da biste jasnije vidjeli detalje prijave。Automatski će poslati popis informacija、Zaglavlje predaje i najnovije informacije o predaji se pretvaraju u HTML Format,Omogućite bolje vizualne efekte i korisničko iskustvo。
  32. // @name:hu GitHub Információk beküldése webes nézet
  33. // @description:hu Ez a script fog GitHub A benyújtási információk a HTML kilátás,hogy tisztábban lássák a benyújtás részleteit。Automatikusan elküldi az információs listát、A véglegesítési fejléc és a legutóbbi véglegesítési információ a következőre konvertálódik HTML Formátum,Jobb vizuális effektusok és felhasználói élmény biztosítása。
  34. // @name:id GitHub Kirim informasi menampilkan tampilan web
  35. // @description:id Skrip ini akan melakukannya GitHub Informasi penyerahan pada HTML melihat,untuk melihat detail penyerahan lebih jelas。Ini secara otomatis akan mengirimkan daftar informasi、Header komit dan informasi komit terbaru dikonversi menjadi HTML Format,Memberikan efek visual dan pengalaman pengguna yang lebih baik。
  36. // @name:it GitHub Invia informazioni visualizzando la visualizzazione web
  37. // @description:it Questo script lo farà GitHub Le informazioni sull’invio su HTML visualizzazione,per visualizzare più chiaramente i dettagli dell’invio。Invierà automaticamente l’elenco delle informazioni、Vengono convertite l’intestazione del commit e le informazioni sul commit più recente HTML Formato,Fornire effetti visivi ed esperienza utente migliori。
  38. // @name:ja GitHub 情報表示Webビューの送信
  39. // @description:ja このスクリプトは、 GitHub 投稿情報は、 HTML ビュー,提出物の詳細をより明確に確認するには。情報リストを自動的に送信します、コミットヘッダーと最新のコミット情報が変換されます。 HTML 形式,より優れた視覚効果とユーザーエクスペリエンスを提供する。
  40. // @name:ka GitHub ინფორმაციის ჩვენების ვებ ხედის გაგზავნა
  41. // @description:ka ეს სკრიპტი იქნება GitHub წარდგენის შესახებ ინფორმაცია HTML ხედი,წარდგენის დეტალების უფრო ნათლად სანახავად。ის ავტომატურად წარადგენს ინფორმაციის სიას、commit header და უახლესი commit ინფორმაცია გარდაიქმნება HTML ფორმატი,უზრუნველყოს უკეთესი ვიზუალური ეფექტები და მომხმარებლის გამოცდილება。
  42. // @name:ko GitHub 정보 표시 웹뷰 제출
  43. // @description:ko 이 스크립트는 GitHub 제출정보는 HTML 보다,제출 세부정보를 더 명확하게 보려면。정보 목록이 자동으로 제출됩니다.、커밋 헤더와 최신 커밋 정보는 다음과 같이 변환됩니다. HTML 체재,더 나은 시각 효과와 사용자 경험 제공。
  44. // @name:nl GitHub Informatie verzenden webweergave weergeven
  45. // @description:nl Dit script zal GitHub De indieningsinformatie op HTML weergave,om de details van de indiening duidelijker te zien。De informatielijst wordt automatisch verzonden、De commit-header en de laatste commit-informatie worden geconverteerd naar HTML Formaat,Zorg voor betere visuele effecten en gebruikerservaring。
  46. // @name:nb GitHub Send inn informasjonsvisning på nett
  47. // @description:nb Dette skriptet vil GitHub Innsendingsinformasjonen på HTML utsikt,for å se innleveringsdetaljer tydeligere。Den vil automatisk sende inn informasjonslisten、Commit-headeren og siste commit-informasjon konverteres til HTML Format,Gi bedre visuelle effekter og brukeropplevelse。
  48. // @name:pl GitHub Prześlij informacje, aby wyświetlić widok sieciowy
  49. // @description:pl Ten skrypt to zrobi GitHub Informacje o złożeniu dot HTML pogląd,aby wyraźniej zobaczyć szczegóły przesłania。Automatycznie prześle listę informacji、Nagłówek zatwierdzenia i informacje o ostatnim zatwierdzeniu są konwertowane na HTML Format,Zapewnij lepsze efekty wizualne i wygodę użytkownika。
  50. // @name:pt-BR GitHub Enviar informações exibir visualização da web
  51. // @description:pt-BR Este roteiro irá GitHub As informações de submissão em HTML visualizar,para ver os detalhes do envio com mais clareza。Ele enviará automaticamente a lista de informações、O cabeçalho do commit e as informações do commit mais recente são convertidos para HTML Formatar,Fornece melhores efeitos visuais e experiência do usuário。
  52. // @name:ro GitHub Trimiteți informații afișați vizualizarea web
  53. // @description:ro Acest script va GitHub Informațiile de depunere pe HTML vedere,pentru a vedea detaliile trimiterii mai clar。Acesta va trimite automat lista de informații、Antetul de comitere și cele mai recente informații de comitere sunt convertite în HTML Format,Oferă efecte vizuale și experiență utilizator mai bune。
  54. // @name:ru GitHub Отправить информацию, отобразить веб-просмотр
  55. // @description:ru Этот сценарий будет GitHub Информация о подаче на HTML вид,чтобы более четко видеть детали отправки。Он автоматически отправит список информации、Заголовок фиксации и последняя информация о фиксации преобразуются в HTML Формат,Обеспечьте лучшие визуальные эффекты и удобство взаимодействия с пользователем.。
  56. // @name:sk GitHub Odoslať zobrazenie informácií na webe
  57. // @description:sk Tento skript bude GitHub Informácie o predložení na HTML pohľad,aby ste jasnejšie videli podrobnosti odoslania。Automaticky odošle informačný zoznam、Hlavička odovzdania a najnovšie informácie o odovzdaní sa skonvertujú na HTML Formátovať,Poskytnite lepšie vizuálne efekty a používateľský zážitok。
  58. // @name:sr GitHub Пошаљите приказ информација веб приказ
  59. // @description:sr Ова скрипта ће GitHub Информације о подношењу на HTML поглед,да бисте јасније видели детаље о подношењу。Аутоматски ће доставити листу информација、Заглавље урезивања и најновије информације о урезивању се конвертују у HTML Формат,Обезбедите боље визуелне ефекте и корисничко искуство。
  60. // @name:sv GitHub Skicka informationsvisning webbvy
  61. // @description:sv Detta skript kommer GitHub Inlämningsinformationen på HTML se,för att se inlämningsdetaljer tydligare。Den kommer automatiskt att skicka informationslistan、Commit-huvudet och senaste commit-informationen konverteras till HTML Formatera,Ge bättre visuella effekter och användarupplevelse。
  62. // @name:th GitHub ส่งข้อมูลแสดงมุมมองเว็บ
  63. // @description:th สคริปต์นี้จะ GitHub ข้อมูลการส่งเรื่องที่ HTML ดู,เพื่อดูรายละเอียดการส่งได้ชัดเจนยิ่งขึ้น。มันจะส่งรายการข้อมูลโดยอัตโนมัติ、ส่วนหัวการคอมมิตและข้อมูลการคอมมิตล่าสุดจะถูกแปลงเป็น HTML รูปแบบ,ให้เอฟเฟกต์ภาพและประสบการณ์ผู้ใช้ที่ดีขึ้น。
  64. // @name:tr GitHub Bilgi görüntüleme web görünümünü gönder
  65. // @description:tr Bu komut dosyası GitHub Gönderim bilgileri HTML görüş,Gönderim ayrıntılarını daha net görmek için。Bilgi listesini otomatik olarak gönderecektir、Taahhüt başlığı ve en son taahhüt bilgileri şuna dönüştürülür: HTML Biçim,Daha iyi görsel efektler ve kullanıcı deneyimi sağlayın。
  66. // @name:ug GitHub ئۇچۇر كۆرسىتىش تور كۆرۈنۈشىنى يوللاڭ
  67. // @description:ug بۇ قوليازما GitHub يوللاش ئۇچۇرى HTML كۆرۈش,تاپشۇرۇش تەپسىلاتلىرىنى تېخىمۇ ئېنىق كۆرۈش。ئۇ ئۇچۇر تىزىملىكىنى ئاپتوماتىك يوللايدۇ、ۋەدىگە مۇناسىۋەتلىك ماۋزۇ ۋە ئەڭ يېڭى ۋەدىلەر ئۇچۇرلىرىغا ئايلاندۇرۇلىدۇ HTML فورماتى,تېخىمۇ ياخشى كۆرۈش ئۈنۈمى ۋە ئىشلەتكۈچى تەجرىبىسى بىلەن تەمىنلەڭ。
  68. // @name:uk GitHub Відображення інформації в Інтернеті
  69. // @description:uk Цей сценарій буде GitHub Інформація про подання HTML переглянути,щоб чіткіше бачити деталі подання。Він автоматично надішле список інформації、Заголовок фіксації та остання інформація про фіксацію перетворюються на HTML Формат,Забезпечте кращі візуальні ефекти та досвід користувача。
  70. // @name:vi GitHub Gửi thông tin hiển thị xem web
  71. // @description:vi Kịch bản này sẽ GitHub Thông tin nộp hồ sơ trên HTML xem,để xem chi tiết gửi rõ ràng hơn。Nó sẽ tự động gửi danh sách thông tin、Tiêu đề cam kết và thông tin cam kết mới nhất được chuyển đổi thành HTML Định dạng,Cung cấp hiệu ứng hình ảnh và trải nghiệm người dùng tốt hơn。
  72. // @name:zh-TW GitHub 提交資料顯示網頁視圖
  73. // @description:zh-TW 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。
  74. // @name:zh-HK GitHub 提交資料顯示網頁視圖
  75. // @description:zh-HK 該腳本將 GitHub 上的提交資訊轉化為 HTML 視圖,以更清晰地查看提交詳情。它會自動將提交資訊列表、提交頭部和最新提交資訊轉化為 HTML 格式,提供更佳的視覺效果與使用者體驗。
  76. // @name:fr-CA GitHub Soumettre des informations, afficher la vue Web
  77. // @description:fr-CA Ce script sera GitHub Les informations de soumission sur HTML voir,pour voir plus clairement les détails de la soumission。Il soumettra automatiquement la liste d’informations、L’en-tête de validation et les dernières informations de validation sont convertis en HTML Format,Fournir de meilleurs effets visuels et une meilleure expérience utilisateur。
  78. // @version 1.0.0.19
  79. // @namespace https://github.com/ChinaGodMan/UserScripts
  80. // @author 人民的勤务员 <china.qinwuyuan@gmail.com>
  81. // @match *://github.com/*/*
  82. // @grant GM_registerMenuCommand
  83. // @grant none
  84. // @icon data:image/png;base64,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
  85. // @iconbak https://github.githubassets.com/pinned-octocat.svg
  86. // @license MIT
  87. // @source https://github.com/qinwuyuan-cn/UserScripts
  88. // @supportURL https://github.com/ChinaGodMan/UserScripts/issues
  89. // @homepageURL https://github.com/ChinaGodMan/UserScripts
  90. // ==/UserScript==
  91. const selectors = {
  92. commitList: {
  93. value: '.react-directory-commit-message a', // 选择提交消息列表中的链接
  94. description: '选择仓库列表中的提交信息'
  95. },
  96. commitListFound: false,
  97. commitHeader: {
  98. value: '.fgColor-muted > span[data-testid="latest-commit-html"]', // 选择最新提交的头部信息
  99. description: '选择仓库列表头部展开详细信息'
  100. },
  101. commitHeaderScreen: {
  102. value: 'span.Truncate-text[data-testid="latest-commit-html"]', // 头部小预览
  103. description: '选择头部预览小标题'
  104. },
  105. commitLastTime: {
  106. value: 'div.react-directory-commit-age', // 选择最新提交的头部信息
  107. description: '获取最新提交信息'
  108. },
  109. commitHeaderIsRun: false,
  110. commitHeaderFound: false,
  111. commitHeaderScreenIsRun: false,
  112. commitHeaderScreenFound: false
  113. }
  114. let LastCommitText = ''
  115. let LastCommitHref = ''
  116. let wocaonima = null
  117. function updateCommitMessageInDetails(selector) {//详情页,
  118. const element = document.querySelector(selector)
  119. if (!element) return
  120. const textContent = element.textContent.trim()
  121. if (!containsHTML(textContent)) return
  122. if (wocaonima) {
  123. element.innerHTML = wocaonima
  124. } else {
  125. element.innerHTML = textContent
  126. }
  127. }
  128. function updateRepoHeaderExpandCommit(selector) {//头部展开
  129. const spanElements = document.querySelectorAll(selector)
  130. spanElements.forEach(spanElement => {
  131. const parentElement = spanElement.parentElement
  132. const textContent = spanElement.textContent.trim()
  133. const linkElement = spanElement.querySelector('a')
  134. const hrefValue = linkElement.getAttribute('href')
  135. if (containsHTML(textContent)) {
  136. if (!LastCommitHref || !LastCommitText) {
  137. spanElement.innerHTML = `<a href="${hrefValue}">` + textContent + '</a>'
  138. } else {
  139. spanElement.innerHTML = `<a href="${LastCommitHref}">` + LastCommitText + '</a>'
  140. }
  141. }
  142. })
  143. }
  144. //
  145. function updateRepoHeaderScreenCommit(selector) {
  146. const spanElements = document.querySelectorAll(selector)
  147. spanElements.forEach(spanElement => {
  148. const parentElement = spanElement.parentElement
  149. const textContent = spanElement.textContent.trim()
  150. const linkElement = spanElement.querySelector('a')
  151. const hrefValue = linkElement.getAttribute('href')
  152. if (containsHTML(textContent)) {
  153. spanElement.addEventListener('click', () => {
  154. wocaonima = spanElement.innerHTML
  155. })
  156. if (!LastCommitHref || !LastCommitText) {
  157. console.log('未通过点击跳转:', textContent)
  158. spanElement.innerHTML = `<a href="${hrefValue}">` + textContent + '</a>'
  159. } else {
  160. console.log('通过点击跳转', LastCommitText)
  161. spanElement.innerHTML = `<a href="${LastCommitHref}">` + LastCommitText + '</a>'
  162. }
  163. }
  164. })
  165. }
  166. function updateRepoListCommit(selector) {
  167. const commitMessages = document.querySelectorAll(selector)
  168. commitMessages.forEach(element => {
  169. const nextElement = element.nextElementSibling
  170. if (nextElement) (
  171. nextElement.remove()
  172. )
  173. const titleContent = element.getAttribute('title')
  174. const hrefValue = element.getAttribute('href')
  175. if (titleContent) {
  176. if (containsHTML(titleContent)) {
  177. element.addEventListener('click', () => {
  178. wocaonima = element.innerHTML
  179. })
  180. element.innerHTML = `<a href="${hrefValue}">${titleContent}</a>`
  181. }
  182. }
  183. })
  184. }
  185. function getLastTimeCommit(selector) {
  186. const allElements = document.querySelectorAll(selector)
  187. let latestElement = null
  188. let latestDate = new Date(0)
  189. allElements.forEach(div => {
  190. const relativeTime = div.querySelector('relative-time')
  191. if (relativeTime) {
  192. const datetime = relativeTime.getAttribute('datetime')
  193. if (datetime) {
  194. const currentDate = new Date(datetime)
  195. if (currentDate > latestDate) {
  196. latestDate = currentDate
  197. latestElement = div
  198. }
  199. }
  200. }
  201. })
  202. if (latestElement) {
  203. const parentTd = latestElement.closest('td')
  204. if (parentTd) {
  205. const previousTd = parentTd.previousElementSibling
  206. const linkElement = previousTd.querySelector(selectors.commitList.value)
  207. LastCommitText = linkElement.getAttribute('title')
  208. LastCommitHref = linkElement.getAttribute('href')
  209. return { previousTd, linkElement }
  210. } else {
  211. return null
  212. }
  213. } else {
  214. return null
  215. }
  216. }
  217. function containsHTML(str) {
  218. const pattern = /<\/?[a-z][\s\S]*>/i
  219. return pattern.test(str)
  220. }
  221. /**
  222. * 监视 DOM 变化,直到找到符合选择器的元素,然后执行指定的回调函数。
  223. * @param {string} selector - 要匹配的选择器。
  224. * @param {function} callback - 找到匹配元素后的回调函数。
  225. */
  226. function observeForElement(selector, callback, disconnect = true, DEBUG = '操作', isElementFound) {
  227. isElementFound = false
  228. const observer = new MutationObserver((mutationsList, observer) => {
  229. mutationsList.forEach(mutation => {
  230. if (mutation.type === 'childList') {
  231. const element = document.querySelector(selector)
  232. if (element) {
  233. if (!isElementFound) {
  234. console.log(`成功执行:${DEBUG} - ${selector} `)
  235. isElementFound = true
  236. callback(element)
  237. if (disconnect) {
  238. observer.disconnect()
  239. } //else { console.log(`没有断开监听器器: ${DEBUG} - ${selector} `) }
  240. }
  241. }
  242. }
  243. })
  244. })
  245. observer.observe(document.body, {
  246. childList: true,
  247. subtree: true
  248. })
  249. if (!disconnect) {
  250. const removalObserver = new MutationObserver(mutationsList => {
  251. mutationsList.forEach(mutation => {
  252. mutation.removedNodes.forEach(node => {
  253. const element = document.querySelector(selector)
  254. if (!element) {
  255. // console.log(`继续查找: ${DEBUG} ${selector}`)
  256. isElementFound = false
  257. }
  258. })
  259. })
  260. })
  261. removalObserver.observe(document.body, {
  262. childList: true,
  263. subtree: true
  264. })
  265. }
  266. }
  267. function observeForElement_______________________________(selector, callback) {
  268. let isElementFound = false
  269. const observer = new MutationObserver((mutationsList, observer) => {
  270. mutationsList.forEach(mutation => {
  271. if (mutation.type === 'childList' && !isElementFound) {
  272. const element = document.querySelector(selector)
  273. if (element) {
  274. console.log('成功找到仓库列表中的提交信息元素')
  275. isElementFound = true
  276. callback(element)//留着以后用
  277. observer.disconnect()
  278. }
  279. }
  280. })
  281. })
  282. observer.observe(document.body, {
  283. childList: true,
  284. subtree: true
  285. })
  286. }
  287. main()
  288. watchUpdate()
  289. function main() {
  290. LastCommitText = ''
  291. LastCommitHref = ''
  292. observeForElement(selectors.commitList.value, function (element) {
  293. updateRepoListCommit(selectors.commitList.value)
  294. },
  295. true,
  296. selectors.commitList.description,
  297. selectors.commitListFound)
  298. if (!selectors.commitHeaderIsRun) {
  299. selectors.commitHeaderIsRun = true
  300. observeForElement(
  301. selectors.commitHeader.value,
  302. function (element) {
  303. getLastTimeCommit(selectors.commitLastTime.value)//从列表获取最新的提交信息,作为进入或返回目录使用
  304. updateRepoHeaderExpandCommit(selectors.commitHeader.value)
  305. },
  306. false,
  307. selectors.commitHeader.description,
  308. selectors.commitHeaderFound
  309. )
  310. }
  311. selectors.commitHeaderScreenIsRun = false
  312. if (!selectors.commitHeaderScreenIsRun) {
  313. observeForElement(
  314. selectors.commitHeaderScreen.value,
  315. function (element) {
  316. getLastTimeCommit(selectors.commitLastTime.value)//从列表获取最新的提交信息,作为进入或返回目录使用
  317. updateRepoHeaderScreenCommit(selectors.commitHeaderScreen.value)//头部预览
  318. },
  319. false,
  320. selectors.commitHeaderScreen.description,
  321. selectors.commitHeaderScreenIsRun
  322. )
  323. }
  324. //updateCommitMessageInDetails('.commit-desc')
  325. const element = document.querySelector('.commit-title.markdown-title')
  326. if (element) {
  327. element.remove()
  328. }
  329. updateCommitMessageInDetails('.commit-desc')
  330. //updateCommitMessageInDetails('.commit-title.markdown-title')
  331. wocaonima = null
  332. //
  333. }
  334. function watchUpdate() {//检查链接变化
  335. // 检测浏览器是否支持 MutationObserver
  336. const MutationObserver =
  337. window.MutationObserver ||
  338. window.WebKitMutationObserver ||
  339. window.MozMutationObserver
  340. // 获取当前页面的 URL
  341. const getCurrentURL = () => location.href
  342. getCurrentURL.previousURL = getCurrentURL()
  343. // 创建 MutationObserver 实例,监听 DOM 变化
  344. const observer = new MutationObserver((mutations, observer) => {
  345. const currentURL = getCurrentURL()
  346. // 如果页面的 URL 发生变化
  347. if (currentURL !== getCurrentURL.previousURL) {
  348. getCurrentURL.previousURL = currentURL
  349. console.log('链接变化,正在启动监听器')
  350. setTimeout(() => {
  351. main()
  352. }, 500)
  353. }
  354. })
  355. // 配置 MutationObserver
  356. const config = {
  357. characterData: true,
  358. subtree: true,
  359. childList: true,
  360. attributeFilter: ['value', 'placeholder', 'aria-label', 'data-confirm'] // 仅观察特定属性变化
  361. }
  362. // 开始观察 document.body 的变化
  363. observer.observe(document.body, config)
  364. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址