Replies: 3 comments
-
MarkdownパーサーのRemarkが扱いにくい(Remark, which is markdown parser is difficult to use)TypeScriptからKotlinで書き直したいメインの場所の一つ。RemarkがJavaScriptで書かれているので型の解決が難しいパターンがあり、プラグインを含め型から処理内容が見えてこない。
Example of gave up on type information resolution volglass/src/lib/transformer.ts Lines 82 to 88 in c04003c HTMLでの出力による問題点(Problem of HTML generation)現在はRemarkのHTML出力を用いてMarkdownを変換しているが、これによって生成された内部リンクをクリックするとフォルダーツリーなどの状態がリセットされる。これを解決するにはRouterなどを使うようなJSX.Elementを出力する必要があるが、既存のものでこの需要を満たすプラグインは見つけられず、自作しようにも型の正しさと処理の正しさが一致しないので断念した。
Obsidian特有の記法のサポートが難しい(Difficult to support Obsidian-specific notations)マーメイド記法をサポートするためにremark-mermaidjsを試したが、そもそも上手く動作せず、その上ビルド時に
|
Beta Was this translation helpful? Give feedback.
-
Slugの処理が難解(The slug process is a maze)Slugは時にはid、時にはrouterPathなどの名前で処理され、先頭のスラッシュの有無などが僕も把握できてないほど色々な場所で修正され、場所によって異なる形で提供されている。また、それぞれSlug(string)でも期待されている形式は異なるためこれらを解決するには骨が折れる。コードを紐解く時点でかなりキツい。#13 が出来たのは奇跡みたいなもん。正直もうやりたくない
|
Beta Was this translation helpful? Give feedback.
-
GraphやMarkdownコンテンツの処理が難解(The graph and markdown process is a maze)Slugの話と共通している部分があるが、序盤のコミットにて型を解決し、動作の正しさをある程度保証したものの、その処理内容は未だに理解できていない。理由としてはそもそも元がJavaScriptのコードであるため、型による構造がしっかりと定義されておらず、冗長なコードが散見される点や、自身がTypeScript/JavaScriptに慣れていないため、そもそもの認知負荷が高い点などが考えられる。
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
一言で言うとTypeScriptの開発体験がKotlinに比べて酷いって話なんだけど、それじゃあ理解が得られないのでちゃんと理由を書く。日本語がネイティブなので誤解を減らすために日本語でも書く。こっちは結構砕けた文章で書くし、英語の方には書かない内容もあるけどそれは無視してほし
※英語で文法的な間違いがあれば指摘してもらえると僕が喜びます(勉強になるので)
前提として僕はWebエンジニアでもなんでもないため、TypeScript/JavaScriptを扱うのは今回が始めてである点、そのためよりよいソリューションに気付いてない可能性や、単なる僕の技術不足による愚痴と化している可能性がある点ご容赦ください。(普段はKotlinやJavaなどの強い静的型付け言語を使用して開発をしています)
まだ #17 が作業中なので誤解のないようにしたいが、全てをkotlinで書き直すのではなく、複雑なロジックの部分だけを直すような形での更新を予定している
Beta Was this translation helpful? Give feedback.
All reactions