UseModWiki소스수정
-
- 1. 개요, 다운로드, 변경내역, 설정파일 등
-
- 2. 버그 또는 문제점 해결
-
- 3. 기능 추가 및 개선
-
- 4. 추가된 명령어, 플러그인, 매크로
-
-
- 4.1. 명령어
-
- 4.2. 플러그인
-
- 4.3. 매크로
-
-
- 4.3.1. 페이지를 출력할 때 치환되는 매크로
-
- 4.3.2. 페이지를 저장할 때 치환되는 매크로
-
- 4.3.3. /Template페이지를 사용하여 새 페이지를 작성할 때 치환되는 매크로
-
4.4. 사용자 정의 매크로
-
5. 개발자용이랄까,
-
- 6. 제거된 패치들
-
- 7. 적용안된 패치들
-
- 8. To Do or Bug Report
-
1. 개요, 다운로드, 변경내역, 설정파일 등
이 홈페이지에 사용되는 UseModWiki 는, [Luke's wiki]에서 Luke님이 한글 관련 패치를 하고,
PalmWiki_관련 에서 jmjeong 님이 다시 몇 가지를 수정한 것을 주인장이 다운받아서 사용하고 있다.
여기에 별도로, 위키위키를사용한홈페이지들마다 해당 홈페이지 운영자분들이 직접 고친 것들과, 주인장이 개인적인 필요에 의해서 고친 것들을 추가로 적용하였다.
2. 버그 또는 문제점 해결
- /search매크로출력 - fullsearch와 titlesearch 매크로의 출력방향을 세로로 변경
- /부등호표기 - 부등호 자체를 출력할 수 없던 문제 해결
- /사이트로고 - 사이트 로고가 출력되지 않던 문제 해결
- /toc매크로버그 - 동일한 영어단어로 끝나는 헤드라인들이 있을 경우 toc 매크로가 제대로 동작하지 않는 문제 해결
- /한글페이지인터위키 - 한글이 포함된 인터위키 문제 해결
- /history매크로버그 - 잘못된 동작을 바로잡음
- /user디렉토리 - data/user 디렉토리를 생성하지 못하는 문제 해결
- /페이지lock - 잠겨 있는 페이지를 삭제 또는 이름을 변경할 때 lock 을 처리하지 않는 문제 해결
- /사용자아이디 - 사용자 아이디의 첫글자를 무조건 대문자로 만듦
- /암호변경권한 - 다른 사용자의 암호를 변경할 수 있는 문제 해결
- /페이지cache - 페이지를 삭제 또는 이름을 변경할 때 cache 화일도 같이 처리
- /redirect와cache - REDIRECT 되는 페이지의 캐쉬 화일 문제 해결
- /미리보기의toc - 미리보기 화면에서 toc 매크로가 제대로 동작하지 않는 문제 해결
- /hr기호 - ==== 충돌문제 해결
- /상대경로URL - 상대경로로 적은 URL 처리
- /사용자암호보안 - 사용자 암호를 암호화하여 저장
- /올바르지않은아이디 - 환경설정에서 사용할 수 없는 아이디를 넣었을 때의 처리 문제 해결
- /로그아웃직후상단메뉴 - 로그아웃 직후에 상단메뉴에 여전히 로그아웃 링크가 남아있는 문제 해결
- /로그인실패후상단메뉴 - 로그인 실패시 상단 메뉴의 잘못된 출력 해결
- /이모티콘패턴 - 이모티콘 패턴 수정
- /FullLinkList - Full Link List 버그 수정
- /GetFullLinkList함수 - GetFullLinkList() 함수의 버그 수정
- /goto매크로버그 - goto 매크로 문제 해결
- /이중세로선 - 테이블이 아닌 곳에서의 || 처리 문제 해결
- /편집가이드 - 일부 매크로 사용시 페이지의 편집 시각이 제대로 나오지 않는 문제 해결
- /페이지이름변경 - 페이지 이름을 바꿀 때에 {{{ }}} 내부의 링크도 변경하는 문제를 해결
- /CreateDir함수 개선
- /아이콘디렉토리 를 별도의 환경변수로 지정
- /RcOldFile버그 수정
- /ISBN패턴 수정
- /EditConflict - 로그인 하지 않은 경우에 편집 충돌 인식 문제 해결
- /미리보기의하위페이지표시 문제 해결
- /검색후새페이지만들기
- /FireFox에서미리보기창글자깨짐
- /StoreRaw함수 문제 수정
- /하위페이지링크변경 문제 수정
- /쿠키인코딩
- /한글페이지리다이렉트 문제 (- CGI모듈 업데이트로 해결)
- /파라메터id충돌 - 사용자아이디를 나타내는 "id"와 페이지이름을 나타내는 "id"
- /타이틀텍스트깨짐
- /Anchor링크를 역링크와 페이지 이름 변경에서 처리하지 못하는 문제 해결
발견한 버그 or 해야 될 일:
- 편집 충돌이 날 때 diff 가 제대로 안 보임 (커멘트로 달린 게 나오지 않았음) - 어라, 재현이 안 된다
3. 기능 추가 및 개선
- /데이타디렉토리와설정화일의 위치를 변경
- /Index화면색인 - Index 의 페이지 목록을 제목의 첫글자별로 구분
- /사용자정의링크추가 - 상단 메뉴바에 사용자 정의 링크 추가
- /상위페이지아이콘 - 상단 메뉴에 상위페이지 아이콘 표시
- /입력한그대로출력 - 사용자입력을그대로출력하기와 Syntax Highlighting 을 위한 패치
- /이모티콘도움말 추가
- /번역화일사용 - UseModWiki번역화일 사용
- /잠긴페이지표시 - 페이지 목록에서 잠겨 있는 페이지 표시
- /잠김여부표시 - 페이지 하단에 수정금지 여부와 설정/해제 표시
- /그림URL표시 - 이미지에 마우스를 갖다 대면 URL 보임
- /편집취소 - 편집을 취소하고 원래 페이지로 돌아가는 링크 추가
- /수정불가메세지 - 페이지 수정 불가 메시지에, 사이트 제목 대신 페이지명이 나오도록 수정
- /단축키 - 탐색을 편하게 하기 위한 단축키 추가
- /편집필드에포커스 - 페이지 수정하기로 들어갔을 때 커서가 편집 영역에 놓이게 함
- /아이디입력필드에포커스 - 로그인 화면에서 커서가 아이디 입력 필드에 놓이게 함
- /페이지정보출력 - 페이지 정보 출력 양식 변경
- /Include매크로 의 출력을 html 변환
- /테이블 - 테이블 정렬 방식 개선 및 rowspan 기능 추가
- /빈페이지 - 존재하지 않는 페이지의 링크를 WikiX 스타일로 출력
- /GetFullLinkList함수개선 - GetFullLinkList 함수에 파라메터 사용을 가능하게 함
- /역링크 - 페이지 제목을 클릭했을때 진정한 의미의 역링크 출력
- /인터위키이미지 - InterWiki 로 된 이미지 화일 처리
- /mms프로토콜 인식
- /IMG태그 개선
- /GetFomrStart함수 개선 - form 을 생성할 때 form 의 이름을 부여할 수 있도록 함
- /이미지화일확장자를 대문자도 인식하도록 개선
- /자동로그인 여부를 선택할 수 있게 함
- /페이지삭제시keep화일보존 - 페이지를 삭제해도 keep 화일은 삭제하지 않게 함
- /북마크 - 최근변경내역에 특정한 시각의 북마크를 지정할 수 있게 함
- /최근변경내역테이블출력 - 최근변경내역 화면을 표 형식으로 출력함
- /로고페이지 - wiki.pl 을 파라메터 없이 불렀을 때 로고페이지를 embed 형식으로 출력
- /처리시간측정 - wiki.pl 이 수행하는데 걸리는 시간을 측정해서 출력
- /링크를별도의화일로관리 - 페이지에 들어 있는 링크 목록을 별도로 보관하게 함
- /diff출력개선 - 변경 사항의 출력 개선
- /스타일쉬트 - UseModWiki스타일쉬트 사용
- /편집도움말 을 별도의 화일로 분리
- /환경설정변수초기화 루틴을 wiki.pl 스크립트에서 제거
- /페이지소스보기 - view action 추가 및 잠긴 페이지의 소스를 볼 수 있게 함
- /페이지카운터 - 페이지 별로 조회수 출력
- /ConflictDiff - 편집 충돌 발생시 양쪽 내용을 diff 출력
- /화일관리용스크립트 - restore.pl 추가
- /일본서적링크 - 일본 서적에 대한 ISBN 링크를 별도의 사이트로 연결
- /ISBN링크 개선
- /화일업로드 기능 추가
- /UploadedFiles매크로 추가 - 업로드한 화일 관리
- /오에카키 기능 추가
- /관심있는페이지 기능 추가
- /페이지숨김 기능 추가
- /Template 기능 추가
- /PDA용클립 기능 추가 (삭제 고려 중)
- /SlashLinks 옵션 추가
- /RSS제공 기능 추가
- /LocalWiki 인터위키 추가
- /인터위키아이콘표시 추가
- /최근변경내역아이템갯수지정 인자 추가 - rss 에도 적용
- /변경사항요약 개선
- /JavaScript파일 별도로 사용
- /TrackBack 추가
- /아마존링크
- /매크로모듈화
- 메뉴바에 /유저이름링크 추가
- /WikiHeading 개선
- /LaTeX 추가
- /PlugIn 추가
- /단축키개선 - /단축키의 개선
- /액션모듈화
- /관리메뉴 개선
- /등록금지단어 필터링 기능
- /Include매크로모듈화
- /UserHeader
- /로긴한사용자에게수정권한주기
- /Comments와Thread매크로개선
- /매크로파라메터에이중대괄호허용
- /InterMap에주석지원
- /작성취소시확인
- /Comments와Thread매크로스팸막기
- /UTF-8트랙백받기
- /문자열일괄치환
- /스팸트랙백막기
- /위키스팸막기
- /RobotsMetaTag
- /UTF-8로인코딩된쿼리처리
- /SlashLinks처리
- /섹션단위수정
- /InterMap에인코딩지정
- /웹페이지링크쉽게올리기
- /검색결과본문내용출력
- /GotoBar개선
- /로그인후직전페이지로이동
- /바로가기폼 - 자동 완성 기능!
- /동적Template
- /스팸방지용필드
- /검색어정규표현식에러방지
- /제목검색
- /이전수정본화면에서더블클릭
- /Twitter연동
- /Anchor링크 개선
- /인코딩된페이지주소링크
4. 추가된 명령어, 플러그인, 매크로
- /EXTERN명령어 추가
- TEMPLATE명령어 - /동적Template
- /Gnuplot플러그인 추가
- /Vim플러그인 추가
- /Ditaa플러그인 추가
- /LaTeX플러그인 추가
4.3.1. 페이지를 출력할 때 치환되는 매크로
- /MySign매크로 추가
- /Calendar매크로 추가
- /WikiVersion매크로 추가
- /Vote매크로 추가
- /AllPagesTo매크로 추가
- /AllPagesFrom매크로 추가
- /OrphanedPages매크로 추가
- /WantedPages매크로 추가
- /IncludeNoToc매크로 추가
- /UserList매크로 추가
- /TitleIndex액션 추가
- /IncludeDay매크로 추가
- /사전매크로 추가
- /MostPopular매크로 추가
- /MyInterest매크로 추가
- /NoInclude태그 추가
- /IncludeDays매크로 추가
- /Memo매크로 추가
- /Footnote매크로 추가
- /Color매크로 추가
- /Img매크로 추가
- /TrackBackSent매크로 /TrackBackReceived매크로 추가
- /Comments매크로, Long Comments 매크로 추가
- /Thread매크로 추가
- /PrevUpNext매크로 추가
- /Index매크로 추가
- /blog매크로시리즈 추가
- /ShowInterMap매크로 추가
- /Rss매크로 추가
4.3.2. 페이지를 저장할 때 치환되는 매크로
/전처리매크로 - 페이지를 저장할 때 수행되는 매크로 도입
- /MySign전처리매크로 추가
전처리 매크로들은 페이지를 출력할 때 다시 한 번 치환되는 경우도 있다. (현재는 위의 매크로 전부가 그렇다)
4.3.3. /Template페이지를 사용하여 새 페이지를 작성할 때 치환되는 매크로
/TemplateMacro 추가 - 템플릿 페이지에서만 사용가능한 매크로
- <template_null>
- <template_pagename>, <template_mainpagename>, <template_subpagename>
- <template_date>
4.4. 사용자 정의 매크로
/사용자추가매크로
5. 개발자용이랄까,
/작업흐름
- /RemoveLink함수 추가
- /GetLastPrefix함수 추가
- /GetUniqueUploadFilename함수로 교체
- /LoginUser함수 추가
- /SearchTitle함수 추가
- /EncodeUrl함수와 DecodeUrl함수 추가
6. 제거된 패치들
예전에 적용했다가, 이런 저런 이유로 적용하지 않게 된 패치들
- /새창으로열기아이콘 - 외부 URL 옆에 "새 창으로 열기" 아이콘 표시
7. 적용안된 패치들
다음의 목록은, 다른 사용자들이 제안, 개발하여 올렸으나 이 홈페이지에는 적용되지 않은 것들입니다. 제 홈페이지에는 필요가 없다 싶어 적용하지 않은 것이니, 자기에게 필요한 사용자는 따로 적용하면 됩니다. (주인장이 따로 테스트해보지는 않았습니다. 각 패치의 작성자에게 문의하세요)
- /사용자정의CSS by Bab2
- /RemoteWiki by Bab2
- /도움말분리 by Bab2
- /스킨 by Bab2
- /마우스더블클릭 by Raymundo - 수정 권한이 없는 페이지에서는 더블 클릭을 작동하지 않게 함
8. To Do or Bug Report
- UTF-8이전작업
- UseModWiki 에 있는 버그들 수정
- 어떤 페이지의 하위페이지들을 삭제하거나 이름을 변경하여 다른 계층으로 옮겼을때, 하위 페이지들을 보관하던 디렉토리가 (화일이 하나도 없는 경우가 되어도) 삭제되지 않는다 - 그냥 두는 게 더 나으려나..
- cache 문제 - 이런, redirect 와의 충돌은 아주 사소한 문제였군.
- UseCache 옵션을 사용할 경우, 페이지 열람시 나오는 모든 출력을 통채로 html 화일로 저장해 두었다가 보여준다.
- 따라서 관리자 권한을 가지고 있는 사람이 먼저 열람을 해 버리면, 상단과 하단에 관리자에게만 보여져야 할 링크들이 고스란히 캐쉬 화일에 보관되어 버리고, 관리자가 아닌 사람에게도 그 화일이 그대로 출력된다. 관리자 권한이 없는 사람이 이런 링크를 클릭한다고 해도 동작하는 것은 아니지만, 매우 보기 안 좋다.
- 심지어 로그인, 로그아웃 링크도 제대로 바뀌지 않는다
- 현재 캐쉬를 사용하는 방법을 바꾸어야 할 듯
관련 링크:
주인장분류 위키위키분류