JINGO !!!

개요

  • 깃허브 홈페이지 : https://github.com/claudioc/jingo
  • 한 줄 소개 : node.js로 작성한 Git 기반 위키엔진. 봐줄만한 디자인, 검색기능, 미려한 폰트.

Introduction

  • Git과 Markdown을 중심으로 한 문서작성체계를 가지고 싶은 사람을 위해 만들어졌음.
  • 복잡하고 과잉기능의 도구에 질려버린 사람에게 좋음.
  • Github 자체 위키 엔진인 Gollum의 영향을 강하게 받았음.
  • 다만, Gollum 보다는 좀 더 독립실행에 유리하도록 완결성을 주었음.
  • "Github 없이도 쓸 수 있는 좀 더 강력한 Github 위키"
  • Jingo = Jingo is not Gollum
  • 데모 홈페이지 : http://jingo.cica.li:6067/wiki/home Demo

Features

  • 데이타베이스 사용하지 않음 : 대신 Git 레포지토리 기능을 활용함
  • 사용자 관리 불필요 : 구글계정,깃허브 계정으로 간단히 로그인하는 기능 지원
  • 완벽한 마크다운 문법 지원 : 깃허브향 마크다운도 지원
  • Codemirror 또는 Markitup 사용 : 훌륭한 ajax 보여주기 (설정 파일 참조)
  • 전화면 에디터 모드 지원 : 집중력 강화
  • Gollum 위키에서 만든 문서와 호환
  • 모든 문서에 버전 관리 지원
  • 상이한 버전의 문서간에 비교 기능 지원
  • 모든 문서에 페이지 매기기 기능 지원 : 버전 간에 변화된 부분을 빨리 찾을 수 있음
  • 내용 및 제목 검색 지원
  • Sidebar, Footer 레이아웃 설정 가능
  • Gravatar(개인 아바타) 지원
  • IFRAME 삽입 가능 (예 : 구글 드라이브 문서를 embed할 수 있음)
  • 커스텀 CSS 및 Javascript 적용 가능
  • 문서를 읽고 쓸 때 권한을 줄 수 있는 화이트리스트 지원
  • 빈 페이지 검출 기능 (붉은 색으로 나타남)
  • Remote로 자동 Push 기능
  • 모바일 대응 (Bootstrap 3.X 기반)
  • 간편한 설정

코드 하일라이트 기능으로, node-syntaxhighlighter를 사용함. 지원하는 언어는 이 페이지 참조.
Code

Installation

node.js 및 npm 설치

  • 우분투 리눅스 14.04 기준. Git이 설치되어 있을 것.
sudo apt-get install nodejs nodejs-legacy npm

Jingo 설치

sudo npm install jingo

Git 설정하기

mkdir /home/홈폴더/jingo
cd /home/홈폴더/jingo
git init
git config --global user.name "아이디"
git config --global user.email "이메일"

Jingo 기본형 설정파일 만들기

jingo -s > config.yaml

Jingo 로그인 비밀번호 해쉬코드 만들기

jingo -# 비밀번호
  • 위의 명령을 치면 해쉬코드가 나온다. 그걸 긁어서 복사해 둔다.

config.yaml 편집하기

  • 편집기로 config.yaml을 열어서 다음의 내용을 손 봐준다.
---
# Configuration sample file for Jingo (YAML)
application:
  title: Jingo
  repository: '/home/홈폴더/jingo'      <--- Git 저장소로 설정한 디렉토리 절대경로
  docSubdir: ''
  remote: ''
  pushInterval: 30
  secret: change me
  git: git
  skipGitCheck: false
  loggingMode: 1
  pedanticMarkdown: true
  gfmBreaks: true
  staticWhitelist: "/\\.png$/i, /\\.jpg$/i, /\\.gif$/i"
authentication:
  google:
    enabled: false                 <--- Google 로그인은 일단 비활성화  두자.
    clientId: replace me with the real value
    clientSecret: replace me with the real value
  github:
    enabled: false                 <--- Github 로그인도 일단 비활성화  두자.
    clientId: replace me with the real value
    clientSecret: replace me with the real value
  local:
    enabled: true                 <--- 로컬 로그인만 활성화  두자.
    accounts:
      - username: '아이디'                 <--- 아이디
        passwordHash: '해쉬코드'         <--- 아까 만들어서 복사해 둔 해쉬코드를 넣어준다.
        email: '이메일'    <--- 이메일
features:
  markitup: false
  codemirror: true
server:
  hostname: localhost
  port: 6067
  localOnly: false
  baseUrl: ''
authorization:
  anonRead: true
  validMatches: .+
pages:
  index: Home
  title:
    fromFilename: true
    fromContent: false
    asciiOnly: false
    lowercase: false
  itemsPerPage: 10
customizations:
  sidebar: _sidebar.md
  footer: _footer.md
  style: _style.css
  script: _script.js

Jingo 첫 실행

jingo -c /home/홈폴더/jingo/config.yaml
  • 잘 되나? 잘 되면 설정해 둔 아이디와 패스워드로 로그인 한 후, 첫번째 home 문서부터 작성해 보자.

남은 일들

  • Github와 연동시키기 : 나중에 천천히 하자.
  • Google 및 Github 계정으로 간편 로그인 기능 설정하기 : 나중에 천천히 하자.
  • 다른 Javascript 스크립트 먹이기 : 나중에 천천히 연구해 보자.
  • 서버에 올려서 서비스하기 : 나중에 천천히 연구해 보자.