Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tiny little Grammar changes #89

Merged
merged 1 commit into from
Oct 3, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 18 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# GoSub: Gateway to Optimized Searching and Unlimited Browsing

A feeble attempt on writing a browser and learning rust.
A feeble attempt at writing a browser and learning rust.

**Note: code in the main branch is currently not stable and might not even compile.**
**Note: code in the main branch is currently unstable and might not even compile.**

```
_
Expand All @@ -19,27 +19,26 @@ A feeble attempt on writing a browser and learning rust.

## About

This repository is part of the GoSub browser project. Currently there is only a single component/repository (this one),
but the idea will be that there are many other components that as a whole make up a full-fledged browser. Each of the
components can probably function as something standalone (ie: html5 parser, css parser, etc).
This repository is part of the GoSub browser project. Currently, there is only a single component/repository (this one),
but the idea will be that there are many other components that, as a whole, make up a full-fledged browser. Each of the
components can probably function as something standalone (ie, html5 parser, CSS parser, etc.).

In the future, this component (html5 parser) will receive through an API a stream of bytes and will output a stream of
events. The events will be consumed by the next component and so on, until we can display something in a window/user
agent. This could very well be a text-mode browser, but the idea is to have a graphical browser.
In the future, this component (HTML5 parser) will receive a stream of bytes through an API and output a stream of
events. The next component will consume the events, and so on, until we can display something in a window/user
agent. This could be a text-mode browser, but the idea is to have a graphical browser.


## Status

This is a work in progress. The current status is that the parser can parse a few html5 documents, but it is far from
This is a work in progress. The current status is that the parser can parse a few HTML5 documents, but it is far from
ready. The main goal is to be able to parse correctly all the tests in the html5lib-tests repository
(https://github.com/html5lib/html5lib-tests). As soon as we can do this, we can try and see if we can generate a DOM
tree and then we can start thinking about the next component (css parser).
tree, and then we can start thinking about the next component (CSS parser).

## How to build

This project uses cargo (https://doc.rust-lang.org/cargo/). To build the project, simply run:

```
This project uses cargo (https://doc.rust-lang.org/cargo/). To build the project, run:
```bash
cargo build
```

Expand All @@ -54,23 +53,23 @@ This will create the following binaries and libs:

### Gosub-engine

This is the actual html5 parser/tokenizer. It is a library that can be used by other projects. It is not a standalone
project. It is used by the gosub-browser project.
This is the actual html5 parser/tokenizer. It is a library that can be used for other projects. It is not a standalone
project. It is used by the `gosub-browser` project.

### Gosub-browser

This is a dummy browser. It is not a real browser, it is just a test project to see if the parser/tokenizer is working
and tries to parse the given url on the command line:
and tries to parse the given URL on the command line:

```shell
```bash
$ gosub-browser https://www.google.com
```

### Parser_test

This is a test suite for the parser. It is not a standalone project. It is used by the gosub-engine project. You need
to specify the directory to the html5lib-test in order to run, or it will use the default one (./html5lib-tests).
to specify the directory to the html5lib-test to run, or it will use the default one (./html5lib-tests).

```shell
```bash
$ parser_test /path/to/html5lib-tests
```
Loading