3 namespace BookStack\Activity\Tools;
5 use BookStack\Activity\Models\Tag;
7 class TagClassGenerator
14 public function __construct(array $tags)
22 public function generate(): array
26 foreach ($this->tags as $tag) {
27 $name = $this->normalizeTagClassString($tag->name);
28 $value = $this->normalizeTagClassString($tag->value);
29 $classes[] = 'tag-name-' . $name;
31 $classes[] = 'tag-value-' . $value;
32 $classes[] = 'tag-pair-' . $name . '-' . $value;
36 return array_unique($classes);
39 public function generateAsString(): string
41 return implode(' ', $this->generate());
44 protected function normalizeTagClassString(string $value): string
46 $value = str_replace(' ', '', strtolower($value));
47 $value = str_replace('-', '', strtolower($value));