Skip to content
CAI
Software that uses CAICheck a score

MangelMaxime/html-to-elmish

61.2

Adequate · 3 October 2026

794

lines of production code

F#

with JavaScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a web-based utility that converts HTML snippets into F\# Elmish view code. It provides a live interface where users can input HTML and receive generated F\# code, supported by a backend parser that maps HTML attributes and styles to Fable equivalents. The application includes sample libraries and a browser-based test suite to validate the conversion logic.

Features

Added code editor and copy-to-clipboard components

The web application now includes a new code editor component built on Monaco Editor, which supports dynamic resizing and language-specific syntax highlighting. Additionally, a copy button component has been added to allow users to easily copy code snippets to their clipboard with visual feedback.

src/WebApp/js · high confidence

Initial project setup with build tooling and CI configuration

This change introduces the foundational structure for the Html to Elmish project, including the build system (FAKE via build.fsx), CI pipeline (Azure Pipelines), and development scripts. It establishes the .NET Core 3.1 SDK requirement via global.json, configures .editorconfig for consistent code formatting, and sets up the .gitignore and MIT license. The build targets cover cleaning, restoring dependencies, building the WebApp with Webpack, running QUnit tests, and publishing NuGet packages, providing the necessary infrastructure for development and continuous integration.

(repo-wide) · high confidence

Introduce HTML-to-F\# Elmish converter

The src/HtmlConverter module now provides a tool that parses HTML strings and generates corresponding F\# Elmish view code. It leverages htmlparser2 for parsing and Thoth.Json for deserialization, mapping standard HTML attributes (such as onClick, className, and style) to their Fable.Html.Bridge equivalents (e.g., HTMLAttr.Click, HTMLAttr.ClassName, and Style). The converter specifically handles data- attributes by mapping them to HTMLAttr.Data and processes inline styles by converting CSS properties to PascalCase, falling back to CSSProp.Custom for unknown properties.

src/HtmlConverter · high confidence

Introduce interactive HTML-to-Elmish converter with sample library

The web application now provides a live converter that transforms HTML snippets into Elmish-compatible F\# code. Users can type or paste HTML into the left editor pane and see the generated F\# code in the right read-only Monaco editor, with a new copy button to easily transfer the output. The app includes a 'Samples' dropdown in the navigation bar offering pre-built HTML examples from Bootstrap, Fulma, and Foundation to demonstrate the conversion capabilities.

src/WebApp · high confidence

Behavioural changes

Adopts Font Awesome 5 and Bulma for UI styling

The web application's styling has been updated to use Font Awesome 5 for icons and Bulma for the base CSS framework, replacing previous icon and layout libraries. This change introduces a new main.scss file that configures Font Awesome assets, sets the body font size to 14px, and includes Bulma along with the bulma-pageloader and bulma-tooltip extensions. Additionally, specific styles are added to handle the copy button and notification positioning, and to adjust the Monaco editor's scrollable element alignment.

src/WebApp/sass · high confidence

Test coverage

Initial browser-based test suite for HtmlConverter

Added a new QUnit-based test suite for the HtmlConverter module, allowing users to run tests in a browser. The suite includes specific tests for the converter's \escapeValue\ function (handling strings, booleans, integers, objects, functions, and floats), \attributesToString\ (covering inline styles, data attributes, and custom attributes), and \htmlToElmish\ (validating simple, self-closing, and nested HTML tags with attributes). The test infrastructure is built with Fable, Thoth.Json, and Webpack, featuring a static HTML page for the QUnit UI and a development server on port 8080.

tests · high confidence

Dependencies

Initial project setup with Fable 2 and React tooling

The project is initialized with a new dependency structure, introducing Fable 2 and Thoth.Json 2 for the F\# backend, and upgrading the frontend toolchain to use React 16, Monaco Editor, and core-js (replacing @babel/polyfill). The build system is configured with Webpack 4, Babel 7, and Sass, while the .NET tooling uses Paket and FAKE 5 for build automation.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 61 → 61 (+0.0)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 56 → 56 (+0.0)
  • Readiness 55 → 55 (+0.0)
  • Security 80 → 80 (+0.0)

Resolved (7)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no project overview (README.md)
  • Documentation: no usage examples (README.md)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)

New (5)

  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • Medium CVE: [GHSA redacted] (yarn.lock)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

MangelMaxime/html-to-elmish was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 7a0b899096b935d44df9936dd3e11f13dc259e05 — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.