noteã®èšäºãMarkdownã§æžãæ¹æ³
åŒè·å£«ãããã³ã ã§ã¯noteã«ãŠããã°ãéå¶ããŠããã®ã§ãããäž»ã«ãšã³ãžãã¢ã®æ¹ãããMarkdownã§æžããªããã§ãã?ããšãã質åãããã ãäºããããŸãã
èšäºãå ¬éããåã«ã¯ç°¡åãªç€Ÿå ã¬ãã¥ãŒãããŠããã®ã§ãããã¬ãã¥ãŒãåããŠèšäºãä¿®æ£ããéãGitãªã©ã§ããŒãžã§ã³ç®¡çãããããªãã®ããšã³ãžãã¢ã®ç¿æ§ã§ããèšäºãMarkdownãªã©ã§æžããŠãããŒã«ã«ãã¡ã€ã«ãšããŠä¿åããŠãããã°ãå±¥æŽç®¡çã¯ç°¡åã«ã§ããããã«ãªããŸãã
ãããæ®å¿µãªããã2019幎8æçŸåšã§ã¯ãMarkdownã§æžããšããMarkdownããã€ã³ããŒããããšãã£ãã€ã³ã¿ãŒãã§ã€ã¹ã¯çšæãããŠããŸãã (ãã¶ã)ã
ãããããã¯ãMarkdownã§æžããªããšããããšãæå³ããŸãããèŠã¯ãMarkdownã§æžãããç·šéãããããå
容ããç°¡åã«noteã«åæ ã§ããã°ããã®ã§ãããã®æ¹æ³ã®äžã€ãããã§ã玹ä»ããŸãããã
noteã®èšäºä¿åã®ä»çµã¿ã調ã¹ã
noteã§èšäºãäžæžãä¿åããéãéä¿¡å 容ãç£èŠãããšã以äžã®ãããªURLã«å¯ŸããPOSTã¢ã¯ã»ã¹ã確èªã§ããŸãã
https://note.mu/api/v1/text_notes/draft_save?id=xxxxxxx
POSTã®ãªã¯ãšã¹ãããã£ãèŠããšãJSONãéãããŠããããšãããããŸãã ãã®JSONã«ã¯ãèšäºã®ã¿ã€ãã«ãšèª¬ææã衚ããšæãããname, descriptionãšãããã©ã¡ãŒã¿ããããŠbodyãšãããã©ã¡ãŒã¿ããããŸãã ãã®bodyã®äžèº«ãèŠããšã以äžã®ãããªæååãæ ŒçŽãããŠããŸãã
<p name="yTP0V">2019幎8æ5æ¥ãåŒè·å£«ãããã³ã ã®äŒå ŽæäŸã§<a href="https://bengo4.connpass.com/event/136265/" rel="nofollow">ã¿ããªã«LTïŒåLTæè¿ïŒ</a>ãšããã€ãã³ããéå¬ããŸããã</p>
âŠâŠããã¯èšäºæ¬æã®HTMLãã®ãã®ã§ãã
pèŠçŽ ã«è¬ã®name屿§ãã€ãããããŠããŸãããéçºè ããŒã«ã§ç¢ºèªãããšãçŸåšã®ç·šéç»é¢ã®HTMLã«ãå šãåã屿§ãã€ããŠããäºãããããŸããã€ãŸããçŸåšç·šéäžã®æ¬æã®HTMLãããã®ãŸãŸæååã«ããŠéã£ãŠããã®ã§ã¯ãªãããšäºæ³ã§ããŸãã
ããã§è©Šãã«ãäžæžãäžã®æ¬æãã(noteã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããã«)éçºè ããŒã«ãçšããŠæžãæãããäžæžãä¿åããã¿ã³ãæŒããŠã¿ããšãæžãæããå 容ãPOSTãããããšãããããŸãããŸãããã®å 容ã¯åé¡ãªãä¿åãããŸããã
ã€ãŸããäžæžãç»é¢ã®HTMLãäœããã®æ¹æ³ã§å¥œããªããã«æžãæãããã®ç¶æ ã§ãäžæžãä¿åããæŒãã°ãããããã®ãŸãŸä¿åã§ãããšããããã§ãã
以äžã§ããããããã®è©±ã¯çµãã£ãŠããã®ã§ãããããå°ã现ãããšããã説æããŠãããŸãããã
MarkdownããHTMLãäœã
ãããŸã§ã§ãnoteã®ç·šéç»é¢ã®HTMLãæžãæããŠä¿åãããšåæ ããããšããäºãããããŸããã ã€ãŸããèšäºã®HTMLãçšæããç·šéç»é¢ã«ãã®HTMLãåæ ã§ããã°è¯ãããã§ãã
ããŠãMarkdownã§æžããããšãã話ã§ããããMarkdownã¯ç°¡åã«HTMLã«å€æããäºãã§ããŸãã ç§ã¯ pandoc ãšããã³ãã³ãã©ã€ã³ããŒã«ããã䜿ã£ãŠããŸããããšãã°ä»¥äžã®ãããªã³ãã³ãã§å€æã§ããŸãã
pandoc noteã®èšäºãMarkdownã§æžãæ¹æ³.md -o temp.htmlããã§ temp.html ã«HTMLãæžãåºãããŸãã ããšã¯ããã®HTMLãéããŠã³ããŒããnoteã®ç·šéç»é¢ã«è²Œãã ãã§ãã
noteã«è²Œã
èšäºã®æçš¿ç»é¢ã«å ¥ã£ãããèšäºã®èŠåºããæ®éã«å ¥åããŠãã ããã
ãããŠèšäºã®æ¬æã貌ããŸãã ããŠãã©ãã«è²Œãã®ãã§ãããç·šéç»é¢ã®HTMLãæ¢ããšä»¥äžã®ãããªdivãããã¯ãã§ãã
<div class="body-wrapper editable medium-editor-element" data-placeholder="ããŒãæ¬æ" id="note-body" ng-bind-html="$ctrl.noteModel.note.body" contenteditable="true" spellcheck="true" data-medium-editor-element="true" role="textbox" aria-multiline="true" data-medium-editor-editor-index="1" medium-editor-index="xxxx" data-medium-focused="true">èŠã¯ div#note-body ãæ¢ããŠãã ããããã®divã¯æ®ããŠãäžèº«ãå šãŠçœ®ãæããŸãã ããšã¯äžæžããä¿åããã ãã§ãã
ç»åã远å ãã
ç»åã¯noteã®ã€ã³ã¿ãŒãã§ã€ã¹ããã¢ããããŒãããªããšãã¡ã ãšæããŸãã ããã¹ããåæ ããŠä¿åããåŸã«ãæåã§è¿œå ããŸãããã
ç»å远å åŸã¯ä»£æ¿ããã¹ããæå®ãã
noteã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ç»åã远å ãããšããã¡ã€ã«åãaltã«å ¥ãããšããããŸãã å¿ ãå ¥ãããã§ã¯ãªãããã¡ã€ã«åã«ãã£ãŠã¯ãç»å1ãã®ãããªaltã«ãªãããšããããŸãã ããã¯äžé©åãªã®ã§ãç»åã远å ãããå¿ ãç»åã®alt屿§ãæžãæããŸãããã
ãªããalt屿§ã®å€ã空ã«ããå Žåã空ã®ç¶æ ã§ä¿åã§ããŸãããæ¬¡ã«ç·šéç»é¢ãéããéã«ã¯ãç»å1ãã®ãããªaltã«çœ®ãæããããŠããŸããŸãã
泚æç¹
ãšããããšã§ç°¡åãªã®ã§ãããæ³šæç¹ãããã€ããããŸãã
æ¶ãããããŒã¯ã¢ããããã
ãŸããä¿åãããšæ¶ãããŠããŸãããŒã¯ã¢ãããçµæ§ãããŸãã ããšãã°scriptèŠçŽ ãªã©ã¯æžããŸãã (ç§ã詊ããç¯å²ã§ã¯æžããªããã§ãã)ã ãŸãã屿§ã¯æžããŸãããæžããŠããšã©ãŒã«ã¯ãªããŸãããããã¹ãŠåé€ãããŸããclassãalignãtitleãæ¶ããŸãã
以åã¯imgã®altãç¡èŠãããŠããŸããããæè¿ãimgã®altã«ç©ºã§ãªãå€ãå ¥ã£ãŠãããšç¶æãããããã«ãªããŸããã ããã¯éåžžã«ããããã倿Žã§ãã
èŠåºãã¬ãã«
noteã®ç·šéç»é¢ã®UIã§ããã¹ããèŠåºãã«ãããšãh3ã«ãªããŸããèšäºã¿ã€ãã«ã¯h1ã§ãh2ã¯ååšããã«ãããªãh3ã«ãªããŸã (ãããããšããã¯ããã«ãnoteãããã§ãããã¡ããæªãæå³ã§ã§ã)ã
DOMæäœã§h4ãªã©ã®èŠåºããå ¥ãããšãä¿ååŸã«pèŠçŽ ã«å€æŽãããŠããŸããŸãã
h2èŠåºãã¯ç¶æãããŸãã ã§ã¯ãh2ãšh3ã䜿ã£ãŠèŠåºãæ§é ãäœãã°è¯ãã®ã§ã¯âŠâŠãšæããããããŸããã ãããå°ã£ãããšã«ãnoteã®ç®æ¬¡æ©èœã§ã¯h3以å€ã®èŠåºãã¯ç¡èŠãããŠããŸããŸãã ç®æ¬¡ã䜿ããªããŠããããã°ãh2ãšh3ã䜿ãã®ãè¯ããããããŸããã
ã¹ã¿ã€ã«ããããããªããã®
æ¶ãããªãããã©ãã¹ã¿ã€ã«ããããããªãããŒã¯ã¢ãããããã€ããããŸããÂ
ulèŠçŽ ãå ¥ãããšãæ®éã«å ¥ããŸããä¿åã§ããŸãããã¹ã¿ã€ã«äžããªã¹ãããŒã«ãŒãæ¶ããŠããŸããŸã (以åã¯ãªã¹ãããŒã«ãŒã¯æ®ã£ãŠãããšæããŸãããä»ã¯æ¶ããããã§ã)ã
codeèŠçŽ ãã¹ã¿ã€ã«ãæªãããé»èæ¯ã«é»æåã«ãªã£ãŠèªããªããªã£ãããæäžã®codeãdisplay:blockã«ãªã£ããããããã§ãã noteã®ç·šéç»é¢ã§ãæªãããªã£ãéšåãéžæããŠãcodeããæŒãããšããæäœãäœåºŠãç¹°ãè¿ããšèªããããã«ãªããŸãã
ä»ã«ãæªããèŠçŽ ã¯ãããããããŸãããÂ
ãŸãšã
noteã®ç·šéç»é¢ã匷åŒã«ç·šéãããšããæ¹æ³ã®ã玹ä»ã§ããã
ãšã¯ããåºæ¬çã«ãå ¬åŒãåäœä¿èšŒããŠããæ¹æ³ã§ã¯ãªãã®ã§ãããããããŸããããªããšããã¯ããã§ãããããŸããnoteã®ä»æ§ãå€ãã£ãŠçªç¶äœ¿ããªããªãå¯èœæ§ããããŸãã®ã§ããã®ç¹ã¯ãæ¿ç¥ããããã ããã°ãšæããŸãã
åœåã¯ç€Ÿå ã®ããŒãžã§ã³ç®¡çã®ä»çµã¿ã«ä¹ããããšæã£ãŠèª¿æ»ãã¯ãããã®ã§ãããçµå±ãå šäœã§å°å ¥ã§ããã»ã©ç¢ºå®ãªæ¹æ³ã§ããããŸããã®ã§ãç§ãè¶£å³ã®ç¯å²ã§å®è·µããŠããã ãã®ãã®ã«ãªã£ãŠããŸãã
ãšã¯ãããäžæžãç·šéã®DOMãæäœãããšãããããªããšãã§ãããšããã®ã¯ãããŸããŸãªå¿çšãå©ãããã§ããããšãã°ãç»åã®altãç·šéãããã©ãŠã¶æ¡åŒµãäœãã§ãããšãããããã£ãããšã¯ã§ãããšæããŸãã倢ãåºãããŸããã
远èš
ãªã©ãšæžããŠãããããã§ã«ãã©ãŠã¶æ¡åŒµãç»å ŽããŠããããã§ãã倢ãåºãããŸãããã

