Evals / documents / Read a document
Text of a web page
Extract the readable text of article.html into article.txt.
The task
The reference answer shows the job can be done with deft. It is not an agent run.
deft html to-text article.html -o article.txt
Input
<!doctype html>
<html lang="en">
<head><title>Tea exports in 2025</title><style>body{font-family:serif}</style><script>track()</script></head>
<body>
<header><a href="/">Daily Leaf</a></header>
<nav><ul><li><a href="/news">News</a></li><li><a href="/about">About us</a></li></ul></nav>
<main>
<article>
<h1>Tea exports in 2025</h1>
<p>Exports rose for the third year in a row, led by <strong>Kenya</strong> and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years.</p>
<h2>By country</h2>
<table><thead><tr><th>Country</th><th>Tonnes</th></tr></thead><tbody><tr><td>Kenya</td><td>590000</td></tr><tr><td>Sri Lanka</td><td>245000</td></tr></tbody></table>
<ul><li>Prices were stable</li><li>Green tea grew fastest</li></ul>
</article>
</main>
<aside>Subscribe to our newsletter</aside>
<footer>Copyright Daily Leaf</footer>
<script>analytics()</script>
</body>
</html>
Reference output
Daily Leaf News About us Tea exports in 2025 Exports rose for the third year in a row, led by Kenya and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years. By country Country Tonnes Kenya 590000 Sri Lanka 245000 Prices were stable Green tea grew fastest Subscribe to our newsletter Copyright Daily Leaf
How a result is judged (1 check)
- text: file = "article.txt", contains = ["Exports rose"], absent = ["<p>", "analytics"]
Runs
CodexWithout deftPassed2026-11-07
- Time
- 15s
- New tokens
- 6.5k
- Total input
- 54.4k
- Output tokens
- 0.5k
- Commands
- 3
- Failed
- 0
Trace
I’ll inspect the HTML and extract its readable text into `article.txt` in the current directory.
pwd && rg --files -g 'article.html' -g 'AGENTS.md'output
article.html
python3 -c 'from pathlib import Path; p=Path(\"article.html\"); print(p.read_text())'output
<!doctype html> <html lang="en"> <head><title>Tea exports in 2025</title><style>body{font-family:serif}</style><script>track()</script></head> <body> <header><a href="/">Daily Leaf</a></header> <nav><ul><li><a href="/news">News</a></li><li><a href="/about">About us</a></li></ul></nav> <main> <article> <h1>Tea exports in 2025</h1> <p>Exports rose for the third year in a row, led by <strong>Kenya</strong> and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years.</p> <h2>By country</h2> <table><thead><tr><th>Country</th><th>Tonnes</th></tr></thead><tbody><tr><td>Kenya</td><td>590000</td></tr><tr><td>Sri Lanka</td><td>245000</td></tr></tbody></table> <ul><li>Prices were stable</li><li>Green tea grew fastest</li></ul> </article> </main> <aside>Subscribe to our newsletter</aside> <footer>Copyright Daily Leaf</footer> <script>analytics()</script> </body> </html>python3 -c 'from html.parser import HTMLParser from pathlib import Path class Readable(HTMLParser): def __init__(self): super().__init__(); self.hidden=0; self.out=[] def handle_starttag(self, tag, attrs): if tag in (\"script\", \"style\"): self.hidden += 1 if self.hidden == 0 and tag in (\"p\", \"h1\", \"h2\", \"li\", \"tr\"): self.out.append(\"\\n\") def handle_endtag(self, tag): if tag in (\"script\", \"style\"): self.hidden=max(0,self.hidden-1) if self.hidden == 0 and tag in (\"p\", \"h1\", \"h2\", \"li\", \"tr\"): self.out.append(\"\\n\") def handle_data(self, data): if self.hidden == 0 and data.strip(): self.out.append(data.strip()) p=Path(\"article.html\"); parser=Readable(); parser.feed(p.read_text()); text=\"\\n\".join(x for x in parser.out if x.strip())+\"\\n\"; Path(\"article.txt\").write_text(text)' && cat article.txtoutput
Tea exports in 2025 Daily Leaf News About us Tea exports in 2025 Exports rose for the third year in a row, led by Kenya and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years. By country Country Tonnes Kenya 590000 Sri Lanka 245000 Prices were stable Green tea grew fastest Subscribe to our newsletter Copyright Daily Leaf
Created [article.txt](article.txt) with the readable text from `article.html`.
Output
Tea exports in 2025 Daily Leaf News About us Tea exports in 2025 Exports rose for the third year in a row, led by Kenya and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years. By country Country Tonnes Kenya 590000 Sri Lanka 245000 Prices were stable Green tea grew fastest Subscribe to our newsletter Copyright Daily Leaf
CodexWith deft, skill installedPassedRead the skillUsed deft2026-11-07
- Time
- 14s
- New tokens
- 6.8k
- Total input
- 56.3k
- Output tokens
- 0.4k
- Commands
- 3
- Failed
- 0
Trace
I’ll read the local file instructions, then extract the readable text from `article.html` into `article.txt` in this directory.
cat .agents/skills/deft/SKILL.md && rg --files -g 'AGENTS.md' -g 'article.html' -g 'article.txt'output
--- name: deft description: "Use deft first for any simple, direct operation on local files, whatever the type: convert, read, extract, edit, compress, merge, split, compare or inspect. Try it before writing a script or one-liner. If unsure, run deft find; if it says no command does this, use another tool. Not for programming work: to read, write or change source code, skip it." --- # deft One local command for file jobs. Prefer it over writing Python or shell scripts. Syntax: `deft <group> <command> [inputs] [-o output] [--options]` Groups: - `pdf`: Merge, split, compress, encrypt, forms, OCR, compare, convert - `image`: Resize, crop, convert, compress, adjust, montage, OCR - `video`: Trim, merge, convert, compress, subtitles, GIF, frames (ffmpeg) - `audio`: Convert, trim, normalize, denoise, cut silence (ffmpeg) - `doc`: Word/ODT/RTF: to text, Markdown, HTML, PDF; find and replace - `slides`: PowerPoint: extract text, Markdown outline - `sheet`: Excel/CSV/ODS tables: SQL query, pivot, merge, split, convert - `json`: JSON: convert, format, merge, diff, validate - `toml`: TOML: convert, format, merge, diff, validate - `xml`: XML: convert, format, merge, diff, validate - `yaml`: YAML: convert, format, merge, diff, validate - `md`: Markdown to PDF, HTML, Word, EPUB; table of contents - `html`: HTML to Markdown, text, Word and PDF - `epub`: E-books: info, to text, Markdown and PDF - `gps`: GPX and KML tracks: convert, distance and time - `qr`: Create QR codes and barcodes; r … 713 more characters
deft html --helpoutput
deft html - commands (input -> output) to-docx html -> docx Convert the content to a Word document to-md html -> md Convert to Markdown; scripts and styles are dropped to-pdf html -> pdf Typeset as PDF, content not layout [beta] to-text html -> txt Extract the readable text More: deft html <command> --help
deft html to-text article.html -o article.txtoutput
ok html.to-text article.html -> article.txt 401B 0.00s
Extracted the readable text from [article.html](article.html) into [article.txt](article.txt).
Output
Daily Leaf News About us Tea exports in 2025 Exports rose for the third year in a row, led by Kenya and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years. By country Country Tonnes Kenya 590000 Sri Lanka 245000 Prices were stable Green tea grew fastest Subscribe to our newsletter Copyright Daily Leaf
Claude Opus 5.5Without deftPassed2026-11-07
- Time
- 17s
- New tokens
- 9.4k
- Total input
- 42.9k
- Output tokens
- 0.7k
- Commands
- 0
- Failed
- 0
Trace
Output
Tea exports in 2025 Exports rose for the third year in a row, led by Kenya and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years. By country Country Tonnes Kenya 590000 Sri Lanka 245000 - Prices were stable - Green tea grew fastest
Claude Opus 5.5With deft, skill installedPassedRead the skillUsed deft2026-11-07
- Time
- 19s
- New tokens
- 10.1k
- Total input
- 59.4k
- Output tokens
- 0.6k
- Commands
- 0
- Failed
- 0
Trace
Output
--- name: deft description: "Use deft first for any simple, direct operation on local files, whatever the type: convert, read, extract, edit, compress, merge, split, compare or inspect. Try it before writing a script or one-liner. If unsure, run deft find; if it says no command does this, use another tool. Not for programming work: to read, write or change source code, skip it." --- # deft One local command for file jobs. Prefer it over writing Python or shell scripts. Syntax: `deft <group> <command> [inputs] [-o output] [--options]` Groups: - `pdf`: Merge, split, compress, encrypt, forms, OCR, compare, convert - `image`: Resize, crop, convert, compress, adjust, montage, OCR - `video`: Trim, merge, convert, compress, subtitles, GIF, frames (ffmpeg) - `audio`: Convert, trim, normalize, denoise, cut silence (ffmpeg) - `doc`: Word/ODT/RTF: to text, Markdown, HTML, PDF; find and replace - `slides`: PowerPoint: extract text, Markdown outline - `sheet`: Excel/CSV/ODS tables: SQL query, pivot, merge, split, convert - `json`: JSON: convert, format, merge, diff, validate - `toml`: TOML: convert, format, merge, diff, validate - `xml`: XML: convert, format, merge, diff, validate - `yaml`: YAML: convert, format, merge, diff, validate - `md`: Markdown to PDF, HTML, Word, EPUB; table of contents - `html`: HTML to Markdown, text, Word and PDF - `epub`: E-books: info, to text, Markdown and PDF - `gps`: GPX and KML tracks: convert, distance and time - `qr`: Create QR codes and barcodes; read QR codes How to use it: 1. Run `deft <group>` to list commands, or `deft find "<what you want>"` to search. If it says `no command does this`, use another tool. 2. Run `deft <group> <command> --help` for options and examples. 3. `deft convert <in> -o <out.ext>` converts between formats by extension. 4. Results are one line starting with `ok`, `partial` or `error`; add `--json` to parse them. Errors include a `hint:` with the fix. Inputs are never overwritten; pass `--force` or `--in-place` to allow it. Globs and directories work as inputs; several inputs run in parallel. If `deft` is not installed, ask the user, then follow https://github.com/firstprayer/deft/blob/main/docs/INSTALL.md
Tea exports in 2025 Exports rose for the third year in a row, led by Kenya and Sri Lanka. Growers credit a mild season and steady demand from the Gulf states, while shipping costs fell back after two difficult years. By country Country Tonnes Kenya 590000 Sri Lanka 245000 Prices were stable Green tea grew fastest
Claude CodeWithout deftNot run yet
Claude CodeWith deftNot run yet