robinson

A toy web rendering engine

  • 所有者: mbrubeck/robinson
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Robinson

A toy web rendering engine written in the Rust language, by Matt Brubeck
(mbrubeck@limpet.net).

I'm writing this code purely for educational purposes. My goal is to create an
incomplete but extremely simple engine as a way to learn more about basic
implementation techniques, without worrying about complications like:

  • Real-world usability
  • Standards compliance
  • Performance and efficiency
  • Interoperability

These are all important goals, but there are other projects working on them.
By ignoring them completely, this project can focus on being as simple and
easy-to-understand as possible.

Why create a simple—but useless—toy rendering engine? Mostly because I
personally want to learn how to do it. If I succeed, I also hope that other
people can learn from my code by reading or modifying it, or learn from my
experience as they set out to build their own toy browser engines.

For more details see Let's build a browser engine!, a series of
how-to articles based on this project.

Status

Currently implemented:

  • Parse a small subset of HTML and build a DOM tree.
  • Parse a small subset of CSS.
  • Perform selector matching to apply styles to elements.
  • Basic block layout.

Coming soon, I hope:

  • Inline layout.
  • Paint text and boxes.
  • Load resources from network or filesystem.

Instructions

  1. Install Rust 1.0 beta or newer.

  2. Clone the robinson source code from https://github.com/mbrubeck/robinson

  3. Run cargo build to build robinson, and cargo run to run it.

To build and run with optimizations enabled, use cargo build --release and
cargo run --release.

By default, robinson will load test.html and test.css from the examples
directory. You can use the --html and --css arguments to the robinson
executable to change the input files:

./target/debug/robinson --html examples/test.html --css examples/test.css

The rendered page will be saved to a file named output.png. To change the
output filename, use the -o option. To switch to PDF output, use add
--format pdf.

主要指標

概覽
名稱與所有者mbrubeck/robinson
主編程語言Rust
編程語言Rust (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2014-07-03 21:43:14
推送於2024-07-16 23:41:43
最后一次提交2024-07-16 15:11:57
發布數0
用户参与
星數1.6k
關注者數34
派生數137
提交數205
已啟用問題?
問題數11
打開的問題數4
拉請求數14
打開的拉請求數1
關閉的拉請求數4
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?