tinymce의 plugin을 또 하나 만들고 있다. 이전에 codeblock plugin을 만들땐 layer를 직접 만들었는데 이번엔 tinymce의 모듈을 써서 만들어보고 싶었다. 그래서 WindowManager.open의 파라미터를 확인해봤다. 내가 헛것을 보는건 아니겠지라는 생각이 들만큼 단촐한 설명이다. 'width/height/url etc' 이라고? 잠시, 아니 한참을 멍하니 있다가 소스코드를 보기로 했다. WindowManager니까 Window의 생성자 파라미터겠지 라고 생각했는데 그게 맞았다. 근데 단순히 넘겨주는 건 아니고 조금 조작을 한다. 그러니까 Window의 생성자와 다른 값을 파라미터로 받는다. 그럼 문서에 그걸 써줘야하는거 아냐? 부글부글. 조금 짜증이 났지만 아쉬운건 나니..
tinymce는 요새 프리미엄 구독으로 돈을 벌려고 해서 그런지 모르겠지만 좋은 플러그인들은 유료버전에만 제공한다. 물론 그들이 흙파먹고 살 순 없으니 당연한 일이라 생각이 들긴하지만 조금 아쉽긴하다. 필요한 기능이 있는데 그것만을 위해서 돈을 내기에는 좀 아까워서 직접 플러그인을 만들어보기로 했다. 플러그인 제작 공식 문서에는 아주 심플하게 써 있다. plugins에 등록하는 방법, 플러그인 코드를 로드하는 방법, 그리고 플러그인 매니저에 플러그인 코드를 등록하는 방법 이렇게 세가지를 적어뒀다. 앞의 두가지 방법은 사용법이니 결국 필요한 부분은 다음이다. tinymce.PluginManager.add('example', function(editor, url) { // Add a butto..
지난 번에 vue.js와 react로 comment sample을 만들었는데 이번엔 angular로 만들어보기로 했다. AppModule platform-browser-dynamic를 사용해서 AppModule을 로드하는 main.ts는 건너뛰고 바로 AppModule로 들어간다. angular의 특징은 필요한 component, provider들을 미리 NgModule에 다 적어주고 시작을 해야한다는 거다. 개발을 하면서 component가 하나씩 늘어나고 service도 하나씩 늘어날텐데 그때마다 이 파일을 수정해줘야 한다. 중간에 구조를 바꾸면서 CommentFormComponent, CommentService를 추가했는데 여기다가 추가해주는 것은 조금 번거로웠다. import { NgModule ..
드디어 angular 코드를 살펴본다. 다른 프레임웍들은 일단 만들어보고 그 다음에 살펴봤는데 angular는 처음 보는게 너무 많아서 quickstart 코드를 먼저 살펴보고 만들어보든가 말든가 해야겠다. main.ts angular가 동작하도록 하는 부분은 어제까지 다 살펴봤으니 오늘은 main.ts로 바로 들어간다. import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; platformBrowserDynamic().bootstrapModule(AppModule); platformBrowserDynamic는 이름..
angular도 한번 써보기로 했다. angular는 뭔가 또다른 세상이다. 처음보는 것들이 많다. 하나하나 알아가보기로 했다. concurrently의 활용 typescript를 하면서도 이런 코드를 봤는데 angular도 typescript를 base로 하고 있어서 그런지 concurrently를 사용하고 있었다. 막연히 watch 같은 건가보다 하고 있었는데 사용하는 것을 가만히 보니 npm start 와 npm run serve 를 param으로 넘겨주고 있었다. 그래서 궁금했다. 찾아보니 concurrently는 동시에 두개의 process를 처리해주는 것이었다. 그래서 watch와 서버를 동시에 실행하도록 하는 것이다. webpack-dev-server같이 이걸 동시에 해주는 대신 이걸 사용하..