@unifast/core

unifast çalışma zamanı paketleri arasında paylaşılan TypeScript tip tanımları, HAST yardımcıları ve hata sınıfları

Genel Bakış

@unifast/core, derleme seçenekleri, sonuçlar, HAST (HTML Soyut Sözdizimi Ağacı) düğümleri, plugin arayüzü ve hata sınıfları için paylaşılan TypeScript tip tanımlarını sağlar. @unifast/node gibi çalışma zamanı paketlerinin bağımlılığıdır — genellikle doğrudan yüklemenize gerek yoktur.

Derleyici ve dahili plugin’ler için @unifast/node kullanın.

Kurulum

Tip Tanımları

CompileOptions

compile() fonksiyonu için yapılandırma.

ÖzellikTürVarsayılanAçıklama
inputKind"md" | "mdx""md"Girdi biçimi
outputKind"html" | "hast" | "mdast" | "mdxJs""html"Çıktı biçimi
gfmobject-GitHub Flavored Markdown ayarları
gfm.tablesboolean-GFM tablolarını etkinleştir
gfm.taskListboolean-Görev listesi onay kutularını etkinleştir
gfm.strikethroughboolean-~~üstü çizili~~ etkinleştir
gfm.footnotesboolean-Dipnotları etkinleştir
gfm.autolinkboolean-URL otomatik bağlantısını etkinleştir
frontmatterobject-Frontmatter ayrıştırma ayarları
frontmatter.yamlboolean-YAML frontmatter’ı ayrıştır
frontmatter.tomlboolean-TOML frontmatter’ı ayrıştır
frontmatter.jsonboolean-JSON frontmatter’ı ayrıştır
rawHtml"disallow" | "allowDangerous" | "parseAndSanitize"-Kaynaktaki ham HTML’in nasıl işleneceği
sanitizeobject-HTML temizleme ayarları
sanitize.enabledboolean-Temizlemeyi etkinleştir
sanitize.schemaSanitizeSchema-Özel temizleme kuralları
highlightobject-Sözdizimi vurgulama ayarları
highlight.enabledboolean-Sözdizimi vurgulamayı etkinleştir
highlight.engine"none" | "syntect" | "treeSitter"-Vurgulama motoru
slugobject-Başlık slug oluşturma ayarları
slug.mode"github" | "unicode"-Slug oluşturma algoritması
tocobject-İçindekiler tablosu ayarları
toc.enabledboolean-TOC çıkarmayı etkinleştir
toc.maxDepthnumber-Dahil edilecek maksimum başlık derinliği
diagnosticsobject-Tanılama çıktı ayarları
diagnostics.format"compact" | "verbose"-Tanılama biçimi
cacheobject-Önbelleğe alma ayarları
cache.enabledboolean-Sonuç önbelleğini etkinleştir
cache.dirstring-Önbellek dizin yolu
pluginsUnifastPlugin[][]Uygulanacak plugin dizisi

CompileResult

compile() fonksiyonu tarafından döndürülür.

ÖzellikTürAçıklama
outputstring | objectDerlenmiş çıktı (outputKind‘a bağlı olarak HTML string, HAST JSON veya MDAST JSON)
frontmatterRecord<string, unknown>Ayrıştırılmış frontmatter üst verisi
diagnosticsDiagnostic[]Uyarı ve hata dizisi
stats{ parseMs, transformMs, emitMs }Milisaniye cinsinden zamanlama dökümü
tocTocEntry[]Çıkarılan içindekiler tablosu girişleri

Diagnostic

ÖzellikTürAçıklama
level"error" | "warn"Önem düzeyi
messagestringİnsan tarafından okunabilir mesaj
startnumber | undefinedKaynaktaki başlangıç bayt ofseti
endnumber | undefinedKaynaktaki bitiş bayt ofseti
linenumber | undefinedSatır numarası (1-tabanlı)
columnnumber | undefinedSütun numarası (1-tabanlı)

TocEntry

İçindekiler tablosu için çıkarılan tek bir başlık.

ÖzellikTürAçıklama
depthnumberBaşlık düzeyi (1-6)
textstringBaşlığın düz metin içeriği
slugstringBağlantı oluşturma için üretilen slug

SanitizeSchema

Özel temizleme kuralları.

ÖzellikTürAçıklama
allowedTagsstring[]İzin verilen HTML etiketleri
allowedAttributesRecord<string, string[]>Etiket başına izin verilen öznitelikler
allowedProtocolsRecord<string, string[]>Öznitelik başına izin verilen URL protokolleri

UnifastPlugin

unifast’i genişletmek için plugin arayüzü.

ÖzellikTürAçıklama
namestringBenzersiz plugin adı
options?Partial<CompileOptions>Derleme seçeneklerine birleştirilecek seçenekler
hastTransform?(hast: HastRoot) => HastRootDerlemeden sonra HAST ağacını dönüştür

HAST Düğüm Türleri

Türtype alanıÖzelliklerAçıklama
HastRoot"root"children: HastNode[]Ağacın kök düğümü
HastElement"element"tagName, properties, childrenBir HTML elemanı
HastText"text"value: stringBir metin düğümü
HastRaw"raw"value: stringHam HTML geçişi
HastComment"comment"value: stringBir HTML yorumu
HastDoctype"doctype"-Bir <!DOCTYPE html> düğümü

HastNode birleşim türüdür: HastRoot | HastElement | HastText | HastRaw | HastComment | HastDoctype

Hata Sınıfları

SınıfGenişletirÖzelliklerAçıklama
UnifastErrorErrorcode?: string, span?: { start, end }Tüm unifast hataları için temel hata sınıfı
ParseErrorUnifastErrorcode: "PARSE_ERROR"Markdown/MDX girdisi ayrıştırılamadığında fırlatılır
CompileErrorUnifastErrorcode: "COMPILE_ERROR"Ayrıştırmadan sonra derleme başarısız olduğunda fırlatılır
import { UnifastError, ParseError, CompileError } from "@unifast/core";

try {
  // ... bir şey derle
} catch (err) {
  if (err instanceof ParseError) {
    console.error(`Parse error at ${err.span?.start}: ${err.message}`);
  } else if (err instanceof CompileError) {
    console.error(`Compile error: ${err.message}`);
  }
}

Export Özeti

ExportTürAçıklama
CompileOptionstypeDerleme yapılandırması
CompileResulttypeDerleme sonucu
TocEntrytypeİçindekiler tablosu girişi
SanitizeSchematypeTemizleme kuralları
UnifastPlugintypePlugin arayüzü
HastNodetypeTüm HAST düğüm türlerinin birleşimi
HastRoottypeHAST kök düğümü
HastElementtypeHAST eleman düğümü
HastTexttypeHAST metin düğümü
HastRawtypeHAST ham HTML düğümü
HastCommenttypeHAST yorum düğümü
HastDoctypetypeHAST doctype düğümü
hastToHtmlfunctionHAST’den HTML’e serileştirici
escapeHtmlfunctionHTML özel karakterlerini kaçır (&, <, >, ")
extractLangfunctionBir HAST <code> elemanından dil tanımlayıcısı çıkar
extractTextfunctionBir HAST düğümünden düz metin içeriği çıkar
findCodeChildfunctionBir <pre> elemanının içindeki <code> alt elemanını bul
visitHastfunctionHAST ağaçlarında dolaşmak için ziyaretçi kalıbı yardımcısı
UnifastErrorclassTemel hata sınıfı
ParseErrorclassAyrıştırma hatası sınıfı
CompileErrorclassDerleme hatası sınıfı