您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Need to install https://chrome.google.com/webstore/detail/modern-for-hacker-news/dabkegjlekdcmefifaolmdhnhdcplklo first to use this script.
// ==UserScript== // @name 复制 HackerNews 评论(Copy HackerNews Comments As Markdown List) // @namespace http://tampermonkey.net/ // @version 0.2 // @description Need to install https://chrome.google.com/webstore/detail/modern-for-hacker-news/dabkegjlekdcmefifaolmdhnhdcplklo first to use this script. // @author Boninall // @match *://news.ycombinator.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=ycombinator.com // @grant none // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js // @license GPL v3 // ==/UserScript== (function ($, undefined) { 'use strict'; $(function () { $(document).ready(function() { $('head').append('<style type="text/css">.copy-text {text-align: center; padding-left: 5px; padding-right: 5px;} .copy-icon {display:flex; align-items: center; margin-right: 1em; width: 50px; height: 16px; cursor: pointer;} .copy-icon:hover {background-color: rgb(243 243 243);} .hn-comment-icons {display: flex; align-items: center;}</style>'); const el = document.createElement("div"); const iconEl = document.createElement("div"); el.innerText = "COPY"; el.className = "copy-text"; iconEl.appendChild(el); iconEl.className = "copy-icon"; $( ".hn-comment-icons" ).prepend(iconEl); $( ".copy-icon" ).click(function() { const currentCommentEl = this.parentElement.parentElement.parentElement; const infoLinkEl = currentCommentEl.querySelector(".hn-story-info-age"); const linkHref = infoLinkEl.href; let allCommentText = ""; // Convert comment text into Markdown List based on indent const todayDate = new Date().toISOString().slice(0, 10); const parentCommentText = todayDate + ` [link](${linkHref})` + currentCommentEl.querySelector(".hn-comment-text").innerText.trim().replace(/^\s*[\r\n]/gm, "").split("\n").map(line => line.trim()).join("\n").replace(/\n/g, "<br>"); const currentIndent = currentCommentEl.className.split(" ")[1].split("-")[3]; $(currentCommentEl).nextUntil(".hn-comment-indent-" + currentIndent).each(function() { const currentCommentIndent = this.className.split(" ")[1].split("-")[3]; const indent = " ".repeat((currentCommentIndent - currentIndent) * 4); const currentCommentText = this.querySelector(".hn-comment-text").innerText.replace(/^\s*[\r\n]/gm, "").split("\n").map(line => line.trim()).join("\n").replace(/\n/g, "<br>"); // Comment Text maybe multiline, so we need to add indent to each line except the first line const commentText = currentCommentText; allCommentText += indent + "- " + commentText + "\n"; }); allCommentText = "- " + parentCommentText + "\n" + allCommentText; // Copy to clipboard navigator.clipboard.writeText(allCommentText); }); }) }); })(window.jQuery.noConflict(true));
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址