Code Monkey home page Code Monkey logo

distuss's Introduction

# hi.

- main laptop
  - Macbook Pro 2021 16" M1 Pro
  - Asahi Linux
  - Arch Linux ARM
  - sway

- sub laptop
  - mouse F5-i3 Intel Core i3 8145U
  - Arch Linux
  - sway

distuss's People

Contributors

nanai10a avatar

Watchers

 avatar

distuss's Issues

parser of Discord flavor markup

現状ではメッセージの content を pulldown-cmark を使用し markdown として解釈していますが, Discord の markup は markdown に準拠しておらず, "似ているだけ" に変わりがないのが現状です. また, Discord の内部的な仕様からも markdown に準拠した html 文書構造を取っておらず, 全くの別物として取り扱うべきだと考えます.

特筆すべきは:

  • 改行の扱い
  • code block 中の syntax highlight の適用
  • heading 1, 2, 3 はサポートするが heading 4, 5, 6 はサポートしない

が現状挙げられる相違点です. また, Discord には他にも特殊な記法を多くサポートしています. 代表的なのは user mention や channel link などですが, それらを考慮するとあくまで markdown として解釈するには無理があります.

従って, この文脈では "Discord flavor markup" のパーサを実装し, 運用するのが適当だと考えます.

replace stylings to tailwindcss

現状, この html renderer が使用する dark.css は browser 版の Discord から直接 css を devtools で読んで書き起こしています. がこれは不衛生極まりない上, 書いている私が構造を全く理解しておらず, 見た目を制御しきれずバグをモグラ叩きで潰す形になっています.

これを打開すべく, 且つコードベースを .rs 内部に押し込める意図を含め, tailwindcss を用いた styling に全面的な置き換えを実施する必要がある.

handlings of attatchments, embeds, etc.

メッセージには content 以外にも多くの要素を含めることが出来ますが, これをどこまで描画するのかは現状全く考慮されていません. Discord は現在進行系で多くの機能をリリースしてきており, 主に Interactions を筆頭とする機能的なコンテンツの追加は進むものと私は推察しています.

これらは確かに Discord 上では実体のある要素として作用しますが, この文脈上でこれを正確に描画することは必要なのかは吟味する必要があると考えます. たった今の私の見解としては: "contents の描画にまず力を入れ, images は部分的にサポートをする. これ以外は描画する必要はなく, 多くの場合で無駄な機能である" とします.

将来的に, この方針は変更される可能性があります.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.