"Raw page source", "version" => "0.9.1", "author" => "Starbeamrainbowlabs", "description" => "Adds a 'raw' action that shows you the raw source of a page.", "id" => "action-raw", "code" => function() { global $settings; /** * @api {get} ?action=raw&page={pageName}[&typeheader={typeName}] Get the raw source code of a page * @apiName RawSource * @apiGroup Page * @apiPermission Anonymous * * @apiParam {string} page The page to return the source of. * @apiParam {string} typeheader Optional; v0.22+. The content-type header to set on the response. If not set, defaults to text/markdown. Valid values: plaintext (returns text/plain). Does NOT change the content delivered. Useful for debugging if your browser doesn't display text returned with text/markdown. * * @apiSuccessExample Example response: * HTTP/1.1 200 OK * content-type: text/markdown * content-disposition: inline * x-tags: foo, bar, baz * * Some text here */ /* * ██████ █████ ██ ██ * ██ ██ ██ ██ ██ ██ * ██████ ███████ ██ █ ██ * ██ ██ ██ ██ ██ ███ ██ * ██ ██ ██ ██ ███ ███ */ add_action("raw", function() { global $pageindex, $env; if(empty($pageindex->{$env->page})) { http_response_code(404); exit("Error: The page with the name $env->page could not be found.\n"); } if(isset($_GET["typeheader"]) && $_GET["typeheader"] == "plaintext") header("content-type: text/plain"); else header("content-type: text/markdown"); header("content-disposition: inline"); header("content-length: " . filesize($env->page_filename)); header("x-tags: " . implode(", ", str_replace( ["\n", ":"], "", $pageindex->{$env->page}->tags ))); exit(file_get_contents($env->page_filename)); }); add_help_section("800-raw-page-content", "Viewing Raw Page Content", "

Although you can use the edit page to view a page's source, you can also ask $settings->sitename to send you the raw page source and nothing else. This feature is intented for those who want to automate their interaction with $settings->sitename.

To use this feature, navigate to the page for which you want to see the source, and then alter the action parameter in the url's query string to be raw. If the action parameter doesn't exist, add it. Note that when used on an file's page this action will return the source of the description and not the file itself.

"); } ]); ?>