What's new
Every release ships with a short summary. Old versions are backfilled from git tags; the full history lives in CHANGELOG.md.
Release notes are machine-translated (AI); the Chinese original in CHANGELOG.md is authoritative.
v0.11.32026-11-12
- 没有商品名的产品改为显示「厂家:X」:搜索结果与产品明细不再满屏「无商品名」,也不再逐行重复那句说明;所有国家一致(US / GB / ES / MX… 有 MAH 就显示厂家名),只有真的连厂家都没有时才显示「无商品名」。
- 页头在 1280–1440 宽度下不再竖排:修掉「按类别」「中文」被挤成竖排的问题。
- 结果页更好读:剂型不再在品牌列重复出现,而是并入剂量列突出显示(如「3.75 mg · 片剂」);身份卡展开摘要改为「更多同规格 / 更多记录」;目标市场 / 来源市场面板改为直接展开、不再折叠。
- ATC 类别页:每个活性成分卡片在同一行等高对齐;多盐型折叠成「第一个盐名 等 N 种」(可展开看全部);首页「按大类浏览」改为浅绿大框 + 白色小框。
- 更新日志补齐:补上 12 个历史版本(v0.8.3–v0.10.0)的四语内容与 24 个老版本的繁体,
/whats-new现在 55 个版本四语齐全;顺带修掉lib-atc-category长期红的检查(并接入--fast),Release 链接默认主域。
- Products without a trade name now show "Manufacturer: X": search results and product detail no longer fill the screen with "No trade name" and no longer repeat that note on every row; this applies to all countries (US / GB / ES / MX… show the manufacturer whenever a MAH exists), and "No trade name" appears only when even the manufacturer is missing.
- Header no longer squeezes into vertical text at 1280–1440px: fixes the "by category" and "中文" header items being squeezed into vertical text.
- Easier-to-read result pages: the form no longer repeats in the brand column but moves into the strength column and is highlighted (e.g. "3.75 mg · tablet"); the identity-card summary reads "more same strength / more records"; the target-market / source-market panels are expanded by default instead of collapsed.
- ATC category pages: active-ingredient cards align at equal height on the same row; multiple salt forms collapse into "first salt name and N more" (expandable); the home "browse by category" block becomes a light-green big frame with white inner boxes.
- Release notes filled in: 12 historical versions (v0.8.3–v0.10.0) now have all four languages and 24 older versions gained Traditional Chinese, so
/whats-newshows 55 versions in four languages; the long-redlib-atc-categorycheck is fixed (and wired into--fast), and Release links default to the main domain.
- Los productos sin nombre comercial muestran «Fabricante: X»: los resultados y el detalle ya no llenan la pantalla de «Sin nombre comercial» ni repiten esa nota en cada fila; se aplica a todos los países (US / GB / ES / MX… muestran el fabricante cuando hay MAH), y «Sin nombre comercial» solo aparece cuando tampoco hay fabricante.
- La cabecera ya no se comprime en vertical a 1280–1440 px: se corrige que «por categoría» y «中文» se compriman en vertical en la cabecera.
- Páginas de resultados más legibles: la forma ya no se repite en la columna de marca sino que pasa a la columna de concentración y se destaca (p. ej. «3,75 mg · comprimido»); el resumen de la tarjeta de identidad pasa a «más de la misma concentración / más registros»; los paneles de mercado destino / mercado de origen se muestran desplegados en lugar de plegados.
- Páginas de categoría ATC: las tarjetas de principio activo se alinean a la misma altura en la misma fila; las formas salinas múltiples se pliegan en «primer nombre de sal y N más» (ampliable); el bloque «explorar por categoría» del inicio pasa a un marco grande verde claro con cajas blancas dentro.
- Notas de versión completadas: 12 versiones históricas (v0.8.3–v0.10.0) ya tienen los cuatro idiomas y 24 versiones antiguas ganan chino tradicional, así que
/whats-newmuestra 55 versiones en cuatro idiomas; se corrige la comprobaciónlib-atc-categoryque llevaba tiempo en rojo (y se integra en--fast), y los enlaces de Release apuntan por defecto al dominio principal.
- 沒有商品名的產品改為顯示「廠商:X」:搜尋結果與產品明細不再滿屏「無商品名」,也不再逐行重複那句說明;所有國家一致(US / GB / ES / MX… 有 MAH 就顯示廠商名),只有真的連廠商都沒有時才顯示「無商品名」。
- 頁頭在 1280–1440 寬度下不再豎排:修掉「按類別」「中文」被擠成豎排的問題。
- 結果頁更好讀:劑型不再在品牌列重複出現,而是併入劑量列突出顯示(如「3.75 mg · 錠劑」);身分卡展開摘要改為「更多同規格/更多記錄」;目標市場 / 來源市場面板改為直接展開、不再摺疊。
- ATC 類別頁:每個活性成分卡片在同一行等高對齊;多鹽型摺疊成「第一個鹽名 等 N 種」(可展開看全部);首頁「按大類瀏覽」改為淺綠大框 + 白色小框。
- 更新日誌補齊:補上 12 個歷史版本(v0.8.3–v0.10.0)的四語內容與 24 個老版本的繁體,
/whats-new現在 55 個版本四語齊全;順帶修掉lib-atc-category長期紅的檢查(並接入--fast),Release 連結預設主域。
v0.11.22026-11-12
- 主站切到自有域名:canonical / hreflang / sitemap / robots / OG 全部改为
https://drugcrossref.com/;GitHub Pages 从这一版起只作备份与回滚,不再承担主索引。 - 搜索结果不再「翻掉」品牌名:完整索引在后台加载完成后,原来大量结果会从品牌名变成「无商品名」、条数提示虚高(Tylenol 27/36 行受影响、Paracetamol 500mg 误报「200 条」);修复后回到真实值(1/36、30 条)。
- 产品明细的「品牌」列不再显示包装描述:
1 BOTTLE…、2/50/100…这类包装/数量文本回到「包装」列(此前 60.8% 的明细行受影响),品牌列只显示注册商品名。 - 首页说清三步、结果页说清「你看到的是第几条候选」:输入药名(必要时先选来源市场)→ 确认这条候选的成分 / 规格 / 剂型 → 选目标市场看候选与差异;
?country=仍是目标市场语义,新增?src=来源市场;身份卡标题写明「共 N 条候选,这是第 1 条」,手机 390 首屏折成紧凑头(点开看全部),结果区重复说明压缩、搜索后保留常驻搜索栏。 - ATC 类别页每个活性成分加了独立框卡(按用户截图要求),警示页分页文案四语修复;四语键集同步(繁体重生成,非手写)。
- The main site now runs on our own domain: canonical / hreflang / sitemap / robots / OG all point to
https://drugcrossref.com/; GitHub Pages becomes a backup and rollback copy from this version on, and no longer carries the primary index. - Search results no longer lose their brand names: after the full index finished loading in the background, many rows used to turn into "No trade name" and the count hint was inflated (27/36 Tylenol rows affected; "200 results" for Paracetamol 500mg). Both are back to the real values (1/36, 30).
- The "Brand" column in product details no longer shows packaging text: strings such as
1 BOTTLE…and2/50/100…are back in the "Pack" column (60.8% of detail rows were affected); the brand column only shows the registered trade name. - The home page now spells out the three steps, and the result page says which candidate you are looking at: type a name (optionally pick the source market first) → check this candidate's ingredient / strength / form → pick a target market to see the candidates and differences there.
?country=still means the target market;?src=is new for the source market. The identity card now says "N candidates, this is candidate 1", folds into a compact header on 390px screens (tap to expand), the repeated explanation above results is shorter, and a compact search bar stays available after searching. - Each active ingredient on ATC class pages now has its own card (per the user's screenshot), the warning page pagination copy is fixed in all four languages, and all four language key sets are in sync (Traditional Chinese regenerated, not hand-written).
- El sitio principal pasa a nuestro propio dominio: canonical / hreflang / sitemap / robots / OG apuntan ahora a
https://drugcrossref.com/; GitHub Pages queda como copia de respaldo y reversión, y ya no lleva el índice principal. - Los resultados de búsqueda ya no pierden el nombre comercial: después de cargar el índice completo en segundo plano, muchas filas pasaban a «Sin nombre comercial» y el contador se inflaba (27/36 filas de Tylenol afectadas; «200 resultados» para Paracetamol 500mg). Ambos vuelven al valor real (1/36, 30).
- La columna «Marca» de los detalles del producto ya no muestra texto de envase: cadenas como
1 BOTTLE…y2/50/100…vuelven a la columna «Envase» (afectaba al 60,8% de las filas de detalle); la columna de marca solo muestra el nombre registrado. - La página de inicio explica los tres pasos y el resultado dice qué candidato estás viendo: escribe un nombre (si hace falta, elige antes el mercado de origen) → comprueba el principio activo / concentración / forma de este candidato → elige el mercado destino para ver los candidatos y las diferencias.
?country=sigue siendo el mercado destino;?src=es nuevo para el mercado de origen. La tarjeta de identidad ahora dice «N candidatos, este es el 1», se pliega en una cabecera compacta en pantallas de 390px (toca para expandir), la explicación repetida sobre los resultados es más corta y la barra de búsqueda compacta sigue disponible tras buscar. - Cada principio activo de las páginas de clase ATC tiene ahora su propia tarjeta (según la captura del usuario), se corrige el texto de paginación de la página de advertencias en los cuatro idiomas y las claves de los cuatro idiomas quedan sincronizadas (chino tradicional regenerado, no escrito a mano).
- 主站切到自有域名:canonical / hreflang / sitemap / robots / OG 全部改為
https://drugcrossref.com/;GitHub Pages 從這一版起只作備份與回滾,不再承擔主索引。 - 搜尋結果不再「翻掉」品牌名:完整索引在背景載入完成後,原來大量結果會從品牌名變成「無商品名」、條數提示虛高(Tylenol 27/36 行受影響、Paracetamol 500mg 誤報「200 條」);修復後回到真實值(1/36、30 條)。
- 產品明細的「品牌」列不再顯示包裝描述:
1 BOTTLE…、2/50/100…這類包裝/數量文本回到「包裝」列(此前 60.8% 的明細行受影響),品牌列只顯示註冊商品名。 - 首頁說清三步、結果頁說清「你看到的是第幾條候選」:輸入藥名(必要時先選來源市場)→ 確認這條候選的成分 / 規格 / 劑型 → 選目標市場看候選與差異;
?country=仍是目標市場語義,新增?src=來源市場;身分卡標題寫明「共 N 條候選,這是第 1 條」,手機 390 首屏折成緊湊頭(點開看全部),結果區重複說明壓縮、搜尋後保留常駐搜尋欄。 - ATC 類別頁每個活性成分加了獨立框卡(按使用者截圖要求),警語頁分頁文案四語修復;四語鍵集同步(繁體重生成,非手寫)。
v0.11.12026-11-11
- 三语首页说同一句话:英文 / 西语首页标题原来承诺的是「识别这是什么药」(像药品识别器),现在与中文同一个口径「查一个药名,看它在各国是什么」。「你得到的永远是候选集」从副标题第二句提成首屏独立一行(16px 正常字色),不再当注脚藏起来。
- 国家 / 地区筛选收进「只看某个国家/地区(可选)」:首页主路径回到「一个输入框」;
?country=CN这类深链会自动展开并显示「看这个药在中国叫什么」;顺带修掉「切换界面语言后这行标签不再翻译」的旧问题。 - 搜索框多了一个看得见的提交按钮(44×44,移动端键盘的「搜索」键同一条路径),桌面输入框右侧提示「按 / 聚焦」,有内容时提示自动隐去。
- 读屏与语义:主导航 / 更多 / 分区导航 / 搜索建议的无障碍名改成四语(中文与西语页不再中途冒出英文);成分页「按国家分组」块头由 h3 提到 h2,修掉 h1 → h3 的跳级。
- ATC 大类页状态改成纯文字:去掉四色圆角底墙,改成「状态词 + 市场码」的纯文字行(在售用正常前景色,已停售 / 已撤市用警示色,状态未知用次要色);impeccable 的 cramped-padding 从 1,630 条降到 0。
- The three home pages now say the same thing: the English and Spanish home headlines used to promise "find out what a medicine really is" (like a pill identifier). They now match the Chinese wording: look up one medicine name and see what it is called in each country. "You always get a candidate set" moved out of the subtitle into its own 16px line on the first screen, instead of hiding as a footnote.
- The country/region filter folded into "Only one country/region (optional)": the home page main path is back to a single input box. Deep links such as
?country=CNexpand it automatically and show "See what this medicine is called in China". This also fixes the old bug where the label stopped being translated after switching interface language. - The search box has a visible submit button (44×44, the same path as the mobile keyboard's search key), with a desktop hint "Press / to focus" that hides as soon as you type.
- Screen readers and semantics: the accessible names of the primary navigation, the "more" menu, the section bar and the suggestion list are now translated in all four languages (Chinese and Spanish pages no longer switch to English mid-page); on ingredient pages the market block heading moved from h3 to h2, fixing the h1 to h3 skip.
- ATC class pages moved status to plain text: the four-colour rounded badge wall is gone, replaced by a plain "status word + market codes" row (on-sale in normal foreground, discontinued and withdrawn in warning colours, unknown in the muted colour); the cramped-padding count from impeccable dropped from 1,630 to 0.
- Las tres páginas de inicio dicen lo mismo: los títulos en inglés y español prometían «descubre qué es realmente un medicamento» (como un identificador de pastillas). Ahora coinciden con el texto chino: busca un nombre de medicamento y mira cómo se llama en cada país. «Siempre obtienes un conjunto de candidatos» sale del subtítulo y pasa a su propia línea de 16px en la primera pantalla.
- El filtro de país/región se pliega en «Solo un país/región (opcional)»: la ruta principal de la página de inicio vuelve a ser una sola caja de búsqueda. Los enlaces directos como
?country=CNlo despliegan solos y muestran «Mira cómo se llama este medicamento en China». También se corrige el fallo antiguo por el que la etiqueta dejaba de traducirse al cambiar de idioma. - La caja de búsqueda tiene un botón de envío visible (44×44, la misma ruta que la tecla de búsqueda del teclado móvil), con la pista «Pulsa / para enfocar» en escritorio, que se oculta al escribir.
- Lectores de pantalla y semántica: los nombres accesibles de la navegación principal, el menú «más», la barra de secciones y la lista de sugerencias están ahora en los cuatro idiomas (las páginas en chino y español ya no cambian a inglés a mitad de página); en las páginas de ingredientes el título de cada bloque de mercado pasa de h3 a h2, corrigiendo el salto de h1 a h3.
- Las páginas de clase ATC pasan el estado a texto plano: desaparece el muro de insignias redondeadas de cuatro colores y se sustituye por una fila de texto «palabra de estado + códigos de mercado» (en venta en color normal, retirado y suspendido en colores de aviso, estado desconocido en color atenuado); las incidencias de cramped-padding de impeccable bajan de 1.630 a 0.
- 三語首頁說同一句話:英文 / 西語首頁標題原來承諾的是「識別這是什麼藥」(像藥品識別器),現在與中文同一個口徑「查一個藥名,看它在各國是什麼」。「你得到的永遠是候選集」從副標題第二句提成首屏獨立一行(16px 正常字色),不再當註腳藏起來。
- 國家 / 地區篩選收進「只看某個國家/地區(可選)」:首頁主路徑回到「一個輸入框」;
?country=CN這類深鏈會自動展開並顯示「看這個藥在中國叫什麼」;順帶修掉「切換介面語言後這行標籤不再翻譯」的舊問題。 - 搜尋框多了一個看得見的送出按鈕(44×44,行動裝置鍵盤的「搜尋」鍵同一條路徑),桌面輸入框右側提示「按 / 聚焦」,有內容時提示自動隱去。
- 讀屏與語義:主導航 / 更多 / 分區導航 / 搜尋建議的無障礙名稱改成四語(中文與西語頁不再中途冒出英文);成分頁「按國家分組」區塊標題由 h3 提到 h2,修掉 h1 → h3 的跳級。
- ATC 大類頁狀態改成純文字:去掉四色圓角底牆,改成「狀態詞 + 市場碼」的純文字列(在售用正常前景色,已停售 / 已撤市用警示色,狀態未知用次要色);impeccable 的 cramped-padding 從 1,630 條降到 0。
v0.11.02026-11-11
- 欧盟区域层(EU)上线:EC Union Register(CC BY 4.0)+ EMA 数据接入 2,095 个集中审批产品 / 2,138 条成分记录(在售 1,547、已撤市 406、状态未知 142),全库 479,193 产品;覆盖页多一行 EU,成分页可看「同名在欧盟层的集中审批记录」,搜索结果带 EU 标记。EU 层没有规格、剂型、包装,页面一律写「未收录」,并明说「授权有效 ≠ 各国在售」。
- 口径改成「10 国 + EU 区域」:覆盖页、About、首页文案统一;EU 是区域层(region='EU'、country 为空),不进国家统计,但进市场下拉与筛选。
- 不建 EU 名字页:647 个只在欧盟层出现的名字不生成单页(省 2.7 MB),从搜索结果直接点进成分页。
- 同名提醒(collision)905 → 925(+20):新增的 20 条来自欧盟层「同名不同成分」,仍是自动推导,不手工标注。
- EU 成分页说清「区域层」口径(四语):EU 市场块与并排表的 EU 列都写明「欧盟集中审批(EMA)— 欧盟层授权,不是某一国家的在售记录;欧盟登记不含规格、剂型、包装」,随界面语言在 en / es / zh / zh-Hant 之间切换。
- EU regional layer is live: EC Union Register (CC BY 4.0) plus EMA data add 2,095 centrally authorised products and 2,138 ingredient records (1,547 active, 406 withdrawn, 142 unknown status); the database now holds 479,193 products. Coverage gains an EU row, ingredient pages show EU central-authorisation records, and search results carry an EU tag. The EU layer has no strength, dosage form or pack size, so pages say "not recorded" and spell out that an EU authorisation is not a record of sale in any country.
- Coverage wording is now "10 countries + EU region" across the coverage page, About and the home page. EU is a regional layer (region='EU', country empty): it is excluded from country statistics but appears in the market selector and filters.
- No EU name pages: the 647 names that only exist at EU level get no page of their own (saving 2.7 MB); search results lead straight to the ingredient page.
- Same-name warnings (collision) 905 → 925 (+20): the 20 new ones come from EU-level same-name/different-ingredient cases, still derived automatically, never hand-labelled.
- EU pages now spell out what the regional layer means (four languages): the EU market block and the EU column of the side-by-side table both say 'EU centralised authorisation (EMA) — authorised at EU level, not a record of sale in any single country; the EU register carries no strength, dosage form or pack size', switching between en / es / zh / zh-Hant with the interface language.
- Capa regional de la UE en línea: el Union Register de la Comisión Europea (CC BY 4.0) y los datos de la EMA añaden 2,095 productos de autorización centralizada y 2,138 registros de componentes (1,547 autorizados, 406 retirados, 142 con estado desconocido); la base contiene ahora 479,193 productos. La cobertura gana una fila EU, las páginas de principio activo muestran los registros de autorización centralizada y los resultados de búsqueda llevan la etiqueta EU. La capa EU no tiene dosis, forma farmacéutica ni envase, así que las páginas dicen «no registrado» y aclaran que una autorización de la UE no es un registro de venta en ningún país.
- La cobertura pasa a «10 países + región UE» en la página de cobertura, About y la portada. La UE es una capa regional (region='EU', country vacío): no entra en las estadísticas por país, pero sí en el selector y los filtros de mercado.
- Sin páginas de nombre para la UE: los 647 nombres que solo existen a nivel UE no generan página propia (ahorra 2.7 MB); los resultados de búsqueda llevan directo a la página del principio activo.
- Avisos de mismo nombre (collision) 905 → 925 (+20): los 20 nuevos provienen de casos de mismo nombre con principio activo distinto en la capa UE; siguen derivándose automáticamente, nunca se etiquetan a mano.
- Las páginas de la UE explican qué es la capa regional (cuatro idiomas): el bloque de mercado UE y la columna UE de la tabla comparativa dicen «Autorización centralizada de la UE (EMA): autorizado a nivel de la UE, no es un registro de venta en ningún país concreto; el registro de la UE no incluye dosis, forma farmacéutica ni tamaño de envase», y cambian con el idioma de la interfaz (en / es / zh / zh-Hant).
- 歐盟區域層(EU)上線:EC Union Register(CC BY 4.0)+ EMA 資料接入 2,095 個集中審批產品/2,138 條成分紀錄(在售 1,547、已撤市 406、狀態未知 142),全庫 479,193 產品;覆蓋頁多一列 EU,成分頁可看「同名在歐盟層的集中審批紀錄」,搜尋結果帶 EU 標記。EU 層沒有規格、劑型、包裝,頁面一律寫「未收錄」,並明說「授權有效 ≠ 各國在售」。
- 口徑改成「10 國 + EU 區域」:覆蓋頁、About、首頁文案統一;EU 是區域層(region='EU'、country 為空),不進國家統計,但進市場下拉與篩選。
- 不建 EU 名字頁:647 個只在歐盟層出現的名字不生成單頁(省 2.7 MB),從搜尋結果直接點進成分頁。
- 同名提醒(collision)905 → 925(+20):新增的 20 條來自歐盟層「同名不同成分」,仍是自動推導,不手工標註。
- 站點 121,450 檔案/880.8 MB(840.0 MiB);sitemap 63,685 URL;core.json 41.6 MB raw;四語對齊(i18n 鍵集 532 × 4,zh-Hant 無回落)。
v0.10.32026-11-10
- 桌面端内容带改成中间 2/3:≥1280 px 视口下正文固定占屏宽 66.7% 居中(1440→960、1920→1280、2560 封顶 1680),正文行长稳定 543 px(72ch),两侧留白对称;手机与平板(<1280)完全不变。页头/页脚同步与正文同宽。
- 成分页换掉矩阵,改成「按国家分组清单」:每个国家一块(
CN · 1,432 条 · 12 个规格),每行规格 · 剂型 · 释放+ 最多 2 个商品名 ++N,行尾也在 GB·US可点击跳到对应国家并高亮——「未收录」空格从页面上消失(旧页出现 73.3% 的空白格),行高从 109–307 px 降到 1440 下 54–56 px / 390 下 73 px;矩阵保留在?view=table,只对该成分跨市场记录较多的 789 页内嵌。 - 剂型数据修正 23,890 行(占全库 5.0%):泡腾剂成为独立类(948 行,129 个成分页从「片剂」改为「泡腾剂」)、15,570 行注射剂被误判成「液体」已纠正(成分页 2,311→2,809)、3,305 行粉剂从「液体」改回、1,880 行缓释/肠溶补上释放机制(ER +58 页 / DR +27 页)。副作用是
collision的「不同释放机制」提醒 837→905(+68)——这是过去被漏掉的真提醒,不是误报。 - 站点 121,319 文件 / 878.2 MB(837.5 MiB,比上一版小 54 MB / −5.8%);sitemap 63,366 URL;四语对齐。
- Desktop content band is now the middle two thirds: at ≥1280 px the content is a centred 66.7% of the viewport (1440→960, 1920→1280, capped at 1680 on 2560), prose lines stay at 543 px (72ch) and the left and right margins are symmetric; phones and tablets (<1280) are unchanged. Header and footer now share the same band.
- The ingredient page drops the matrix for a by-country list: one block per country (
CN · 1,432 records · 12 strengths), each row showingstrength · dose form · releaseplus at most 2 brand names and+N, with analso in GB·USlink at the end that jumps to that country and highlights it — the “not recorded” empty cells are gone (the old page was 73.3% empty cells) and row height drops from 109–307 px to 54–56 px at 1440 / 73 px at 390; the matrix stays behind?view=tableand is embedded only on the 789 pages where an ingredient has records in many markets. - Dose-form data fixed for 23,890 rows (5.0% of the database): effervescent forms become their own class (948 rows; 129 ingredient pages change from “tablet” to “effervescent”), 15,570 injection rows that were misclassified as “liquid” are corrected (ingredient pages 2,311→2,809), 3,305 powder rows move back from “liquid”, and 1,880 extended/enteric-release rows gain a release mechanism (ER +58 pages / DR +27 pages). Side effect:
collision“different release mechanism” notices go 837→905 (+68) — these are real notices that used to be missed, not false positives. - Site: 121,319 files / 878.2 MB (837.5 MiB, 54 MB / −5.8% smaller than the previous release); sitemap 63,366 URLs; four languages aligned.
- La banda de contenido de escritorio pasa a los dos tercios centrales: a ≥1280 px el contenido ocupa el 66,7 % del ancho de la ventana, centrado (1440→960, 1920→1280, tope de 1680 en 2560), las líneas de texto se mantienen en 543 px (72ch) y los márgenes izquierdo y derecho son simétricos; móviles y tabletas (<1280) no cambian. La cabecera y el pie usan la misma banda.
- La página de principio sustituye la matriz por una lista agrupada por país: un bloque por país (
CN · 1.432 registros · 12 presentaciones), cada fila conconcentración · forma · liberaciónmás como máximo 2 nombres comerciales y+N, y un enlacetambién en GB·USal final que salta a ese país y lo resalta — las celdas vacías «no consta» desaparecen (la página anterior era un 73,3 % de celdas vacías) y la altura de fila baja de 109–307 px a 54–56 px en 1440 / 73 px en 390; la matriz se mantiene en?view=tabley solo se incrusta en las 789 páginas con registros en muchos mercados. - Datos de forma farmacéutica corregidos en 23.890 filas (5,0 % de la base): las formas efervescentes pasan a ser clase propia (948 filas; 129 páginas de principio cambian de «comprimido» a «efervescente»), se corrigen 15.570 filas de inyectables mal clasificadas como «líquido» (páginas de principio 2.311→2.809), 3.305 filas de polvo vuelven desde «líquido» y 1.880 filas de liberación prolongada/entérica recuperan su mecanismo (ER +58 páginas / DR +27 páginas). Efecto secundario: los avisos de
collisionpor «mecanismo de liberación distinto» pasan de 837 a 905 (+68) — son avisos reales que antes se perdían, no falsos positivos. - Sitio: 121.319 archivos / 878,2 MB (837,5 MiB, 54 MB / −5,8 % menos que la versión anterior); sitemap 63.366 URL; cuatro idiomas alineados.
- 桌面端內容帶改成中間 2/3:≥1280 px 視窗下正文固定佔螢幕寬 66.7% 置中(1440→960、1920→1280、2560 封頂 1680),正文行長穩定 543 px(72ch),兩側留白對稱;手機與平板(<1280)完全不變。頁首/頁尾同步與正文同寬。
- 成分頁換掉矩陣,改成「按國家分組清單」:每個國家一塊(
CN · 1,432 筆 · 12 個規格),每列規格 · 劑型 · 釋放+ 最多 2 個商品名 ++N,列尾也在 GB·US可點擊跳到對應國家並高亮——「未收錄」空格從頁面上消失(舊頁出現 73.3% 的空白格),列高從 109–307 px 降到 1440 下 54–56 px / 390 下 73 px;矩陣保留在?view=table,只對該成分跨市場紀錄較多的 789 頁內嵌。 - 劑型資料修正 23,890 列(佔全庫 5.0%):泡騰劑成為獨立類(948 列,129 個成分頁從「錠劑」改為「泡騰劑」)、15,570 列注射劑被誤判成「液體」已糾正(成分頁 2,311→2,809)、3,305 列粉劑從「液體」改回、1,880 列緩釋/腸溶補上釋放機制(ER +58 頁 / DR +27 頁)。副作用是
collision的「不同釋放機制」提醒 837→905(+68)——這是過去被漏掉的真提醒,不是誤報。 - 站點 121,319 檔案 / 878.2 MB(837.5 MiB,比上一版小 54 MB / −5.8%);sitemap 63,366 URL;四語對齊。
v0.10.22026-11-10
- 手机与弱网不再被偷跑 9.9 MB:全量索引(41.5 MB raw / 9.9 MB gz)的后台预取改为「静置 9 秒后才拉」,省流模式(
saveData)与 2G/3G 直接不拉;实测输入 2 个字后 3 秒内core.json请求 0 次,断网时已出的分片结果不再被错误框覆盖。 - 12 万长尾页首屏 −37.7%:界面字典按语言拆包,长尾页只加载当前语言(103 KB → 39.7 KB gz);非英文首页 143.9 KB → 105.8 KB,回到 110 KB 预算内。
- 类别与 ATC 码首查从 12.6 秒降到 ~0.03 秒:构建期预生成类别词表(23 KB)与 16 个大类切片,「退烧药 / 抗凝药 / 胃药 / skin medicine」这类口语词与繁简写法都能直接命中;类别结果排序改为按成分实有产品数,24 条类别用例 24/24、Top-1 17→24。
- 界面可读性(用户反馈逐条改):所有嵌套框体「框内颜色 ≠ 框外颜色」(页头、筛选区、类别 chip、次要按钮重排色阶);ATC 页的状态徽章改为按国家分组(
在售 US·GB·CN · 已撤市 TW),盐型独立成行、字号 14→16 px、宽屏不再挤在中间一条细列;成分页顶部加成分名悬浮条、手机端筛选区默认折叠;矩阵不再出现「三列全是未收录」的空行。 - CN 无商品名的产品改为显示厂家(126,716 条,占 CN 产品 87.4%);泡腾剂单独成类显示(948 条),不再混进「片剂」。四语同步;i18n 四语一致性与首屏可见性两道守卫已进 CI。
- 站点 121,316 文件 / 932.2 MB(889.0 MiB);sitemap 63,363 URL;四语对齐。类别索引 23 KB、ATC 成分表 214 KB 按需加载,首查不再等 41.5 MB 全量索引。首页首屏 gz:en 91.1 KB、es/zh/zh-Hant 92.2 KB(预算口径 ≤110 KB);含
terms.json的观察值 115.2–116.3 KB,v0.10.3 改为按需加载。
- Phones and slow networks no longer pull 9.9 MB in the background: the full index (41.5 MB raw / 9.9 MB gz) is now prefetched only after nine quiet seconds, and not at all in data-saver mode (
saveData) or on 2G/3G; measured: typing two characters triggers zerocore.jsonrequests within three seconds, and offline the shard results already on screen are no longer replaced by an error box. - First screen of the 120k long-tail pages −37.7%: the UI dictionary is split per language and long-tail pages load only the current one (103 KB → 39.7 KB gz); non-English homepages 143.9 KB → 105.8 KB, back within the 110 KB budget.
- Category and ATC-code first queries from 12.6 s to ~0.03 s: the build pre-generates a category word list (23 KB) and 16 category slices, so colloquial terms and traditional/simplified spellings (
退烧药/抗凝药/胃药/skin medicine) match directly; category results are now ordered by each ingredient's real product count — 24/24 category cases, Top-1 17→24. - Readability (each item from user feedback): every nested surface now has a fill different from its container (header, filter panel, category chips, secondary buttons re-stacked); ATC status badges are grouped by country (
active US·GB·CN · withdrawn TW), salt forms get their own line, text 14→16 px and wide screens no longer squeeze content into a narrow middle column; ingredient pages get a sticky ingredient-name bar and the mobile filter panel is collapsed by default; the matrix no longer shows rows whose visible columns are all “not recorded”. - CN products without a brand name now show the manufacturer (126,716 records, 87.4% of CN products); effervescent forms are shown as their own class (948 records) instead of being mixed into “tablet”. All four languages updated; the four-language i18n gate and the first-screen visibility gate are now part of CI.
- Site: 121,316 files / 932.2 MB (889.0 MiB); sitemap 63,363 URLs; four languages aligned. The 23 KB category index and 214 KB ATC ingredient table load on demand, so a first query no longer waits for the 41.5 MB full index. Homepage first-screen gz: en 91.1 KB, es/zh/zh-Hant 92.2 KB (budget measure ≤110 KB); counting
terms.json, the observed value is 115.2–116.3 KB, and v0.10.3 will load it on demand.
- Los móviles y las redes lentas ya no descargan 9,9 MB en segundo plano: el índice completo (41,5 MB raw / 9,9 MB gz) solo se precarga tras nueve segundos de calma, y nunca en modo ahorro de datos (
saveData) ni en 2G/3G; medido: escribir dos caracteres genera cero peticiones decore.jsonen tres segundos, y sin conexión los resultados de fragmento ya mostrados no se sustituyen por un cuadro de error. - Primera pantalla de las 120.000 páginas de cola −37,7 %: el diccionario de interfaz se divide por idioma y las páginas de cola cargan solo el actual (103 KB → 39,7 KB gz); portadas no inglesas 143,9 KB → 105,8 KB, de nuevo dentro del presupuesto de 110 KB.
- Primera búsqueda por categoría y por código ATC de 12,6 s a ~0,03 s: la compilación pregenera una lista de palabras de categoría (23 KB) y 16 fragmentos de categoría, de modo que los términos coloquiales y las grafías tradicionales/simplificadas (
退烧药/抗凝药/胃药/skin medicine) coinciden directamente; los resultados de categoría se ordenan por el número real de productos de cada principio — 24/24 casos de categoría, Top-1 17→24. - Legibilidad (punto por punto del comentario del usuario): cada superficie anidada tiene ahora un relleno distinto del de su contenedor (cabecera, panel de filtros, chips de categoría, botones secundarios reordenados); las insignias de estado ATC se agrupan por país (
activo US·GB·CN · retirado TW), las formas de sal van en su propia línea, el texto pasa de 14 a 16 px y las pantallas anchas ya no comprimen el contenido en una columna estrecha; las páginas de principio muestran una barra fija con el nombre y el panel de filtros móvil está plegado por defecto; la matriz ya no muestra filas cuyas columnas visibles son todas «no consta». - Los productos CN sin nombre comercial muestran ahora el fabricante (126.716 registros, 87,4 % de los productos CN); las formas efervescentes se muestran como clase propia (948 registros) en lugar de mezclarse con «comprimido». Los cuatro idiomas actualizados; la puerta i18n de cuatro idiomas y la de visibilidad en primera pantalla ya forman parte de la CI.
- Sitio: 121.316 archivos / 932,2 MB (889,0 MiB); sitemap 63.363 URL; cuatro idiomas alineados. El índice de categorías de 23 KB y la tabla de principios ATC de 214 KB se cargan bajo demanda, así que la primera consulta ya no espera al índice completo de 41,5 MB. Gzip de la primera pantalla de la portada: en 91,1 KB, es/zh/zh-Hant 92,2 KB (medida de presupuesto ≤110 KB); contando
terms.json, el valor observado es 115,2–116,3 KB, y v0.10.3 lo cargará bajo demanda.
- 手機與弱網不再被偷跑 9.9 MB:全量索引(41.5 MB raw / 9.9 MB gz)的背景預取改為「靜置 9 秒後才拉」,省流模式(
saveData)與 2G/3G 直接不拉;實測輸入 2 個字後 3 秒內core.json請求 0 次,斷網時已出的分片結果不再被錯誤框覆蓋。 - 12 萬長尾頁首屏 −37.7%:介面字典按語言拆包,長尾頁只載入目前語言(103 KB → 39.7 KB gz);非英文首頁 143.9 KB → 105.8 KB,回到 110 KB 預算內。
- 類別與 ATC 碼首查從 12.6 秒降到 ~0.03 秒:建置期預生成類別詞表(23 KB)與 16 個大類切片,「退燒藥 / 抗凝藥 / 胃藥 / skin medicine」這類口語詞與繁簡寫法都能直接命中;類別結果排序改為按成分實有產品數,24 條類別用例 24/24、Top-1 17→24。
- 介面可讀性(使用者回饋逐條改):所有巢狀框體「框內顏色 ≠ 框外顏色」(頁首、篩選區、類別 chip、次要按鈕重排色階);ATC 頁的狀態角標改為按國家分組(
販售中 US·GB·CN · 已下市 TW),鹽型獨立成行、字級 14→16 px、寬螢幕不再擠在中間一條細欄;成分頁頂部加成分名懸浮條、手機端篩選區預設折疊;矩陣不再出現「三欄全是未收錄」的空列。 - CN 無商品名的產品改為顯示廠商(126,716 筆,占 CN 產品 87.4%);泡騰劑單獨成類顯示(948 筆),不再混進「錠劑」。四語同步;i18n 四語一致性與首屏可見性兩道守衛已進 CI。
- 站點 121,316 檔案 / 932.2 MB(889.0 MiB);sitemap 63,363 URL;四語對齊。類別索引 23 KB、ATC 成分表 214 KB 按需載入,首查不再等 41.5 MB 全量索引。首頁首屏 gz:en 91.1 KB、es/zh/zh-Hant 92.2 KB(預算口徑 ≤110 KB);含
terms.json的觀察值 115.2–116.3 KB,v0.10.3 改為按需載入。
v0.10.12026-11-10
- 修复 ATC / 大类页「中文名成分被误合并」:纯中文名成分在归一化时变成空串,互相覆盖后全被算成同一个成分——
/atc/J01.html里「地喹氯铵」一个条目下挂出几十个不相关抗生素名。现在各成分只出现在自己的 ATC 类目与成分页里,盐型归并口径不变。 - 首页体积回到预算内:四份首页(en / es / zh / zh-hant)只内联当前语言的界面字典(四语 128.8 KB → 单语 22–42 KB),首页 HTML 226.5 KB → 109–113 KB(−52%),回到 UI 规格上限(215.8 KB)以内;语言切换 16/16、
?lang=深链 4/4、localStorage 偏好 3/3 真浏览器验证 0 文本错配,搜索结果页 4/4 HTTP 200。 - 站点 121,293 文件 / 880.2 MB(839.4 MiB);sitemap 63,363 URL;四语对齐。
- Fixed Chinese-named ingredients being merged on ATC / category pages: ingredients with purely Chinese names normalised to an empty string, overwrote each other and were all counted as one substance — a single 地喹氯铵 (dequalinium) entry on
/atc/J01.htmllisted dozens of unrelated antibiotics. Each substance now appears only in its own ATC class and ingredient page; salt consolidation is unchanged. - Homepage size back within budget: the four homepages (en / es / zh / zh-hant) inline only the current language's UI dictionary (four languages 128.8 KB → one language 22–42 KB), homepage HTML 226.5 KB → 109–113 KB (−52%), back under the 215.8 KB UI limit; language switching 16/16,
?lang=deep links 4/4 and localStorage preference 3/3 verified in a real browser with 0 text mismatches, search result pages 4/4 HTTP 200. - Site: 121,293 files / 880.2 MB (839.4 MiB); sitemap 63,363 URLs; four languages aligned.
- Corregida la fusión de principios con nombre solo en chino en las páginas ATC / de categoría: los principios con nombre únicamente en chino se normalizaban a una cadena vacía, se sobrescribían entre sí y se contaban como un solo principio; una única entrada de 地喹氯铵 (dequalinio) en
/atc/J01.htmllistaba decenas de antibióticos sin relación. Ahora cada principio aparece solo en su clase ATC y en su página de principio; la consolidación de sales no cambia. - El tamaño de la portada vuelve al presupuesto: las cuatro portadas (en / es / zh / zh-hant) incluyen en línea solo el diccionario de interfaz del idioma actual (cuatro idiomas 128,8 KB → un idioma 22–42 KB), el HTML de portada pasa de 226,5 KB a 109–113 KB (−52 %), por debajo del límite de interfaz de 215,8 KB; cambio de idioma 16/16, enlaces directos
?lang=4/4 y preferencia en localStorage 3/3 verificados en navegador real con 0 desajustes de texto, páginas de resultados 4/4 HTTP 200. - Sitio: 121.293 archivos / 880,2 MB (839,4 MiB); sitemap 63.363 URL; cuatro idiomas alineados.
- 修正 ATC/大類頁「中文名成分被誤合併」:純中文名成分在正規化時變成空字串,互相覆蓋後全被算成同一個成分——
/atc/J01.html裡「地喹氯銨」一個條目下掛出幾十個不相關抗生素名。現在各成分只出現在自己的 ATC 類目與成分頁裡,鹽型合併口徑不變。 - 首頁體積回到預算內:四份首頁(en / es / zh / zh-hant)只內嵌目前語言的介面字典(四語 128.8 KB → 單語 22–42 KB),首頁 HTML 226.5 KB → 109–113 KB(−52%),回到 UI 規格上限(215.8 KB)以內;語言切換 16/16、
?lang=深連結 4/4、localStorage 偏好 3/3 真瀏覽器驗證 0 文字錯配,搜尋結果頁 4/4 HTTP 200。 - 站點 121,293 檔案 / 880.2 MB(839.4 MiB);sitemap 63,363 URL;四語對齊。
v0.10.02026-11-07
- 重做排版与可读性:字号从 11 档收敛到 5 档(12/14/16/20/24),正文 16px;次要文字对比度 5.2:1 → 7.67:1,分隔线 1.26:1 → 1.58:1;10–13px 的小字声明从 85 处降到 10 处。这次是设计层面的调整,不是加功能。
- 导航与首页重排:桌面导航收成 5 项(搜索 / 按类别 / 按市场 / 覆盖 / 关于),语言收进「🌐 中文 ▾」下拉,右上补「类别」入口;首页那十几行类别长条改成 8 个高频类别 2×4 + 「全部类别 →」;手机端底部 4 个入口常驻。
- 详情页层级理顺:成分页改成「身份 → 各国矩阵 → 也称 → 不可互换」;名字页补「同名不代表同一成分」提示;ATC 页四条提示合并成一条;覆盖页时间显示为日期并按市场排序;404 页补上导航与语言切换。
- 站点 121,280 文件 / 879.58 MB(838.8 MiB),比上一版小 6 MB;sitemap 63,351 URL;四语对齐。
- Typography and readability reworked: font sizes drop from 11 steps to 5 (12/14/16/20/24) with 16px body text; secondary-text contrast goes from 5.2:1 to 7.67:1 and dividers from 1.26:1 to 1.58:1; 10–13px small-print statements fall from 85 to 10. This is a design-level pass, not new features.
- Navigation and home page rearranged: desktop navigation shrinks to five items (search / by category / by market / coverage / about), language moves into a "🌐 中文 ▾" drop-down, and a "categories" entry is added top-right; the home page's dozen category rows become eight high-frequency categories in a 2×4 grid plus "all categories →"; four entries stay pinned at the bottom on mobile.
- Detail-page hierarchy cleaned up: the ingredient page becomes "identity → country matrix → also known as → not interchangeable"; name pages gain the "same name does not mean the same ingredient" note; the ATC page's four notices merge into one; the coverage page shows dates and sorts by market; the 404 page gains navigation and language switching.
- Site: 121,280 files / 879.58 MB (838.8 MiB), 6 MB smaller than the previous version; sitemap 63,351 URLs; all four languages aligned.
- Tipografía y legibilidad rehacidas: los tamaños de letra pasan de 11 pasos a 5 (12/14/16/20/24) con cuerpo de 16px; el contraste del texto secundario sube de 5,2:1 a 7,67:1 y los separadores de 1,26:1 a 1,58:1; las declaraciones en letra pequeña de 10–13px bajan de 85 a 10. Es un ajuste de diseño, no funciones nuevas.
- Navegación e inicio reorganizados: la navegación de escritorio se reduce a cinco elementos (buscar / por categoría / por mercado / cobertura / acerca de), el idioma pasa a un desplegable «🌐 中文 ▾» y se añade «categorías» arriba a la derecha; las docenas de filas de categorías del inicio pasan a ocho categorías frecuentes en una rejilla 2×4 más «todas las categorías →»; cuatro entradas quedan fijas abajo en móvil.
- Jerarquía de las páginas de detalle ordenada: la página de principio pasa a «identidad → matriz de países → también conocido como → no intercambiable»; las páginas de nombre añaden «el mismo nombre no significa el mismo principio»; los cuatro avisos de la página ATC se fusionan en uno; la cobertura muestra fechas y ordena por mercado; la página 404 incorpora navegación y cambio de idioma.
- Sitio: 121.280 archivos / 879,58 MB (838,8 MiB), 6 MB menos que la versión anterior; sitemap con 63.351 URL; los cuatro idiomas alineados.
- 重做排版與可讀性:字號從 11 檔收斂到 5 檔(12/14/16/20/24),正文 16px;次要文字對比度 5.2:1 → 7.67:1,分隔線 1.26:1 → 1.58:1;10–13px 的小字宣告從 85 處降到 10 處。這次是設計層面的調整,不是加功能。
- 導航與首頁重排:桌面導航收成 5 項(搜尋 / 按類別 / 按市場 / 覆蓋 / 關於),語言收進「🌐 中文 ▾」下拉,右上補「類別」入口;首頁那十幾行類別長條改成 8 個高頻類別 2×4 + 「全部類別 →」;手機端底部 4 個入口常駐。
- 詳情頁層級理順:成分頁改成「身分 → 各國矩陣 → 也稱 → 不可互換」;名字頁補「同名不代表同一成分」提示;ATC 頁四條提示合併成一條;覆蓋頁時間顯示為日期並按市場排序;404 頁補上導航與語言切換。
- 站點 121,280 檔案 / 879.58 MB(838.8 MiB),比上一版小 6 MB;sitemap 63,351 URL;四語對齊。
v0.9.82026-11-07
- 结果页先给答案:搜索后顶部出现「身份卡」——查询名对应哪个成分、规格、剂型、覆盖哪些市场、记录数,以及「查看成分页 / 复制标准名 / 报告错误」三个动作;H1 改为你查的名字。
- 长列表不再一屏铺完:结果默认 20 行,「显示更多」每次加 20;单个查询的页面体积从 1.86 MB 降到 210 KB(−89%)。
- 新导航:桌面 5 项(搜索 / 按类别 / 按市场 / 覆盖与新鲜度 / 关于)带下拉面板;手机底部 4 个常驻入口,语言切换常显;所有可点目标 ≥44px。
- 警示放到该在的位置:名字页新增「同名不代表同一成分」提示;成分页顺序改为「身份 → 各国矩阵 → 也称 → 不可互换」,筛选器收起不再挡内容。
- 站点 121,280 文件 / 885.56 MB(844.5 MiB);sitemap 63,351 URL;四语 i18n 对齐。
- The result page leads with the answer: a search now puts an "identity card" at the top — which ingredient, strength and form the queried name maps to, which markets it covers, how many records, plus three actions ("view ingredient page / copy standard name / report an error"); the H1 becomes the name you searched.
- Long lists no longer render in one go: results show 20 rows by default and "show more" adds 20 at a time; the page weight of a single query drops from 1.86 MB to 210 KB (−89%).
- New navigation: five desktop items (search / by category / by market / coverage & freshness / about) with drop-down panels; four persistent entries at the bottom on mobile with language switching always visible; every tap target is at least 44px.
- Warnings where they belong: name pages gain a "same name does not mean the same ingredient" note; the ingredient page order becomes "identity → country matrix → also known as → not interchangeable", and the collapsed filter no longer covers content.
- Site: 121,280 files / 885.56 MB (844.5 MiB); sitemap 63,351 URLs; all four languages aligned.
- La página de resultados empieza por la respuesta: tras buscar aparece arriba una «tarjeta de identidad» — a qué principio, concentración y forma corresponde el nombre consultado, qué mercados cubre, cuántos registros, y tres acciones («ver página del principio / copiar nombre estándar / informar de un error»); el H1 pasa a ser el nombre buscado.
- Las listas largas ya no se vuelcan de una vez: los resultados muestran 20 filas por defecto y «ver más» añade 20 cada vez; el peso de página de una consulta baja de 1,86 MB a 210 KB (−89 %).
- Nueva navegación: cinco elementos en escritorio (buscar / por categoría / por mercado / cobertura y frescura / acerca de) con paneles desplegables; cuatro entradas persistentes abajo en móvil con el cambio de idioma siempre visible; todos los objetivos táctiles miden al menos 44px.
- Avisos donde corresponden: las páginas de nombre añaden «el mismo nombre no significa el mismo principio»; el orden de la página de principio pasa a «identidad → matriz de países → también conocido como → no intercambiable», y el filtro plegado ya no tapa el contenido.
- Sitio: 121.280 archivos / 885,56 MB (844,5 MiB); sitemap con 63.351 URL; los cuatro idiomas alineados.
- 結果頁先給答案:搜尋後頂部出現「身分卡」——查詢名對應哪個成分、規格、劑型、覆蓋哪些市場、記錄數,以及「檢視成分頁 / 複製標準名 / 報告錯誤」三個動作;H1 改為你查的名字。
- 長列表不再一屏鋪完:結果預設 20 行,「顯示更多」每次加 20;單個查詢的頁面體積從 1.86 MB 降到 210 KB(−89%)。
- 新導航:桌面 5 項(搜尋 / 按類別 / 按市場 / 覆蓋與新鮮度 / 關於)帶下拉麵板;手機底部 4 個常駐入口,語言切換常顯;所有可點目標 ≥44px。
- 警語放到該在的位置:名字頁新增「同名不代表同一成分」提示;成分頁順序改為「身分 → 各國矩陣 → 也稱 → 不可互換」,篩選器收起不再擋內容。
- 站點 121,280 檔案 / 885.56 MB(844.5 MiB);sitemap 63,351 URL;四語 i18n 對齊。
v0.9.72026-11-07
- 修复语言切换跳 404:首页与搜索结果页切换语言时会跳到域名根(GitHub 默认 404),现已修正为留在本站路径;术语表与覆盖页也纳入语言副本跳转。
- 合并 12 条重复成分记录:甘露醇、美沙拉嗪、硼酸、丝裂霉素等同一成分的重复条目并入英文主记录(产品数与组件数不变,仅去掉重复身份)。
- 成分页补「也称」:24 组同物异名(葡萄糖 / Dextrose、格列本脲 / Glyburide…)在成分页直接可见。
- 站点 121,280 文件 / 883.32 MB(842.4 MiB);sitemap 63,363 URL;四语 i18n 对齐。
- Language switching no longer lands on a 404: switching language on the home page or search results jumped to the domain root (GitHub's default 404); it now stays on the same site path, and the glossary and coverage pages join the language-copy routing too.
- 12 duplicate ingredient records merged: duplicates of the same ingredient (mannitol, mesalazine, boric acid, mitomycin and others) are merged into the English main record (product and component counts unchanged; only duplicate identities are removed).
- Ingredient pages add "also known as": 24 synonym sets (glucose / Dextrose, glyburide / Glibenclamide, …) are directly visible on the ingredient page.
- Site: 121,280 files / 883.32 MB (842.4 MiB); sitemap 63,363 URLs; all four languages aligned.
- El cambio de idioma ya no acaba en un 404: cambiar de idioma en el inicio o en los resultados saltaba a la raíz del dominio (el 404 por defecto de GitHub); ahora se queda en la misma ruta del sitio, y el glosario y la cobertura también entran en el enrutado de copias de idioma.
- 12 registros duplicados de principios fusionados: los duplicados del mismo principio (manitol, mesalazina, ácido bórico, mitomicina y otros) se fusionan en el registro principal en inglés (los recuentos de productos y componentes no cambian; solo se eliminan identidades duplicadas).
- Las páginas de principio añaden «también conocido como»: 24 conjuntos de sinónimos (glucosa / Dextrose, glibenclamida / Glyburide, …) se ven directamente en la página del principio.
- Sitio: 121.280 archivos / 883,32 MB (842,4 MiB); sitemap con 63.363 URL; los cuatro idiomas alineados.
- 修復語言切換跳 404:首頁與搜尋結果頁切換語言時會跳到域名根(GitHub 預設 404),現已修正為留在本站路徑;術語表與覆蓋頁也納入語言副本跳轉。
- 合併 12 條重複成分記錄:甘露醇、美沙拉嗪、硼酸、絲裂黴素等同一成分的重複條目併入英文主記錄(產品數與元件數不變,僅去掉重複身分)。
- 成分頁補「也稱」:24 組同物異名(葡萄糖 / Dextrose、格列本脲 / Glyburide…)在成分頁直接可見。
- 站點 121,280 檔案 / 883.32 MB(842.4 MiB);sitemap 63,363 URL;四語 i18n 對齊。
v0.9.62026-11-07
- 长尾页更轻:77,058 个名字页去掉模板里重复的站点级结构化数据与说明文字,站点总量从 943.6 MB 降到 883.3 MB(省 57.5 MiB),页面标题、导航、正文与链接完全不变。
- 成分页多一行「也称」:葡萄糖 / Dextrose、格列本脲 / Glyburide 等 24 组同物异名直接显示在成分页(最多 5 个写法、可点),不再需要自己猜两边的叫法。
- 搜索能跨写法:搜 Dextrose 会给出 Glucose 的候选卡并标注「同物异名」,Glyburide、Bromelaína、ácido mefenámico 等同理;主名与别名都不翻译。
- 站点 121,292 文件 / 883.33 MB(842.4 MiB);sitemap 63,363 URL;体积余量回到 57.6 MiB;四语 i18n 对齐。
- Lighter long-tail pages: 77,058 name pages drop site-level structured data and explanatory text duplicated in the template, cutting the site from 943.6 MB to 883.3 MB (57.5 MiB saved) with page titles, navigation, body copy and links unchanged.
- Ingredient pages gain an "also known as" row: 24 synonym sets such as glucose / Dextrose and glyburide / Glibenclamide appear right on the ingredient page (up to 5 spellings, clickable), so users no longer have to guess both names.
- Search works across spellings: searching Dextrose returns the Glucose candidate card labelled "synonym", and the same applies to Glyburide, Bromelaína, ácido mefenámico and others; main names and aliases are never translated.
- Site: 121,292 files / 883.33 MB (842.4 MiB); sitemap 63,363 URLs; 57.6 MiB headroom; all four languages aligned.
- Páginas de cola larga más ligeras: 77.058 páginas de nombre eliminan datos estructurados y textos explicativos de nivel de sitio duplicados en la plantilla, reduciendo el sitio de 943,6 MB a 883,3 MB (57,5 MiB menos) sin cambiar títulos, navegación, cuerpo ni enlaces.
- Las páginas de principio añaden una fila «también conocido como»: 24 conjuntos de sinónimos como glucosa / Dextrose y glibenclamida / Glyburide aparecen en la propia página (hasta 5 grafías, enlazables), sin tener que adivinar ambos nombres.
- La búsqueda funciona entre grafías: buscar Dextrose devuelve la tarjeta de candidato Glucose etiquetada «sinónimo», y lo mismo con Glyburide, Bromelaína, ácido mefenámico y otros; los nombres principales y alias no se traducen.
- Sitio: 121.292 archivos / 883,33 MB (842,4 MiB); sitemap con 63.363 URL; margen de 57,6 MiB; los cuatro idiomas alineados.
- 長尾頁更輕:77,058 個名字頁去掉模板裡重複的站點級結構化資料與說明文字,站點總量從 943.6 MB 降到 883.3 MB(省 57.5 MiB),頁面標題、導航、正文與連結完全不變。
- 成分頁多一行「也稱」:葡萄糖 / Dextrose、格列本脲 / Glyburide 等 24 組同物異名直接顯示在成分頁(最多 5 個寫法、可點),不再需要自己猜兩邊的叫法。
- 搜尋能跨寫法:搜 Dextrose 會給出 Glucose 的候選卡並標註「同物異名」,Glyburide、Bromelaína、ácido mefenámico 等同理;主名與別名都不翻譯。
- 站點 121,292 檔案 / 883.33 MB(842.4 MiB);sitemap 63,363 URL;體積餘量回到 57.6 MiB;四語 i18n 對齊。
v0.9.52026-10-31
- 导航补齐发现入口:覆盖与新鲜度页、ATC 与分类页进入顶层导航(四语),不用再靠页脚或记忆路径;长尾 12 万页保持轻量注入,不额外占体积。
- 首页更聚焦:搜索结果上移到搜索框正下方,删掉与三步引导重复的示例行,技术提示移到页底;新增「最近更新」最近三版入口。
- ATC 类目页可按剂型看跨市场事实:797 个 L4 类目新增「按剂型看跨市场明细」,展开后看各剂型在各市场的产品数;旁边固定提示「同一 ATC 类目只表示分类相近,不代表可互换」。
- 同名不同写法更容易查到:检索层接入同物异名(葡萄糖 / Dextrose、格列本脲 / Glyburide 等 24 组),三语评测 69/72(原 68)。
- 站点 121,292 文件 / 943.60 MB(899.89 MiB);sitemap 63,363 URL;四语 i18n 对齐。
- Navigation gains discovery entry points: the coverage & freshness page and ATC/category pages join the top navigation in all four languages, so users no longer rely on the footer or memorised URLs; the 120k long-tail pages keep lightweight injection and add no extra weight.
- A more focused home page: results move directly under the search box, the example row duplicating the three-step guide is removed, technical hints move to the page bottom, and a "Recent updates" entry links the last three versions.
- ATC category pages show cross-market facts by form: 797 L4 categories gain "cross-market detail by form", expanding to show product counts per form in each market, with a permanent note that "the same ATC category means similar classification, not interchangeability".
- Different spellings of the same thing are easier to find: the search layer handles synonym pairs (glucose / Dextrose, glyburide / Glibenclamide, 24 pairs in total), and the trilingual evaluation scores 69/72 (previously 68).
- Site: 121,292 files / 943.60 MB (899.89 MiB); sitemap 63,363 URLs; all four languages aligned.
- La navegación gana puntos de descubrimiento: la página de cobertura y frescura y las de ATC/categorías entran en la navegación superior en los cuatro idiomas, sin depender del pie de página ni de recordar rutas; las 120.000 páginas de cola larga mantienen la inyección ligera y no añaden peso.
- Inicio más enfocado: los resultados suben justo debajo del cuadro de búsqueda, se elimina la fila de ejemplos que repetía la guía de tres pasos, las notas técnicas bajan al pie y una entrada «Últimas novedades» enlaza las tres últimas versiones.
- Las páginas de categoría ATC muestran hechos entre mercados por forma: 797 categorías L4 añaden «detalle entre mercados por forma», que al desplegarse muestra el número de productos por forma en cada mercado, con un aviso permanente de que «la misma categoría ATC indica clasificación similar, no intercambiabilidad».
- Distintas grafías de lo mismo se encuentran mejor: la búsqueda incorpora pares de sinónimos (glucosa / Dextrose, glibenclamida / Glyburide, 24 pares en total) y la evaluación trilingüe sube a 69/72 (antes 68).
- Sitio: 121.292 archivos / 943,60 MB (899,89 MiB); sitemap con 63.363 URL; los cuatro idiomas alineados.
- 導航補齊發現入口:覆蓋與新鮮度頁、ATC 與分類頁進入頂層導航(四語),不用再靠頁尾或記憶路徑;長尾 12 萬頁保持輕量注入,不額外佔體積。
- 首頁更聚焦:搜尋結果上移到搜尋框正下方,刪掉與三步引導重複的範例行,技術提示移到頁底;新增「最近更新」最近三版入口。
- ATC 類目頁可按劑型看跨市場事實:797 個 L4 類目新增「按劑型看跨市場明細」,展開後看各劑型在各市場的產品數;旁邊固定提示「同一 ATC 類目只表示分類相近,不代表可互換」。
- 同名不同寫法更容易查到:檢索層接入同物異名(葡萄糖 / Dextrose、格列本脲 / Glyburide 等 24 組),三語評測 69/72(原 68)。
- 站點 121,292 檔案 / 943.60 MB(899.89 MiB);sitemap 63,363 URL;四語 i18n 對齊。
v0.9.42026-10-30
- 覆盖与新鲜度页(四语):新增
/coverage.html及/es/、/zh/、/zh-hant/版本;10 个市场逐行显示产品数、成分映射率、规格覆盖率、最后同步、数据截止与已知缺口(HK 名称层、AU 无注册状态、CN 无商品名比例等),每个市场「覆盖多少、新不新、缺什么」一页看清。 - 成分名译名标注:非中文界面遇到只有中文主名的成分时,显示中文原名 + 「无英文译名」角标(西语同理:无西语译名),不再无标注混排;中文界面反向标「无中文名」。只用有出处的译名,不做机器翻译。
- 站点 121,290 文件 / 941.87 MB(898.2 MiB);sitemap 63,363 URL;四语 i18n 对齐。
- Coverage & freshness page (four languages): adds
/coverage.htmlplus/es/,/zh/and/zh-hant/versions; each of the 10 markets shows products, ingredient mapping rate, spec coverage, last sync, data cut-off and known gaps (HK name layer, AU with no registration status, CN without trade names, etc.), so "how much, how fresh, what's missing" is visible per market on one page. - Ingredient-name translation labels: when a non-Chinese UI meets an ingredient whose main name exists only in Chinese, it shows the Chinese name plus a "no English name" badge (likewise "no Spanish name"), so nothing is mixed in unlabelled; the Chinese UI does the reverse with "no Chinese name". Only sourced translations are used; no machine translation.
- Site: 121,290 files / 941.87 MB (898.2 MiB); sitemap 63,363 URLs; all four languages aligned.
- Página de cobertura y frescura (cuatro idiomas): añade
/coverage.htmly versiones en/es/,/zh/y/zh-hant/; cada uno de los 10 mercados muestra productos, tasa de mapeo de principios, cobertura de concentración, última sincronización, fecha de corte y carencias conocidas (capa de nombres de HK, AU sin estado de registro, CN sin nombres comerciales, etc.), para ver «cuánto, cuán reciente y qué falta» por mercado en una página. - Etiquetas de traducción de principios: cuando una interfaz no china encuentra un principio cuyo nombre principal solo existe en chino, muestra el nombre chino más una etiqueta «sin nombre en inglés» (igual «sin nombre en español»), sin mezclas sin etiquetar; la interfaz china hace lo contrario con «sin nombre en chino». Solo se usan traducciones con fuente; nada de traducción automática.
- Sitio: 121.290 archivos / 941,87 MB (898,2 MiB); sitemap con 63.363 URL; los cuatro idiomas alineados.
- 覆蓋與新鮮度頁(四語):新增
/coverage.html及/es/、/zh/、/zh-hant/版本;10 個市場逐行顯示產品數、成分對應率、規格覆蓋率、最後同步、資料截止與已知缺口(HK 名稱層、AU 無註冊狀態、CN 無商品名比例等),每個市場「覆蓋多少、新不新、缺什麼」一頁看清。 - 成分名譯名標註:非中文介面遇到只有中文主名的成分時,顯示中文原名 + 「無英文譯名」角標(西語同理:無西語譯名),不再無標註混排;中文介面反向標「無中文名」。只用有出處的譯名,不做機器翻譯。
- 站點 121,290 檔案 / 941.87 MB(898.2 MiB);sitemap 63,363 URL;四語 i18n 對齊。
v0.9.32026-10-30
- 中文界面的名字页 / 单包装页表头四语:市场 / 剂量 / 剂型 / 状态 / 厂家 / 来源等表头按当前语言显示,中文界面不再出现英文表头。
- 成分页标题与 ATC 类名更干净:成分页 H1 只显示成分名,来源 / 版本移到下方 badge;ATC 类名中英分隔为「降压药 · Blood-pressure medicines」,关闭「显示原文对照」时隐去英文部分。
- 厂家页与窄屏修复:厂家页列名「剂量」更正为「剂型」;修复西语 1280px 页头溢出与语言切换被裁切。
- 数据溯源字段:数据层新增来源 / 方法 / 置信度字段(界面暂不展示,About 有说明),为后续「这条数据哪来的、怎么算的」打底。
- 站点 121,286 文件 / 941.27 MB(897.7 MiB);sitemap 63,359 URL;四语 i18n 对齐。
- Four-language headers on name and single-pack pages in the Chinese UI: headers such as market / strength / form / status / manufacturer / source now follow the current language, so the Chinese UI no longer shows English headers.
- Cleaner ingredient titles and ATC class names: the ingredient-page H1 shows only the ingredient name, with source/version moved to a badge below; ATC class names separate Chinese and English as "降压药 · Blood-pressure medicines", and the English half is hidden when "show original side by side" is off.
- Manufacturer page and narrow-screen fixes: the manufacturer table column labelled "dose" is corrected to "form"; Spanish header overflow at 1280px and clipped language switching are fixed.
- Data provenance fields: the data layer gains source / method / confidence fields (not shown in the UI yet, explained in About), laying the ground for answering "where did this data come from and how was it computed".
- Site: 121,286 files / 941.27 MB (897.7 MiB); sitemap 63,359 URLs; all four languages aligned.
- Cabeceras en cuatro idiomas en páginas de nombre y de envase único en la interfaz china: cabeceras como mercado / concentración / forma / estado / fabricante / fuente siguen ahora el idioma actual, así que la interfaz china ya no muestra cabeceras en inglés.
- Títulos de principio y nombres de clase ATC más limpios: el H1 de la página de principio muestra solo el nombre, con la fuente/versión en una etiqueta debajo; los nombres de clase ATC separan chino e inglés como «降压药 · Blood-pressure medicines», y la parte inglesa se oculta al desactivar «mostrar original en paralelo».
- Correcciones en páginas de fabricante y pantallas estrechas: la columna «dosis» de la tabla de fabricante pasa a ser «forma»; se corrigen el desbordamiento de la cabecera en español a 1280px y el recorte del selector de idioma.
- Campos de procedencia de datos: la capa de datos incorpora campos de fuente / método / confianza (aún no visibles en la interfaz, explicados en About), base para responder «de dónde vienen estos datos y cómo se calcularon».
- Sitio: 121.286 archivos / 941,27 MB (897,7 MiB); sitemap con 63.359 URL; los cuatro idiomas alineados.
- 中文介面的名字頁 / 單包裝頁表頭四語:市場 / 劑量 / 劑型 / 狀態 / 廠商 / 來源等表頭按當前語言顯示,中文介面不再出現英文表頭。
- 成分頁標題與 ATC 類名更乾淨:成分頁 H1 只顯示成分名,來源 / 版本移到下方 badge;ATC 類名中英分隔為「降壓藥 · Blood-pressure medicines」,關閉「顯示原文對照」時隱去英文部分。
- 廠商頁與窄屏修復:廠商頁列名「劑量」更正為「劑型」;修復西語 1280px 頁頭溢位與語言切換被裁切。
- 資料溯源欄位:資料層新增來源 / 方法 / 置信度欄位(介面暫不展示,About 有說明),為後續「這條資料哪來的、怎麼算的」打底。
- 站點 121,286 檔案 / 941.27 MB(897.7 MiB);sitemap 63,359 URL;四語 i18n 對齊。
v0.9.22026-10-30
- 性能大幅提升:移动端 Lighthouse 四个页面 Performance 99/99/100/100、LCP 0.9–1.7 s(v0.9.1 为 3.1–3.6 s),无障碍 / 最佳实践 / SEO 全 100;首屏关键资源与 i18n 改为页面 load 后注入,首屏更轻。
- 旧链接兼容:v0.9.0 因体积策略被裁掉的组合页全部生成
noindexstub(8,455 个),v0.9.0 的旧 URL 不再 404(内部链接与搜索行为不变)。 - 数据产品(只发派生层):新增
datapackage.json(coverage / market-summary / name-summary / substances 4 个聚合派生资源,含字段、行数、sha256、版本)+dataset.jsonld(schema.org Dataset)+checksums.txt+ 字段字典;About 增加入口链接。对外只发聚合派生层,8 个受限来源标non_redistributable、不重分发原始记录。 - 工程质量:新增最小 CI(GitHub Actions,push/PR 到 main 跑测试 + py_compile + 内容完整性检查),与本地发布门槛同一入口;发布仍只在本地。
- 站点 121,286 文件 / 941.27 MB(897.7 MiB);sitemap 63,359 URL;四语 i18n 对齐。
- Big performance gain: on mobile Lighthouse, four pages score Performance 99/99/100/100 with LCP 0.9–1.7 s (3.1–3.6 s in v0.9.1), and Accessibility / Best Practices / SEO are all 100; first-screen critical resources and i18n are injected after the page load event, making the first screen lighter.
- Old links still work: all combination pages cut in v0.9.0 for size reasons get a
noindexstub (8,455 pages), so old v0.9.0 URLs no longer 404 (internal links and search behaviour unchanged). - Data products (derived layer only): adds
datapackage.json(four aggregated derived resources — coverage / market-summary / name-summary / substances — with fields, row counts, sha256 and version),dataset.jsonld(schema.org Dataset),checksums.txtand a field dictionary; About links to them. Only the aggregated derived layer is published: 8 restricted sources are markednon_redistributableand raw records are not redistributed. - Engineering quality: a minimal CI (GitHub Actions running tests, py_compile and content-integrity checks on push/PR to main) shares the same entry point as the local release gate; publishing still happens only locally.
- Site: 121,286 files / 941.27 MB (897.7 MiB); sitemap 63,359 URLs; all four languages aligned.
- Gran mejora de rendimiento: en móvil, cuatro páginas de Lighthouse obtienen Rendimiento 99/99/100/100 con LCP 0,9–1,7 s (3,1–3,6 s en v0.9.1), y Accesibilidad / Buenas prácticas / SEO quedan en 100; los recursos críticos de la primera pantalla y el i18n se inyectan tras el evento load, aligerando la primera pantalla.
- Los enlaces antiguos siguen funcionando: todas las páginas de combinación recortadas en v0.9.0 por tamaño reciben un stub
noindex(8.455 páginas), así que las URL antiguas de v0.9.0 ya no dan 404 (los enlaces internos y la búsqueda no cambian). - Productos de datos (solo capa derivada): se añaden
datapackage.json(cuatro recursos derivados agregados — coverage / market-summary / name-summary / substances — con campos, número de filas, sha256 y versión),dataset.jsonld(Dataset de schema.org),checksums.txty un diccionario de campos; About enlaza a ellos. Solo se publica la capa derivada agregada: 8 fuentes restringidas se marcannon_redistributabley no se redistribuyen registros originales. - Calidad de ingeniería: una CI mínima (GitHub Actions que ejecuta pruebas, py_compile y comprobaciones de integridad de contenido en push/PR a main) comparte el mismo punto de entrada que la puerta de publicación local; la publicación sigue siendo solo local.
- Sitio: 121.286 archivos / 941,27 MB (897,7 MiB); sitemap con 63.359 URL; los cuatro idiomas alineados.
- 效能大幅提升:移動端 Lighthouse 四個頁面 Performance 99/99/100/100、LCP 0.9–1.7 s(v0.9.1 為 3.1–3.6 s),無障礙 / 最佳實踐 / SEO 全 100;首屏關鍵資源與 i18n 改為頁面 load 後注入,首屏更輕。
- 舊連結相容:v0.9.0 因體積策略被裁掉的組合頁全部生成
noindexstub(8,455 個),v0.9.0 的舊 URL 不再 404(內部連結與搜尋行為不變)。 - 資料產品(只發派生層):新增
datapackage.json(coverage / market-summary / name-summary / substances 4 個聚合派生資源,含欄位、行數、sha256、版本)+dataset.jsonld(schema.org Dataset)+checksums.txt+ 欄位字典;About 增加入口連結。對外只發聚合派生層,8 個受限來源標non_redistributable、不重分發原始記錄。 - 工程品質:新增最小 CI(GitHub Actions,push/PR 到 main 跑測試 + py_compile + 內容完整性檢查),與本地發布門檻同一入口;發布仍只在本地。
- 站點 121,286 檔案 / 941.27 MB(897.7 MiB);sitemap 63,359 URL;四語 i18n 對齊。
v0.9.12026-10-30
- 澳大利亚全量上线:AU 产品由 11,890 → 44,794(新增 32,904 个 TGA ARTG 2026-10-28 产品),页面与 About 标注 TGA ARTG 来源与数据日期;源未提供注册状态,统一显示「状态未确认」;Export Only 产品单独标注;无成分的产品标注「成分未收录(名称层)」,不臆造成分。
- 检索与移动端 UX 修复:搜「泰诺」不再混入不同成分的产品;全站计数口径统一;移动端结果首屏即可见、零结果提示更明确;矩阵筛选器可用、默认 3 列的行为加说明;搜索框 label、对比度、触控目标等无障碍问题修复。
- 搜索埋点修正:只在提交搜索时发送匿名事件,前缀合并、附带
lang与q_len;About 隐私说明四语同步更新。 - 性能基线(移动端):Lighthouse 性能 90–95、无障碍 / 最佳实践 / SEO 均 100;LCP 3.1–3.6 s 尚未达标,v0.9.2 继续优化;首搜文案按实测更新(约 1.05 MB raw / 0.16 MB gzip)。
- 站点 112,822 文件 / 936.97 MB(893.6 MiB);sitemap 63,359 URL;四语 i18n 对齐。
- Australia fully live: AU products went from 11,890 → 44,794 (32,904 new products from TGA ARTG 2026-10-28), and pages plus About cite the TGA ARTG source and data date; the source has no registration status, so everything shows "status unconfirmed"; Export Only products are labelled separately; products without ingredients are marked "ingredient not recorded (name layer)" rather than invented.
- Search and mobile UX fixes: searching "Tylenol" no longer mixes in products with different ingredients; site-wide counts share one definition; results are visible on the first mobile screen and the zero-result hint is clearer; the matrix filter works and the 3-column default is explained; accessibility issues in the search label, contrast and touch targets are fixed.
- Search analytics fixed: anonymous events are sent only on search submit, with merged prefixes and
langplusq_len; the privacy note in About is updated in all four languages. - Mobile performance baseline: Lighthouse Performance 90–95, Accessibility / Best Practices / SEO all 100; LCP of 3.1–3.6 s is not yet on target and v0.9.2 keeps optimising; the first-search copy is updated to the measured ~1.05 MB raw / 0.16 MB gzip.
- Site: 112,822 files / 936.97 MB (893.6 MiB); sitemap 63,359 URLs; all four languages aligned.
- Australia en línea completa: los productos AU pasan de 11.890 a 44.794 (32.904 nuevos productos de TGA ARTG 2026-10-28), y las páginas y About citan la fuente TGA ARTG y la fecha de los datos; la fuente no trae estado de registro, así que todo muestra «estado no confirmado»; los productos Export Only se etiquetan aparte; los productos sin principios se marcan «principio no registrado (capa de nombres)» en lugar de inventarlo.
- Correcciones de búsqueda y UX móvil: buscar «Tylenol» ya no mezcla productos con principios distintos; los recuentos de todo el sitio comparten una definición; los resultados se ven en la primera pantalla del móvil y el aviso de cero resultados es más claro; el filtro de matriz funciona y se explica el valor por defecto de 3 columnas; se corrigen problemas de accesibilidad en la etiqueta de búsqueda, el contraste y los objetivos táctiles.
- Analítica de búsqueda corregida: los eventos anónimos se envían solo al enviar la búsqueda, con prefijos unificados y
langmásq_len; la nota de privacidad de About se actualiza en los cuatro idiomas. - Base de rendimiento móvil: Lighthouse Rendimiento 90–95, Accesibilidad / Buenas prácticas / SEO los tres en 100; el LCP de 3,1–3,6 s aún no cumple y v0.9.2 sigue optimizando; el texto de primera búsqueda se actualiza a los ~1,05 MB raw / 0,16 MB gzip medidos.
- Sitio: 112.822 archivos / 936,97 MB (893,6 MiB); sitemap con 63.359 URL; los cuatro idiomas alineados.
- 澳大利亞全量上線:AU 產品由 11,890 → 44,794(新增 32,904 個 TGA ARTG 2026-10-28 產品),頁面與 About 標註 TGA ARTG 來源與資料日期;源未提供註冊狀態,統一顯示「狀態未確認」;Export Only 產品單獨標註;無成分的產品標註「成分未收錄(名稱層)」,不臆造成分。
- 檢索與移動端 UX 修復:搜「泰諾」不再混入不同成分的產品;全站計數口徑統一;移動端結果首屏即可見、零結果提示更明確;矩陣篩選器可用、預設 3 列的行為加說明;搜尋框 label、對比度、觸控目標等無障礙問題修復。
- 搜尋埋點修正:只在提交搜尋時傳送匿名事件,字首合併、附帶
lang與q_len;About 隱私說明四語同步更新。 - 效能基線(移動端):Lighthouse 效能 90–95、無障礙 / 最佳實踐 / SEO 均 100;LCP 3.1–3.6 s 尚未達標,v0.9.2 繼續最佳化;首搜文案按實測更新(約 1.05 MB raw / 0.16 MB gzip)。
- 站點 112,822 檔案 / 936.97 MB(893.6 MiB);sitemap 63,359 URL;四語 i18n 對齊。
v0.9.02026-10-30
- 重量单位归一:同一成分的等价重量规格合并显示(如 0.12 g 与 120 mg 合并为 120 mg 一行,括号保留原写法),重量维度统一为 mg,矩阵不再把同一规格拆成多行。
- ATC / 常见大类 v2:1,154 个 ATC 类目补齐四语类名并逐语标注来源与许可(Wikipedia CC BY-SA 4.0 / Wikidata CC0 / 编辑译名);减肥药补入 GLP-1(并注明减重/降糖交集);感冒与过敏拆分(两页互相注明交叉);他汀排除已撤市成分;同码盐型按成分归并 + 超长列表改「查看更多」,不再硬截断。
- 成分页矩阵按需显示 + 横向滑动:默认最多 3 列(产品最多 / 当前语言 / 筛选器选中市场),其余市场用筛选器加入;矩阵可横向滑动、规格列固定,窄屏不溢出。
- 无商品名与厂家页:没有商品名的产品标注「无商品名」并显示厂家;厂家页全量覆盖 15,213 个(单产品厂家页注明未收录其他产品);单包装商品名 44,238 个可点进轻量页(不进 sitemap)。
- 香港(HK)市场上线:覆盖市场增至 10 个国家和地区;HK 提供名称/成分层数据 13,935 个产品,页面明示覆盖边界,About 增加 HK Drug Office 署名与数据截止日。
- 站点 116,883 文件 / 770.8 MB;sitemap 68,430 URL;四语 i18n 对齐。
- Weight units normalized: equivalent weight strengths of the same ingredient are merged (e.g. 0.12 g and 120 mg become one 120 mg row, with the original spelling kept in brackets), the weight dimension is unified to mg, and the matrix no longer splits one strength into several rows.
- ATC / common categories v2: 1,154 ATC categories now have four-language names with per-language source and licence notes (Wikipedia CC BY-SA 4.0 / Wikidata CC0 / editorial translations); weight-loss drugs gain GLP-1 (with a note on the weight-loss/diabetes overlap); cold and allergy pages are split (each cross-references the other); statins drop withdrawn ingredients; same-code salt forms are merged by ingredient, and very long lists use "show more" instead of hard truncation.
- Ingredient matrix on demand, with horizontal scrolling: at most 3 columns by default (most products / current language / markets selected in the filter), other markets are added through the filter; the matrix scrolls horizontally with a pinned strength column and does not overflow on narrow screens.
- No-trade-name products and manufacturer pages: products without a trade name are labelled "no trade name" and show the manufacturer; manufacturer pages cover all 15,213 (single-product pages note that no other products are recorded); 44,238 single-pack trade names link to lightweight pages (excluded from the sitemap).
- Hong Kong (HK) market goes live: coverage grows to 10 countries and regions; HK contributes name/ingredient-level data for 13,935 products, pages state the coverage boundary, and About adds the HK Drug Office attribution and data cut-off date.
- Site: 116,883 files / 770.8 MB; sitemap 68,430 URLs; all four languages aligned.
- Unidades de peso normalizadas: las concentraciones de peso equivalentes de un mismo principio se fusionan (p. ej., 0,12 g y 120 mg pasan a una fila de 120 mg, conservando la grafía original entre paréntesis), la dimensión de peso se unifica en mg y la matriz ya no divide una misma concentración en varias filas.
- ATC / categorías comunes v2: 1.154 categorías ATC cuentan ya con nombres en cuatro idiomas y notas de fuente y licencia por idioma (Wikipedia CC BY-SA 4.0 / Wikidata CC0 / traducciones editoriales); los fármacos para adelgazar incorporan GLP-1 (con una nota sobre la intersección adelgazar/diabetes); resfriado y alergia se separan (cada página remite a la otra); las estatinas excluyen principios retirados; las formas salinas con el mismo código se agrupan por principio y las listas muy largas usan «ver más» en lugar de truncarse.
- Matriz de principios bajo demanda y con desplazamiento horizontal: como máximo 3 columnas por defecto (más productos / idioma actual / mercados elegidos en el filtro); los demás mercados se añaden desde el filtro; la matriz se desplaza en horizontal con la columna de concentración fija y no desborda en pantallas estrechas.
- Productos sin nombre comercial y páginas de fabricante: los productos sin nombre comercial se etiquetan «sin nombre comercial» y muestran el fabricante; las páginas de fabricante cubren los 15.213 (las de un solo producto indican que no hay otros registrados); 44.238 nombres comerciales de un solo envase enlazan a páginas ligeras (fuera del sitemap).
- El mercado de Hong Kong (HK) entra en línea: la cobertura sube a 10 países y regiones; HK aporta datos de nombre/principio para 13.935 productos, las páginas indican el límite de cobertura y About añade la atribución a HK Drug Office y la fecha de corte de datos.
- Sitio: 116.883 archivos / 770,8 MB; sitemap con 68.430 URL; los cuatro idiomas alineados.
- 重量單位歸一:同一成分的等價重量規格合併顯示(如 0.12 g 與 120 mg 合併為 120 mg 一行,括號保留原寫法),重量維度統一為 mg,矩陣不再把同一規格拆成多行。
- ATC / 常見大類 v2:1,154 個 ATC 類目補齊四語類名並逐語標註來源與許可(Wikipedia CC BY-SA 4.0 / Wikidata CC0 / 編輯譯名);減肥藥補入 GLP-1(並註明減重/降糖交集);感冒與過敏拆分(兩頁互相註明交叉);他汀排除已下市成分;同碼鹽型按成分歸併 + 超長列表改「檢視更多」,不再硬截斷。
- 成分頁矩陣按需顯示 + 橫向滑動:預設最多 3 列(產品最多 / 當前語言 / 篩選器選中市場),其餘市場用篩選器加入;矩陣可橫向滑動、規格列固定,窄屏不溢位。
- 無商品名與廠商頁:沒有商品名的產品標註「無商品名」並顯示廠商;廠商頁全量覆蓋 15,213 個(單產品廠商頁註明未收錄其他產品);單包裝商品名 44,238 個可點進輕量頁(不進 sitemap)。
- 香港(HK)市場上線:覆蓋市場增至 10 個國家和地區;HK 提供名稱/成分層資料 13,935 個產品,頁面明示覆蓋邊界,About 增加 HK Drug Office 署名與資料截止日。
- 站點 116,883 檔案 / 770.8 MB;sitemap 68,430 URL;四語 i18n 對齊。
v0.8.42026-10-29
- 无商品名产品去重:没有商品名的产品改为「通用名 + 剂型」合并显示,不再按包装重复成多行。
- 异常规格「规格待核」:解析异常或缺失的规格显示「规格待核」角标并排在最后,不删除数据。
- 长品牌名两行截断:超长品牌名最多两行 + 省略号,表格不再被撑开。
- 状态彩色角标:在售 / 停售 / 撤市 / 状态未知用彩色角标区分。
- 空值语义区分:未收录、不适用、未知分别用不同占位文案,不再一律显示「—」。
- CN 拉丁品牌中文小字:中国市场的拉丁字母品牌名旁以小字显示中文通用名,便于对照。
- 站点 62,217 文件 / 472.5 MB;sitemap 62,057 URL;四语 i18n 对齐。
- Products without a trade name de-duplicated: products with no trade name are merged and shown as "generic name + form" instead of repeating one row per pack.
- Odd strengths flagged "strength to verify": strengths that are malformed or missing carry a "strength to verify" badge and sort last; no data is deleted.
- Long brand names truncated to two lines: overlong brand names are limited to two lines plus an ellipsis, so tables no longer stretch.
- Colour-coded status badges: marketed / discontinued / withdrawn / unknown each get their own colour badge.
- Empty values now say what they mean: "not recorded", "not applicable" and "unknown" each get their own placeholder instead of a bare "—".
- Chinese generic name in small print next to CN Latin brands: Latin-script brand names in the China market now show the Chinese generic name in small print for comparison.
- Site: 62,217 files / 472.5 MB; sitemap 62,057 URLs; all four languages aligned.
- Productos sin nombre comercial deduplicados: los productos sin nombre comercial se fusionan y muestran como «nombre genérico + forma» en lugar de repetir una fila por envase.
- Concentraciones anómalas marcadas «concentración por verificar»: las concentraciones mal formadas o ausentes llevan una etiqueta «concentración por verificar» y se ordenan al final; no se elimina ningún dato.
- Nombres de marca largos truncados a dos líneas: los nombres de marca demasiado largos se limitan a dos líneas más puntos suspensivos, así las tablas ya no se estiran.
- Etiquetas de estado con color: comercializado / descatalogado / retirado / desconocido se distinguen con etiquetas de color.
- Los valores vacíos ahora dicen qué significan: «no registrado», «no aplicable» y «desconocido» tienen cada uno su propio texto en lugar de un «—» genérico.
- Nombre genérico chino en letra pequeña junto a marcas latinas de CN: los nombres de marca en alfabeto latino del mercado chino muestran ahora el nombre genérico chino en letra pequeña para comparar.
- Sitio: 62.217 archivos / 472,5 MB; sitemap con 62.057 URL; los cuatro idiomas alineados.
- 無商品名產品去重:沒有商品名的產品改為「通用名 + 劑型」合併顯示,不再按包裝重複成多行。
- 異常規格「規格待核」:解析異常或缺失的規格顯示「規格待核」角標並排在最後,不刪除資料。
- 長品牌名兩行截斷:超長品牌名最多兩行 + 省略號,表格不再被撐開。
- 狀態彩色角標:販售中 / 停售 / 撤市 / 狀態未知用彩色角標區分。
- 空值語義區分:未收錄、不適用、未知分別用不同佔位文案,不再一律顯示「—」。
- CN 拉丁品牌中文小字:中國市場的拉丁字母品牌名旁以小字顯示中文通用名,便於對照。
- 站點 62,217 檔案 / 472.5 MB;sitemap 62,057 URL;四語 i18n 對齊。
v0.8.32026-10-29
- 矩阵常用剂量排序 + 空行隐藏:成分页矩阵按「跨国家记录数」排序常用规格(未公开的排最后); 空规格 / 空剂型行默认隐藏,表格更紧凑。
- 矩阵筛选器:按国家 / 剂型 / 释放机制 / 规格搜索过滤,带结果计数、URL 可分享、移动端抽屉与四语界面。
- 伪复方 base 归并:同一成分的不同盐型 / 规格不再被误当复方单独成页(同成分盐型不再误当复方); 复方页 10,942 → 10,284(-658),severe 同名不同成分 19,381 → 18,862;真复方(≥2 个不同成分)全部保留。
- 站点 62,217 文件 / 468.4 MB;sitemap 62,057 URL;四语 i18n 对齐。
- Matrix sorts common strengths and hides empty rows: the ingredient-page matrix orders strengths by cross-country record count (undisclosed ones last); rows with no strength or no form are hidden by default, so tables are more compact.
- Matrix filters: filter by country / form / release mechanism / strength, with result counts, shareable URLs, a mobile drawer and a four-language UI.
- Pseudo-combination base merge: different salt forms / strengths of the same ingredient are no longer treated as separate combinations (same-ingredient salts no longer count as combinations); combination pages 10,942 → 10,284 (−658) and severe same-name/different-ingredient cases 19,381 → 18,862; real combinations (≥2 distinct ingredients) are all kept.
- Site: 62,217 files / 468.4 MB; sitemap 62,057 URLs; all four languages aligned.
- La matriz ordena las concentraciones comunes y oculta las filas vacías: la matriz de la página de principio ordena las concentraciones por número de registros entre países (las no publicadas al final); las filas sin concentración o sin forma se ocultan por defecto, así las tablas son más compactas.
- Filtros de matriz: filtra por país / forma / mecanismo de liberación / concentración, con recuento de resultados, URL compartibles, cajón en móvil e interfaz en cuatro idiomas.
- Fusión de bases de pseudocombinaciones: las distintas formas salinas / concentraciones de un mismo principio ya no se tratan como combinaciones separadas (las sales del mismo principio ya no cuentan como combinación); las páginas de combinación pasan de 10.942 a 10.284 (−658) y los casos graves de mismo nombre con distinto principio de 19.381 a 18.862; se conservan todas las combinaciones reales (≥2 principios distintos).
- Sitio: 62.217 archivos / 468,4 MB; sitemap con 62.057 URL; los cuatro idiomas alineados.
- 矩陣常用劑量排序 + 空行隱藏:成分頁矩陣按「跨國家記錄數」排序常用規格(未公開的排最後); 空規格 / 空劑型行預設隱藏,表格更緊湊。
- 矩陣篩選器:按國家 / 劑型 / 釋放機制 / 規格搜尋過濾,帶結果計數、URL 可分享、移動端抽屜與四語介面。
- 偽複方 base 歸併:同一成分的不同鹽型 / 規格不再被誤當複方單獨成頁(同成分鹽型不再誤當複方); 複方頁 10,942 → 10,284(-658),severe 同名不同成分 19,381 → 18,862;真複方(≥2 個不同成分)全部保留。
- 站點 62,217 檔案 / 468.4 MB;sitemap 62,057 URL;四語 i18n 對齊。
v0.8.22026-10-29
- 匿名零结果埋点 + 搜索词周报:搜索无结果时发送匿名事件 search0-<词>(不记录个人、不含结果内容); About 增加对应隐私说明;新增搜索词/零结果周报脚本(供运营每周看缺口)。
- ATC 大类四语:ATC 大类名称(L1–L4 常见类目)补齐 en / es / zh / zh-Hant 四语,类目页与入口按语言显示。
- ATC 成分名中文化:ATC 类目页里的成分名在中文界面显示中文名(无译名回退 INN)。
- 首页引导卡上移:首访引导卡(三步)移到搜索框下方更显眼位置。
- 搜索后收起大类:开始搜索/出结果后自动收起首页 ATC 大类入口,减少干扰。
- 页头响应式:窄屏下页头导航换行/收纳,不再挤压 logo 与搜索入口。
- 矩阵列错位修复 + 当地注册名标注:修复部分成分页(如 CA)矩阵单元格与表头错位;矩阵品牌旁标注当地注册名。
- What's new 译文补齐:data/release_notes_i18n.json 补 v0.6–v0.8 各版本更新说明的 es / zh / zh-Hant 译文。
- 站点 62,880 文件 / 476 MB;sitemap 62,720 URL;四语 i18n 对齐。
- Anonymous zero-result tracking + weekly search-term report: searches with no results send an anonymous
search0-<term>event (no personal data, no result content); About gains a matching privacy note; a new weekly search-term / zero-result report script helps ops spot gaps every week. - ATC categories in four languages: ATC category names (L1–L4 common categories) now have en / es / zh / zh-Hant, and category pages and entry points display them per language.
- Chinese ingredient names on ATC pages: ingredient names on ATC category pages show the Chinese name in the Chinese UI (falling back to INN when no translation exists).
- Home guide card moved up: the first-visit guide card (three steps) moves to a more prominent spot below the search box.
- Categories collapse after searching: once a search starts or results appear, the home page ATC category entries collapse automatically to reduce noise.
- Responsive header: on narrow screens the header navigation wraps or collapses instead of squeezing the logo and the search entry.
- Matrix column misalignment fixed + local registered names: matrix cells and headers no longer misalign on some ingredient pages (e.g. CA); matrix brands now show the locally registered name next to them.
- What's new translations filled in:
data/release_notes_i18n.jsongains es / zh / zh-Hant translations for the v0.6–v0.8 release notes. - Site: 62,880 files / 476 MB; sitemap 62,720 URLs; all four languages aligned.
- Seguimiento anónimo de cero resultados + informe semanal de búsquedas: las búsquedas sin resultados envían un evento anónimo
search0-<término>(sin datos personales ni contenido de resultados); About añade la nota de privacidad correspondiente; un nuevo script de informe semanal de términos/cero resultados ayuda a ver carencias cada semana. - Categorías ATC en cuatro idiomas: los nombres de categoría ATC (categorías comunes L1–L4) cuentan con en / es / zh / zh-Hant, y las páginas y entradas de categoría los muestran según el idioma.
- Nombres chinos de principios en páginas ATC: los nombres de principio en las páginas de categoría ATC muestran el nombre chino en la interfaz china (con retroceso al INN si no hay traducción).
- Tarjeta de guía del inicio subida: la tarjeta de guía para la primera visita (tres pasos) pasa a un lugar más visible bajo el cuadro de búsqueda.
- Las categorías se pliegan tras buscar: al empezar a buscar o al aparecer resultados, las entradas de categorías ATC del inicio se pliegan automáticamente para reducir ruido.
- Cabecera adaptable: en pantallas estrechas la navegación de la cabecera se ajusta o se pliega en lugar de comprimir el logo y la entrada de búsqueda.
- Desalineación de columnas de la matriz corregida + nombres registrados locales: las celdas y cabeceras de la matriz ya no se desalinean en algunas páginas de principio (p. ej. CA); las marcas de la matriz muestran junto a ellas el nombre registrado local.
- Traducciones de What's new completadas:
data/release_notes_i18n.jsonincorpora traducciones es / zh / zh-Hant de las notas de las versiones v0.6–v0.8. - Sitio: 62.880 archivos / 476 MB; sitemap con 62.720 URL; los cuatro idiomas alineados.
- 匿名零結果埋點 + 搜尋詞週報:搜尋無結果時傳送匿名事件 search0-<詞>(不記錄個人、不含結果內容); About 增加對應隱私說明;新增搜尋詞/零結果週報指令碼(供運營每週看缺口)。
- ATC 大類四語:ATC 大類名稱(L1–L4 常見類目)補齊 en / es / zh / zh-Hant 四語,類目頁與入口按語言顯示。
- ATC 成分名中文化:ATC 類目頁裡的成分名在中文介面顯示中文名(無譯名回退 INN)。
- 首頁引導卡上移:首訪引導卡(三步)移到搜尋框下方更顯眼位置。
- 搜尋後收起大類:開始搜尋/出結果後自動收起首頁 ATC 大類入口,減少干擾。
- 頁頭響應式:窄屏下頁頭導航換行/收納,不再擠壓 logo 與搜尋入口。
- 矩陣列錯位修復 + 當地註冊名標註:修復部分成分頁(如 CA)矩陣單元格與表頭錯位;矩陣品牌旁標註當地註冊名。
- What's new 譯文補齊:data/release_notes_i18n.json 補 v0.6–v0.8 各版本更新說明的 es / zh / zh-Hant 譯文。
- 站點 62,880 檔案 / 476 MB;sitemap 62,720 URL;四語 i18n 對齊。
v0.8.12026-10-29
- 站点双语对照:成分/商品名在「本市场原名」旁显示当前语言译名(默认 zh 536 / es 640 条),并带 来源徽章;双语对照数据版本 v2026-10-28.1。无译名时回退原名;品牌名永不翻译。
- 「显示原文对照」开关:检索结果/成分页可切换显示原始商品名,默认开启(zh-Hant 暂回退原名,后续补繁中译名)。
- 站点 62,880 文件 / 463.7 MB;四语界面;其余功能与 v0.8.0 一致(9 市场矩阵、ATC 类目、SG/HSA 署名)。
- Bilingual display on the site: ingredient/brand names show the current-language translation next to the original name in that market (defaults: zh 536 / es 640 entries) with a source badge; the bilingual dataset version is v2026-10-28.1; missing translations fall back to the original name and brand names are never translated.
- “Show original text” toggle: search results/ingredient pages can switch to show original brand names, on by default (zh-Hant temporarily falls back to original names; Traditional Chinese translations to follow).
- The site has 62,880 files / 463.7 MB, four-language UI, and otherwise matches v0.8.0 (9-market matrix, ATC categories, SG/HSA attribution).
- Visualización bilingüe: los nombres de principios/marcas muestran la traducción al idioma actual junto al nombre original de ese mercado (por defecto zh 536 / es 640 entradas) con una insignia de fuente; la versión del conjunto bilingüe es v2026-10-28.1; si falta traducción se usa el nombre original y las marcas nunca se traducen.
- Conmutador «Mostrar texto original»: los resultados de búsqueda y las páginas de principio pueden mostrar los nombres de marca originales, activado por defecto (zh-Hant usa temporalmente los nombres originales; las traducciones al chino tradicional llegarán después).
- El sitio tiene 62.880 archivos / 463,7 MB, interfaz en cuatro idiomas y, por lo demás, coincide con v0.8.0 (matriz de 9 mercados, categorías ATC, atribución SG/HSA).
- 站點雙語對照:成分/商品名在「本市場原名」旁顯示當前語言譯名(預設 zh 536 / es 640 條),並帶 來源徽章;雙語對照資料版本 v2026-10-28.1。無譯名時回退原名;品牌名永不翻譯。
- 「顯示原文對照」開關:檢索結果/成分頁可切換顯示原始商品名,預設開啟(zh-Hant 暫回退原名,後續補繁中譯名)。
- 站點 62,880 檔案 / 463.7 MB;四語介面;其餘功能與 v0.8.0 一致(9 市場矩陣、ATC 類目、SG/HSA 署名)。
v0.8.02026-10-29
- 新加坡市场上线:接入 HSA「Listing of Registered Therapeutic Products」(data.gov.sg),真实库已入库 5,511 个在册产品(hsa_sg,数据截止 2026-08-07,每 6 个月更新);全库产品 431,555。
- 四语国家列表 / 结果 chips / 成分页矩阵新增 SG 列;站点覆盖 9 个市场(US/GB/CA/AU/SG/CN/ES/MX/TW)。
- 矩阵 9 市场全显示(不再截断):en 不再舍 TW、zh 不再舍 MX;窄屏容器内横向滚动,页面不横向溢出。
- 来源署名:About 新增 HSA / 新加坡开放数据授权条款(SODL v1.0)署名与数据截止日;明确 「在册名单不代表在售」、商品名保留英文原文不翻译(四语)。
- 站点 62,878 文件 / 455.7 MB;sitemap 62,720 URL;四语 i18n 对齐。
- Singapore market launched: the HSA “Listing of Registered Therapeutic Products” (data.gov.sg) is integrated, with 5,511 registered products (hsa_sg, data cut-off 2026-08-07, updated every 6 months); the database now holds 431,555 products.
- Four-language country list / result chips / ingredient matrix gain an SG column; the site now covers 9 markets (US/GB/CA/AU/SG/CN/ES/MX/TW).
- All 9 markets shown in the matrix (no truncation): en no longer drops TW and zh no longer drops MX; narrow screens scroll horizontally inside the container without page overflow.
- Source attribution: About adds HSA / Singapore Open Data Licence (SODL v1.0) attribution and data cut-off; it states clearly that “registration is not the same as being on sale” and brand names keep their original English text (four languages).
- The site has 62,878 files / 455.7 MB, a sitemap of 62,720 URLs, and the four-language i18n is aligned.
- Lanzamiento del mercado de Singapur: se integra el «Listing of Registered Therapeutic Products» de HSA (data.gov.sg), con 5.511 productos registrados (hsa_sg, corte 2026-08-07, actualización semestral); la base contiene ahora 431.555 productos.
- La lista de países, los chips de resultados y la matriz de principios en cuatro idiomas añaden una columna SG; el sitio cubre ahora 9 mercados (US/GB/CA/AU/SG/CN/ES/MX/TW).
- La matriz muestra los 9 mercados (sin truncar): en ya no omite TW y zh ya no omite MX; las pantallas estrechas se desplazan horizontalmente dentro del contenedor sin desbordar la página.
- Atribución de fuentes: About añade la atribución HSA / Licencia de Datos Abiertos de Singapur (SODL v1.0) y la fecha de corte; se indica claramente que «estar registrado no equivale a estar a la venta» y las marcas conservan su texto original en inglés (cuatro idiomas).
- El sitio tiene 62.878 archivos / 455,7 MB, un sitemap de 62.720 URL y la i18n de los cuatro idiomas está alineada.
- 新加坡市場上線:接入 HSA「Listing of Registered Therapeutic Products」(data.gov.sg),真實庫已入庫 5,511 個在冊產品(hsa_sg,資料截止 2026-08-07,每 6 個月更新);全庫產品 431,555。
- 四語國家列表 / 結果 chips / 成分頁矩陣新增 SG 列;站點覆蓋 9 個市場(US/GB/CA/AU/SG/CN/ES/MX/TW)。
- 矩陣 9 市場全顯示(不再截斷):en 不再舍 TW、zh 不再舍 MX;窄屏容器內橫向滾動,頁面不橫向溢位。
- 來源署名:About 新增 HSA / 新加坡開放資料授權條款(SODL v1.0)署名與資料截止日;明確 「在冊名單不代表販售中」、商品名保留英文原文不翻譯(四語)。
- 站點 62,878 檔案 / 455.7 MB;sitemap 62,720 URL;四語 i18n 對齊。
v0.7.12026-10-29
- ATC 类别浏览:新增 1,154 个 ATC 类目页(L1–L4,含层级路径)与 16 个常见大类入口;ATC 码搜索结果可直接进入 对应类目页,类目页列出该类别下的成分/商品名,并标注 WHO ATC / DDD 引用。
- 四语类名与类名搜索:类目名称 en / es / zh / zh-Hant 四语;搜索框支持类名(如「他汀类」「antibiotics」)直接命中类目页。
- 数据说明:L2–L4 多数类名为编辑/AI 译名,以 ATC 码为准,译名待专业校订;站点 61,547 文件 / 446.2 MB,sitemap 61,390 URL。
- ATC category browsing: 1,154 ATC category pages (L1–L4 with hierarchy paths) and 16 common top-category entry points; ATC-code search results link directly to the matching category page, which lists ingredients/brand names in that category and cites WHO ATC / DDD.
- Four-language category names and search: category names in en/es/zh/zh-Hant; the search box accepts category names (e.g. “他汀类”/“antibiotics”) and goes straight to the category page.
- Data note: most L2–L4 category names are editorial/AI translations — the ATC code is authoritative and names await professional review; the site has 61,547 files / 446.2 MB and a sitemap of 61,390 URLs.
- Navegación por categorías ATC: 1.154 páginas de categoría ATC (L1–L4 con rutas jerárquicas) y 16 accesos a categorías principales comunes; los resultados de búsqueda por código ATC enlazan directamente a la categoría, que lista principios/marcas y cita WHO ATC / DDD.
- Nombres de categoría y búsqueda en cuatro idiomas: nombres en en/es/zh/zh-Hant; el buscador acepta nombres de categoría (p. ej. «他汀类»/«antibiotics») y va directamente a la página de categoría.
- Nota de datos: la mayoría de los nombres de categoría L2–L4 son traducciones editoriales/IA — el código ATC es la referencia y los nombres están pendientes de revisión profesional; el sitio tiene 61.547 archivos / 446,2 MB y un sitemap de 61.390 URL.
- ATC 類別瀏覽:新增 1,154 個 ATC 類目頁(L1–L4,含層級路徑)與 16 個常見大類入口;ATC 碼搜尋結果可直接進入 對應類目頁,類目頁列出該類別下的成分/商品名,並標註 WHO ATC / DDD 引用。
- 四語類名與類名搜尋:類目名稱 en / es / zh / zh-Hant 四語;搜尋框支援類名(如「史他汀類」「antibiotics」)直接命中類目頁。
- 資料說明:L2–L4 多數類名為編輯/AI 譯名,以 ATC 碼為準,譯名待專業校訂;站點 61,547 檔案 / 446.2 MB,sitemap 61,390 URL。
v0.7.02026-10-29
- 台湾市场上线:接入衛福部食藥署 TFDA「全部藥品許可證資料集」(data.gov.tw #9122),真实库已入库 16,457 个在册产品;国家列表、结果国家 chips、成分页矩阵新增 TW 列(四语界面均可见)。
- 繁体中文界面启用:新增 /zh-hant/ 站点与 hreflang=zh-Hant,首页/检索/成分页/About/警示页全站繁体中文; TW 默认语言为 zh-Hant;首页显示台湾产品数 16,457。
- 来源署名:About 页新增 TFDA / 政府資料開放授權條款(OGDL v1.0)署名与数据截止日 2026-10-22(四语)。
- 台湾规格提示:TW 规格来自药名解析(非结构化字段),成分页对 TW 列标注「規格来自品名解析、置信度有限」。
- 站点 60,375 文件 / 436.3 MB;sitemap 60,219 URL;四语 i18n 全部对齐。
- Taiwan market launched: the TFDA “All drug permits” dataset (data.gov.tw #9122) is integrated, with 16,457 registered products written to the real database; the country list, result-country chips and ingredient-page matrix gain a TW column (visible in all four languages).
- Traditional Chinese UI enabled: a
/zh-hant/site withhreflang=zh-Hant; home, search, ingredient pages, About and warnings are fully Traditional Chinese; TW defaults to zh-Hant and the home page shows 16,457 Taiwanese products. - Source attribution: About adds TFDA / Government Open Data License (OGDL v1.0) attribution and a data cut-off of 2026-10-22 (four languages).
- Taiwan strength note: TW strengths come from brand-name parsing (unstructured fields), and the ingredient-page TW column is labelled “strength parsed from product name — limited confidence”.
- The site has 60,375 files / 436.3 MB, a sitemap of 60,219 URLs, and all four-language i18n is aligned.
- Lanzamiento del mercado de Taiwán: se integra el conjunto «Todos los permisos de medicamentos» de la TFDA (data.gov.tw #9122), con 16.457 productos registrados en la base real; la lista de países, los chips de país en resultados y la matriz de páginas de principio añaden una columna TW (visible en los cuatro idiomas).
- Interfaz en chino tradicional habilitada: sitio
/zh-hant/conhreflang=zh-Hant; inicio, búsqueda, páginas de principio, About y avisos totalmente en chino tradicional; TW usa zh-Hant por defecto y la página de inicio muestra 16.457 productos taiwaneses. - Atribución de fuentes: About añade la atribución TFDA / Licencia de Datos Abiertos del Gobierno (OGDL v1.0) y la fecha de corte 2026-10-22 (cuatro idiomas).
- Aviso sobre concentraciones de Taiwán: las concentraciones TW proceden del análisis del nombre del producto (campos no estructurados) y la columna TW de la página de principio se marca «concentración inferida del nombre — confianza limitada».
- El sitio tiene 60.375 archivos / 436,3 MB, un sitemap de 60.219 URL y la i18n de los cuatro idiomas está alineada.
- 臺灣市場上線:接入衛福部食藥署 TFDA「全部藥品許可證資料集」(data.gov.tw #9122),真實庫已入庫 16,457 個在冊產品;國家列表、結果國家 chips、成分頁矩陣新增 TW 列(四語介面均可見)。
- 繁體中文介面啟用:新增 /zh-hant/ 站點與 hreflang=zh-Hant,首頁/檢索/成分頁/About/警語頁全站繁體中文; TW 預設語言為 zh-Hant;首頁顯示臺灣產品數 16,457。
- 來源署名:About 頁新增 TFDA / 政府資料開放授權條款(OGDL v1.0)署名與資料截止日 2026-10-22(四語)。
- 臺灣規格提示:TW 規格來自藥名解析(非結構化欄位),成分頁對 TW 列標註「規格來自品名解析、置信度有限」。
- 站點 60,375 檔案 / 436.3 MB;sitemap 60,219 URL;四語 i18n 全部對齊。
v0.6.72026-10-29
- 成分页多国并排矩阵:成分页改为「行 = 规格 / 剂型 / 释放机制,列 = 国家(≤8)」的矩阵,单元格显示该国品牌 (最多 3 个 + N);无记录显示「未收录」;停售 / 撤市 / 状态未确认默认隐藏;表格加表线,移动端容器内横滚。
- 语言优先列序:en / es / zh / zh-Hant 首列分别为 US / ES / CN / TW,切换语言时列序随之重排。
- /warn 警示页分页:40 条改为 10 条/页,支持上一页 / 下一页 / 页码,?page=N 可分享、刷新保持,越界自动收敛到末页。
- 四语 i18n 336 keys 完全一致(矩阵与分页文案各 4 语);站点 60,375 文件 / 436.3 MB,sitemap 60,219 URL。
- 发布侧:deploy/publish.ps1 改为 gh-pages 增量提交(未变文件复用历史对象,只上传变化内容的 delta;-FullPush 可退回旧的全量流程)。
- Multi-country side-by-side matrix on ingredient pages: ingredient pages become a matrix of “rows = strength / dosage form / release mechanism, columns = countries (≤8)”, each cell showing that country’s brands (up to 3 + N); empty cells show “not indexed”; discontinued/withdrawn/unconfirmed-status products are hidden by default; tables get borders and scroll horizontally inside a container on mobile.
- Language-priority column order: the first column is US / ES / CN / TW for en / es / zh / zh-Hant respectively, and the order re-sorts when the language changes.
/warnpagination: the 40 warnings are paginated at 10 per page with previous/next/page-number controls;?page=Nis shareable and survives refresh, and out-of-range values clamp to the last page.- Four-language i18n is exactly aligned at 336 keys (matrix and pagination copy in each); the site has 60,375 files / 436.3 MB and a sitemap of 60,219 URLs.
- Release side:
deploy/publish.ps1now makes incremental gh-pages commits (unchanged files reuse historical objects and only deltas are uploaded;-FullPushreturns to the old full-upload flow).
- Matriz multipaís en páginas de principio: las páginas de principio pasan a una matriz de «filas = concentración / forma / mecanismo de liberación, columnas = países (≤8)», y cada celda muestra las marcas del país (hasta 3 + N); las celdas vacías indican «no indexado»; los productos retirados/descatalogados o de estado no confirmado se ocultan por defecto; las tablas llevan líneas y se desplazan horizontalmente dentro de un contenedor en móvil.
- Orden de columnas según idioma: la primera columna es US / ES / CN / TW para en / es / zh / zh-Hant respectivamente, y el orden se reajusta al cambiar de idioma.
- Paginación de
/warn: los 40 avisos se paginan de 10 en 10 con controles anterior/siguiente/número de página;?page=Nse puede compartir y se mantiene al refrescar; los valores fuera de rango se ajustan a la última página. - La i18n en cuatro idiomas está exactamente alineada con 336 claves (textos de matriz y paginación en cada una); el sitio tiene 60.375 archivos / 436,3 MB y un sitemap de 60.219 URL.
- Publicación:
deploy/publish.ps1hace ahora commits incrementales en gh-pages (los archivos sin cambios reutilizan objetos históricos y solo se suben los deltas;-FullPushvuelve al flujo de subida completa anterior).
- 成分頁多國並排矩陣:成分頁改為「行 = 規格 / 劑型 / 釋放機制,列 = 國家(≤8)」的矩陣,單元格顯示該國品牌 (最多 3 個 + N);無記錄顯示「未收錄」;停售 / 撤市 / 狀態未確認預設隱藏;表格加表線,移動端容器內橫滾。
- 語言優先列序:en / es / zh / zh-Hant 首列分別為 US / ES / CN / TW,切換語言時列序隨之重排。
- /warn 警語頁分頁:40 條改為 10 條/頁,支援上一頁 / 下一頁 / 頁碼,?page=N 可分享、重新整理保持,越界自動收斂到末頁。
- 四語 i18n 336 keys 完全一致(矩陣與分頁文案各 4 語);站點 60,375 檔案 / 436.3 MB,sitemap 60,219 URL。
- 發布側:deploy/publish.ps1 改為 gh-pages 增量提交(未變檔案複用歷史物件,只上傳變化內容的 delta;-FullPush 可退回舊的全量流程)。
v0.6.52026-10-29
- 英文/西语界面去中文残留:首页 logo 副标题、示例按钮、About 的昵称/类别词/已知缺口段落改为本语言 文案(如 Two frogs (liǎng zhī qīngwā)、sleeping pill (shuìqiányào)/pastilla para dormir);中文副标题只在 zh 界面显示。
- 首页示例按钮按语言本地化:en = Lipitor 20mg / Tylenol / Benadryl / Gaviscon;es = Paracetamol 500mg / Ibuprofeno 600mg / Omeprazol 20mg / Loratadina 10mg;zh 泰诺/两只青蛙;zh-Hant 泰諾/兩隻青蛙。
- 首搜提示更新:四语提示改为「首次只加载一小片索引(约 0.2 MB),完整索引后台补全」,不再出现旧「~6 MB」文案。
- 四语 i18n 328 keys 完全对齐;页面数与索引体积不变(57,848 文件 / 408.7 MB,sitemap 57,697 URL)。
- Chinese leftovers removed from EN/ES UI: the home-page logo subtitle, example buttons and About sections on nicknames/category terms/known gaps now use the page language (e.g. “Two frogs (liǎng zhī qīngwā)”, “sleeping pill (shuìqiányào)” / “pastilla para dormir”); the Chinese subtitle shows only in the zh UI.
- Home-page example buttons localized: en = Lipitor 20mg / Tylenol / Benadryl / Gaviscon; es = Paracetamol 500mg / Ibuprofeno 600mg / Omeprazol 20mg / Loratadina 10mg; zh = 泰诺/两只青蛙; zh-Hant = 泰諾/兩隻青蛙.
- First-search hint updated: in all four languages it now says “the first search loads only a small index slice (~0.2 MB); the full index is filled in the background”, replacing the old “~6 MB” copy.
- Four-language i18n is fully aligned at 328 keys; page count and index size are unchanged (57,848 files / 408.7 MB, sitemap 57,697 URLs).
- Se eliminan restos de chino en las interfaces EN/ES: el subtítulo del logo, los botones de ejemplo y las secciones de About sobre apodos, términos de categoría y lagunas conocidas usan ahora el idioma de la página (p. ej. «Two frogs (liǎng zhī qīngwā)», «sleeping pill (shuìqiányào)» / «pastilla para dormir»); el subtítulo chino solo aparece en la interfaz zh.
- Botones de ejemplo de la página de inicio localizados: en = Lipitor 20mg / Tylenol / Benadryl / Gaviscon; es = Paracetamol 500mg / Ibuprofeno 600mg / Omeprazol 20mg / Loratadina 10mg; zh = 泰诺/两只青蛙; zh-Hant = 泰諾/兩隻青蛙.
- Aviso de primera búsqueda actualizado: en los cuatro idiomas dice ahora «la primera búsqueda carga solo una pequeña porción del índice (~0,2 MB); el índice completo se completa en segundo plano», en lugar del antiguo «~6 MB».
- La i18n en cuatro idiomas está totalmente alineada con 328 claves; el número de páginas y el tamaño del índice no cambian (57.848 archivos / 408,7 MB, sitemap 57.697 URL).
- 英文/西語介面去中文殘留:首頁 logo 副標題、示例按鈕、About 的暱稱/類別詞/已知缺口段落改為本語言 文案(如 Two frogs (liǎng zhī qīngwā)、sleeping pill (shuìqiányào)/pastilla para dormir);中文副標題只在 zh 介面顯示。
- 首頁示例按鈕按語言本地化:en = Lipitor 20mg / Tylenol / Benadryl / Gaviscon;es = Paracetamol 500mg / Ibuprofeno 600mg / Omeprazol 20mg / Loratadina 10mg;zh 泰諾/兩隻青蛙;zh-Hant 泰諾/兩隻青蛙。
- 首搜提示更新:四語提示改為「首次只加載一小片索引(約 0.2 MB),完整索引後臺補全」,不再出現舊「~6 MB」文案。
- 四語 i18n 328 keys 完全對齊;頁面數與索引體積不變(57,848 檔案 / 408.7 MB,sitemap 57,697 URL)。
v0.6.42026-10-29
- ATC 码搜索:搜索框支持
C07AB02(成分级)与C07/C07A(类目级)前缀, 结果直接列出对应成分/商品名并显示「ATC 前缀匹配」;普通药名不会被误判为 ATC。 - 术语表页(/glossary.html):INN / BAN / USAN / ATC / MAH / DIN / NDC / ARTG 等 13 条术语,中英西 + 繁体四语解释,导航入 sitemap。
- 键盘快捷键:
/聚焦搜索、Esc关闭建议/清空;中文输入法组合输入不受影响。 - 索引新增 ATC 字段(113,244 条目带码),core 27.8 MB;站点 57,697 URL。
- ATC-code search: the search box accepts
C07AB02(ingredient level) andC07/C07A(category-level) prefixes, listing matching ingredients/brand names with an “ATC prefix match” label; ordinary drug names are not mistaken for ATC codes. - Glossary page (
/glossary.html): 13 terms including INN / BAN / USAN / ATC / MAH / DIN / NDC / ARTG, explained in Chinese, English, Spanish and Traditional Chinese, linked from navigation and included in the sitemap. - Keyboard shortcuts:
/focuses search,Esccloses suggestions/clears input; Chinese IME composition input is unaffected. - The index gains an ATC field (113,244 entries with a code); core is 27.8 MB; the site has 57,697 URLs.
- Búsqueda por código ATC: el buscador acepta prefijos
C07AB02(nivel principio) yC07/C07A(nivel categoría), muestra los principios/marcas correspondientes con la etiqueta «coincidencia por prefijo ATC»; los nombres de medicamentos normales no se confunden con códigos ATC. - Glosario (
/glossary.html): 13 términos como INN / BAN / USAN / ATC / MAH / DIN / NDC / ARTG, explicados en chino, inglés, español y chino tradicional, enlazado desde la navegación e incluido en el sitemap. - Atajos de teclado:
/enfoca la búsqueda,Esccierra sugerencias o limpia la entrada; la composición con IME chino no se ve afectada. - El índice añade un campo ATC (113.244 entradas con código); core ocupa 27,8 MB; el sitio tiene 57.697 URL.
- ATC 碼搜尋:搜尋框支援
C07AB02(成分級)與C07/C07A(類目級)字首, 結果直接列出對應成分/商品名並顯示「ATC 字首匹配」;普通藥名不會被誤判為 ATC。 - 術語表頁(/glossary.html):INN / BAN / USAN / ATC / MAH / DIN / NDC / ARTG 等 13 條術語,中英西 + 繁體四語解釋,導航入 sitemap。
- 鍵盤快捷鍵:
/聚焦搜尋、Esc關閉建議/清空;中文輸入法組合輸入不受影響。 - 索引新增 ATC 欄位(113,244 條目帶碼),core 27.8 MB;站點 57,697 URL。
v0.6.32026-10-29
- 首屏 3 步引导(U1):首次访问首页显示「① 输入盒子上的名字 → ② 看它是什么成分 → ③ 切国家看别国叫什么」+ 真实示例,可关闭并记住;四语,防布局跳动。
- 结果顶部「各国叫法」横排(U2):能唯一确定单成分时,结果上方直接列出 US/GB/CN/ES/MX/AU/CA 的叫法(无收录显示「未收录」),点击切国家视图;多成分/多结果 自动隐藏,避免把不同药当成同一药。
- 界面标签本地化(U3):剂型(片剂/胶囊/注射剂…)、释放机制、单位、状态在 en/es/zh/繁体中文下统一显示;未收录的长尾值保留原文。
- First-screen 3-step guide (U1): first-time visitors to the home page see “① Type the name on the box → ② See what ingredient it is → ③ Switch country to see local names” with real examples; it can be dismissed and is remembered; available in four languages with no layout shift.
- “Local names” strip above results (U2): when a single ingredient is unambiguously identified, US/GB/CN/ES/MX/AU/CA names are listed above the results (“not indexed” where missing) and clicking switches the country view; hidden for multi-ingredient/multi-result cases so different drugs are not conflated.
- UI label localization (U3): dosage forms (tablet/capsule/injection…), release mechanisms, units and status are shown consistently in en/es/zh/zh-Hant; unindexed long-tail values keep their original text.
- Guía de 3 pasos en la pantalla inicial (U1): quien visita la página por primera vez ve «① Escribe el nombre de la caja → ② Mira qué principio es → ③ Cambia de país para ver cómo se llama» con ejemplos reales; se puede cerrar y se recuerda; en cuatro idiomas y sin saltos de diseño.
- Tira de «nombres locales» sobre los resultados (U2): cuando se identifica un único principio sin ambigüedad, los nombres de US/GB/CN/ES/MX/AU/CA se listan sobre los resultados («no indexado» si falta) y al pulsar se cambia la vista de país; se oculta en casos de varios principios o resultados para no confundir medicamentos distintos.
- Localización de etiquetas de interfaz (U3): las formas farmacéuticas (comprimido/cápsula/inyectable…), los mecanismos de liberación, las unidades y el estado se muestran de forma consistente en en/es/zh/zh-Hant; los valores largos no indexados conservan su texto original.
- 首屏 3 步引導(U1):首次訪問首頁顯示「① 輸入盒子上的名字 → ② 看它是什麼成分 → ③ 切國家看別國叫什麼」+ 真實示例,可關閉並記住;四語,防佈局跳動。
- 結果頂部「各國叫法」橫排(U2):能唯一確定單成分時,結果上方直接列出 US/GB/CN/ES/MX/AU/CA 的叫法(無收錄顯示「未收錄」),點擊切國家檢視;多成分/多結果 自動隱藏,避免把不同藥當成同一藥。
- 介面標籤本地化(U3):劑型(錠劑/膠囊/注射劑…)、釋放機制、單位、狀態在 en/es/zh/繁體中文下統一顯示;未收錄的長尾值保留原文。
v0.6.22026-10-29
- 新增繁体中文(zh-Hant)界面:语言切换加「繁」,新增
/zh-hant/首页与 About / What's new / Confused / Warn 副本共 5 页;字典 247 键全覆盖,hreflang 增加zh-Hant,浏览器语言 zh-TW/HK/MO 自动识别。 - 繁体输入检索:内置 2,966 字对繁→简归一(OpenCC 子集),输入「泰諾」「對乙醯氨基酚」 等繁体同样能命中;显示仍按界面语言。
- 三语(en/es/zh)行为与文案不变;站点 +5 页、+3.2 MB。
- Traditional Chinese (zh-Hant) UI added: a “繁” language switch plus a
/zh-hant/home page and copies of About / What's new / Confused / Warn (5 pages); the dictionary covers all 247 keys,hreflangaddszh-Hant, and browser languages zh-TW/HK/MO are detected automatically. - Traditional-Chinese input search: a built-in 2,966-pair traditional→simplified normalization table (OpenCC subset) means queries such as 「泰諾」 or 「對乙醯氨基酚」 also match; display still follows the UI language.
- Three-language (en/es/zh) behaviour and copy are unchanged; the site gains 5 pages and 3.2 MB.
- Interfaz en chino tradicional (zh-Hant): se añade el selector «繁», una página de inicio
/zh-hant/y copias de About / What's new / Confused / Warn (5 páginas); el diccionario cubre las 247 claves,hreflangañadezh-Hanty se detectan automáticamente los idiomas zh-TW/HK/MO del navegador. - Búsqueda con entrada en tradicional: una tabla integrada de 2.966 pares tradicional→simplificado (subconjunto de OpenCC) permite que consultas como «泰諾» o «對乙醯氨基酚» también encuentren resultados; la visualización sigue el idioma de la interfaz.
- El comportamiento y los textos en en/es/zh no cambian; el sitio suma 5 páginas y 3,2 MB.
- 新增繁體中文(zh-Hant)介面:語言切換加「繁」,新增
/zh-hant/首頁與 About / What's new / Confused / Warn 副本共 5 頁;字典 247 鍵全覆蓋,hreflang 增加zh-Hant,瀏覽器語言 zh-TW/HK/MO 自動識別。 - 繁體輸入檢索:內建 2,966 字對繁→簡歸一(OpenCC 子集),輸入「泰諾」「對乙醯氨基酚」 等繁體同樣能命中;顯示仍按介面語言。
- 三語(en/es/zh)行為與文案不變;站點 +5 頁、+3.2 MB。
v0.6.12026-10-29
- 发布体积 −54.9 MB:停写冗余的
data/index.json(55.1 MB),core.json成为唯一索引;?legacy=1与解码失败回退统一走 core + decodeCore,结果与旧 index 逐字段对拍一致; GitHub Pages 单文件 50 MB 警告消失,发布更快。 - core 增加剂型字段:B7 导出的剂型列不再为空;core raw 27.1 MB / gzip 6.4 MB。
- 旧缓存客户端(≤v0.5.0)刷新前可能请求已删除的 index.json,刷新即恢复;
可用
WRITE_LEGACY_INDEX=1临时恢复双写。
- Release size −54.9 MB: the redundant
data/index.json(55.1 MB) is no longer written andcore.jsonbecomes the only index;?legacy=1and the decode fallback both use core + decodeCore, with results matching the old index field by field; the GitHub Pages single-file 50 MB warning is gone and publishing is faster. - Dosage-form field added to core: the form column exported by B7 is no longer empty; core is 27.1 MB raw / 6.4 MB gzip.
- Old cached clients (≤v0.5.0) may request the deleted
index.jsonuntil they refresh and recover after a refresh;WRITE_LEGACY_INDEX=1temporarily restores dual writes.
- Tamaño de publicación −54,9 MB: deja de escribirse el redundante
data/index.json(55,1 MB) ycore.jsonpasa a ser el único índice;?legacy=1y el fallback de decodificación usan core + decodeCore, con resultados idénticos campo a campo al índice anterior; desaparece el aviso de 50 MB por archivo de GitHub Pages y la publicación es más rápida. - Campo de forma farmacéutica en core: la columna de forma exportada por B7 ya no está vacía; core ocupa 27,1 MB sin comprimir / 6,4 MB gzip.
- Los clientes con caché antigua (≤v0.5.0) pueden pedir el
index.jsoneliminado hasta refrescar y se recuperan tras refrescar;WRITE_LEGACY_INDEX=1restaura temporalmente la doble escritura.
- 發布體積 −54.9 MB:停寫冗餘的
data/index.json(55.1 MB),core.json成為唯一索引;?legacy=1與解碼失敗回退統一走 core + decodeCore,結果與舊 index 逐欄位對拍一致; GitHub Pages 單檔案 50 MB 警告消失,發布更快。 - core 增加劑型欄位:B7 匯出的劑型列不再為空;core raw 27.1 MB / gzip 6.4 MB。
- 舊快取客戶端(≤v0.5.0)重新整理前可能請求已刪除的 index.json,重新整理即恢復;
可用
WRITE_LEGACY_INDEX=1臨時恢復雙寫。
v0.6.02026-10-29
- 复方页跨市场对应:9,291 个组合页全部新增「其他国家同组合」区块——同成分集合 (exact 326 页)列出其他市场的品牌/产品数并链到对应页;近似组合(overlap 8)标 「相近但不相同,不可互换」;无同组合(none 4,509)明确「暂无同组合」并只给主成分链接, 标注「仅主成分相同,不是同一个复方」,不把复方当单方替代。
- 映射口径:页面成分集合与 CSV 归一签名两级反查;未匹配页面(4,448)显示中性提示,
宁可不显示也不误报;构建期读
data/combo_match_candidates.csv,零运行时开销。 - 三语新增
combo.cross_*9 键;组合页目录 +2.44 MB,站点总计约 450 MB。
- Cross-market combination-page matching: all 9,291 combination pages gain an “other countries with the same combination” block — exact same ingredient sets (326 pages) list brand/product counts in other markets with links; near matches (8) are labelled “similar but not identical — not interchangeable”; no-match pages (4,509) state “no same combination” and only link to the primary ingredient, marked “primary ingredient only — not the same combination”, never treating a combination as a single-ingredient substitute.
- Matching rules: two-level lookup by page ingredient set and normalized CSV signature; unmatched pages (4,448) show a neutral notice — showing nothing is preferred to false matches; the build reads
data/combo_match_candidates.csvwith zero runtime cost. - Added 9
combo.cross_*i18n keys in three languages; the combination-page directory grows by 2.44 MB, with the site totalling about 450 MB.
- Correspondencia entre mercados de páginas de combinación: las 9.291 páginas de combinación añaden un bloque «otros países con la misma combinación» — los conjuntos de principios exactamente iguales (326 páginas) muestran el número de marcas/productos en otros mercados con enlaces; las coincidencias aproximadas (8) se marcan «similares pero no idénticas — no intercambiables»; las páginas sin coincidencia (4.509) indican «sin combinación igual» y solo enlazan al principio principal, con la marca «solo el principio principal — no es la misma combinación», sin tratar una combinación como sustituto de un monofármaco.
- Criterio de correspondencia: doble búsqueda por conjunto de principios de la página y por firma normalizada del CSV; las páginas sin coincidencia (4.448) muestran un aviso neutro: es preferible no mostrar nada a dar falsos positivos; la compilación lee
data/combo_match_candidates.csvcon coste cero en ejecución. - Se añaden 9 claves
combo.cross_*en tres idiomas; el directorio de páginas de combinación crece 2,44 MB y el sitio totaliza unos 450 MB.
- 複方頁跨市場對應:9,291 個組合頁全部新增「其他國家同組合」區塊——同成分集合 (exact 326 頁)列出其他市場的品牌/產品數並鏈到對應頁;近似組合(overlap 8)標 「相近但不相同,不可互換」;無同組合(none 4,509)明確「暫無同組合」並只給主成分連結, 標註「僅主成分相同,不是同一個複方」,不把複方當單方替代。
- 對映口徑:頁面成分集合與 CSV 歸一簽名兩級反查;未匹配頁面(4,448)顯示中性提示,
寧可不顯示也不誤報;構建期讀
data/combo_match_candidates.csv,零執行時開銷。 - 三語新增
combo.cross_*9 鍵;組合頁目錄 +2.44 MB,站點總計約 450 MB。
v0.5.62026-10-29
- 产品详情展开(A1):结果行可点「详情」按桶懒加载产品级明细(市场/包装/批准号/状态日期/ 释放机制/来源链接,最多 12 条),首次加载平均 ~180 KB gz,首屏不加载。
- 盐型 / 释放机制提示(A3):结果行出现盐型(base/succinate…)、释放(IR/ER…)与已发布
不可互换警示的徽章;警示链到
/warn#w-<id>,多盐型只做中性提示。 - 行级报告 + 导出(B6/B7):每行 ⚑ 可预填 GitHub issue 报告错误;结果工具条支持复制表格 与下载 CSV(BOM+CRLF,当前视图全部行)。
- What's new 修复:改为 CHANGELOG 全量 24 个版本为主列表,有译文渲染 en/es/zh 三块, 无译文显示中文并标「译文待补」;正文不再缺 v0.5.3–v0.5.5。
- 站点体积 57,836 文件 / 447.9 MB(详情桶 +46.9 MB raw / +9.3 MB gzip)。
- Product-detail expansion (A1): result rows have a “details” button that lazily loads product-level specifics per bucket (market/package/approval number/status date/release mechanism/source link, up to 12 entries); the first load averages ~180 KB gz and is not fetched on first paint.
- Salt-form / release-mechanism hints (A3): result rows show badges for salt form (base/succinate…), release (IR/ER…) and any published non-interchangeability warning; warnings link to
/warn#w-<id>and multiple salt forms only get a neutral notice. - Row-level reporting + export (B6/B7): each row has a ⚑ to pre-fill a GitHub issue for reporting errors; the result toolbar supports copying the table and downloading CSV (BOM+CRLF, all rows in the current view).
- What's new fix: it now uses all 24 CHANGELOG versions as the main list, rendering en/es/zh blocks where translations exist and Chinese with a “translation pending” label otherwise; v0.5.3–v0.5.5 no longer disappear from the page.
- Site size is 57,836 files / 447.9 MB (detail buckets +46.9 MB raw / +9.3 MB gzip).
- Despliegue de detalles de producto (A1): las filas de resultados tienen un botón «detalles» que carga de forma diferida los datos de producto por lote (mercado/envase/número de aprobación/fecha de estado/mecanismo de liberación/enlace de fuente, hasta 12 entradas); la primera carga promedia ~180 KB gz y no se descarga en el primer render.
- Avisos de forma salina / mecanismo de liberación (A3): las filas muestran insignias de forma salina (base/succinato…), liberación (IR/ER…) y cualquier aviso publicado de no intercambiabilidad; los avisos enlazan a
/warn#w-<id>y varias formas salinas solo reciben un aviso neutro. - Informe por fila + exportación (B6/B7): cada fila tiene un ⚑ para prerrellenar una incidencia de GitHub y reportar errores; la barra de resultados permite copiar la tabla y descargar CSV (BOM+CRLF, todas las filas de la vista actual).
- Corrección de What's new: usa las 24 versiones del CHANGELOG como lista principal, muestra los bloques en/es/zh cuando hay traducción y el chino con la etiqueta «traducción pendiente» si no; v0.5.3–v0.5.5 ya no desaparecen de la página.
- El sitio ocupa 57.836 archivos / 447,9 MB (los lotes de detalles suman +46,9 MB sin comprimir / +9,3 MB gzip).
- 產品詳情展開(A1):結果行可點「詳情」按桶懶載入產品級明細(市場/包裝/批准號/狀態日期/ 釋放機制/來源連結,最多 12 條),首次載入平均 ~180 KB gz,首屏不載入。
- 鹽型 / 釋放機制提示(A3):結果行出現鹽型(base/succinate…)、釋放(IR/ER…)與已發布
不可互換警語的徽章;警語鏈到
/warn#w-<id>,多鹽型只做中性提示。 - 行級報告 + 匯出(B6/B7):每行 ⚑ 可預填 GitHub issue 報告錯誤;結果工具條支援複製表格 與下載 CSV(BOM+CRLF,當前檢視全部行)。
- What's new 修復:改為 CHANGELOG 全量 24 個版本為主列表,有譯文渲染 en/es/zh 三塊, 無譯文顯示中文並標「譯文待補」;正文不再缺 v0.5.3–v0.5.5。
- 站點體積 57,836 檔案 / 447.9 MB(詳情桶 +46.9 MB raw / +9.3 MB gzip)。
v0.5.52026-10-29
- 中文界面显示中文成分名:检索索引新增
xz中文名数组(65,075 条,缺失逐段回退英文), 中文界面搜 Excedrin 会显示「对乙酰氨基酚 / 枸橼酸咖啡因」等中文名;自动完成同步。 - 页面元信息三语:首页/About/What's new/Confused/Warn 的 title、description、OG、
canonical、hreflang 按 en/es/zh 生成;新增
/es/、/zh/静态副本(head 本地化、链接相对)。 - What's new 三语:21 个版本要点按
data/release_notes_i18n.json渲染 en/es 块, 标注「AI 翻译,中文原文为准」;CHANGELOG 里的相对链接改为 GitHub 链接,消除 404。 - 跨市场身份合并落地:batch A+B 共合并 141 个成分(12,790 → 12,649),多市场成分增加; DB VACUUM 450 MB → 325 MB,补 2 个查询索引,外键检查清零。
- Chinese UI now shows Chinese ingredient names: the search index gains an
xzarray of Chinese names (65,075 entries; falls back to English segment by segment when missing). Searching Excedrin in the Chinese UI now shows names such as 「对乙酰氨基酚 / 枸橼酸咖啡因」; autocomplete is synced. - Trilingual page metadata: title, description, OG, canonical and hreflang for Home / About / What's new / Confused / Warn are generated per language (en/es/zh); new static copies under
/es/and/zh/(localized head, relative links). - Trilingual What's new: the 21 release summaries are rendered with en/es blocks from
data/release_notes_i18n.json, labelled “AI translation — Chinese text is authoritative”; relative links in CHANGELOG are rewritten to GitHub links, fixing 404s. - Cross-market identity merges landed: batches A+B merged 141 substances (12,790 → 12,649), increasing multi-market ingredients; DB VACUUM shrank the file from 450 MB to 325 MB, two query indexes were added and foreign-key checks are clean.
- La interfaz en chino muestra nombres de principios en chino: el índice de búsqueda añade un array
xzde nombres chinos (65.075 entradas; si falta, se recurre al inglés por segmentos). Buscar Excedrin en la interfaz china ahora muestra nombres como «对乙酰氨基酚 / 枸橼酸咖啡因»; el autocompletado está sincronizado. - Metadatos de página trilingües: title, description, OG, canonical y hreflang de Inicio / About / What's new / Confused / Warn se generan por idioma (en/es/zh); nuevas copias estáticas en
/es/y/zh/(head localizado, enlaces relativos). - What's new trilingüe: los resúmenes de las 21 versiones se muestran con bloques en/es desde
data/release_notes_i18n.json, marcados «traducción por IA; el texto chino es la referencia»; los enlaces relativos del CHANGELOG pasan a enlaces de GitHub y se eliminan los 404. - Fusiones de identidad entre mercados aplicadas: los lotes A+B fusionaron 141 principios (12.790 → 12.649), con más principios multi-mercado; VACUUM redujo la base de 450 MB a 325 MB, se añadieron dos índices de consulta y las comprobaciones de claves externas están limpias.
- 中文介面顯示中文成分名:檢索索引新增
xz中文名陣列(65,075 條,缺失逐段回退英文), 中文介面搜 Excedrin 會顯示「對乙醯胺基酚 / 枸櫞酸咖啡因」等中文名;自動完成同步。 - 頁面元資訊三語:首頁/About/What's new/Confused/Warn 的 title、description、OG、
canonical、hreflang 按 en/es/zh 生成;新增
/es/、/zh/靜態副本(head 本地化、連結相對)。 - What's new 三語:21 個版本要點按
data/release_notes_i18n.json渲染 en/es 塊, 標註「AI 翻譯,中文原文為準」;CHANGELOG 裡的相對連結改為 GitHub 連結,消除 404。 - 跨市場身分合併落地:batch A+B 共合併 141 個成分(12,790 → 12,649),多市場成分增加; DB VACUUM 450 MB → 325 MB,補 2 個查詢索引,外部索引鍵檢查清零。
v0.5.42026-10-29
- 新增厂家页:按生产厂家(MAH)生成约 7,000 个厂家页(≥5 个产品的厂家;规范化去重、
Special Order 等占位不建页),列出覆盖国家、产品/品牌、成分与来源;结果行厂家名可点,
+N展开的每个厂家都有链接。 - 索引与导航:厂家链接字段入索引/分片,品牌→品牌页、成分→药物/组合页、厂家→厂家页 三类目标彻底分开;无页目标显示为不可点文本,不回退到无关页面。
- New manufacturer pages: about 7,000 pages by marketing-authorisation holder (≥5 products; normalized dedupe; placeholders such as “Special Order” get no page), listing covered countries, products/brands, ingredients and sources; manufacturer names in result rows are clickable and every holder shown under
+Nis linked. - Index and navigation: a manufacturer-link field was added to the index/shards; brand→brand page, ingredient→drug/combination page and manufacturer→manufacturer page are now fully separated; targets without a page render as non-clickable text instead of falling back to unrelated pages.
- Nuevas páginas de fabricante: unas 7.000 páginas por titular de autorización de comercialización (≥5 productos; deduplicación normalizada; marcadores como «Special Order» no generan página), con países cubiertos, productos/marcas, principios y fuentes; el nombre del fabricante en las filas es clicable y cada titular del
+Ntiene enlace. - Índice y navegación: se añade el campo de enlace de fabricante al índice/fragmentos; marca→página de marca, principio→página de medicamento/combinación y fabricante→página de fabricante quedan totalmente separados; los destinos sin página se muestran como texto no clicable, sin recaer en páginas no relacionadas.
- 新增廠商頁:按生產廠商(MAH)生成約 7,000 個廠商頁(≥5 個產品的廠商;規範化去重、
Special Order 等佔位不建頁),列出覆蓋國家、產品/品牌、成分與來源;結果行廠商名可點,
+N展開的每個廠商都有連結。 - 索引與導航:廠商連結欄位入索引/分片,品牌→品牌頁、成分→藥物/組合頁、廠商→廠商頁 三類目標徹底分開;無頁目標顯示為不可點文本,不回退到無關頁面。
v0.5.32026-10-29
- 品牌/成分点击目标修复:点品牌只进品牌页(没有品牌页时显示为不可点文本), 不再回退到第一个成分的药物页;点成分时单方进药物页、复方进新的「组合页」。 解决 Excedrin Extra Strength 点品牌跳到 acetaminophen 页的错位。
- 新增品牌页 / 组合页:品牌页 29,140(含新增 11,270 个 ≥2 包装的 trade 轻量页); 组合页 9,339(按成分集合,覆盖 37,514 条复方条目;单页超 200 条截断提示)。 站点规模 30k → 约 51k 页,发布/构建时间相应变长。
- 索引新增
cu组合页字段,core.json 与分片同步;检索结果与「展开全部品牌」都按新规则跳转, 抽样 88 个结果链接 0 404。
- Brand/ingredient click targets fixed: clicking a brand opens only the brand page (non-clickable text when none) and no longer falls back to the first ingredient's drug page; clicking an ingredient opens the drug page for single-ingredient products and the new combination page for combos. This fixes the Excedrin Extra Strength brand link jumping to the acetaminophen page.
- New brand and combination pages: 29,140 brand pages (including 11,270 new lightweight trade pages for ≥2 packs) and 9,339 combination pages (grouped by ingredient set, covering 37,514 combination entries; pages show a notice when truncated at 200). The site grows from about 30k to about 51k pages, so build/publish take longer.
- New
cucombination-page field in the index, synced to core.json and shards; search results and “show all brands” follow the new rules; 88 sampled result links had 0 404s.
- Destinos de clic de marca/principio corregidos: pulsar una marca abre solo la página de marca (texto no clicable si no existe) y ya no recae en la página del primer principio; pulsar un principio abre la página del medicamento (monofármaco) o la nueva página de combinación. Se corrige así que la marca Excedrin Extra Strength saltara a la página de paracetamol.
- Nuevas páginas de marca y de combinación: 29.140 páginas de marca (incluidas 11.270 nuevas páginas ligeras de marcas con ≥2 envases) y 9.339 páginas de combinación (agrupadas por conjunto de principios, cubriendo 37.514 entradas combinadas; se avisa cuando se trunca a 200). El sitio pasa de unas 30 mil a unas 51 mil páginas, con builds/publicaciones más lentos.
- Nuevo campo
cude página de combinación en el índice, sincronizado con core.json y los fragmentos; resultados de búsqueda y «mostrar todas las marcas» siguen las nuevas reglas; 88 enlaces de resultados muestreados: 0 404.
- 品牌/成分點擊目標修復:點品牌只進品牌頁(沒有品牌頁時顯示為不可點文本), 不再回退到第一個成分的藥物頁;點成分時單方進藥物頁、複方進新的「組合頁」。 解決 Excedrin Extra Strength 點品牌跳到 acetaminophen 頁的錯位。
- 新增品牌頁 / 組合頁:品牌頁 29,140(含新增 11,270 個 ≥2 包裝的 trade 輕量頁); 組合頁 9,339(按成分集合,覆蓋 37,514 條複方條目;單頁超 200 條截斷提示)。 站點規模 30k → 約 51k 頁,發布/構建時間相應變長。
- 索引新增
cu組合頁欄位,core.json 與分片同步;檢索結果與「展開全部品牌」都按新規則跳轉, 抽樣 88 個結果連結 0 404。
v0.5.22026-10-29
- 修复 /warn 与成分页警示在中文/西语下空白:语言块显隐把匹配项设为
display:'', 回落到 CSS 的display:none,导致三块全隐藏;改为显式display:block。 中文/西语现在能正常看到 40 条警示与成分页摘要,英文界面不变。
- Fix: /warn and ingredient-page warnings were blank in Chinese/Spanish — the language block set matched items to
display:'', which fell back to CSSdisplay:noneand hid all three blocks; it is now set explicitly todisplay:block. Chinese/Spanish show the 40 warnings and ingredient-page summaries again; the English UI is unchanged.
- Corrección: los avisos de /warn y de la página de principio activo aparecían en blanco en chino/español — el bloque de idioma asignaba
display:'', que recaía en el CSSdisplay:noney ocultaba los tres bloques; ahora se usadisplay:blockexplícito. Chino/español vuelven a mostrar los 40 avisos y los resúmenes de la página de principio activo; la interfaz en inglés no cambia.
- 修復 /warn 與成分頁警語在中文/西語下空白:語言塊顯隱把匹配項設為
display:'', 回落到 CSS 的display:none,導致三塊全隱藏;改為顯式display:block。 中文/西語現在能正常看到 40 條警語與成分頁摘要,英文介面不變。
v0.5.12026-10-27
- 首搜体积 3.78 MB → 约 254 KB(gz):检索索引改为「manifest + 分片」,输入后只拉
当前首字符所在的 1 个分片(
data/idx/shard-*.json);完整 core 只在后台补全/兜底时加载。?legacy=1仍可回退到整包索引;最终结果与 v0.5.0 一致。 - 西班牙复方补全:CIMA 里 208 条
multicomponente注册原先被整条跳过,本轮解析principiosActivos后恢复 102 个产品 / 932 个成分行(西语产品 25,293 → 25,395; 严格模式,只映射到库内已有成分)。 - /warn 西语正文:41 条警示补上
title_es/body_es,西语页面不再回退英文。 - 搜索评测集扩容:三语测试从 72 例扩到 300+ 例(错拼 / 拼音 / 简繁 / 复方 / 盐型 / 零结果), 作为后续搜索改造的固定门槛。
- First-search payload 3.78 MB → about 254 KB (gz): the search index is now a manifest plus shards, so only the shard for the first character is fetched on input; the full core loads in the background as a fallback.
?legacy=1still falls back to the single package; results match v0.5.0. - Spanish combination products completed: 208 CIMA
multicomponenteregistrations used to be skipped entirely; parsingprincipiosActivosrecovered 102 products / 932 ingredient rows (Spanish products 25,293 → 25,395; strict mode, existing ingredients only). - /warn Spanish body text:
title_es/body_esadded to 41 warnings; the Spanish page no longer falls back to English. - Search evaluation set expanded: trilingual tests grew from 72 to 300+ cases (typos, pinyin, simplified/traditional, combinations, salt forms, zero-result), as a fixed gate for future search changes.
- Carga de la primera búsqueda: 3,78 MB → unos 254 KB (gz): el índice ahora es un manifest con fragmentos, así que al escribir solo se baja el fragmento del primer carácter; el core completo se carga en segundo plano como respaldo.
?legacy=1vuelve al paquete único; los resultados coinciden con v0.5.0. - Combinaciones españolas completadas: 208 registros
multicomponentede CIMA se omitían por completo; al parsearprincipiosActivosse recuperaron 102 productos / 932 filas de componentes (productos en español 25.293 → 25.395; modo estricto, solo principios ya existentes). - Texto en español de /warn: se añadieron
title_es/body_esa 41 avisos; la página en español ya no recurre al inglés. - Set de evaluación de búsqueda ampliado: las pruebas trilingües pasan de 72 a más de 300 casos (erratas, pinyin, simplificado/tradicional, combinaciones, sales, resultado vacío), como umbral fijo para futuras mejoras de búsqueda.
- 首搜體積 3.78 MB → 約 254 KB(gz):檢索索引改為「manifest + 分片」,輸入後只拉
當前首字元所在的 1 個分片(
data/idx/shard-*.json);完整 core 只在背景補齊/兜底時載入。?legacy=1仍可回退到整包索引;最終結果與 v0.5.0 一致。 - 西班牙複方補齊:CIMA 裡 208 條
multicomponente註冊原先被整條跳過,本輪解析principiosActivos後恢復 102 個產品 / 932 個成分行(西語產品 25,293 → 25,395; 嚴格模式,只對應到庫內已有成分)。 - /warn 西語正文:41 條警語補上
title_es/body_es,西語頁面不再回退英文。 - 搜尋評測集擴容:三語測試從 72 例擴到 300+ 例(錯拼 / 拼音 / 簡繁 / 複方 / 鹽型 / 零結果), 作為後續搜尋改造的固定門檻。
v0.5.02026-10-27
- 搜索增强:在原有索引上派生匹配层(精确 / 前缀 / 中文 bigram / 拉丁 trigram + 编辑距离),
新增中文拼音与首字母、错拼容错、2 字短片段;难例 24/28 → 28/28,匹配 P50 94 ms → 1 ms,
首搜体积不变,
?legacy=1仍可回退旧逻辑。 - 界面 P0:国家选择器改成「看这个药在 X 叫什么」,该国没有时明确提示而不是静默回退; 结果顶部有解析条(名称/剂量/剂型/匹配方式)、输入自动完成、结果按成分聚合/品牌折叠/加载更多; 手机端表格转卡片、导航与页脚折行。
- 三语 P1:About / What's new / Confused / 404 全页中英西三语;About 接入逐源许可与署名 (WHO INN CC BY-NC-SA、ChEMBL CC BY-SA、datos.gob.mx CC BY 4.0、TGA © Commonwealth, CN 明确「未找到再发布许可」),并链 docs/许可清单.md。
- /warn 警示页:新增「同名不同药 / 不可互换」页面与成分页提示,只展示经 AI 核验来源的
dose_warning(不给用药建议)。 - 数据补全:ATC 覆盖改为双口径(全部 47.5%,药物实体 67.0%,ChEMBL 补 192 个);
英国 dm+d 恢复盐型 15,083 个组件(2.0% → 25.0%);墨西哥浓度 34.1% → 35.2%(per_volume +125);
WHO INN 西语合并 +3;中文互联网俗名 1,034 条入
drug_term,同时清除毒品/娱乐性用药黑话 337 行。 - 数据层 v0.4 上页面:
salt_code/strength_basis/dose_warning迁移到真实库, 盐型规范化 1,555 个 variant。
- Search upgrade: a matching layer on top of the index (exact / prefix / Chinese bigram / Latin trigram + edit distance), plus pinyin and initials, typo tolerance and 2-character short fragments; hard cases 24/28 → 28/28, match P50 94 ms → 1 ms, same first-search size,
?legacy=1still available. - UI P0: the country selector now answers "what is this drug called in X?" and says so explicitly when a market has no record instead of silently falling back; results gain a parse bar (name/dose/form/match type), autocomplete, grouping by ingredient, brand folding and load-more; mobile tables become cards and nav/footer wrap.
- Trilingual P1: About / What's new / Confused / 404 pages are fully en/zh/es; About lists per-source licences and attribution (WHO INN CC BY-NC-SA, ChEMBL CC BY-SA, datos.gob.mx CC BY 4.0, TGA © Commonwealth; China explicitly "no re-publication licence found") and links docs/许可清单.md.
- /warn page: new "same name, different drug / not interchangeable" page plus ingredient-page notices, showing only AI-verified
dose_warningsources (no medical advice). - Data completion: ATC coverage reported two ways (47.5% overall, 67.0% of drug entities, ChEMBL added 192); UK dm+d salt forms recovered for 15,083 components (2.0% → 25.0%); Mexico strength 34.1% → 35.2% (per_volume +125); WHO INN Spanish merges +3; 1,034 Chinese internet slang names added to
drug_termand 337 drug/recreational slang rows removed. - Data layer v0.4 on pages:
salt_code/strength_basis/dose_warningmigrated to the production DB; salt forms normalized for 1,555 variants.
- Mejora de búsqueda: capa de coincidencia sobre el índice (exacta / prefijo / bigrama chino / trigrama latino + distancia de edición), más pinyin e iniciales, tolerancia a erratas y fragmentos de 2 caracteres; casos difíciles 24/28 → 28/28, coincidencia P50 94 ms → 1 ms, mismo tamaño de primera búsqueda,
?legacy=1disponible. - Interfaz P0: el selector de país ahora responde "¿cómo se llama este medicamento en X?" y lo dice si un mercado no tiene registro, sin volver en silencio; los resultados tienen barra de análisis (nombre/dosis/forma/tipo de coincidencia), autocompletado, agrupación por principio, plegado de marcas y cargar más; en móvil las tablas pasan a tarjetas y la navegación/pie se ajustan.
- Trilingüe P1: About / What's new / Confused / 404 totalmente en en/zh/es; About incluye licencias y atribución por fuente (WHO INN CC BY-NC-SA, ChEMBL CC BY-SA, datos.gob.mx CC BY 4.0, TGA © Commonwealth; China indica explícitamente "no se encontró licencia de republicación") y enlaza docs/许可清单.md.
- Página /warn: nueva página "mismo nombre, otro medicamento / no intercambiables" y avisos en la página de principio, mostrando solo
dose_warningcon fuente verificada por IA (sin consejo médico). - Datos completados: cobertura ATC con dos medidas (47,5% total, 67,0% de entidades, ChEMBL +192); dm+d del Reino Unido recuperó sales en 15.083 componentes (2,0% → 25,0%); concentración en México 34,1% → 35,2% (per_volume +125); WHO INN fusiones en español +3; 1.034 nombres coloquiales chinos añadidos a
drug_termy 337 filas de jerga de drogas/ recreativa eliminadas. - Capa de datos v0.4 en páginas:
salt_code/strength_basis/dose_warningmigrados a la base de producción; formas de sal normalizadas en 1.555 variantes.
- 搜尋增強:在原有索引上派生匹配層(精確 / 字首 / 中文 bigram / 拉丁 trigram + 編輯距離),
新增中文拼音與首字母、錯拼容錯、2 字短片段;難例 24/28 → 28/28,匹配 P50 94 ms → 1 ms,
首搜體積不變,
?legacy=1仍可回退舊邏輯。 - 介面 P0:國家選擇器改成「看這個藥在 X 叫什麼」,該國沒有時明確提示而不是靜默回退; 結果頂部有解析條(名稱/劑量/劑型/匹配方式)、輸入自動完成、結果按成分聚合/品牌摺疊/載入更多; 手機端表格轉卡片、導航與頁尾折行。
- 三語 P1:About / What's new / Confused / 404 全頁中英西三語;About 接入逐源許可與署名 (WHO INN CC BY-NC-SA、ChEMBL CC BY-SA、datos.gob.mx CC BY 4.0、TGA © Commonwealth, CN 明確「未找到再發布許可」),並鏈 docs/許可清單.md。
- /warn 警語頁:新增「同名不同藥 / 不可互換」頁面與成分頁提示,只展示經 AI 核驗來源的
dose_warning(不給用藥建議)。 - 資料補齊:ATC 覆蓋改為雙口徑(全部 47.5%,藥物實體 67.0%,ChEMBL 補 192 個);
英國 dm+d 恢復鹽型 15,083 個元件(2.0% → 25.0%);墨西哥濃度 34.1% → 35.2%(per_volume +125);
WHO INN 西語合併 +3;中文網際網路俗名 1,034 條入
drug_term,同時清除毒品/娛樂性用藥黑話 337 行。 - 資料層 v0.4 上頁面:
salt_code/strength_basis/dose_warning遷移到真實庫, 鹽型規範化 1,555 個 variant。
v0.4.12026-10-26
- 访问统计上线(只后台看,不公开):接入 GoatCounter(cookieless、不记录个人数据、 不用于广告)。后台可看 PV / 独立访客趋势、来源网站、国家/地区、浏览器与屏幕尺寸; 页面不显示任何计数。
- 站内行为事件(匿名):记录搜索词(
search-<词>)、结果点击(click-result)、 报告入口(click-report)、更新日志(click-whatsnew)、国家切换(country-XX), 用来改进检索。 - 隐私说明:About 页新增中/英/西三语「访问统计」段落并链 GoatCounter 隐私政策;
未配置
GOATCOUNTER_CODE时不注入统计脚本,站点行为不变(配置见docs/访问统计.md)。
- Visit analytics live (admin-only, not public): GoatCounter integrated (cookieless, no personal data, not used for ads). Admins see PV / unique visitors, referrers, countries, browsers and screen sizes; no counters are shown on pages.
- Anonymous on-site events: records search terms (
search-<term>), result clicks (click-result), report link (click-report), what's-new (click-whatsnew) and country switches (country-XX) to improve search. - Privacy note: About page gains a trilingual "visit analytics" section linking GoatCounter's privacy policy; without
GOATCOUNTER_CODEno script is injected and the site behaves as before (seedocs/访问统计.md).
- Analítica de visitas activa (solo administración, no pública): integración con GoatCounter (sin cookies, sin datos personales, no para publicidad). La administración ve PV/visitantes únicos, referentes, países, navegadores y tamaños de pantalla; las páginas no muestran contadores.
- Eventos anónimos en el sitio: registra términos de búsqueda (
search-<término>), clics en resultados (click-result), enlace de reporte (click-report), novedades (click-whatsnew) y cambios de país (country-XX) para mejorar la búsqueda. - Nota de privacidad: About añade una sección trilingüe de "analítica de visitas" con enlace a la política de privacidad de GoatCounter; sin
GOATCOUNTER_CODEno se inyecta script y el sitio no cambia (verdocs/访问统计.md).
- 訪問統計上線(只後臺看,不公開):接入 GoatCounter(cookieless、不記錄個人資料、 不用於廣告)。後臺可看 PV / 獨立訪客趨勢、來源網站、國家/地區、瀏覽器與螢幕尺寸; 頁面不顯示任何計數。
- 站內行為事件(匿名):記錄搜尋詞(
search-<詞>)、結果點擊(click-result)、 報告入口(click-report)、更新日誌(click-whatsnew)、國家切換(country-XX), 用來改進檢索。 - 隱私說明:About 頁新增中/英/西三語「訪問統計」段落並鏈 GoatCounter 隱私政策;
未配置
GOATCOUNTER_CODE時不注入統計指令碼,站點行為不變(配置見docs/訪問統計.md)。
v0.4.02026-10-26
- 中文 / 西语名称身份合并:350 个「只有中文名」的 CN 专属成分并入英文 INN (3,355 个 CN 产品,占 CN 产品 23.1%);139 个 ES/MX 西语成分并入英文 INN (621 个产品,其中 131 条让西语产品连上英/加/澳/美市场的同一成分)。 中 / 英 / 西三种语言的同一成分现在落到同一身份卡与国家视图。
- 墨西哥浓度 28.7% → 34.1%:人工审核 963 条回填候选后,只写严格规则 PASS 的 584 条(3,707 / 10,878 有浓度);每条都带 CC-BY-4.0 数据集的出处。
- 首搜体积 6.06 MB → 约 3.86 MB:索引改为列式 + 字典编码(34.8 MB → 15.3 MB raw,
gzip −36.6%),解码后的检索结果与旧版逐字节一致,
?legacy=1可一键回退。 - 三语界面 P0 修复:APP / 药品页受控词、加载与错误提示、语言切换持久化、hreflang
全部三语化;修了从
/es/、/zh/直入后点导航丢语言的问题。 - 数据层 v0.4 就绪(未上页面):schema 增加
salt_code/strength_basis/dose_warning表,盐名规范化与 41 条人工策展预警种子已备好;页面接线下一版做。 - 新增报告:三语检索测试(72 例 / 354 条查询)、MX 审核、CN/ES 映射、
索引 P1、D2/D3 数据层、i18n 审计与 P0 修复,均在
reports/。
- Chinese / Spanish name identity merged: 350 CN-only substances that had only a Chinese name merged into English INNs (3,355 CN products, 23.1% of CN products); 139 ES/MX Spanish substances merged into English INNs (621 products, 131 of them now link Spanish products to the same ingredient in UK/CA/AU/US markets). The same ingredient now lands on one identity card and country view across zh/en/es.
- Mexico strength 28.7% → 34.1%: after reviewing 963 backfill candidates, only 584 strict-rule PASS rows were written (3,707 / 10,878 with strength), each citing the CC-BY-4.0 dataset source.
- First-search payload 6.06 MB → about 3.86 MB: index moved to columnar + dictionary encoding (34.8 MB → 15.3 MB raw, gzip −36.6%); decoded results are byte-identical to the old version,
?legacy=1is a one-click fallback. - Trilingual UI P0 fixes: app/drug-page controlled terms, loading and error messages, language-switch persistence and hreflang all trilingual; fixed losing the language after entering directly via
/es/or/zh/and then using navigation. - Data layer v0.4 ready (not yet on pages): schema adds
salt_code/strength_basis/dose_warning; salt-name normalization and 41 curated warning seeds ready; page wiring comes next version. - New reports: trilingual search tests (72 cases / 354 queries), MX review, CN/ES mapping, index P1, D2/D3 data layer, i18n audit and P0 fixes — all under
reports/.
- Identidad de nombres chino/español fusionada: 350 principios exclusivos de CN con solo nombre chino se fusionaron en INN ingleses (3.355 productos CN, 23,1% de los productos CN); 139 principios españoles ES/MX se fusionaron en INN ingleses (621 productos; 131 enlazan productos en español con el mismo principio en mercados GB/CA/AU/US). El mismo principio ahora cae en una sola ficha y vista de país en zh/en/es.
- Concentración en México 28,7% → 34,1%: tras revisar 963 candidatos de relleno, solo se escribieron 584 filas con regla estricta PASS (3.707 / 10.878 con concentración), cada una citando la fuente del conjunto CC-BY-4.0.
- Carga de la primera búsqueda 6,06 MB → unos 3,86 MB: índice columnar + codificación de diccionario (34,8 MB → 15,3 MB en bruto, gzip −36,6%); los resultados decodificados son idénticos byte a byte a la versión anterior,
?legacy=1permite volver con un clic. - Correcciones P0 de interfaz trilingüe: términos controlados de la app y la página de medicamento, mensajes de carga y error, persistencia del idioma y hreflang en los tres idiomas; corregido perder el idioma al entrar directamente por
/es/o/zh/y luego navegar. - Capa de datos v0.4 lista (aún no en páginas): el esquema añade
salt_code/strength_basis/dose_warning; normalización de nombres de sal y 41 semillas de avisos curadas listas; la conexión con las páginas llega en la próxima versión. - Nuevos informes: pruebas trilingües de búsqueda (72 casos / 354 consultas), revisión MX, mapeo CN/ES, índice P1, capa de datos D2/D3, auditoría i18n y correcciones P0, todos en
reports/.
- 中文 / 西語名稱身分合併:350 個「只有中文名」的 CN 專屬成分併入英文 INN (3,355 個 CN 產品,佔 CN 產品 23.1%);139 個 ES/MX 西語成分併入英文 INN (621 個產品,其中 131 條讓西語產品連上英/加/澳/美市場的同一成分)。 中 / 英 / 西三種語言的同一成分現在落到同一身分卡與國家檢視。
- 墨西哥濃度 28.7% → 34.1%:人工稽核 963 條回填候選後,只寫嚴格規則 PASS 的 584 條(3,707 / 10,878 有濃度);每條都帶 CC-BY-4.0 資料集的出處。
- 首搜體積 6.06 MB → 約 3.86 MB:索引改為列式 + 字典編碼(34.8 MB → 15.3 MB raw,
gzip −36.6%),解碼後的檢索結果與舊版逐位元組一致,
?legacy=1可一鍵回退。 - 三語介面 P0 修復:APP / 藥品頁受控詞、載入與錯誤提示、語言切換持久化、hreflang
全部三語化;修了從
/es/、/zh/直入後點導航丟語言的問題。 - 資料層 v0.4 就緒(未上頁面):schema 增加
salt_code/strength_basis/dose_warning表,鹽名規範化與 41 條人工策展預警種子已備好;頁面接線下一版做。 - 新增報告:三語檢索測試(72 例 / 354 條查詢)、MX 稽核、CN/ES 對應、
索引 P1、D2/D3 資料層、i18n 審計與 P0 修復,均在
reports/。
v0.3.52026-10-26
- 修:中文 GLP-1 名字搜不到海外产品。中文通用名「替尔泊肽 / 司美格鲁肽 / 利拉鲁肽 /
度拉糖肽 / 艾塞那肽 / 利司那肽」原先各自落成 CN 专属成分(如
cn-ef1fa3539d), 搜「替尔泊肽」只出中国的注射液;现在并入英文 INN(tirzepatide / semaglutide …), CN 产品出现在成分身份卡与「美国」等国家视图里——搜「替尔泊肽」选美国会给出 Mounjaro / Zepbound。这 6 个中文名也加进了 CN→EN 映射表,重跑中国入库不会再拆开。 - 数据:合并 6 个重复成分(13,288 → 13,282 个成分;46 个组件改挂), ATC 覆盖 47.7%(6,339 / 13,282)。
- Fix: Chinese GLP-1 names could not find overseas products. The Chinese generic names 替尔泊肽 / 司美格鲁肽 / 利拉鲁肽 / 度拉糖肽 / 艾塞那肽 / 利司那肽 each used to become CN-only substances (e.g.
cn-ef1fa3539d), so searching 替尔泊肽 returned only Chinese injections; they now map to English INNs (tirzepatide / semaglutide …), and CN products appear on the ingredient identity card and country views such as the US — searching 替尔泊肽 and choosing the US now returns Mounjaro / Zepbound. These 6 names were added to the CN→EN map so a China re-ingest will not split them again. - Data: 6 duplicate substances merged (13,288 → 13,282 substances; 46 components re-pointed); ATC coverage 47.7% (6,339 / 13,282).
- Corrección: los nombres chinos de GLP-1 no encontraban productos en el extranjero. Los nombres genéricos chinos 替尔泊肽 / 司美格鲁肽 / 利拉鲁肽 / 度拉糖肽 / 艾塞那肽 / 利司那肽 creaban principios exclusivos de CN (p. ej.
cn-ef1fa3539d), así que buscar 替尔泊肽 solo devolvía inyectables chinos; ahora se mapean a INN ingleses (tirzepatida / semaglutida …) y los productos CN aparecen en la ficha del principio y en vistas de país como EE. UU. — buscar 替尔泊肽 y elegir EE. UU. devuelve Mounjaro / Zepbound. Los 6 nombres se añadieron al mapa CN→EN para que una recarga de China no los vuelva a separar. - Datos: 6 principios duplicados fusionados (13.288 → 13.282 principios; 46 componentes reasignados); cobertura ATC 47,7% (6.339 / 13.282).
- 修:中文 GLP-1 名字搜不到海外產品。中文通用名「替爾泊肽 / 司美格魯肽 / 利拉魯肽 /
度拉糖肽 / 艾塞那肽 / 利司那肽」原先各自落成 CN 專屬成分(如
cn-ef1fa3539d), 搜「替爾泊肽」只出中國的注射液;現在併入英文 INN(tirzepatide / semaglutide …), CN 產品出現在成分身分卡與「美國」等國家檢視裡——搜「替爾泊肽」選美國會給出 Mounjaro / Zepbound。這 6 箇中文名也加進了 CN→EN 對應表,重跑中國入庫不會再拆開。 - 資料:合併 6 個重複成分(13,288 → 13,282 個成分;46 個元件改掛), ATC 覆蓋 47.7%(6,339 / 13,282)。
v0.3.42026-10-26
- 首屏从约 6.08 MB 降到约 17 KB:检索索引改为懒加载——页面打开只下 HTML/CSS/JS;
首次输入、聚焦搜索框、点示例或带
?q=深链时才拉约 6 MB 索引,并显示中英提示。 加载后的结果与 v0.3.3 逐字节一致(18 个查询 + 3 个国家视图对拍)。?legacy=1一键回到旧行为。 - ATC 覆盖 43.3% → 47.7%:用 Wikidata P267(CC0,About 页已署名)给 594 个原来没有 ATC 的成分补上编码与名称;多码歧义 127 个跳过。
- 新增调研/实现报告:
reports/index-perf-plan.md(拆片/压缩路线)、reports/lazyload-implementation.md、reports/data-depth-20261026.md、reports/dose-mapping-plan.md、reports/mx-atc-implementation.md。 MX 浓度回填 ETL 已就绪(dry-run +963 产品,28.7%→37.6%),等 50 条人工抽核后再启用。
- First screen from about 6.08 MB down to about 17 KB: the index now lazy-loads — opening the page fetches only HTML/CSS/JS; the ~6 MB index is fetched on first input, search-box focus, example click or a
?q=deep link, with a bilingual hint. Results after loading are byte-identical to v0.3.3 (18 queries + 3 country views compared);?legacy=1restores the old behaviour. - ATC coverage 43.3% → 47.7%: using Wikidata P267 (CC0, credited on About) to add codes and names to 594 ingredients that had none; 127 multi-code ambiguities skipped.
- New research/implementation reports:
reports/index-perf-plan.md(sharding and compression),reports/lazyload-implementation.md,reports/data-depth-20261026.md,reports/dose-mapping-plan.md,reports/mx-atc-implementation.md. The MX strength backfill ETL is ready (dry-run +963 products, 28.7% → 37.6%) pending 50 manual spot checks.
- Primera pantalla de unos 6,08 MB a unos 17 KB: el índice ahora es de carga perezosa — abrir la página solo descarga HTML/CSS/JS; el índice de ~6 MB se descarga al primer texto, al enfocar el buscador, al pulsar un ejemplo o con un enlace profundo
?q=, con aviso bilingüe. Los resultados tras cargar son idénticos byte a byte a v0.3.3 (18 consultas + 3 vistas de país comparadas);?legacy=1restaura el comportamiento antiguo. - Cobertura ATC 43,3% → 47,7%: con Wikidata P267 (CC0, acreditado en About) se añadieron códigos y nombres a 594 principios que no tenían; 127 ambigüedades de múltiples códigos omitidas.
- Nuevos informes de investigación/implementación:
reports/index-perf-plan.md(fragmentación y compresión),reports/lazyload-implementation.md,reports/data-depth-20261026.md,reports/dose-mapping-plan.md,reports/mx-atc-implementation.md. El ETL de relleno de concentración MX está listo (dry-run +963 productos, 28,7% → 37,6%) pendiente de 50 comprobaciones manuales.
- 首屏從約 6.08 MB 降到約 17 KB:檢索索引改為懶載入——頁面開啟只下 HTML/CSS/JS;
首次輸入、聚焦搜尋框、點範例或帶
?q=深鏈時才拉約 6 MB 索引,並顯示中英提示。 載入後的結果與 v0.3.3 逐位元組一致(18 個查詢 + 3 個國家檢視對拍)。?legacy=1一鍵回到舊行為。 - ATC 覆蓋 43.3% → 47.7%:用 Wikidata P267(CC0,About 頁已署名)給 594 個原來沒有 ATC 的成分補上編碼與名稱;多碼歧義 127 個跳過。
- 新增調研/實現報告:
reports/index-perf-plan.md(拆片/壓縮路線)、reports/lazyload-implementation.md、reports/data-depth-20261026.md、reports/dose-mapping-plan.md、reports/mx-atc-implementation.md。 MX 濃度回填 ETL 已就緒(dry-run +963 產品,28.7%→37.6%),等 50 條人工抽核後再啟用。
v0.3.32026-10-26
- 上线收尾:新增
404.html、robots.txt、sitemap.xml(全站约 3 万个页面)和.nojekyll。 404 页在任意子路径下都按绝对地址回站内;sitemap 给搜索引擎全量入口。 - 仓库结构:
main只放源码,site/dist不再进版本库(构建产物只走gh-pages); v0.3.0–v0.3.2 已补 tag / GitHub Release,线上页脚、About 与仓库版本号对齐。 - 口径统一:README / 方案文档 / DEPLOY 的计数改成当前库——CN 146,347、AU 11,890
(PBS 5,452 + TGA CMI 4,730 + ARTG 明细 1,559 + 补全 144 + 人工核对 5)、
drug_term365、成分页 12,870 / 名字页 17,868、索引 34.8 MB。
- Launch wrap-up: added
404.html,robots.txt,sitemap.xml(about 30k pages site-wide) and.nojekyll. The 404 page returns to the site by absolute URL from any sub-path; the sitemap gives search engines a full entry point. - Repository layout:
mainholds source only;site/distis no longer committed (build artifacts go only togh-pages); v0.3.0–v0.3.2 got tags / GitHub Releases, with footer, About and repo version aligned. - Counts unified: README / design docs / DEPLOY updated to the current DB — CN 146,347; AU 11,890 (PBS 5,452 + TGA CMI 4,730 + ARTG details 1,559 + enrichment 144 + manual 5);
drug_term365; 12,870 ingredient pages / 17,868 name pages; index 34.8 MB.
- Cierre del lanzamiento: se añadieron
404.html,robots.txt,sitemap.xml(unas 30.000 páginas en total) y.nojekyll. La página 404 vuelve al sitio por URL absoluta desde cualquier subruta; el sitemap da a los buscadores una entrada completa. - Estructura del repositorio:
mainsolo contiene código;site/distya no se versiona (los artefactos van solo agh-pages); v0.3.0–v0.3.2 tienen tag / GitHub Release, con pie, About y versión del repositorio alineados. - Cifras unificadas: README / documentos de diseño / DEPLOY actualizados a la base actual — CN 146.347; AU 11.890 (PBS 5.452 + TGA CMI 4.730 + detalles ARTG 1.559 + enriquecimiento 144 + manual 5);
drug_term365; 12.870 páginas de principio / 17.868 páginas de nombre; índice 34,8 MB.
- 上線收尾:新增
404.html、robots.txt、sitemap.xml(全站約 3 萬個頁面)和.nojekyll。 404 頁在任意子路徑下都按絕對地址回站內;sitemap 給搜尋引擎全量入口。 - 倉庫結構:
main只放原始碼,site/dist不再進版本庫(構建產物只走gh-pages); v0.3.0–v0.3.2 已補 tag / GitHub Release,線上頁尾、About 與倉庫版本號對齊。 - 口徑統一:README / 方案文件 / DEPLOY 的計數改成當前庫——CN 146,347、AU 11,890
(PBS 5,452 + TGA CMI 4,730 + ARTG 明細 1,559 + 補齊 144 + 人工核對 5)、
drug_term365、成分頁 12,870 / 名字頁 17,868、索引 34.8 MB。
v0.3.22026-10-26
- 修:搜索「扑热息痛」时,acetaminophen 的通用名条目把复方产品(含 6 个成分的 夜用感冒药)并进了同一条目,页面显示成「一个六成分产品 + 10/80/160/325 mg」, 却只标「释放机制不同」。现在复方的成分名行不再并进单方通用名条目;通用名条目 直接链到成分页,不再生成误导性的同名页。
- 加:复方产品在检索结果里单独标「复方 / Combination」,不再只靠碰撞等级判断。
- Fix: searching 扑热息痛 merged combination products (a six-ingredient nighttime cold medicine) into the acetaminophen generic entry, showing "one six-ingredient product + 10/80/160/325 mg" while only flagging "different release". Combination ingredient rows no longer merge into single-ingredient generic entries; generic entries now link straight to the ingredient page and no longer create misleading same-name pages.
- Added: combination products are labelled "复方 / Combination" in search results rather than relying only on collision level.
- Corrección: al buscar 扑热息痛, las combinaciones (un antigripal nocturno de seis principios) se fusionaban en la entrada genérica de paracetamol y se mostraba "un producto de seis principios + 10/80/160/325 mg" marcando solo "liberación diferente". Las filas de principios combinados ya no se fusionan en entradas genéricas de un solo principio; las entradas genéricas enlazan directamente a la página del principio y dejan de crear páginas homónimas engañosas.
- Añadido: los productos combinados se etiquetan "复方 / Combination" en los resultados de búsqueda, no solo por nivel de colisión.
- 修:搜尋「對乙醯胺基酚」時,acetaminophen 的通用名條目把複方產品(含 6 個成分的 夜用感冒藥)並進了同一條目,頁面顯示成「一個六成分產品 + 10/80/160/325 mg」, 卻只標「釋放機制不同」。現在複方的成分名行不再並進單方通用名條目;通用名條目 直接鏈到成分頁,不再生成誤導性的同名頁。
- 加:複方產品在檢索結果裡單獨標「複方 / Combination」,不再只靠碰撞等級判斷。
v0.3.12026-10-26
- 加拿大入库:第七个市场。Health Canada 的 DPD(Drug Product Database)全量, 一行 = 一个 DIN,43,847 个 Human 产品(active 14,519 / discontinued 29,323 / withdrawn 5),有强度的 99.8%(43,775)。CPIC 意义上的 OTC 与处方药都在里面。
- 取数路径:官方
allfiles.zip挂在www.canada.ca/content/dam/…,程序化下载恒超时 (HEAD/GET、浏览器 UA 都一样),DPD 网页查询又是服务端分页、getNextPage要绑定会话 (直接请求 500)。改用同一台主机上的公开 DPD Open API(9 个端点、全量 JSON、无需 key),etl/fetch_ca_dpd.py抓、etl/ingest_ca_dpd.py入库,缓存落data/raw/ca/dpd/。 - 加拿大成分名映射:
ACETYLSALICYLIC ACID→ aspirin、ADRENALINE→ epinephrine、GLYCERYL TRINITRATE→ nitroglycerin;括号里的盐记成 variant。acetylsalicylic acid 与 aspirin 在成分卡上合并,加拿大不再自成一套。 - 复方剂量折算:DPD 的「每 4 片 1 g」「每 30 mL 355 mg」换算成每片 / 每 mL。
- 排除:顺势疗法(强度是 CH/DH/X 稀释度)5,571、兽药/放射药/消毒剂 7,340、 复合维生素类(成分 >8)1,169;另外剔除 DPD 误登记成有效成分的辅料(HYPROMELLOSE 等), 否则一种角膜保存液会把 4 万个产品挂到 hypromellose 名下。
- 名字键与显示名分开:DPD 里大量条目名字本身就是产品描述(
15 SPF FPS PREMIUM SUNSCREEN),页面显示原样、检索键再剥一层剂型词;以数字/符号开头、或带残缺前缀的名字 (222 AF EXTRA STRENGTH、+ SINUS COLD FORMULA)在检索结果和成分页里降权。 - 碰撞视图修正:
severe只留给「两边都是单方/简单复方」的情形。两类不再算 severe: (1) 名字本身写着配方(0.9% SODIUM CHLORIDE IRRIGATION、电解质输液的百分比配方名); (2) 一方是复方(≥3 个成分,如Pain Relief Patch、肠外营养液Olimel、顺势疗法复方)。 顺手把成分表 join 到collision里,去掉了COUNT(DISTINCT)的临时 B 树排序 (视图像数从 95,775 涨到 12.2 万,再慢下去建站会明显变慢)。severe 名字 36,579 → 15,312。 - 检索:用户没写释放机制时,速释排在缓释之前(Tylenol 里 8 HR / 12 HOUR 会落到后面)。
- 建站 12,339 张成分页 / 19,220 张名字页;索引 125,667 个键,其中 25,223 个带 CA、 22,172 个只在加拿大出现。
- 许可:DPD 条款允许非商业再使用,须注明来源(About 页已写 © His Majesty the King in Right of Canada)。
- Canada added: the seventh market. Full Health Canada DPD (Drug Product Database): one row = one DIN, 43,847 human products (active 14,519 / discontinued 29,323 / withdrawn 5), 99.8% with strength (43,775); includes OTC and prescription drugs.
- Ingestion path: the official
allfiles.ziponwww.canada.ca/content/dam/…always times out programmatically (HEAD/GET, browser UA alike), and the DPD web query is server-paged with session-boundgetNextPage(500 on direct requests). Switched to the public DPD Open API on the same host (9 endpoints, full JSON, no key);etl/fetch_ca_dpd.pyfetches,etl/ingest_ca_dpd.pyingests, cache underdata/raw/ca/dpd/. - Canadian ingredient name mapping:
ACETYLSALICYLIC ACID→ aspirin,ADRENALINE→ epinephrine,GLYCERYL TRINITRATE→ nitroglycerin; salts in parentheses become variants. acetylsalicylic acid and aspirin merge on the ingredient card; Canada no longer stands apart. - Combination dose conversion: DPD's "1 g per 4 tablets" / "355 mg per 30 mL" converted to per-tablet / per-mL.
- Excluded: homeopathy (CH/DH/X dilutions) 5,571; veterinary/radiopharma/disinfectant 7,340; multivitamins (>8 ingredients) 1,169; also DPD excipients wrongly registered as actives (HYPROMELLOSE etc.), otherwise one corneal preservative solution would attach 40k products to hypromellose.
- Name keys separated from display names: many DPD names are product descriptions (
15 SPF FPS PREMIUM SUNSCREEN); pages show them as-is while search keys strip another layer of form words; names starting with digits/symbols or with broken prefixes (222 AF EXTRA STRENGTH,+ SINUS COLD FORMULA) are down-ranked in results and ingredient pages. - Collision view fix:
severeis kept only when both sides are single-ingredient or simple combinations. Two cases no longer count as severe: (1) names that state the formula (0.9% SODIUM CHLORIDE IRRIGATION, percentage electrolyte formulas); (2) one side is a combination (≥3 ingredients, e.g.Pain Relief Patch, parenteral nutritionOlimel, homeopathic combos). The ingredient table was joined intocollisionand the temporary B-tree sort forCOUNT(DISTINCT)removed (views 95,775 → 122k; further slowdown would hurt build time). Severe names 36,579 → 15,312. - Search: immediate-release now ranks before modified-release when the user did not specify release (8 HR / 12 HOUR Tylenol variants move down).
- Built 12,339 ingredient pages / 19,220 name pages; index 125,667 keys, 25,223 with CA and 22,172 Canada-only.
- Licence: DPD terms allow non-commercial re-use with source attribution (About now shows © His Majesty the King in Right of Canada).
- Canadá añadido: séptimo mercado. DPD completo de Health Canada (Drug Product Database): una fila = un DIN, 43.847 productos humanos (activos 14.519 / descontinuados 29.323 / retirados 5), 99,8% con concentración (43.775); incluye OTC y receta.
- Ruta de obtención: el
allfiles.zipoficial enwww.canada.ca/content/dam/…siempre agota el tiempo programáticamente (HEAD/GET, UA de navegador igual), y la consulta web del DPD es paginada en servidor congetNextPageligado a sesión (500 en peticiones directas). Se pasó a la DPD Open API pública del mismo host (9 endpoints, JSON completo, sin clave);etl/fetch_ca_dpd.pydescarga,etl/ingest_ca_dpd.pycarga, caché endata/raw/ca/dpd/. - Mapeo de nombres de principios canadienses:
ACETYLSALICYLIC ACID→ aspirin,ADRENALINE→ epinephrine,GLYCERYL TRINITRATE→ nitroglycerin; las sales entre paréntesis se registran como variantes. acetylsalicylic acid y aspirin se fusionan en la ficha del principio; Canadá deja de ser un conjunto aparte. - Conversión de dosis en combinaciones: "1 g por 4 comprimidos" / "355 mg por 30 mL" del DPD se convierten a por comprimido / por mL.
- Excluidos: homeopatía (diluciones CH/DH/X) 5.571; veterinaria/radiofármacos/desinfectantes 7.340; multivitamínicos (>8 principios) 1.169; también excipientes del DPD registrados por error como activos (HYPROMELLOSE, etc.), pues una solución conservante corneal colgaría 40.000 productos de hypromellose.
- Claves de nombre separadas del nombre visible: muchos nombres del DPD son descripciones de producto (
15 SPF FPS PREMIUM SUNSCREEN); la página los muestra tal cual mientras la clave de búsqueda quita otra capa de palabras de forma; nombres que empiezan por dígito/símbolo o con prefijos rotos (222 AF EXTRA STRENGTH,+ SINUS COLD FORMULA) se penalizan en resultados y páginas de principio. - Corrección de la vista de colisiones:
severesolo se mantiene cuando ambos lados son monofármaco o combinación simple. Dos casos dejan de ser severe: (1) nombres que indican la fórmula (0.9% SODIUM CHLORIDE IRRIGATION, fórmulas porcentuales de electrolitos); (2) un lado es combinación (≥3 principios, p. ej.Pain Relief Patch, nutrición parenteralOlimel, combinaciones homeopáticas). Se unió la tabla de principios acollisiony se eliminó la ordenación temporal B-tree deCOUNT(DISTINCT)(vistas 95.775 → 122 mil; más lentitud afectaría al build). Nombres severe 36.579 → 15.312. - Búsqueda: la liberación inmediata se ordena antes de la modificada cuando el usuario no especifica liberación (variantes Tylenol 8 HR / 12 HOUR bajan).
- Se construyeron 12.339 páginas de principio / 19.220 de nombre; índice con 125.667 claves, 25.223 con CA y 22.172 solo de Canadá.
- Licencia: los términos del DPD permiten reutilización no comercial con atribución (About muestra © His Majesty the King in Right of Canada).
- 加拿大入庫:第七個市場。Health Canada 的 DPD(Drug Product Database)全量, 一行 = 一個 DIN,43,847 個 Human 產品(active 14,519 / discontinued 29,323 / withdrawn 5),有強度的 99.8%(43,775)。CPIC 意義上的 OTC 與處方藥都在裡面。
- 取數路徑:官方
allfiles.zip掛在www.canada.ca/content/dam/…,程式化下載恆超時 (HEAD/GET、瀏覽器 UA 都一樣),DPD 網頁查詢又是服務端分頁、getNextPage要繫結會話 (直接請求 500)。改用同一臺主機上的公開 DPD Open API(9 個端點、全量 JSON、無需 key),etl/fetch_ca_dpd.py抓、etl/ingest_ca_dpd.py入庫,快取落data/raw/ca/dpd/。 - 加拿大成分名對應:
ACETYLSALICYLIC ACID→ aspirin、ADRENALINE→ epinephrine、GLYCERYL TRINITRATE→ nitroglycerin;括號裡的鹽記成 variant。acetylsalicylic acid 與 aspirin 在成分卡上合併,加拿大不再自成一套。 - 複方劑量折算:DPD 的「每 4 片 1 g」「每 30 mL 355 mg」換算成每片 / 每 mL。
- 排除:順勢療法(強度是 CH/DH/X 稀釋度)5,571、獸藥/放射藥/消毒劑 7,340、 複合維生素類(成分 >8)1,169;另外剔除 DPD 誤登記成有效成分的輔料(HYPROMELLOSE 等), 否則一種角膜儲存液會把 4 萬個產品掛到 hypromellose 名下。
- 名字鍵與顯示名分開:DPD 裡大量條目名字本身就是產品描述(
15 SPF FPS PREMIUM SUNSCREEN),頁面顯示原樣、檢索鍵再剝一層劑型詞;以數字/符號開頭、或帶殘缺字首的名字 (222 AF EXTRA STRENGTH、+ SINUS COLD FORMULA)在檢索結果和成分頁裡降權。 - 碰撞檢視修正:
severe只留給「兩邊都是單方/簡單複方」的情形。兩類不再算 severe: (1) 名字本身寫著配方(0.9% SODIUM CHLORIDE IRRIGATION、電解質輸液的百分比配方名); (2) 一方是複方(≥3 個成分,如Pain Relief Patch、腸外營養液Olimel、順勢療法複方)。 順手把成分表 join 到collision裡,去掉了COUNT(DISTINCT)的臨時 B 樹排序 (檢視像數從 95,775 漲到 12.2 萬,再慢下去建站會明顯變慢)。severe 名字 36,579 → 15,312。 - 檢索:使用者沒寫釋放機制時,速釋排在緩釋之前(Tylenol 裡 8 HR / 12 HOUR 會落到後面)。
- 建站 12,339 張成分頁 / 19,220 張名字頁;索引 125,667 個鍵,其中 25,223 個帶 CA、 22,172 個只在加拿大出現。
- 許可:DPD 條款允許非商業再使用,須註明來源(About 頁已寫 © His Majesty the King in Right of Canada)。
v0.3.02026-10-26
- 澳洲补 OTC:从 1 层变 3 层。PBS 只补贴处方药,Panadol / Nurofen / Gaviscon 这类 在澳洲站查不到;ARTG 又没有批量文件。这次把能合法拿的两块补上: -
- TGA CMI 目录(
www.ebs.tga.gov.au,不是被墙的 www.tga.gov.au):4,734 个 「商品名 + 有效成分」,fetch_tga_cmi.py30 个请求拉完,ingest_tga_cmi.py入库 4,730 个 AU 产品(Panadol 5 个、Nurofen 6 个变体都在)。目录没有规格/剂型,强度留空, 状态写unknown(有 CMI ≠ 当前在售)。 - - listed OTC 人工种子:Gaviscon 是 AUST L,PBS 和 CMI 都盖不到,按厂家澳洲官网 核对了 5 个包装(每 10 mL / 每片含量 + 来源 URL)。
- 澳洲合计 10,500+ 个产品(PBS 5,452 + CMI 4,730 + ARTG 明细 300+ + Gaviscon 5), 索引里 8,000+ 个名字带 AU。
- ARTG 名称层:eBS 的 Current Medicines 目录 30 条/页,全量抓到 34,594 条
(商品名 + 申办方 + ARTG ID),进
artg_entry表;站点出data/artg.json, 产品未命中或选了澳洲但澳洲为空时,列出「ARTG 有登记、成分未收录」的条目 (Mylanta、Ural 这类 listed OTC 现在至少能查到 ARTG 号)。 - 授权边界:CMI 文档本身有许可门(再发布需 sponsor 许可),只取目录页的事实字段; PBS API 保留 Commonwealth 版权声明。ARTG 全量仍无批量——eBS 的 Current Medicines 目录 可 30 条/页翻(品牌 + 申办方 + ARTG ID),但详情只有 PDF,成分级全量只能 FOI。
- 建站 11,300+ 张成分页 / 14,400+ 张名字页。
- 覆盖表改为数据源日期:
/about.html第三列不再显示我们的抓取时间,而是数据源自己的 发布 / 生效 / 快照日期——openFDAmeta.last_updated(2026-10-23)、dm+d 10.2.0 发布日(2026-10-19)、NHSA 2025-04-04 快照、PBS schedule 4751 生效日(2026-10-01); CIMA 实时库标live,COFEPRIS 年度 PDF 标—。source.data_as_of由db/source_dates.py在建站前自动推导。
- Australia OTC expanded from 1 layer to 3. PBS covers prescription drugs only, so Panadol / Nurofen / Gaviscon were missing on the AU side, and ARTG has no bulk file. Two legally available layers were added:
- TGA CMI catalogue (
www.ebs.tga.gov.au, not the blocked www.tga.gov.au) — 4,734 "brand + active ingredient" entries, fetched in 30 requests byfetch_tga_cmi.pyand ingested as 4,730 AU products byingest_tga_cmi.py(including 5 Panadol and 6 Nurofen variants); the catalogue has no strength/form, so strength stays empty and status isunknown(CMI ≠ currently marketed). - listed OTC manual seeds — Gaviscon is AUST L, covered by neither PBS nor CMI, so 5 packs were verified against the manufacturer's Australian site (per 10 mL / per tablet + source URL).
- Australia totals 10,500+ products (PBS 5,452 + CMI 4,730 + ARTG details 300+ + Gaviscon 5); 8,000+ names in the index carry AU.
- ARTG name layer: the eBS Current Medicines catalogue (30/page) fully crawled to 34,594 entries (brand + sponsor + ARTG ID) into
artg_entry; the site emitsdata/artg.jsonand, when a product does not match or a selected market is empty, lists "on the ARTG, ingredient not captured yet" entries (listed OTC such as Mylanta/Ural can now at least be found by ARTG number). - Licensing boundaries: CMI documents themselves are gated (re-publication needs sponsor permission), so only factual fields from the catalogue pages are taken; the PBS API keeps the Commonwealth copyright notice. ARTG still has no bulk data — eBS Current Medicines can be paged at 30/page (brand + sponsor + ARTG ID), but details are PDF only and full ingredient data is FOI-only.
- Built 11,300+ ingredient pages / 14,400+ name pages.
- Coverage table switched to source dates: the third column of
/about.htmlno longer shows our fetch time but the source's own publication/effective/snapshot date — openFDAmeta.last_updated(2026-10-23), dm+d 10.2.0 release (2026-10-19), NHSA 2025-04-04 snapshot, PBS schedule 4751 effective date (2026-10-01); CIMA live DB is markedliveand COFEPRIS annual PDFs as—.source.data_as_ofis derived before the build bydb/source_dates.py.
- OTC de Australia ampliado de 1 capa a 3. PBS solo cubre medicamentos de receta, así que Panadol / Nurofen / Gaviscon no aparecían en el lado AU, y ARTG no tiene fichero masivo. Se añadieron dos capas legalmente disponibles:
- catálogo TGA CMI (
www.ebs.tga.gov.au, no el bloqueado www.tga.gov.au) — 4.734 entradas de "marca + principio activo", descargadas en 30 peticiones porfetch_tga_cmi.pye ingresadas como 4.730 productos AU poringest_tga_cmi.py(incluye 5 Panadol y 6 variantes Nurofen); el catálogo no tiene concentración/forma, así que la concentración queda vacía y el estadounknown(CMI ≠ comercializado actualmente). - semillas manuales de OTC listed — Gaviscon es AUST L, no cubierto por PBS ni CMI, así que se verificaron 5 envases contra la web australiana del fabricante (por 10 mL / por comprimido + URL de origen).
- Australia suma más de 10.500 productos (PBS 5.452 + CMI 4.730 + detalles ARTG 300+ + Gaviscon 5); más de 8.000 nombres del índice llevan AU.
- Capa de nombres ARTG: el catálogo eBS Current Medicines (30/página) se rastreó completo hasta 34.594 entradas (marca + promotor + ARTG ID) en
artg_entry; el sitio emitedata/artg.jsony, cuando un producto no coincide o el mercado seleccionado está vacío, lista entradas "en ARTG, principio no capturado" (OTC listed como Mylanta/Ural ya se pueden al menos encontrar por número ARTG). - Límites de licencia: los documentos CMI están restringidos (republicar requiere permiso del promotor), así que solo se toman campos factuales de las páginas del catálogo; la API PBS mantiene el aviso de copyright de la Commonwealth. ARTG sigue sin datos masivos — eBS Current Medicines se pagina a 30/página (marca + promotor + ARTG ID), pero los detalles son solo PDF y los datos completos de principios solo por FOI.
- Se construyeron más de 11.300 páginas de principio / 14.400 de nombre.
- Tabla de cobertura cambiada a fechas de la fuente: la tercera columna de
/about.htmlya no muestra nuestra fecha de captura sino la fecha de publicación/vigencia/snapshot de la propia fuente — openFDAmeta.last_updated(2026-10-23), dm+d 10.2.0 (2026-10-19), snapshot NHSA 2025-04-04, fecha de vigencia del schedule PBS 4751 (2026-10-01); CIMA (base en vivo) se marcalivey los PDF anuales de COFEPRIS como—.source.data_as_ofse deriva antes del build condb/source_dates.py.
- 澳洲補 OTC:從 1 層變 3 層。PBS 只補貼處方藥,Panadol / Nurofen / Gaviscon 這類 在澳洲站查不到;ARTG 又沒有批次檔案。這次把能合法拿的兩塊補上: -
- TGA CMI 目錄(
www.ebs.tga.gov.au,不是被牆的 www.tga.gov.au):4,734 個 「商品名 + 有效成分」,fetch_tga_cmi.py30 個請求拉完,ingest_tga_cmi.py入庫 4,730 個 AU 產品(Panadol 5 個、Nurofen 6 個變體都在)。目錄沒有規格/劑型,強度留空, 狀態寫unknown(有 CMI ≠ 當前販售中)。 - - listed OTC 人工種子:Gaviscon 是 AUST L,PBS 和 CMI 都蓋不到,按廠商澳洲官網 核對了 5 個包裝(每 10 mL / 每片含量 + 來源 URL)。
- 澳洲合計 10,500+ 個產品(PBS 5,452 + CMI 4,730 + ARTG 明細 300+ + Gaviscon 5), 索引裡 8,000+ 個名字帶 AU。
- ARTG 名稱層:eBS 的 Current Medicines 目錄 30 條/頁,全量抓到 34,594 條
(商品名 + 申辦方 + ARTG ID),進
artg_entry表;站點出data/artg.json, 產品未命中或選了澳洲但澳洲為空時,列出「ARTG 有登記、成分未收錄」的條目 (Mylanta、Ural 這類 listed OTC 現在至少能查到 ARTG 號)。 - 授權邊界:CMI 文件本身有許可門(再發布需 sponsor 許可),只取目錄頁的事實欄位; PBS API 保留 Commonwealth 版權宣告。ARTG 全量仍無批次——eBS 的 Current Medicines 目錄 可 30 條/頁翻(品牌 + 申辦方 + ARTG ID),但詳情只有 PDF,成分級全量只能 FOI。
- 建站 11,300+ 張成分頁 / 14,400+ 張名字頁。
- 覆蓋表改為資料來源日期:
/about.html第三列不再顯示我們的抓取時間,而是資料來源自己的 發布 / 生效 / 快照日期——openFDAmeta.last_updated(2026-10-23)、dm+d 10.2.0 發布日(2026-10-19)、NHSA 2025-04-04 快照、PBS schedule 4751 生效日(2026-10-01); CIMA 即時庫標live,COFEPRIS 年度 PDF 標—。source.data_as_of由db/source_dates.py在建站前自動推導。
v0.2.42026-10-26
- 静态资源版本化:所有 CSS/JS 引用加
?v=<构建时间戳>,更新后浏览器不用硬刷新。 - 25,747 个文件全量重建。
- Static asset versioning: every CSS/JS reference now carries
?v=<build timestamp>, so browsers do not need a hard refresh after updates. - Full rebuild of 25,747 files.
- Versionado de recursos estáticos: cada referencia CSS/JS lleva ahora
?v=<marca de tiempo del build>, así el navegador no necesita recarga forzada tras las actualizaciones. - Reconstrucción completa de 25.747 archivos.
- 靜態資源版本化:所有 CSS/JS 引用加
?v=<構建時間戳>,更新後瀏覽器不用硬重新整理。 - 25,747 個檔案全量重建。
v0.2.32026-10-26
- 修:国家选择器解析崩溃(tuple / entry 不匹配)。
- 加:
?country=AU这类深链,可直接定位到某个市场。 data/index.json加构建时间戳,新名字不用等缓存过期。
- Fix: country-selector parsing crash (tuple / entry mismatch).
- Added: deep links such as
?country=AUjump straight to a market. data/index.jsongains a build timestamp so new names do not wait for cache expiry.
- Corrección: fallo de parseo del selector de país (desajuste tuple / entry).
- Añadido: enlaces profundos como
?country=AUllevan directamente a un mercado. data/index.jsonincluye marca de tiempo de build para que los nombres nuevos no esperen a que caduque la caché.
- 修:國家選擇器解析崩潰(tuple / entry 不匹配)。
- 加:
?country=AU這類深鏈,可直接定位到某個市場。 data/index.json加構建時間戳,新名字不用等快取過期。
v0.2.22026-10-26
- 国家选择器改语义:不再过滤结果,而是回答「这个药在该市场叫什么」—— 同一种成分在不同国家的商品名并列展示。
- Country selector semantics changed: it no longer filters results but answers "what is this drug called in that market?" — the same ingredient's brand names across countries are shown side by side.
- Cambio de semántica del selector de país: ya no filtra resultados sino que responde "¿cómo se llama este medicamento en ese mercado?" — las marcas del mismo principio en distintos países se muestran una al lado de otra.
- 國家選擇器改語義:不再過濾結果,而是回答「這個藥在該市場叫什麼」—— 同一種成分在不同國家的商品名並列展示。
v0.2.12026-10-26
- 2 字中文子串匹配:输入「泰诺」「立普妥」这类不完整的名字也能命中(此前要 ≥3 字)。
- 加:substance 重复项自动检查,工作区与建站结果同步。
- 2-character Chinese substring matching: incomplete names such as 泰诺 or 立普妥 now match (previously ≥3 characters were required).
- Added: automatic duplicate-substance checks, synced between the workspace and the build output.
- Coincidencia por subcadena china de 2 caracteres: nombres incompletos como 泰诺 o 立普妥 ya coinciden (antes se exigían ≥3 caracteres).
- Añadido: comprobación automática de principios duplicados, sincronizada entre el espacio de trabajo y el resultado del build.
- 2 字中文子串匹配:輸入「泰諾」「立普妥」這類不完整的名字也能命中(此前要 ≥3 字)。
- 加:substance 重複項自動檢查,工作區與建站結果同步。
v0.2.02026-10-26
- 修:中国复方产品丢失第二个成分(3,049 行)——二甲双胍格列本脲、缬沙坦氨氯地平、 厄贝沙坦氢氯噻嗪、阿莫西林克拉维酸等复方现在完整入库。
- 227 个文件重建。
- Fix: Chinese combination products lost their second ingredient (3,049 rows) — metformin/glyburide, valsartan/amlodipine, irbesartan/hydrochlorothiazide, amoxicillin/clavulanate and similar combinations are now ingested completely.
- 227 files rebuilt.
- Corrección: las combinaciones chinas perdían el segundo principio (3.049 filas) — metformina/glibenclamida, valsartán/amlodipino, irbesartán/hidroclorotiazida, amoxicilina/clavulánico y similares ahora se cargan completas.
- 227 archivos reconstruidos.
- 修:中國複方產品丟失第二個成分(3,049 行)——二甲雙胍格列本脲、纈沙坦氨氯地平、 厄貝沙坦氫氯噻嗪、阿莫西林克拉維酸等複方現在完整入庫。
- 227 個檔案重建。
v0.1.42026-10-26
- 美国街头 / 民间 / 类别叫法 331 条:新建
drug_term表,收录 NIDA「Also called」 247 条 + DEA 2018 报告人工筛出的 64 条 + MedlinePlus 民间叫法 20 条。支持三类中文昵称表装不下的情况: 类别词(downers = 镇静剂)、本库无上市产品的管制物质(molly = MDMA)、复方(lean = 可待因 + 异丙嗪)。 - 统一别名视图
alias_all:nickname+drug_term合成检索层唯一入口;原有 57 条中文 昵称不受影响,搜molly/bars/speed都会先说明「这是什么叫法」再列商品。 - FDA 易混淆药对 22 对:新建
confusable_pair表,来源 FDA Name Differentiation Project 的 tall-man 名单;成分页顶部给警告,新增/confused.html列表页。 - 授权边界:ISMP/ECRI 的《List of Confused Drug Names》有版权,未整表复制;页面明确写 「这是 FDA 官方 tall-man 名单,不是完整 LASA 清单」。
- 检索测试 15 → 19 项;建站 10,843 张成分页 / 13,632 张名字页。
- 331 US street / folk / class names: new
drug_termtable with 247 NIDA "Also called" names, 64 manually selected from the 2018 DEA report and 20 MedlinePlus folk names. Covers three cases the Chinese nickname table cannot: class words (downers = sedatives), controlled substances with no marketed product here (molly = MDMA) and combinations (lean = codeine + promethazine). - Unified alias view
alias_all:nickname+drug_termcombined into one search entry point; the original 57 Chinese nicknames are unaffected, and searchingmolly/bars/speedfirst explains what the name refers to, then lists products. - 22 FDA confusable pairs: new
confusable_pairtable sourced from the FDA Name Differentiation Project tall-man list; a warning appears at the top of ingredient pages and a new/confused.htmllist page was added. - Licensing boundaries: ISMP/ECRI's List of Confused Drug Names is copyrighted and was not copied wholesale; the page states explicitly "this is the FDA tall-man list, not the complete LASA list".
- Search tests 15 → 19; built 10,843 ingredient pages / 13,632 name pages.
- 331 nombres callejeros / populares / de clase de EE. UU.: nueva tabla
drug_termcon 247 nombres "Also called" de NIDA, 64 seleccionados manualmente del informe DEA 2018 y 20 nombres populares de MedlinePlus. Cubre tres casos que la tabla de apodos chinos no puede: palabras de clase (downers = sedantes), sustancias controladas sin producto comercializado aquí (molly = MDMA) y combinaciones (lean = codeína + prometazina). - Vista unificada de alias
alias_all:nickname+drug_termen un único punto de entrada de búsqueda; los 57 apodos chinos originales no cambian, y buscarmolly/bars/speedprimero explica a qué se refiere el nombre y luego lista productos. - 22 pares confundibles de la FDA: nueva tabla
confusable_paircon la lista tall-man del FDA Name Differentiation Project; aviso en la parte superior de las páginas de principio y nueva página de lista/confused.html. - Límites de licencia: la List of Confused Drug Names de ISMP/ECRI tiene derechos de autor y no se copió completa; la página indica explícitamente "esta es la lista tall-man de la FDA, no la lista LASA completa".
- Pruebas de búsqueda 15 → 19; construidas 10.843 páginas de principio / 13.632 de nombre.
- 美國街頭 / 民間 / 類別叫法 331 條:新增
drug_term表,收錄 NIDA「Also called」 247 條 + DEA 2018 報告人工篩出的 64 條 + MedlinePlus 民間叫法 20 條。支援三類中文暱稱表裝不下的情況: 類別詞(downers = 鎮靜劑)、本庫無上市產品的管制物質(molly = MDMA)、複方(lean = 可待因 + 異丙嗪)。 - 統一別名檢視
alias_all:nickname+drug_term合成檢索層唯一入口;原有 57 條中文 暱稱不受影響,搜molly/bars/speed都會先說明「這是什麼叫法」再列商品。 - FDA 易混淆藥對 22 對:新增
confusable_pair表,來源 FDA Name Differentiation Project 的 tall-man 名單;成分頁頂部給警告,新增/confused.html列表頁。 - 授權邊界:ISMP/ECRI 的《List of Confused Drug Names》有版權,未整表複製;頁面明確寫 「這是 FDA 官方 tall-man 名單,不是完整 LASA 清單」。
- 檢索測試 15 → 19 項;建站 10,843 張成分頁 / 13,632 張名字頁。
v0.1.32026-10-26
- 模糊检索增强:没有精确命中时自动退到近似匹配,并明确标出「没有精确命中,以下是最接近的名字」,
不让用户误以为这是精确结果。例如
盐酸西利嗪→盐酸西替利嗪片(CETIRIZINE)。 - 编辑距离阈值按长度分档:短词 ≤2,9 字以上放宽到 ≤3;只有完全无直接命中时才启用,
避免
Lipitor带出Zifitor这类噪音。
- Fuzzy search upgrade: when there is no exact hit, search falls back to approximate matching and clearly states "no exact match; closest names below" so users do not mistake it for an exact result. Example:
盐酸西利嗪→盐酸西替利嗪片(CETIRIZINE). - Edit-distance threshold varies by length: ≤2 for short words, up to ≤3 for 9+ characters; only enabled when there is no direct hit at all, avoiding noise such as
LipitorreturningZifitor.
- Mejora de búsqueda difusa: sin coincidencia exacta, la búsqueda recurre a coincidencia aproximada y lo indica claramente ("sin coincidencia exacta; los nombres más cercanos abajo") para que no se confunda con un resultado exacto. Ejemplo:
盐酸西利嗪→盐酸西替利嗪片(CETIRIZINE). - El umbral de distancia de edición varía por longitud: ≤2 en palabras cortas y hasta ≤3 en 9+ caracteres; solo se activa cuando no hay ninguna coincidencia directa, evitando ruido como que
LipitordevuelvaZifitor.
- 模糊檢索增強:沒有精確命中時自動退到近似匹配,並明確標出「沒有精確命中,以下是最接近的名字」,
不讓使用者誤以為這是精確結果。例如
鹽酸西利嗪→鹽酸西替利嗪片(CETIRIZINE)。 - 編輯距離閾值按長度分檔:短詞 ≤2,9 字以上放寬到 ≤3;只有完全無直接命中時才啟用,
避免
Lipitor帶出Zifitor這類噪音。
v0.1.22026-10-26
- 俗称表 23 → 57 条:补中文旧名(扑尔敏、非那根、654-2、速尿、安体舒通、雷米封、安乃近)、 原研商品名(络活喜、拜新同、代文、科素亚、安博维、拜唐苹、达美康、亚莫利、优甲乐、赛治、 洛赛克、波立维、舒降之、力平之、拜阿司匹灵、吗丁啉、思密达、达克宁、芬必得、必理通、达菲)、 西语区通用名(Tempra、Mejoral 指向对乙酰氨基酚)。
- 每条都带
kind(旧名 / 网络俗称 / 简称 / 误称)和source,命中后在结果页顶部单独说明。 - 俗称存放在
nickname表,由data/seed_nicknames.py播种并已串进run_all.py,可复现。
- Nickname table 23 → 57 entries: added Chinese legacy names (扑尔敏, 非那根, 654-2, 速尿, 安体舒通, 雷米封, 安乃近), originator brand names (络活喜, 拜新同, 代文, 科素亚, 安博维, 拜唐苹, 达美康, 亚莫利, 优甲乐, 赛治, 洛赛克, 波立维, 舒降之, 力平之, 拜阿司匹灵, 吗丁啉, 思密达, 达克宁, 芬必得, 必理通, 达菲) and Spanish-region generic names (Tempra, Mejoral → acetaminophen).
- Each entry carries
kind(legacy / internet slang / abbreviation / misnomer) andsource; when matched, the result page shows a separate note at the top. - Nicknames live in the
nicknametable, seeded bydata/seed_nicknames.pyand wired intorun_all.py, so they are reproducible.
- Tabla de apodos 23 → 57 entradas: se añadieron nombres chinos antiguos (扑尔敏, 非那根, 654-2, 速尿, 安体舒通, 雷米封, 安乃近), marcas originales (络活喜, 拜新同, 代文, 科素亚, 安博维, 拜唐苹, 达美康, 亚莫利, 优甲乐, 赛治, 洛赛克, 波立维, 舒降之, 力平之, 拜阿司匹灵, 吗丁啉, 思密达, 达克宁, 芬必得, 必理通, 达菲) y nombres genéricos de la región hispana (Tempra, Mejoral → paracetamol).
- Cada entrada lleva
kind(antiguo / jerga de internet / abreviatura / nombre erróneo) ysource; al coincidir, la página de resultados muestra una nota aparte arriba. - Los apodos están en la tabla
nickname, sembrada pordata/seed_nicknames.pye integrada enrun_all.py, por lo que son reproducibles.
- 俗稱表 23 → 57 條:補中文舊名(撲爾敏、非那根、654-2、速尿、安體舒通、雷米封、安乃近)、 原研商品名(絡活喜、拜新同、代文、科素亞、安博維、拜唐蘋、達美康、亞莫利、優甲樂、賽治、 洛賽克、波立維、舒降之、力平之、拜阿司匹靈、嗎丁啉、思密達、達克寧、芬必得、必理通、達菲)、 西語區通用名(Tempra、Mejoral 指向對乙醯胺基酚)。
- 每條都帶
kind(舊名 / 網路俗稱 / 簡稱 / 誤稱)和source,命中後在結果頁頂部單獨說明。 - 俗稱存放在
nickname表,由data/seed_nicknames.py播種並已串進run_all.py,可復現。
v0.1.12026-10-25
- 修:索引只收品牌名,导致中国绝大多数仿制药(只有通用名)搜不到。
盐酸左西替利嗪库里有 280 个产品,却零命中。现在通用名全部进索引。 - 加:精确命中品牌后,单独列出「同成分的其他商品」——用户搜的是牌子, 想知道的是这个成分还有哪些选择。
- 修:NHSA 数据里混入控制字符(
糠酸莫米松乳膏\x02)导致建站崩溃, 文件名生成前先剥离。 - 索引 17.2 MB → 27.1 MB;页面 24,471 个。通用名只在「有品牌名或有碰撞」时单独成页。
- Fix: the index only contained brand names, so most Chinese generics (generic-name only) could not be found.
盐酸左西替利嗪had 280 products but zero hits. Generic names are now fully indexed. - Added: after an exact brand hit, other products with the same ingredient are listed separately — the user searched a brand and wants to know the alternatives.
- Fix: control characters in NHSA data (e.g.
糠酸莫米松乳膏\x02) crashed the build; they are stripped before file-name generation. - Index 17.2 MB → 27.1 MB; 24,471 pages. Generic names get their own page only when they have a brand name or a collision.
- Corrección: el índice solo contenía marcas, así que la mayoría de los genéricos chinos (solo nombre genérico) no se encontraban.
盐酸左西替利嗪tenía 280 productos y cero coincidencias. Ahora todos los nombres genéricos están indexados. - Añadido: tras una coincidencia exacta de marca, se listan aparte otros productos con el mismo principio — el usuario buscó una marca y quiere saber las alternativas.
- Corrección: caracteres de control en datos de NHSA (p. ej.
糠酸莫米松乳膏\x02) rompían el build; se eliminan antes de generar nombres de archivo. - Índice 17,2 MB → 27,1 MB; 24.471 páginas. Los nombres genéricos tienen página propia solo si tienen marca o colisión.
- 修:索引只收品牌名,導致中國絕大多數仿製藥(只有通用名)搜不到。
鹽酸左西替利嗪庫裡有 280 個產品,卻零命中。現在通用名全部進索引。 - 加:精確命中品牌後,單獨列出「同成分的其他商品」——使用者搜的是牌子, 想知道的是這個成分還有哪些選擇。
- 修:NHSA 資料裡混入控制字元(
糠酸莫米松乳膏\x02)導致建站崩潰, 檔名生成前先剝離。 - 索引 17.2 MB → 27.1 MB;頁面 24,471 個。通用名只在「有品牌名或有碰撞」時單獨成頁。
v0.1.02026-10-25
- 首次上线。六个市场,359,200 条产品记录。 | 市场 | 条数 | 来源 | 快照 / 同步日期 | |---|---:|---|---| | 中国 | 146,347 | 国家医保局 医保药品分类与代码数据库 | 2025-04-04 快照 | | 美国 | 110,179 | openFDA NDC Directory | 2026-10-23 | | 英国 | 61,051 | NHSBSA dm+d 10.2.0(OGL v3.0) | 2026-10-19 release | | 西班牙 | 25,293 | AEMPS CIMA | 2026-10 | | 墨西哥 | 10,878 | COFEPRIS Registro Sanitario | 2026-10 | | 澳大利亚 | 5,452 | PBS | 2026-10 | 功能 检索结果按 成分 → 剂量 → 品牌 → 厂家 表格呈现;成分与剂量是第一优先级。
- 六种文字归一化:拉丁、中文、西里尔、全角、配比
875/125、浓度5 mg/5 ml。 - 同名碰撞自动推导:不同活性成分 = 严重,释放机制不同 = 警告。
- 跨语言品牌家族:Tylenol ↔ 泰诺 ↔ 泰诺林、Benadryl、Gaviscon、Lipitor ↔ 立普妥。
- BAN↔USAN 同义词 24 组:paracetamol ↔ acetaminophen 等。
- 三语界面(EN / ES / 中文)。
- 模糊匹配只在完全没有直接命中时启用,避免
Lipitor带出Zifitor。 - 已知缺口 中国复方塌陷:4,411 行复方(二甲双胍格列本脲、缬沙坦氨氯地平、 厄贝沙坦氢氯噻嗪、阿莫西林克拉维酸…)只入库了第一个成分,第二个被吞掉。 待修,优先级最高。
- 中国中成药(98,703 行)默认未入库:只有 42 行带真实商品名。
- 西班牙 208 条四成分以上复方未入库(列表接口
vtm为占位符multicomponente)。 - 英国
Co-Amoxiclav等组合名未拆成两个成分。 - 剂量只做到同型对应(D1);盐基折算(D2)与不可互换判定(D3)未实现。
- ATC 覆盖不全:西班牙补了 1,809 个成分,其余市场多为空。
- First release. Six markets, 359,200 product records: China 146,347 (National Healthcare Security Administration drug classification and code database, 2025-04-04 snapshot); US 110,179 (openFDA NDC Directory, 2026-10-23); UK 61,051 (NHSBSA dm+d 10.2.0, OGL v3.0, 2026-10-19 release); Spain 25,293 (AEMPS CIMA, 2026-10); Mexico 10,878 (COFEPRIS Registro Sanitario, 2026-10); Australia 5,452 (PBS, 2026-10). Features Results are shown as an ingredient → strength → brand → manufacturer table; ingredient and strength come first.
- Six-script normalization: Latin, Chinese, Cyrillic, full-width, ratios
875/125, concentrations5 mg/5 ml. - Same-name collisions derived automatically: different active ingredient = severe, different release mechanism = warning.
- Cross-language brand families: Tylenol ↔ 泰诺 ↔ 泰诺林, Benadryl, Gaviscon, Lipitor ↔ 立普妥.
- 24 BAN↔USAN synonym pairs: paracetamol ↔ acetaminophen etc.
- Trilingual interface (EN / ES / Chinese).
- Fuzzy matching is enabled only when there is no direct hit, avoiding
LipitorreturningZifitor. - Known gaps Chinese combination collapse: 4,411 combination rows (metformin/glyburide, valsartan/amlodipine, irbesartan/hydrochlorothiazide, amoxicillin/clavulanate…) ingested only the first ingredient, the second was dropped. To fix, highest priority.
- Chinese traditional patent medicines (98,703 rows) not ingested by default: only 42 rows carry a real brand name.
- 208 Spanish combinations with four or more ingredients not ingested (list API
vtmis the placeholdermulticomponente). - UK combination names such as
Co-Amoxiclavare not split into two ingredients. - Dose mapping only reaches same-form equivalence (D1); salt-base conversion (D2) and non-interchangeability judgement (D3) are not implemented.
- ATC coverage is incomplete: Spain had 1,809 ingredients added; other markets are mostly empty.
- Primera versión. Seis mercados, 359.200 registros de producto: China 146.347 (base de clasificación y códigos de medicamentos de la Administración Nacional de Seguridad Sanitaria, snapshot 2025-04-04); EE. UU. 110.179 (openFDA NDC Directory, 2026-10-23); Reino Unido 61.051 (NHSBSA dm+d 10.2.0, OGL v3.0, release 2026-10-19); España 25.293 (AEMPS CIMA, 2026-10); México 10.878 (COFEPRIS Registro Sanitario, 2026-10); Australia 5.452 (PBS, 2026-10). Funciones Los resultados se muestran como tabla principio → concentración → marca → fabricante; principio y concentración son la primera prioridad.
- Normalización de seis escrituras: latina, china, cirílica, ancho completo, proporciones
875/125, concentraciones5 mg/5 ml. - Colisiones de mismo nombre derivadas automáticamente: principio activo distinto = severa, mecanismo de liberación distinto = aviso.
- Familias de marcas entre idiomas: Tylenol ↔ 泰诺 ↔ 泰诺林, Benadryl, Gaviscon, Lipitor ↔ 立普妥.
- 24 pares de sinónimos BAN↔USAN: paracetamol ↔ acetaminophen, etc.
- Interfaz trilingüe (EN / ES / chino).
- La coincidencia difusa solo se activa cuando no hay coincidencia directa, evitando que
LipitordevuelvaZifitor. - Limitaciones conocidas Colapso de combinaciones chinas: 4.411 filas de combinaciones (metformina/glibenclamida, valsartán/amlodipino, irbesartán/hidroclorotiazida, amoxicilina/clavulánico…) ingresaron solo el primer principio y el segundo se perdió. Pendiente, máxima prioridad.
- Medicamentos patentados tradicionales chinos (98.703 filas) no ingresados por defecto: solo 42 filas llevan marca real.
- 208 combinaciones españolas de cuatro o más principios no ingresadas (la API de lista
vtmes el marcadormulticomponente). - Los nombres combinados del Reino Unido como
Co-Amoxiclavno se dividen en dos principios. - La correspondencia de dosis solo llega a equivalencia de la misma forma (D1); la conversión sal-base (D2) y el juicio de no intercambiabilidad (D3) no están implementados.
- La cobertura ATC es incompleta: España añadió 1.809 principios; los demás mercados están casi vacíos.
- 首次上線。六個市場,359,200 條產品記錄。 | 市場 | 條數 | 來源 | 快照 / 同步日期 | |---|---:|---|---| | 中國 | 146,347 | 國家醫保局 醫保藥品分類與程式碼資料庫 | 2025-04-04 快照 | | 美國 | 110,179 | openFDA NDC Directory | 2026-10-23 | | 英國 | 61,051 | NHSBSA dm+d 10.2.0(OGL v3.0) | 2026-10-19 release | | 西班牙 | 25,293 | AEMPS CIMA | 2026-10 | | 墨西哥 | 10,878 | COFEPRIS Registro Sanitario | 2026-10 | | 澳大利亞 | 5,452 | PBS | 2026-10 | 功能 檢索結果按 成分 → 劑量 → 品牌 → 廠商 表格呈現;成分與劑量是第一優先順序。
- 六種文字正規化:拉丁、中文、西里爾、全形、配比
875/125、濃度5 mg/5 ml。 - 同名碰撞自動推導:不同活性成分 = 嚴重,釋放機制不同 = 警告。
- 跨語言品牌家族:Tylenol ↔ 泰諾 ↔ 泰諾林、Benadryl、Gaviscon、Lipitor ↔ 立普妥。
- BAN↔USAN 同義詞 24 組:paracetamol ↔ acetaminophen 等。
- 三語介面(EN / ES / 中文)。
- 模糊匹配只在完全沒有直接命中時啟用,避免
Lipitor帶出Zifitor。 - 已知缺口 中國複方塌陷:4,411 行復方(二甲雙胍格列本脲、纈沙坦氨氯地平、 厄貝沙坦氫氯噻嗪、阿莫西林克拉維酸…)只入庫了第一個成分,第二個被吞掉。 待修,優先順序最高。
- 中國中成藥(98,703 行)預設未入庫:只有 42 行帶真實商品名。
- 西班牙 208 條四成分以上覆方未入庫(列表介面
vtm為佔位符multicomponente)。 - 英國
Co-Amoxiclav等組合名未拆成兩個成分。 - 劑量只做到同型對應(D1);鹽基折算(D2)與不可互換判定(D3)未實現。
- ATC 覆蓋不全:西班牙補了 1,809 個成分,其餘市場多為空。