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

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

2023년 8월 12일 (토) 20:56 기준 최신판

/** [[틀:CGI2]] 변수 구문 해석기
 * 작성자: [[사용자:Gustmd7410]]
**/
var CGI2Parser = require('ext.gadget.CGI2-parser');

/** [[틀:CGI2|CGI2]]를 사용 가능하게 만드는 jquery 구문
 * 원작성자: [[사용자:BANIP|BANIP]]
 * 2차 작성자: [[사용자:Gustmd7410|Gustmd7410]]
**/
function useCGI2() {
	$(".cgilink").each(function() {
		// CGI2의 page속성과 data속성을 가져옴
		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 useCGI2.useStrict !== "boolean") {
			useCGI2.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, useCGI2.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 rel='nofollow' href='" + url.href.replace("'", "&#39;") + "'>" + children + "</a>");
	});
}
/*
 true = 항상 엄격모드
 null = 디버그 모드 (debug=true) 에 엄격모드 자동 전환
 false = 엄격모드 사용 안함
*/
useCGI2.useStrict = null;
$(useCGI2);

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