- Wiki 조회
- markdown rendering
- 이미지
- Video
- Wiki 수정
- 미리보기
- 이미지 업로드
- Wiki 검색
- Plugin
- Viewer
- footer
- 댓글 Plugin(https://giscus.app/)
- TAG
- Recently updated
- git plugin
- Viewer
- 권한 시스템
- 아무나 읽되, 쓰는 사람은 일부
- login
- 다른 ID 로 login
- 가입
- 가입시 Role 지정(config)
- RBAC
- cookie free
- Basic Auth(포기)
- Server rendering
- API call을 줄일수 있다.
- JS 를 상대적으로 적게 써도 동작을 보장할수 있다.
- Web 표준
- https service
- 실질적으로 설정 해야할 이유가 떨어짐
- 대부분은 ingress(nginx) 뒤에 있게 됨
- https를 설정할 경우 대부분은 Domain 설정등이 필요해서 추가 설정을 해야 하므로 굳이 간단한 실행을 제공해야 할 이유가 떨어진다.
- '/' 로 접근 하면 front-page 로 redirect
- 확장자가 없는 path 로 접근 하면, ".md" suffix 가 붙은 Path 로 redirect
- 최초 실행시
- Guest 는 wiki를 볼수 있음
- Editor에서 변경 후 Save 시 변경 내용이 저장 된다.
-
files 관련
- 어떤 경로에 접근시 ext(확장자)가 없다면
.md
로 redirect 한다. - 만약
?files
가 있다면 redirect 하지 않는다. - file upload 는
?files
Page에서 가능하다.- Upload 할 file 과 file 이름을 지정할수 있다.
- files page 에서 edit를 누르면
.md
가 붙은 markdown editor 창으로 이동한다. - markdown edit 창에서 file upload 는 허용하지 않는다.
- markdown edit 창에서 files 로 이동할수 있는 button 을 제공한다.
- 이동시에는 확장자는 제거하고, base 로 이동한다.
- image 등의 editor 창에서는 replace upload 를 제공한다.
- 현재 file 을 대체해서 upload 할수 있다.
- 어떤 경로에 접근시 ext(확장자)가 없다면
-
edit 는 replace 방식의 upload 만 제공 한다.
- file 의 mime type 에 따라 제공 되지 않을수 있다.
-
files 는 파일 이름을 지정해서 upload 할수 있다
- 같은 이름이 있으면 overwrite
- 없을경우 upload 하는 file의 이름이 기본이 된다.
-
edit에서 mine type을 알수 없으면 dir 로 취급, mine type 을 알수 있으면 file 로 취급
- editor 에서 files 로 가는 링크는 그저 extention 을 땐 editor 로 갈뿐 실질적으로 별개의 page/route 를 가져야되는것이 아님 (wikinote 에서는 별개의 query)
- UI 구조개선
- CustomElement(not React)
- muti page application
- non-client routing
- 파일 업로드
- image viewer
- image uploader
- file upload with drag and drop
- Edit 에서 tab key 수정
- image viewer max width
- video viewer
- Profile
- Unauthroized page
- Register Page
- Forbidden page...
- git plugin
- html templates 의 not found Error handling
- change embed
- TLS cache
- Accept 에 따라서 API 와 아닌것 구분 하기
- js map(ECMA script)
- error handling with
c.Error()
- 최초 실행시 data dir 이 없으면 생성
- Admin 비밀번호는 표준 입력등으로 노출 되지 않도록
- Setup 용 Token 등을 사용 하는 방안도 고려 해볼수 있음.
- 최초 실행후 initialize 마법사가 필요..
- Admin 용 IAM Page(RBAC)
- User
- Create
- Get
- List
- Update
- Delete
- Group
- Create
- Get
- List
- Update
- Delete
- Role
- Create
- Get
- List
- Update
- Delete
- Assign
- Create
- Get
- List
- Update
- Delete
- User
- 대부분 config 는 file 대신 db에 저장.
- UI 에서 수정을 지원
- yaml로 encoding 을 할수는 있음
- User의 Group이 바뀌면 Logout 후 Login 해야 적용됨
- user의 Group 정보가 Session(secure cookie)에 들어가기 때문임
- user의 정보를 직접 넣는 대신 필요할떄 마다 DB 에서 가져다 쓰는 구조로 바뀌어야 할수 있음.
- 가입 가능 여부를 설정 할수 있으면 좋겠다.
- i18n
- 우선은 Page 만 적용
- Error message 등에는 적용하지 않음.
- nginx 뒤에 있는 server 의 경우에는 initialize link 가 제대로 표시 되지 않음.
- nginx 에
proxy_set_header Host $host;
를 설정 하면 됨
- nginx 에
- Access log 를 Info level 로 찍기
- DB 의 Log 를 Debug Level 로 찍기
- Editor
- Tab Key가 동작 하도록 만들기
- indent 조정
- 저장단축키 적용
- Undo
- 1s 정도의 간격으로 text의 변경사항을 추적하고, 100 개 정도의 변경사항을 기록하면 되지 않을까?
- Redo
- Resize on input
- editor 에서 다음줄로 넘어갈때 이전 line 의 indent 만큼은 자동으로 들어가 있도록 설정
- Tab Key가 동작 하도록 만들기
- 적절한 font 설정
- h1~ h3 까지 horizontal line 적용하기
- search 기능 고치기
- move 기능
- 옯겨갈 Path에 file 이 없으면
- 파일을 해당 path 에 복사하고
- 현재 위치에는 해당 Path 로 Link를 남김
- delete 기능
- files 고치기
- move 시 하위 Path 도 같이 이동
- 정책적으로 할것인지 말것인지를 결정 해야 함.
- Offline 지원을 위해서, lit-html 을 bundle에 넣기
- Files, Upload 와 Directory 정책 정리하기
.md
에서 files 를 누르면 현재는 Dir로 이동함- editor 는
.md
에서 뜨고 그외에는 upload 가 뜸 - 즉, dir 이 아닌 경로에서 upload 하는것과 dir 인 경로에서 upload 하는것으로 사용성이 나뉘게 됨.
- Editor 는 Filetype 에 따라서 표시
- Directory 인 경우
- 디렉토리에 파일 업로드
- .md 등 Text 파일일경우
- Editor 를 표시
- Drag & Drop 하면 업로드?
- 그 외인 경우
- Editor 로 편집이 불가함을 안내하고 대체 파일을 Upload 할수 있음.
- Directory 인 경우
- Checklist render 가 가능하도록 변경 해야 함.
- [BUG] 없는 Page 를 Editor 로 새로 만들려 할떄 NotFound 가 호출됨
- form을 enhanced 로 처리 할수 있을지 확인
- method에 DELETE, PUT 등을 처리
- 응답 받아서 적절한 처리가 가능할지 확인
- 우선은 GET 으로 redirect 해서 처리
- systemd 로 등록할수 있는 예시 service config file
- Loading 시 Logo 깜빡임 줄이기
- image viewer 개선
- not found 표시
- 기본적인 정보 표시(like size, ...)
- cache 정책 수립
- Plugin 개선
- on/off by web UI