本文整理汇总了Python中lxml.html.builder.DIV.append方法的典型用法代码示例。如果您正苦于以下问题:Python DIV.append方法的具体用法?Python DIV.append怎么用?Python DIV.append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lxml.html.builder.DIV
的用法示例。
在下文中一共展示了DIV.append方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_navbar
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def get_navbar(self, f, feeds, top=True):
if len(feeds) < 2:
return DIV()
navbar = DIV('| ', CLASS('calibre_navbar', 'calibre_rescale_70',
style='text-align:center'))
if not top:
hr = HR()
navbar.append(hr)
navbar.text = None
hr.tail = '| '
if f+1 < len(feeds):
link = A(_('Next section'), href='../feed_%d/index.html'%(f+1))
link.tail = ' | '
navbar.append(link)
link = A(_('Main menu'), href="../index.html")
link.tail = ' | '
navbar.append(link)
if f > 0:
link = A(_('Previous section'), href='../feed_%d/index.html'%(f-1))
link.tail = ' |'
navbar.append(link)
if top:
navbar.append(HR())
return navbar
示例2: _generate
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def _generate(self, f, feeds, cutoff, extra_css=None, style=None):
from calibre.utils.cleantext import clean_xml_chars
feed = feeds[f]
head = HEAD(TITLE(feed.title))
if style:
head.append(STYLE(style, type='text/css'))
if extra_css:
head.append(STYLE(extra_css, type='text/css'))
body = BODY()
body.append(self.get_navbar(f, feeds))
div = DIV(
H2(feed.title,
CLASS('calibre_feed_title', 'calibre_rescale_160')),
CLASS('calibre_rescale_100')
)
body.append(div)
if getattr(feed, 'image', None):
div.append(DIV(IMG(
alt=feed.image_alt if feed.image_alt else '',
src=feed.image_url
),
CLASS('calibre_feed_image')))
if getattr(feed, 'description', None):
d = DIV(clean_xml_chars(feed.description), CLASS('calibre_feed_description',
'calibre_rescale_80'))
d.append(BR())
div.append(d)
ul = UL(CLASS('calibre_article_list'))
for i, article in enumerate(feed.articles):
if not getattr(article, 'downloaded', False):
continue
li = LI(
A(article.title, CLASS('article calibre_rescale_120',
href=article.url)),
SPAN(article.formatted_date, CLASS('article_date')),
CLASS('calibre_rescale_100', id='article_%d'%i,
style='padding-bottom:0.5em')
)
if article.summary:
li.append(DIV(clean_xml_chars(cutoff(article.text_summary)),
CLASS('article_description', 'calibre_rescale_70')))
ul.append(li)
div.append(ul)
div.append(self.get_navbar(f, feeds, top=False))
self.root = HTML(head, body)
if self.html_lang:
self.root.set('lang', self.html_lang)
示例3: build_search_box
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def build_search_box(num, search, sort, order, prefix): # {{{
div = DIV(id='search_box')
form = FORM('Show ', method='get', action=prefix+'/mobile')
form.set('accept-charset', 'UTF-8')
div.append(form)
num_select = SELECT(name='num')
for option in (5, 10, 25, 100):
kwargs = {'value':str(option)}
if option == num:
kwargs['SELECTED'] = 'SELECTED'
num_select.append(OPTION(str(option), **kwargs))
num_select.tail = ' books matching '
form.append(num_select)
searchf = INPUT(name='search', id='s', value=search if search else '')
searchf.tail = ' sorted by '
form.append(searchf)
sort_select = SELECT(name='sort')
for option in ('date','author','title','rating','size','tags','series'):
kwargs = {'value':option}
if option == sort:
kwargs['SELECTED'] = 'SELECTED'
sort_select.append(OPTION(option, **kwargs))
form.append(sort_select)
order_select = SELECT(name='order')
for option in ('ascending','descending'):
kwargs = {'value':option}
if option == order:
kwargs['SELECTED'] = 'SELECTED'
order_select.append(OPTION(option, **kwargs))
form.append(order_select)
form.append(INPUT(id='go', type='submit', value='Search'))
return div
示例4: build_search_box
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def build_search_box(num, search, sort, order, prefix): # {{{
div = DIV(id="search_box")
form = FORM("Show ", method="get", action=prefix + "/mobile")
form.set("accept-charset", "UTF-8")
div.append(form)
num_select = SELECT(name="num")
for option in (5, 10, 25, 100):
kwargs = {"value": str(option)}
if option == num:
kwargs["SELECTED"] = "SELECTED"
num_select.append(OPTION(str(option), **kwargs))
num_select.tail = " books matching "
form.append(num_select)
searchf = INPUT(name="search", id="s", value=search if search else "")
searchf.tail = " sorted by "
form.append(searchf)
sort_select = SELECT(name="sort")
for option in ("date", "author", "title", "rating", "size", "tags", "series"):
kwargs = {"value": option}
if option == sort:
kwargs["SELECTED"] = "SELECTED"
sort_select.append(OPTION(option, **kwargs))
form.append(sort_select)
order_select = SELECT(name="order")
for option in ("ascending", "descending"):
kwargs = {"value": option}
if option == order:
kwargs["SELECTED"] = "SELECTED"
order_select.append(OPTION(option, **kwargs))
form.append(order_select)
form.append(INPUT(id="go", type="submit", value="Search"))
return div
示例5: _generate
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def _generate(self, bottom, feed, art, number_of_articles_in_feed,
two_levels, url, __appname__, prefix='', center=True,
extra_css=None, style=None):
head = HEAD(TITLE('navbar'))
if style:
head.append(STYLE(style, type='text/css'))
if extra_css:
head.append(STYLE(extra_css, type='text/css'))
navbar = DIV()
navbar_t = TABLE(CLASS('touchscreen_navbar'))
navbar_tr = TR()
# | Previous
if art > 0:
link = A(CLASS('article_link'),_('Previous'),href='%s../article_%d/index.html'%(prefix, art-1))
navbar_tr.append(TD(CLASS('article_prev'),link))
else:
navbar_tr.append(TD(CLASS('article_prev'),''))
# | Articles | Sections |
link = A(CLASS('articles_link'),_('Articles'), href='%s../index.html#article_%d'%(prefix, art))
navbar_tr.append(TD(CLASS('article_articles_list'),link))
link = A(CLASS('sections_link'),_('Sections'), href='%s../../index.html#feed_%d'%(prefix, feed))
navbar_tr.append(TD(CLASS('article_sections_list'),link))
# | Next
next = 'feed_%d'%(feed+1) if art == number_of_articles_in_feed - 1 \
else 'article_%d'%(art+1)
up = '../..' if art == number_of_articles_in_feed - 1 else '..'
link = A(CLASS('article_link'), _('Next'), href='%s%s/%s/index.html'%(prefix, up, next))
navbar_tr.append(TD(CLASS('article_next'),link))
navbar_t.append(navbar_tr)
navbar.append(navbar_t)
#print "\n%s\n" % etree.tostring(navbar, pretty_print=True)
self.root = HTML(head, BODY(navbar))
示例6: _generate
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def _generate(self, f, feeds, cutoff, extra_css=None, style=None):
feed = feeds[f]
head = HEAD(TITLE(feed.title))
if style:
head.append(STYLE(style, type="text/css"))
if extra_css:
head.append(STYLE(extra_css, type="text/css"))
body = BODY()
body.append(self.get_navbar(f, feeds))
div = DIV(H2(feed.title, CLASS("calibre_feed_title", "calibre_rescale_160")), CLASS("calibre_rescale_100"))
body.append(div)
if getattr(feed, "image", None):
div.append(
DIV(IMG(alt=feed.image_alt if feed.image_alt else "", src=feed.image_url), CLASS("calibre_feed_image"))
)
if getattr(feed, "description", None):
d = DIV(feed.description, CLASS("calibre_feed_description", "calibre_rescale_80"))
d.append(BR())
div.append(d)
ul = UL(CLASS("calibre_article_list"))
for i, article in enumerate(feed.articles):
if not getattr(article, "downloaded", False):
continue
li = LI(
A(article.title, CLASS("article calibre_rescale_120", href=article.url)),
SPAN(article.formatted_date, CLASS("article_date")),
CLASS("calibre_rescale_100", id="article_%d" % i, style="padding-bottom:0.5em"),
)
if article.summary:
li.append(DIV(cutoff(article.text_summary), CLASS("article_description", "calibre_rescale_70")))
ul.append(li)
div.append(ul)
div.append(self.get_navbar(f, feeds, top=False))
self.root = HTML(head, body)
if self.html_lang:
self.root.set("lang", self.html_lang)
示例7: get_navbar
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def get_navbar(self, f, feeds, top=True):
if len(feeds) < 2:
return DIV()
navbar = DIV("| ", CLASS("calibre_navbar", "calibre_rescale_70", style="text-align:center"))
if not top:
hr = HR()
navbar.append(hr)
navbar.text = None
hr.tail = "| "
if f + 1 < len(feeds):
link = A(_("Next section"), href="../feed_%d/index.html" % (f + 1))
link.tail = " | "
navbar.append(link)
link = A(_("Main menu"), href="../index.html")
link.tail = " | "
navbar.append(link)
if f > 0:
link = A(_("Previous section"), href="../feed_%d/index.html" % (f - 1))
link.tail = " |"
navbar.append(link)
if top:
navbar.append(HR())
return navbar
示例8: build_index
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def build_index(books, num, search, sort, order, start, total, url_base, CKEYS,
prefix):
logo = DIV(IMG(src=prefix+'/static/calibre.png', alt=__appname__), id='logo')
search_box = build_search_box(num, search, sort, order, prefix)
navigation = build_navigation(start, num, total, prefix+url_base)
navigation2 = build_navigation(start, num, total, prefix+url_base)
bookt = TABLE(id='listing')
body = BODY(
logo,
search_box,
navigation,
HR(CLASS('spacer')),
bookt,
HR(CLASS('spacer')),
navigation2
)
# Book list {{{
for book in books:
thumbnail = TD(
IMG(type='image/jpeg', border='0',
src=prefix+'/get/thumb/%s' %
book['id']),
CLASS('thumbnail'))
data = TD()
for fmt in book['formats'].split(','):
if not fmt or fmt.lower().startswith('original_'):
continue
a = quote(ascii_filename(book['authors']))
t = quote(ascii_filename(book['title']))
s = SPAN(
A(
fmt.lower(),
href=prefix+'/get/%s/%s-%s_%d.%s' % (fmt, a, t,
book['id'], fmt.lower())
),
CLASS('button'))
s.tail = u''
data.append(s)
div = DIV(CLASS('data-container'))
data.append(div)
series = u'[%s - %s]'%(book['series'], book['series_index']) \
if book['series'] else ''
tags = u'Tags=[%s]'%book['tags'] if book['tags'] else ''
ctext = ''
for key in CKEYS:
val = book.get(key, None)
if val:
ctext += '%s=[%s] '%tuple(val.split(':#:'))
first = SPAN(u'\u202f%s %s by %s' % (book['title'], series,
book['authors']), CLASS('first-line'))
div.append(first)
second = SPAN(u'%s - %s %s %s' % ( book['size'],
book['timestamp'],
tags, ctext), CLASS('second-line'))
div.append(second)
bookt.append(TR(thumbnail, data))
# }}}
body.append(DIV(
A(_('Switch to the full interface (non-mobile interface)'),
href=prefix+"/browse",
style="text-decoration: none; color: blue",
title=_('The full interface gives you many more features, '
'but it may not work well on a small screen')),
style="text-align:center"))
return HTML(
HEAD(
TITLE(__appname__ + ' Library'),
LINK(rel='icon', href='http://calibre-ebook.com/favicon.ico',
type='image/x-icon'),
LINK(rel='stylesheet', type='text/css',
href=prefix+'/mobile/style.css'),
LINK(rel='apple-touch-icon', href="/static/calibre.png")
), # End head
body
) # End html
示例9: build_index
# 需要导入模块: from lxml.html.builder import DIV [as 别名]
# 或者: from lxml.html.builder.DIV import append [as 别名]
def build_index(books, num, search, sort, order, start, total, url_base, CKEYS, prefix, have_kobo_browser=False):
logo = DIV(IMG(src=prefix + "/static/calibre.png", alt=__appname__), id="logo")
search_box = build_search_box(num, search, sort, order, prefix)
navigation = build_navigation(start, num, total, prefix + url_base)
navigation2 = build_navigation(start, num, total, prefix + url_base)
bookt = TABLE(id="listing")
body = BODY(logo, search_box, navigation, HR(CLASS("spacer")), bookt, HR(CLASS("spacer")), navigation2)
# Book list {{{
for book in books:
thumbnail = TD(
IMG(type="image/jpeg", border="0", src=prefix + "/get/thumb/%s" % book["id"]), CLASS("thumbnail")
)
data = TD()
for fmt in book["formats"].split(","):
if not fmt or fmt.lower().startswith("original_"):
continue
file_extension = "kepub.epub" if have_kobo_browser and fmt.lower() == "kepub" else fmt
a = quote(ascii_filename(book["authors"]))
t = quote(ascii_filename(book["title"]))
s = SPAN(
A(fmt.lower(), href=prefix + "/get/%s/%s-%s_%d.%s" % (fmt, a, t, book["id"], file_extension.lower())),
CLASS("button"),
)
s.tail = u""
data.append(s)
div = DIV(CLASS("data-container"))
data.append(div)
series = u"[%s - %s]" % (book["series"], book["series_index"]) if book["series"] else ""
tags = u"Tags=[%s]" % book["tags"] if book["tags"] else ""
ctext = ""
for key in CKEYS:
val = book.get(key, None)
if val:
ctext += "%s=[%s] " % tuple(val.split(":#:"))
first = SPAN(
u"\u202f%s %s by %s"
% (clean_xml_chars(book["title"]), clean_xml_chars(series), clean_xml_chars(book["authors"])),
CLASS("first-line"),
)
div.append(first)
second = SPAN(u"%s - %s %s %s" % (book["size"], book["timestamp"], tags, ctext), CLASS("second-line"))
div.append(second)
bookt.append(TR(thumbnail, data))
# }}}
body.append(
DIV(
A(
_("Switch to the full interface (non-mobile interface)"),
href=prefix + "/browse",
style="text-decoration: none; color: blue",
title=_(
"The full interface gives you many more features, " "but it may not work well on a small screen"
),
),
style="text-align:center",
)
)
return HTML(
HEAD(
TITLE(__appname__ + " Library"),
LINK(rel="icon", href="//calibre-ebook.com/favicon.ico", type="image/x-icon"),
LINK(rel="stylesheet", type="text/css", href=prefix + "/mobile/style.css"),
LINK(rel="apple-touch-icon", href="/static/calibre.png"),
META(name="robots", content="noindex"),
), # End head
body,
) # End html