ScrapCalc
記法が = から % に変更になりました
「Scrapboxで計算ができるようになった。何に使えるかな?」と考えても用途を思いつくものではない
しかし、ページ上で何か計算が必要になったときScrapCalcを思い出すようなことがあれば役にたつこともあるだろう
Scrapboxのページ数 = scrapbox.Project.pages.length ページ
赤いのも含むやつか
東京オリンピックまで Math.floor((new Date('2021-7-23') - Date.now()) / (24 * 60 * 60 * 1000)) 日
テキスト = [% scrapbox.Page.lines.map( function(l){ return l.text} ).join("\n")]
というか既存のアイデアに名前がついてた
こちらの方式を使うかな... 増井俊之.icon
(1,eval)('a = 100') とすると window.a = 100 になるらしい
なんでやろ
成績判定できるなら、履修シミュレーションもできるじゃん!
増井俊之.icon
いろんな計算と文章書きを同じところでやるのは正しいことだと思う
Excelでもエディタでもこれができないのは間違ってる
年齢計算
増井俊之.icon は Math.floor((((1900+(new Date).getYear())+("00"+((new Date).getMonth()+1)).substr(-2)+("00"+(new Date).getDate()).substr(-2))-19590711) / 10000)歳
長いな...
こっちのほうがやや短い?takker.icon
Math.floor((new Date().getTime() - new Date(1959,6,11).getTime()) / (365 * 24 * 60 * 60 * 1000))歳
グラフを描く
増井俊之.icon の体重
'I'.repeat(99.1) 2020/3/27 99.1
'I'.repeat(97.8) 2020/4/17 97.8
'I'.repeat(95.1) 2021/2/2 95.1
'I'.repeat(93.1) 2021/2/25 93.1
実装
環境依存しそうですが、下記のkeypressをkeydownにする必要がありましたyanma.icon
Ctrlキーでkeypressイベントが出ない場合があるようです。
修正しました! 増井俊之.icon
2023/5/7 変数に2023/5〜2023/4を使うと以下のエラーがでました基素.icon
頭に数字が入るとダメみたい基素.icon
/も割り算になるからダメか基素.icon
code:js
function scrapcalc_exec(){
for(let e of document.querySelectorAll('.deco-\\%')){
let text = e.innerText;
// 全角カギカッコを配列などで使えるようにする苦しい工夫
if(text.match(/=/)){
(0,eval)(expr); // 何故かこれでstrictが有効でなくなる? <- ここでエラー
}
// 省略
code:console
dex.js:2 Uncaught SyntaxError: Invalid or unexpected token
at eval (<anonymous>)
at scrapcalc_exec (script.js:7:19)
text.match(/=/)がなにをしているのかわからないtakker.icon
上の説明を見る限り、=を使っているかどうかに関わらず実行しているように見える
decodeURIいるのかな
変数名を2023/5〜2023/4にしたということですか?takker.icon
2023/5〜2023/4のX=...にしました基素.icon
たとえば2023/5〜2023/4のX=45 * 56のように書いて実行したということでしょうか?takker.icon
そうです基素.icon
結論としては頭に数字を使ってはいけないのと/は使えない。JavaScriptの制約基素.icon
変数名の先頭に数字を使える言語と/を含められる言語がそもそもなさそうtakker.icon
これを使っている時にJavaScriptで計算するぞ〜という意識はないので、できないとなんで?と思った基素.icon
なるほど使うときのメンタルモデルの違いかなtakker.icon
自分はコードとしか見てなかったので、変数に自由な文字を入れるという発想がなかった
自由に変数を使えるようにするには
とりあえず内部で変数として使える何らかの文字列に変換して対応づければいいtakker.icon
MD5で小文字alphabetのみで構成されたハッシュ値を生成して、それらとMapで結びつければいいだろう こういうのを作り込んでいくと泥酔志向で使えるソフトになっていく基素.icon
=の文字装飾記法がなくなってしまったようだ
なんとyosider.iconsta.icon
一応一時的なものだったらしい
「=」は使うなとshokai.iconに言われたので「%」に変更しました 増井俊之.icon
すみません
行で列挙して足してくれるのはこれじゃないですよね