トップに戻る

開発中のmkpages.jsについて

これはMisskey Advent Calendar 2021 18日目の記事です

はじめに

今年ももうすぐ終わりですね

皆さんはやり残したことはないですか?

自分はmkpages.jsの開発が終わってません

mkpages.js ってなに

mkpages.jsはMisskeyのPagesをJavaScriptから作ることができるnpmパッケージです

GitHub→https://github.com/kabo2468/mkpages.js

もちろん自分はTypeScript信者なのでちゃんと型もついてます

discord.jsのEmbedみたいにメソッドチェインで作れたらいいなみたいな感じで作り始めました

作り始めたのが2020年11月で、もう1年位経ってました

作るのが遅いですね

EmeraldScriptっていうのもある

EmeraldScriptというはまりはちさんが開発したPagesを作れるスクリプト言語です

https://github.com/marihachi/EmeraldScript

これでもページは作れるのですが、Botからページを操作したいときには使えないと思います

なのでBotから操作できるようにJSで書けるものを開発してます

どう使うの

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import { MkPages, MPButton, MPPost, MPText } from '../src';

// 1からページを作る
const page = new MkPages()
    .setTitle('Page name')
    .addComponents(
        new MPText({ text: 'Text' }),
        new MPButton({ action: 'dialog', title: 'Button', content: 'Dialog Content' }),
        new MPPost({ text: 'Post Form' })
    );

// オブジェクトにする
const obj = page.toObject();

// JSONからページを作る
const pageFromJSON = new MkPages(JSON.stringify(obj));
pageFromJSON.addComponents(new MPText({ text: 'Added Text' }));

const changedObj = pageFromJSON.toObject();

こんな感じで作れます

詳しくはREADMEを見てください

もう少しExamplesを追加する予定です

README見てわからなかったら僕に聞くかコード見て理解してください

コードわからない人は頑張ってください

変数は実装してないよ

変数は実装してません

理由は、最新版のMisskeyだと変数のところがバグっててデバッグができないのと、 近いうちにPagesのバージョンが変わると聞いたので、まだ実装してません

あと面倒

なので、Pagesのバージョンが上がったら実装予定です

ユニットテスト

人生で初めてユニットテストというものを書きました

何書けばいいのかわからなくてこんなんでいいのかみたいな感じです

ユニットテスト書いてると実装がおかしいところとか 必要のないコードとかがわかるようになるので、 書いたことない人も「こうなってほしい」みたいに書くといい感じ™になります

皆さん書きましょう

リリース

この記事と一緒にリリースをしようと思ったんですが、 JSONから作るとバグるというのを見つけたので間に合いませんでした

ユニットテストをしっかり書かないといけないね

今年中にはリリースできると思います というかしたい

いかがでしたか?

今年中にリリースするので待っててください

バグの原因はわかっているので頑張ってバグ直します

リリースしたらみんな使ってね

もしよかったらContributeしてくれると助かります

https://github.com/kabo2468/mkpages.js