pax_global_header00006660000000000000000000000064151630131300014503gustar00rootroot0000000000000052 comment=2ae88a1c6b5261830eff73ee12bb3cdf805f3cfe lexbor-3.0.0/000077500000000000000000000000001516301313000127765ustar00rootroot00000000000000lexbor-3.0.0/.github/000077500000000000000000000000001516301313000143365ustar00rootroot00000000000000lexbor-3.0.0/.github/FUNDING.yml000066400000000000000000000002651516301313000161560ustar00rootroot00000000000000# GitHub Sponsorship Configuration github: patreon: open_collective: ko_fi: tidelift: community_bridge: liberapay: issuehunt: otechie: custom: ["https://boosty.to/lexbor"] lexbor-3.0.0/.github/workflows/000077500000000000000000000000001516301313000163735ustar00rootroot00000000000000lexbor-3.0.0/.github/workflows/cmake.yml000066400000000000000000000027111516301313000201770ustar00rootroot00000000000000name: CMake on: push: branches: [ "master" ] pull_request: branches: [ "master" ] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build: # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. # You can convert this to a matrix build if you need cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DLEXBOR_BUILD_EXAMPLES=ON -DLEXBOR_BUILD_TESTS=ON -DLEXBOR_BUILD_UTILS=ON - name: Build # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Test working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C ${{env.BUILD_TYPE}} lexbor-3.0.0/.travis.yml000066400000000000000000000032651516301313000151150ustar00rootroot00000000000000language: c compiler: - clang - gcc install: skip env: global: - PROCS=2 - secure: "Zh2oYit2y9TJb0U1omqoN2UMxVJAn08pJKTPOxHEsFOkDrNaLI2rptXYRJ1TjRNpOKc6FXDYt+Ut0lIehmJ9qOcBFs2sn6laRitytiA5eBrKdifyaJCNvF2PyZWgilRBBN2DyFJQJmWQRLz3w/bWbyHSpD10g6P0n92FGHXMyUEAqq0swmGE9HVug8cZYnJ8DfUGyHHp0+sxWOIKCVzi+UHisCGIYs4xkvidV7D0dVNIM3CsZfBvyNeRRtOzwsGVqx07PVjIWPjo9KZ38ndgz+sk3b74Ip/fYQ0iEGlZ6U+t+lMGBq1kZVMewSjgcStYI8lV5FedIlNK2bVoUQdta6uQi1kg7tJYmyM9FPiQ+SEN2WyoRg54Rr/Xaw9CGwP3qZ2FcL3TWBKLY3EKm2TJGxqhtqJt9pgbNoVimeH5KvyYZB2mdd3eK7a3Zf4TobTy0qcuKxXDI9UpkUsrp2WmTppXzuradBU0IjBGsaIbwGJSWyhq1l7U0Jl2qF2vXf0HckUVDZOieEEtGQxrJeX+BtM0N7hQ674T74LCQ9xuHdL9ZEcyxGk8fzKkB5aLSW3j+1i9E4tq9Ycf085ISCWmp1lbpXQj5JDZbiw9GxoGXPJfW0VKlKP7NUd1eSq16Ym37DcVUuXyPJobyxe7DujoZbeRXLMEA1pVeJU6ZEp9+BA=" matrix: - TARGET=test - OS=el DIST=6 - OS=el DIST=7 - OS=fedora DIST=24 - OS=fedora DIST=25 - OS=ubuntu DIST=precise - OS=ubuntu DIST=trusty - OS=ubuntu DIST=xenial - OS=ubuntu DIST=yakkety - OS=debian DIST=wheezy - OS=debian DIST=jessie - OS=debian DIST=stretch before_script: - ( mkdir build; cd build; cmake .. -DCMAKE_BUILD_TYPE=Release -DLEXBOR_BUILD_TESTS=ON ) script: - make -C build -j${PROCS} - make test -C build -j${PROCS} addons: apt: sources: - george-edison55-precise-backports packages: - cmake-data - cmake coverity_scan: project: name: "lexborisov/lexbor" description: "Lexbor is an open source HTML Renderer library" notification_email: lex.borisov@gmail.com build_command_prepend: "cmake . -DLEXBOR_BUILD_TESTS=ON" build_command: "make -j" branch_pattern: coverity_scan lexbor-3.0.0/CHANGELOG.md000066400000000000000000000270711516301313000146160ustar00rootroot00000000000000# Changelog ## [Unreleased] ## [3.0.0] - 2026-03-31 ### Added - Added WASM support. - HTML: added extended serialization API (`serialize_ext`). - HTML: added scripting getter/setter; `const` for `dom_opt` getter. - HTML: added `` element with spec-compliant disabled-state tracking. - Style: new `lxb_style_init()`/`lxb_style_destroy()` API replacing `lxb_html_document_css_init()`. - DOM: new per-tag mutation dispatch tables — `mutation` (inserted, removed, moved, destroy, children_changed, connected) and `attr_mutation` (change, append, remove, replace) — replacing the old monolithic `node_cb`. - DOM: added `LXB_DOM_DOCUMENT_OPT_WO_EVENTS` flag to suppress all mutation callbacks for plain parsing without overhead. - DOM: added `LXB_DOM_ELEMENT_CONDITION_DIRTY_STYLE` for lazy style cleanup. - Core: added new status `LXB_STATUS_SKIPPED`. - Added support for pkg-config (`lexbor.pc`). - Amalgamation: added cross-platform port support. - Added `const` to certain function arguments across the API. ### Changed - **Breaking**: Style: replaced custom event system (`lxb_style_event_*`) with spec-compliant WHATWG DOM steps (`element_steps`, `attribute_steps`) using per-tag dispatch tables generated at build time. - **Breaking**: DOM: `document.node_cb` replaced by `mutation` and `attr_mutation` callback tables. - HTML: `open_elements` pop functions now return `lxb_status_t` and invoke per-tag callbacks. - HTML: `parse_cb` mechanism removed; `
$DATA, "errors": [ {"line": 1, "col": 3, "id": "expected-doctype-but-got-start-tag"}, {"line": 1, "col": 35, "id": "unexpected-start-tag-implies-end-tag"}, {"line": 1, "col": 35, "id": "adoption-agency-1.3"}, {"line": 1, "col": 35, "id": "adoption-agency-1.3"}, {"line": 1, "col": 35, "id": "expected-closing-tag-but-got-eof"} ], "result": $DATA{ ,12}
--> $DATA, "errors": [ {"line": 1, "col": 7, "id": "expected-doctype-but-got-start-tag"}, {"line": 1, "col": 30, "id": "unexpected-end-tag"} ], "result": $DATA{ ,12} --> $DATA, "errors": [ {"line": 1, "col": 7, "id": "expected-doctype-but-got-start-tag"} ], "result": $DATA{ ,12} $DATA, "errors": [ {"line": 1, "col": 6, "id": "Unexpected start tag (head). Expected DOCTYPE."} ], "scripting": false, "result": $DATA{ ,12}