-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
コードブロックの取得、および上書きを行う関数の追加 #108
Conversation
`api/code/:projectname/:pagetitle/:filename`で取得できるコードを直接書き換えることが出来る
これらの函数はupdateCodeBlock.tsでも使用する可能性があるため
PRありがとうございます! このPR上でコメントしたほうがいいのかな🤔 わからん |
質問や意見などは遠慮なくどうぞ! |
上げ忘れたコミットを上げたらCodeFileでconflictした… |
|
|
以下の対応を行いました。
|
このbranchって、自分のほうでもlocalで試せるんですかね? 近いうちに調べます |
どこまで求めているかにもよりますが、試すだけでしたら 一応リポジトリが違う扱いになっていた気がするので、git fetchはできないかも? |
- `getCodeBlocks.ts`のみ
ジェネレーター以外のfunctionをアロー関数に直しました |
ありがとうございます。mergeします |
以下は新しく作成したファイルの詳細です。
全て
browser/websocket/
以下に配置してあります。getCodeBlocks.ts
->getCodeBlocks()
指定したページ内(または予め取得しておいたBaseLine配列内)の中に存在するコードブロックを全て個別に返します。
この個別というのは、ファイル名ごとではなく、コードブロックの塊ごとに返すという意味です。
類似の関数として
../dom/extractCodeFiles.ts
が存在しますが、以下の理由により使用していません。scrapbox.Page.lines
を取得できない状態にあるページ)で使用するのが困難updateCodeBlock()
で使用するのが難しい内部的にはREST APIを叩いているだけなので、
websocket/
に配置するのは不適切かもしれませんが、そのAPIを叩く際に使用しているpull()がwebsocket/
以下にあったため合わせる形で同じ場所に配置しました。問題があれば、場所を移動させてください。
updateCodeFile.ts
->updateCodeFile()
プロジェクト名・ページ名・上書きするファイル情報の3つを渡せば、ページ内の同じファイル名のコードブロックを全て書き換える関数です。
api/code/:projectname/:pagetitle/:filename
で取得できるコードの中身を任意の文章で置き換えたい時に使えます。同じファイル名のコードブロックが同じページに複数存在した場合も、REST APIで取得できるコードが指定した文章になるように、それぞれのコードブロックに文章をちりばめる形で上書きします。
diff()
を使用しているため、差分量が少なければ変な形で文章が分散するのは減ると思われますが、見た目重視の分散をしているわけではないため、コードブロックが複数ある状態で実行するのはあまり推奨できないと思います。updateCodeBlock.ts
->updateCodeBlock()
getCodeBlocks()
で取得したコードブロックの情報を元に、特定の1つのコードブロックを書き換える関数です。_codeBlock.ts
updateCodeFile.ts
とupdateCodeBlock.ts
の双方で使用し、かつ外部へexportしたくない関数をまとめてあります。