From shaohef at linux.vnet.ibm.com Tue Feb 18 03:44:23 2014 Content-Type: multipart/mixed; boundary="===============2762957201127605620==" MIME-Version: 1.0 From: Sheldon To: kimchi-devel at ovirt.org Subject: Re: [Kimchi-devel] [PATCH 2/2] doc: Generate index.html to join all help pages Date: Tue, 18 Feb 2014 16:44:04 +0800 Message-ID: <53031D54.7060508@linux.vnet.ibm.com> In-Reply-To: 1392666981-25375-3-git-send-email-alinefm@linux.vnet.ibm.com --===============2762957201127605620== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On 02/18/2014 03:56 AM, Aline Manera wrote: > From: Aline Manera does the UI page will get the help information for these help documents? Such as: ___________________________________________________________________________= _____ Name CPU Network I/O Disk I/O Livetile Actions When mouse hovers on CPU label, the Ui will get the CPU description from = help/guests.html and display it," Percentage of processor utilization in the virtual machine" Also I want to know can we generate a help/guests.html stub from = /#tabs/guests ? or DITA is not easy to write and maintain. Why we choose DITA? such as reStructuredText is more easy. > > This patch generates help/index.html automatically based on all .dita > files during build time. > For each dita file it generates a link on index.html > > Signed-off-by: Aline Manera > --- > ui/pages/help/Makefile.am | 3 ++- > ui/pages/help/gen-index.py | 64 +++++++++++++++++++++++++++++++++++++= +++++++ > 2 files changed, 66 insertions(+), 1 deletion(-) > create mode 100755 ui/pages/help/gen-index.py > > diff --git a/ui/pages/help/Makefile.am b/ui/pages/help/Makefile.am > index 81d7e90..5146692 100644 > --- a/ui/pages/help/Makefile.am > +++ b/ui/pages/help/Makefile.am > @@ -18,7 +18,7 @@ > # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-= 1301 USA > > DITA_HTML_FILES =3D $(patsubst %.dita,%.html,$(wildcard *.dita)) > -HTML_FILES =3D $(if $(wildcard *.html), $(wildcard *.html), $(DITA_HTML_= FILES)) > +HTML_FILES =3D $(if $(wildcard *.html), $(wildcard *.html), $(DITA_HTML_= FILES) index.html) > DITA_XSL_FILE =3D dita-help.xsl > > helpdir =3D $(datadir)/kimchi/ui/pages/help > @@ -27,5 +27,6 @@ dist_help_DATA =3D $(HTML_FILES) $(NULL) > > %.html: %.dita $(DITA_XSL_FILE) > xsltproc -o $@ $(DITA_XSL_FILE) $< > + $(shell pwd)/gen-index.py > > CLEANFILES =3D $(HTML_FILES) > diff --git a/ui/pages/help/gen-index.py b/ui/pages/help/gen-index.py > new file mode 100755 > index 0000000..4fa7cbe > --- /dev/null > +++ b/ui/pages/help/gen-index.py > @@ -0,0 +1,64 @@ > +#!/usr/bin/python > +# > +# Project Kimchi > +# > +# Copyright IBM, Corp. 2014 > +# > +# Authors: > +# Aline Manera > +# > +# This library is free software; you can redistribute it and/or > +# modify it under the terms of the GNU Lesser General Public > +# License as published by the Free Software Foundation; either > +# version 2.1 of the License, or (at your option) any later version. > +# > +# This library is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +# Lesser General Public License for more details. > +# > +# You should have received a copy of the GNU Lesser General Public > +# License along with this library; if not, write to the Free Software > +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1= 301 USA > + > +import glob > +import libxml2 > + > + > +HTML_HEAD =3D """ > + > + > + Kimchi Help > + > + > +

Kimchi Help

> +""" > + > +HTML_TAIL =3D """ > + > + > +""" > + > + > +def main(): > + pages =3D {} > + files =3D sorted(glob.glob('*.dita')) > + for f in files: > + with open(f) as fd: > + xml =3D fd.read() > + doc =3D libxml2.parseDoc(xml) > + node =3D doc.xpathEval('/cshelp/title')[0] > + name =3D node.children.content > + pages[f.replace('.dita', '.html')] =3D name > + doc.freeDoc() > + > + with open('index.html', 'w') as fd: > + fd.write(HTML_HEAD) > + for page, name in pages.iteritems(): > + html =3D ' %s
\n' > + fd.write(html % (page, name)) > + fd.write(HTML_TAIL) > + > + > +if __name__ =3D=3D '__main__': > + main() -- = Thanks and best regards! Sheldon Feng(???) IBM Linux Technology Center --===============2762957201127605620== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNP LTg4NTktMSIKICAgICAgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KICA8L2hlYWQ+CiAgPGJv ZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCI+CiAgICA8ZGl2IGNsYXNzPSJtb3ot Y2l0ZS1wcmVmaXgiPk9uIDAyLzE4LzIwMTQgMDM6NTYgQU0sIEFsaW5lIE1hbmVyYQogICAgICB3 cm90ZTo8YnI+CiAgICA8L2Rpdj4KICAgIDxibG9ja3F1b3RlCiAgICAgIGNpdGU9Im1pZDoxMzky NjY2OTgxLTI1Mzc1LTMtZ2l0LXNlbmQtZW1haWwtYWxpbmVmbUBsaW51eC52bmV0LmlibS5jb20i CiAgICAgIHR5cGU9ImNpdGUiPgogICAgICA8cHJlIHdyYXA9IiI+RnJvbTogQWxpbmUgTWFuZXJh IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzphbGluZWZtQGJy LmlibS5jb20iPiZsdDthbGluZWZtQGJyLmlibS5jb20mZ3Q7PC9hPjwvcHJlPgogICAgPC9ibG9j a3F1b3RlPgogICAgPGJyPgogICAgZG9lcyB0aGUmbmJzcDsgVUkgcGFnZSB3aWxsIGdldCB0aGUg aGVscCBpbmZvcm1hdGlvbiBmb3IgdGhlc2UgaGVscAogICAgZG9jdW1lbnRzPzxicj4KICAgIDxi cj4KICAgIFN1Y2ggYXM6Jm5ic3A7IDxicj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CiAg ICBOYW1lJm5ic3A7Jm5ic3A7Jm5ic3A7IENQVSZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7IE5l dHdvcmsgSS9PJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyBEaXNrIEkvTyZu YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgTGl2ZXRpbGUmbmJzcDsmbmJzcDsm bmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAmbmJzcDsmbmJzcDsmbmJzcDsgQWN0aW9ucyA8 YnI+CiAgICA8YnI+CiAgICBXaGVuIG1vdXNlIGhvdmVycyBvbiBDUFUgbGFiZWwsIHRoZSBVaSB3 aWxsIGdldCB0aGUgQ1BVIGRlc2NyaXB0aW9uCiAgICBmcm9tIGhlbHAvZ3Vlc3RzLmh0bWwgYW5k IDxicj4KICAgIGRpc3BsYXkgaXQsIiBQZXJjZW50YWdlIG9mIHByb2Nlc3NvciB1dGlsaXphdGlv biBpbiB0aGUgdmlydHVhbAogICAgbWFjaGluZSI8YnI+CiAgICA8YnI+CiAgICBBbHNvIEkgd2Fu dCB0byBrbm93IGNhbiB3ZSBnZW5lcmF0ZSBhIGhlbHAvZ3Vlc3RzLmh0bWwgc3R1YiBmcm9tCiAg ICAvI3RhYnMvZ3Vlc3RzID88YnI+CiAgICA8YnI+CiAgICBvciBESVRBIGlzIG5vdCBlYXN5IHRv IHdyaXRlIGFuZCBtYWludGFpbi4gPGJyPgogICAgPGZvbnQgY29sb3I9IiMwMDAwMDAiPjxmb250 IHNpemU9IjMiPldoeSB3ZSBjaG9vc2UgRElUQT8gc3VjaCBhcyZuYnNwOwogICAgICAgIHJlU3Ry dWN0dXJlZFRleHQ8L2ZvbnQ+PC9mb250PiBpcyBtb3JlIGVhc3kuIDxicj4KICAgIDxicj4KICAg IDxibG9ja3F1b3RlCiAgICAgIGNpdGU9Im1pZDoxMzkyNjY2OTgxLTI1Mzc1LTMtZ2l0LXNlbmQt ZW1haWwtYWxpbmVmbUBsaW51eC52bmV0LmlibS5jb20iCiAgICAgIHR5cGU9ImNpdGUiPgogICAg ICA8cHJlIHdyYXA9IiI+CgpUaGlzIHBhdGNoIGdlbmVyYXRlcyBoZWxwL2luZGV4Lmh0bWwgYXV0 b21hdGljYWxseSBiYXNlZCBvbiBhbGwgLmRpdGEKZmlsZXMgZHVyaW5nIGJ1aWxkIHRpbWUuCkZv ciBlYWNoIGRpdGEgZmlsZSBpdCBnZW5lcmF0ZXMgYSBsaW5rIG9uIGluZGV4Lmh0bWwKClNpZ25l ZC1vZmYtYnk6IEFsaW5lIE1hbmVyYSA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBo cmVmPSJtYWlsdG86YWxpbmVmbUBici5pYm0uY29tIj4mbHQ7YWxpbmVmbUBici5pYm0uY29tJmd0 OzwvYT4KLS0tCiB1aS9wYWdlcy9oZWxwL01ha2VmaWxlLmFtICB8ICAgIDMgKystCiB1aS9wYWdl cy9oZWxwL2dlbi1pbmRleC5weSB8ICAgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNzU1IHVpL3BhZ2VzL2hlbHAvZ2VuLWluZGV4LnB5Cgpk aWZmIC0tZ2l0IGEvdWkvcGFnZXMvaGVscC9NYWtlZmlsZS5hbSBiL3VpL3BhZ2VzL2hlbHAvTWFr ZWZpbGUuYW0KaW5kZXggODFkN2U5MC4uNTE0NjY5MiAxMDA2NDQKLS0tIGEvdWkvcGFnZXMvaGVs cC9NYWtlZmlsZS5hbQorKysgYi91aS9wYWdlcy9oZWxwL01ha2VmaWxlLmFtCkBAIC0xOCw3ICsx OCw3IEBACiAjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCgogRElUQV9IVE1MX0ZJTEVTID0gJChwYXRz dWJzdCAlLmRpdGEsJS5odG1sLCQod2lsZGNhcmQgKi5kaXRhKSkKLUhUTUxfRklMRVMgPSAkKGlm ICQod2lsZGNhcmQgKi5odG1sKSwgJCh3aWxkY2FyZCAqLmh0bWwpLCAkKERJVEFfSFRNTF9GSUxF UykpCitIVE1MX0ZJTEVTID0gJChpZiAkKHdpbGRjYXJkICouaHRtbCksICQod2lsZGNhcmQgKi5o dG1sKSwgJChESVRBX0hUTUxfRklMRVMpIGluZGV4Lmh0bWwpCiBESVRBX1hTTF9GSUxFID0gZGl0 YS1oZWxwLnhzbAoKIGhlbHBkaXIgPSAkKGRhdGFkaXIpL2tpbWNoaS91aS9wYWdlcy9oZWxwCkBA IC0yNyw1ICsyNyw2IEBAIGRpc3RfaGVscF9EQVRBID0gJChIVE1MX0ZJTEVTKSAkKE5VTEwpCgog JS5odG1sOiAlLmRpdGEgJChESVRBX1hTTF9GSUxFKQogCXhzbHRwcm9jIC1vICRAICQoRElUQV9Y U0xfRklMRSkgJCZsdDsKKwkkKHNoZWxsIHB3ZCkvZ2VuLWluZGV4LnB5CgogQ0xFQU5GSUxFUyA9 ICQoSFRNTF9GSUxFUykKZGlmZiAtLWdpdCBhL3VpL3BhZ2VzL2hlbHAvZ2VuLWluZGV4LnB5IGIv dWkvcGFnZXMvaGVscC9nZW4taW5kZXgucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw MDAwMC4uNGZhN2NiZQotLS0gL2Rldi9udWxsCisrKyBiL3VpL3BhZ2VzL2hlbHAvZ2VuLWluZGV4 LnB5CkBAIC0wLDAgKzEsNjQgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIFByb2plY3QgS2lt Y2hpCisjCisjIENvcHlyaWdodCBJQk0sIENvcnAuIDIwMTQKKyMKKyMgQXV0aG9yczoKKyMgIEFs aW5lIE1hbmVyYSA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86 YWxpbmVmbUBsaW51eC52bmV0LmlibS5jb20iPiZsdDthbGluZWZtQGxpbnV4LnZuZXQuaWJtLmNv bSZndDs8L2E+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMg bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx MTAtMTMwMSBVU0EKKworaW1wb3J0IGdsb2IKK2ltcG9ydCBsaWJ4bWwyCisKKworSFRNTF9IRUFE ID0gIiIiCismbHQ7aHRtbCZndDsKKyZsdDtoZWFkJmd0OworICAmbHQ7dGl0bGUmZ3Q7S2ltY2hp IEhlbHAmbHQ7L3RpdGxlJmd0OworJmx0Oy9oZWFkJmd0OworJmx0O2JvZHkmZ3Q7CismbHQ7aDEm Z3Q7S2ltY2hpIEhlbHAmbHQ7L2gxJmd0OworIiIiCisKK0hUTUxfVEFJTCA9ICIiIgorJmx0Oy9i b2R5Jmd0OworJmx0Oy9odG1sJmd0OworIiIiCisKKworZGVmIG1haW4oKToKKyAgICBwYWdlcyA9 IHt9CisgICAgZmlsZXMgPSBzb3J0ZWQoZ2xvYi5nbG9iKCcqLmRpdGEnKSkKKyAgICBmb3IgZiBp biBmaWxlczoKKyAgICAgICAgd2l0aCBvcGVuKGYpIGFzIGZkOgorICAgICAgICAgICAgeG1sID0g ZmQucmVhZCgpCisgICAgICAgICAgICBkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKHhtbCkKKyAgICAg ICAgICAgIG5vZGUgPSBkb2MueHBhdGhFdmFsKCcvY3NoZWxwL3RpdGxlJylbMF0KKyAgICAgICAg ICAgIG5hbWUgPSBub2RlLmNoaWxkcmVuLmNvbnRlbnQKKyAgICAgICAgICAgIHBhZ2VzW2YucmVw bGFjZSgnLmRpdGEnLCAnLmh0bWwnKV0gPSBuYW1lCisgICAgICAgICAgICBkb2MuZnJlZURvYygp CisKKyAgICB3aXRoIG9wZW4oJ2luZGV4Lmh0bWwnLCAndycpIGFzIGZkOgorICAgICAgICBmZC53 cml0ZShIVE1MX0hFQUQpCisgICAgICAgIGZvciBwYWdlLCBuYW1lIGluIHBhZ2VzLml0ZXJpdGVt cygpOgorICAgICAgICAgICAgaHRtbCA9ICcgICZsdDthIGhyZWY9Ii9oZWxwLyVzIiZndDslcyZs dDsvYSZndDsmbHQ7YnIgLyZndDtcbicKKyAgICAgICAgICAgIGZkLndyaXRlKGh0bWwgJSAocGFn ZSwgbmFtZSkpCisgICAgICAgIGZkLndyaXRlKEhUTUxfVEFJTCkKKworCitpZiBfX25hbWVfXyA9 PSAnX19tYWluX18nOgorICAgIG1haW4oKQo8L3ByZT4KICAgIDwvYmxvY2txdW90ZT4KICAgIDxi cj4KICAgIDxicj4KICAgIDxwcmUgY2xhc3M9Im1vei1zaWduYXR1cmUiIGNvbHM9IjcyIj4tLSAK VGhhbmtzIGFuZCBiZXN0IHJlZ2FyZHMhCgpTaGVsZG9uIEZlbmcoJiMyMDkxMTsmIzIzNTY5OyYj MjE1MTI7KTxhIGNsYXNzPSJtb3otdHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzpzaGFv aGVmQGxpbnV4LnZuZXQuaWJtLmNvbSI+Jmx0O3NoYW9oZWZAbGludXgudm5ldC5pYm0uY29tJmd0 OzwvYT4KSUJNIExpbnV4IFRlY2hub2xvZ3kgQ2VudGVyPC9wcmU+CiAgPC9ib2R5Pgo8L2h0bWw+ Cg== --===============2762957201127605620==--