미디어위키:Gadget-CGI2.js: 두 판 사이의 차이

리버티게임(개발), 모두가 만들어가는 자유로운 게임
둘러보기로 이동 검색으로 이동
imported>Senouis
(Senouis의 265258판 편집을 되돌림)
imported>Senouis
편집 요약 없음
1번째 줄: 1번째 줄:
/** [[틀:CGI2]] 변수 구문 해석기
* 작성자: [[사용자:Gustmd7410]]
**/
var CGI2Parser = require('ext.gadget.CGI2-parser');
/* [[틀:CGI2]] 변수 구문 해석기 끝 */
/** [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문
/** [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문
  * 원작성자: [[사용자:BANIP|BANIP]]
  * 원작성자: [[사용자:BANIP|BANIP]]
  * 2차 작성자: [[사용자:Gustmd7410|Gustmd7410]]
  * 2차 작성자: [[사용자:Gustmd7410|Gustmd7410]]
**/
**/
function useCGI2() {
mw.loader.getScript(
$(".cgilink").each(function() {
    'https://libertygame.miraheze.org/wiki/미디어위키:Gadget-CGI2-parser.js'
// CGI2의 page속성과 data속성을 가져옴
)
var page = $(this).data("page").split('#');
    .then( function () {
var variables = $(this).data("var");
        // Script succeeded. You can use X now.
// 가져온 page데이터 속성을 조합해 url인스턴스 생성
    $(".cgilink").each(function() {
var pagename = page.shift() || mw.config.get('wgPageName');
// CGI2의 page속성과 data속성을 가져옴
var hash = page.join('#');
/*
var urlstr = window.location.origin;
true = 항상 엄격모드
var url = new URL(urlstr);
null = 디버그 모드 (debug=true) 에 엄격모드 자동 전환
var searchParam = geturlSearch();
false = 엄격모드 사용 안함
// 엄격모드 사용여부 결정
*/
if(typeof useCGI2.useStrict !== "boolean") {
var useStrict = null;
useCGI2.useStrict = (searchParam.debug === "true" || searchParam.debug == 1)? true : false;
var page = $(this).data("page").split('#');
}
var variables = $(this).data("var");
// 가져온 var속성으로 url 인스턴스의 searchparams를 씹고 뜯고 맛보고 즐기고
// 가져온 page데이터 속성을 조합해 url인스턴스 생성
var enabledKey = null;
var pagename = page.shift() || mw.config.get('wgPageName');
try {
var hash = page.join('#');
searchParam = new CGI2Parser({
var urlstr = window.location.origin;
set: function(key, value) {
var url = new URL(urlstr);
this[key.trim()] = value.trim();
var searchParam = geturlSearch();
},
// 엄격모드 사용여부 결정
"default": function(key, value) {
if(typeof useStrict !== "boolean") {
key = key.trim();
useStrict = (searchParam.debug === "true" || searchParam.debug == 1)? true : false;
this[key] = this[key] || value.trim();
}
},
// 가져온 var속성으로 url 인스턴스의 searchparams를 씹고 뜯고 맛보고 즐기고
del: function(key) {
var enabledKey = null;
delete this[key.trim()];
try {
},
searchParam = new CGI2Parser({
restrict: function(key) {
set: function(key, value) {
if(!enabledKey) enabledKey = [];
this[key.trim()] = value.trim();
enabledKey.push(key);
},
}
"default": function(key, value) {
}).parse(searchParam, variables, useCGI2.useStrict);
key = key.trim();
this[key] = this[key] || value.trim();
if(enabledKey) Object.keys(searchParam).forEach(function(key) {
},
if(!enabledKey.includes(key)) delete searchParam[key];
del: function(key) {
});
delete this[key.trim()];
} catch(error) {
},
$(this).html($("<span class='error' />").text(error.message));
restrict: function(key) {
return;
if(!enabledKey) enabledKey = [];
}
enabledKey.push(key);
// url 경로 조정
}
if(Object.keys(searchParam).length > 0) {
}).parse(searchParam, variables, useStrict);
url.pathname = "/w/index.php";
searchParam.title = pagename;
if(enabledKey) Object.keys(searchParam).forEach(function(key) {
} else url.pathname = "/wiki/" + mw.util.wikiUrlencode(pagename);
if(!enabledKey.includes(key)) delete searchParam[key];
url.search = searchParamToString(searchParam);
});
url.hash = mw.util.escapeIdForLink(hash);
} catch(error) {
// cgilink에 a태그 추가
$(this).html($("<span class='error' />").text(error.message));
var children = $(this).html();
return;
$(this).html("<a href='" + url.href.replace("'", "&#39;") + "'>" + children + "</a>");
}
});
// url 경로 조정
}
if(Object.keys(searchParam).length > 0) {
/*
url.pathname = "/w/index.php";
true = 항상 엄격모드
searchParam.title = pagename;
null = 디버그 모드 (debug=true) 에 엄격모드 자동 전환
} else url.pathname = "/wiki/" + mw.util.wikiUrlencode(pagename);
false = 엄격모드 사용 안함
url.search = searchParamToString(searchParam);
*/
url.hash = mw.util.escapeIdForLink(hash);
useCGI2.useStrict = null;
// cgilink에 a태그 추가
$(useCGI2);
var children = $(this).html();
$(this).html("<a href='" + url.href.replace("'", "&#39;") + "'>" + children + "</a>");
});
    }, function ( e ) {
        // Script failed. X is not avaiable
        mw.log.error( e.message ); // => "Failed to load script"
    } );
} );


/* [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문 끝 */
/* [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문 끝 */

2020년 12월 29일 (화) 16:00 판

/** [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문
 * 원작성자: [[사용자:BANIP|BANIP]]
 * 2차 작성자: [[사용자:Gustmd7410|Gustmd7410]]
**/
mw.loader.getScript(
    'https://libertygame.miraheze.org/wiki/미디어위키:Gadget-CGI2-parser.js'
)
    .then( function () {
        // Script succeeded. You can use X now.
	    $(".cgilink").each(function() {
			// CGI2의 page속성과 data속성을 가져옴
			/*
			 true = 항상 엄격모드
			 null = 디버그 모드 (debug=true) 에 엄격모드 자동 전환
			 false = 엄격모드 사용 안함
			*/
			var useStrict = null;
			var page = $(this).data("page").split('#');
			var variables = $(this).data("var");
			// 가져온 page데이터 속성을 조합해 url인스턴스 생성
			var pagename = page.shift() || mw.config.get('wgPageName');
			var hash = page.join('#');
			var urlstr = window.location.origin;
			var url = new URL(urlstr);
			var searchParam = geturlSearch();
			// 엄격모드 사용여부 결정
			if(typeof useStrict !== "boolean") {
				useStrict = (searchParam.debug === "true" || searchParam.debug == 1)? true : false;
			}
			// 가져온 var속성으로 url 인스턴스의 searchparams를 씹고 뜯고 맛보고 즐기고
			var enabledKey = null;
			try {
				searchParam = new CGI2Parser({
					set: function(key, value) {
						this[key.trim()] = value.trim();
					},
					"default": function(key, value) {
						key = key.trim();
						this[key] = this[key] || value.trim();
					},
					del: function(key) {
						delete this[key.trim()];
					},
					restrict: function(key) {
						if(!enabledKey) enabledKey = [];
						enabledKey.push(key);
					}
				}).parse(searchParam, variables, useStrict);
				
				if(enabledKey) Object.keys(searchParam).forEach(function(key) {
					if(!enabledKey.includes(key)) delete searchParam[key];
				});
			} catch(error) {
				$(this).html($("<span class='error' />").text(error.message));
				return;
			}
			// url 경로 조정
			if(Object.keys(searchParam).length > 0) {
				url.pathname = "/w/index.php";
				searchParam.title = pagename;
			} else url.pathname = "/wiki/" + mw.util.wikiUrlencode(pagename);
			url.search = searchParamToString(searchParam);
			url.hash = mw.util.escapeIdForLink(hash);
			// cgilink에 a태그 추가
			var children = $(this).html();
			$(this).html("<a href='" + url.href.replace("'", "&#39;") + "'>" + children + "</a>");
		});
    }, function ( e ) {
        // Script failed. X is not avaiable
        mw.log.error( e.message ); // => "Failed to load script"
    } );
} );

/* [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문 끝 */