Example #1
0
 public static function Parse($text, array $options = NULL)
 {
     $valid_options = ['root_url' => ['validate' => 'is_string', 'default' => NULL], 'image_callback' => ['validate' => 'is_callable', 'default' => NULL], 'link_callback' => ['validate' => 'is_callable', 'default' => NULL], 'code_formatting' => ['validate' => 'is_bool', 'default' => false], 'header_level' => ['validate' => 'is_int', 'default' => 1]];
     $options_filtered = [];
     foreach ($valid_options as $option_name => $option_rules) {
         $value = isset($option_rules['default']) ? $option_rules['default'] : NULL;
         if ($options && isset($options[$option_name])) {
             $candidate = $options[$option_name];
             if (!isset($option_rules['validate']) || $option_rules['validate']($candidate)) {
                 if (isset($option_rules['transform'])) {
                     $candidate = $option_rules['transform']($candidate);
                 }
                 $value = $candidate;
             }
         }
         $options_filtered[$option_name] = $value;
     }
     $parser = new self($text, $options_filtered);
     return $parser->Evaluate();
 }