Commit ab253408 authored by iTsurea's avatar iTsurea

아아아아

parents
# Created by https://www.gitignore.io/api/jetbrains
### JetBrains ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
*.iml
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# .idea/shelf
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
\ No newline at end of file
<?php
if ( function_exists( 'wfLoadSkin' ) ) {
wfLoadSkin( 'Liberty' );
// Keep i18n globals so mergeMessageFileList.php doesn't break
$wgMessagesDirs['Liberty'] = __DIR__ . '/i18n';
/* wfWarn(
'Deprecated PHP entry point used for MonoBook skin. Please use wfLoadSkin instead, ' .
'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
); */
return true;
} else {
die( 'This version of the Liberty skin requires MediaWiki 1.25+' );
}
\ No newline at end of file
This diff is collapsed.
리브레 위키의 새로운 스킨
위키엔진 리버티의 기본 레이아웃이 될 예정
\ No newline at end of file
<?php
class SkinLiberty extends SkinTemplate {
public $skinname = 'liberty';
public $stylename = 'Liberty';
public $template = 'LibertyTemplate';
public function initPage( OutputPage $out ) {
parent::initPage( $out );
$out->addMeta( 'viewport', 'width=device-width, initial-scale=1, maximum-scale=1' );
$out->addModuleScripts( array(
'skins.liberty.bootstrap'
) );
$out->addModuleScripts( array(
'skins.liberty.layoutjs'
) );
}
function setupSkinUserCss( OutputPage $out ) {
parent::setupSkinUserCss( $out );
$out->addHeadItem( 'font-awesome', '<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" />' );
$out->addModuleStyles( array(
'skins.liberty.styles'
) );
}
function addToBodyAttributes( $out, &$bodyAttrs ) {
$bodyAttrs['class'] .= " Liberty width-size";
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* 부트스트랩 기본 폰트가 16이라 기본폰트 15인 리버티스킨은 bootstrap 반응형 부분을 쓰기가 힘듬
그래서 그냥 px로 때려박는걸로
*/
/* Max-width: 1023 데스크탑 마지노선 */
@media (max-width: 1023px) {
.Liberty .nav-wrapper .navbar {
padding: 0 0.5rem;
}
.Liberty .nav-wrapper .navbar .form-inline {
float: left;
padding: 0;
padding-top: 0.25rem;
padding-bottom: 0.5rem;
}
.Liberty .nav-wrapper .navbar .form-inline .input-group {
display: table;
width: 100%;
}
.Liberty .nav-wrapper .navbar .form-inline .input-group .form-control {
width: 100%;
}
.Liberty .nav-wrapper .navbar .form-inline .input-group .input-group-btn {
width: 1%;
}
.Liberty .content-wrapper {
margin-top: 5.89rem;
}
.Liberty .content-wrapper .liberty-sidebar {
display: none;
}
.Liberty .content-wrapper .liberty-content {
margin-right: auto;
}
.Liberty .content-wrapper .liberty-content .liberty-content-header .content-tools {
float: none;
text-align: right;
border-bottom: 1px solid #e1e8ed;
padding: 0.5rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-header .title {
padding: 0.5rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main {
padding: 0.5rem;
}
.Liberty .content-wrapper .liberty-footer {
padding: 0.5rem;
}
}
/* Max-width: 798 메뉴 마지노선 테블릿 모드로 전환 시작하기위한 부분 */
@media (max-width: 798px) {
.Liberty .nav-wrapper .navbar .navbar-nav .nav-item .nav-link .hide-title {
display: none;
}
}
/* Max-width: 520px 테블릿 이하 시작 부분 */
@media (max-width: 520px) {
.Liberty .nav-wrapper .navbar .navbar-nav .nav-item .nav-link {
padding: 0.7rem 0.3rem;
}
.Liberty .nav-wrapper .navbar .navbar-login .view-logout {
display: block;
}
.Liberty .nav-wrapper .navbar .navbar-login .hide-logout {
display: none;
}
}
/* Max-width: 397px 대형폰 이하 시작 부분 */
@media (max-width: 397px) {
.Liberty .nav-wrapper .navbar .navbar-brand {
width: 5rem;
background: transparent url(//librewiki.net/skins/Liberty/css/../img/logo.png?2015-12-18T21:00:00Z) no-repeat scroll left center/auto 1.5rem
}
.Liberty .nav-wrapper .navbar .navbar-nav .nav-item .nav-link::after {
display: none;
}
.Liberty .nav-wrapper .navbar .navbar-nav .nav-item .nav-link {
padding: 0.7rem 0.2rem;
}
.Liberty .nav-wrapper .navbar .navbar-login {
padding-left: 0.4rem;
}
.Liberty .nav-wrapper .navbar .navbar-notification {
padding-left: 0.4rem;
}
.Liberty .nav-wrapper .navbar .form-inline {
padding-top: 0.04rem;
}
}
/* Max-width: 34rem; */
@media (max-width: 34rem) {
.Liberty .login-modal .modal-sm {
width: auto;
}
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 100;
src: local('Noto Sans Thin'), local('NotoSans-Thin'),local('Noto Sans CJK KR Thin'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-Thin-Hestia.woff) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-Thin-Hestia.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 300;
src: local('Noto Sans Light'), local('NotoSans-Light'),local('Noto Sans CJK KR Light'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-Light-Hestia.eot) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-Light-Hestia.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 350;
src: local('Noto Sans DemiLight'), local('NotoSans-DemiLight'), local('Noto Sans CJK KR DemiLight'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-DemiLight-Hestia.eot) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-DemiLight-Hestia.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 400;
src: local('Noto Sans Regular'), local('NotoSans-Regular'),local('Noto Sans CJK KR Regular'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-Regular-Hestia.eot) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-Regular-Hestia.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 500;
src: local('Noto Sans Medium'), local('NotoSans-Medium'),local('Noto Sans CJK KR Medium'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-Medium-Hestia.eot) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/otf/NotoSansKR-Medium-Hestia.otf) format('otf'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-Medium-Hestia.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 700;
src: local('Noto Sans Bold'), local('NotoSans-Bold'),local('Noto Sans CJK KR Bold'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-Bold-Hestia.eot) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/otf/NotoSansKR-Bold-Hestia.otf) format('otf'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-Bold-Hestia.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans Korean';
font-style: normal;
font-weight: 900;
src: local('Noto Sans Black'), local('NotoSans-Black'),local('Noto Sans CJK KR Black'),
url(https://librewiki.net/skins/Liberty/fonts/eot/NotoSansKR-Black-Hestia.eot) format('eot'),
url(https://librewiki.net/skins/Liberty/fonts/otf/NotoSansKR-Black-Hestia.otf) format('otf'),
url(https://librewiki.net/skins/Liberty/fonts/woff/NotoSansKR-Black-Hestia.woff) format('woff');
}
/* 목차 관련 */
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc {
border-bottom-right-radius: 0.35rem;
border-bottom-left-radius: 0.35rem;
display: inline-block;
font-size: 0.9rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc #toctitle {
background-color: #f5f8fa;
border: 1px solid #e1e8ed;
border-top-right-radius: 0.35rem;
border-top-left-radius: 0.35rem;
padding: 0.6rem 1.2rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc #toctitle h2 {
display: inline;
font-size: 1.2rem;
font-weight: bold;
border: none;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc #toctitle .toctoggle {
display: none;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc ul,
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc li {
background-color: #fff;
list-style-type: none;
list-style-image: none;
lien-height: 2rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc>ul {
margin: 0 !important;
padding: 0.6rem 1.2rem;
border: 1px solid #e1e8ed;
border-top: none;
border-bottom-right-radius: 0.35rem;
border-bottom-left-radius: 0.35rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc>ul>li ul {
margin-left: 1.5rem !important;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc .toctext {
color: #373a3c;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc a:hover {
text-decoration: none;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .toc a>.tocnumber:hover {
text-decoration: underline;
}
/* 목차 관련 End */
/* 제목 관련 */
.Liberty .content-wrapper .liberty-content .liberty-content-main h1,
.Liberty .content-wrapper .liberty-content .liberty-content-main h2,
.Liberty .content-wrapper .liberty-content .liberty-content-main h3,
.Liberty .content-wrapper .liberty-content .liberty-content-main h4,
.Liberty .content-wrapper .liberty-content .liberty-content-main h5,
.Liberty .content-wrapper .liberty-content .liberty-content-main h6 {
margin-top: 1.5rem;
border-bottom: 1px solid #e1e8ed;
margin-bottom: 0.6rem;
padding-bottom: 0.6rem;
overflow: hidden;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main .mw-headline-number {
color: #4188f1;
}
/* 제목 관련 End */
/* 본문 관련 */
.Liberty .content-wrapper .liberty-content .liberty-content-main ul {
margin: 0.3em 0 0 1.6em;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox {
width: auto;
background: #fff;
border: none;
border-radius: 0.35rem;
border-collapse: separate;
border-spacing: 0 ;
float: none;
margin: 0.8rem 0;
padding: 0;
color: #373a3c;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table caption {
font-size: 1.2rem;
padding: 0.2rem 0;
font-weight: bold;
text-align: center;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table>tr>th,
.Liberty .content-wrapper .liberty-content .liberty-content-main table>tr>td,
.Liberty .content-wrapper .liberty-content .liberty-content-main table>*>tr>th,
.Liberty .content-wrapper .liberty-content .liberty-content-main table>*>tr>td {
border: none;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr>*,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr>* {
border-top: 1px solid #e1e8ed !important;
border-left: 1px solid #e1e8ed !important;
padding: 0.25rem 0.5rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr>th,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr>th {
background-color: #f5f8fa;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr:last-child th,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr:last-child td,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr:last-child th,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr:last-child td {
border-top: none;
border-bottom: 1px solid #e1e8ed;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr>*:last-child,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr>*:last-child {
border-right: 1px solid #e1e8ed;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr:first-child *:first-child,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr:first-child *:first-child {
border-top-left-radius: 0.35rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr:first-child *:last-child,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr:first-child *:last-child {
border-top-right-radius: 0.35rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr:last-child *:first-child,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr:last-child *:first-child {
border-bottom-left-radius: 0.35rem;
}
.Liberty .content-wrapper .liberty-content .liberty-content-main table.wikitable tr:last-child *:last-child,
.Liberty .content-wrapper .liberty-content .liberty-content-main table.infobox tr:last-child *:last-child {
border-bottom-right-radius: 0.35rem;
}
/* 본문 관련 */
/* 스페셜 페이지 관련 */
.Liberty .content-wrapper .liberty-content .liberty-content-main .mw-specialpages-table {
margin-top: 0;
}
/* 스페셜 페이지 관련 End */
/* 검색결과 관련 */
.suggestions-results {
border-color: #e1e8ed !important;
padding: 0.5rem !important;
border-top-right-radius: 0.35rem;
border-top-left-radius: 0.35rem;
}
.suggestions-special {
border-color: #e1e8ed !important;
padding: 0.5rem !important;
border-bottom-right-radius: 0.35rem;
border-bottom-left-radius: 0.35rem;
background-color: #f5f8fa !important;
}
/* 검색결과 관련 End */
\ No newline at end of file
a {
color: #337ab7;
}
a.new {
color: #b73333;
}
a:hover, a:focus {
color: #23527c;
text-decoration: underline;
transition: 0.3s;
}
a.new:hover, a.new:focus {
color: #7c2323;
text-decoration: underline;
transition: 0.3s;
}
\ No newline at end of file
{
"@metadata": {
"authors": [
"이츠레아"
]
},
"skinname-liberty": "리버티",
"liberty-desc": "리브레 위키의 새로운 스킨 // 사용하지마세요!!!",
"liberty.css": "/* 이 CSS 설정은 리버티 스킨을 사용하는 사용자에게 적용됩니다 */",
"liberty.js": "/* 이 자바스크립트 설정은 리버티 스킨을 사용하는 사용자에게 적용됩니다 */"
}
/* 목차리스트를 고정해서 볼 수 있는 버튼을 만들어 줍니다.
author: Damezuma
*/
if(mw.config.get("skin")=="liberty"){
var a = "<button type=\"button\" class=\"btn btn-default\" aria-label=\"Left Align\"> <span class=\"fa fa-list\" aria-hidden=\"true\"></span></button>";
var indexButton = document.createElement("button");
indexButton.type = "button";
indexButton.className = "btn btn-default";
indexButton.innerHTML = "<span class=\"fa fa-list\" aria-hidden=\"true\"></span>";
indexButton.style.position = "fixed";
indexButton.style.top = "48px";
indexButton.style.left = "0px";
window.damezuma = {doc:null};
$(indexButton).click(function(){
if(window.damezuma.doc == null){
window.damezuma.doc = $("#toc").clone();
$(document.body).append(window.damezuma.doc);
$(window.damezuma.doc).css({
"position":"fixed",
"top":44,
"left":0,
"background-color":"#333",
"color":"#FFF",
"padding":"16px",
"bottom":0,
"overflow-y":"scroll",
"z-index":3000
});
window.damezuma.doc[0].id = "fixed-toc";
$("#fixed-toc #togglelink").click(function(){
$(window.damezuma.doc).remove();
window.damezuma.doc = null;
return false;
});
}
});
$(document.body).append(indexButton);
}
\ No newline at end of file
/* 드롭다운 페이드인 */
$('.dropdown').on('show.bs.dropdown', function(e) {
$(this).find('.dropdown-menu').first().stop(true, true).fadeToggle(200);
});
$('.dropdown').on('hide.bs.dropdown', function(e) {
$(this).find('.dropdown-menu').first().stop(true, true).fadeToggle(200);
});
$('.btn-group').on('show.bs.dropdown', function(e) {
$(this).find('.dropdown-menu').first().stop(true, true).fadeToggle(200);
});
$('.btn-group').on('hide.bs.dropdown', function(e) {
$(this).find('.dropdown-menu').first().stop(true, true).fadeToggle(200);
});
/* 드롭다운 페이드인 End */
/* 모달 포커스잡기 */
$('#login-modal').on('shown.bs.modal', function () {
$('#wpName1').focus();
})
/* 모달 포커스잡기 End */
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
var Base64 = {
// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
// public method for encoding
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = Base64._utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
}
return output;
},
// public method for decoding
decode : function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = this._keyStr.indexOf(input.charAt(i++));
enc2 = this._keyStr.indexOf(input.charAt(i++));
enc3 = this._keyStr.indexOf(input.charAt(i++));
enc4 = this._keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = Base64._utf8_decode(output);
return output;
},
// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);