Greasy Fork is available in English.
给掘金增加暗黑模式以及一些小功能
// ==UserScript==
// @name 掘矿-让掘金之旅更愉快
// @namespace https://github.com/jhonleeee
// @version 0.1.2
// @description 给掘金增加暗黑模式以及一些小功能
// @author JhonLee
// @match https://juejin.cn/*
// @icon https://b-gold-cdn.xitu.io/favicons/v2/favicon.ico
// @grant none
// ==/UserScript==
async function addCountInUserPage(){
const windowURL = window?.location.pathname;
let userInfoAPI = new URL(`https://api.juejin.cn/user_api/v1/user/get`);
const urlMatch = windowURL.match(/\/user\/(\d+)/);
if(!windowURL&&!urlMatch){
return false;
}
const uId = urlMatch[1];
userInfoAPI.searchParams.set('aid',114514);
userInfoAPI.searchParams.set('user_id',uId);
function addCountToPage(writeCount,shortMsgCount){
const writeDOM = document.createElement('div');
writeDOM.className='item-count';
writeDOM.innerHTML=writeCount;
const shortMsgDOM = writeDOM.cloneNode()
shortMsgDOM.innerHTML = shortMsgCount
const headerItemArr = document.querySelectorAll('.header-content')[0].querySelectorAll('.item-title')
headerItemArr[1].after(writeDOM)
headerItemArr[2].after(shortMsgDOM)
}
await fetch(userInfoAPI,{
credentials: "include"
}).then(
res=>res.json()
).then(
resJson=>{
addCountToPage(resJson.data.post_article_count,resJson.data.post_shortmsg_count)
}
).catch(
err=>console.log(err)
)
}
(function() {
'use strict';
// Your code here...
let styleDOM = document.createElement('style');
styleDOM.id="juekuangStyle"
styleDOM.innerHTML=`
#juejin {
--color-bg-canvas-juejin-juekuang: #22272e;
--color-header-text-juejin-juekuang: rgba(205, 217, 229, 0.7);
--color-header-bg-juejin-juekuang: #2d333b;
--color-header-logo-juejin-juekuang: #cdd9e5;
--color-text-white-juejin-juekuang: #cdd9e5;
--color-text-primary-juejin-juekuang: #adbac7;
--color-text-secondary-juejin-juekuang: #768390;
--color-text-tertiary-juejin-juekuang: #768390;
--color-text-placeholder-juejin-juekuang: #545d68;
--color-text-placeholder-pin-editor-juejin-juekuang: #aaaaaa;
--color-text-disabled-juejin-juekuang: #545d68;
--color-text-inverse-juejin-juekuang: #22272e;
--color-text-link-juejin-juekuang: #539bf5;
--color-btn-text-juejin-juekuang: #adbac7;
--color-btn-bg-juejin-juekuang: #373e47;
--color-btn-border-juejin-juekuang: #444c56;
--color-btn-hover-bg-juejin-juekuang: #444c56;
--color-btn-hover-border-juejin-juekuang: #768390;
--color-bg-primary-juejin-juekuang: #22272e;
--color-bg-secondary-juejin-juekuang: #22272e;
--color-bg-overlay-juejin-juekuang: #323941;
--color-bg-info-inverse-juejin-juekuang: #4184e4;
--color-bg-tertiary-juejin-juekuang: #2d333b;
--color-bg-backdrop-juejin-juekuang: rgba(28, 33, 40, 0.8);
--color-markdown-code-bg-juejin-juekuang:#cdd9e526;
--color-border-primary-juejin-juekuang: #444c56;
--color-border-overlay-juejin-juekuang: #444c56;
--color-btn-border-juejin-juekuang: #444c56;
--color-state-hover-primary-text-juejin-juekuang: #cdd9e5;
--color-state-hover-primary-bg-juejin-juekuang: #316dca;
--color-text-danger: #e5534b;
--color-text-success: #6bc46d;
--color-text-warning: #daaa3f;
--color-bg-primary: #22272e;
--color-bg-secondary: #22272e;
--color-bg-tertiary: #2d333b;
--color-bg-overlay: #323941;
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
html {
--color-bg-canvas-juejin-juekuang: #22272e;
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.subscribe-btn:not(.subscribed) {
color: var(--color-btn-text-juejin-juekuang) !important;
background-color: var(--color-btn-bg-juejin-juekuang) !important;
border-color: var(--color-btn-border-juejin-juekuang) !important;
transition: .2s cubic-bezier(.3, 0, .5, 1) !important;
transition-property: color, background-color, border-color !important;
}
.subscribe-btn:not(.subscribed):hover {
background-color: var(--color-btn-hover-bg-juejin-juekuang) !important;
border-color: var(--color-btn-hover-border-juejin-juekuang) !important;
transition-duration: .1s !important;
}
.main-header {
color: var(--color-header-text-juejin-juekuang) !important;
background-color: var(--color-header-bg-juejin-juekuang) !important;
border-bottom: 0px !important;
}
.search-form .search-input {
color: var(--color-text-white-juejin-juekuang) !important;
background-color: #0000;
}
.main-nav .nav-item.search .search-form .search-input {
color: var(--color-text-white-juejin-juekuang) !important;
transition-duration: 0.5s;
transition-property: width;
transition-timing-function: ease-in-out;
}
.main-nav .nav-item.search .search-form.active .search-input {
width: 15rem !important;
}
.search-form.active {
background-color: var(--color-bg-secondary-juejin-juekuang) !important;
}
.typehead {
background-color: var(--color-bg-primary-juejin-juekuang) !important;
border: 1px solid var(--color-bg-primary-juejin-juekuang) !important;
color: var(--color-text-white-juejin-juekuang) !important;
}
.typehead .list {
color: var(--color-text-white-juejin-juekuang) !important;
}
.typehead .list div:hover {
background: var(--color-bg-info-inverse-juejin-juekuang) !important;
}
.add-group .more-list {
background-color: var(--color-bg-overlay-juejin-juekuang) !important;
border: 1px solid var(--color-border-overlay-juejin-juekuang) !important;
}
.view-nav,
.view-nav:before {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.sidebar-block,
.recommend-author-block {
background-color: var(--color-bg-primary-juejin-juekuang) !important;
border: 1px solid var(--color-bg-primary-juejin-juekuang) !important;
color: var(--color-text-primary-juejin-juekuang) !important;
}
.sidebar-block .headline {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.sidebar-block .desc {
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.recommend-author-block .user-list .username {
color: var(--color-text-primary-juejin-juekuang) !important;
}
/*./subscribe/subscribed*/
.tag-list .tag {
border: 1px solid var(--color-border-overlay-juejin-juekuang) !important;
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.tag-list .tag .title {
color: var(--color-text-link-juejin-juekuang) !important;
}
.tag-list .tag .thumb {
background-color: #0000 !important;
}
/* ./index */
.sidebar-block .link-list .link .title {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.category-popover {
background-color: var(--color-bg-backdrop-juejin-juekuang) !important;
backdrop-filter: blur(4vw);
}
.entry-list-container {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
border: 1px solid var(--color-border-primary-juejin-juekuang) !important;
border-radius: 6px;
}
.entry-list {
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.entry-list .entry-box:hover {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.entry-list .entry-title{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.context-box .info-box .info-row .title {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.entry-list .title {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.entry-list .action-list>.item {
border: 1px solid var(--color-btn-border-juejin-juekuang) !important;
}
.xitu-skeleton {
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.xitu-skeleton .xitu-skeleton-content {
filter: brightness(35%);
}
.nav-menu {
background-color: var(--color-bg-overlay-juejin-juekuang) !important;
border: 1px solid var(--color-border-overlay-juejin-juekuang) !important;
}
.nav-menu .nav-menu-item:hover {
color: var(--color-state-hover-primary-text-juejin-juekuang) !important;
background-color: var(--color-state-hover-primary-bg-juejin-juekuang) !important;
}
.nav-menu .nav-menu-item>a,
.fengwei {
color: var(--color-text-primary-juejin-juekuang) !important;
}
/*./pins/recommended*/
.pin-editor-dialog {
background-color: var(--color-header-bg-juejin-juekuang) !important;
}
.pin-editor-dialog .editor-body {
background: #0000 !important;
}
.pin-editor-dialog .editor-body .content.active {
background-color: var(--color-bg-secondary-juejin-juekuang) !important;
}
.pin-editor-dialog .editor-body .rich-editor {
color: var(--color-text-white-juejin-juekuang) !important;
}
.pin-editor-dialog .editor-body .rich-editor:after {
color: var(--color-text-placeholder-pin-editor-juejin-juekuang) !important;
}
.in-editor-dialog.pin-editor .bottom .topic-picker .topic_panel {
background: var(--color-bg-canvas-juejin-juekuang) !important;
}
.view-container .main .dock-nav {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.pin__side.sidebar {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.pin__side.sidebar .profile-box {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.pin__side.sidebar .related-pin-block.pin-block {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.pin__side.sidebar .related-pin-block.pin-block>header {
color: var(--color-text-white-juejin-juekuang) !important;
}
.pin__side.sidebar .related-pin-block.pin-block .content {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.pin__side.sidebar .topic-sidebar {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.pin__side.sidebar .topic-sidebar .title span {
color: var(--color-text-white-juejin-juekuang) !important;
}
.pin__side.sidebar .topic-sidebar .content span:first-child {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.pin__side.sidebar .guide-link {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
color: var(--color-text-primary-juejin-juekuang) !important;
}
.profile-box .profile .user-info .username {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.profile-box .stat-list .item .count {
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.pin-list-view img:not(.slide-img),article img:not(.medium-zoom-image) {
filter: brightness(70%);
}
.pin-list {
background: #0000 !important;
}
.pin:not(a) {
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.pin .content-box {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.pin-header-row .username {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.pin-action-row .action-box {
border-top: 1px solid var(--color-border-primary-juejin-juekuang) !important;
}
.comment-list .item:not(:last-child) .comment-divider-line {
border-bottom: 0px !important;
}
.container .triangle {
background: var(--color-bg-tertiary-juejin-juekuang) !important;
border-right: 1px solid var(--color-border-primary-juejin-juekuang) !important;
border-bottom: 1px solid var(--color-border-primary-juejin-juekuang) !important;
}
.comment-list-box {
border-top: 1px solid var(--color-border-primary-juejin-juekuang) !important;
}
.comment-form,
.sub-comment-list {
color: var(--color-text-white-juejin-juekuang) !important;
background-color: #0000 !important;
border: 1px solid var(--color-border-primary-juejin-juekuang) !important;
}
.comment-form .input-box {
color: var(--color-text-white-juejin-juekuang) !important;
background-color: #0000;
}
.comment .name,
.comment .author-badge-text,
.comment .content {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.link-box {
background-color: var(--color-bg-primary-juejin-juekuang) !important;
border: 1px solid var(--color-border-primary-juejin-juekuang) !important;
}
.link-box .link-info-box .link-title {
color: var(--color-text-primary) !important;
}
.link-box .link-info-box .link-domain {
color: var(--color-text-secondary) !important;
}
/* ./pin/** */
/* ./user/** */
.list-header .nav-item .item-count {
margin-left: .4rem;
font-size: 1.25rem;
color: #b2bac2;
line-height: 1;
}
.main-container .block {
background-color: var(--color-bg-overlay-juejin-juekuang) !important;
}
.action-box .link-box {
background-color: #0000 !important;
border: 0px !important;
}
.user-info-block .top .username,
.list-body .activity-item .username,
.list-body .activity-item .post-item-title h3 {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.main-container .block .content {
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.list-body .activity-item {
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.rich-content .post-item-excerpt {
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.post-list-box,.like-list-box,.recommended-entry-list-title {
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
color: var(--color-text-white-juejin-juekuang) !important;
}
.post-list-box .sub-header-title,.like-list-box .sub-header-title{
color: var(--color-text-white-juejin-juekuang) !important;
}
.post-list-box a,.like-list-box a {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.list-header .btn,
.user-info-block .action-box .btn,
.source-header {
color: var(--color-btn-text-juejin-juekuang) !important;
background-color: var(--color-btn-bg-juejin-juekuang) !important;
border-color: var(--color-btn-border-juejin-juekuang) !important;
}
.list-header .nav-item .item-title {
color: var(--color-header-text-juejin-juekuang) !important;
}
.more-block .more-item {
border-top: 0px !important;
}
.more-block .more-item:last-child{
border-bottom: 0px !important;
}
.more-block .more-item .item-title {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.more-block .more-item .item-count {
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.stat-block .block-title {
color: var(--color-text-white-juejin-juekuang) !important;
}
.follow-block .follow-item {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.list-header {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.stat-item svg {
filter: brightness(70%);
}
.list-header .nav-item .more-panel {
background-color: var(--color-bg-canvas-juejin-juekuang) !important;
}
.list-header .nav-item .more-panel::before {
border-bottom: 7px solid var(--color-bg-canvas-juejin-juekuang) !important;
}
.list-header .nav-item .more-panel a {
color: var(--color-header-text-juejin-juekuang) !important;
}
.empty-box{
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
/* ./post/** */
article,.markdown-body{
color: var(--color-text-primary-juejin-juekuang) !important;
background-image: none !important;
background-color: #0000 !important;
}
.markdown-body a{
color: var(--color-text-link-juejin-juekuang) !important;
}
.markdown-body blockquote p{
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.article-area{
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.author-info-box .username .name{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.sidebar-block,.related-pin-block{
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.related-entry-sidebar-block .block-title,.related-pin-block header{
color: var(--color-text-white-juejin-juekuang) !important;
}
.related-pin-block .content{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.sidebar-block.author-block .block-title {
color: var(--color-text-white-juejin-juekuang) !important;
}
.sidebar-block.author-block .info-box .username {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.sidebar-block.author-block .info-box .position {
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.stat-item .content {
color: var(--color-text-primary-juejin-juekuang) !important;
}
.catalog-block{
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
padding-top: 15px;
padding-left: 8px;
padding-right: 8px;
padding-bottom: 25px;
}
.catalog-title{
color: var(--color-text-white-juejin-juekuang) !important;
}
.catalog-list:before{
background-color: var(--color-bg-primary) !important;
}
.catalog-list .item a{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.catalog-list .item a:hover{
background-color: var(--color-bg-secondary) !important;
}
.catalog-list .item.active>a{
color: var(--color-text-link-juejin-juekuang) !important;
background-color: var(--color-bg-primary-juejin-juekuang) !important;
}
.catalog-list .item{
color: var(--color-bg-secondary) !important;
background-color:#0000 !important;
transition-duration:0.5s;
transition-property: background-color;
transition-timing-function: ease-in-out;
}
.tag-list-box .tag-list .tag-list-title{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.footer-author-block{
background-color: var(--color-bg-overlay-juejin-juekuang) !important;
}
.footer-author-block .name{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.article-banner{
border-left: 6px solid var(--color-text-primary-juejin-juekuang) !important;
}
.markdown-body code{
padding: .2em .4em !important;
margin: 0 !important;
font-size: 85% !important;
background-color: var(--color-markdown-code-bg-juejin-juekuang) !important;
border-radius: 6px !important;
color: var(--color-text-primary-juejin-juekuang) !important;
}
/* ./search?** */
.search-view .main-list{
background-color: var(--color-bg-tertiary-juejin-juekuang) !important;
}
.search-view .main-listfirst-child{
background-color: var(--color-bg-primary-juejin-juekuang) !important;
}
.search-view .title{
color: var(--color-text-primary-juejin-juekuang) !important;
}
.search-view .abstract-row .abstract{
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.search-view .tag .meta-box .stat{
color: var(--color-text-secondary-juejin-juekuang) !important;
}
.search-view .entry:hover {
background: var(--color-bg-info-inverse-juejin-juekuang) !important;
}
@media (max-width: 980px) {
.main-nav-list {
background-color: var(--color-header-bg-juejin-juekuang) !important;
}
.phone-hide {
background-color: var(--color-header-bg-juejin-juekuang) !important;
border: 1px solid var(--color-header-bg-juejin-juekuang) !important;
}
}
`;
const headDOM = document.getElementsByTagName('head')[0];
const useTheme= localStorage.getItem("juekuang-theme-enable");
useTheme!='false'&&headDOM.append(styleDOM);
function initSettingBtn(){
let btnTemplate = document.querySelectorAll('.nav-menu-item')[0];
let settingBtn = btnTemplate.cloneNode(true);
settingBtn.getElementsByTagName('span')[0].innerText='切换主题';
settingBtn.onclick=()=>{
const useTheme= localStorage.getItem("juekuang-theme-enable");
useTheme!="true"?localStorage.setItem("juekuang-theme-enable","true"):localStorage.setItem("juekuang-theme-enable","false");
}
document.querySelectorAll('.nav-menu-item-group')[3].append(settingBtn);
}
setTimeout(addCountInUserPage,1000);
setTimeout(initSettingBtn,2000);
})();