Skip to content

Instantly share code, notes, and snippets.

@aiko-chan-ai
Forked from kkrypt0nn/ansi-colors-discord.md
Last active March 16, 2023 17:42
Show Gist options
  • Save aiko-chan-ai/a1a01254eba788ad6933b88550f774f8 to your computer and use it in GitHub Desktop.
Save aiko-chan-ai/a1a01254eba788ad6933b88550f774f8 to your computer and use it in GitHub Desktop.
A guide to ANSI on Discord

Hướng dẫn về ANSI trên Discord

Discord hiện đang dần triển khai khả năng gửi tin nhắn có màu trong các khối mã. Nó sử dụng mã màu ANSI, vì vậy nếu bạn đã thử in văn bản có màu trong thiết bị đầu cuối hoặc bảng điều khiển của mình bằng Python hoặc các ngôn ngữ khác thì bạn sẽ thấy dễ dàng.

Giải thích nhanh

Để có thể gửi văn bản có màu, bạn cần sử dụng ngôn ngữ ansi cho khối mã của mình và cung cấp tiền tố của định dạng này trước khi viết văn bản:

\u001b[{format};{color}m

\u001b là kí hiệu unicode cho ESCAPE/ESC, có nghĩa là chỉ có thể dùng bởi bot của bạn (xem http://www.unicode-symbol.com/u/001B.html). Nếu bạn muốn gửi văn bản màu mà không sử dụng bot của mình, bạn cần sao chép ký tự từ trang web hoặc ở đây.

�[{format};{color}m

Sau khi viết xong, bây giờ bạn có thể nhập văn bản bạn muốn tô màu. Nếu bạn muốn đặt lại màu trở lại bình thường, thì bạn cần sử dụng hậu tố \u001b[0m

Định dạng

Đây là danh sách các giá trị bạn có thể sử dụng để thay thế {format}

  • 0: Bình thường
  • 1: In đậm
  • 4: Gạch dưới

Màu sắc

Đây là danh sách các giá trị bạn có thể sử dụng để thay thế {color}:

Màu chữ

  • 30: Gray
  • 31: Red
  • 32: Green
  • 33: Yellow
  • 34: Blue
  • 35: Pink
  • 36: Cyan
  • 37: White

Màu nền (đúng ra thì nó là highlight ...)

  • 40: Firefly dark blue
  • 41: Orange
  • 42: Marble blue
  • 43: Greyish turquoise
  • 44: Gray
  • 45: Indigo
  • 46: Light gray
  • 47: White

Ví dụ

Hãy lấy một ví dụ, tôi muốn có một văn bản màu xanh đậm (Green) với nền màu xanh đậm (Firefly dark blue). Tôi chỉ đơn giản sử dụng \u001b[0;40m (màu nền) và \u001b[1;32m (màu chữ) làm tiền tố. Lưu ý thứ tự là quan trọng, đầu tiên bạn cho màu nền sau đó mới đến màu chữ.

Ngoài ra, bạn cũng có thể trực tiếp kết hợp chúng thành một tiền tố duy nhất như sau: \u001b[1;40;32m và bạn cũng có thể sử dụng nhiều giá trị. Ví dụ như \u001b[1;40;4;32m sẽ gạch dưới văn bản, làm cho nó in đậm, màu chữ xanh lục và có nền màu xanh lam đậm.

Kết quả:

Background and text color

Tin nhắn thô (cần gửi bởi bot):

```ansi
\u001b[0;40m\u001b[1;32mThat's some cool formatted text right?\u001b[0m
hoặc
\u001b[1;40;32mThat's some cool formatted text right?\u001b[0m
```

Tin nhắn bạn có thể sao chép và thử luôn :3

```ansi
�[0;40m�[1;32mThat's some cool formatted text right?�[0m
hoặc
�[1;40;32mThat's some cool formatted text right?�[0m
```

ANSI Colors Showcase

Màu sắc và các định dạng khác nhau được hỗ trợ trên Discord được hiển thị ở đây

ANSI Colors

Từ chối trách nhiệm

Lưu ý: Tất cả phiên bản trên máy tính (bao gồm web) được hỗ trợ đầy đủ. Vì tính năng markdown trên thiết bị di động còn ngố nên ANSI cũng không được hỗ trợ trên thiết bị di động. Tham khảo gist này để biết các phương pháp đánh dấu cú pháp khác.

Bản gốc: Dịch từ đây bởi Elysia :3

Từ Elysia: Ely đã làm 1 module nho nhỏ cho Nodejs, để sử dụng tính năng này :3

https://www.npmjs.com/package/discord-bettermarkdown

ANSI Colors Showcase

Đây là một gist nhỏ để chỉ ra cách tác giả đã tạo bức ảnh giới thiệu các định dạng ANSI khác nhau ở trên.

\u001b là kí hiệu unicode cho ESCAPE/ESC, có nghĩa là chỉ có thể dùng bởi bot của bạn (xem http://www.unicode-symbol.com/u/001B.html). Nếu bạn muốn gửi văn bản màu mà không sử dụng bot của mình, bạn cần sao chép ký tự từ trang web.


Example

\u001b[1;40;32mThat's some cool formatted text, right?

Color Names

\u001b[0;30mGray\u001b[0;0m
\u001b[0;31mRed\u001b[0;0m
\u001b[0;32mGreen\u001b[0;0m
\u001b[0;33mYellow\u001b[0;0m
\u001b[0;34mBlue\u001b[0;0m
\u001b[0;35mPink\u001b[0;0m
\u001b[0;36mCyan\u001b[0;0m
\u001b[0;37mWhite\u001b[0;0m
\u001b[0;40mFirefly dark blue background\u001b[0;0m
\u001b[0;41mOrange background\u001b[0;0m
\u001b[0;42mMarble blue background\u001b[0;0m
\u001b[0;43mGreyish turquoise background\u001b[0;0m
\u001b[0;44mGray background\u001b[0;0m
\u001b[0;45mIndigo background\u001b[0;0m
\u001b[0;46mLight gray background\u001b[0;0m
\u001b[0;47mWhite background\u001b[0;0m

Colors

\u001b[0;30mExample\u001b[0;0m \u001b[0;31mExample\u001b[0;0m \u001b[0;32mExample\u001b[0;0m \u001b[0;33mExample\u001b[0;0m \u001b[0;34mExample\u001b[0;0m \u001b[0;35mExample\u001b[0;0m \u001b[0;36mExample\u001b[0;0m \u001b[0;37mExample\u001b[0;0m

Backgrounds

\u001b[0;40mExample\u001b[0;0m \u001b[0;41mExample\u001b[0;0m \u001b[0;42mExample\u001b[0;0m \u001b[0;43mExample\u001b[0;0m \u001b[0;44mExample\u001b[0;0m \u001b[0;45mExample\u001b[0;0m \u001b[0;46mExample\u001b[0;0m \u001b[0;47mExample\u001b[0;0m

Backgrounds & Colors

\u001b[0;40;30mExample\u001b[0;0m \u001b[0;40;31mExample\u001b[0;0m \u001b[0;40;32mExample\u001b[0;0m \u001b[0;40;33mExample\u001b[0;0m \u001b[0;40;34mExample\u001b[0;0m \u001b[0;40;35mExample\u001b[0;0m \u001b[0;40;36mExample\u001b[0;0m \u001b[0;40;37mExample\u001b[0;0m
\u001b[0;41;30mExample\u001b[0;0m \u001b[0;41;31mExample\u001b[0;0m \u001b[0;41;32mExample\u001b[0;0m \u001b[0;41;33mExample\u001b[0;0m \u001b[0;41;34mExample\u001b[0;0m \u001b[0;41;35mExample\u001b[0;0m \u001b[0;41;36mExample\u001b[0;0m \u001b[0;41;37mExample\u001b[0;0m
\u001b[0;42;30mExample\u001b[0;0m \u001b[0;42;31mExample\u001b[0;0m \u001b[0;42;32mExample\u001b[0;0m \u001b[0;42;33mExample\u001b[0;0m \u001b[0;42;34mExample\u001b[0;0m \u001b[0;42;35mExample\u001b[0;0m \u001b[0;42;36mExample\u001b[0;0m \u001b[0;42;37mExample\u001b[0;0m
\u001b[0;43;30mExample\u001b[0;0m \u001b[0;43;31mExample\u001b[0;0m \u001b[0;43;32mExample\u001b[0;0m \u001b[0;43;33mExample\u001b[0;0m \u001b[0;43;34mExample\u001b[0;0m \u001b[0;43;35mExample\u001b[0;0m \u001b[0;43;36mExample\u001b[0;0m \u001b[0;43;37mExample\u001b[0;0m
\u001b[0;44;30mExample\u001b[0;0m \u001b[0;44;31mExample\u001b[0;0m \u001b[0;44;32mExample\u001b[0;0m \u001b[0;44;33mExample\u001b[0;0m \u001b[0;44;34mExample\u001b[0;0m \u001b[0;44;35mExample\u001b[0;0m \u001b[0;44;36mExample\u001b[0;0m \u001b[0;44;37mExample\u001b[0;0m
\u001b[0;45;30mExample\u001b[0;0m \u001b[0;45;31mExample\u001b[0;0m \u001b[0;45;32mExample\u001b[0;0m \u001b[0;45;33mExample\u001b[0;0m \u001b[0;45;34mExample\u001b[0;0m \u001b[0;45;35mExample\u001b[0;0m \u001b[0;45;36mExample\u001b[0;0m \u001b[0;45;37mExample\u001b[0;0m
\u001b[0;46;30mExample\u001b[0;0m \u001b[0;46;31mExample\u001b[0;0m \u001b[0;46;32mExample\u001b[0;0m \u001b[0;46;33mExample\u001b[0;0m \u001b[0;46;34mExample\u001b[0;0m \u001b[0;46;35mExample\u001b[0;0m \u001b[0;46;36mExample\u001b[0;0m \u001b[0;46;37mExample\u001b[0;0m
\u001b[0;47;30mExample\u001b[0;0m \u001b[0;47;31mExample\u001b[0;0m \u001b[0;47;32mExample\u001b[0;0m \u001b[0;47;33mExample\u001b[0;0m \u001b[0;47;34mExample\u001b[0;0m \u001b[0;47;35mExample\u001b[0;0m \u001b[0;47;36mExample\u001b[0;0m \u001b[0;47;37mExample\u001b[0;0m

Bold

\u001b[1;30mExample\u001b[0;0m \u001b[1;31mExample\u001b[0;0m \u001b[1;32mExample\u001b[0;0m \u001b[1;33mExample\u001b[0;0m \u001b[1;34mExample\u001b[0;0m \u001b[1;35mExample\u001b[0;0m \u001b[1;36mExample\u001b[0;0m \u001b[1;37mExample\u001b[0;0m

Underlined

\u001b[4;30mExample\u001b[0;0m \u001b[4;31mExample\u001b[0;0m \u001b[4;32mExample\u001b[0;0m \u001b[4;33mExample\u001b[0;0m \u001b[4;34mExample\u001b[0;0m \u001b[4;35mExample\u001b[0;0m \u001b[4;36mExample\u001b[0;0m \u001b[4;37mExample\u001b[0;0m
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment