/** * Checks cache to see if the contents of this field have already been loaded from github, if they haven't then a request is made to the github api to render the markdown * @param {bool} $useGFM Use Github Flavored Markdown or render using plain markdown defaults to false just like how readme files are rendered on github * @return {string} Markdown rendered as HTML */ public function AsHTML($useGFM = false) { if ($this->parsedHTML !== false) { return $this->parsedHTML; } //Setup renderer $renderer = $this->getRenderer(); $supported = $renderer->isSupported(); if ($supported !== true) { $class_name = get_class($renderer); user_error("Renderer {$class_name} is not supported on this system: {$supported}"); } if ($renderer instanceof GithubMarkdownRenderer) { $beforeUseGFM = GithubMarkdownRenderer::getUseGFM(); GithubMarkdownRenderer::setUseGFM($useGFM); } //Init cache stuff $cacheKey = md5('Markdown_' . $this->tableName . '_' . $this->name . ':' . $this->value); $cache = SS_Cache::factory('Markdown'); $cachedHTML = $cache->load($cacheKey); //Check cache, if it's good use it instead if ($cachedHTML !== false) { $this->parsedHTML = $cachedHTML; return $this->parsedHTML; } //If empty save time by not attempting to render if (empty($this->value)) { return $this->value; } //Get rendered HTML $response = $renderer->getRenderedHTML($this->value); //Store response in memory $this->parsedHTML = $response; //Cache response to file system $cache->save($this->parsedHTML, $cacheKey); //Reset GFM if ($renderer instanceof GithubMarkdownRenderer) { GithubMarkdownRenderer::setUseGFM($beforeUseGFM); } //Return response return $this->parsedHTML; }
/** * Sets whether or not to include the Authorization header in GitHub API requests, both parameters are required to enable basic auth * @param {string} $username Github Username * @param {string} $password Github Password */ public function useBasicAuth($username = false, $password = false) { self::$useBasicAuth = $username !== false && $password !== false; self::$username = $username; self::$password = $password; }