From be5d20ba8b6988c6107a6066774f3d7b994c48f5 Mon Sep 17 00:00:00 2001
From: nsfisis
コマンドライン引数として渡した文字列をターミナルに大きく表示する。
diff --git a/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html b/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html
index c4f6d334..f8b0bce5 100644
--- a/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html
+++ b/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html
@@ -107,7 +107,6 @@
最初は直近のカンファレンスに出して落選したプロポーザルテーマを LT に編集して話そうとしていたのですが、この機会でなければ話せない・この機会で話すことに意味があるテーマにしようとネタ出しをおこない、最終的に次のテーマでの登壇となりました。
diff --git a/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html b/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html
index 3e030b6d..3a153d33 100644
--- a/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html
+++ b/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html
@@ -118,7 +118,6 @@
---
.../blog/content/posts/2025-06-14/baba-is-you.dj | 3 ++
vhosts/blog/nuldoc-src/renderers/html.ts | 14 ++++-----
vhosts/blog/public/about/index.html | 1 -
.../index.html | 1 -
.../posts/2024-12-04/cohackpp-report/index.html | 1 -
.../phperkaigi-2023-tokens-q1/index.html | 1 -
.../trick-2025-most-ruby-on-ruby-award/index.html | 1 -
.../public/posts/2025-06-14/baba-is-you/index.html | 35 ++++------------------
8 files changed, 16 insertions(+), 41 deletions(-)
diff --git a/vhosts/blog/content/posts/2025-06-14/baba-is-you.dj b/vhosts/blog/content/posts/2025-06-14/baba-is-you.dj
index 5370b94f..01864679 100644
--- a/vhosts/blog/content/posts/2025-06-14/baba-is-you.dj
+++ b/vhosts/blog/content/posts/2025-06-14/baba-is-you.dj
@@ -192,6 +192,7 @@ Steam の場合、全実績解除と読み替えてもよい。
#### SUBMERGED RUINS、SUNKEN TEMPLE

+

ここまでスルスル解けていて初めてしばらく止まった面。
@@ -202,6 +203,7 @@ Steam の場合、全実績解除と読み替えてもよい。
#### PRISON、DUNGEON

+

高難易度面で当然のように要求されるテクニックの初出。
@@ -347,6 +349,7 @@ PRISON と DUNGEON で既出のテクニックが肝だが、ちと離れすぎ
#### STARDROP、METEOR STRIKE

+

両方とも難しい面ではあったが、単文字のテキストが綺麗に活用された美しい面として印象に残っている。
diff --git a/vhosts/blog/nuldoc-src/renderers/html.ts b/vhosts/blog/nuldoc-src/renderers/html.ts
index 6c8170ed..84b3ebaa 100644
--- a/vhosts/blog/nuldoc-src/renderers/html.ts
+++ b/vhosts/blog/nuldoc-src/renderers/html.ts
@@ -13,7 +13,7 @@ type Context = {
isInPre: boolean;
};
-type Dtd = { type: "block" | "inline"; auto_closing?: boolean };
+type Dtd = { type: "block" | "inline"; self_closing?: boolean };
function getDtd(name: string): Dtd {
switch (name) {
@@ -26,7 +26,7 @@ function getDtd(name: string): Dtd {
case "body":
return { type: "block" };
case "br":
- return { type: "block", auto_closing: true };
+ return { type: "block", self_closing: true };
case "button":
return { type: "block" };
case "canvas":
@@ -60,7 +60,7 @@ function getDtd(name: string): Dtd {
case "header":
return { type: "block" };
case "hr":
- return { type: "block", auto_closing: true };
+ return { type: "block", self_closing: true };
case "html":
return { type: "block" };
case "i":
@@ -68,9 +68,9 @@ function getDtd(name: string): Dtd {
case "li":
return { type: "block" };
case "link":
- return { type: "block", auto_closing: true };
+ return { type: "block", self_closing: true };
case "img":
- return { type: "block" };
+ return { type: "inline", self_closing: true };
case "ins":
return { type: "block" };
case "main":
@@ -78,7 +78,7 @@ function getDtd(name: string): Dtd {
case "mark":
return { type: "inline" };
case "meta":
- return { type: "block", auto_closing: true };
+ return { type: "block", self_closing: true };
case "nav":
return { type: "block" };
case "noscript":
@@ -237,7 +237,7 @@ function elementNodeToHtmlText(e: Element, ctx: Context): string {
}
ctx.indentLevel -= 1;
- if (!dtd.auto_closing) {
+ if (!dtd.self_closing) {
if (e.name !== "pre") {
if (isBlockNode(e)) {
if (needsLineBreak(prevChild)) {
diff --git a/vhosts/blog/public/about/index.html b/vhosts/blog/public/about/index.html
index a11b49b6..b19a49ed 100644
--- a/vhosts/blog/public/about/index.html
+++ b/vhosts/blog/public/about/index.html
@@ -44,7 +44,6 @@
-
-
-
-
自身のソースコードを出力するプログラム、いわゆる quine の亜種になっている。 diff --git a/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html b/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html index 1283ee2b..e5409b73 100644 --- a/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html +++ b/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html @@ -84,7 +84,6 @@
-
ここには次のようなルールがある。 @@ -281,10 +280,9 @@
-
-
+
-
ここまでスルスル解けていて初めてしばらく止まった面。また、苦戦して解いた次の面がその面の派生で絶望するという経験をした最初の面。この瞬間が苦しくもあり楽しくもある。 @@ -294,10 +292,9 @@
-
-
+
-
高難易度面で当然のように要求されるテクニックの初出。可能な行動が大きく制限されているのでマシだが、それでも初見時には困惑した。 @@ -307,7 +304,6 @@
-
お気に入りの面。MOVE を活用するのも YOU を一時的に消すのも好きなので、両方出てくるこの面は大好き。
@@ -317,7 +313,6 @@
-
はい。まあこいつは後で触れることにしよう。 @@ -327,7 +322,6 @@
-
これも初見時に苦戦した面。PRISON などと同様に一度理解すれば何ということのない面だが、最初に解けたときは偶然だった。FLAG IS WIN がギリギリ取り出せそうに「見える」のが嫌らしい。
@@ -337,7 +331,6 @@
-
SHIFT 重ねの初出面。このテクニックを再び使うのは終盤になってからであり、私はそのときにはもう SHIFT 重ねを忘れていたので大苦戦した。戯れにスロット2を使って2周目をやっていてこの面まで到達し、そこでようやく SHIFT 重ねが MOVE もどきになることを思い出した。その意味でも印象深い面。
@@ -347,7 +340,6 @@
-
MAP の前半 (~DEEP FOREST) では最も苦戦した面。SWAP の理解が固まっておらず、「こういう状況が作れたら解けそうだ」という勘が働かなかった。正直なところ SWAP は今も苦手意識がある (終盤で強制的に学ばされる SHIFT と違って、それほど高難度面での出番がないのも大きいと思う)。
@@ -357,7 +349,6 @@
-
MAP の中で一番苦しんだ面。実は一度ここで投げて諦めたのだが、EMPTY を理解した今となっては脳内でも瞬殺できるくらい簡単になってしまった。最初に面を見てから解き終わるまでの時間は間違いなく最長で、半年以上かかっている (他は長くとも数日間)。
@@ -367,7 +358,6 @@
-
難しい面ではあるのだが、それ以上に解法の美しさに感動した面。解き終わった後に思わず「美しい……」と呟いてしまったのはこの面だけだった。Baba Is You の好きな面はと聞かれれば真っ先にこれを挙げる。 @@ -377,7 +367,6 @@
-
難所の多い FLOWER GARDEN の癒し。Hand が MOVE と SHIFT でガチャガチャ動くのを見るのが楽しい。
@@ -387,7 +376,6 @@
-
MAP の問題児。正攻法がテキスト重ねである最初の面。この面、ICE/LAVA IS PUSH を作ったあと重なった ice と lava を (ICE IS PUSH だけ作るなどして) 分離しないといけないのだが、意気揚々と ice on lava の状態で door に向かって push して push できなかったときの感情はよく覚えている。テキスト同士を重ねて A IS PUSH と B IS PUSH を両立させるというぶっ飛んだアイデアを実現してもなお解けないのか、この方針がまさか間違っているなどということがあるのか、いやそんなはずはない……。実際のところそこからのリカバリーはすぐできたが、そのときの絶望はこれまででも最大であった。
@@ -397,7 +385,6 @@
-
ここも好きな面。FURTHER FIELDS の精神的後継のようなものなので当然かもしれない。せっせと働く bird がかわいい。 @@ -407,7 +394,6 @@
-
MAP の印象的な面と言えば、これを取り上げないわけにはいかない。LEVEL IS A による level の変換がおこなえる初の面である。ここまで Baba Is You を進めたプレイヤーであれば、初出のテキストが現れたらまずはその場の色々なテキストと組み合わせてみて相互作用を確認する。それを見事に利用されたというか、気付かずにはいられないように仕向けられているというか、本当によくできたゲームである。
@@ -429,7 +415,6 @@
-
??? で大いに苦戦した面のひとつ。PRISON と DUNGEON で既出のテクニックが肝だが、ちと離れすぎじゃないのか。この面のリメイクもあるが、ここで苦しんだからかそちらはあまり苦戦しなかった。 @@ -439,7 +424,6 @@
-
普通に解くだけなら大したことのない面だが、問題はこれの LEVEL IS TEXT 解である。出現順に書いているのでここに置いたが、解いたのはもっと後、META の後半に差しかかった頃になる。??? コンプリートの実績が取れていないことに気付き、残っているとすればここの LEVEL IS TEXT しかないと考えたまではよかったが、そこからが大変だった。個人的にこのゲームで一番苦しかったのがここの TEXT 変換解である。単純な難しさに加え、実績が取れていない原因がこの面だという確信も持てなかったので、解けるかどうかわからない状態で挑み続けることとなり疲弊した。
@@ -459,10 +443,9 @@
-
-
+
-
両方とも難しい面ではあったが、単文字のテキストが綺麗に活用された美しい面として印象に残っている。G R A S S IS H O T をこれほど無駄なく使えるとは!
@@ -472,7 +455,6 @@
-
初見のインパクト大にして難易度も相応に高い良作。この頃はまだ SHIFT を理解していなかったので大変だったが、ここを越えたことでむしろこの後の難所が楽になったと言える。
@@ -488,7 +470,6 @@
-
DEPTHS の序盤で道を塞いでいる必須面であるにもかかわらず圧倒的難易度で立ちはだかる凶悪な面。大苦戦した挙句 LEVEL IS BELT を作ってアレ?となったのは私だけではないはず。
@@ -498,7 +479,6 @@
-
取れる行動が多いこと、もう少しで解けそうなルートが多いこと、そのどれもが一筋縄ではいかないこと。それらがすべて揃った高難度面。昔のバージョンでは ??? に置いてあったらしい。そんなバカな。 @@ -514,7 +494,6 @@
-
難しいとか難しくないとかじゃなくここは触れざるをえない。FLAG/TEXT 解以外はそれほど苦戦しなかったが、とにもかくにもクリアの要求回数が多すぎる。もちろん最短で進められるなら別だが、META での試行錯誤のためにはこいつの形を毎回変えなければならない。しかもどの変換もそれなりにステップ数を要するのが厄介である。印象に残った面であるのは確か。
@@ -524,7 +503,6 @@
-
よくぞこの面を作ってくれた。外の level を参照させるギミックは、LEVEL IS A の変換をやりだした頃からいつかあるはずと思っていたので、そのとおりのパズルが出てきてくれて嬉しい。これぞ Baba Is You。
@@ -534,7 +512,6 @@
-
前半のネタバレなし感想にも書いたが、これは SCENIC POND のリメイクであり、ほとんど差異がない。たった1マス窪みが無くなっただけである。それだけでここまで難しくできるのか。 -- cgit v1.2.3-70-g09d2