EMC2NARY

#JavaScript

JavaScriptに関連する技術メモ。


テキストから一意の値を算出する

タグに自動で色がつくようにしました。なお、同一のタグは同一の色がつくようになっています タグのコンポーネントはこんな感じ <template> <b-badge pill v-bind:style="'background-color : #'+ string_to_utf8_hex_string(tag).substr(1,6) + ';'" class="mr-2" v-bind:to="to">{{tag}}</b-badge> </template> <script> export default { props:["tag","to"], methods : { string_to_utf8_hex_string : function(text){ var bytes1 = this.string_to_utf8_bytes(text); var hex_str1 = this.bytes_to_hex_string(bytes1); return hex_str1; }, string_to_utf8_bytes : function(text){ var result = []; if (text == null) return result; for (var i = 0; i < text.length; i++) { var c = text.charCodeAt(i); if (c <= 0x7f) { result.push(c); } else if (c <= 0x07ff) { result.push(((c >> 6) & 0x1F) | 0xC0); result.push((c & 0x3F) | 0x80); } else { result.push(((c >> 12) & 0x0F) | 0xE0); result.push(((c >> 6) & 0x3F) | 0x80); result.push((c & 0x3F) | 0x80); } } return result; }, bytes_to_hex_string : function(bytes){ var result = ""; for (var i = 0; i < bytes.length; i++) { result += this.byte_to_hex(bytes[i]); } return result; }, byte_to_hex : function(byte_num){ var digits = (byte_num).toString(16); if (byte_num < 16) return '0' + digits; return digits; } } } </script> この後はワードクラウドとか作りたい

術後16日:座り仕事

1日飛ばしていた くらいには回復してきた 今日術後はじめて座り仕事に復帰できた!痛みも少ない! ただ座っていると浸出液は半端じゃない。立ち上がるたびにスポンジから水が出るときのような音がする。慣れる。 痛みレベル:昨日より痛くない、だいぶ落ち着いた! 今日は座れた喜びで、仕事と、放置気味だった実装したかったものをいくつか実装。おかげでこのブログもブログとしての体が整ってきた。 記事ページにnextとpreviousを実装した。microCMSでは記事を取得するAPIにはない項目なので、nuxt.config.jsのroutes()に以下のように追加 async routes () { await axios.get(...) .then((res) => { res.data.contents.map((post,index) => { let nextArticle = ""; if(res.data.contents[index + 1]) nextArticle = res.data.contents[index + 1]; let previousArticle = ""; if(res.data.contents[index - 1]) previousArticle = res.data.contents[index - 1]; generates.push({ route: '/post/' + post.id, payload :{"post":post, "next": nextArticle,"previous" : previousArticle }}); map()は第二引数でindexを取得可能。その値を使って前の記事と後の記事を参照している。現状は記事全文を代入しているがその必要はないかもしれない。。。 これでnext,previousを持っていれば下に表示するように。bootstrap cardで構築しようと思ったけどめんどくさかったのでとりあえずb-linkだけにした。 とりあえずブログとしての体裁はそろったが、、、これが100記事、1000記事とスケールしていった時のことが少し心配。 まあ最悪FTPじゃなくてGithub Pagesでもいいな。どうとでもなりそう。 開発楽しい。社会人サークルの方も進めよう。