ç§ã¯Javaããã¯ãšã³ãéçºè
ã§ãããæãããã³ããšã³ãã«å°éããããšã¯ãã£ãã«ãããŸããã ããã¯å€§ããªçç¥ã§ãã ããã³ããšã³ãã®çè§£ãäžè¶³ããŠãããããäžçã®å
šäœåãèŠãããšãã§ããŸããã Node.jsãGulpãWebpackãªã©ã®ãã¡ãã·ã§ããã«ãªããŒã«ãã©ã®ããã«äœ¿çšããã©ã®ããã«äœ¿çšããŠããã®ãããããŸããããªããªããéçºè
ã®ããã¯ãšã³ãã¯ãã®å€æ§æ§ãšçµ¶ãéãªãå€åã«éåžžã«æãããããã§ãã
ãããŠãç§ã®æåã®
ç ç²è
ã¯
Dillinger.ioã§ããã ããã¯ãMarkdownã®ãªãŒãã³ããã¹ããšãã£ã¿ãŒã§ãããæ§æã®åŒ·èª¿è¡šç€ºãšãæžã蟌ãŸããããã¹ãã®PDFãHTMLãDropboxãGithubãããã³Googleãã©ã€ããžã®ãšã¯ã¹ããŒããå¯èœã§ãããŸããéçWebãµã€ããžã§ãã¬ãŒã¿ãŒãWordpressãªã©ãç¬èªã®æ¹æ³ã远å ããããšãã§ããŸãã
æ©èœã®ã»ããã¯æ§ããã«èãããŸãã ãããããããçè§£ããããã«ãç§ã¯æ°æ©ãéããããã¯ãããžãŒåç©åå
šäœã«ã€ããŠèªãå¿
èŠããããŸããã ãããŠããã®ãããžã§ã¯ãã«ã¯åŠã¶ã¹ãããšããããããããŸãã
ãã¯ãããžãŒ
䜿çšãããŠãããã¯ãããžãŒã®æ§ãããªãªã¹ãã
ãããžã§ã¯ããªããžããªã«ãããŸã ïŒ
- AngularJs-ããžãã¯ãHTMLã«åã蟌ãããšãã§ããããã³ããšã³ããã¬ãŒã ã¯ãŒã¯ïŒã¯ããæåïŒ;
- Ace Editor-ããã¹ããšãã£ã¿ãŒã
- ããŒã¯æžã¿ -ããŒãµãŒããã³ã³ã³ãã€ã©ãŒMarkdownã
- Twitter Bootstrap- ãããã¯èšã£ãã
- Node.js-ããã¯ãšã³ãã®ãžã§ããjsã
- Express -Node.jsã®Webãã¬ãŒã ã¯ãŒã¯ã
- Gulp-ããã³ããšã³ãã®ã¹ããªãŒã ã¢ã»ã³ããªã·ã¹ãã ã
- Keymaster.js-ãããããŒãåŠçããããã®ã©ã€ãã©ãªã
- jQuery-ããŠããããªãã§ã©ãã«ïŒ
èªåãããããã«2ã€è¿œå ã§ããŸãã
- Docker-ã³ã³ãããŒïŒèª°ãã話ããŠããïŒ;
- Docker Compose-ã³ã³ããããããã§èµ·åããããã®ããŒã«ã
- Ansible-æ§æç®¡çãèªååããããã®ããŒã«ã
- Heroku-ã¯ã©ãŠãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã
- N |å
ç¢-Node.Jsã§ã®ç£èŠããããã·ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããã³ã¢ããªã±ãŒã·ã§ã³ç®¡çã
- NGinx -httpããã³ãããã·ãµãŒããŒïŒãã®ãããžã§ã¯ãïŒã
- Npm -Node.jsã®ããã±ãŒãžãããŒãžã£ãŒã
- Webpack-ããã³ããšã³ãã®JSãã¡ã€ã«ã®ã³ã¬ã¯ã¿ãŒã
- Karma-ãã¹ãã©ã³ããŒã
- Ejs-ãã³ãã¬ãŒãã®ãšã³ãžã³ã
ãã®ãããªæè¡åç©åã¯ãæ§ããã«èšã£ãŠãé©ããã ãããã®ãã¹ãŠã®ãã¡ãAngularJsãBootstrapãããã³Jqueryã®ã¿ã䜿çšããŸããã ãã¡ãããã»ãšãã©ã®ãã¯ãããžãŒã«ã€ããŠèããããšããããŸããããã¹ãŠã¯åã«éå®ãããŠããŸããã
ã€ã³ãã©
ãã¯ãããžãŒã®ãªã¹ããèŠãŠãããšããçåã¯ç§ãæ©ãŸããŠããŸããïŒãç§ã®ãã©ãŠã¶ãŒã§åäœããããã¹ããšãã£ã¿ãŒã«ããã¯ãšã³ããããã®ã¯ãªãã§ããïŒã ããã«ããã®å ŽåãNode.jsã管çããããã«Dockerãšãšã³ã¿ãŒãã©ã€ãºãã©ãããã©ãŒã ãå¿
èŠã ã£ãçç±ã¯æããã§ã¯ãããŸããã§ããã ããããç§ã¯ã¢ããªã±ãŒã·ã§ã³ã®äœæè
ã«ã€ããŠããå€ããåŠã³ã2çªç®ã®è³ªåã¯ããèªäœã§æ±ºå®ãããŸããã
Joe McCannã¯ã
N | Solid ïŒNode.jsã¢ããªã±ãŒã·ã§ã³ã管çããã³ç£èŠããããã®ãã¬ãŒã ã¯ãŒã¯ïŒããªãªãŒã¹ããäŒç€Ÿã§ãã
NodeSourceã®å
±åèšç«è
ã§ãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ã€ã³ãã©ã¹ãã©ã¯ãã£ã®äœæã«ç²ŸéããŠããããšãæå³ãããã®åéã§ã¯å€ãã®ããšãåŠã¶å¿
èŠããããŸãã
ã¢ããªã±ãŒã·ã§ã³ãèµ·åããããšã¯å¯èœã§ããïŒ
ã¢ããªã±ãŒã·ã§ã³ããã¹ãããã ãã®å Žåã¯ãç°¡åãªãªãã·ã§ã³ãéžæã§ããŸãã
Node.jsãš
Gulpã®ã¿
ãå¿
èŠã§ãã Node.jsã¯ã
Express WebãµãŒããŒãæã¡äžããŠæ§æããŸãã ãŸããGulpã¯Jsãã¡ã€ã«ãšSassãã¡ã€ã«ã®å€æŽãç£èŠãããã©ãŠã¶ãŒãçè§£ã§ãããã¥ãŒã«å€æãããã¡ã€ã«ã®ããããã倿Žãããå Žåã«ããŒãžããªããŒãããŸãã
READMEã«ã¯ããµãŒããŒã®ã€ã³ã¹ããŒã«ãšèµ·åã«é¢ããã¬ã€ãããããŸãã
Node.jsã®èšå®ã¯
app.jsãã¡ã€ã«ã«ãããŸãã ãã®ãã¡ã€ã«ã§ã¯ãå€éšäŸåé¢ä¿ãšå
éšã¢ãžã¥ãŒã«ãæ¥ç¶ããïŒã¡ã€ã³ããŒãžãèšå®ããã©ã°ã€ã³ã®ã«ãŒãã£ã³ã°ïŒãWebãµãŒããŒãæ§æãããŸãã éçããŒãžãæäŸããejsãã³ãã¬ãŒããã³ã³ãã€ã«ããCookieããŠãŒã¶ãŒã«ãã€ã³ãããhttpå¿çãå§çž®ãããã®ã³ã°ãæ§æããåçãªã¯ãšã¹ãã®ãã³ãã©ãŒãèŠã€ããŸãã
Gulpã®ã¹ã¯ãªããã¯
/ gulpãã©ã«ããŒã«ãããŸãã ããã§
ã¯ã¿ã¹ã¯ãäž»ãªé¢å¿äºã§ããåã«ååã§ãGulpããã®ãããžã§ã¯ãã§äœ¿çšãããçç±ãçè§£ã§ããŸãïŒwatchãbuildãwebpackãsassãbrowserSyncã ãŸãã¯ãã·ã¢èªïŒç£èŠãããã¡ã€ã«ãGulpã«æç€ºããŸãã ãããã®ãããããæŽæ°ããããšã
Webpackã䜿çšããŠãäŸåé¢ä¿ãšJsã³ãŒãã®æçããã¹ã¯ãªãããã³ã³ãã€ã«ããSassãCssã«å€æããŸãã æ¬¡ã«ããã©ãŠã¶ã«browserSyncã䜿çšããŠããŒãžãæŽæ°ããããã«èŠæ±ããŸãã
ãŸãããããã®ãã¡ã€ã«ã§ã¯ãã³ãŒãå®è¡ã®ããŸããŸãªãããã¡ã€ã«ïŒéçºã¢ãŒããšå®åã¢ãŒãïŒãèŠã€ããããšãã§ããŸãããéçºã¢ãŒãã§ã¯ããå€ãã®ãããã°æ
å ±ïŒçž®å°ãã¡ã€ã«ããã°ãªã©ã®ãããã³ã°ïŒããããŸãã

ã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã«è»¢éããæ¹æ³ã¯ïŒ
ããããã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã«ã§ã®éçºãšãã¹ããå®äºããããããããµãŒããŒã«è»¢éãããšããçåãçããŸãã ãã¡ãããæãç°¡åãªãªãã·ã§ã³ã¯ããã¹ãŠãå®è¡ããå¿
èŠãªãŠãŒãã£ãªãã£ããã¹ãŠãªã¢ãŒãã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ããããŒã«ã«ãã·ã³ãšåãããã«æ§æãããŠããããšã確èªããã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŠãäœãå€ãããªããšä¿¡ããããšã§ãã ãã ããç°å¢ãæ£ããæ§æãããäœãå€ãããªãããšã確èªããã«ã¯ãäœããã®æ¹æ³ã§ã¢ããªã±ãŒã·ã§ã³ãåé¢ããå¿
èŠããããŸãã äž»ã«2ã€ã®æ¹æ³ããããŸããä»®æ³ãã·ã³ãšã³ã³ããã§ãã ãããŠããã¡ãããJS =ã§æžããå Žåãæµè¡ã«ææãªãã¯ãããžãŒããã¹ãŠåéããªãã®ã¯çœªã§ãããããŠãDockerã«å¯Ÿããéžæã¯æããã§ãã
ã³ã³ãããŒã®Dockeræ§æã«ã¯ãè¶
èªç¶çãªãã®ã¯äœããããŸããã Node.Jsããã³å¿
èŠãªãã¹ãŠã®ãŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ãããŠããã€ã¡ãŒãžã¯ãããŒã¹ã³ã³ãããšããŠäœ¿çšãããŸãã ã¹ã¯ãªããã«ã¯ãäŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ãšãµãŒããŒã®èµ·åã«é¢ããæç€ºãå«ãŸããŠãããããŒã80ãæå®ãããŠãããç°å¢å€æ°ã瀺ãããŠããŸãã

ãããããªãDockerãªã®ã§ããããïŒ
ãã®ãããžã§ã¯ãã§Dockerã䜿çšããçç±ã¯ããã¡ãã·ã§ã³ã ãã§ã¯ãããŸããã æ¢ã«è¿°ã¹ãããã«ããããžã§ã¯ãã®äœæè
ã¯ãNode.Jsäžã®ã¢ããªã±ãŒã·ã§ã³çšã®ãšã³ã¿ãŒãã©ã€ãºãã©ãããã©ãŒã ã§ãã
N | Solidã®äœæã«äœããã®åœ¢ã§é¢äžããŠããŸãã æåŸã®æ®µèœã§ã¯èšåããŸããã§ããããN |ãœãªããç»åã¯åºæ¬ç»åãšããŠäœ¿çšãããã ãã§ããããããã©ã®ãããªå©ç¹ããããããã¯ãŸã æç¢ºã§ã¯ãããŸããã ããããã«ãŒãã«ã¯ããã«2ã€ã®çããããã¡ã€ã«ããããŸãïŒ
nsolid.ymlãš
docker -compose.ymlã§ãã
ããã2ã€ã®ãã¡ã€ã«ã¯ã
Docker ComposeãŠãŒãã£ãªãã£ãæ§æããããã«å¿
èŠã§ãã ãã®ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ã¹ã¿ãŒã¢ãŒãã§èµ·åããN | Solidãã©ãããã©ãŒã ãæ§æããæ¹æ³ã«ã€ããŠèª¬æããŸãã ãã¹ãŠã®ã³ã³ããã1ã€ã®ãããã¯ãŒã¯ã§äžæãããã®çµæã8ã€ã®ã³ã³ãããéå§ãããŸãã
- N |ãœãªãããµãŒãã¹ã¬ãžã¹ããªïŒã€ã³ãã©ã¹ãã©ã¯ãã£ã«åå ããŠããã¢ããªã±ãŒã·ã§ã³ãç»é²ïŒã
- N |ãœãªãããããã·ïŒService Registryã«åºã¥ããã¢ããªã±ãŒã·ã§ã³éã§ãªã¯ãšã¹ãã忣ããŸãïŒã
- N |ãœãªããã³ã³ãœãŒã«ïŒã¢ããªã±ãŒã·ã§ã³ç®¡çããŒã«ïŒã
- 4 Dillingerã³ã³ããïŒã¹ããŒãã¬ã¹ããµãŒãã¹ã¬ãžã¹ããªã«ç»é²ãããŠãããèŠæ±ãåãå
¥ããæºåãã§ããŠããïŒã
- NGinxïŒNode.JSã§ã¯ãªãWebãµãŒããŒïŒã
ãªããžããªã¯
NGinxã®
èšå®ãå¿ããŸãã
ã§ãã ã ãããã·ãšããŠäœ¿çšãããŸãã Express.jsã®ãããªNGinxã¯ãããŒã¿ãå§çž®ããéçãã¡ã€ã«ãéä¿¡ããŸãã 圌ã¯éçãã¡ã€ã«ãžã®èŠæ±ãåå¥ã«åŠçããã¯ã©ã¹ã¿ãŒããŒãéã§ä»ã®èŠæ±ããããã·ããŸãã ãªããžããªã«ã¯2ã€ã®ãããã·å®è£
ïŒN | Solid ProxyãšNGinxïŒããããããã©ã«ãã§NGinxã䜿çšãããŠããããšãããããŸãã éçãã¡ã€ã«ã¯ãExpress.jsãµãŒããŒçµç±ãŸãã¯NGinxã®äœ¿çšãšãã2ã€ã®æ¹æ³ã§éä¿¡ããããšãã§ããŸãã ãããã®æ¹æ³ã¯äž¡æ¹ãšã䜿çšãããŸãã1ã€ç®ã¯ããŒã«ã«éçºã®å Žåã2ã€ç®ã¯ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ã¹ã¿ãŒã¢ãŒãã§å®è¡ããNGinxããµãŒããŒãšããŠäœ¿çšããå Žåã§ãã
Service RegistryãProxyãããã³Consoleã®æ©èœã¯ãã®æ§æã§ã¯äœ¿çšãããªããããåã«ç®ãéããŠãå³ã®ãããã·èŠæ±ã®ã¿ãæ€èšããŸãã ãããŠãäžè¬ã«ãç§ã¯ãã®ãããžã§ã¯ãã§N | Solidã®éèŠæ§ãæããŠããŸããã§ãããã»ãšãã©ã®æ©èœã¯NGinxã䜿çšããŠåäœæã§ããŸãããããã管çã®å©äŸ¿æ§ã«é¢ãããã®ã§ãããåœŒã®æã«ã¯å±ããŸããã§ããã

ãããªãèªåå
ããããèªååã¯ããã§çµãããŸãã=ïŒã«ãŒãã«ã¯ããã«2ã€ã®è峿·±ããã¡ã€ã«ããããŸãïŒ
deploy.ymlãš
dillinger.serviceã§ãã ãŸããã€ã³ãã©ã¹ãã©ã¯ãã£ã®äœæã«ãé¢é£ä»ããããŠããŸãã
æåã®ãã®ã¯
Ansibleã®ã¹ã¯ãªããã§ãã Debianã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«ãèªååããŸãã å
·äœçã«ã¯ã远å ã®ã«ããæ¥ç¶ããrsyncãšdockerãã€ã³ã¹ããŒã«ããDillingerã€ã¡ãŒãžãã€ã³ã¹ããŒã«ãããã®ã€ã¡ãŒãžã§DebianãµãŒãã¹ãäœæããŠå®è¡ããŸãã
2çªç®ã®ãã¡ã€ã«ã§ã¯ããã®ãµãŒãã¹ã«ã€ããŠèª¬æããŠããŸãã 圌ã¯ãDillingerãdockerã«äŸåããŠããããšãè€æ°ã®ãŠãŒã¶ãŒããµãŒãã¹ãå©çšã§ããããšãããã³ãµãŒãã¹ãéå§ããåã«æ¯åæ°ããããŒãžã§ã³ã®ã€ã¡ãŒãžãããŠã³ããŒãããå¿
èŠãããããšã説æããŠããŸãã
確ãã«ããã®ã¹ã¯ãªããã¯ã¯ã©ã¹ã¿ãŒå
šäœã§ã¯ãªã1ã€ã®ãã£ãªã³ãžã£ãŒã€ã¡ãŒãžã®ã¿ãçæããŸãããæèã®æµãã¯æç¢ºã§ãããã¯ã©ã¹ã¿ãŒå
šäœãå®è¡ããããã«ãã®ã¹ã¯ãªãããæ¹è¯ã§ããŸãã
ããã³ããšã³ã
AngularJsã®æåã®ããŒãžã§ã³ã®éèŠãªã¢ãããŒãã®1ã€ã¯ãäž¡é¢ãã€ã³ãã£ã³ã°ã§ãã ããžãã¯ã®äžéšãHTMLã§çŽæ¥èšè¿°ããããšãã§ãããã®æ©èœã¯ãã®ãããžã§ã¯ãã§ç©æ¥µçã«äœ¿çšãããŠããŸãã ã³ãŒãã¯JSãã¡ã€ã«ãšejsãã³ãã¬ãŒãã®éã§ãŒãããŠããããšã倿ããŸãããããããžã§ã¯ãã¯å°ãããå
šäœåã念é ã«çœ®ãããšãã§ããŸãã
ãã¿ãŒã³
Ejsãã³ãã¬ãŒããšã³ãžã³ã䜿çšããŠHTMLãèšè¿°ããŸããã ãã®çµæããã¡ã€ã«ã¯å°ãããŠèªã¿ãããããšã倿ããŸããã ãã¹ãŠã®ãã³ãã¬ãŒãã¯ã
/ viewãã©ã«ããŒã§
衚瀺ã§ããŸãã ãã ããè¡ã®ãã¹ãŠã®ãã¡ã€ã«ã®èªã¿åããéå§ãããšãéåžžã®HTMLã«ã¯ãªãã¿ã°ãããšãã°ããã¡ã€ã«
/ views / dropdowns / settingsã®
switchã¿ã°ã衚瀺ãã
ãŸã ã ããã¯AngularJsã䜿çšããŠèšè¿°ããããã£ã¬ã¯ãã£ãã§ãããããã€ãã®ããžãã¯ãé¢é£ä»ããããŠããŸããããã¯è§åºŠã䜿çšããè¯ãæ¹æ³ã§ãããã®å Žåãã³ãŒãã¯ããèªã¿ããããçè§£ãããããªããŸããã ãã ãããã£ã¬ã¯ãã£ããé »ç¹ã«äœ¿çšããå Žåã¯ãåãµã€ãã§ç¬èªã®ãã¡ã€ã³åºæèšèªïŒDSLïŒãåŠç¿ããå¿
èŠããããŸãã ããããã³ãŒãã®åºçŸã«ããããã³ãã¬ãŒãã¯èªã¿ã«ãããªããŸããããšãã°ã
/ views / sidebar.ejsãã¡ã€ã«ã§ã¯ããã®ã³ã³ããã¹ãã§ã®ããã¥ã¡ã³ãã®æå³ãšãæ®ãã®ããã¥ã¡ã³ãã®ã¿ãåé€ã§ããªãçç±ãçè§£
ããå¿
èŠããããŸãã
ãã³ãã¬ãŒãã«ã¯ãéçºã¢ãŒããšæ¬çªã¢ãŒãçšã®ã¹ã¯ãªãããåé¢ãããŠ
ããŸã
ã/views/footer.ejsãã¡ã€ã«ã§ã¯ãéåæã¹ã¯ãªããã®èªã¿èŸŒã¿ãšGoogleã¢ããªãã£ã¯ã¹ãæå¹ã«ãªã£ãŠããŸãã
Angularjs
ãã§ã«
AngularJsã«è§ŠããŠããããã®ãããžã§ã¯ãã§ã©ã®ããã«ããªã䜿çšãããŠããã®ããããã«è©³ããçè§£ãããšãã
æ¥ãŸããã 誰ããAngularJsã«æ
£ããŠããªãå Žåã¯ããããSpring for Javaãªã©ã®ãã¬ãŒã ã¯ãŒã¯å
šäœã§ããããšãèšåãã䟡å€ããããŸãã ã€ãŸããè£å©é¢æ°ã ãã§ãªãããããšãšãã«äœ¿çšããå¿
èŠãããããã°ã©ãã³ã°ææ³ãå«ãŸããŠããŸãïŒäŸåæ§æ³šå
¥ïŒè§åºŠã³ã³ããŒãã³ããäœæãããšãã®äŸåé¢ä¿ã®èª¬æïŒãã¢ãžã¥ãŒã«æ§ïŒå€æ°ã®å¯èŠæ§ãåé¢ã§ããããã°ã©ãã³ã°ãã¿ãŒã³ïŒãåæ¹åãã€ã³ããŒïŒå€æ°ã倿Žããããšãç»é¢äžã®ã³ã³ããŒãã³ãã倿Žãããç»é¢äžã®ã³ã³ããŒãã³ãã倿ŽããããšïŒããã¹ãå
¥åããã§ãã¯ããã¯ã¹éžæãªã©ïŒã倿°ã®ç¶æ
ã倿ŽãããŸãã 詳现ã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ïŒãã¿ãã¬ãã芧ãã ããïŒã
ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã¯ã
/ public / jsãã©ã«ããŒã«ãããŸãã ãã¡ã€ã«
/public/js/app.jsã«ã¯ãäŸåé¢ä¿ã
Angularã®ã¡ã€ã³ã¢ãžã¥ãŒã«ãããŠã³ããŒãã«é¢ããããŽãšçœ²åä»ãã®èµ·åç»é¢ãèšè¿°ãããŠããŸãã
ãµãŒãã¹
ãã¹ãŠã®ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ããžãã¯ã¯ã
/ public / js / servicesãã©ã«ããŒã«ãããŸãã
颿°
debounce ïŒåãã³ãã³ããæããããã§ã³ãŒãã1åã ãå®è¡ã§ããåçŽãªã¯ãšãªãã£ã«ã¿ãŒïŒã«ã€ããŠèª¬æããŸãã ãããŠã³ã¹ã¯jsã®ããã°ã©ãã³ã°ãã¿ãŒã³ã§ããããšãã°ãäœãèããã«ããã¹ãã倿Žãããšãã«ä¿åæ©èœãåŒã³åºããïŒããŒãæŒããã³ã«ïŒé »ç¹ã«åäœããªãããšã確èªããããã«äœ¿çšãããŸãã çŸåšããã®é¢æ°ã¯éåžžã«åçŽã«æ©èœããæåŸã®é¢æ°åŒã³åºãã®å°ãåŸã«ã³ãã³ããåŒã³åºããŸãã ãŠãŒã¶ãŒãããã¹ããå°å·ããŠèª€ã£ãŠã¿ããéãããããŒãžããªããŒãããããããšã圌ã®è²Žéãªäœæ¥ããã¹ãŠæ¶ããŠããŸãå¯èœæ§ããããŸãïŒãã®ãã°ã«é¥ã£ãããšããããŸãïŒã
ãŸãã
ããã¥ã¡ã³ãã¹ãã¬ãŒãžãµãŒãã¹ãš
ãŠãŒã¶ãŒãããŸã ã ãã©ãŠã¶ã®ããŒã«ã«ã¡ã¢ãªã«æ
å ±ãä¿åããåæåäžã«èªã¿åããŸãã å¥åŠãªããšã«ãããã¥ã¡ã³ããµãŒãã¹ã¯ããã¥ã¡ã³ããã€ãŸããå
¥åããããã¥ã¡ã³ãã®ããã¹ããååãããã³ãã®ä»ã®ã¡ã¿ããŒã¿ãä¿åããŸãã ãããŠããŠãŒã¶ãŒãµãŒãã¹ã¯èšå®ãä¿åããŸãã
ãŸãããã®ãã©ã«ããŒã«ã¯ã
wordscountãš
notification serviceã® 2ã€ã®ãµãŒãã¹ããã
ãŸã ã æåã®ãµãŒãã¹ã§ã¯ãã¹ãŠãæç¢ºã§ãç°¡åã§ãã 2çªç®ã®ãµãŒãã¹ã®ã³ãŒãã®éã¯æãããå ŽåããããŸããããã¹ãŠãéåžžã«åçŽã§ããããã¯ããŠãŒã¶ãŒã«ãããã¢ãããŠã£ã³ããŠã衚瀺ã§ããæ©èœã説æããŠããŸãã ã³ãŒãã®äž»èŠéšåã¯ãéç¥ã®çžå¯Ÿäœçœ®ãèšç®ããããããé çªã«è¡šç€ºãããŠã£ã³ããŠã®ã¯ããŒãºãåŠçããŸãã
htmlãã¡ã€ã«ã¯éç¥ãã³ãã¬ãŒããšããŠäœ¿çšãããããŽãšã¡ãã»ãŒãžããã®äžã«è¡šç€ºãããŸãã
ã³ã³ãããŒã©ãŒ
ã³ã³ãããŒã©ã䜿çšãããšãããã«ç°¡åã«ãªããŸãã ãããã¯ãejsãã³ãã¬ãŒãã§èª¬æãããŠããã€ãã³ããåŠçããŸãã ããšãã°ã
ãŠãŒã¶ãŒã³ã³ãããŒã©ãŒã¯
ããããããŠã³ã¡ãã¥ãŒã®ãã¿ã³ã®ã¯ãªãã¯ãåŠçãã
ããã¥ã¡ã³ãã³ã³ãããŒã©ãŒã¯å·ŠåŽã®ã¡ãã¥ãŒã®ã€ãã³ããåŠçããæ°ãããã¡ã€ã«ãäœæããŠèªåä¿åããŸãã
ãŸãã
ãã¡ã€ã«ãšã¯ã¹ããŒãã³ã³ãããŒã©ãŒããã
ãã¡ã€ã³ããŒãžã®ãã©ãŒã ã䜿çšããŠãã¡ã€ã«ãã¢ããããŒãããŸãã ãããŠãMarkdownãã¬ã³ããªã³ã°ããããã®
ã³ã¢ãã©ã°ã€ã³ã§ãµãŒããŒã«éãããŸãã
ã³ã³ãããŒã©ãŒã¯ãããã¹ããšãã£ã¿ãŒèªäœãæ§æããŸãã æ®å¿µãªããšã«ãããã¹ããšãã£ã¿èªäœã«ã€ããŠã¯ã»ãšãã©æžãããŠããŸããã äž»ãªæ©èœã¯
Ace Editorã«å§ä»»ãããç§ãèŠã€ããã®ã¯
ããŒããšããã¹ããšãã£ã¿ãŒã®
æ§æã 2åã ã ã§ãã ïŒã³ãŒãã®éè€ã®ããããã°ããããããããŸããïŒã
æä»€
ejsãã³ãã¬ãŒãã«ã€ããŠèª¬æãããšãã«ããã§ã«ãã£ã¬ã¯ãã£ãã«ã€ããŠèšåããŸããã ãã£ã¬ã¯ãã£ãã¯ãç¬èªã®ããžãã¯ãæã€ä»»æã®htmlèŠçŽ ãŸãã¯å±æ§ã§ãã ãããžã§ã¯ãã«ã¯ãããã®å€ãããããŸããã詳现ã«ã€ããŠã¯èª¬æããŸãããéåžžã«ã·ã³ãã«ã§ãèå³ã®ãã人ã¯
/ public / js / componentsãã©ã«ããŒããããžã§ã¯ãã®ä»ã®ã³ãŒããŒã§ããããæ¢ãããšãã§ããŸãã
ããã¯ãšã³ã
ããã¯ãšã³ãã«ã€ããŠã¯ããŸã説æããŸããã ãã®ãããžã§ã¯ãã§åœŒã«äŒããŠé©ããã ãããžã§ã¯ãã®ããã¯ãšã³ãã¯ãã©ã°ã€ã³ãšããŠå®è£
ããã
/ pluginsãã©ã«ããŒã«ãããŸãã ãã®äžã«ã¯ãMarkdownãPDFãHtmlãMarkdownã«ã¬ã³ããªã³ã°ãã
ã³ã¢ãã©ã°ã€ã³ããããŸãã ãŸããå€éšãµãŒãã¹ãšçµ±åããããã®4ã€ã®ãã©ã°ã€ã³ã¯ããããã
ããã³ããšã³ãã®å¯Ÿå¿ãããã©ã°ã€ã³ãšäœµããŠèªãã®ãçã«ããªã£ãŠããŸãã ãããã¯ãæ¿èªãåŠçãããã©ãŒã ãã¬ã³ããªã³ã°ãããŠãŒã¶ãŒããè¿œå æ
å ±ãåéããåãªãã¢ããã¿ãŒã§ãã ã ãããã¢ããã¥ã¢ã®ããã«èªãã§ã誰ãããããé¢çœããšæã£ãããç§ã¯æ¢ããŸããã
ãã®ãããžã§ã¯ãã«ã€ããŠã¯ããããååã§ãããã 仿¥ãã€ã³ãã©ã¹ãã©ã¯ãã£ãããã³ããšã³ããããã¯ãšã³ããå«ãNode.jsäžã®åçŽãªã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ãèŠã€ããŸããã ããªããäœãæ°ããããšãåŠã³ããã®ãããžã§ã¯ããã©ã®ããã«æ©èœããããæããã«ãªããããããããªãèªèº«ãããè¯ãããããã®ããæç¢ºãªããžã§ã³ãçŸããããšãé¡ã£ãŠããŸãã éèŠãªãããã¯ãã«ããŒããããšãå¿ããããäœãã«æ°ã¥ããªãã£ãããæžãããããŠããããä¿®æ£ãããŠããã ããŸãã
æ®å¿µãªãããçŸåšã®ããŒãžã§ã³ã®ããã¹ããšãã£ã¿ãŒã®ãã¬ãŒã ã¯ãŒã¯å
ã§ã¯
ãMartin Broderã®ãã¹ãŠã®
ã¢ã€ãã¢ãå®è£
ãããŠããããã§ã¯ãããŸãããããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®ããã®äœæ¥ããããŸãã ãã®ãããžã§ã¯ããçè§£ãããšããç§ã¯ããã€ãã®åé¡ãæžãã1ã€ã®ãã°ãä¿®æ£ããåãããšãããããã«ä¿ããŸããã å°ãªããšãããªãèªèº«ã®ããã«ãããããŠãã ãã;ããªãã¯ç¢ºãã«ä»ã®äœãé¢çœããã®ãèŠã€ããã§ãããã ã©ãã ãã®ä»äºãããªããåŸ
ã£ãŠããããèŠãŠãã ããã
èšäºã®å·ç以æ¥ãå€ãã®ããšãå€ãã£ãå¯èœæ§ããããŸãã å·çæç¹ã®æåŸã®ã³ãããïŒ
c3782a8dc0b91e5a6ae2c2ecd528daa1f42b3a9a