บอส อัครพนธ์ เปิดพอร์ตลงทุนระยะยาว PTT–KBANK–GULF–DELTA–OR ครบทุกดัชนี SET50/sSET/mai — ข่าวทดสอบ CTA Module 1 (v6 Full Coverage)
📋 ข่าวนี้สร้างเพื่อทดสอบ QC ระบบ News CTA Module 1 เท่านั้น — ข้อมูลสมมุติทั้งหมด ไม่ใช่คำแนะนำการลงทุน
อยู่ใน
<div id="htm">• กล่อง verdict สี
(ok/no/mix) อยู่ นอก
#htm ทั้งหมด → ระบบ injectInlineLinks ไม่แตะ (ไม่อยู่ใน article body scope)• ชื่อหุ้น/ดัชนีในกล่องอธิบายใส่ใน
<q> หรือ <code> เพื่อ double-safe ป้องกัน inject ซ้ำหากโค้ดเปลี่ยน scope ในอนาคต
บอส อัครพนธ์ นักลงทุนรายย่อยวัย 28 ปี เปิดเผยว่าเขาเริ่มสะสมหุ้น บริษัท ปตท. จำกัด (มหาชน) ตั้งแต่ต้นปี พร้อมทยอยซื้อ บริษัท กัลฟ์ ดีเวลลอปเมนท์ จำกัด (มหาชน) และ บริษัท ปตท.สำรวจและผลิตปิโตรเลียม จำกัด (มหาชน) เพิ่มเติม
ในพอร์ตยังมี DELTA ELECTRONICS (THAILAND) PUBLIC COMPANY LIMITED, CP ALL PUBLIC COMPANY LIMITED และ BANGKOK BANK PUBLIC COMPANY LIMITED ซึ่งเป็นบริษัทขนาดใหญ่ที่บอสเชื่อมั่นในระยะยาว
และมีชื่อย่อปนในประโยคเดียวกัน เช่น บริษัท เอสซีบี เอกซ์ จำกัด (มหาชน) หรือ SCB และ ธนาคารกสิกรไทย จำกัด (มหาชน) หรือ KBANK — ทั้งชื่อเต็มและชื่อย่อต้องลิงก์
PTTบริษัท กัลฟ์ ดีเวลลอปเมนท์ จำกัด (มหาชน) →
GULFบริษัท ปตท.สำรวจและผลิตปิโตรเลียม จำกัด (มหาชน) →
PTTEPบริษัท เอสซีบี เอกซ์ จำกัด (มหาชน) →
SCBธนาคารกสิกรไทย จำกัด (มหาชน) →
KBANK✅ ต้อง inject — ชื่อเต็มอังกฤษ ALL-CAPS (ตรง casing ใน DB):
DELTA ELECTRONICS (THAILAND) PUBLIC COMPANY LIMITED →
DELTACP ALL PUBLIC COMPANY LIMITED →
CPALLBANGKOK BANK PUBLIC COMPANY LIMITED →
BBL✅ ต้อง inject — ชื่อย่อ:
SCB KBANK (inject แยกจากชื่อเต็มในย่อหน้าเดียวกัน ไม่ทับ)เหตุผล:
mention[] มี row ที่
matched_text = full_name_th / full_name_eng คู่กับ ref_code → injectInlineLinks ใช้ escapeRegExp(matched_text) จับทั้งวลี ครอบ <a>
ภาพรวมตลาดวันนี้ ดัชนี SET ปรับขึ้นเล็กน้อยนำโดยกลุ่มพลังงาน ขณะที่ SET50 ยืนเหนือ 210 จุดได้ ส่วน SET100 แกว่งในกรอบแคบ ฟิวเจอร์ส SET50F และดัชนี Free Float ได้แก่ SET50FF และ SET100FF ต่างเคลื่อนไหวตาม ขณะที่ sSET สะท้อนหุ้น mid-small cap ปรับขึ้น และ mai ตลาดหุ้นเติบโตก็บวกเล็กน้อย
สำหรับดัชนีกลุ่มเฉพาะ SETCLMV วัดหุ้นในกลุ่ม CLMV, SETHD ดัชนีหุ้น High Dividend Yield, SETESG ดัชนีความยั่งยืน และ SETWB ดัชนี Well-Being ต่างได้รับแรงซื้อวันนี้
/th/stock: SET · SET50 · SET100 · SET50F · SET50FF · SET100FF · sSET · maiSETCLMV · SETHD · SETESG · SETWB⚠️ overlap:
SET100FF > SET100 > SET — long-first sort กันตัดทับ (longest จองช่วงก่อน)⚠️ word-boundary:
SET ห้าม match ใน asSET หรือ SET50 — ขอบขวา regex (?![A-Za-z0-9_])ป้ายย่อใน Card (fix:index-label):
SET→SET · SET50→50 · SET100→100 · sSET→S · mai→mai · SETCLMV→CLM · SETHD→HD · SETESG→ESG · SETWB→SWB · SET50F→50F · SET100FF→FF
ในกลุ่ม ปตท. มีทั้ง PTT, PTTEP และ PTTGC ซึ่ง PTT เป็น prefix ของอีกสองตัว ระบบต้องให้ PTTEP และ PTTGC ลิงก์ครบทั้งตัวก่อน ไม่ปล่อยให้ PTT ไปตัด PTTEP เหลือ EP หรือตัด PTTGC เหลือ GC บอสถือ PTT จำนวน 500 หุ้น, PTTEP จำนวน 200 หุ้น และ PTTGC จำนวน 100 หุ้น
อีกตัวอย่าง CENTEL มี CEN เป็น prefix และ NATION มี NAT เป็น prefix ต้องลิงก์ CENTEL และ NATION เต็มตัว ไม่ใช่ตัวย่อ prefix
PTTGC (6 ตัว) จองช่วงก่อน · PTTEP (5 ตัว) · PTT เดี่ยว (3 ตัว)CENTEL เต็มตัว ไม่ตัดเป็น CEN · NATION เต็มตัว ไม่ตัดเป็น NATกลไก:
buildCompiledTickers sort desc by key.length → ตัวยาวกว่า order น้อยกว่า → จองช่วง (hit) ก่อน → ตัวสั้นที่ทับถูก overlap-guard ข้าม
กลุ่มหุ้นที่บอสติดตามได้แก่ GULF, MINT, AOT และ SCB ซึ่งเป็น bluechip ทั้งหมด นอกจากนี้ยังมี [BGRIM] ที่เพิ่งซื้อเพิ่ม, {BDMS} ที่ถือมานาน, (GPSC) ในเครือ PTT Group รวมถึง OR/PTT ที่เขียนติดกันด้วย slash และ KBANK–SCB ที่คั่นด้วย em-dash
, ( ) [ ] { } / – เป็น word-boundary ด้านซ้าย (ไม่ใช่ [A-Za-z0-9_] ซึ่งเป็นที่เช็คด้าน isWordChar)→
GULF MINT AOT SCB BGRIM BDMS GPSC OR PTT KBANK inject ครบ
นักวิเคราะห์ให้ความเห็นว่า “PTT จะเป็นหุ้นเด่นไตรมาส 3/69 ส่วน GULF น่าสะสม” และอีกท่านกล่าวว่า “KBANK ยังมี upside จากการลด NPL” ขณะที่บอสเสริมแบบ curly double quote ว่า “OR เป็นหุ้น growth ในกลุ่ม PTT” และแบบ curly single quote ว่า ‘DELTA ฟื้นตัวแล้ว’
แต่ถ้าเขียนว่า KBANK’s new policy หรือ SCB’s digital platform (possessive apostrophe) ตัว straight single quote จะไม่เปิด phantom quote กลืน ticker ที่อยู่หลัง
"...": PTT GULF KBANK ใน quote → blockCurly double
"...": OR PTT → blockCurly single
'...': DELTA → block⚠️ possessive apostrophe ไม่กระทบ:
KBANK’s SCB’s It’s — straight
' ที่ขึ้นต้นหลังตัวอักษรไม่เป็น opening quote (regex บังคับขอบ: นำหน้า = ต้น/space/วงเล็บ, ตามหลัง = space/วรรคตอน/จบ)
นักข่าวแนบลิงก์ข้อมูลหุ้นไว้ในข่าวแล้ว เช่น PTT EXPLORATION AND PRODUCTION PUBLIC COMPANY LIMITED ระบบไม่ควรแทรกลิงก์ซ้อนลงไปในแท็ก a นั้นอีก
เปรียบเทียบกับ PTTEP ที่เขียนนอกลิงก์ในประโยคนี้ — ตัวนี้ต้องแทรกลิงก์น้ำเงินให้ ส่วน ดูข้อมูล PTT ที่นี่ นักข่าวใส่แล้ว ไม่ inject ซ้ำ แต่ PTT ในย่อหน้าอื่นยังต้อง inject ปกติ
<a> ของนักข่าว — collectTargetTextNodes prune subtree เมื่อ tagName ∈ EXCLUDED_TAGS (A อยู่ในนั้น)✅ inject ปกติ:
PTTEP นอก <a> ในย่อหน้าถัดไป✅ sidebar ยังนับ:
PTTEP ที่นักข่าวลิงก์ → เข้า dedup เรียงต่อกับที่เรา scan
พอร์ตบอสประกอบด้วย:
- บริษัท ปตท. จำกัด (มหาชน) (PTT): ราคา 38.50 บาท เป้าหมาย 45 บาท ถือ 500 หุ้น
- KASIKORNBANK PUBLIC COMPANY LIMITED (KBANK): ราคา 145 บาท แนวรับ 140
- GULF DEVELOPMENT PUBLIC COMPANY LIMITED (GULF): Dividend Yield 2.80% ถือ 200 หุ้น
- OR: ราคา 18.20 บาท เติบโตจาก Café Amazon ถือ 1,000 หุ้น
- ลงทุน passive ผ่านกองทุนอ้างอิง SET50 และ sSET
- วิเคราะห์ปัจจัยพื้นฐาน PTT, KBANK, GULF, OR
- ดูเทรนด์ SET50 ก่อนตัดสินใจ และติดตาม mai สำหรับหุ้น SME
<li> ทั้ง ul/ol: ชื่อเต็มไทย + EN + ชื่อย่อ + ดัชนีทุกตัวที่ปรากฏ→
PTT KBANK GULF OR SET50 sSET mai inject ครบเหตุผล:
BLOCK_SELECTOR = "p, li" — li ถือเป็น article body เหมือน p
บทความพูดถึงแนวโน้ม AI ที่ดึงดูดเงินทุน, IT ที่เปลี่ยนธุรกิจ, บริษัทด้าน META และ ASIA รวมถึง ASIAN region, NEW product ที่ออกมา, THE Fed คงดอกเบี้ย ตลาด UP ต่อเนื่อง, กลุ่ม NATION media, GREEN energy ที่มาแรง และคำว่า NAM, SO, TH, SIAM ที่ปนมา
ในทางกลับกัน OR (บริษัท ปตท. น้ำมันและการค้าปลีก จำกัด (มหาชน)) เป็นหุ้นจริงใน SET เช่นเดียวกับ PTT และ SCB — ทั้ง OR, PTT, SCB เขียน uppercase ในบริบทหุ้น ต้องจับได้
แต่ถ้าเขียนว่า “PTT or KBANK?” ที่ใช้ or ตัวเล็กเป็นคำเชื่อม ไม่ควรจับ เช่นเดียวกับ Or (ตัวใหญ่ตัวเดียว), Scb (mixed case), ptt และ kbank (ตัวเล็ก) ก็ไม่ควรได้ลิงก์
AI IT META ASIA ASIAN NEW THE UP NATION GREEN NAM SO TH SIAMเหตุผล:
backend blacklist (ticker_false_positive_risk) กรองทิ้งก่อนส่ง mention[] → ไม่มี mention row ส่งมา → injectInlineLinks ไม่มีอะไร inject
OR PTT SCB + ชื่อเต็ม บริษัท ปตท. น้ำมันและการค้าปลีก จำกัด (มหาชน)
or Or Scb ptt kbank — lowercase หรือ mixed-case → tickerFilter บล็อก⚠️ ในประโยคเดียวกัน:
PTT or KBANK? —
PTT KBANK uppercase inject ได้ · or lowercase block
กลุ่มที่ต้องระวังแต่เป็นหุ้นจริง: AOT (ท่าอากาศยานไทย), BAY (กรุงศรีอยุธยา), BH (บำรุงราษฎร์), CPN (เซ็นทรัลพัฒนา), TOP (ไทยออยล์), BIG (บิ๊ก คาเมร่า), TRUE (ทรู คอร์ปอเรชั่น), MINT (ไมเนอร์ อินเตอร์เนชั่นแนล), CBG (คาราบาวกรุ๊ป) และ OSP (โอสถสภา)
AOT BAY BH CPN TOP BIG TRUE MINT CBG OSPเหตุผล:
Risk-4 หมายถึงต้องระวัง false positive แต่ backend ตัดสินใจ ให้ผ่านเมื่อ context เป็นบริบทหุ้น (blacklist กรองเฉพาะคำสามัญล้วน ไม่ใช่หุ้น sector จริง)
บอสลงทุนใน AAPL01 (DR ของ Apple ออกโดย BLS), MSFT80 (DR ของ Microsoft โดย KTB), NVDA80 (DR ของ NVIDIA), GOOGL01 (DR ของ Google) และ TSLA80 (DR ของ Tesla) ซึ่งเป็น Depositary Receipt ที่ซื้อขายในตลาดหลักทรัพย์ไทย
สำหรับดัชนีต่างประเทศ เขาติดตาม S&P 500, Nasdaq Composite, Dow Jones Industrial Average, Nikkei 225 และ Hang Seng Index
AAPL01 MSFT80 NVDA80 GOOGL01 TSLA80 → route dr = /symbol/set/{ref}/overview/price🚫 ไม่ inject (Module 1 ตัด FOREIGN_INDEX):
S&P 500 Nasdaq Dow Jones Nikkei 225 Hang Seng —
entity_type = FOREIGN_INDEX ถูก exclude ตามที่พี่เลี้ยงกำหนด
ย่อหน้านี้อยู่ลึกในข่าว ใช้ทดสอบว่า paragraph_id ที่ Worker ส่งมา สอดคล้องกับ index ของ querySelectorAll ที่รันบน p และ li บอสสรุปว่า COM7, HMPRO และ CRC ยังเป็น core holding กลุ่มค้าปลีก
สำหรับ JMART ที่ปรากฏ 2 ย่อหน้า แต่ BE ส่ง mention row เดียว — ระบบต้องแทรก JMART ทุก occurrence ทั้งเอกสาร และ JMART ตัวที่สองในย่อหน้านี้ก็ต้องลิงก์ด้วย
COM7 HMPRO CRC✅ inject ทุก occurrence:
JMART ทั้ง 2 จุด แม้ BE ส่ง row เดียวℹ️ paragraph_id ใช้แค่:
(1) จัดลำดับ sidebar บนลงล่าง ผ่าน firstBlockIndex (2) debug pid-drift warn ใน dev mode
ℹ️ ไม่ใช้ scope การแทรก:
BE ส่ง row ไม่ครบ occurrence → ถ้า scope ตาม paragraph_id จะ regress (ลิงก์แค่ย่อหน้าเดียว) — ดู revert a33bd05ec
ℹ️ Single-pass (M+N):
collectTargetTextNodes เดิน DOM ครั้งเดียว → match ทุก ticker ต่อ text node → replace ทีเดียว (เดิม M×N)
PTT ถูกกล่าวถึงหลายครั้ง: PTT ปรับราคา LPG, PTT ขยาย EV Charging, PTT ลงทุน Renewable Energy — sidebar ควรโชว์ PTT เพียง 1 card เช่นเดียวกับ KBANK ที่ปรากฏซ้ำ: KBANK Q1 กำไรดี, KBANK ปันผลสูง, KBANK Digital banking
จำนวนหุ้นที่ BE ส่งเกิน 8 ตัว ได้แก่ PTT, KBANK, GULF, OR, PTTEP, DELTA, CPALL, BDMS, BCH, BH, BGRIM, GPSC — sidebar ตัดเหลือ 8 ตาม first mention และต้องนับ PTTEP ที่นักข่าวลิงก์ไว้แล้วใน Section F เข้ามาเรียงต่อด้วย
key = matched_text + ref_code + type → 1 card ต่อ ticker
✅ เรียง first-seen:
บนลงล่าง (firstBlockIndex) รวมหุ้นที่นักข่าวลิงก์
✅ ≤ 8 cards:
ตัดเกินออกตาม first mention order
กลุ่มพลังงาน: บริษัท ปตท. จำกัด (มหาชน) เป็นรัฐวิสาหกิจพลังงานรายใหญ่ที่สุดของไทย PTTEP ดำเนินธุรกิจสำรวจและผลิตปิโตรเลียม PTT GLOBAL CHEMICAL PUBLIC COMPANY LIMITED (PTTGC) ผลิตเคมีภัณฑ์ OR บริหาร Café Amazon และสถานีบริการน้ำมัน บริษัท กัลฟ์ ดีเวลลอปเมนท์ จำกัด (มหาชน) ผู้นำพลังงานสะอาด GPSC, บริษัท บี.กริม เพาเวอร์ จำกัด (มหาชน) และ RATCH
กลุ่มธนาคาร: ธนาคารกสิกรไทย จำกัด (มหาชน) (KBANK), บริษัท เอสซีบี เอกซ์ จำกัด (มหาชน) (SCB), BANGKOK BANK PUBLIC COMPANY LIMITED (BBL), ธนาคารกรุงไทย จำกัด (มหาชน) (KTB), ธนาคารกรุงศรีอยุธยา จำกัด (มหาชน) (BAY), ธนาคารทหารไทยธนชาต จำกัด (มหาชน) (TTB) และ TISCO
กลุ่มค้าปลีก: บริษัท ซีพี ออลล์ จำกัด (มหาชน) (CPALL), CP AXTRA PUBLIC COMPANY LIMITED (CPAXT), CENTRAL RETAIL CORPORATION PUBLIC COMPANY LIMITED (CRC), บริษัท เซ็นทรัลพัฒนา จำกัด (มหาชน) (CPN), COM7, HMPRO และ บริษัท สยามโกลบอลเฮ้าส์ จำกัด (มหาชน) (GLOBAL)
กลุ่มโรงพยาบาล: BANGKOK DUSIT MEDICAL SERVICES PUBLIC COMPANY LIMITED (BDMS), บริษัท โรงพยาบาลบำรุงราษฎร์ จำกัด (มหาชน) (BH), BANGKOK CHAIN HOSPITAL PUBLIC COMPANY LIMITED (BCH), VIBHA, RJH, THG
กลุ่มอสังหาริมทรัพย์: บริษัท เอพี (ไทยแลนด์) จำกัด (มหาชน) (AP), LAND AND HOUSES PUBLIC COMPANY LIMITED (LH), SIRI, บริษัท เอสซี แอสเสท คอร์ปอเรชั่น จำกัด (มหาชน) (SC), LPN
กลุ่มสื่อสาร: บริษัท แอดวานซ์ อินโฟร์ เซอร์วิส จำกัด (มหาชน) (ADVANC), TRUE CORPORATION PUBLIC COMPANY LIMITED (TRUE), บริษัท ไทยคม จำกัด (มหาชน) (THCOM) และ JASMINE INTERNATIONAL PUBLIC COMPANY LIMITED (JAS)
กลุ่มอาหาร-เครื่องดื่ม: CARABAO GROUP PUBLIC COMPANY LIMITED (CBG), บริษัท โอสถสภา จำกัด (มหาชน) (OSP) และ THAIFOODS GROUP PUBLIC COMPANY LIMITED (TFG)
PTT PTTEP PTTGC OR GULF GPSC BGRIM RATCHธนาคาร:
KBANK SCB BBL KTB BAY TTB TISCOค้าปลีก:
CPALL CPAXT CRC CPN COM7 HMPRO GLOBALโรงพยาบาล:
BDMS BH BCH VIBHA RJH THGอสังหาฯ:
AP LH SIRI SC LPNสื่อสาร:
ADVANC TRUE THCOM JASอาหาร-เครื่องดื่ม:
CBG OSP TFG
บริษัท การบินไทย จำกัด (มหาชน) (THAI) ฟื้นตัวดีหลังออกจากแผนฟื้นฟู ทำให้ THAI ราคาปรับขึ้น เช่นเดียวกับ OR ที่เป็นหุ้น growth ในกลุ่ม PTT
ในทางกลับกัน ชื่อที่เขียนผิด เช่น กสิกรไทย (ขาดคำว่าธนาคาร), ปตท สำรวจ (ขาดจุดและวรรคไม่ตรง DB), หรือ เดลต้า อีเล็คทรอนิคส์ (สะกดต่างจาก DB จริง) — ระบบจะไม่ inject เพราะไม่ตรง matched_text ใน mention[]
THAI · OR⚪ ไม่ inject — ชื่อเขียนผิด/ไม่ตรง DB:
กสิกรไทย · ปตท สำรวจ · เดลต้า อีเล็คทรอนิคส์
เหตุผล:
Module 1 จับเป๊ะ
matched_text จาก mention[] — fuzzy match ไม่ใช่ scope ของ Module 1
Global markets rallied as the S&P 500 hit new highs while Nasdaq gained 1.20%. Dow Jones Industrial Average closed above 45,000 points. Nikkei 225 rose 0.80%. In Thailand, SET gained 4 points as SET50 held above the 210 support level. PTT and GULF led the energy sector, and the question is whether to buy or sell as the market goes up. ADVANCED INFO SERVICE PUBLIC COMPANY LIMITED posted strong results.
SET SET50 (INDEX) · PTT GULF (SYMBOL) · ชื่อเต็ม ADVANCED INFO SERVICE PUBLIC COMPANY LIMITED → ADVANC🚫 block — lowercase คำเชื่อม:
the as or up🚫 block — uppercase blacklist:
THE UP (เป็นหุ้นจริงแต่อยู่ใน blacklist)🚫 block — FOREIGN_INDEX:
S&P 500 Nasdaq Dow Jones Nikkei 225
h2 — PTT KBANK SET50 sSET “บริษัท ปตท. จำกัด (มหาชน)” ในหัวข้อ ห้าม inject
h3 — GULF และ PTTEP ปรับพอร์ต Q3/69 ห้าม inject
h4 — OR กับดัชนี SET ปิดตลาด ห้าม inject
h5 — DELTA ELECTRONICS (THAILAND) PUBLIC COMPANY LIMITED ห้าม inject
h6 — CPALL BDMS ระดับ h6 ห้าม inject
ทั้งชื่อย่อและชื่อเต็ม TH/EN — tag
H1–H6 ∈ EXCLUDED_TAGS → collectTargetTextNodes prune ทั้ง subtree
DELTA ELECTRONICS (THAILAND) PUBLIC COMPANY LIMITED ประกาศกำไร Q1 พุ่ง 34% ขณะที่ PTT ตั้งเป้า EBITDA แตะ 120,000 ล้านบาท และ บริษัท กัลฟ์ ดีเวลลอปเมนท์ จำกัด (มหาชน) มุ่งสู่ Net Zero 2050 — CEO ให้สัมภาษณ์ Forbes Thailand
ชื่อเต็ม EN DELTA ELECTRONICS (THAILAND) PUBLIC COMPANY LIMITED,
PTT, ชื่อเต็มไทย บริษัท กัลฟ์ ดีเวลลอปเมนท์ จำกัด (มหาชน) — tag BLOCKQUOTE ∈ EXCLUDED_TAGS
ชื่อเต็มไทย/EN +
KBANK OR SET50 sSET mai — tag FIGCAPTION ∈ EXCLUDED_TAGS
ตารางหุ้นในพอร์ตบอส (border ปกติ):
| Ticker | ชื่อบริษัท (full_name_th) | ราคาซื้อ (บาท) | % Port |
|---|---|---|---|
| PTT | บริษัท ปตท. จำกัด (มหาชน) | 38.50 | 12.00% |
| KBANK | ธนาคารกสิกรไทย จำกัด (มหาชน) | 145.00 | 8.00% |
| GULF | บริษัท กัลฟ์ ดีเวลลอปเมนท์ จำกัด (มหาชน) | 52.75 | 6.00% |
| SET50 | ดัชนี SET50 (INDEX) | — | — |
ตาราง border=”0″ — ตาม requirement ใหม่ ห้ามแทรกทุกตาราง:
| BDMS | บริษัท กรุงเทพดุสิตเวชการ จำกัด(มหาชน) กำไร Q1 เติบโต 15% |
| sSET | ดัชนีหุ้น mid-small cap ปรับขึ้น 0.25% |
PTT KBANK GULF SET50 + ชื่อเต็มใน td → blockตาราง border=0:
BDMS + ชื่อเต็มไทย + sSET → blockfix ที่ต้องแก้โค้ด:
ปัจจุบัน
isDataTableCell() exclude เฉพาะ data table (border≠0 / colgroup / bgcolor) → ตาราง border="0" ยังถูกแทรก! แก้เป็น:function isDataTableCell(el: Element): boolean { if (el.tagName !== "TD" && el.tagName !== "TH") return false; return el.closest("table") !== null; // ← ทุก table ห้ามแทรก}
ตารางปิดตลาดวันที่ 15 มิ.ย. 2569 จัดคอลัมน์ด้วย pre (ห้าม inject):
<pre data-pre-preserve>: เป็นเกาะตารางตัวเลข (มี p/li นอก pre → shouldExcludeDataPre = true) — ตัวเลขจัดคอลัมน์ไม่เพี้ยนทุก token ใน pre:
SET SET50 sSET SETCLMV SETHD PTT KBANK GULF DELTA → ไม่ inject
ทุกลิงก์หุ้นที่ inject เช่น PTT, KBANK, GULF ต้องชี้ไป /th/symbol/PTT, /th/symbol/KBANK, /th/symbol/GULF ส่วนดัชนีอย่าง SET50, sSET, mai ต้องชี้ไป /th/stock ทั้งหมด hover เห็น cursor pointer ไม่มี tooltip popup
CSS scope ใน #htm: ลิงก์ที่นักข่าวใส่เองและลิงก์ที่ระบบ inject ต้องแสดงสีและขีดเส้นใต้เดียวกัน ตาม Figma design system
/th/symbol/{ref_code} — เปิดแท็บเดิม (ไม่มี target=_blank) รักษา SEO✅ onClick INDEX:
/th/stock✅ onClick DR:
/symbol/set/{ref}/overview/price (เมื่อ symbolRoute = "dr")✅ hover:
cursor: pointer · ไม่มี tooltip popup
✅ CSS #htm:
หุ้น
#007DFE + underline · ดัชนี #7D70BA + underline — ลิงก์นักข่าว + inject เหมือนกัน✅
translate="no" กัน Google Translate แปลชื่อหุ้น✅
data-inline-link="stock" / "index" marker attribute ให้ translateHTML อ่านและข้าม
① Inline Link — ต้อง inject (กล่อง ok สีน้ำเงิน):
□ A: ชื่อย่อ PTT/GULF/KBANK/SCB/DELTA/CPALL/BBL inject น้ำเงิน
□ A: ชื่อเต็มไทย ★ บริษัท ปตท. จำกัด (มหาชน) → inject ครอบทั้งวลี
□ A: ชื่อเต็มอังกฤษ ★ DELTA ELECTRONICS (THAILAND) PUBLIC COMPANY LIMITED → inject
□ B: ดัชนีครบ SET/SET50/SET100/SET50F/SET50FF/SET100FF/sSET/mai/SETCLMV/SETHD/SETESG/SETWB
□ C: PTTGC/PTTEP ไม่ถูก PTT ตัด · CENTEL ไม่ถูก CEN ตัด · NATION ไม่ถูก NAT ตัด
□ D: วรรคตอน ,()[]{}/ เป็น boundary → inject ครบ
□ G: inject ใน <li> ทั้งชื่อเต็ม+ย่อ+ดัชนี
□ H: OR/PTT/SCB uppercase → inject
□ I: AOT/BAY/BH/CPN/TOP/BIG/TRUE/MINT/CBG/OSP → inject
□ J: AAPL01/MSFT80/NVDA80/GOOGL01/TSLA80 DR → inject (route dr)
□ K: JMART 2 ย่อหน้า → inject ทุก occurrence แม้ BE ส่ง row เดียว
□ M: ชื่อเต็ม TH+EN + ชื่อย่อ ทุก sector inject ครบ
② Inline Link — ต้อง block (กล่อง no สีแดง):
□ E: ticker ใน “…” ‘…’ “…” → ไม่ inject (quote-mask)
□ E: KBANK’s/SCB’s possessive → ไม่เปิด phantom quote
□ F: ชื่อเต็ม + ticker ภายใน <a> นักข่าว → ไม่ inject ซ้อน
□ H: AI/IT/META/ASIA/ASIAN/NEW/THE/UP/NATION/GREEN/NAM/SO/TH/SIAM → block
□ H: or/Or/Scb/ptt/kbank lower/mixed → block
□ J: S&P 500/Nasdaq/Dow Jones/Nikkei 225 (FOREIGN_INDEX) → block
□ N: ชื่อเขียนผิด กสิกรไทย/ปตท สำรวจ → ไม่ inject
③ No-Inject Zones (กล่อง no สีแดง):
□ P: H1–H6 ทุกระดับ (ชื่อย่อ + ชื่อเต็ม) → ไม่ inject
□ Q: blockquote → ไม่ inject (ทั้งชื่อเต็มและย่อ)
□ R: figcaption → ไม่ inject
□ S: td/th border=1 → ไม่ inject S: td/th border=0 → ไม่ inject ← fix ใหม่
□ T: <pre data-pre-preserve> → ไม่ inject
④ Sidebar:
□ L: หุ้นซ้ำ → 1 card (dedup key = matched_text+ref_code+type)
□ L: เรียง first-seen บนลงล่าง (firstBlockIndex) + นับ PTTEP ที่นักข่าวลิงก์ในส่วน F
□ L: ≤ 8 cards
□ B: ป้ายดัชนี SET→SET · 50→50 · sSET→S · mai→mai · SETCLMV→CLM · SETHD→HD · SETESG→ESG · SETWB→SWB · SET50F→50F · SET100FF→FF
□ TC05-007: API data=[] → sidebar ซ่อน ไม่ค้าง card เก่า
⑤ On Click / Hover / CSS:
□ U: SYMBOL → /th/symbol/{ref} · INDEX → /th/stock · DR → /symbol/set/{ref}/overview/price
□ U: hover cursor:pointer ไม่มี popup
□ U: ลิงก์นักข่าว + inject สี/underline เดียวกันใน #htm
□ U: translate=”no” + data-inline-link marker
ข้อมูลในข่าวนี้เป็นข้อมูลสมมุติทั้งหมด — ทดสอบระบบ News CTA Module 1 ของ efin.finance (efinanceThai) — ไม่ใช่คำชี้ชวนหรือคำแนะนำในการลงทุน | © 2569
