mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
docs: rewrite content on front page to be more useful
The front page contains a bunch of content that is either outdated (eg links to libvirt qpid) or not particularly useful (links to vendor hypervisor sites). This rewrites it to be more directly useful to visitors, providing a updated intro to libvirt project, direct links to key pieces of website content (new contributors guide, security process, bug reporting, XML formats), and feed showing recent 5 blog posts on the virt tools planet. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
fb2236f9f7
commit
b17a97f223
6
cfg.mk
6
cfg.mk
@ -1138,7 +1138,7 @@ exclude_file_name_regexp--sc_prohibit_close = \
|
||||
(\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/virfile\.c|src/libvirt-stream\.c|tests/vir.+mock\.c)$$)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
|
||||
(^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
|
||||
(^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
|
||||
|
||||
_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon)
|
||||
exclude_file_name_regexp--sc_prohibit_fork_wrappers = \
|
||||
@ -1153,7 +1153,7 @@ exclude_file_name_regexp--sc_prohibit_newline_at_end_of_diagnostic = \
|
||||
^src/rpc/gendispatch\.pl$$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_nonreentrant = \
|
||||
^((po|tests)/|docs/.*(py|html\.in)|run.in$$|tools/wireshark/util/genxdrstub\.pl$$)
|
||||
^((po|tests)/|docs/.*(py|js|html\.in)|run.in$$|tools/wireshark/util/genxdrstub\.pl$$)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_select = \
|
||||
^cfg\.mk$$
|
||||
@ -1189,7 +1189,7 @@ exclude_file_name_regexp--sc_trailing_blank = \
|
||||
/qemuhelpdata/|/sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo$$
|
||||
|
||||
exclude_file_name_regexp--sc_unmarked_diagnostics = \
|
||||
^(docs/apibuild.py|tests/virt-aa-helper-test)$$
|
||||
^(docs/apibuild.py|tests/virt-aa-helper-test|docs/js/.*\.js)$$
|
||||
|
||||
exclude_file_name_regexp--sc_size_of_brackets = cfg.mk
|
||||
|
||||
|
@ -334,9 +334,6 @@ print <<EOF;
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>libvirt API support matrix</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>libvirt API support matrix</h1>
|
||||
|
||||
|
@ -1,106 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="js/moment.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery.rss.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
jQuery(function($) {
|
||||
$("#planet").rss("http://planet.virt-tools.org/atom.xml", {
|
||||
ssl: true,
|
||||
layoutTemplate: '<dl>{entries}</dl>',
|
||||
entryTemplate: '<dt><a href="{url}">{title}</a></dt><dd>by {author} on {date}</li>',
|
||||
dateFormat: 'DD MMM YYYY'
|
||||
})
|
||||
})
|
||||
// -->
|
||||
</script>
|
||||
</head>
|
||||
<body class="index">
|
||||
<h1>The virtualization API</h1>
|
||||
|
||||
<div class="panel">
|
||||
<h2>libvirt is</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
A toolkit to interact with the virtualization capabilities
|
||||
of recent versions of Linux (and other OSes), see our
|
||||
<a href="goals.html">project goals</a> for details.
|
||||
</li>
|
||||
<li>
|
||||
Free software available under the
|
||||
<a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
A long term stable C API
|
||||
</li>
|
||||
<li>
|
||||
A set of bindings for common languages
|
||||
</li>
|
||||
<li>
|
||||
A <a href="CIM/">CIM provider</a> for the DMTF virtualization schema
|
||||
</li>
|
||||
<li>
|
||||
A <a href="/qpid/">QMF agent</a> for the AMQP/QPid messaging system
|
||||
</li>
|
||||
<li>
|
||||
A <a href="governance.html">technical meritocracy</a>, in which
|
||||
participants gain influence over a project through recognition
|
||||
of their contributions.
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Introduction</h2>
|
||||
<p>
|
||||
The libvirt project:
|
||||
</p>
|
||||
<ul>
|
||||
<li>is a toolkit to manage virtualization hosts</li>
|
||||
<li>is accessible from C, Python, Perl, Java and more</li>
|
||||
<li>is licensed under open source licenses</li>
|
||||
<li>supports <a href="drvqemu.html">KVM</a>,
|
||||
<a href="drvqemu.html">QEMU</a>, <a href="drvxen.html">Xen</a>,
|
||||
<a href="drvvirtuozzo.html">Virtuozzo</a>,
|
||||
<a href="drvesx.html">VMWare ESX</a>,
|
||||
<a href="drvlxc.html">LXC</a>,
|
||||
<a href="drvbhyve.html">BHyve</a> and
|
||||
<a href="drivers.html">more</a></li>
|
||||
<li>targets Linux, FreeBSD, <a href="windows.html">Windows</a> and OS-X</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<h2>libvirt supports</h2>
|
||||
<h2>Quick Links</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvqemu.html">KVM/QEMU</a> Linux hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvxen.html">Xen</a> hypervisor
|
||||
on Linux and Solaris hosts.
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvlxc.html">LXC</a> Linux container system
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvopenvz.html">OpenVZ</a> Linux container system
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvuml.html">User Mode Linux</a> paravirtualized kernel
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvvbox.html">VirtualBox</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvesx.html">VMware ESX and GSX</a> hypervisors
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvvmware.html">VMware Workstation and Player</a> hypervisors
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvhyperv.html">Microsoft Hyper-V</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvphyp.html">IBM PowerVM</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvvirtuozzo.html">Virtuozzo</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
The <a href="http://libvirt.org/drvbhyve.html">Bhyve</a> hypervisor
|
||||
</li>
|
||||
<li>
|
||||
Virtual networks using bridging, NAT, VEPA and VN-LINK.
|
||||
</li>
|
||||
<li>
|
||||
Storage on IDE/SCSI/USB disks, FibreChannel, LVM, iSCSI, NFS and filesystems
|
||||
</li>
|
||||
</ul>
|
||||
<dl>
|
||||
<dt><a href="contribute.html">New contributors</a></dt>
|
||||
<dd>Get involved in the libvirt community & student outreach programs</dd>
|
||||
|
||||
<dt><a href="securityprocess.html">Security vulnerabilities</a></dt>
|
||||
<dd>Report vulnerabilities to the libvirt security response team</dd>
|
||||
|
||||
<dt><a href="bugs.html">Bug reporting</a></dt>
|
||||
<dd>View and report bugs in libvirt packages</dd>
|
||||
|
||||
<dt><a href="format.html">XML configuration</a></dt>
|
||||
<dd>Description of the XML schemas for
|
||||
<a href="formatdomain.html" shape="rect">domains</a>,
|
||||
<a href="formatnetwork.html" shape="rect">networks</a>,
|
||||
<a href="formatnwfilter.html" shape="rect">network filtering</a>,
|
||||
<a href="formatstorage.html" shape="rect">storage</a>,
|
||||
<a href="formatstorageencryption.html" shape="rect">storage encryption</a>,
|
||||
<a href="formatcaps.html" shape="rect">capabilities</a>,
|
||||
<a href="formatdomaincaps.html" shape="rect">domain capabilities</a>,
|
||||
<a href="formatnode.html" shape="rect">node devices</a>,
|
||||
<a href="formatsecret.html" shape="rect">secrets</a>,
|
||||
<a href="formatsnapshot.html" shape="rect">snapshots</a></dd>
|
||||
<dt><a href="http://wiki.libvirt.org">Wiki</a></dt>
|
||||
<dd>Read further community contributed content</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<h2>libvirt provides</h2>
|
||||
<h2>Blog Planet</h2>
|
||||
<div id="planet">
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li>Remote management using TLS encryption and x509 certificates</li>
|
||||
<li>Remote management authenticating with Kerberos and SASL</li>
|
||||
<li>Local access control using PolicyKit</li>
|
||||
<li>Zero-conf discovery using Avahi multicast-DNS</li>
|
||||
<li>Management of virtual machines, virtual networks and storage</li>
|
||||
<li>Portable client API for Linux, Solaris and Windows</li>
|
||||
</ul>
|
||||
<p>
|
||||
Read more on the <a href="http://planet.virt-tools.org/">Virt Tools blog planet</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br class="clear"/>
|
||||
|
4
docs/js/jquery-3.1.1.min.js
vendored
Normal file
4
docs/js/jquery-3.1.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
docs/js/jquery.rss.min.js
vendored
Normal file
11
docs/js/jquery.rss.min.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
(function(d){var e=function(a,b,c,f){this.target=a;this.url=b;this.html=[];this.effectQueue=[];this.options=d.extend({ssl:!1,host:"www.feedrapp.info",limit:null,key:null,layoutTemplate:"<ul>{entries}</ul>",entryTemplate:'<li><a href="{url}">[{author}@{date}] {title}</a><br/>{shortBodyPlain}</li>',tokens:{},outputMode:"json",dateFormat:"dddd MMM Do",dateLocale:"en",effect:"show",offsetStart:!1,offsetEnd:!1,error:function(){console.log("jQuery RSS: url doesn't link to RSS-Feed")},onData:function(){},
|
||||
success:function(){}},c||{});this.options.ssl&&"www.feedrapp.info"===this.options.host&&(this.options.host="feedrapp.herokuapp.com");this.callback=f||this.options.success};e.htmlTags="doctype,html,head,title,base,link,meta,style,script,noscript,body,article,nav,aside,section,header,footer,h1-h6,hgroup,address,p,hr,pre,blockquote,ol,ul,li,dl,dt,dd,figure,figcaption,div,table,caption,thead,tbody,tfoot,tr,th,td,col,colgroup,form,fieldset,legend,label,input,button,select,datalist,optgroup,option,textarea,keygen,output,progress,meter,details,summary,command,menu,del,ins,img,iframe,embed,object,param,video,audio,source,canvas,track,map,area,a,em,strong,i,b,u,s,small,abbr,q,cite,dfn,sub,sup,time,code,kbd,samp,var,mark,bdi,bdo,ruby,rt,rp,span,br,wbr".split(",");
|
||||
e.prototype.load=function(a){var b="http"+(this.options.ssl?"s":"")+"://"+this.options.host+"?callback=?&q="+encodeURIComponent(this.url);this.options.offsetStart&&this.options.offsetEnd&&(this.options.limit=this.options.offsetEnd);null!==this.options.limit&&(b+="&num="+this.options.limit);null!==this.options.key&&(b+="&key="+this.options.key);d.getJSON(b,a)};e.prototype.render=function(){var a=this;this.load(function(b){try{a.feed=b.responseData.feed,a.entries=b.responseData.feed.entries}catch(c){return a.entries=
|
||||
[],a.feed=null,a.options.error.call(a)}b=a.generateHTMLForEntries();a.target.append(b.layout);if(0!==b.entries.length){d.isFunction(a.options.onData)&&a.options.onData.call(a);var f=d(b.layout).is("entries")?b.layout:d("entries",b.layout);a.appendEntriesAndApplyEffects(f,b.entries)}0<a.effectQueue.length?a.executeEffectQueue(a.callback):d.isFunction(a.callback)&&a.callback.call(a)})};e.prototype.appendEntriesAndApplyEffects=function(a,b){var c=this;d.each(b,function(b,e){var d=c.wrapContent(e);"show"===
|
||||
c.options.effect?a.before(d):(d.css({display:"none"}),a.before(d),c.applyEffect(d,c.options.effect))});a.remove()};e.prototype.generateHTMLForEntries=function(){var a=this,b={entries:[],layout:null};d(this.entries).each(function(){var c=a.options.offsetStart,f=a.options.offsetEnd;c&&f?index>=c&&index<=f&&a.isRelevant(this,b.entries)&&(c=a.evaluateStringForEntry(a.options.entryTemplate,this),b.entries.push(c)):a.isRelevant(this,b.entries)&&(c=a.evaluateStringForEntry(a.options.entryTemplate,this),
|
||||
b.entries.push(c))});b.layout=this.options.entryTemplate?this.wrapContent(this.options.layoutTemplate.replace("{entries}","<entries></entries>")):this.wrapContent("<div><entries></entries></div>");return b};e.prototype.wrapContent=function(a){return 0!==d.trim(a).indexOf("<")?d("<div>"+a+"</div>"):d(a)};e.prototype.applyEffect=function(a,b,c){switch(b){case "slide":a.slideDown("slow",c);break;case "slideFast":a.slideDown(c);break;case "slideSynced":this.effectQueue.push({element:a,effect:"slide"});
|
||||
break;case "slideFastSynced":this.effectQueue.push({element:a,effect:"slideFast"})}};e.prototype.executeEffectQueue=function(a){var b=this;this.effectQueue.reverse();var c=function(){var f=b.effectQueue.pop();f?b.applyEffect(f.element,f.effect,c):a&&a()};c()};e.prototype.evaluateStringForEntry=function(a,b){var c=a,f=this;d(a.match(/(\{.*?\})/g)).each(function(){var a=this.toString();c=c.replace(a,f.getValueForToken(a,b))});return c};e.prototype.isRelevant=function(a,b){var c=this.getTokenMap(a);
|
||||
return this.options.filter?this.options.filterLimit&&this.options.filterLimit===b.length?!1:this.options.filter(a,c):!0};e.prototype.getFormattedDate=function(a){if(this.options.dateFormatFunction)return this.options.dateFormatFunction(a);return"undefined"!==typeof moment?(a=moment(new Date(a)),a=a.locale?a.locale(this.options.dateLocale):a.lang(this.options.dateLocale),a.format(this.options.dateFormat)):a};e.prototype.getTokenMap=function(a){if(!this.feedTokens){var b=JSON.parse(JSON.stringify(this.feed));
|
||||
delete b.entries;this.feedTokens=b}return d.extend({feed:this.feedTokens,url:a.link,author:a.author,date:this.getFormattedDate(a.publishedDate),title:a.title,body:a.content,shortBody:a.contentSnippet,bodyPlain:function(a){for(var a=a.content.replace(/<script[\\r\\\s\S]*<\/script>/mgi,"").replace(/<\/?[^>]+>/gi,""),b=0;b<e.htmlTags.length;b++)a=a.replace(RegExp("<"+e.htmlTags[b],"gi"),"");return a}(a),shortBodyPlain:a.contentSnippet.replace(/<\/?[^>]+>/gi,""),index:d.inArray(a,this.entries),totalEntries:this.entries.length,
|
||||
teaserImage:function(a){try{return a.content.match(/(<img.*?>)/gi)[0]}catch(b){return""}}(a),teaserImageUrl:function(a){try{return a.content.match(/(<img.*?>)/gi)[0].match(/src="(.*?)"/)[1]}catch(b){return""}}(a)},this.options.tokens)};e.prototype.getValueForToken=function(a,b){var c=this.getTokenMap(b),d=a.replace(/[\{\}]/g,""),d=c[d];if("undefined"!==typeof d)return"function"===typeof d?d(b,c):d;throw Error("Unknown token: "+a+", url:"+this.url);};d.fn.rss=function(a,b,c){(new e(this,a,b,c)).render();
|
||||
return this}})(jQuery);
|
7
docs/js/moment.min.js
vendored
Normal file
7
docs/js/moment.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -204,7 +204,7 @@ pre {
|
||||
}
|
||||
|
||||
a {
|
||||
color: #566866;
|
||||
color: rgb(0, 95, 97);
|
||||
}
|
||||
|
||||
div.api {
|
||||
@ -571,3 +571,26 @@ br.clear {
|
||||
margin: 0px;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
div.panel dd {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
div.panel a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div.panel ul,
|
||||
div.panel p,
|
||||
div.panel dl {
|
||||
padding: 0.5em;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
div.panel dt {
|
||||
margin: 0px;
|
||||
}
|
||||
div.panel dd {
|
||||
margin: 0px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
@ -139,6 +139,7 @@
|
||||
<link rel="SHORTCUT ICON" href="{$href_base}32favicon.png"/>
|
||||
<title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title>
|
||||
<meta name="description" content="libvirt, virtualization, virtualization API"/>
|
||||
<xsl:apply-templates select="/html:html/html:head/*" mode="content"/>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:if test="html:html/html:body/@class">
|
||||
|
Loading…
Reference in New Issue
Block a user