|
1 | | -# Horseman |
| 1 | +# 👋 |
2 | 2 |
|
3 | | -This repository is for tracking issues and feature requests for the Horseman crawler. |
| 3 | +This repository is for detailed update notes, and for tracking issues and feature requests for the [Horseman](https://gethorseman.app) crawler. |
4 | 4 |
|
5 | 5 | https://github.com/workeffortwaste/horseman/issues |
6 | 6 |
|
7 | | -👀 |
| 7 | +# Horseman v0.3 |
8 | 8 |
|
9 | | -## Current Version |
| 9 | +**tl;dr** 🕷️ *Crawl the web with GPT3.5 and use page content with prompts. 🤖Don't know JS? Create snippets with an AI helper instead. 🌌 Deeper exploration with new the Insights feature. 🤯 Huge number of new snippets and much more.* |
10 | 10 |
|
11 | | -The latest version is v0.2.4 for Windows, MacOS (M1 and Intel), and Linux. |
| 11 | +## Patch Notes |
| 12 | + |
| 13 | +Let's get the obligatory patch notes out the way. A lot of bugs have been squashed, elements polished, and the edges removed from many cases. |
| 14 | + |
| 15 | +## New Features |
| 16 | + |
| 17 | +With that out the way let’s talk about the big new features in Horseman v0.3. |
| 18 | + |
| 19 | +### OpenAI GPT 3.5 Integration |
| 20 | + |
| 21 | +GPT3.5 has been integrated directly in Horseman in a couple of ways. 👇 |
| 22 | + |
| 23 | +### Prompts In Snippets |
| 24 | + |
| 25 | +****************Requires an OpenAI API key (add yours under the main Settings menu).**************** |
| 26 | + |
| 27 | +Query GPT with any prompt by returning the new `prompt` property from your snippet. Combine any piece of page data, or send the entire page to GPT for analysis. |
| 28 | + |
| 29 | +Example snippets using page content have been added to the *New* button in the Editor. You’ll also find newly created built-in snippets in the library to rewrite meta descriptions, write missing meta descriptions, and summarize page content. |
| 30 | + |
| 31 | +```jsx |
| 32 | +/* horseman-config enable-openai */ |
| 33 | + |
| 34 | +/* Generate a beautiful poem from the meta description using GPT */ |
| 35 | + |
| 36 | +/* Fetch the meta description */ |
| 37 | +const meta = document.querySelector('meta[name="description"]')?.getAttribute('content') |
| 38 | + |
| 39 | +/* Skip the snippet if the page doesn't have a meta description */ |
| 40 | +if (!meta) return |
| 41 | + |
| 42 | +/* Ask gpt-3.5-turbo to generate a poem */ |
| 43 | +return { |
| 44 | + prompt: `Rewrite the following as a short 160 character poem: ${meta}` |
| 45 | +} |
| 46 | +``` |
| 47 | +
|
| 48 | +Further basic examples can be found in the `examples` folder in this repository. |
| 49 | +
|
| 50 | +### No-Code AI Helper |
| 51 | +
|
| 52 | +****************************Does not require an OpenAI API key.**************************** |
| 53 | +
|
| 54 | +Don’t know JavaScript? That’s no longer an issue. You’ll find a new button in the Editor, *No-Code AI*, which will use the power of GPT to automatically create simple Horseman snippets from a description. |
| 55 | +
|
| 56 | +Entering a brief description such as `the social meta image` will instantly create a snippet fetching and returning the image used for social shares in the open graph data. |
| 57 | +
|
| 58 | +## Insights |
| 59 | +
|
| 60 | +A fully explorable report showing statistics about the number of failing or passing pages per snippet. *Think of it as your own customisable audit.* |
| 61 | +
|
| 62 | +All built in snippets have been updated to support this feature (where it makes sense) and your own snippets can use this feature with ease. Any snippet returning a `pass` / `fail` string (or the new State property) can enable Insights with the new configuration helper or the `enable-insights` directive. |
| 63 | +
|
| 64 | +## States |
| 65 | +
|
| 66 | +You are now no longer limited to defining a snippet as passing by only returning a `pass` / `fail` string, with the new state property of the return object you can show the state alongside the data in the results table. |
| 67 | +
|
| 68 | +```jsx |
| 69 | +/* horseman-config enable-state */ |
| 70 | + |
| 71 | +/* Using the new state property to send a fail state if num is more than 1 */ |
| 72 | +const num = 2 |
| 73 | + |
| 74 | +return { |
| 75 | + cell: num |
| 76 | + state: num > 1 ? 'fail' : 'pass' |
| 77 | +} |
| 78 | +``` |
| 79 | +
|
| 80 | +## Deeper Explorations |
| 81 | +
|
| 82 | +Explore additional data more easily by viewing it per snippet instead of just by page. Hover over the column header for a snippet with explore enabled to find the new option. |
| 83 | +
|
| 84 | +What’s more, when in the additional table, hovering over the column headers you’ll then be able to filter the results by unique values. |
| 85 | +
|
| 86 | +## Configuration Helper |
| 87 | +
|
| 88 | +As the features of Horseman have grown trying to remember all the snippet directives can be a little tricky. A new configuration helper will toggle your `horseman-config` directives with no fuss. |
| 89 | +
|
| 90 | +## Updated Chrome |
| 91 | +
|
| 92 | +The version of Chromium used for crawling has been updated to v111 for a faster and more robust crawl. *My favourite new addition?* You can now use the `:has` selector in your snippets for more advanced element selection! |
| 93 | +
|
| 94 | +## More Data Types |
| 95 | +
|
| 96 | +Automatically split up CSV strings into tags with the new `data-type-tag`. |
| 97 | +
|
| 98 | +Visualise colours directly in your crawl with `data-type-color` return any valid CSS colour value and render it as a coloured tag in the results table. |
| 99 | +
|
| 100 | +## New Snippets |
| 101 | +
|
| 102 | +*Over 40 new snippets have been added to the library!* Including ecommerce snippets which extract product information straight from the DataLayer, AI enhanced snippets to rewrite and analyse content, cookie consent platform discovery, and much more. |
| 103 | +
|
| 104 | +## Updated Website |
| 105 | +
|
| 106 | +I've given the website a small refresh as the tool get much closer to v1.0, check it out and download the latest version now. https://gethorseman.app/ |
0 commit comments