|
|
Line 1: |
Line 1: |
| The ConsoleOutput MediaWiki extension was created by Daniel Robbins to provide highlighting of user input for interactive terminal session blocks. To use it, surround user input with <tt><console></tt> opening and closing tags, and put a <tt>##i##</tt> input code immediately before user input on each line. This will cause all text from the <tt>##i##</tt> point to the end of the line to be in a darker color. The rest of the text will be in a lighter grey, allowing it to be distinguished more easily from user input. Here are other sequences that can be used:
| | {{Ebuild |
| | | |Summary=A tool for securing communications between a client, and a DNS resolver. |
| * <tt>##b##</tt> - highlight the rest of the line in bold.
| | |CatPkg=net-dns/dnscrypt-proxy |
| * <tt>##b## text here ##!b##</tt> - highlight the text between both markers in bold.
| | |Homepage=http://dnscrypt.org/ |
| * <tt>##i## text here ##!i##</tt> - highlight the text between both markers in a darker color.
| | }} |
| | | {{warning|As this page deals with DNS it has the potential to break your internet access! Ensure you have stable live media that can restore your system.}} |
| This extension can be further extended to add color support, as desired, and some of the CSS for color support can already be found in the code below.
| | DNScrypt provides encryption from clients to upstream DNS servers. Encrypting this traffic prevents spying, spoofing, and other man in the middle attacks. |
|
| |
|
| Here are a few examples of the ConsoleOutput extension. First this is how you might typically display {{c|ls}} output, with a particular directory highlighted:
| | === Installation === |
| | {{console|body=###i## emerge dnscrypt-proxy}} |
|
| |
|
| <console>
| | === Configuration === |
| www@www-smw ~/public_html $ ##i##ls | | By default opendns is used, although some [http://www.opennicproject.org/ opennic servers] support dnscrypt. |
| COPYING LocalSettings.php api.php ##b##extensions##!b## index.php maintenance redirect.php skins thumb_handler.php5
| |
| CREDITS README api.php5 images index.php5 mw-config redirect.php5 tests wiki.phtml
| |
| FAQ RELEASE-NOTES-1.19 bin img_auth.php languages opensearch_desc.php redirect.phtml thumb.php
| |
| HISTORY StartProfiler.sample cache img_auth.php5 load.php opensearch_desc.php5 resources thumb.php5
| |
| INSTALL UPGRADE docs includes load.php5 profileinfo.php serialized thumb_handler.php
| |
| www@www-smw ~/public_html $ ##i##cd extensions/
| |
| </console>
| |
|
| |
|
| And here is how you might display a more detailed example of console output, using colors:
| | {{f|/etc/conf.d/dnscrypt-proxy}} controls settings for DNScrypt. A [https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv list of resolvers] has been compiled for use with DNScrypt. |
|
| |
|
| {{console|body= | | {{file|name=/etc/resolv.conf|lang=|desc=set dns server as dnscrypt-proxy|body= |
| # ##i##bluetoothctl
| | nameserver 127.0.0.1 |
| [##g##NEW##!g##] Controller 00:02:72:C9:62:65 antec [default]
| |
| ##bl##[bluetooth]##!bl### ##i##power on
| |
| Changing power on succeeded
| |
| ##bl##[bluetooth]##!bl### ##i##agent on
| |
| Agent registered
| |
| ##bl##[bluetooth]##!bl### ##i##scan on
| |
| Discovery started
| |
| ##bl##[bluetooth]##!bl### ##i##devices
| |
| Device 00:1F:20:3D:1E:75 Logitech K760
| |
| ##bl##[bluetooth]##!bl### ##i##pair 00:1F:20:3D:1E:75
| |
| Attempting to pair with 00:1F:20:3D:1E:75
| |
| [##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Connected: yes
| |
| ##r##[agent]##!r## Passkey: 454358
| |
| ##r##[agent]##!r## Passkey: ##i##4##!i##54358
| |
| ##r##[agent]##!r## Passkey: ##i##45##!i##4358
| |
| ##r##[agent]##!r## Passkey: ##i##454##!i##358
| |
| ##r##[agent]##!r## Passkey: ##i##4543##!i##58
| |
| ##r##[agent]##!r## Passkey: ##i##45435##!i##8
| |
| ##r##[agent]##!r## Passkey: ##i##454358##!i##
| |
| [##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Paired: yes
| |
| Pairing successful
| |
| [##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Connected: no
| |
| ##bl##[bluetooth]##!bl### ##i##connect 00:1F:20:3D:1E:75
| |
| Attempting to connect to 00:1F:20:3D:1E:75
| |
| [##y##CHG##!y##] Device 00:1F:20:3D:1E:75 Connected: yes
| |
| Connection successful
| |
| ##bl##[bluetooth]##!bl### ##i##quit
| |
| [##r##DEL##!r##] Controller 00:02:72:C9:62:65 antec [default]
| |
| #
| |
| }} | | }} |
|
| |
|
| To install, make the following modifications to your skin:
| | === Service === |
| | | {{console|body=###i## rc-update add dnscrypt-proxy default |
| <syntaxhighlight lang="css">
| | ###i## rc}} |
| --- mediawiki-1.19.1/skins/vector/screen.css 2012-06-13 18:22:39.000000000 +0000
| |
| +++ public_html/skins/vector/screen.css 2012-08-27 04:34:47.507912892 +0000
| |
| @@ -683,10 +683,47 @@
| |
| list-style-image: url(images/bullet-icon.png);
| |
| }
| |
|
| |
| -pre {
| |
| - line-height: 1.3em;
| |
| +/* ConsoleOutput.php start */
| |
| +
| |
| +.shell, pre, code, tt, div.mw-geshi {
| |
| + font-size: 12px;
| |
| + font-family: Consolas, 'andale mono','lucida console', monospace;
| |
| +}
| |
| +
| |
| +.shell, pre, div.mw-geshi {
| |
| + background-color: #F8F8FF;
| |
| + line-height: 15px;
| |
| + padding: 10px;
| |
| + border: none;
| |
| + border-top: 2px solid #C6C9E0;
| |
| + border-bottom: 2px solid #C6C9E0;
| |
| + margin: 0;
| |
| + overflow-x: auto;
| |
| + overflow-y: hidden;
| |
| +}
| |
| +
| |
| +.code {
| |
| + color: #666;
| |
| +}
| |
| +
| |
| +.code_input {
| |
| + color: #000;
| |
| }
| |
|
| |
| +.code_red {
| |
| + color: #f00;
| |
| +}
| |
| +
| |
| +.code_blue {
| |
| + color: #00f;
| |
| +}
| |
| +
| |
| +.shell_green {
| |
| + color: #080;
| |
| +}
| |
| +
| |
| +/* ConsoleOutput.php end */
| |
| +
| |
| /* Site Notice (includes notices from CentralNotice extension) */
| |
| #siteNotice {
| |
| font-size: 0.8em;
| |
| </syntaxhighlight>
| |
| | |
| Then install the following code in your <tt>extensions</tt> directory and include it with a <tt>require_once( "$IP/extensions/ConsoleOutput.php" );</tt> in <tt>LocalSettings.php</tt>:
| |
| | |
| <syntaxhighlight lang="php">
| |
| <?php
| |
| $wgExtensionCredits['validextensionclass'][] = array(
| |
| 'name' => 'ConsoleOutput',
| |
| 'author' => 'Daniel Robbins',
| |
| 'url' => 'https://github.com/danielrobbins/mediawiki-consoleoutput',
| |
| 'description' => 'This extension allows you to display colorized console output in mediawiki'
| |
| );
| |
| | |
| if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
| |
| $wgHooks['ParserFirstCallInit'][] = 'consoleOutputSetup';
| |
| } else {
| |
| $wgExtensionFunctions[] = 'consoleOutputSetup';
| |
| } | |
| | |
| function consoleOutputSetup( $data )
| |
| {
| |
| global $wgParser;
| |
| $wgParser->setHook('console', 'consoleRender');
| |
| return true;
| |
| }
| |
| | |
| function consoleRender($input, $args, $parser)
| |
| {
| |
| if (count($args))
| |
| {
| |
| return "<strong class='error'>" .
| |
| "ConsoleOutput: arguments not supported" .
| |
| "</strong>";
| |
| }
| |
| | |
| # Display < and > as literals, so escape them:
| |
| | |
| $input = preg_replace('/>/','>', $input);
| |
| $input = preg_replace('/</','<', $input);
| |
| | |
| # http://www.perlmonks.org/?node_id=518444
| |
| # See "Matching a pattern that doesn't include another pattern:
| |
|
| |
|
| $input = preg_replace('/##i##((?:(?!##!i##).)*)##!i##/','<span class="code_input">$1</span>', $input);
| | === Testing === |
| $input = preg_replace('/##i##(.*)/','<span class="code_input">$1</span>', $input);
| | If you're using opendns, this welcome page will tell if your encrypted or not. |
| $input = preg_replace('/##b##((?:(?!##!b##).)*)##!b##/','<b>$1</b>', $input);
| | ;https://www.opendns.com/welcome/ |
| $input = preg_replace('/##b##(.*)/','<b>$1</b>', $input);
| |
| return "<pre class=\"code\">" . $input . "</pre>";
| |
| }
| |
| ?>
| |
| </syntaxhighlight>
| |
|
| |
|
| [[Category:MediaWiki Hacks]]
| | If you're using any other encryption enabled dns servers, give them a leak test. they should only report the dns servers associated with the one you chosen from the list. |
| | ;https://www.dnsleaktest.com/ |
| | {{EbuildFooter}} |