둘러보기 메뉴
검색
바뀐글
임의글
개인 도구
가입하기
로그인
도움말
도움말
질문게시판
자주 묻는 질문
커뮤니티
실시간 채팅방
가입인사게시판
자유게시판
뉴스게시판
제재안게시판
최근 토론
페미위키
공지사항
개선 요청
바뀐글
임의글
파일 올리기
다면 분류 목록
특수 문서 목록
사용자:낙엽1124/스크립트/한줄인용 정리 문서 원본 보기
이름공간
사용자 문서
토론
주시
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
사용자 기여
기록 목록
제재안
사용자 그룹을 보기
문서 정보
위키베이스 항목
행위
보기
읽기
원본 보기
역사 보기
←
사용자:낙엽1124/스크립트/한줄인용 정리
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요.
요청한 명령은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다:
사용자
,
Seeders
.
문서를 고치려면 이메일 인증 절차가 필요합니다.
사용자 환경 설정
에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다.
문서의 원본을 보거나 복사할 수 있습니다.
브라우저에서 [[페:한줄인용]]을 연 후 디버그 콘솔창에 붙여넣으면 바로 저장까지 되는 스크립트입니다. ES6 문법을 사용하고 있어 미디어위키 소도구나 사용자 스크립트로는 아직 사용할 수 없습니다([https://phabricator.wikimedia.org/T75714 <code>T75714</code>]). * 문단 제목의 링크가 넘겨주기라면 수정합니다. * 문단 순서를 수정합니다. <syntaxhighlight lang="javascript" line="1" style="max-height: 50vh; overflow-y: scroll;"> let helper = async () => { const api = new mw.Api(); const titles = Array.from(document.querySelectorAll(".mw-redirect")) .map(node => node.innerText) .join("|"); const redirectionMap = {}; let data = await api.get({ action: "query", prop: "links", titles: titles }); let redirects = data.query.pages; let plcontinue = data.continue && data.continue.plcontinue; for (const k in redirects) { if (redirects[k].links === undefined) { break; } redirectionMap[redirects[k].title] = new mw.Title( redirects[k].links[0].title, redirects[k].links[0].ns ).getPrefixedText(); } while (plcontinue) { data = await api.get({ action: "query", prop: "links", titles: titles, plcontinue: plcontinue }); redirects = data.query.pages; plcontinue = data.continue && data.continue.plcontinue; for (const k in redirects) { if (redirects[k].links === undefined) { break; } redirectionMap[redirects[k].title] = new mw.Title( redirects[k].links[0].title, redirects[k].links[0].ns ).getPrefixedText(); } } let wikitext = (await api.get({ action: "parse", page: "페:한줄인용", prop: "wikitext" })).parse.wikitext["*"]; const sectionRegExp = /^=+\s*\[*([^=\]\[]+)\]*\s*=+$\n+((?:^\*.+\n)+)/gm; const sections = []; let match; while ((match = sectionRegExp.exec(wikitext)) != null) { const keys = Object.keys(redirectionMap); let i = keys.indexOf(match[1]); let title = i >= 0 ? redirectionMap[keys[i]] : match[1]; sections.push([title, match[2]]); } sections.sort((a, b) => { return a[0].replace(" ", "").localeCompare(b[0].replace(" ", ""), "ko"); }); wikitext = wikitext.replace( /^=(.+\n+)+/m, sections .map(s => { return `== [[${s[0]}]] ==\n${s[1]}`; }) .join("\n") ); api.edit("페:한줄인용", () => { return { summary: "정렬 및 넘겨주기 링크 수정([[특수:넘겨주기/page/36286|스크립트]] 사용)", text: wikitext }; }); }; helper(); </syntaxhighlight>
사용자:낙엽1124/스크립트/한줄인용 정리
문서로 돌아갑니다.
다른 언어