您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Enable ordered lists for WorkFlowy
当前为
- // ==UserScript==
- // @name Ordered-Lists-for-WorkFlowy
- // @namespace https://github.com/BettyJJ
- // @version 0.1
- // @description Enable ordered lists for WorkFlowy
- // @author Betty
- // @match https://workflowy.com/*
- // @match https://*.workflowy.com/*
- // @run-at document-idle
- // @grant GM.addStyle
- // ==/UserScript==
- (function () {
- 'use strict';
- init();
- /**
- * initialize
- */
- function init() {
- watch_page();
- add_style();
- }
- /**
- * watch the page
- */
- function watch_page() {
- // wathe the page, so that the rendering is updated when new contents come in as the user edits or navigates
- const observer = new MutationObserver(function (mutationlist) {
- for (const { addedNodes } of mutationlist) {
- for (const node of addedNodes) {
- if (!node.tagName) continue; // not an element
- if (node.classList.contains('innerContentContainer')) {
- add_class(node);
- }
- }
- }
- });
- observer.observe(document.body, { childList: true, subtree: true });
- }
- /**
- * if a node contains the #ol tag, add a class
- * * @param node {Node} Dom Node
- */
- function add_class(node) {
- // sometimes there is a dummy node without parent. don't know why, but we need to check and exclude it first
- if (!node.parentElement) {
- return;
- }
- // first remove the class we added previously
- const ancestor = node.closest('.project');
- ancestor.classList.remove('list-ol');
- // if a node contains the #ol tag, add a class
- if (node.querySelectorAll('[data-val="#ol"]').length > 0) {
- ancestor.classList.add('list-ol');
- }
- }
- /**
- * add style
- */
- function add_style() {
- // hide the bullets
- let css = `
- .list-ol > .children > .project > .name > .bullet {
- opacity: 0.5 !important;
- }
- .list-ol > .children > .project > .name > .bullet > svg {
- fill: transparent;
- }
- `
- // show the numbers
- css += `
- .list-ol > .children {
- counter-reset: counter;
- }
- .list-ol > .children > .project > .name:before {
- counter-increment: counter;
- content: counter(counter) '. ';
- float: left;
- margin-left: -18px;
- margin-top: 8px;
- }
- `
- GM.addStyle(css);
- }
- })();