@@ -4,6 +4,9 @@ function injectVersionWarningBanner(running_version, version, config) {
44 console . debug ( "injectVersionWarningBanner" ) ;
55 var version_url = window . location . pathname . replace ( running_version . slug , version . slug ) ;
66 var warning = $ ( config . banner . html ) ;
7+ if ( config . meta . check_version_fn ) {
8+ version_url = config . meta . api_url ;
9+ }
710
811 warning
912 . find ( "a" )
@@ -43,6 +46,15 @@ function getHighestVersion(versions) {
4346 return highest_version ;
4447}
4548
49+ function showBanner ( running_version , highest_version , config ) {
50+ console . debug ( "showBanner" ) ;
51+ if (
52+ semver . valid ( semver . coerce ( running_version . slug ) ) && semver . valid ( semver . coerce ( highest_version . slug ) ) &&
53+ semver . lt ( semver . coerce ( running_version . slug ) , semver . coerce ( highest_version . slug ) ) ) {
54+ console . debug ( "Highest version: " + highest_version . slug ) ;
55+ injectVersionWarningBanner ( running_version , highest_version , config ) ;
56+ }
57+ }
4658
4759function checkVersion ( config ) {
4860 console . debug ( "checkVersion" ) ;
@@ -67,12 +79,7 @@ function checkVersion(config) {
6779 success : function ( versions ) {
6880 // TODO: fetch more versions if there are more pages (next)
6981 highest_version = getHighestVersion ( versions [ "results" ] ) ;
70- if (
71- semver . valid ( semver . coerce ( running_version . slug ) ) && semver . valid ( semver . coerce ( highest_version . slug ) ) &&
72- semver . lt ( semver . coerce ( running_version . slug ) , semver . coerce ( highest_version . slug ) ) ) {
73- console . debug ( "Highest version: " + highest_version . slug ) ;
74- injectVersionWarningBanner ( running_version , highest_version , config ) ;
75- }
82+ showBanner ( running_version , highest_version , config ) ;
7683 } ,
7784 error : function ( ) {
7885 console . error ( "Error loading Read the Docs active versions." ) ;
@@ -97,6 +104,11 @@ function init() {
97104 else if ( config . banner . custom ) {
98105 injectCustomWarningBanner ( config ) ;
99106 }
107+ else if ( config . meta . check_version_fn ) {
108+ // A custom function for checking version is defined globally
109+ var fn = window [ config . meta . check_version_fn ] ;
110+ fn ( config , showBanner ) ;
111+ }
100112 else {
101113 checkVersion ( config ) ;
102114 }
0 commit comments