glost-presets
v0.5.2
Published
Preset configurations for common GLOST use cases
Readme
glost-presets
Preset configurations for common GLOST use cases.
Overview
glost-presets provides pre-configured plugin combinations for common language learning and text processing scenarios.
Installation
npm install glost-presets
# or
pnpm add glost-presetsAvailable Presets
Language Learning Preset
Complete language learning stack with all features.
Includes: Transcription, Translation, Frequency, Difficulty, POS
import { glost } from "glost-processor";
import { languageLearningPreset } from "glost-presets";
const processor = glost()
.use(languageLearningPreset);
const result = await processor.process(document);Customized:
import { createLanguageLearningPreset } from "glost-presets";
const preset = createLanguageLearningPreset({
transcriptionScheme: "ipa",
translationTarget: "es",
includePos: false
});
const processor = glost().use(preset);Reading App Preset
Optimized for interactive reading applications.
Includes: Transcription, Translation, Clause Segmentation
import { readingAppPreset } from "glost-presets";
const processor = glost()
.use(readingAppPreset);Vocabulary Builder Preset
Focus on word frequency and difficulty for vocabulary learning.
Includes: Frequency, Difficulty, Translation
import { vocabularyBuilderPreset } from "glost-presets";
const processor = glost()
.use(vocabularyBuilderPreset);Grammar Analyzer Preset
Focus on grammatical analysis.
Includes: POS Tagging, Clause Segmentation, Gender
import { grammarAnalyzerPreset } from "glost-presets";
const processor = glost()
.use(grammarAnalyzerPreset);Minimal Preset
Just the essentials.
Includes: Transcription, Translation
import { minimalPreset } from "glost-presets";
const processor = glost()
.use(minimalPreset);Creating Custom Presets
You can create your own presets:
import type { Preset } from "glost-processor";
const myCustomPreset: Preset = {
id: "my-custom",
name: "My Custom Preset",
description: "My custom plugin combination",
plugins: [
["transcription", { scheme: "ipa" }],
"frequency",
["my-plugin", { option: "value" }]
]
};
const processor = glost()
.use(myCustomPreset);Combining Presets
You can use multiple presets or extend them:
import { glost } from "glost-processor";
import { minimalPreset } from "glost-presets";
const processor = glost()
.use(minimalPreset)
.use("frequency") // Add frequency on top
.use("difficulty"); // And difficultyCustomization Functions
Each preset has a customization function:
createLanguageLearningPreset(options)createReadingAppPreset(options)createVocabularyBuilderPreset(options)createGrammarAnalyzerPreset(options)createMinimalPreset(options)
These let you customize the preset while keeping the overall structure.
Use Cases
Language Learning App
import { languageLearningPreset } from "glost-presets";
const processor = glost()
.use(languageLearningPreset)
.before("translation", async (doc) => {
// Cache original text before translation
})
.after("difficulty", (doc) => {
// Send analytics after difficulty calculation
});Reading Tool
import { readingAppPreset } from "glost-presets";
const processor = glost()
.use(readingAppPreset)
.onProgress((stats) => {
updateProgressBar(stats.completed / stats.total);
});Vocabulary Flashcards
import { vocabularyBuilderPreset } from "glost-presets";
const processor = glost({ lenient: true })
.use(vocabularyBuilderPreset);
const result = await processor.processWithMeta(document);
const words = getAllWords(result.document);
// Create flashcards from words with frequency/difficulty
const flashcards = words
.filter(w => w.extras?.frequency?.level === "common")
.map(createFlashcard);API
Each preset is a Preset object with:
interface Preset {
id: string;
name: string;
description: string;
plugins: Array<PluginSpec | [PluginSpec, any]>;
}License
MIT
