class: center, middle

WikiNote


WikiNote?

  • markdown문법을 활용한 wiki형 컨텐츠 관리 시스템
    • 개인의 생각을 정리
    • 소규모 집단에서 간단한 문서 공유
  • 간결하고 쉬운 기능에 초점
    • 복잡한 기능은 plugin으로 제공

왜 만들었나

  • http://wikinote.bluemir.me/wikinote/the-beginning

  • 위키는 쓰고픈데,

    • 백업이 쉽도록 파일로 저장했으면 좋겠다.

    • 뭔가 귀찮게 설치하고 설정 안했으면 좋겠다.

  • 블로그 처럼 쓸수도 있으면 좋겠다.

  • 이왕 하는거 동시편집 충돌도 해결해 보자.

  • 지하철(!!)에서 만들기 시작


WikiNote 특징

  • markdown rendering
  • 일반 파일로 저장
    • history를 git으로 저장
  • plugin
    • remark
    • disqus
  • 동시 편집(google docs의 그것)

어떻게 만들었나

  • node.js 선택
    • 수많은 패키지 - marked, express.js, nedb, …
    • 적은 메모리 사용량
    • 적은 CPU 사용량
    • npm을 이용한 손쉬운 설치
  • wikinote history 관리 - git
    • 개발자라면 git은 당연히 있을꺼라 생각
    • 이번에 nodegit으로 변경
  • 동시편집 - Share.js
    • OT(Operation Transeform) 구현체
    • 붙이면 됩니다.

class: center, middle

시연

직접 돌려보고 싶으시다면..

docker run -it -p 4000:4000 -v <data_dir>:/home/wikinote/data bluemir/wikinote


Burning Stage

  • Refactoring
    • Client JavaScript 정리
    • CSS 정리
  • System 의존적인 코드를 의존적이지 않게 변경
  • 1개의 외부 개발자로 부터의 pull request
  • 다수의 추가 기능 제안
  • npm에 등록

class: center,middle,custom

pull-request


Burning Stage에서 못 다한것

  • 손쉽게 인스톨할수 있게 하기

    • npm install
    • dockerize (어제 완료됨) - docker hub
  • config module 변경

  • 그외 추가 기능들

  • 멋들어진 소개 영상

  • 멋들어진 스크린샷이 들어있는 소개 문서


운영

  • 문서는 영어와 한글버전 둘다 유지
    • 글로벌로 나가겠다는 강력한 의지
  • git branch 전략 / pull request 정책 확립 #
  • plug-in을 현재 repo에서 분리
  • 적어도 9월에는 1.0 release와 동시에 대대적인 홍보를 해볼 생각
    • Demo Site를 제작
    • npm install을 통한 설치
    • docker image 제공
  • markdown renderer 교체, build system 교체 등 굵직한 업데이트들을 할 예정

class: center, middle

감사합니다.