public function execute() { $paths = $this->getFiles($this->sourceFilesDir); $prefixLength = strlen($this->sourceFilesDir); $modules = array(); $indexModule = null; for ($i = 0; $i < count($paths); $i++) { $path = $paths[$i]; $filename = trim(substr(substr($path, 0, -3), $prefixLength), "/\\."); $moduleName = str_replace(DS, '.', $filename); if (!empty($this->rootModuleName)) { $moduleName = $this->rootModuleName . '.' . $moduleName; } $skip = false; foreach ($this->excludes as $key => $value) { $len = strlen($value); if (substr($moduleName, 0, $len) == $value) { $skip = true; break; } } if ($skip) { continue; } $module = array('path' => $path, 'filename' => $filename, 'moduleName' => $moduleName, 'outputFilename' => strtolower($moduleName) . '.html'); if ($moduleName == $this->indexModuleName) { $module['outputFilename'] = 'index.html'; $indexModule = $module; } else { $modules[] = $module; } } usort($modules, array($this, 'compareTwoModule')); if (!$indexModule) { printf("\nnot found index module.\n"); return false; } array_unshift($modules, $indexModule); foreach ($modules as $module) { printf("create %s\n", $module['moduleName']); $parser = new FileParser($this->title, $module['moduleName'], $indexModule['outputFilename']); $parser->parse($module['path']); $outputPath = $this->outputDir . DS . $module['outputFilename']; file_put_contents($outputPath, $parser->html($modules)); // print("ok\n"); } $this->copyfile('luadocx-style.css'); $this->copyfile('luadocx-style-monokai.css'); $this->copyfile('luadocx-highlight.min.js'); print "copy assets file.\n"; print "\n"; return true; }