더시드엔진에서 넘어옴
1. 개요[편집]
2. 문법[편집]
자세한 내용은 알파위키:문법 도움말 문서 참고하십시오.
이 엔진에선 나무마크라는 자체적인 텍스트 문법을 사용한다.
3. 업데이트 내역[편집]
자세한 내용은 the seed/업데이트 문서 참고하십시오.
4. 추가 예정인 기능[편집]
- 사용자 문서의 하위문서 관련: 사용자 문서의 하위 문서가 최상위 문서로 옮겨지면 삭제하거나 옮기는 것이 불가능해지는데 이를 가능하게 해달라는 요청이다. 현재 하위 문서로 종속된 문서들은 휴지통화나 더미화가 가능하다.
5. 권한[편집]
자세한 내용은 the seed/권한 문서 참고하십시오.
6. 기능[편집]
자세한 내용은 알파위키:기능 도움말 문서 참고하십시오.
7. 장점[편집]
- 미디어위키에 비해 문법이 간단하다.
- 세밀하게 ACL을 조정할 수 있다.
- 세밀하게 권한을 부여할 수 있다. 대표적인 것이 토론 블라인드 권한, 토론 이동 권한, 토론 상태 변경 권한, 토론 주제 변경 권한이 분리되어 있다는 점.
- 미디어위키와 달리 토론이 기능적으로 구현되어 있다.
8. 문제점[편집]
- 문서 역사 말소가 어렵다.
- 시각 편집 기능이 없어 위키 활동을 위해서는 문법을 공부해야 한다.
- 문서 이동 시 이동 전 문서에 기록이 남지 않는다.[2]
- 되돌리기 기능은 있으나, 편집 취소 기능은 없다. 따라서 정상적인 기여분까지 되돌려지기도 한다. 그래도 이 부분은 더시드포럼에서 개발 중인 기능이라고 한다.
8.1. 모바일에서의 문제점[편집]
분명 <tablealign=right>이 표에 입력되어 있음에도 불구하고 모바일에서는 표 위치 설정 상관없이 무조건 왼쪽으로 설정된다.
9. 기타[편집]
- 4.12.0 이하 버전은 HTML과 자바스크립트를 알아보기 쉬웠는데, 현재는 페이지들의 HTML을 열어보면 data-v-(해시) 등의 속성으로 요소들을 구분하게 되어있어 일반적으로 알아보기 어렵게 되어있다.[4] 또한 자바스크립트도 전부 난독화되어있어 변수 및 함수 이름들이 16진수 숫자로 되어있고, 작동하지 않는 코드들이 삽입되어있고, 문자열도 인코딩되어있어 알아보기 매우 어렵게 되어있다. 거기에 더해서 모든 문자열들을 한 배열에 모아놓고 함수를 통해서 배열에 접근하는 등 매우 복잡하게 되어있다.
- 4.13.0부터 내부 구조가 대거 수정되었다. 4.15.0까지는 기존 방식의 스킨과의 호환성을 위해 해당 스킨을 적용하면 옛 인터페이스를 사용할 수 있었다. 나무위키는 2019년 말쯤에 4.16.0으로 업데이트되어 기존 레이아웃을 사용할 수 없었으나 더시드위키는 업데이트되지 않아 거기서 계속 사용할 수 있었다. 그러다가 2020년 3월 1일에 더시드위키도 4.16.0으로 업데이트되어서 기존 방식과 인터페이스는 더 이상 볼 수 없게 되었다.
- 리버티 스킨 기준으로 신 프론트엔드(버전 4.16.0) 이후로 스크립트의 총 크기가 거의 1MB[5]씩 되어서 모바일에서 데이터 네트워크를 사용하여 접속하는 경우 주의가 필요하다. 다행이도 지금은 크기가 좀 줄긴 했다.
- 2021년 1월 20일 부로 포럼이 리뉴얼되었다.
- Date 오브젝트를 그대로 대입해서인지 차단되었을 때 나오는 오류 메시지의 만료일의 형식이 "Sat Dec 27 2132 04:42:20 GMT+0900 (대한민국 표준시)"이고, 일과 달이 영어로 나온다.
- 2020년 중후반에 자동 로그인 후 로그아웃이 되지 않는 오류가 있었다. honoka 쿠키의 반환이 제대로 안 되어서 그런데, 값이 "[object Object]"로 잘못 반환되었다. 쿠키를 JSON(오브젝트)으로 관리하는 듯하다.[6]
- 기여 목록의 특성으로 미루어 보아 내부적으로 초 단위 유닉스 시간을 통해 관리하는 듯하다.
- 엔진 수정권을 주지 않았음에도 나무위키에만 있는 기능이 있는 것으로[7] 보아 플러그인이나 확장 프로그램 기능이 있는 듯하다.
- 엔진 내부 API는 암호화되어 있다. 아래 코드를 통해 요청을 위조하면 아래와 같은 결과가 나온다. (헤더 값은 2022/9/8 기준)
나무위키 기준으로 테스트되었다. 궁금하면 개발자 도구 콘솔창에 헤더값을 최신으로 변경하고 넣어보자.
코드 :const request=new XMLHttpRequest(); request.open('GET','i/p31G64YK67O5Sp8AE71TE4I5cJiNheF3UCsU5-VTieb',true); request.setRequestHeader('x-chika','2013d3f8f8c7b5598'); request.setRequestHeader('x-namuwiki-nonce','zStFHBzm88MnOdE1SkTNvA=='); request.setRequestHeader('x-riko','1fc95018783ef8be685241012a6efd64'); request.setRequestHeader('x-you','af3f5c4a4f54a47f42eda8c501fd03a5'); request.send(); request.onload=()=>{ console.log(request.status); console.log(request.response); }
결과 :٫�Ht����K��� B<�m'�'P����W����E�� q_�eg��K�R� ~�� �L��Z|"35�ϲ���T�%>��O>/ܠ!|팡n4��W�V%f��?�W���OX�fi��_��^���.7�Ih�K�|���Ij�|�5���[�,wHHֶ �~�dl�R5��(7��W���'��O�t%�U��b���^�CV�:3?�Jљ�E���ہ�(�6�T��r�m?�=� ��@KrJ������W�mbt�
[1] 나무위키의 경우 영어, 일본어로 미러링되는 웹사이트가 있으나, 자체 기능은 아닌 것으로 보인다.[2] 예를 들어, A라는 문서에서 B라는 문서로 문서를 이동할 때, B라는 문서로 문서를 이동하고 나면, A라는 문서에 들어가도 이동 내역이 표시되지 않는다.[3] 서실 openNAMU말고도 대체용으로 나온 엔진은 더 있지만 아직까지는 나무마크를 제대로 지원하는건 openNAMU.[4] 이는 Nuxt.js 라이브러리의 특징으로, 해당 라이브러리를 사용중임을 알 수 있다.[5] 알파위키에는 없는 senkawa 스킨은 약 0.7MB이다.[6] 그렇다면 오브젝트의 속성에 접근하는 것을 깜빡해서 발생했을 버그일 가능성이 높다.[7] 로그인 허용 차단 대역에서의 휴대폰 인증을 통한 회원 가입 기능 등