diff --git a/src/Transformer.php b/src/Transformer.php index 598af92..4419e4e 100644 --- a/src/Transformer.php +++ b/src/Transformer.php @@ -7,6 +7,54 @@ class Transformer public function transform(string $data) : string { $data = $this->processWeblinks($data); + $data = $this->processBulletedLists($data); + $data = $this->replaceTags($data, 'bold', 'strong'); + $data = $this->processNumberedLists($data); + return $data; + } + + public function processBulletedLists(string $data) : string + { + // The changes should be like this. An input would be + // First bulletSecond bullet. + // And then the output should become + // . + return $this->processListType($data, 'bulleted', 'ul'); + } + + public function processNumberedLists(string $data) : string + { + // The changes should be like this. An input would be + // First bulletSecond bullet. + // And then the output should become + //
  1. First bullet
  2. Second bullet
. + return $this->processListType($data, 'numbered', 'ol'); + } + + protected function processListType(string $data, $list_type, $replacement_tag) + { + // First find the surrounding text of the list. + $regex = '([\S\s]*?)<\/list>'; + $match = []; + preg_match_all('/' . $regex . '/', $data, $match); + if (empty($match[0])) { + return $data; + } + foreach ($match[0] as $key => $value) { + $inside = $this->replaceTags($match[1][$key], 'listItem', 'li'); + $data = str_replace($value, '<' . $replacement_tag . '>' . $inside . '', $data); + } + return $data; + } + + public function replaceTags(string $data, $tag, $replacement_tag) : string + { + $data = str_replace('<' . $tag . '>', '<' . $replacement_tag . '>', $data); + $data = str_replace('', '', $data); + // Also self closing tags in a couple of variations. + $self_closing_replacement = '<' . $replacement_tag . ' />'; + $data = str_replace('<' . $tag . ' />', $self_closing_replacement, $data); + $data = str_replace('<' . $tag . '/>', $self_closing_replacement, $data); return $data; } diff --git a/tests/assets/cases.json b/tests/assets/cases.json index 93a3da7..db364ed 100644 --- a/tests/assets/cases.json +++ b/tests/assets/cases.json @@ -6,5 +6,13 @@ { "input": "Vi viser til https://www.example.comgjeldende forskrift og tilhørende retningslinjer.", "expected": "Vi viser til gjeldende forskrift og tilhørende retningslinjer." + }, + { + "input": "

Kunnskap

Etter fullført studium skal kandidaten

ha bred kunnskap om relevante lover og forskrifter samt internasjonale avtalerha grunnleggende innsikt i økologi, naturregistrering og overvåkningha grunnleggende kunnskap om norsk flora og faunaha kunnskap om skjøtsel- og tilretteleggingstiltak

Ferdigheter

Etter fullført studium skal kandidaten

kunne planlegge og gjennomføre ulike typer oppsynsvirksomhetkunne anvende lovbestemmelser som regulerer oppsynsvirksomhet og forvaltning av naturområder og kulturminnervise god innsikt i fagets yrkesetikk og evne til å reflektere over utøvelsen av arbeidsoppgaver knyttet til oppsynsarbeidetvære i stand til å vurdere sikker ferdsel, alene eller som leder av en gruppe, til ulike årstider og i ulike naturtypervære i stand til å identifisere ulike typer kulturminnerkunne gi veiledning og informasjon om natur og kulturminner

Generell kompetanse

Etter fullført studium skal kandidaten

ha innsikt i ulike oppsynstjenester knyttet til natur og kulturminner, herunder myndighet, rapportering og yrkesetikkforstå relevante lovbestemmelser som gjør det mulig å gjennomføre kontrollfunksjoner i oppsynsarbeidetforstå fagets etiske utfordringer", + "expected": "

Kunnskap

Etter fullført studium skal kandidaten

Ferdigheter

Etter fullført studium skal kandidaten

Generell kompetanse

Etter fullført studium skal kandidaten

" + }, + { + "input": "Førerrett for klasse S i minst tre årGodkjenning som trafikklærer eller pedagogisk utdanning som tilsvarer kravene til lærere i det offentlige skoleverk.

Søkere som ikke fyller kravet til punkt 2, men er tilknyttet kursarrangør som driver opplæring klasse S kan få innvilget opptak om de fremlegger dokumentasjon fra kursarrangør som viser at de har relevant opplæring og erfaring for å bli instruktør klasse S. Søker må i tillegg dokumentere generell studiekompetanse eller realkompetanse.

", + "expected": "
  1. Førerrett for klasse S i minst tre år
  2. Godkjenning som trafikklærer eller pedagogisk utdanning som tilsvarer kravene til lærere i det offentlige skoleverk.

Søkere som ikke fyller kravet til punkt 2, men er tilknyttet kursarrangør som driver opplæring klasse S kan få innvilget opptak om de fremlegger dokumentasjon fra kursarrangør som viser at de har relevant opplæring og erfaring for å bli instruktør klasse S. Søker må i tillegg dokumentere generell studiekompetanse eller realkompetanse.

" } ] \ No newline at end of file