<commit_before><!--
  Generate config pages from a list of Descriptors into a section.

  Attributes:
    title         caption for the section (required)
    descriptors   hudson.model.Descriptor collection to display  (required)
    instances     Map<Descriptor,Describable>. Instances to display as current settings (required)
    varName       Used as a variable name as well as block name (required)
    targetType    the type for which descriptors will be configured.
                  default to ${it.class} (optional)
-->
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
  <j:set var="targetType" value="${h.defaulted(attrs.targetType,it.class)}"/>
  <f:section title="${attrs.title}">
    <d:invokeBody />
	  <j:forEach var="d" items="${descriptors}" varStatus="loop">
      <f:optionalBlock name="${varName}${loop.index}" help="${d.helpFile}"
	      title="${d.displayName}" checked="${instances[d]!=null}">

	      <j:set var="descriptor" value="${d}" />
	      <j:set var="instance" value="${instances[d]}" />
	      <st:include from="${d}" page="${d.configPage}" optional="true" />
	    </f:optionalBlock>
	  </j:forEach>
	</f:section>
</j:jelly><commit_msg>support collections other than Map.<commit_after><!--
  Generate config pages from a list of Descriptors into a section.

  Attributes:
    title         caption for the section (required)
    descriptors   hudson.model.Descriptor collection to display  (required)
    instances     Map<Descriptor,Describable>, or a class that defines Describable get(Descriptor). Instances to display as current settings (required)
    varName       Used as a variable name as well as block name (required)
    targetType    the type for which descriptors will be configured.
                  default to ${it.class} (optional)
-->
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
  <j:set var="targetType" value="${h.defaulted(attrs.targetType,it.class)}"/>
  <f:section title="${attrs.title}">
    <d:invokeBody />
	  <j:forEach var="d" items="${descriptors}" varStatus="loop">
      <f:optionalBlock name="${varName}${loop.index}" help="${d.helpFile}"
	      title="${d.displayName}" checked="${instances.get(d)!=null}">

	      <j:set var="descriptor" value="${d}" />
	      <j:set var="instance" value="${instances.get(d)}" />
	      <st:include from="${d}" page="${d.configPage}" optional="true" />
	    </f:optionalBlock>
	  </j:forEach>
	</f:section>
</j:jelly>
{'fraction_non_alphanumeric': 0.1691542288557214, 'fraction_numerical': 0.0, 'mean_word_length': 3.9980879541108987, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3134365', 'n_tokens_mistral': 828, 'n_tokens_neox': 791, 'n_words': 200}