pub fn get_form(html: &str, name: &str) -> String
Expand description

Use a regular expression to get the specific form identified by data-drupal-selector.

See get_bigpipe_form for a way to extract a form that’s served as a BigPipe placeholder.

Example

use goose_eggs::drupal::get_form;

// For this example we grab just a subset of a real Drupal form, enough to demonstrate. Normally
// you'd use the entire html snippet returned from [`validate_and_load_static_assets`].
let html = r#"
<html lang="en" dir="ltr" class="light-mode">
  <form class="user-login-form" data-drupal-selector="user-login-form" action="/user/login" method="post" id="user-login-form" accept-charset="UTF-8">
    <div class="js-form-item form-item">
      <label for="edit-name" class="js-form-required form-required form-item__label">Username</label>
      <input autocorrect="none" autocapitalize="none" spellcheck="false" autofocus="autofocus" data-drupal-selector="edit-name" aria-describedby="edit-name--description" type="text" id="edit-name" name="name" value="" size="60" maxlength="60" class="form-text required form-item__textfield" required="required" aria-required="true" />
      <div id="edit-name--description" class="form-item__description">
        Your username.
      </div>
      <input autocomplete="off" data-drupal-selector="form-bhzme2hetuevnwqr5y4pyp8jcau2dfbherwoscwnajm" type="hidden" name="form_build_id" value="form-bHZME2HeTuevNWQR5Y4pyP8jcAu2dfbHERwoscwnajM" class="form-item__textfield" />
      <input data-drupal-selector="edit-user-login-form" type="hidden" name="form_id" value="user_login_form" class="form-item__textfield" />
      <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><input data-drupal-selector="edit-submit" type="submit" id="edit-submit" name="op" value="Log in" class="button js-form-submit form-submit form-item__textfield" />
    </div>
  </form>
</html>
"#;

let form = get_form(html, "user-login-form");
assert!(!form.is_empty());