Lines Matching refs:namespace
15 $namespace = implode(':', $parts);
16 if ($namespace === '') throw new Exception('Namespace is required.');
18 return $this->exportNamespace($namespace, $sourcePage . '.txt', $options);
21 public function exportNamespace($namespace, $sourcePage, $options = array()) { argument
23 $namespace = trim((string)$namespace, ':');
24 if ($namespace === '') throw new Exception('Namespace is required.');
29 $sourceId = $this->resolveSourceId($namespace, $sourcePage);
30 $pages = $this->collectPages($namespace, $recursive);
41 if (!$pages) throw new Exception('No pages found in namespace: ' . hsc($namespace));
47 $baseFolder = $this->safeName($namespace) . '-skill';
50 'name' => $this->safeName($namespace),
51 'namespace' => $namespace,
63 …is->getConf('output_skill_filename') ?: 'SKILL.md') : $this->idToMarkdownFilename($namespace, $id);
65 $md = $this->buildSkillMarkdown($namespace, $metadata, $md, $pages, $sourceId);
67 $md = $this->ensureFrontmatter($id, $namespace, $metadata, $md);
74 …$zip->addFileFromString($baseFolder . '/index.md', $this->buildIndex($namespace, $manifest['files'…
81 foreach ($this->collectMedia($namespace, $recursive) as $mediaId => $mediaFile) {
88 $zipName = $this->makeZipName($namespace);
144 private function collectPages($namespace, $recursive) { argument
147 $namespace = trim($this->normalizeId($namespace), ':');
148 $root = rtrim($conf['datadir'], '/\\') . '/' . str_replace(':', '/', $namespace);
159 if ($id !== '' && ($id === $namespace || strpos($id, $namespace . ':') === 0)) {
173 if ($id === '' || $id === $namespace) continue;
175 if (strpos($id, $namespace . ':') === 0) $pages[$id] = $path;
177 $tail = substr($id, strlen($namespace . ':'));
178 … if (strpos($id, $namespace . ':') === 0 && strpos($tail, ':') === false) $pages[$id] = $path;
187 private function collectMedia($namespace, $recursive) { argument
189 $root = rtrim($conf['mediadir'], '/\\') . '/' . str_replace(':', '/', $namespace);
202 private function resolveSourceId($namespace, $sourcePage) { argument
203 $namespace = trim($this->normalizeId($namespace), ':');
214 return trim($namespace . ':' . $sourcePage, ':');
241 private function idToMarkdownFilename($namespace, $id) { argument
242 $rel = preg_replace('/^' . preg_quote($namespace, '/') . ':?/', '', $id);
248 private function buildSkillMarkdown($namespace, $metadata, $body, $pages, $sourceId) { argument
250 …safeName($namespace) . "\ndescription: Exported DokuWiki namespace as an AI skill.\nversion: 0.1.0…
255 …s .= '- [' . $this->titleFromId($id) . '](' . $this->idToMarkdownFilename($namespace, $id) . ")\n";
260 private function ensureFrontmatter($id, $namespace, $metadata, $body) { argument
262 …FromId($id) . "\ntype: page\nsource: dokuwiki\ndokuwiki_id: " . $id . "\nnamespace: " . $namespace;
267 private function buildIndex($namespace, $files) { argument
268 …ace: " . $namespace . "\ngenerator: SkillForge\n---\n\n# Skill Index\n\nThis package was generated…
276 private function makeZipName($namespace) { argument
278 …$name = str_replace(array('{namespace}', '{date}'), array($this->safeName($namespace), date('Y-m-d…