您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This adds forward and backwards links to each day's page.
- // ==UserScript==
- // @name Advent of Code Day Navigation Links
- // @namespace Violentmonkey Scripts
- // @match https://adventofcode.com/*/day/*
- // @grant none
- // @version 1.0
- // @author -
- // @description This adds forward and backwards links to each day's page.
- // @author josh
- // @namespace https://gitlab.com/userscript4/advent-of-code-day-nav
- // @supportURL https://gitlab.com/userscript4/advent-of-code-day-nav/-/issues
- // @license MIT
- // ==/UserScript==
- /**
- * Return the url of the requested day.
- * If less than 1 or greater than 25 provide a url to the overview page.
- * @param {number} day
- * @returns {string} A url to the requested day
- */
- function makeURL(day) {
- if (day < 1 || day > 25) {
- return window.location.href.replace(/\/day\/.*/, '');
- }
- return window.location.href.replace(/(?<=\/day\/).*/, day);
- }
- /**
- * Create an anchor tag.
- * @param {number} day
- * @param {string} text
- * @returns {HTMLAnchorElement}
- */
- function makeAnchor(day, text) {
- const anchor = document.createElement('a');
- anchor.href = makeURL(day);
- anchor.textContent = text;
- return anchor
- }
- /**
- * Find the title, extract the day number, replace the `---` with links.
- */
- function addNavigationLinks() {
- const title = document.querySelector('article.day-desc > h2');
- const currentDay = parseInt(title.textContent.match(/(?<=Day )[0-9]+(?=:)/)[0]);
- title.textContent = title.textContent.match(/^--- (.*?) ---$/)[1];
- title.prepend(makeAnchor(currentDay - 1, '<-- '));
- title.append(makeAnchor(currentDay + 1, ' -->'));
- }
- addNavigationLinks();