Difference between revisions of "Mediawiki RawFile"

From YobiWiki
Jump to navigation Jump to search
Line 32: Line 32:
 
One or many such declarations to create the download links:
 
One or many such declarations to create the download links:
 
<code><nowiki>{{#rawsnippetLink: myscript.sh}}</nowiki></code>
 
<code><nowiki>{{#rawsnippetLink: myscript.sh}}</nowiki></code>
  +
  +
Example:
  +
{{#rawsnippetanchor: myotherscript.sh}}
  +
<source lang=bash>
  +
#!/bin/bash
  +
  +
echo 'Hello world!'
  +
exit 0
  +
</source>
  +
[{{#rawsnippetlink: myotherscript.sh}} myotherscript.sh is available now below the code]
   
 
==Hook on Raw==
 
==Hook on Raw==

Revision as of 22:17, 2 April 2008

Introduction

The idea is to be able to download directly a portion of code as a file.
I've numerous code examples in my wiki and I wast an easy way to download them, easier than a copy/paste!

  • It must work with pre, nowiki, js, css, code, source, so let's make it general: take the tag that comes after the parser function we'll create and select data up to the closing tag.

2 parts:

  • the parser magic word that will be converted into a "Save it as <filename>"
  • an extended action=raw that will strip the raw output to keep the desired code

Documentation

Syntax

{{#rawsnippet: myscript.sh}}
Do we need a MIME type?
Transformation:
{{fullurl:{{PAGENAME}}|action=raw&rawsnippet=myscript.sh}}
Test: save the following code [{{#rawsnippet: myscript.sh}} as myscript.sh]

#!/bin/bash

echo 'Hello world!'
exit 0

{{#rawsnippet: myscript.sh}} combines in fact 2 elements: the text that will be replaced by the link and the anchor just before the code section.
We can separate both functionalities with:

One such declaration, just before the code section: {{#rawsnippetAnchor: myscript.sh}}

One or many such declarations to create the download links: {{#rawsnippetLink: myscript.sh}}

Example: {{#rawsnippetanchor: myotherscript.sh}}

#!/bin/bash

echo 'Hello world!'
exit 0

[{{#rawsnippetlink: myotherscript.sh}} myotherscript.sh is available now below the code]

Hook on Raw

  • Must extract the right paragraph
    • Strip all up to the right rawsnippet: filename tag
    • Find the next tag
    • Select up to the closure tag
  • Must provide the filename to the browser
  • Tells the browser NOT to cache the raw?