seperate out the code and update the social share buttons

This commit is contained in:
Oliver Marks 2015-06-23 14:25:50 +01:00
parent 086cffdecb
commit d27df86be8
41 changed files with 152 additions and 134 deletions

0
LICENSE Normal file → Executable file
View File

0
site/__init__.py Normal file → Executable file
View File

View File

@ -2,7 +2,7 @@
page_menu = [ page_menu = [
('Home', '/'), ('Home', '/'),
#('About', '#about'), #('About', '#about'),
#~ ('Competition', '/competition'), ('Competition', '/competition'),
('Contact', '#mailing-list-signup')] ('Contact', '#mailing-list-signup')]
banner_images = [ banner_images = [
@ -20,7 +20,17 @@ rss_feeds = [
{'author':'Simon Ridley', {'author':'Simon Ridley',
'url': 'http://waistcoatforensicator.blogspot.com/feeds/posts/default?alt=rss'}, 'url': 'http://waistcoatforensicator.blogspot.com/feeds/posts/default?alt=rss'},
{'author':'Mathew Beddow', 'tags': ['tech'], 'url': 'http://www.matthewbeddow.co.uk/?feed=rss2'}, {'author':'Mathew Beddow', 'tags': ['tech'], 'url': 'http://www.matthewbeddow.co.uk/?feed=rss2'},
{'author':'Oliver Marks', 'url': 'http://www.digitaloctave.co.uk/rss.xml'}, #{'author':'Oliver Marks', 'url': 'http://www.digitaloctave.co.uk/rss.xml'},
{'author':'Mike McRoberts', 'url': 'http://thearduinoguy.org/?feed=rss2'}] {'author':'Mike McRoberts', 'url': 'http://thearduinoguy.org/?feed=rss2'}]
kent_hackspace = ['http://www.medwaymakers.co.uk/', 'http://canterbury.hackspace.org.uk/'] kent_hackspace = ['http://www.medwaymakers.co.uk/', 'http://canterbury.hackspace.org.uk/']
email = 'support@maidstone-hackspace.org.uk'
email_server = {
'user': '',
'password': '',
'host': 'email-smtp.us-east-1.amazonaws.com',
'port': 465,
'from': 'support@maidstone-hackspace.org.uk',
'to': 'support@maidstone-hackspace.org.uk'}

View File

@ -9,6 +9,7 @@ from scaffold.web import www
from libs.rss_fetcher import feed_reader from libs.rss_fetcher import feed_reader
import constants as site import constants as site
import pages
from pages import web from pages import web
from pages import header, footer from pages import header, footer
from pages import blog from pages import blog
@ -29,89 +30,21 @@ def examples():
return footer() return footer()
def index():
header()
web.template.body.append(web.header_strip.create({}).render())
web.template.body.append(web.menu.render())
web.page.create('')
web.page.section(
web.images.create(
'/static/template/images/tile-01.jpg'
).append(
'/static/template/images/tile-01.jpg'
).set_classes('tile-right').render())
web.banner_slider.reset()
web.banner_slider * site.banner_images
web.page.append(web.banner_slider.render())
web.page.section(web.title.create('Introduction').render())
web.paragraph.create(
"""Hackspaces are a shared space where artists, designers, makers, hackers, programmers, tinkerers, professionals and hobbyists
can work on their projects, share knowledge and collaborate.""")
web.paragraph.append(
"""We are in the process of developing Maidstone Hackspace. We're previous members of <span class="info" title="Innovation center medway prototype">(ICMP)</span> and looking to form a new space in the future.
At the moment, communication is via google groups, email, and the website. If you're at all intrested please join our <a href="#mailing-list-signup">mailing list</a>
and make yourself known!""")
web.page.section(web.paragraph.render())
web.page.section(web.title.create('Proposed activities').render())
bullet_list = [
("Workshop on building a mobile application which can run on ios and android,"
"potentially game oriented for a bit of fun, but open to suggestions.", ),
("Build an interactive splash screen to feature on this site.",),
(web.link.create('Suggest a new activity', 'Suggest a new activity', '#mailing-list-signup').render(),)]
web.list.create(ordered=False).set_classes('bullet-list')
web.list * bullet_list
web.page.append(web.list.render())
web.div.create('').set_classes('panel')
web.twitter_feed.create(username='MHackspace', widget_id='606798560374484992')
web.page.append(web.twitter_feed.render())
feed = feed_reader(site.rss_feeds)
web.columns.create()
for row in feed:
web.tiles.create()
web.columns.append(
web.tiles.append(
title = row.get('title'),
author = row.get('author'),
link = row.get('url'),
image = row.get('image'),
date = row.get('date'),
description = row.get('description')).render())
web.page.append(web.columns.render())
web.template.body.append(web.page.render())
return footer()
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Generate static pages') parser = argparse.ArgumentParser(description='Generate static pages')
parser.add_argument('--folder', dest='folder', nargs='?', help='output folder') parser.add_argument('--folder', dest='folder', nargs='?', help='output folder')
#~ args = parser.parse_args()
#~ print(args.accumulate(args.integers))
with codecs.open('./html/index.html', 'w', "utf-8") as fp: #module, function, output file
fp.write(index().decode('utf-8')) pages_list = (
('pages.homepage', 'index', 'index.html'),
#~ with open('./html/examples.html', 'w') as fp: ('pages.blog', 'index', 'blog.html'),
#~ fp.write(examples()) ('pages.competition', 'index', 'competition.html'))
with codecs.open('./html/blog.html', 'w', "utf-8") as fp:
fp.write(blog.index().decode('utf-8'))
with codecs.open('./html/competition.html', 'w', "utf-8") as fp:
fp.write(competition.index().decode('utf-8'))
for module, page, filename in pages_list:
page_module = __import__(module, globals(), locals(), page)
with codecs.open('./html/%s' % filename, 'w', "utf-8") as fp:
try:
fp.write(getattr(page_module, page)().decode('utf-8'))
print('Successfully Generated ./html/%s' % filename)
except:
print('Failed to Generate ./html/%s' % filename)

File diff suppressed because one or more lines are too long

View File

@ -21,23 +21,20 @@
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
</head> </head>
<body> <body>
<div id="headerstrip"><nav class="navstrip"><div class="left mini-logo">Maidstone Hackspace</div><div class="social"><div size="standard" class="g-plusone" data-href="http://maidstone-hackspace.org.uk/" data-size="medium" data-annotation="inline" count="true"></div><a href="https://twitter.com/share" class="twitter-share-button" data-via="True">Tweet</a><div size="standard" class="g-plusone" data-size="medium" data-annotation="inline" count="true"></div></div></nav></div> <div id="headerstrip"><nav class="navstrip"><div class="left mini-logo">Maidstone Hackspace</div><div class="social"><div class="btn"><a href="https://twitter.com/share" class="twitter-share-button" data-via="MHackspace">Tweet</a></div><div class="btn"><script type="IN/Share" data-url="http://maidstone-hackspace.org.uk/" data-counter="right"></script></div><div class="btn"><div size="standard" class="g-plusone" data-href="http://maidstone-hackspace.org.uk/" data-size="medium" data-annotation="bubble" count="true"></div></div></div></nav></div>
<nav id="leftNav" class="menu" ><ul><li class="active mi0"><a href="/" >Home</a></li><li class="mi1"><a href="#mailing-list-signup" >Contact</a></li></ul><div style="clear:both;"></div></nav> <nav id="leftNav" class="menu" ><ul><li class="active mi0"><a href="/" >Home</a></li><li class="mi1"><a href="/competition" >Competition</a></li><li class="mi2"><a href="#mailing-list-signup" >Contact</a></li></ul><div style="clear:both;"></div></nav>
<div class="page" ><header class="pageHeader"><img src="/static/images/competitions/screw_sorting_competition_banner.jpg" alt="Screw sorting competition banner" align="middle" style="margin:auto;display:block;width:500px;" /></header><section class="pageSection"><p>Welcome to the first ever maidstone hackspace competition, we are a new hackspace, so we are looking to get the word out and get some collaberation going.The First cometition will be to design a device which can sort a jar of screws by size, the winning entry we will attempt to build.</p></section><section class="pageSection"><ul class="bullet-list" > <div class="page" ><header class="pageHeader"><img src="/static/images/competitions/screw_sorting_competition_banner.jpg" alt="Screw sorting competition banner" align="middle" style="margin:auto;display:block;width:500px;" /></header><section class="pageSection"><p>Welcome to the first ever maidstone hackspace competition, we are a new hackspace, so we are looking to get the word out and get some collaberation going.The First cometition will be to design a device which can sort a jar of screws by size, the winning entry we will attempt to build.</p></section><section class="pageSection"><ul class="bullet-list" >
<li>Submit designs by some date here</li> <li>Submit designs by 31st of July</li>
<li>Images can be design in any software or drawn on a piece of paper but must be submitted as a jpg on the mailing list.</li> <li>Images can be design in any software or drawn on a piece of paper but must be submitted as a jpg on the mailing list.</li>
<li>Stick figures and crude line drawing are fine, we are not judge your artistic ability.</li> <li>Stick figures and crude line drawing are fine, we are not judge your artistic ability.</li>
</ul></section><section class="pageSection"><h2>Win a UNO Basic Starter Kit</h2></section><section class="pageSection"><p><img src="http://imgapp.banggood.com/thumb/large/2014/xiemeijuan/03/SKU208787/SKU208787a.jpg" alt="Arduino starter kit" align="middle" style="margin:auto;display:block;width:500px;" />This kit comes with an arduino board and various sensors and components, list below of every thing in the kit.<ul class="bullet-list" > </ul></section><section class="pageSection"><h2>Win a UNO Basic Starter Kit</h2></section><section class="pageSection"><p><img src="http://imgapp.banggood.com/thumb/large/2014/xiemeijuan/03/SKU208787/SKU208787a.jpg" alt="Arduino starter kit" align="middle" style="margin:auto;display:block;width:500px;" />This kit comes with an arduino board and various sensors and components, list below of every thing in the kit.<ul class="bullet-list" >

File diff suppressed because one or more lines are too long

View File

@ -6,6 +6,7 @@ from flask import Flask
from flask import make_response from flask import make_response
import generate import generate
from pages import homepage
from pages import blog from pages import blog
from pages import competition from pages import competition
@ -27,7 +28,7 @@ def blogs():
@web_app.route("/", methods=['GET']) @web_app.route("/", methods=['GET'])
def index(): def index():
"""home page""" """home page"""
return make_response(generate.index()) return make_response(homepage.index())
@web_app.route("/competition/", methods=['GET']) @web_app.route("/competition/", methods=['GET'])
def competition_index(): def competition_index():

View File

@ -27,9 +27,9 @@ def header():
# logo and social links at very top of the page # logo and social links at very top of the page
web.header_strip.create({}) web.header_strip.create({})
web.header_strip.social(web.google_plus.create(web.template.domain, plus=True, share=False, comments=False).render()) #web.header_strip.social(web.google_plus.create(web.template.domain, plus=True, share=False, comments=False).render())
web.header_strip.social(web.like.create(url=web.template.domain, plus=True, twitter='MHackspace').render()) web.header_strip.social(web.like.create(url=web.template.domain, plus=True, linkedin=True, twitter='MHackspace').render())
web.template.body.append(web.header_strip.render()) web.template.body.append(web.header_strip.render())
# navigation # navigation

Binary file not shown.

View File

@ -5,6 +5,7 @@ from libs.rss_fetcher import feed_reader
from pages import web from pages import web
from pages import header, footer from pages import header, footer
def index(): def index():
header() header()
web.page.create('blogs') web.page.create('blogs')
@ -17,7 +18,6 @@ def index():
web.tiles.create() web.tiles.create()
feed = feed_reader(site.rss_feeds) feed = feed_reader(site.rss_feeds)
for row in feed: for row in feed:
print row.get('image')
web.tiles.append( web.tiles.append(
title=row.get('title'), title=row.get('title'),
author=row.get('author'), author=row.get('author'),

Binary file not shown.

View File

@ -63,7 +63,7 @@ def index():
web.page.section(web.paragraph.render()) web.page.section(web.paragraph.render())
bullet_list = [ bullet_list = [
("Submit designs by some date here", ), ("Submit designs by 31st of July", ),
("Images can be design in any software or drawn on a piece of paper but must be submitted as a jpg on the mailing list.", ), ("Images can be design in any software or drawn on a piece of paper but must be submitted as a jpg on the mailing list.", ),
("Stick figures and crude line drawing are fine, we are not judge your artistic ability.",)] ("Stick figures and crude line drawing are fine, we are not judge your artistic ability.",)]

72
site/pages/homepage.py Normal file
View File

@ -0,0 +1,72 @@
import constants as site
from libs.rss_fetcher import feed_reader
from pages import web
from pages import header, footer
def index():
header()
web.template.body.append(web.header_strip.create({}).render())
web.template.body.append(web.menu.render())
web.page.create('')
web.page.section(
web.images.create(
'/static/template/images/tile-01.jpg'
).append(
'/static/template/images/tile-01.jpg'
).set_classes('tile-right').render())
web.banner_slider.reset()
web.banner_slider * site.banner_images
web.page.append(web.banner_slider.render())
web.page.section(web.title.create('Introduction').render())
web.paragraph.create(
"""Hackspaces are a shared space where artists, designers, makers, hackers, programmers, tinkerers, professionals and hobbyists
can work on their projects, share knowledge and collaborate.""")
web.paragraph.append(
"""We are in the process of developing Maidstone Hackspace. We're previous members of <span class="info" title="Innovation center medway prototype">(ICMP)</span> and looking to form a new space in the future.
At the moment, communication is via google groups, email, and the website. If you're at all intrested please join our <a href="#mailing-list-signup">mailing list</a>
and make yourself known!""")
web.page.section(web.paragraph.render())
web.page.section(web.title.create('Proposed activities').render())
bullet_list = [
("Workshop on building a mobile application which can run on ios and android,"
"potentially game oriented for a bit of fun, but open to suggestions.", ),
("Build an interactive splash screen to feature on this site.",),
(web.link.create('Suggest a new activity', 'Suggest a new activity', 'https://groups.google.com/forum/#!forum/maidstone-hackspace').render(),)]
web.list.create(ordered=False).set_classes('bullet-list')
web.list * bullet_list
web.page.append(web.list.render())
web.div.create('').set_classes('panel')
web.twitter_feed.create(username='MHackspace', widget_id='606798560374484992')
feed = feed_reader(site.rss_feeds)
web.columns.create()
web.columns.append(web.twitter_feed.render())
for row in feed:
web.tiles.create()
web.columns.append(
web.tiles.append(
title = row.get('title'),
author = row.get('author'),
link = row.get('url'),
image = row.get('image'),
date = row.get('date'),
description = row.get('description')).render())
web.page.append(web.columns.render())
web.template.body.append(web.page.render())
return footer()

View File

@ -118,7 +118,7 @@ button {margin-bottom:20px;background-color: #fff; height: 48px; width:100%; bor
.bullet-list li {margin:0px;margin-left:10px;line-height:100%;} .bullet-list li {margin:0px;margin-left:10px;line-height:100%;}
.tile {position:relative;background-color:#eee;width:460px;margin-left:20px;margin-bottom:20px;float:left;box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.26);} .tile {position:relative;background-color:#eee;width:460px;margin-left:20px;margin-bottom:20px;box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.26);}
.tile-img {margin:20px;width:420px;height:200px;overflow:hidden;background-repeat: no-repeat;background-position: center;background-image:url('/static/template/images/background.png');} .tile-img {margin:20px;width:420px;height:200px;overflow:hidden;background-repeat: no-repeat;background-position: center;background-image:url('/static/template/images/background.png');}
.tile header {background-color: #00232D;width:100%;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:150%;font-size:12px;} .tile header {background-color: #00232D;width:100%;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:150%;font-size:12px;}
.tile h2 {line-height:150%;font-size:12px;margin-right:20px;} .tile h2 {line-height:150%;font-size:12px;margin-right:20px;}
@ -133,3 +133,5 @@ button {margin-bottom:20px;background-color: #fff; height: 48px; width:100%; bor
.social {z-index:1;position:absolute;right:0px;top:0px;margin-top:25px;} .social {z-index:1;position:absolute;right:0px;top:0px;margin-top:25px;}
.social div{float:left;margin-left:20px;}
.col {width:480px;float:left;}

0
site/static/template/images/example-01.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

0
site/static/template/images/example-02.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

0
site/static/template/images/example-03.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

0
site/static/template/images/hackspace.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
site/static/template/images/hackspace.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

0
site/static/template/images/icon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
site/static/template/images/tile-01.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

0
site/static/template/images/tile-02.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

0
site/widgets/__init__.py Normal file → Executable file
View File

0
site/widgets/__init__.pyc Normal file → Executable file
View File

View File

@ -18,6 +18,7 @@ class control(www.default.html_ui):
self.current_column = 0 self.current_column = 0
self.cols[self.current_column].append(content) self.cols[self.current_column].append(content)
self.current_column += 1 self.current_column += 1
return self
def render(self): def render(self):
return '<div>%s</div>' % '</div><div>'.join(self.next_column()) return '<div class="col">%s</div>' % '</div><div class="col">'.join(self.next_column())

0
site/widgets/footer-content.pyc Normal file → Executable file
View File

0
site/widgets/footer.pyc Normal file → Executable file
View File

0
site/widgets/footer_content.py Normal file → Executable file
View File

0
site/widgets/footer_content.pyc Normal file → Executable file
View File

0
site/widgets/google_group.pyc Normal file → Executable file
View File

0
site/widgets/google_groups.py Normal file → Executable file
View File

0
site/widgets/google_groups.pyc Normal file → Executable file
View File

0
site/widgets/google_hangout.py Normal file → Executable file
View File

0
site/widgets/google_hangout.pyc Normal file → Executable file
View File

0
site/widgets/header_strip.py Normal file → Executable file
View File

0
site/widgets/headerstrip.pyc Normal file → Executable file
View File

View File

@ -7,29 +7,39 @@ class control(base_widget):
script = [] script = []
facebook = False facebook = False
twitter = True twitter = False
plus = True plus = False
linkedin = False
plus_script = False plus_script = False
linkedin_script = False linkedin_script = False
facebook_script = False facebook_script = False
twitter_script = False twitter_script = False
size = 'medium'
annotation = 'inline'
def create(self, url, plus=None, twitter=None, facebook=None, linkedin=None): def create(self, url, plus=None, twitter=None, facebook=None, linkedin=None):
self.url = url
self.plus = plus self.plus = plus
self.twitter = twitter
self.facebook = facebook
self.linkedin = linkedin
if plus: if plus:
if self.plus_script is False: if self.plus_script is False:
self.plus_script = True self.plus_script = True
self.includes.append('<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>') self.includes.append("""<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>""")
if twitter: if twitter:
if self.twitter_script is False: if self.twitter_script is False:
self.twitter_script = True self.twitter_script = True
self.footer.append(""" self.footer.append("""
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>""") <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>""")
if linkedin:
if self.linkedin_script is False:
self.linkedin_script = True
self.footer.append("""
<script src="//platform.linkedin.com/in.js" type="text/javascript"> lang: en_US</script>""")
if facebook: if facebook:
if self.facebook_script is False: if self.facebook_script is False:
self.facebook_script = True self.facebook_script = True
@ -38,21 +48,16 @@ class control(base_widget):
return self return self
def url(self, link=None):
self.link = link
return self
def render(self): def render(self):
link = ''
self.count += 1 self.count += 1
htm = '' htm = ''
if self.twitter: if self.twitter:
htm += '<a href="https://twitter.com/share" class="twitter-share-button" data-via="%s">Tweet</a>' % self.twitter htm += '<div class="btn"><a href="https://twitter.com/share" class="twitter-share-button" data-via="%s">Tweet</a></div>' % self.twitter
if self.facebook: if self.facebook:
htm += '<div class="fb-like" data-href="%s" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div>' % self.url htm += '<div class="btn"><div class="fb-share-button" data-href="%s" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div></div>' % self.url
if self.link: if self.linkedin:
link = ' data-href="' + self.link + '" ' htm += '<div class="btn"><script type="IN/Share" data-url="%s" data-counter="right"></script></div>' % self.url
if self.plus is True: if self.plus is True:
htm += '<div size="standard" class="g-plusone" ' + link + self.action + ' data-size="' + self.size + '" data-annotation="' + self.annotation + '" count="true"></div>' htm += '<div class="btn"><div size="standard" class="g-plusone" data-href="%s" data-size="medium" data-annotation="bubble" count="true"></div></div>' % self.url
return htm return htm

0
site/widgets/loginbox.py Normal file → Executable file
View File

0
site/widgets/loginbox.pyc Normal file → Executable file
View File

0
site/widgets/readme Normal file → Executable file
View File