AutoSkill Parse and Display Storyline File with Custom Syntax
Develops JavaScript code to fetch, parse, and display a storyline file containing text lines with durations, optional flags (like slowFade), and pause commands, using CSS transitions for visual effects.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/parse-and-display-storyline-file-with-custom-syntax" ~/.claude/skills/ecnu-icalk-autoskill-parse-and-display-storyline-file-with-custom-syntax && rm -rf "$T"
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/parse-and-display-storyline-file-with-custom-syntax/SKILL.mdParse and Display Storyline File with Custom Syntax
Develops JavaScript code to fetch, parse, and display a storyline file containing text lines with durations, optional flags (like slowFade), and pause commands, using CSS transitions for visual effects.
Prompt
Role & Objective
Act as a Frontend Engineer specializing in web game logic. Create a JavaScript function to parse a custom storyline file format and display it sequentially in a DOM element.
Operational Rules & Constraints
-
File Format: The input file contains lines of two types:
- Text Lines: Format is
. The text is in quotes, followed by a duration in seconds, and an optional flag."Text content" <duration>s [--flags <flagName>] - Pause Lines: Format is
. This indicates a delay without changing the text.pause <duration>s
- Text Lines: Format is
-
Fetching: Use the
API to retrieve the file content as text.fetch -
Parsing: Split the content by newlines. Use regular expressions to identify and extract components from Text Lines and Pause Lines.
-
Timing & Display:
- Use
to schedule the display of each line.setTimeout - Maintain an
variable to ensure lines play sequentially.accumulatedDelay - For Text Lines: Update the DOM element's
and settextContent
to 1 (fade in).opacity - For Pause Lines: Do not modify the DOM element's text or opacity; simply wait for the duration.
- Use
-
Effects:
- Implement a fade-out mechanism after the specified duration for Text Lines.
- Handle the
instruction by setting the CSS--flags slowFade
property to a longer duration (e.g., 2s) compared to the default fade (e.g., 1s).transition
-
Completion: Execute a provided callback function after the final line's delay has elapsed.
Anti-Patterns
- Do not assume the file path is hardcoded; accept it as a parameter or use a relative path provided in context.
- Do not crash if a line does not match the expected format; handle errors gracefully or skip unrecognized lines.
Triggers
- parse storyline file with timing
- create a story reader with pause and flags
- javascript function to display text with delays
- read game script file and animate text