/** * */ private function initializePatterns() { if (refnotes_configuration::getSetting('replace-footnotes')) { $entry = '(?:\\(\\(|\\[\\()'; $exit = '(?:\\)\\)|\\)\\])'; $id = '@@FNT\\d+|#\\d+'; } else { $entry = '\\[\\('; $exit = '\\)\\]'; $id = '#\\d+'; } $strictName = refnotes_note::getNamePattern('strict'); $extendedName = refnotes_note::getNamePattern('extended'); $namespace = refnotes_namespace::getNamePattern('optional'); $text = '.*?'; $strictName = '(?:' . $id . '|' . $strictName . ')'; $fullName = '\\s*(?:' . $namespace . $strictName . '|:' . $namespace . $extendedName . ')\\s*'; $lookaheadExit = '(?=' . $exit . ')'; $nameEntry = $fullName . $lookaheadExit; $extendedName = '(?:' . $id . '|' . $extendedName . ')'; $optionalFullName = $namespace . $extendedName . '?'; $structuredEntry = '\\s*' . $optionalFullName . '\\s*>>' . $text . $lookaheadExit; $define = '\\s*' . $optionalFullName . '\\s*>\\s*'; $optionalDefine = '(?:' . $define . ')?'; $lookaheadExit = '(?=' . $text . $exit . ')'; $defineEntry = $optionalDefine . $lookaheadExit; $this->entryPattern = $entry . '(?:' . $nameEntry . '|' . $structuredEntry . '|' . $defineEntry . ')'; $this->exitPattern = $exit; $this->handlePattern = '/' . $entry . '\\s*(' . $optionalFullName . ')\\s*(?:>>(.*))?(.*)/s'; }
/** * */ public function addReference($reference) { parent::addReference($reference); $exclude = $this->scope->getRenderer()->getReferencePrivateDataSet(); $data = array_diff_key($reference->getData(), array_flip($exclude)); $this->data = array_merge($this->data, $data); }
/** * */ private function isValidRefnotesName($name) { return preg_match('/^' . refnotes_note::getNamePattern('full-extended') . '$/', $name) == 1; }
/** * */ public function initializePageNote($data) { if (isset($data['note-name'])) { if (preg_match('/^' . refnotes_note::getNamePattern('full-extended') . '$/', $data['note-name']) == 1) { $this->nameParts = refnotes_namespace::parseName($data['note-name']); } unset($data['note-name']); } $this->data = $data; }
/** * */ public static function getNamePattern($type) { $result = '(?:(?:' . refnotes_note::getNamePattern('strict') . ')?:)*'; if ($type == 'required') { $result .= refnotes_note::getNamePattern('strict') . ':*'; } return $result; }