| r194 | ||
|---|---|---|
| r167 | 1 | [[분류:알파위키의 기능]][[분류:the seed(위키 엔진)]] |
| r191 (삭제된 사용자) | 2 | [include(틀:회원 수정)] |
| r17 | 3 | [include(틀:알파위키)] |
| r182 (삭제된 사용자) | 4 | [include(틀:위키 엔진)] |
| r160 | 5 | ||<-2><table align=right><table width=400><tablebordercolor=#abcdef><tablebgcolor=#fff,#abcdef> {{{#!wiki style="margin: -5px -10px; padding: 8px 10px; background-image: linear-gradient(to right, #abcdef, #abcdef)" |
| 6 | {{{#fff '''{{{+2 the seed}}}'''}}}}}} || | |
| r188 (삭제된 사용자) | 7 | ||<colbgcolor=#abcdef><colcolor=#fff> '''프로그래밍 언어''' ||<colbgcolor=#fff,#000>node.js || |
| r160 | 8 | || '''출시일''' ||2015년 4월 18일 || |
| 9 | || '''공개 여부''' ||비공개 || | |
| 10 | || '''개발자''' ||[[namu]] || | |
| r166 | 11 | || '''언어''' ||[[한국어]][* 나무위키의 경우 영어, 일본어로 미러링되는 웹사이트가 있으나, 자체 기능은 아닌 것으로 보인다.]|| |
| r193 | 12 | || '''최신 버전''' ||v4.23.0 (60a5ee8 / dfe3613) || |
| r160 | 13 | || '''사용 위키''' ||[[https://namu.wiki|나무위키]] |
| 14 | [[https://www.alphawiki.org|알파위키]] | |
| r192 | 15 | [[https://theseed.io|더시드위키]] |
| 16 | --[[https://r18.wiki|R18위키]]-- || | |
| 17 | || '''피드백 사이트''' ||[[https://feedback.theseed.io]] || | |
| r4 | 18 | [목차] |
| r165 | 19 | [clearfix] |
| r5 | 20 | == 개요 == |
| r172 (삭제된 사용자) | 21 | [[나무위키]]와 [[알파위키]], [[더시드위키]]에서 사용하는 [[위키 엔진]]으로 [[namu]], [[PPPP]], [[kasio]]가 개발했다. the seed라는 이름은 개발 단계에서 통용되는 코드네임이었으나 나무위키의 엔진을 지칭하는 공식적인 이름이 된 것으로 보인다.([[https://namu.wiki/License|#]]) 본 엔진은 Node.js의 Express.js 프레임워크를 사용했다. |
| r135 (삭제된 사용자) | 22 | == [[알파위키:문법 도움말|문법]] == |
| 23 | [include(틀:상세 내용, 문서명=알파위키:문법 도움말)] | |
| r185 (삭제된 사용자) | 24 | [[알파위키]]에선 '''알파마크'''라는 자체적인 텍스트 문법을 사용한다. 나무위키, 더시드위키에서는 각각 나무마크, 더시드마크를 사용한다. --근데 사실 이름만 다르지 다 똑같다. 당연하지 똑같은 엔진인데-- |
| r135 (삭제된 사용자) | 25 | == [[the seed/업데이트|업데이트 내역]] == |
| 26 | [include(틀:상세 내용, 문서명=the seed/업데이트)] | |
| 27 | == 추가 예정인 기능 == | |
| 28 | * [[https://feedback.theseed.io/posts/2/alrim-siseutem|알림 시스템]] | |
| 29 | * [[https://feedback.theseed.io/posts/6/namuwiki-baegyeong-tumyeongdo-seoljeong|나무위키 배경 투명도 설정]] | |
| r173 | 30 | * [[https://feedback.theseed.io/posts/23/samun-hawimunseo-gwanryeon|사용자 문서의 하위문서 관련]]: 사용자 문서의 하위 문서가 최상위 문서로 옮겨지면 삭제하거나 옮기는 것이 불가능해지는데 이를 가능하게 해달라는 요청이다. 현재 하위 문서로 종속된 문서들은 휴지통화나 더미화가 가능하다. |
| r135 (삭제된 사용자) | 31 | * [[https://feedback.theseed.io/posts/24/torongwanryeon|숨겨진 댓글 표시 설정]] |
| 32 | * [[https://feedback.theseed.io/posts/8/cadannaeyeog-gwanryeon|차단내역 수정 기능]] | |
| 33 | * [[https://feedback.theseed.io/posts/1/pyeonjib-pilteo|편집 필터]] | |
| 34 | * [[https://feedback.theseed.io/posts/40/samun-pyeonjibyoceong-isseul-ddae-alrimi-ddeuge-hamyeon-johgessseubnida|사용자 문서 편집 요청 알림]] | |
| r178 (삭제된 사용자) | 35 | * [[https://feedback.theseed.io/posts/485/i-ribijeoneuro-doedolrigie-bigyo-miribogi-taeb-cuga|'이 리비전으로 되돌리기'에 비교/미리보기 탭 추가]] |
| 36 | * [[https://feedback.theseed.io/posts/386/pyeonjib-yoceong-gineung-cugabarabnida|문서 생성 시 편집 요청이 가능하게 수정]] | |
| 37 | * [[https://feedback.theseed.io/posts/255/coegeun-byeongyeongnaeyeoge-acl-jojeong-taeb-cuga-geonyi|최근 변경내역에 ACL 조정 탭 추가]] | |
| 38 | * [[https://feedback.theseed.io/posts/24/torongwanryeon|토론 스레드에서 숨겨진 댓글을 기본적으로 표시할 수 있는 설정 추가]] | |
| r144 (삭제된 사용자) | 39 | == 권한 == |
| r177 (삭제된 사용자) | 40 | [include(틀:상세 내용, 문서명=the seed/권한)] |
| r186 (삭제된 사용자) | 41 | == 기능 == |
| 42 | [include(틀:상세 내용, 문서명=알파위키:기능 도움말)] | |
| r176 (삭제된 사용자) | 43 | == 장점 == |
| r181 (삭제된 사용자) | 44 | * 미디어위키에 비해 문법이 간단하다. |
| r176 (삭제된 사용자) | 45 | * 세밀하게 ACL을 조정할 수 있다. |
| 46 | * 세밀하게 권한을 부여할 수 있다. 대표적인 것이 토론 블라인드 권한, 토론 이동 권한, 토론 상태 변경 권한, 토론 주제 변경 권한이 분리되어 있다는 점. | |
| r181 (삭제된 사용자) | 47 | * 미디어위키와 달리 토론이 기능적으로 구현되어 있다. |
| r146 | 48 | == 문제점 == |
| r180 (삭제된 사용자) | 49 | * 문서 역사 말소가 어렵다. 편집 요약은 문서가 휴지통화되어도 기여내역에 표시되므로 편집 요약에 민감한 정보가 들어가면 큰일난다. |
| r181 (삭제된 사용자) | 50 | * 시각 편집 기능이 없어 위키 활동을 위해서는 문법을 공부해야 한다. |
| 51 | * 문서 이동 시 이동 전 문서에 기록이 남지 않는다.[* 예를 들어, '''A'''라는 문서에서 '''B'''라는 문서로 문서를 이동할 때, '''B'''라는 문서로 문서를 이동하고 나면, '''A'''라는 문서에 들어가도 이동 내역이 표시되지 않는다.] | |
| r194 | 52 | * 되돌리기 기능은 있으나, 편집 취소 기능은 없다. 따라서 정상적인 기여분까지 되돌려지기도 한다.[* 그래도 이 부분은 더시드포럼에서 개발 중인 기능이라고 한다.] |
| r146 | 53 | === 모바일에서의 문제점 === |
| r147 | 54 | [[파일:모바일 표.jpg|width=50%]] |
| r179 | 55 | 분명 <tablealign=right>이 표에 입력되어 있음에도 불구하고 모바일에서는 표 위치 설정 상관없이 무조건 왼쪽으로 설정된다. |
| r135 (삭제된 사용자) | 56 | == 기타 == |
| r179 | 57 | * 기본적으로 비공개 엔진이기 때문에 일반인들이 구할 수 없다. 대체용으로 나온 게 [[openNAMU|오픈나무]]이다.[* 서실 [[openNAMU]]말고도 대체용으로 나온 엔진은 더 있지만 아직까지는 [[나무마크]]를 제대로 지원하는건 [[openNAMU]].] |
| 58 | * 4.12.0 이하 버전은 HTML과 자바스크립트를 알아보기 쉬웠는데, 현재는 페이지들의 HTML을 열어보면 data-v-(해시) 등의 속성으로 요소들을 구분하게 되어있어 일반적으로 알아보기 어렵게 되어있다.[* 이는 Nuxt.js 라이브러리의 특징으로, 해당 라이브러리를 사용중임을 알 수 있다.] 또한 자바스크립트도 전부 난독화되어있어 변수 및 함수 이름들이 16진수 숫자로 되어있고, 작동하지 않는 코드들이 삽입되어있고, 문자열도 인코딩되어있어 알아보기 매우 어렵게 되어있다. 거기에 더해서 모든 문자열들을 한 배열에 모아놓고 함수를 통해서 배열에 접근하는 등 매우 복잡하게 되어있다. | |
| r151 | 59 | * 4.13.0부터 내부 구조가 대거 수정되었다. 4.15.0까지는 기존 방식의 스킨과의 호환성을 위해 해당 스킨을 적용하면 옛 인터페이스를 사용할 수 있었다. 나무위키는 2019년 말쯤에 4.16.0으로 업데이트되어 기존 레이아웃을 사용할 수 없었으나 더시드위키는 업데이트되지 않아 거기서 계속 사용할 수 있었다. 그러다가 2020년 3월 1일에 더시드위키도 4.16.0으로 업데이트되어서 기존 방식과 인터페이스는 더 이상 볼 수 없게 되었다. |
| r179 | 60 | * 리버티 스킨 기준으로 신 프론트엔드(버전 4.16.0) 이후로 스크립트의 총 크기가 거의 1MB[* 알파위키에는 없는 senkawa 스킨은 약 0.7MB이다.]씩 되어서 모바일에서 데이터 네트워크를 사용하여 접속하는 경우 주의가 필요하다. 다행이도 지금은 크기가 좀 줄긴 했다. |
| r151 | 61 | * 2021년 1월 20일 부로 포럼이 리뉴얼되었다. |
| r179 | 62 | * Date 오브젝트를 그대로 대입해서인지 차단되었을 때 나오는 오류 메시지의 만료일의 형식이 "Sat Dec 27 2132 04:42:20 GMT+0900 (대한민국 표준시)"이고, 일과 달이 영어로 나온다. |
| r151 | 63 | * 2020년 중후반에 자동 로그인 후 로그아웃이 되지 않는 오류가 있었다. honoka 쿠키의 반환이 제대로 안 되어서 그런데, 값이 "[object Object]"로 잘못 반환되었다. 쿠키를 JSON(오브젝트)으로 관리하는 듯하다.[* 그렇다면 오브젝트의 속성에 접근하는 것을 깜빡해서 발생했을 버그일 가능성이 높다.] |
| 64 | * 기여 목록의 특성으로 미루어 보아 내부적으로 초 단위 유닉스 시간을 통해 관리하는 듯하다. | |
| r159 | 65 | * 이전에는 [[Tor(익명 네트워크)|Tor]] 네트워크 위에서 "더시드"라는 이름의 딥 웹 위키를 [[namu]]가 운영했다. 주소는 .com이나 .wiki가 아니라 .onion으로 끝난다. |
| r169 | 66 | * 엔진 수정권을 주지 않았음에도 나무위키에'''만''' 있는 기능이 있는 것으로[* 로그인 허용 차단 대역에서의 휴대폰 인증을 통한 회원 가입 기능 등] 보아 플러그인이나 확장 프로그램 기능이 있는 듯하다. |
| r151 | 67 | * 엔진 내부 API는 암호화되어 있다. 아래 코드를 통해 요청을 위조하면 아래와 같은 결과가 나온다. (헤더 값은 2022/9/8 기준) |
| 68 | 나무위키 기준으로 테스트되었다. 궁금하면 개발자 도구 콘솔창에 __헤더값을 최신으로 변경하고__ 넣어보자. | |
| 69 | 코드 : | |
| 70 | {{{#!syntax javascript | |
| 71 | const request=new XMLHttpRequest(); | |
| 72 | request.open('GET','i/p31G64YK67O5Sp8AE71TE4I5cJiNheF3UCsU5-VTieb',true); | |
| 73 | request.setRequestHeader('x-chika','2013d3f8f8c7b5598'); | |
| 74 | request.setRequestHeader('x-namuwiki-nonce','zStFHBzm88MnOdE1SkTNvA=='); | |
| 75 | request.setRequestHeader('x-riko','1fc95018783ef8be685241012a6efd64'); | |
| 76 | request.setRequestHeader('x-you','af3f5c4a4f54a47f42eda8c501fd03a5'); | |
| 77 | request.send(); | |
| 78 | request.onload=()=>{ | |
| 79 | console.log(request.status); | |
| 80 | console.log(request.response); | |
| 81 | } | |
| 82 | }}} | |
| 83 | 결과 : {{{٫�Ht����K��� B<�m'�'P����W����E�� q_�eg��K�R� | |
| 84 | ~�� | |
| 85 | �L��Z|"35�ϲ���T�%>��O>/ܠ!|팡n4��W�V%f��?�W���OX�fi��_��^���.7�Ih�K�|���Ij�|�5���[�,wHHֶ | |
| 86 | �~�dl�R5��(7��W���'��O�t%�U��b���^�CV�:3?�Jљ�E���ہ�(�6�T��r�m?�=� ��@KrJ������W�mbt� | |
| 87 | }}} | |
| r170 | 88 | --굳이 [[AJAX]]로 한건 코딩 실력이 딸려서 그런 것 이므로 더 효율적인 것이 있으면 [[추가 바람]]-- |