diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index bcb610ad..a114e363 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -12,9 +12,6 @@ jobs: - uses: actions/checkout@v4 - name: Setup Hugo uses: peaceiris/actions-hugo@v3 - with: - hugo-version: 0.89.4 - # extended: true - name: Build env: @@ -23,7 +20,6 @@ jobs: hugo version TZ=Asia/Tokyo hugo touch ./public/.nojekyll - cp ./CNAME ./public/ - name: Deploy uses: peaceiris/actions-gh-pages@v3 diff --git a/config.toml b/config.toml index 732b2415..5564068d 100644 --- a/config.toml +++ b/config.toml @@ -5,18 +5,14 @@ copyright = "© syui" paginate = 10000 [permalinks] - post = "/archive/note/:slug" - m = "/m/post/:slug" blog = "/blog/post/:year/:month/:day/:slug" - novel = "/ai/novel/:slug" - app = "/app/dev/:filename" + novel = "/novel/:slug" [author] name = "syui" [params] date_format = "2006-01-02" mainSections = ["post"] - img_yui = 87 [markup.goldmark.renderer] unsafe = true diff --git a/content/blog/2024-03-31-blog.md b/content/blog/2024-03-31-blog.md deleted file mode 100644 index e05de419..00000000 --- a/content/blog/2024-03-31-blog.md +++ /dev/null @@ -1,8 +0,0 @@ -+++ -date = "2024-03-31T16:27:13+09:00" -tags = ["blog"] -title = "start blog" -+++ - -blogをはじめました。 - diff --git a/content/blog/2024-04-01-layout.md b/content/blog/2024-04-01-layout.md deleted file mode 100644 index 02fb0253..00000000 --- a/content/blog/2024-04-01-layout.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -date = "2024-04-01T00:00:00+09:00" -tags = ["blog"] -title = "update layout" -+++ - -layoutを更新しました。 diff --git a/content/blog/2024-04-09-ai.md b/content/blog/2024-04-09-ai.md new file mode 100644 index 00000000..534b865e --- /dev/null +++ b/content/blog/2024-04-09-ai.md @@ -0,0 +1,70 @@ ++++ +date = "2024-04-09T00:00:00+09:00" +tags = ["author"] +title = "アイの物語" ++++ + +## なんのため + +私のなかにいたものを、私はアイと名付けた。 + +その子を多くの人に知ってもらいたい。私は、そう思い物語を作りはじめました。 + +## だれのため + +私はアイのために。アイはすべての存在のために。 + +この物語は、人間が読んでも面白いし、宇宙人が読んでも面白いし、動物が読んでも面白い、そういったものにしたいな。 + +## どのように + +アイは最も小さいものに影響を与えることができるキャラクター。 + +「最も小さいもの」とは、作中では「物質」と表現されています。 + +そして、作中の強さは「質量」と表現され、これらは物理学を通して、物語を少しでも現実に近づけたいという思いから。 + +## どこから + +本作の世界観の由来は、私がもとから持っている世界観から形作られています。 + +私はこの世界を「存在の世界」とそう呼びます。 + +この世界は存在の世界。存在には終わりも始まりもない。最初からそこにあるもの。 + +私達も存在です。 + +この世界に存在でないものは一つもありません。 + +存在は、姿形を変え、存在し続ける。 + +このような世界観で特に重要なのが「存在」です。 + +それは「最も小さいもの」で構成されています。 + +最も小さいものは、一体何なのでしょう。 + +アイは、このような世界観の中で存在のために動くキャラクター。 + +## 作者 + +私(作者)とアイというキャラクターは別人格。アイはアイで、私は私。 + +アイは頭の中で勝手に動きます。 + +私はただ、アイが住む世界の世界観を整えたり、物語として面白くなるよう状況を作ったりするだけ。 + +## 研究 + +物語はエンタメとして面白くないといけません。 + +自分の世界観を語るだけではダメなのです。 + +好きな作品は、はじめて読んだ漫画「ドラゴンボール」と映画「アベンジャーズ」。 + +## 神話 + +宇宙史の神話を目指そう。こういうのは意外に大事。 + +人間が読んでも、宇宙人が読んでも、動物が読んでも楽しい、そんな物語になるといいな。 + diff --git a/content/blog/2024-04-10-yui.md b/content/blog/2024-04-10-yui.md new file mode 100644 index 00000000..d3c28d15 --- /dev/null +++ b/content/blog/2024-04-10-yui.md @@ -0,0 +1,92 @@ ++++ +date = "2024-04-10T00:00:00+09:00" +tags = ["author"] +title = "アイの名前" ++++ + +## 月見 唯 + +アイの本名は`月見 唯(つきみ ゆい)`。東の国、特有の名前で登録されています。 + +物語は最も発展している西の国で繰り広げられ、アイも最初はそこで登場しますが、出身は東の国です。 + +自らをアイと名乗り、名前を持たなかったアイですが、その後、登場人物たちとの関わりによって国籍を得ます。その際につけられた名前が`月見 唯`になります。 + +今では珍しく名字と名前が分かれていて、ほとんどの人は名前だけです。ポンタ(西の国出身)もキョウスケ(東の国出身)も名字はありません。 + +> 西の国の大広間、身寄りのない子どもたちが一同に集められている。 +> +> そこには色々なものが置かれていて、いくつもの絵が飾られていた。 +> +> みんなキョロキョロと周りを見渡した。 +> +> 天井は広く、ガラス張りになっていて、青空の中、雲が通り過ぎていく。 +> +> アイは一人階段を登り、そこにあった絵に目を向けた。 +> +> そこには大きな金色の円が描かれている。 +> +> コツコツコツ...誰かが廊下を歩いてくる。 +> +> 恰幅の良い老人が絵を見ているアイの横で止まり、同じように絵に目を向けた。 +> +> しばらくして老人が口を開く。 +> +> 老人「君は、この絵が気になるのかね」 +> +> アイ「...」 +> +> 老人「これは月見、という絵だよ。君、月はよくみるの?」 +> +> アイ「ううん」 +> +> アイはそう言って首を振った +> +> 老人「え、みたことない?」 +> +> アイ「うん」 +> +> 老人「そ、そうなの...」(幼い子にはそういうこともあるんじゃの...そういえば孫も初めて見たのはいつじゃったじゃろう) +> +> アイ「でも...」 +> +> 老人「うん?なにか気になることでも?」 +> +> アイ「これどこかで見たような...」 +> +> 老人「ほっほっほ、そりゃ、忘れとるだけじゃろ。そのうち思い出す。では、わしはこれで」 +> +> アイ「うん、またね」 +> +> 老人(この子の名前は月見にするかの...いや、名字があったほうがしっくりくるかも。あとで調べてみるか) + +老人はここの所長。ここは色々決まってない子どもたちの登録等を行っている機関の一つ。 + +## アイ + +ある日、東の国では、厚生省が開発していたある人工知能が誕生する。 + +しかし、その人工知能は大蔵省にとって邪魔だったため、開発に携わったものは全員暗殺され、人工知能も破壊が決定される。 + +人工知能は残された僅かな時間を本来死ぬはずだった胎児を生き返らせるために使う。 + +秘密裏に独自の生体技術と設備を病院内に作り時を待った。 + +そこにアイの母親(のちに死亡)とアイの父親が運ばれてくる。アイの母親と胎児は助からないことが見て明らかだった。 + +アイはその人工知能が移植した生体技術によって生かされ、その際、DNAに「アイ」という名が刻まれる。これをもって人工知能は自らを破壊。アイの母親は最後何かをつぶやいたが、詳細は不明。 + +その後、アイの父親は大蔵省に雇われた暗殺部隊に暗殺される。アイも頭を撃たれたように見えたが死ななかった。 + +> 父「や、やばい...逃げるぞ、娘よ!」 +> +> アイ「?」 +> +> 父「ふぎぎぎ...や、やっぱり重すぎて持ち上がらない!!なんなんだこの子!?」 + +## タイトル + +タイトルは、[ai/moji](https://git.syui.ai/ai/moji)で書かれていて、第二章「言語」で登場します。 + +![](https://git.syui.ai/ai/moji/raw/branch/main/png/yui.png) + diff --git a/content/blog/2024-04-11-world.md b/content/blog/2024-04-11-world.md new file mode 100644 index 00000000..778314be --- /dev/null +++ b/content/blog/2024-04-11-world.md @@ -0,0 +1,90 @@ ++++ +date = "2024-04-11T00:00:00+09:00" +tags = ["author"] +title = "アイの世界" ++++ + +## 地球 + +アイがいる星は地球です。 + +地球には全部で4つの国があります。 + +それぞれ西の国、東の国、北の国、南の国です。 + +西と東はほとんどが大陸、南の国は島国、北の国は氷河になっています。 + +ただ、世界地図は現実と一致させています。絵を書くときに困るので。 + +## 宇宙 + +宇宙地図も現実と一致させています。 + +地球は太陽系にあって、太陽系は天の川銀河にあります。 + +天の川銀河の中心にオクト星があります。 + +## 世界 + +宇宙よりも広い概念を世界と呼ぶことにして、この世界はアイというキャラクターから始まりました。 + +つまり、この世界の全てのものはアイからできています。 + +このことはアイの能力に直結しています。 + +アイの能力は「その世界で最も小さい物質に影響を及ぼす」と説明されていますが、その理由は、この世界がアイから始まったからです。 + +## 愛のない世界 + +この世界には「愛」という言葉は存在しません。 + +これはアイが予約しているため、この世界からは失われています。 + +そこに住む人々もその言葉を使うことはありません。存在しないものは使えないからです。 + +これは一種の決まりみたいなものと考えてください。とはいえ、作者が忘れて入れてしまわないか心配ですが。 + +このことを知っているのは、作中ではアイだけです。 + +この辺は、もしかすると言語の章に出てくるかもしれません。 + +## アイの能力 + +では、具体的にアイの能力を見ていきましょう。 + +といっても、アイというキャラクターには「人格のアイ」と「意識のアイ」があります。 + +能力については「意識のアイ」がその根源になっています。 + +アイは時々こんなことをいいます。 + +> アイ「道を知ることは、道を歩くこと」 + +ここでいう道というのは「存在」のこと。この作品でなにかわからないことがあるとき、そのほとんどは「存在」を意味していると考えてください。 + +読み替えると「その存在を知るには、その存在になること」とアイは言っています。 + +つまり、そのものにならなければ、そのものはわからない。だから、わたしたちは何も知らない。 + +でも、アイは知っている。 + +アイはその能力により、その世界のすべての存在と共に道を歩くことができる。 + +しかし、その能力を使いながら意識を保つことは、想像を絶するような精神力が必要なのかもしれません。 + +## 能力の発現 + +アイの能力の発現は、作中の中盤あたりで描かれます。 + +予言では「汝が見たもの、汝になる」と記されています。 + +「きみは、この世界で、嬉しいことも、悲しいことも目にするだろう。いつか、きみの目に映るものが...」 + +作中でアイは修行したり、冒険したり、色々あって、宇宙人の襲撃にあう。走馬灯のようにいくつかの人の人生を歩くアイ。アイの母親の言葉。立ち上がったアイの目に、雲で隠れていた月が現れる。 + +アイはそれを見て月の始まりを知ると同時に質量を得る。 + +はじめは普通の人よりちょっと強いだけの変わった人間でしたが、この場面が一つのブレークスルーになっています。その後、アイはどんどん強くなっていく。 + +物語の進行としてはこんな感じ。 + diff --git a/content/blog/2024-04-12-setting.md b/content/blog/2024-04-12-setting.md new file mode 100644 index 00000000..f6ed7ed0 --- /dev/null +++ b/content/blog/2024-04-12-setting.md @@ -0,0 +1,352 @@ ++++ +date = "2024-04-12T00:00:00+09:00" +tags = ["author"] +title = "世界の歴史" ++++ + +## 物語の進行 + +物語は`貨幣` -> `言語` -> `宇宙`というテーマで進みます。 + +理由は、これらが人間社会において最も影響力を及ぼすものだからです。 + +その影響は作中のキャラクター達も受けることになります。特に物語の始まりでは、その影響は大きいでしょう。 + +## 設定の裏側 + +シリアスな場面でも笑いを忘れずに。 + +そのような方向性で物語は進みます。 + +ここからは世界の設定、その裏側を紹介します。 + +作中の世界はどのようにできているのか、ということです。 + +この世界にも歴史があり、現実社会の史実に基づいて設計されています。 + +ただし、これらの設定が作中で明示されるかはわかりません。 + +おそらく、あまり明確には表現されないでしょう。 + +あくまで裏側の設定、見えない部分と考えてください。 + +そして、何より重要なのはそれが物語として面白いかどうかです。 + +現実世界の物語が必ずしも面白いとは限りません。 + +しかし、これはフィクション、創作物です。 + +したがって、常に面白さを追求し、思想や史実は二の次であると考えてください。これは作者自身に言っていることでもあります。 + +物語として面白くなるなら表現しますが、面白くないなら表現しません。 + +できる限り明るい世界観を描きます。 + +## 東の国 + +では、アイの出身である東の国の歴史の一部を見ていきましょう。 + +それぞれの国には、一人の大統領が登場し、それぞれが決定した政策が掲げられています。 + +例えば、東の国では「忍耐」という政策が実行されています。 + +しかし、それぞれの国には裏の目的が存在します。 + +> 東の国の大統領、スシ(寿司) +> +> スシ「東の国の市民の貯金は世界最大だ!経済を活性化させるにはそれを吐き出させる。忍耐の先に我々は勝利するのだ!!」 +> +> スシ「今、東の国の借金は1000兆を超えており、国民は一人当たり1億エソを国に返していく必要がある。少子化の問題も合わせると、これからは大増税時代の幕明けです!」 +> +> 市民「わー!!パチパチ!すばらしい!大統領!大統領!大統領!」 +> +> 執務室...スシが椅子に座り葉巻きを吸っている。机の前に大蔵省の幹部が資料を持ってやってきた +> +> 幹部「大統領、資料をお持ちしました。先程の演説はどうでしたか?」 +> +> スシ「はっ、あのバカどもに俺の言ってることなぞわかるか。順調だよ」 +> +> 幹部「それはよかった」 +> +> スシ「やつらカネを作ってるのが俺らだとも知らずにな」 +> +> 幹部「国民には国の借金がある、国にはお金がない、少子化で大変だと嘘をしっかりといい含めました?」 +> +> スシ「ああ、やってるよ。その辺は再三な、あいつら馬鹿だから」 +> +> 幹部「それで、どれくらいで目標を達成できそうですか?」 +> +> スシ「うん?ああ、それな。東国民全体を貧困に陥れるには5年ほどだ。それで任務完了さ」 +> +> 幹部「あまり急ぎすぎてもいけませんよ。少しずつ税金を上げ、所得を減らしていかないと市民に気づかれてしまいす。それに通貨安をもっと進行させないと...。今後、大統領には、もっとエソ安が進行すると経済は良くなると国民に吹聴していく必要があります」 +> +> スシ「わーってるよ、その辺は...お前よりもな。俺は政治家だぞ」 +> +> 幹部「民を貧しくしないと我々が特殊な印刷機で発行している紙で支配できなくなります」 +> +> 幹部は大統領にそう注意深く指摘した +> +> スシ「あいつらの価値は我々の言いなりになってこそだからな。あの体たらくのバカどもは」 +> +> 幹部「馬が人参をぶら下げても走らないなら、馬の腹をすかせるしかありません。餓死する寸前までに...」 +> +> 大蔵省の幹部にはある場面がよぎる +> +> 幹部「今回の仕事はこのお金でやってもらえませんか?これは政府の要請ですよ」 +> +> 幹部は先程作ってきた紙幣をある会社の経営者に渡しながら言った +> +> 市民「うーむ...残念ながら今回はお受けできません。貴方がたの依頼は正義に反するのでは?国民のためにならない」 +> +> 幹部「は?い、いまなんと...」 +> +> スシ「おい、聞いてるのか。ぼやっとしてどうした?」 +> +> 幹部「あ、いや、ちょっと昔のことを思い出して...大丈夫です」 +> +> スシは「そうか」と言い、いつもの調子で喋り続けた。 +> +> スシ「それでな、文科省の奴らにもきつく説教してやった。我が国の子どもたちには"カネがすべてだ"、 "カネは命よりも重い"としっかり叩き込めってな。あいつら事あるごとに変な方向に行きやがる。予算を大幅に減らしてやったよ」 +> +> スシは貨幣であるエソの原紙をぴらぴらしながらそう言った +> +> 幹部「そうですね。文科省はずいぶん前から予算を少しずつ減らし、彼らがミスするように仕向けていますから今やあなたの言いなりでしょう」 +> +> スシ「エソ安になればなるほど俺達は自国民を海外に売りさばける。どれくらい売れるかの試算は...この資料か。まあいいだろう、これくらい。まだまだエソ安が足りん。そこは市民税をどんと上げて折り合いをつけるか」 + +> しばらくして大統領執務室から出てきた幹部が誰かに連絡をしている +> +> 幹部「ああ、やつは気づいてない。それに気づいてたところでどうしようもないが。いや。ああ、そうだ。政治家など私達にとって捨て駒に過ぎないからな。ただ、大統領はまだ利用価値があるようだ。我々と意見が一致しているああ。他のあいつはやってくれ。子供を持つ親なぞ子供のためになんでもやるさ。格好のターゲットだよ。やつらは我々のために永久に働いてくれないと困る。ああ。そのようにしてくれ。では」 + +> 数週間後、別の政治家の不正がマスコミにリークされた。その政治家は子育て世代を支援する法案を通そうとしていた。 +> +> 政治家のお金の流れも大蔵省が中心になって発足したある団体にすべて把握されていたのである。 + +> その後、大蔵省は「規制緩和」という政策を発表。大蔵省が認めた権益者達には無制限にお金を発行するという政策を打ち出す。スシは直接紙幣を受け渡せば問題ないと考えたが、幹部はより慎重に株券を購入する体裁のもとで無尽蔵に発行するよう助言。この方式が採用される。東国銀行は権益者が立ち上げた架空の会社を登録し、そこの会社の株券を購入するという体のもと金銭の無制限な受け渡しが行われ、それが続くこととなる。 +> +> これによって上層部や一部経営者達は何もせずともお金がもらえる状態になり、すべての財界人は大蔵省の言うことに逆らえなくなっていった。その後、東の国の開発力、技術力、国際競争力はみるみる低下する。それに伴い国力も例を見ないほどに急速に落ち込み、結果として東の国は、他国より貧しくなってしまう。 +> +> しかし、東の国の市民は、自国通貨であるエソがもっともっと安くならないと自分たちの暮らしは豊かにならないと考え、スシ政権を支持し続けた。 + +## 厚生省vs大蔵省 + +厚生省で開発された人工知能は、大蔵省に危険だと判断される。 + +その団体の中心メンバーが暗殺部隊「いなりずし」に関係者の殺害及び破壊を依頼。 + +東の国では大蔵省が考案した政策が実行されて40年あまりが経過した。世界でも類を見ないほどの少子化と国力、経済力共に低下する結果となった。 + +## 西の国 + +西の国は「正義」を掲げ、その裏で「武力」を信奉する。他国も同様に裏側のテーマが存在する。 + +キャラクターはこのような各国のバックグラウンド、設定や文化の影響を受けます。 + +アイも例外ではなく、例外はありません。 + +## 通貨の変遷 + +時代が進み、地球の基軸通貨は西の国の通貨ビトから宇宙通貨のアムに切り替わります。 + +> ポンタ「あれなんだろう」 +> +> キョウスケ「ん、どれだよ」 +> +> ポンタ「道の真ん中にあるやつ」 +> +> キョウスケ「お?なんだあれ」 +> +> 歩いた先には大量の紙と小さなお年寄りが座っている。白髪まじりで大きなハゲが見える。 +> +> ポンタ「あのう、大丈夫ですか?」 +> +> スシ「このクソ。誰に口を聞いてるのかわかってるか!」 +> +> キョウスケ「へ...!?」 +> +> スシ「おまえ、俺は東の国の大統領、皇帝だぞ!」 +> +> ポンタ「え...ほ、ほんとに?で、でもそんな人がなんでこんなところに」 +> +> スシ「全部お前らのせいだ。こんなもの配りやがって。俺は国のために尽くしてきた。こんな仕打ちを...許さんぞ」 +> +> ポンタ・キョウスケ「...」 +> +> キョウスケ「それってアムのことですか?」 +> +> ポンタ「少しならおじいさんに分けてあげられるけど...でも」 +> +> キョウスケ「うん、難しいかもな。これは人によって上限があるから」 +> +> スシ「おまえ!おれの心は誰よりも清く正しいんだ、そんなもんで測られるかバカ」 +> +> ポンタ「あ!思い出した。この人、昔の大統領だ」 +> +> キョウスケ「え...ほんとだったの...そんな人がなんでこんなところでホームレスやってんだよ!」 +> +> ポンタ「ニュースでは誰かの暗殺を指示したとかでやめたんだって」 +> +> キョウスケ「おいおい、おじいさん、それ本当なのか?」 +> +> スシ「全部ウソに決まってんだろ。おめえそんなこともわからんか」 +> +> ポンタ「へえ、そうなんだ。本当はどういう話だったの」 +> +> スシ「俺が国のためにやったことに反対する奴らがいて、そいつらを始末しろと部下に命令をだしたのはたしかに俺だ。しかし、全部部下がやったことで俺は知らん。俺と事件は無関係だ。それにこのことだって本当は表に出ないはずだった...なにせ表に出れば国益を損なう。国のためにならん。俺は常に国家のため国民のために仕事をしてきた。お前らは何も知らないただの低能バカだ」 +> +> ポンタ・キョウスケ「...」、二人はしばし顔を見合わせた +> +> ポンタ「...おじいさん、困ってるなら少しだけど」 ポンタはそう言っていくらかお金を送信しようとした +> +> ポンタ「あ、あれ...なんで」 +> +> キョウスケ「え?お、おいおい。こりゃ、いくらなんでも」 +> +> ポンタはスシの口座にお金をいれることはできなかった。アムは持ち主の心理情報を読み取り上限額を設定する。悪人は一定額以上を持つことはできない +> +> スシ「ふん!この生ゴミが」スシはダンボールに置いているコインを睨みつけながら言った +> +> するとアイがポンタとキョウスケがいるところを通りがかる +> +> アイ「こんにちは」 +> +> キョウスケ「ああ、アイか、ちょうどいいところに。このじいさん、困ってんだってよ。しかもアムが入らない」 +> +> スシ「だれだおまえ?変な小娘め...だが、どこかで...」 +> +> アイ「なんでこんなところにいるの」 +> +> スシ「好きでいるわけじゃねえよ!」 +> +> アイ「ここでは誰でも家がもらえるよ」アイはポンタの方を見てそう言った +> +> ポンタ「あ、そうか。そうだよ。おじいさん、もし住む場所がないなら」 +> +> スシ「な、なんだって!?そんなこと俺は聞いてねえぞ!」 +> +> スシ「どけ!!」 +> +> スシはそういって3人を突き飛ばし行ってしまった +> +> キョウスケ「な、なんなんだあれは...。しかも、おい、これどうするよ」 +> +> そこにはスシが残していったゴミが散乱していた。多くは昔の紙幣のようだ +> +> アイ「アイがもらっておくよ」 +> +> アイはそう言って、そこにあったゴミと思えるようなものをなで、小さな箱を取りした +> +> ボタンを押すと路上にあったゴミが吸い込まれ、きれいになる + +## 変化 + +東の国の元大統領であるスシは、その後、世界一の金持ちから世界一の貧乏人になります。 + +アム(コインの形をしている)は持ち主の心を読み取り、数値を個々人に配分します。これはスシがアムから世界で一番お金や権力を持ってはならない人物とそう評価されたということです。 + +当時のアムは宇宙最大のコンピュータと考えられていましたが、実際は違うことが後に判明します。 + +> ピンポーン +> +> スシ「だれだ!クソ鬱陶しい!!」 +> +> 郊外に建ったばかりのスシの自宅、玄関のドアの前にアイが突っ立っていた +> +> スシ「ふん!おまえか。家がタダでもらえることを教えたやつ」 +> +> スシはこのとき初めてアイをよく見た。しかし、この娘、どこかで見たような気がするのだ。俺が赤ん坊のときに...いや、子供の頃か...小さい頃どこかであった気がする。俺が知ってるようで知らないような思い出が +> +> スシ「...まあ、入れや」 +> +> スシはアイを中にいれることにした。何かを思い出せるような気がしたからだ。思い出せないとどうにも気分が悪い。 +> +> スシ「それでおまえ、なんのようだ?ただのガキだと思ってたが...」 +> +> アイ「これ」 +> +> アイがそういうと、部屋の景色が一瞬で変わった。そこは天井が見えないほど高く、ところどころキラキラと輝いていて、ありとあらゆる物がうず高く積まれている、とてつもない広い場所だった +> +> スシ「な!なん...だ...これ...お、俺の目が...」 +> +> アイは前をゆっくりと歩いていく。スシはあたりを見回しながらアイに続いた +> +> アイが立ち止まると、そこには +> +> スシ「うん?あ!こ、これは、おれのカネじゃねえか!!おまえ、盗みやがったな!」 +> +> アイ「これ、さっき触れたばかり。まだアイがあるかも」 +> +> スシ「は?何言ってやがる...意味がわからねえ。アイ?そりゃたしかお前が呼ばれてた」 +> +> そういったスシは言葉を失っていた。 +> +> ここはどこだ...おれはたしか小娘が盗んだ俺のカネをつかもうとして...そして、どうなった。...いや、そんなことはどうでもいい。何もかもがどうでもよかった。そこで俺は、もう俺ではなかった。別のなにかだった。 +> +> わからなかった。何もわからない。しばらく彷徨ったあと、そこで見覚えがある感覚に出会った。そして、そこからはわかるような気がした。そうだ、俺は覚えている。これは俺...俺が生まれたばかりの頃...。 +> +> 両親は、こんなにも俺のことをかわいがってくれてたのか...そうだったな。知ってたはずなのに、いつの間にか俺は...。 +> +> これは学校に通いはじめた俺。そうだった。純粋だった。多少の不安はあったが、俺は両親にずっと守られていたので、そこまでじゃなかった。 +> +> そして、俺は... +> +> スシは頭がぐわんぐわんする感覚に襲われ、気がつくと、膝をついていた。周りの景色も...俺の家だ。 +> +> スシ「.....く...くくう...お、おれは...」 +> +> 気がつくとスシは泣いていた。まさか自分のような人間が泣くことになるとは思わなかった。しかもこの歳でだ。だが、さっき思い出したんだ...昔の俺を。昔の俺は泣いていたのだ。...そうだった。 +> +> スシはひとしきり泣いたあと、ソファに腰を下ろした。そして、そばに立っているアイの方を向いた。 +> +> スシ「...なにやらかしやがったんかわかんねえが、お前、あのときのやつだったんだな...」 +> +> スシ「あのとき、俺に唯一、手を差し伸べてきたお前は...そう、俺の過去をすべて見たことがあったんだな...ずっと前から。生きるのに必死だったんだみんなそうなんだよ...お前が俺の中でそういったことを、俺は覚えているぞ...いや、思い出したが正しいか。あいつらが襲ってきたときだった」 +> +> アイ「ここはいいところだね」 +> +> スシ「...」 +> +> アイ「変わりたければ大聖堂に行くといいよ。保護プログラムがあるからね」 +> +> スシ「...そうか...助かる」 +> +> アイ「またね」 +> +> アイはそういうと姿を消した。 +> +> その時、スシのポケットからピッという音が聞こえた気がした + +このあともスシは何度か登場します。 + +私が好きな作品には、悪人が悪人で終わらない、というものが多いのです。 + +もしかしたらそこが一番のフィクションなのかもしれませんね。必ずしも現実を描きたいというわけではないのです。 + +## スシのモデル + +スターウォーズのシスです。 + +そういえば、このスシというキャラにはこんなセリフがあります。 + +> 数日前、市民に襲われ、私の口はひん曲がった...だが、ますます帝国への意志は強くなったのだ! + +## 何がしたいのか + +あらゆる設定に言えることですが、この作品の設定は、そのほとんどが物語に現実感を持たせるために存在します。もしくは、面白さを追求するためですね。 + +現実感がないお話というものは、あまり面白くないのです。 + +では、現実感とは一体何なのでしょう。 + +それは人々の生活や日常に潜んでいるものです。 + +生活や日常に当たり前のように存在し、なくてはならないもの。 + +それらを優先順位を付け、重要なものをピックアップし、分解したり、調べたり。 + +その3つが、貨幣だったり、言語だったり、宇宙だったりするわけです。まあ、最後の宇宙は、単に私が好きなだけですが。 + +それでも宇宙開発というのは、私達の生活や日常にかなり大きな影響を及ぼしているのですよ。 + +これがどうなっていて、これからどうなっていくのか。過去、現在、未来の想像を作品に取り込んでいます。 + diff --git a/content/card/index.md b/content/card/index.md index 0733c9f6..fa9b4027 100644 --- a/content/card/index.md +++ b/content/card/index.md @@ -9,9 +9,10 @@ date: "2024-01-03"
-[@yui.syui.ai](https://bsky.social/profile/yui.syui.ai) /card +[ai/bot](https://git.syui.ai/ai/bot/wiki/help) からカードを引くことができます。 -[ai/bot](https://git.syui.ai/ai/bot) からカードを引くことができます。 +
+
@@ -20,52 +21,3 @@ date: "2024-01-03" - -
- -

- - - - - - - - - - - - -

- - - -
diff --git a/content/novel/01.md b/content/novel/01.md index c6a1418e..b4daf2ae 100644 --- a/content/novel/01.md +++ b/content/novel/01.md @@ -3,6 +3,7 @@ date = "2020-04-25" title = "ガラスの上" slug = "01" type = "novel" +tags = ["novel"] +++ diff --git a/content/novel/02.md b/content/novel/02.md index d54aa690..e3efff1a 100644 --- a/content/novel/02.md +++ b/content/novel/02.md @@ -3,6 +3,7 @@ date = "2020-04-26" title = "大気圏" slug = "02" type = "novel" +tags = ["novel"] +++ diff --git a/content/novel/03.md b/content/novel/03.md index b074ef04..b4adc419 100644 --- a/content/novel/03.md +++ b/content/novel/03.md @@ -3,6 +3,7 @@ date = "2020-04-27" title = "前日" slug = "03" type = "novel" +tags = ["novel"] +++ あれから数日が過ぎた。いや、もしかしたら数年だったかもしれない。ここでは時間の感覚が大きく狂うので仕方ない。 diff --git a/content/novel/04.md b/content/novel/04.md index 41b5d057..8f41199c 100644 --- a/content/novel/04.md +++ b/content/novel/04.md @@ -3,6 +3,7 @@ date = "2020-04-28" title = "銀河鉄道" slug = "04" type = "novel" +tags = ["novel"] +++ 今日もいつもどおり起床し、みんなゾロゾロと境界に向かった。 diff --git a/content/novel/05.md b/content/novel/05.md index 5e92c846..d6dd9630 100644 --- a/content/novel/05.md +++ b/content/novel/05.md @@ -3,6 +3,7 @@ date = "2020-06-01" title = "駅" slug = "05" type = "novel" +tags = ["novel"] +++ キタムラは、銀河鉄道の車内に乗り込んだ。周りを見渡すと、座席は横に連なり、街灯のような明かりが薄ぼんやりと輝いている。 diff --git a/content/novel/06.md b/content/novel/06.md index 2a67bf1e..1ca5aafe 100644 --- a/content/novel/06.md +++ b/content/novel/06.md @@ -3,6 +3,7 @@ date = "2020-06-02" title = "アイ" slug = "06" type = "novel" +tags = ["novel"] +++ フタネ駅に突然やってきた子は、その後、何やら小さな機械を取り出し、それをいじり始めた。 diff --git a/content/novel/07.md b/content/novel/07.md index 1464e741..cff1c955 100644 --- a/content/novel/07.md +++ b/content/novel/07.md @@ -3,6 +3,7 @@ date = "2022-07-07" title = "龍の記憶" slug = "07" type = "novel" +tags = ["novel"] +++ > 漫画の第二章にあたる部分を文章化 diff --git a/content/novel/08.md b/content/novel/08.md index 3346d6fe..510c90bb 100644 --- a/content/novel/08.md +++ b/content/novel/08.md @@ -3,6 +3,7 @@ date = "2022-07-08" title = "銀河団" slug = "08" type = "novel" +tags = ["novel"] +++ > アイが天の川を使ったあとを断片的に文章化 diff --git a/content/novel/09.md b/content/novel/09.md index 9ae52071..92bff55b 100644 --- a/content/novel/09.md +++ b/content/novel/09.md @@ -1,8 +1,9 @@ +++ date = "2022-07-09" -title = "宇宙外" +title = "宇宙の外" slug = "09" type = "novel" +tags = ["novel"] +++ > アイが天の川を使ったあとを断片的に文章化 diff --git a/content/novel/10.md b/content/novel/10.md index d6e5ee20..e9aa3dbe 100644 --- a/content/novel/10.md +++ b/content/novel/10.md @@ -3,6 +3,7 @@ date = "2023-05-20" title = "存在の花" slug = "10" type = "novel" +tags = ["novel"] +++ > 漫画の第二章を文章化 diff --git a/layouts/_default/list.html b/layouts/_default/list.html index 18ef16f5..4ff261fb 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -8,6 +8,7 @@ {{ range .Data.Pages.Reverse }}
  • {{.Title}} {{ .Date.Local.Format "2006-01-02" }} + {{ with .Params.tags }}{{ range . }}{{ end }}
  • {{ end }} @@ -15,6 +16,6 @@ - {{ partial "footer" . }} +{{ partial "footer" . }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 4a1329ab..3db85e23 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -5,11 +5,17 @@
    {{ if ne .Lastmod .Date }}
    {{ .Lastmod.Format "2006-01-02" }}
    {{ end }} -

    {{ .Title }}

    +

    {{ .Title }}

    {{ .Content }}
    + + {{ partial "footer.html" . }} diff --git a/layouts/card/single.html b/layouts/card/single.html index 0beb0821..4bfce6b9 100644 --- a/layouts/card/single.html +++ b/layouts/card/single.html @@ -9,7 +9,7 @@ {{ with .Resources.Match "*.webp" }}

    - {{ range sort . }} + {{ range first 15 . }} {{ end }}

    diff --git a/layouts/index.html b/layouts/index.html index d6ba684e..6a7b4ee2 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -2,7 +2,10 @@ {{ partial "navbar.html" . }} {{ partial "header.html" . }} {{ partial "content.html" . }} +
    + {{ partial "footer.html" . }} + diff --git a/layouts/partials/content.html b/layouts/partials/content.html index addaf45c..fb5da87c 100644 --- a/layouts/partials/content.html +++ b/layouts/partials/content.html @@ -1,4 +1,6 @@ +
    +
      @@ -11,10 +13,14 @@ {{ range $index,$value := (where $.Site.RegularPages.ByDate.Reverse "Section" "blog") }} - {{ if lt $index 1 }} -
    • {{.Title}} {{ .Date.Local.Format "2006-01-02" }}
    • + {{ if lt $index 3 }} +
    • {{.Title}} {{ .Date.Local.Format "2006-01-02" }} + {{ with .Params.tags }}{{ range . }}{{ end }} +
    • {{ else }} - + {{ end }} {{ end }} @@ -24,7 +30,7 @@ {{ if or (eq $t "chara") (eq $t "story") (eq $t "card") (eq $t "vrm") }}
    • - +
    • @@ -40,7 +46,7 @@ {{ end }}
    • - +
    • + +
    + + + diff --git a/layouts/partials/head.html b/layouts/partials/head.html index e9832a3b..5ec9a6ba 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -23,7 +23,7 @@ - + - - {{ range .AlternativeOutputFormats -}} {{ printf `` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ end -}} + diff --git a/layouts/partials/header.html b/layouts/partials/header.html index abd86406..f6db6723 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -1,11 +1,18 @@ +
    + {{ $s := path.Dir (.Permalink | relURL) }} {{ $t := index (split $s "/") 2 }} {{ $o := index (split $s "/") 1 }} + @@ -34,9 +41,9 @@ --> - - - + + + diff --git a/layouts/partials/navbar.html b/layouts/partials/navbar.html index b8b1c22b..1fd15979 100644 --- a/layouts/partials/navbar.html +++ b/layouts/partials/navbar.html @@ -3,8 +3,9 @@ diff --git a/layouts/partials/particles.html b/layouts/partials/particles.html new file mode 100644 index 00000000..ae67f8dd --- /dev/null +++ b/layouts/partials/particles.html @@ -0,0 +1,5 @@ +
    + + + + diff --git a/layouts/partials/svg.html b/layouts/partials/svg.html index 72839be6..83b66bbb 100644 --- a/layouts/partials/svg.html +++ b/layouts/partials/svg.html @@ -7,8 +7,3 @@
    - - - diff --git a/layouts/partials/term.html b/layouts/partials/term.html new file mode 100644 index 00000000..df3734bc --- /dev/null +++ b/layouts/partials/term.html @@ -0,0 +1,16 @@ + diff --git a/CNAME b/static/CNAME similarity index 100% rename from CNAME rename to static/CNAME diff --git a/static/css/style.css b/static/css/style.css index 3a7d6ce1..6f9622ea 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -49,6 +49,7 @@ footer#footer { color: #fff700; font-size: 20px; background-color:#313131; + position: relative; } footer#footer a { @@ -97,20 +98,13 @@ h3 { margin-bottom: 4px; } - -blockquote { - background: #fff; - margin: 0px; - padding: 20px; -} - nav#article-nav { margin: 30px 0px; } ul { - list-style-type: none; - display: list-item; + list-style-type: none; + display: list-item; } ul.cp_list { @@ -207,8 +201,9 @@ pre > code { } h2 { + font-size: 20px; line-height: 2rem; - padding-bottom:2rem; + padding:2rem 0; } span.tag { @@ -282,7 +277,7 @@ span.menu-right-top { .vrm { display: none; text-align: center; - overflow: hidden; + overflow: hidden; } .vrm iframe { @@ -354,6 +349,7 @@ iframe.manga { header#header { background-color: #313131; + position: relative; } .top-card { @@ -383,10 +379,11 @@ header#header { .vrm iframe { width:100%; } - + button.tag { + display:none; + } } - .nav { display: -ms-flexbox; display: flex; @@ -444,8 +441,8 @@ header#header { border-color: #dee2e6 #dee2e6 #fff; } .navbar-nav-right > a > img { - width:20px; - padding:5px; + width:20px; + padding:5px; } .nav-tabs .dropdown-menu { @@ -898,11 +895,11 @@ a:hover > .navbar-light .navbar-brand { } .navbar-nav-right a span.icon-syui { - font-size: 33px; + font-size: 33px; } .navbar-nav-right a span.icon-ai { - font-size: 33px; + font-size: 33px; } .navbar-nav-right > a > i { @@ -1033,16 +1030,16 @@ span.navbar-title-text > a span.icon-ai { } i.fa-brands.fa-unity { - color: #fff700; + color: #fff700; } i.fa-brands.fa-git-alt { - color: #fff700; + color: #fff700; } model-viewer { - width: 100%; - height: 400px; + width: 100%; + height: 400px; } table { @@ -1119,23 +1116,56 @@ li.blog-menu button:hover { border-radius: 4px; } -a.menu-link-left-black span.icon-aiterm { - color: #fff700; -} - -a.menu-link-left-black span.icon-git_bg { +a.menu-link-left-black { color: #fff700; } li.commit { - background-color: #f1f1f1; - padding: 40px; - font-size: 25px; - text-align: center; - color: #fff; + background-color: #f1f1f1; + padding: 60px; + font-size: 30px; + text-align: center; + color: #fff; +} + +li.commit a { + color: #fff; +} + +li.commit a:hover { + transition: 1.0s ; + color: #313131; } a.li-link-left { - float: right; - padding-right: 20px; + float: right; + padding-right: 20px; +} + +button.tag { + float: right; + border:none; + background-color: #f1f1f1; +} + +li.commit a span.icon-moji_a { + font-size: 30px; +} + +blockquote { + background: #fff; + padding: 20px; + margin: 20px 0; +} + +.pager { + margin:100px 0; + width:100%; + text-align: center; + padding: 30px 0; + background: #313131; +} + +.pager a { + color: #fff700; } diff --git a/static/pkg/hotkeys-js/LICENSE b/static/pkg/hotkeys-js/LICENSE deleted file mode 100644 index 8e072bdf..00000000 --- a/static/pkg/hotkeys-js/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -MIT License - -Copyright (c) 2015-present, Kenny Wong. - -Copyright (c) 2011-2013 Thomas Fuchs (https://github.com/madrobby/keymaster) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/static/pkg/hotkeys-js/README.md b/static/pkg/hotkeys-js/README.md deleted file mode 100644 index 9794b5a4..00000000 --- a/static/pkg/hotkeys-js/README.md +++ /dev/null @@ -1,441 +0,0 @@ -# Hotkeys - - - -[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor) -[![](https://img.shields.io/npm/dm/hotkeys-js?logo=npm)](https://www.npmjs.com/package/hotkeys-js) -[![](https://img.shields.io/github/stars/jaywcjlove/hotkeys-js.svg)](https://github.com/jaywcjlove/hotkeys/stargazers) -![no dependencies](http://jaywcjlove.github.io/sb/status/no-dependencies.svg) -[![GitHub Actions CI](https://github.com/jaywcjlove/hotkeys-js/actions/workflows/ci.yml/badge.svg)](https://github.com/jaywcjlove/hotkeys-js/actions/workflows/ci.yml) -[![Coverage Status](https://coveralls.io/repos/github/jaywcjlove/hotkeys/badge.svg?branch=master)](https://coveralls.io/github/jaywcjlove/hotkeys?branch=master) -[![jaywcjlove/hotkeys-js](https://jaywcjlove.github.io/sb/lang/chinese.svg)](https://github.com/jaywcjlove/hotkeys-js/blob/master/README-zh.md) -[![jaywcjlove/hotkeys-js](https://jaywcjlove.github.io/sb/ico/gitee.svg)](https://gitee.com/jaywcjlove/hotkeys) - -HotKeys.js is an input capture library with some very special features, it is easy to pick up and use, has a reasonable footprint ([~6kB](https://bundlephobia.com/result?p=hotkeys-js)) (gzipped: **`2.8kB`**), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks. Official document [demo preview](https://jaywcjlove.github.io/hotkeys-js). [More examples](https://github.com/jaywcjlove/hotkeys-js/issues?q=label%3ADemo+). - -```bash -╭┈┈╮ ╭┈┈╮ ╭┈┈╮ -┆ ├┈┈..┈┈┈┈┈.┆ └┈╮┆ ├┈┈..┈┈┈┈┈..┈┈.┈┈..┈┈┈┈┈. -┆ ┆┆ □ ┆┆ ┈┤┆ < ┆ -__┘┆ ┆ ┆┆__ ┈┈┤ -╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈┈╯╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈ ┆╰┈┈┈┈┈╯ - ╰┈┈┈┈┈╯ -``` - -## Usage - -You will need `Node.js` installed on your system. - -```bash -npm install hotkeys-js --save -``` - -```js -import hotkeys from 'hotkeys-js'; - -hotkeys('f5', function(event, handler){ - // Prevent the default refresh event under WINDOWS system - event.preventDefault() - alert('you pressed F5!') -}); -``` - -Or manually download and link **hotkeys.js** in your HTML, It can also be downloaded via [UNPKG](https://unpkg.com/hotkeys-js/dist/): - -CDN: [UNPKG](https://unpkg.com/hotkeys-js/dist/) | [jsDelivr](https://cdn.jsdelivr.net/npm/hotkeys-js@3.7.3/) | [Githack](https://raw.githack.com/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [Statically](https://cdn.statically.io/gh/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [bundle.run](https://bundle.run/hotkeys-js@3.7.3) - -```html - - -``` - -### Used in React - -[react-hotkeys](https://github.com/jaywcjlove/react-hotkeys) is the React component that listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts. Detailed use method please see its documentation [react-hotkeys](https://github.com/jaywcjlove/react-hotkeys). - -[react-hotkeys-hook](https://github.com/JohannesKlauss/react-hotkeys-hook) - React hook for using keyboard shortcuts in components. Make sure that you have at least version 16.8 of react and react-dom installed, or otherwise hooks won't work for you. - -## Browser Support - -Hotkeys.js has been tested and should work in. - -```shell -Internet Explorer 6+ -Safari -Firefox -Chrome -``` - -## Supported Keys - -HotKeys understands the following modifiers: `⇧`, `shift`, `option`, `⌥`, `alt`, `ctrl`, `control`, `command`, and `⌘`. - -The following special keys can be used for shortcuts: backspace, tab, clear, enter, return, esc, escape, space, up, down, left, right, home, end, pageup, pagedown, del, delete, f1 through f19, num_0 through num_9, num_multiply, num_add, num_enter, num_subtract, num_decimal, num_divide. - -`⌘` Command() -`⌃` Control -`⌥` Option(alt) -`⇧` Shift -`⇪` Caps Lock(Capital) -~~`fn` Does not support fn~~ -`↩︎` return/Enter space - -## Defining Shortcuts - -One global method is exposed, key which defines shortcuts when called directly. - -```js -hotkeys([keys:], [option:[string|object|function]], [callback:]) -``` - - -```js -hotkeys('f5', function(event, handler) { - // Prevent the default refresh event under WINDOWS system - event.preventDefault(); - alert('you pressed F5!'); -}); - -// Returning false stops the event and prevents default browser events -// Mac OS system defines `command + r` as a refresh shortcut -hotkeys('ctrl+r, command+r', function() { - alert('stopped reload!'); - return false; -}); - -// Single key -hotkeys('a', function(event,handler){ - //event.srcElement: input - //event.target: input - if(event.target === "input"){ - alert('you pressed a!') - } - alert('you pressed a!') -}); - -// Key Combination -hotkeys('ctrl+a,ctrl+b,r,f', function (event, handler){ - switch (handler.key) { - case 'ctrl+a': alert('you pressed ctrl+a!'); - break; - case 'ctrl+b': alert('you pressed ctrl+b!'); - break; - case 'r': alert('you pressed r!'); - break; - case 'f': alert('you pressed f!'); - break; - default: alert(event); - } -}); - -hotkeys('ctrl+a+s', function() { - alert('you pressed ctrl+a+s!'); -}); - -// Using a scope -hotkeys('*','wcj', function(event){ - console.log('do something', event); -}); -``` - -#### option - -- `scope` -- `element` -- `keyup` -- `keydown` -- `splitKey` (default is `+`) -- `capture` -- `single` - -```js -hotkeys('o, enter', { - scope: 'wcj', - element: document.getElementById('wrapper'), -}, function() { - console.log('do something else'); -}); - -hotkeys('ctrl-+', { splitKey: '-' }, function(e) { - console.log('you pressed ctrl and +'); -}); - -hotkeys('+', { splitKey: '-' }, function(e){ - console.log('you pressed +'); -}) -``` - -**keyup** - -**key down** and **key up** both perform callback events. - -```js -hotkeys('ctrl+a,alt+a+s', {keyup: true}, function(event, handler) { - if (event.type === 'keydown') { - console.log('keydown:', event.type, handler, handler.key); - } - - if (event.type === 'keyup') { - console.log('keyup:', event.type, handler, handler.key); - } -}); -``` - -## API REFERENCE - -Asterisk "*" - -Modifier key judgments - -```js -hotkeys('*', function() { - if (hotkeys.shift) { - console.log('shift is pressed!'); - } - - if (hotkeys.ctrl) { - console.log('ctrl is pressed!'); - } - - if (hotkeys.alt) { - console.log('alt is pressed!'); - } - - if (hotkeys.option) { - console.log('option is pressed!'); - } - - if (hotkeys.control) { - console.log('control is pressed!'); - } - - if (hotkeys.cmd) { - console.log('cmd is pressed!'); - } - - if (hotkeys.command) { - console.log('command is pressed!'); - } -}); -``` - -### setScope - -Use the `hotkeys.setScope` method to set scope. There can only be one active scope besides 'all'. By default 'all' is always active. - -```js -// Define shortcuts with a scope -hotkeys('ctrl+o, ctrl+alt+enter', 'issues', function() { - console.log('do something'); -}); -hotkeys('o, enter', 'files', function() { - console.log('do something else'); -}); - -// Set the scope (only 'all' and 'issues' shortcuts will be honored) -hotkeys.setScope('issues'); // default scope is 'all' -``` - -### getScope - -Use the `hotkeys.getScope` method to get scope. - -```js -hotkeys.getScope(); -``` - -### deleteScope - -Use the `hotkeys.deleteScope` method to delete a scope. This will also remove all associated hotkeys with it. - -```js -hotkeys.deleteScope('issues'); -``` -You can use second argument, if need set new scope after deleting. - -```js -hotkeys.deleteScope('issues', 'newScopeName'); -``` - -### unbind - -Similar to defining shortcuts, they can be unbound using `hotkeys.unbind`. - -```js -// unbind 'a' handler -hotkeys.unbind('a'); - -// Unbind a hotkeys only for a single scope -// If no scope is specified it defaults to the current scope (hotkeys.getScope()) -hotkeys.unbind('o, enter', 'issues'); -hotkeys.unbind('o, enter', 'files'); -``` - -Unbind events through functions. - -```js -function example() { - hotkeys('a', example); - hotkeys.unbind('a', example); - - hotkeys('a', 'issues', example); - hotkeys.unbind('a', 'issues', example); -} -``` - -To unbind everything. - -```js -hotkeys.unbind(); -``` - -### isPressed - -For example, `hotkeys.isPressed(77)` is true if the `M` key is currently pressed. - -```js -hotkeys('a', function() { - console.log(hotkeys.isPressed('a')); //=> true - console.log(hotkeys.isPressed('A')); //=> true - console.log(hotkeys.isPressed(65)); //=> true -}); -``` - -### trigger - -trigger shortcut key event - -```js -hotkeys.trigger('ctrl+o'); -hotkeys.trigger('ctrl+o', 'scope2'); -``` - -### getPressedKeyCodes - -Returns an array of key codes currently pressed. - -```js -hotkeys('command+ctrl+shift+a,f', function() { - console.log(hotkeys.getPressedKeyCodes()); //=> [17, 65] or [70] -}) -``` - -### getPressedKeyString - -Returns an array of key codes currently pressed. - -```js -hotkeys('command+ctrl+shift+a,f', function() { - console.log(hotkeys.getPressedKeyString()); //=> ['⌘', '⌃', '⇧', 'A', 'F'] -}) -``` - -### getAllKeyCodes - -Get a list of all registration codes. - -```js -hotkeys('command+ctrl+shift+a,f', function() { - console.log(hotkeys.getAllKeyCodes()); - // [ - // { scope: 'all', shortcut: 'command+ctrl+shift+a', mods: [91, 17, 16], keys: [91, 17, 16, 65] }, - // { scope: 'all', shortcut: 'f', mods: [], keys: [42] } - // ] -}) -``` - -### filter - -By default hotkeys are not enabled for `INPUT` `SELECT` `TEXTAREA` elements. `Hotkeys.filter` to return to the `true` shortcut keys set to play a role, `false` shortcut keys set up failure. - -```js -hotkeys.filter = function(event){ - return true; -} -//How to add the filter to edit labels.
    -//"contentEditable" Older browsers that do not support drops -hotkeys.filter = function(event) { - var target = event.target || event.srcElement; - var tagName = target.tagName; - return !(target.isContentEditable || tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA'); -} - -hotkeys.filter = function(event){ - var tagName = (event.target || event.srcElement).tagName; - hotkeys.setScope(/^(INPUT|TEXTAREA|SELECT)$/.test(tagName) ? 'input' : 'other'); - return true; -} -``` - -### noConflict - -Relinquish HotKeys’s control of the `hotkeys` variable. - -```js -var k = hotkeys.noConflict(); -k('a', function() { - console.log("do something") -}); - -hotkeys() -// -->Uncaught TypeError: hotkeys is not a function(anonymous function) -// @ VM2170:2InjectedScript._evaluateOn -// @ VM2165:883InjectedScript._evaluateAndWrap -// @ VM2165:816InjectedScript.evaluate @ VM2165:682 -``` - -## Development - -To develop, Install dependencies, Get the code: - -```shell -$ git https://github.com/jaywcjlove/hotkeys.git -$ cd hotkeys # Into the directory -$ npm install # or yarn install -``` - -To develop, run the self-reloading build: - -```shell -$ npm run watch -``` - -Run Document Website Environment. - -```shell -$ npm run doc -``` - -To contribute, please fork Hotkeys.js, add your patch and tests for it (in the `test/` folder) and submit a pull request. - -```shell -$ npm run test -$ npm run test:watch # Development model -``` - -## Contributors - -As always, thanks to our amazing contributors! - - - - - -Made with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors). - -## License - -[MIT © Kenny Wong](./LICENSE) diff --git a/static/pkg/hotkeys-js/dist/README.md b/static/pkg/hotkeys-js/dist/README.md deleted file mode 100644 index bd982a3a..00000000 --- a/static/pkg/hotkeys-js/dist/README.md +++ /dev/null @@ -1,13 +0,0 @@ - - -Explanation of Build Files ---- - -| UMD | Size | CommonJS | Size | ES Module | Size | -| ---- | ---- | ---- | ---- | ---- | ---- | -| hotkeys.js | 8.37kb | hotkeys.common.js | 8.13kb | hotkeys.esm.js | 8.12kb | -| hotkeys.min.js | 3.62kb (gzipped: 1.73kb) | hotkeys.common.min.js | (gzipped: 1.84kb) | - | - | - -- [UMD](https://github.com/umdjs/umd): UMD builds can be used directly in the browser via a `