The TODO list for MoinMoin is on MoinMoinTodo. You are encouraged to add wishes and ideas to MoinMoinIdeas.
http://moinmoin.wikiwikiweb.de/
Links:
BioinfoWiki uses it (MoinMoin 1.0 --> NoSmokeMoinMoin --> NoSmokeMoinMoinBsn --> MoinMoinOnScgi --> MoinMoin 1.3.4)
MoinMoin 1.3 new features
1.3버젼으로 들어오면서, 많은 부분이 바뀌게되었다. 관리자 측면에서의 변화들
각 페이지들의 저장을 파일이 아닌 디렉토리에 한다. 해당 디렉토리안에 첨부파일 및 변화로그등이 기록된다. See HelpOnActions/AttachFile
- 페이지는 시스템 페이지와 일반 페이지로 나뉜다. 같은이름일 경우 일반페이지가 사용된다.
성능향상을 위한 다양한 서버실행옵션이 있다. (Standalone, FastCgi, ModPython, Twisted)
- config에 farm이라는 개념이 도입되어, multi wiki를 운영하기 용이하다.
- 테마 지원
위키별 페이지별 사용자별 다양한 편집권한. SeeAlso HelpOnAccessControlLists
- 다국어지원 강화
사용자측면에서의 변화들
- 새로운 기능들
- 매크로의 변화
SignMacro --> $ S I G $ HelpOnPageCreation
HierarchicalWikiWiki의 링크형식 변화
- 다양하고, 개선된 action들.
그외의 추가적인 변화
사용 팁
NoSmokeMoinMoin을 모인모인1.3으로 옮기기
스크립트를 이용한 페이지저장방식변경 ([EncodingConverter.py]이용)
1 class WikiConverter:
2 def __init__(self, idir, odir):
3 os.mkdir(odir)
4 errlog = file('errlog','w')
5 ec = EcConverter('euc-kr','utf-8')
6 for fname in os.listdir(idir):
7 print fname+'...'
8 new_fname = fname.replace('_2f','(2f)')
9 new_fname = new_fname.replace('_2e','(2e)')
10 new_fname = new_fname.replace('_2d','(2d)')
11 try:
12 converted = ec.convert(
13 file(os.path.join(idir, fname)).read())
14 except UnicodeDecodeError, e:
15 errlog.write('%s : %s\n'%(fname, e))
16 continue
17 os.makedirs(os.path.join(odir, new_fname, 'revisions'))
18 ofile = file(os.path.join(
19 odir, new_fname, 'revisions', '00000001'),'w')
20 ofile.write(converted)
21 cfile = file(os.path.join(odir, new_fname, 'current'),'w')
22 cfile.write('00000001')
NoSmokeMoinMoin에서 추가적으로 지원하는 위키문법이 있다. []으로 링크를 거는것과 글박스. 아래의 내용은 parser/wiki.py를 diff로 차이점을 본것.
1 114d113
2 < self.in_box = 0 # by yong27
3 178,184c177
4 <
5 < # when euc-kr by yong27
6 < if wikitag in ('NoSmoke','GnomeKr',):
7 < import urllib
8 < wikitail = urllib.quote(unicode(text).encode('euc-kr'))
9 < ####
10 ---
11 438,439c432
12 < #wikiname = word[2:-2] #by yong27
13 < wikiname = word[1:-1].replace('"','')
14 ---
15 > wikiname = word[2:-2]
16 861,871d853
17 < def _box_repl(self, word):
18 < """Handle box displays."""
19 < word = word.strip()
20 < if word == '{{|' and not self.in_box:
21 < self.in_box = 1
22 < return '<table class="box"><tr class="box"><td class="box">'
23 < elif word == '|}}' and self.in_box:
24 < self.in_box = 0
25 < return "</td></tr></table>"
26 < return word
27 <
28 976,978c958
29 < #rules = rules + ur'|(?P<wikiname_bracket>\[".*?"\])' #by yong27
30 < rules = rules + ur'|(?P<wikiname_bracket>\[.*?\])'
31 < rules = rules + ur'|(?P<box>(\{\{\||\|\}\}))'
32 ---
33 > rules = rules + ur'|(?P<wikiname_bracket>\[".*?"\])'
178줄 세팅은 euc-kr URL만 처리하는 쓰는 InterWiki와의 링크를 위한 것이다.
다음으로, TeX와 GnuPlotInMoinMoin을 위한 파서를 추가한다. latex은 WkPark 님이 처음 이전버전으로 만든것을 1.34용으로 바꾼것이 ParserMarket 에 있다. gnuplot은 WkPark 님 소스를 참고하여, 본인이 직접 바꿨다. gnuplot.py
속도향상
CGI나 FastCgi나 그리 차이나지 않은 듯하다. 페이지 저장시 너무 오래걸린다면, 다음처럼 logfile/editlog.py 의 gethostbyaddr을 막아본다.
- 1.5.4 부터는 wikiconfig.py 에 다음 라인을 추가하는것으로 대체할 수 있다.
log_reverse_dns_lookups = False
ModPython으로 돌리면, 약8배의 속도향상이 있다.
사용자 삭제
# cd labkm/XXX/user # grep USERNAME * -rn # rm XXXXXX.XXX # cd labkm/XXX/cache/user # python >>> import pickle >>> d = pickle.load(open('name2id')) >>> d.pop('USERNAME') >>> pickle.dump(d, open('name2id','w')) # /etc/init.d/apache2 reload
버전별 History
MoinMoin 1.5
주요 변화들
- WYSIWYG 에디터 포함 및 그로 인한 페이지 편집방식의 단순화
AutoAdmin 보안정책으로 사용자들이 특정 페이지에 대하여 admin권한을 가질 수 있도록 함
- The new authentication system allows to add short methods that check the credentials of the user. This allowed us to add eGroupware single sign on support.
- Separation of homepages into a separate wiki (in a farm) and having a single user database is supported.
A DeSpam action to allow mass-reverting of spam attacks.
PackageInstaller support for simplified installation of plugins, themes and page bundles.
관련정보는 MoinMoinRelease1.5/CHANGES 참고
MoinMoin 1.5.3
BioHackersNet의 MoinMoin 업그레이드시 참고사항
- /usr/share/moin/server/moin.cgi 에서 config경로설정
- underlay 퍼미션조정
- wiki.py 파서수정
- logfile/editlog.py 에서 gethostbyaddr 주석처리
이곳 맞춤형 wiki.py 파서를 원래 파서와 비교하면,
1 root@bhn:/ysd/moin/bhn/plugin/parser# diff /usr/lib/python2.4/site-packages/MoinMoin/parser/wiki.py wiki.py
2 90c90,91
3 < (?P<wikiname_bracket>\[".*?"\])
4 ---
5 > (?P<wikiname_bracket>\[.*?\])
6 > (?P<box>(\{\{\||\|\}\}))
7 126a128
8 > self.in_box = 0 # added by yong27
9 394c396,397
10 < wikiname = word[2:-2]
11 ---
12 > #wikiname = word[2:-2]
13 > wikiname = word[1:-1].replace('"','') #added by yong27
14 814a818,829
15 > def _box_repl(self, word): # added by yong27
16 > """Handle box displays."""
17 > word = word.strip()
18 > if word == '{{|' and not self.in_box:
19 > self.in_box = 1
20 > #return '<table class="box"><tr><td class="box">'
21 > return '<div class="box">'
22 > elif word == '|}}' and self.in_box:
23 > self.in_box = 0
24 > #return "</td></tr></table>"
25 > return "</div>"
26 > return word
MoinMoin 1.5.4
새로 바뀐사항들 (SeeAlso MoinMoinRelease1.5/CHANGES
각종 버그 수정 : GUI editor, 사용자이름에 "-"추가가능, MonthCalendarMacro non-ASCII PageName버그 해결, ModPython 첨부 업로드 버그 해결. ImageLinkMacro 업데이트
- sitemap 액션에 몇몇 시스템 페이지 생략
- thread_monitor 액션 추가
I18n 번역 추가
- 입력 필드를 80에서 200으로 확장
SourceCodeControlSystem 으로 Mercurial사용 SeeAlso MoinDev/MercurialGuide
버그로 보여지는 현상 발생 : 로그인기능과 브라우저캐시에 이상이 있다. 로그인하지 않은 상태에서 최근바뀜등의 몇몇페이지들을 본 이후, 로그인한 뒤, 그 페이지에 다시 가면 로그아웃되어있다. F5를 눌러 새로고침하면 되긴 하지만, 전 버전에서는 항상 로그인상태의 페이지가 나타났었다. 점검해본 결과, ModPython으로 돌릴때만 이런 현상이. -- yong27 2006-07-15 15:42:53
MoinMoin 1.5.5a
주요 변화들 (SeeAlso MoinMoinRelease1.5/CHANGES
- 로그인기능과 브라우저캐시 오류 수정되다.
- IE에서 첨부파일 보기 기능 오류 수정
- edit_ticketing 기능
EmbedObjectMacro 기능 향상
POSIX플랫폼에서 IO 기능 향상
MoinMoin 1.5.6
주요 변화들 (SeeAlso MoinMoinRelease1.5/CHANGES
- 첨부파일 타 페이지로 이동기능
- 첨부파일로의 링크지원
- Attachlist 매크로 기능 향상 (페이지이름과, mimetype을 인수로)
MoinMoin 1.5.7
주요 변화들 (SeeAlso MoinMoinRelease1.5/CHANGES
- url_prefix_local 추가됨. 그동안 css, img 등 경로설정에 문제가 있었음
EditTemplates, LikePages macro 성능개선
- attachment 시 덮어쓰기 가능
MoinMoin 1.5.8
주요 변화들 (SeeAlso MoinMoinRelease1.5/CHANGES
- timing.log 추가 (cfg.log_timing=True)
- Added support for ircs, webcal, xmpp, ed2k and rootz protocols
TrackBack show
MoinMoin 1.9 부터 발견된 이슈들
없는 페이지 디렉토리 생성 문제
"없는페이지?action=edit" URL을 날리는 것만으로도 페이지 디렉토리를 생성하는 버그가 있음. http://moinmo.in/MoinMoinBugs/NotExistPageEditActionMakesPageDirectory 에 보고하긴 했는데, 어찌 처리되는지... 그나저나 아래 명령으로 불필요 디렉토리들을 삭제할 수 있음
moin maint cleanpage > a.sh sh a.sh
-- yong27 2013-03-29 14:39:30
첨부 압축파일 자동 해제 막기
파일첨부시 파일이 압축파일이면(zipfile.is_zipfile) 자동으로 압축을 풀어서 첨부 목록에 표시하는 기능(unzip)이 있는데, 이게 doc 파일인데 docx 확장자로 올렸다던가 등의 문제가 있을 때 에러가 나는 경우가 있다.
BadZipfile, "Bad magic number for central directory"
설정파일에 이 기능을 안쓰는 옵션이 있을 것 같은데 없네. 아예 막어놓고 싶음. 본 기능은 action/AttachFile.py 에 존재한다. 직접 소스를 고치기 보다는 사용자 플러그인 디렉토리에 복사해서 수정해 쓸 수 있다. import zipfile 이후 다음 한줄 추가.
-- yong27 2013-04-23 11:02:30