mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 11:35:19 +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)$$)
|
(\.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 = \
|
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)
|
_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon)
|
||||||
exclude_file_name_regexp--sc_prohibit_fork_wrappers = \
|
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$$
|
^src/rpc/gendispatch\.pl$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_nonreentrant = \
|
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 = \
|
exclude_file_name_regexp--sc_prohibit_select = \
|
||||||
^cfg\.mk$$
|
^cfg\.mk$$
|
||||||
@ -1189,7 +1189,7 @@ exclude_file_name_regexp--sc_trailing_blank = \
|
|||||||
/qemuhelpdata/|/sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo$$
|
/qemuhelpdata/|/sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_unmarked_diagnostics = \
|
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
|
exclude_file_name_regexp--sc_size_of_brackets = cfg.mk
|
||||||
|
|
||||||
|
@ -334,9 +334,6 @@ print <<EOF;
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!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">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
|
||||||
<title>libvirt API support matrix</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<h1>libvirt API support matrix</h1>
|
<h1>libvirt API support matrix</h1>
|
||||||
|
|
||||||
|
@ -1,106 +1,85 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!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">
|
<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">
|
<body class="index">
|
||||||
<h1>The virtualization API</h1>
|
<h1>The virtualization API</h1>
|
||||||
|
|
||||||
<div class="panel">
|
<div class="panel">
|
||||||
<h2>libvirt is</h2>
|
<h2>Introduction</h2>
|
||||||
|
<p>
|
||||||
<ul>
|
The libvirt project:
|
||||||
<li>
|
</p>
|
||||||
A toolkit to interact with the virtualization capabilities
|
<ul>
|
||||||
of recent versions of Linux (and other OSes), see our
|
<li>is a toolkit to manage virtualization hosts</li>
|
||||||
<a href="goals.html">project goals</a> for details.
|
<li>is accessible from C, Python, Perl, Java and more</li>
|
||||||
</li>
|
<li>is licensed under open source licenses</li>
|
||||||
<li>
|
<li>supports <a href="drvqemu.html">KVM</a>,
|
||||||
Free software available under the
|
<a href="drvqemu.html">QEMU</a>, <a href="drvxen.html">Xen</a>,
|
||||||
<a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
<a href="drvvirtuozzo.html">Virtuozzo</a>,
|
||||||
Lesser General Public License</a>.
|
<a href="drvesx.html">VMWare ESX</a>,
|
||||||
</li>
|
<a href="drvlxc.html">LXC</a>,
|
||||||
|
<a href="drvbhyve.html">BHyve</a> and
|
||||||
<li>
|
<a href="drivers.html">more</a></li>
|
||||||
A long term stable C API
|
<li>targets Linux, FreeBSD, <a href="windows.html">Windows</a> and OS-X</li>
|
||||||
</li>
|
</ul>
|
||||||
<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>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel">
|
<div class="panel">
|
||||||
<h2>libvirt supports</h2>
|
<h2>Quick Links</h2>
|
||||||
|
|
||||||
<ul>
|
<dl>
|
||||||
<li>
|
<dt><a href="contribute.html">New contributors</a></dt>
|
||||||
The <a href="http://libvirt.org/drvqemu.html">KVM/QEMU</a> Linux hypervisor
|
<dd>Get involved in the libvirt community & student outreach programs</dd>
|
||||||
</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>
|
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
<div class="panel">
|
<div class="panel">
|
||||||
<h2>libvirt provides</h2>
|
<h2>Blog Planet</h2>
|
||||||
|
<div id="planet">
|
||||||
|
</div>
|
||||||
|
|
||||||
<ul>
|
<p>
|
||||||
<li>Remote management using TLS encryption and x509 certificates</li>
|
Read more on the <a href="http://planet.virt-tools.org/">Virt Tools blog planet</a>
|
||||||
<li>Remote management authenticating with Kerberos and SASL</li>
|
</p>
|
||||||
<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>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br class="clear"/>
|
<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 {
|
a {
|
||||||
color: #566866;
|
color: rgb(0, 95, 97);
|
||||||
}
|
}
|
||||||
|
|
||||||
div.api {
|
div.api {
|
||||||
@ -571,3 +571,26 @@ br.clear {
|
|||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-size: smaller;
|
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"/>
|
<link rel="SHORTCUT ICON" href="{$href_base}32favicon.png"/>
|
||||||
<title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title>
|
<title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title>
|
||||||
<meta name="description" content="libvirt, virtualization, virtualization API"/>
|
<meta name="description" content="libvirt, virtualization, virtualization API"/>
|
||||||
|
<xsl:apply-templates select="/html:html/html:head/*" mode="content"/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<xsl:if test="html:html/html:body/@class">
|
<xsl:if test="html:html/html:body/@class">
|
||||||
|
Loading…
Reference in New Issue
Block a user