您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
hide works with too many tags on the AO3
- // ==UserScript==
- // @name ao3 tags savior
- // @description hide works with too many tags on the AO3
- // @namespace ao3
- // @include http*://archiveofourown.org/*
- // @grant none
- // @version 1.0
- // ==/UserScript==
- // based on Tegan's Crossover savior: https://greasyfork.org/en/scripts/13274-ao3-crossover-savior
- /**** CONFIG ********************/
- window.ao3TagsConfig = {
- maxTags: 15,
- // set to the maximum number of tags per work you want to see
- // keep in mind that this number is count of all tags: fandoms, relationships, characters and freeform
- // so you may want to keep this number relatively high
- };
- /********************************/
- (function($) {
- var works = $('li.blurb');
- if (!works[0]) return;
- var toggleClass = 'ao3-tags-hide-toggle',
- fold = $('<p>').addClass('fold').append(
- $('<span>').addClass(toggleClass).text('This work is hidden! '),
- $('<span>').addClass(toggleClass).html('This work was hidden. ').hide(),
- $('<span>').addClass('reason'),
- $('<span>').addClass('actions').append(
- $('<a>').addClass('action').css({
- 'position': 'absolute',
- 'right': 8,
- 'top': 10
- }).text('Unhide')
- )
- ),
- bl = window.ao3TagsConfig,
- shouldBlacklist = function(work) {
- var tag = work.find('a.tag');
- if (tag.length > bl.maxTags) {
- return tag.length;
- }
- },
- blacklist = function(work, reason) {
- var cut = $('<div>').addClass('cut').html(work.html()),
- reason = '(Too many tags: ' + reason +')',
- thisFold = fold.clone(),
- reasonContainer = thisFold.find('.reason');
- reasonContainer.html(reason);
- work.empty().append(thisFold, cut.hide());
- work.find('a.action').click(function() {
- var fold = $(this).closest('.fold'),
- cut = fold.next('.cut');
- cut.add(fold.children('.'+toggleClass)).toggle();
- $(this).text(cut.is(':visible') ? 'Hide' : 'Unhide');
- });
- };
- works.each(function() {
- var reason = shouldBlacklist($(this));
- if (reason) {
- blacklist($(this), reason);
- }
- });
- })(window.jQuery);