您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Redirect the version you googled to the latest doc versions.
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==UserScript==
- // @name Lastest Doc Redirector (python, django, ruby)
- // @name:vi Chuyển trang tài liệu mới nhất (python, django, ruby)
- // @namespace https://github.com/hotmit/latest-doc-redirector-userscript
- // @version 1.0.1
- // @description Redirect the version you googled to the latest doc versions.
- // @description:vi Chuyển những trang bạn tìm được qua trang tài liệu với phiên bản mới nhất (python, django, ruby)
- // @author Du Dang
- // @include https://docs.djangoproject.com/*
- // @include https://docs.python.org/2/*
- // @include https://ruby-doc.org/core-*
- // @grant GM_getValue
- // @grant GM_setValue
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Change desired version number
- var PYTHON_TARGET_VERSION = '3.6';
- var DJANGO_TARGET_VERSION = '1.11';
- var RUBY_TARGET_VERSION = '2.4.1';
- // region [ Str Lib ]
- var Str = {};
- Str.contains = function(s, needle, caseSensitive) {
- if (caseSensitive){
- return s.indexOf(needle) > -1;
- }
- return s.toLowerCase().indexOf(needle.toLowerCase()) > -1;
- };
- // endregion
- var href = window.location.href;
- function forward(url){
- var lastFwd = GM_getValue('LastUrlFwd', '');
- // do this to allow browser to go back to old version
- // without loop redirect
- if (lastFwd != url){
- GM_setValue('LastUrlFwd', url);
- window.location.href = url;
- }
- }
- if (Str.contains(href, 'docs.djangoproject.com') &&
- !Str.contains(href, '/en/' + DJANGO_TARGET_VERSION + '/'))
- {
- // https://docs.djangoproject.com/en/1.5/topics/db/optimization/
- // INTO https://docs.djangoproject.com/en/1.7/topics/db/optimization/
- href = href.replace(/docs.djangoproject.com\/(\w{2})\/(\d+\.\d+|dev)/gi,
- 'docs.djangoproject.com/en/' + DJANGO_TARGET_VERSION);
- forward(href);
- }
- else if (Str.contains(href, 'docs.python.org') &&
- !Str.contains(href, '/' + PYTHON_TARGET_VERSION + '/'))
- {
- // https://docs.python.org/2/library/datetime.html
- // INTO https://docs.python.org/3/library/datetime.html
- href = href.replace(/docs.python.org\/2\/library/gi,
- 'docs.python.org/' + PYTHON_TARGET_VERSION + '/library');
- forward(href);
- }
- else if (Str.contains(href, 'ruby-doc.org/core-') &&
- !Str.contains(href, '/core-' + RUBY_TARGET_VERSION + '/'))
- {
- // https://ruby-doc.org/core-2.2.0/String.html
- // INTO https://ruby-doc.org/core-2.3.1/String.html
- href = href.replace(/core-[^\/]+/gi, 'core-' + RUBY_TARGET_VERSION);
- forward(href);
- }
- })();