Preliminary work for new boards page

This commit is contained in:
Phil Howard 2016-06-24 22:09:21 +01:00
parent c815f5fbd6
commit 4a57fa5c7d
3 changed files with 120 additions and 13 deletions

View File

@ -412,7 +412,8 @@ base_url = pinout.get_setting('base_url', '/pinout/') # '/pinout-tr/pinout/'
resource_url = pinout.get_setting('resource_url', '/resources/') # '/pinout-tr/resources/'
url_suffix = pinout.get_setting('url_suffix', '') # '.html'
template = open('src/{}/template/layout.html'.format(lang)).read()
template_main = open('src/{}/template/layout.html'.format(lang)).read()
template_boards = open('src/{}/template/boards.html'.format(lang)).read()
pages = {}
navs = {}
@ -501,6 +502,8 @@ Generate the new categorised navigation menu
'''
overlay_subnav = ''.join(map(lambda overlay_type: '<li class="group_{cls}" data-group="{cls}">{text}</li>'.format(cls=overlay_type,text=strings['group_' + overlay_type]),overlay_subnav))
boards_page = []
for overlay_type in nav_html.keys():
for overlay_group, items in nav_html[overlay_type].iteritems():
items.sort()
@ -509,6 +512,18 @@ for overlay_type in nav_html.keys():
group_items = ''
if overlay_type == 'board':
for x in items:
image = x['image'] if 'image' in x else ''
print(x)
boards_page.append('<li class="board"><a href="{base_url}{page_url}"><img src="{resource_url}boards/{image}" /><strong>{name}</strong></a></li>'.format(
image=image,
name=x['name'],
page_url=x['page_url'],
base_url=base_url,
resource_url=resource_url))
group_items_pictures = (''.join(map(lambda x: '<li class="featured"><a href="{base_url}{page_url}"><img src="{resource_url}boards/{image}" /><strong>{name}</strong><span>{description}</span></a></li>'.format(
image=x['image'],
name=x['name'],
@ -542,7 +557,10 @@ serve.py will mirror this structure for testing.
'''
pages['index'] = {}
pages['index']['rendered_html'] = render_overlay_page({'name': 'Index', 'long_description': load_md('index.md')})
navs['index'] = render_nav('pinout')
default_nav = render_nav('pinout')
navs['index'] = default_nav
'''
Add the 404 page if 404.md is present.
@ -551,9 +569,12 @@ page404 = load_md('404.md')
if page404 is not None:
pages['404'] = {}
pages['404']['rendered_html'] = render_overlay_page({'name': '404', 'long_description': page404})
navs['404'] = render_nav('pinout')
navs['404'] = default_nav
pages['boards'] = {'rendered_html': ''.join(boards_page)}
navs['boards'] = default_nav
print('\nRendering pin pages...')
for pin in range(1, len(pinout.pins) + 1):
@ -565,7 +586,7 @@ for pin in range(1, len(pinout.pins) + 1):
langlinks = get_lang_urls('pin{}'.format(pin))
pin_nav = render_nav(pin_url)
pin_html = pinout.render_html(template,
pin_html = pinout.render_html(template_main,
lang_links="\n\t\t".join(langlinks),
hreflang="\n\t\t".join(hreflang),
nav=pin_nav,
@ -592,9 +613,12 @@ for url in pages:
hreflang = []
langlinks = []
if url == 'index':
hreflang = get_hreflang_urls('index')
langlinks = get_lang_urls('index')
# Select the appropriate template for this page
template = template_boards if url == 'boards' else template_main
if url == 'index' or url == 'boards':
hreflang = get_hreflang_urls(url)
langlinks = get_lang_urls(url)
if 'src' in pages[url]:
src = pages[url]['src']
@ -622,7 +646,7 @@ for url in pages:
nav_html=nav_html
)
if url != 'index' and url != '404':
if url not in ['index','404','boards']:
url = os.path.join('pinout', url)
print('>> {}.html'.format(url))

View File

@ -247,19 +247,26 @@ Drop down nav
width:34%;
}
#sections .featured {
#sections .featured, #boards .board {
box-sizing:border-box;
width:33.3333%;
display:block;
float:left;
text-align:center;
}
#sections .featured img {
#boards .board a {
padding-top: 20px;
padding-bottom: 20px;
min-height: 230px;
display:block;
}
#sections .featured img, #boards .board img {
max-width:100%;
height:auto;
display:block;
margin:0 auto;
}
#sections .featured a {
#sections .featured a, #boards .board a {
background:none;
}
#sections .boards hr {
@ -273,7 +280,10 @@ Drop down nav
#sections .boards .featured a:hover {
background: #D33682;
}
#sections .featured strong {
#boards .board a:hover {
background: #fdfaf0;
}
#sections .featured strong, #boards .board strong {
font-size:20px;
font-family: 'Avenir', sans-serif;
font-weight: 500;
@ -282,7 +292,11 @@ Drop down nav
padding: 0 5px;
display:block;
}
#sections .featured span {
#boards .board strong {
color:#333333;
}
#sections .featured span, #boards .board span {
color: #FFFFFF;
font-size: 16px;
font-weight: normal;

View File

@ -0,0 +1,69 @@
<!doctype html>
<html lang="{{langcode}}">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>{{title}}</title>
<meta name="description" content="{{description}}" />
<link href='//fonts.googleapis.com/css?family=Ubuntu+Mono' rel='stylesheet' type='text/css' />
<link href='{{resource_url}}prettify/prettify.css' rel='stylesheet' />
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<link href="{{resource_url}}pinout.css?v={{v}}" rel="stylesheet">
<link href="{{resource_url}}print.css?v={{v}}" rel="stylesheet" media="print">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
{{hreflang}}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-69846516-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div id="container">
<h1 class="logo"><a title="Raspberry Pi GPIO Pinout home" href="/"><img src="{{resource_url}}pinout-logo.png" style="top:8px;" /><span>Raspberry Pi</span>n<span class="out">out</span></a></h1>
<nav id="gpio">
<div id="pinbase"></div>
<div id="pinbasebplus"></div>
{{nav}}
</nav>
<div id="content">
<div id="sections">
<ul>
<li class="boards"><a href="/boards" title="Add-on boards for Raspberry Pi">Boards</a></li>
<li class="interfaces"><a href="" title="Raspberry Pi hardware interfaces">Interfaces</a>
<div class="dropdown">{{nav_html_interface}}</div>
</li>
<li class="guides"><a href="" title="Connection guides for Raspberry Pi GPIO">Guides</a>
<div class="dropdown">{{nav_html_guide}}</div>
</li>
</ul>
</div>
<div id="lang">
<ul class="lang-nav">
{{lang_links}}
</ul>
</div>
<div id="pages">
<article><h1>Raspberry Pi HATs, pHATs &amp; Add-ons</h1></article>
<div id="boards"><ul>{{content}}</ul></div>
</div>
</div>
<div class="footer" style="clear: both;padding: 20px 0px;text-align:center;">
<p>Spotted an error, want to add your board's pinout? <a href="https://github.com/gadgetoid/Pinout2">Head on over to our GitHub repository</a> and submit an Issue or a Pull Request!</p>
<p>Originally part of <a href="http://pi.gadgetoid.com">pi.gadgetoid.com</a></p>
<p>Maintained by <a href="https://twitter.com/gadgetoid"><i class="fa fa-twitter"></i> @Gadgetoid</a> and <a href="https://twitter.com/roguehal13"><i class="fa fa-twitter"></i> @RogueHAL13</a></p>
</ul>
</div>
</div>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
<script src='{{resource_url}}prettify/lang-ruby.js'></script>
<script src='{{resource_url}}prettify/lang-bash.js'></script>
<script src='{{resource_url}}pinout.js?v={{v}}'></script>
</body>
</html>