mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 00:17:58 +01:00
convert help page to XHTML Strict (excepting the id values) and add initial
implementations for the :viusage and :exusage commands
This commit is contained in:
@@ -41,12 +41,11 @@ function help(section, easter)
|
||||
// xxx: for firebug: :js Firebug.toggleBar(true)
|
||||
|
||||
/* commands = array where help information is located
|
||||
* color = used for background of the table
|
||||
* beg = string which is printed before the commmand/setting/mapping name
|
||||
* end = string which is printed after the commmand/setting/mapping name
|
||||
* func = called with 'command', result is a string is prepended to the help text
|
||||
*/
|
||||
function makeHelpString(commands, color, beg, end, func)
|
||||
function makeHelpString(commands, beg, end, func)
|
||||
{
|
||||
var ret = "";
|
||||
for (var i=0; i < commands.length; i++)
|
||||
@@ -74,9 +73,9 @@ function help(section, easter)
|
||||
// the actual help text with the first line in bold
|
||||
if (commands[i][SHORTHELP])
|
||||
{
|
||||
ret += "<b>";
|
||||
ret += '<span class="shorthelp">';
|
||||
ret += commands[i][SHORTHELP]; // the help description
|
||||
ret += "</b><br/>";
|
||||
ret += "</span><br/>";
|
||||
if(func) // for settings whe print default values here, e.g.
|
||||
{
|
||||
ret += func.call(this, commands[i]);
|
||||
@@ -134,76 +133,80 @@ function help(section, easter)
|
||||
return ret;
|
||||
}
|
||||
|
||||
var header = '<h1 align=\"center\">Vimperator</h1>\n' +
|
||||
'<p align=\"center\"><b>First there was a Navigator, then there was an Explorer.<br/>\n'+
|
||||
'Later it was time for a Konqueror. Now it\'s time for an Imperator, the VIMperator :)</b></p>\n';
|
||||
var header = '<h1>Vimperator</h1>\n' +
|
||||
'<p class="tagline">First there was a Navigator, then there was an Explorer.<br/>\n' +
|
||||
'Later it was time for a Konqueror. Now it\'s time for an Imperator, the VIMperator :)</p>\n';
|
||||
|
||||
var introduction = '<h2>Introduction</h2>' +
|
||||
var introduction = '<div><h2 id="introduction">Introduction</h2></div>' +
|
||||
'<p><a href="http://vimperator.mozdev.org">Vimperator</a> is a free browser add-on for Firefox, which makes it look and behave like the <a href="http://www.vim.org">Vim</a> text editor.<br/>' +
|
||||
'It has similar key bindings, and you could call it a modal webbrowser, as key bindings differ according to which mode you are in.</p>\n' +
|
||||
|
||||
'<p><font color="red"><b>Warning:</b></font> To provide the most authentic Vim experience, the Firefox menubar and toolbar were hidden.<br/>'+
|
||||
'<p><span class="warning">Warning:</span> To provide the most authentic Vim experience, the Firefox menubar and toolbar were hidden.<br/>' +
|
||||
'If you really need them, type: <code class="command">:set guioptions=mT</code> to get it back.<br/>\n' +
|
||||
'If you don\'t like Vimperator at all, you can uninstall it by typing <code class=\"command\">:addons</code> and remove/disable it.<br/>' +
|
||||
'If you like it, but can\'t remember the shortcuts, press <code class=\"mapping\">F1</code> or <code class=\"command\">:help</code> to get this help window back.</p>\n' +
|
||||
'If you don\'t like Vimperator at all, you can uninstall it by typing <code class="command">:addons</code> and remove/disable it.<br/>' +
|
||||
'If you like it, but can\'t remember the shortcuts, press <code class="mapping">F1</code> or <code class="command">:help</code> to get this help window back.</p>\n' +
|
||||
|
||||
'<p>Since Vimperator\'s GUI is embedded into a toolbar, it may look too 3D-like with the default theme.<br/>'+
|
||||
'For best experience, I therefore recommend the <a href=\"https://addons.mozilla.org/firefox/364/\">Whitehart</a> theme.</p>\n' +
|
||||
'<p>Since Vimperator\'s GUI is embedded into a toolbar, it may look too 3D-like with the default theme.<br/>' +
|
||||
'For best experience, I therefore recommend the <a href="https://addons.mozilla.org/firefox/364/">Whitehart</a> theme.</p>\n' +
|
||||
|
||||
'<p>Vimperator was written by <a href="mailto:stubenschrott@gmx.net">Martin Stubenschrott</a>. If you appreciate my work on Vimperator, you can either<br/>'+
|
||||
'send me greetings, patches or make a donation: \n' +
|
||||
'<p>Vimperator was written by <a href="mailto:stubenschrott@gmx.net">Martin Stubenschrott</a>. If you appreciate my work on Vimperator, you can either send me greetings, patches or make a donation: </p>\n' +
|
||||
|
||||
'<form action="https://www.paypal.com/cgi-bin/webscr" method="post">' +
|
||||
'<form action="https://www.paypal.com/cgi-bin/webscr" method="post">\n<fieldset class="paypal">' +
|
||||
'<input type="hidden" name="cmd" value="_s-xclick"/>' +
|
||||
'<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it\'s fast, free and secure!"/>' +
|
||||
'<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it\'s fast, free and secure!"/>' +
|
||||
|
||||
'<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"/>' +
|
||||
'<img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"/>' +
|
||||
'<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"/>' +
|
||||
'</form>\n' +
|
||||
'</fieldset>\n</form>\n' +
|
||||
|
||||
'Of course as a believer in free open source software, only make a donation if you really like Vimperator, and the money doesn\'t hurt - otherwise just use it, recommend it and like it :)</p>\n'
|
||||
'<p>Of course as a believer in free open source software, only make a donation if you really like Vimperator, and the money doesn\'t hurt - otherwise just use it, recommend it and like it :)</p>\n'
|
||||
|
||||
var mappings = '<h2>Mappings</h2>\n'+
|
||||
var mappings = '<div><h2 id="mappings">Mappings</h2></div>\n' +
|
||||
'<p>The denotion of modifier keys is like in Vim, so C- means the Control key, M- the Meta key, A- the Alt key and S- the Shift key.</p>'+
|
||||
'<p><table class="vimperator mappings">'
|
||||
'<table class="vimperator mappings">'
|
||||
// FIXME: fix this when Command() is added and help patch is merged -- djk
|
||||
var all_maps = [];
|
||||
for (var map in vimperator.mappings)
|
||||
all_maps.push([map.commands, [map.usage], map.short_help, map.help])
|
||||
mappings += makeHelpString(all_maps, "#102663", "", "", null);
|
||||
mappings += '</table></p>';
|
||||
mappings += makeHelpString(all_maps, "", "", null);
|
||||
mappings += '</table>';
|
||||
if (section && section == 'holy-grail')
|
||||
mappings += '<span id="holy-grail">You found it, Arthur!</span>\n';
|
||||
|
||||
var commands = '<h2>Commands</h2><p><table class="vimperator commands">\n';
|
||||
var commands = '<div><h2 id="commands">Commands</h2></div>\n' +
|
||||
'<table class="vimperator commands">\n';
|
||||
var all_commands = [];
|
||||
for (var command in vimperator.commands)
|
||||
all_commands.push([command.names, command.usage, command.short_help, command.help]);
|
||||
commands += makeHelpString(all_commands, "#632610", ":", "", null);
|
||||
commands += '</table></p>';
|
||||
commands += makeHelpString(all_commands, ":", "", null);
|
||||
commands += '</table>';
|
||||
if (section && section == '42')
|
||||
commands += '<p id="42">What is the meaning of life, the universe and everything?<br/>' +
|
||||
'Douglas Adams, the only person who knew what this question really was about is<br/>' +
|
||||
'now dead, unfortunately. So now you might wonder what the meaning of death<br/>' +
|
||||
'is...</p>\n';
|
||||
|
||||
var settings = '<h2>Settings</h2><p><table class="vimperator settings">\n';
|
||||
settings += makeHelpString(g_settings, "#106326", "'", "'", makeSettingsHelpString);
|
||||
settings += '</table></p>';
|
||||
var settings = '<div><h2 id="settings">Settings</h2></div>\n' +
|
||||
'<table class="vimperator settings">\n';
|
||||
settings += makeHelpString(g_settings, "'", "'", makeSettingsHelpString);
|
||||
settings += '</table>';
|
||||
|
||||
var fulldoc = '<html>\n<head>\n<title>Vimperator help</title>\n' +
|
||||
var fulldoc = '<?xml version="1.0"?>\n' +
|
||||
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n' +
|
||||
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n<head>\n<title>Vimperator help</title>\n' +
|
||||
// XXX: stylesheet broken here? Have to add it in the vimperator.xul file
|
||||
'<link rel="stylesheet" href="chrome://vimperator/content/default.css" type="text/css">\n'+
|
||||
'</head>\n<body><pre style="white-space: -moz-pre-wrap !important;">\n<table class="main"><tr><td>\n' + // should change that to: white-space: pre-wrap; once CSS3 hits firefox
|
||||
'<span class="version">version ' + vimperator.ver + '</span>\n'+
|
||||
'<link rel="stylesheet" href="chrome://vimperator/content/default.css" type="text/css"/>\n' +
|
||||
'</head>\n<body>\n<div class="main">\n' +
|
||||
'<span class="version">version ' + vimperator.ver + '</span>\n' +
|
||||
header +
|
||||
introduction +
|
||||
mappings +
|
||||
commands +
|
||||
settings +
|
||||
'\n</td></tr></table>\n</pre></body>\n</html>';
|
||||
'\n</div>\n</body>\n</html>';
|
||||
|
||||
var doc = window.content.document;
|
||||
|
||||
try
|
||||
{
|
||||
doc.open();
|
||||
@@ -258,8 +261,9 @@ function help(section, easter)
|
||||
vimperator.echoerr("E149: Sorry, no help for " + section);
|
||||
return;
|
||||
}
|
||||
// FIXME: H2 elements are currently wrapped in DIVs so this works
|
||||
var pos = cumulativeOffset(element.parentNode);
|
||||
// horizontal offset is annyoing, set it to 0 (use pos[0] if you want horizontal offset)
|
||||
// horizontal offset is annoying, set it to 0 (use pos[0] if you want horizontal offset)
|
||||
window.content.scrollTo(0, pos[1]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user