หากข้อกังวลหลักของคุณคือการบังคับให้แสดงสีเดียวเพื่อให้อีโมจิไม่โดดเด่นจากข้อความมากเกินไปตัวกรอง CSS ไม่ว่าจะใช้เพียงอย่างเดียวหรือใช้ร่วมกับตัวเลือกรูปแบบ Unicode อาจเป็นสิ่งที่คุณต้องการ
p.gscale {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
a {
color: #999;
-webkit-filter: grayscale(100%) sepia(100%) saturate(400%) hue-rotate(170deg);
filter: grayscale(100%) sepia(100%) saturate(400%) hue-rotate(170deg);
}
<p class="gscale">You've now got emoji display on 🔒lockdown🔒.</p>
<p>External Link: <a href="https://knowyourmeme.com/memes/party-hard">celebrate 🎉</a></p>
ต่างจากตัวเลือกรูปแบบไม่ควรสำคัญว่าจะแสดงอิโมจิอย่างไรเนื่องจากตัวกรอง CSS ใช้กับทุกสิ่ง (ฉันใช้มันเพื่อปรับขนาดไอคอน "ประเภทลิงก์" ในรูปแบบ PNG สีเทาบนไฮเปอร์ลิงก์ที่ได้รับการแก้ไขให้ชี้ไปที่ Wayback Machine)
เพียงใจข้อแม้ คุณไม่สามารถแทนที่ตัวกรองขององค์ประกอบหลักในเด็กได้ดังนั้นจึงไม่สามารถใช้เทคนิคนี้ในการปรับขนาดย่อหน้าให้เป็นสีเทาจากนั้นจึงปรับสีลิงก์ที่อยู่ภายในองค์ประกอบนั้นอีกครั้ง 😢
... ถึงกระนั้นก็มีประโยชน์สำหรับสถานการณ์ที่คุณกำลังจะทำให้สิ่งทั้งหมดเป็นไฮเปอร์ลิงก์หรือไม่อนุญาตให้มีมาร์กอัปที่สมบูรณ์อยู่ภายใน (เช่นชื่อเรื่องและคำอธิบาย)
อย่างไรก็ตามสิ่งนี้จะใช้ไม่ได้เว้นแต่จะนำ CSS มาใช้จริงดังนั้นฉันจะให้ตัวเลือกที่สองซึ่งมีความน่าเชื่อถือใน<title>องค์ประกอบมากกว่าตัวเลือกรูปแบบ Unicode (ฉันกำลังดู GitHub ของคุณฉันไม่ชอบไอคอนปลอมในของฉัน แท็บเบราว์เซอร์):
หากคุณใส่สตริงที่ผู้ใช้ให้มาใน<title>องค์ประกอบให้กรองอีโมจิออกพร้อมกับตัวหนา / ตัวเอียง / ขีดเส้นใต้ / ฯลฯ มาร์กอัป (ใช่สำหรับผู้ที่พลาดมาตรฐานนี้จะเรียกร้องให้เนื้อหา<title>เป็นข้อความธรรมดานอกเหนือจากเครื่องหมายและค่า Escape และเบราว์เซอร์ที่ฉันทดสอบแท็กตีความทั้งหมดภายในเป็นข้อความตามตัวอักษร)
สองวิธีที่ฉันคิดได้คือ:
- ใช้regex ที่ดูแลด้วยตนเองโดยตรงซึ่งตรงกับบล็อคที่ Unicode เวอร์ชันล่าสุดใส่อิโมจิและตัวปรับแต่ง
- วนซ้ำผ่านกลุ่มกราฟและทิ้งสิ่งที่มีจุดรหัสอีโมจิที่รู้จัก (คลัสเตอร์กราฟฟีมคือสัญลักษณ์พื้นฐานบวกกับตัวกำกับเสียงและตัวปรับแต่งอื่น ๆ ที่ประกอบเป็นอักขระที่มองเห็นได้ตัวอย่างที่ฉันเชื่อมโยงเพื่อใช้เอ็นจิ้น regex ของ Python ในการโทเค็นจากนั้นจึงเป็น
emojiแพ็กเกจสำหรับฐานข้อมูล แต่ Rust เป็นตัวอย่างที่ดีของภาษา ซึ่งการวนซ้ำคลัสเตอร์กราฟีมทำได้ง่ายและรวดเร็วผ่านลังเช่นunicode-segmentation)