[pypy-commit] pypy.org nikola: adjust theme, css for header, footer alignment

mattip pypy.commits at gmail.com
Wed Jan 8 19:51:31 EST 2020


Author: Matti Picus <matti.picus at gmail.com>
Branch: nikola
Changeset: r972:2a10a45f9acf
Date: 2020-01-09 08:51 +0800
http://bitbucket.org/pypy/pypy.org/changeset/2a10a45f9acf/

Log:	adjust theme, css for header, footer alignment

diff --git a/conf.py b/conf.py
--- a/conf.py
+++ b/conf.py
@@ -137,9 +137,11 @@
 #          with a ``/``, otherwise end them with ``/index.html`` — or
 #          else they won’t be highlighted when active.
 
+# PyPy templates out the logo into a div, so it is not here
+
 NAVIGATION_LINKS = {
     DEFAULT_LANG: (
-        ('/index.html', '<image src="images/pypy-logo.svg" width=75 alt=PyPy>'),
+        
         (
             (
                 ('/features.html', 'What is PyPy?'),
@@ -955,9 +957,15 @@
 # A small copyright notice for the page footer (in HTML).
 # (translatable)
 CONTENT_FOOTER = """
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo" />  Contents ©
-{date} <a href="mailto:{email}">{author}</a> Powered by <a
-href="https://getnikola.com" rel="nofollow">Nikola</a> {license}
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo" />
+  </div>
+  <div class=logotext>
+     Contents © {date} <a href="mailto:{email}">{author}</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> {license}
+  </div>
+</div>
 """
 
 # Things that will be passed to CONTENT_FOOTER.format().  This is done
diff --git a/public/archive.html b/public/archive.html
--- a/public/archive.html
+++ b/public/archive.html
@@ -26,10 +26,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -60,9 +63,17 @@
     </header><main id="content"><article class="listpage"><header><h1>Archive</h1>
     </header><p>No posts found.</p>
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/assets/css/styles.css b/public/assets/css/styles.css
--- a/public/assets/css/styles.css
+++ b/public/assets/css/styles.css
@@ -11,19 +11,35 @@
     background-color: #d0dad5;
 }
 
-/* Add a black background color to the top navigation */
-.topnav {
+.myTopNav {
   /* background-color: #333; */
-  overflow: hidden;
+  display: flex;
+  flex-direction: row;
+  margin-bottom: 5px;
+  height: 47px;
 }
 
 /* Style the links inside the navigation bar */
+.myTopNav a {
+  float: left;
+  display: block;
+  text-decoration: none;
+  font-size: 17px;
+}
+
+.topnav {
+  height: 32px;
+}
+
 .topnav a {
   float: left;
   display: block;
   color: #383939;
   text-align: center;
-  padding: 14px 16px;
+  padding-top: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  padding-bottom: 12px;
   text-decoration: none;
   font-size: 17px;
 }
@@ -35,7 +51,7 @@
 }
 
 /* Hide the link that should open and close the topnav on small screens */
-.topnav .icon {
+.myTopNav .icon {
   display: none;
 }
 
@@ -51,7 +67,10 @@
   border: none;
   outline: none;
   color: #383939;
-  padding: 14px 16px;
+  padding-top: 10px;
+  padding-left: 16px;
+  padding-right: 16px;
+  padding-bottom: 12px;
   background-color: inherit;
   font-family: inherit;
   margin: 0;
@@ -78,7 +97,7 @@
 }
 
 /* Add a dark background on topnav links and the dropdown button on hover */
-.topnav a:hover, .dropdown:hover .dropbtn {
+.myTopNav a:hover, .dropdown:hover .dropbtn {
   background-color: #555;
   color: white;
 }
@@ -96,10 +115,10 @@
 
 /* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
 @media screen and (max-width: 600px) {
-  .topnav a:not(:first-child), .dropdown .dropbtn {
+  .myTopNav a:not(:first-child), .dropdown .dropbtn {
     display: none;
   }
-  .topnav a.icon {
+  .myTopNav a.icon {
     float: right;
     display: block;
   }
@@ -107,20 +126,20 @@
 
 /* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */
 @media screen and (max-width: 600px) {
-  .topnav.responsive {position: relative;}
-  .topnav.responsive a.icon {
+  .myTopNav.responsive {position: relative;}
+  .myTopNav.responsive a.icon {
     position: absolute;
     right: 0;
     top: 0;
   }
-  .topnav.responsive a {
+  .myTopNav.responsive a {
     float: none;
     display: block;
     text-align: left;
   }
-  .topnav.responsive .dropdown {float: none;}
-  .topnav.responsive .dropdown-content {position: relative;}
-  .topnav.responsive .dropdown .dropbtn {
+  .myTopNav.responsive .dropdown {float: none;}
+  .myTopNav.responsive .dropdown-content {position: relative;}
+  .myTopNav.responsive .dropdown .dropbtn {
     display: block;
     width: 100%;
     text-align: left;
@@ -198,4 +217,15 @@
     margin-bottom: 0; 
 }
 
+.myfooter {
+  overflow: auto;
+  display: flex;
+  flex-direction: row;
+}
 
+.myfooter div {
+  height: 32px;
+}
+
+.logotext {
+  padding-top: 4px;
diff --git a/public/blog/index.html b/public/blog/index.html
--- a/public/blog/index.html
+++ b/public/blog/index.html
@@ -26,10 +26,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="../index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="#" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -63,9 +66,17 @@
 
 
          </main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/categories/index.html b/public/categories/index.html
--- a/public/categories/index.html
+++ b/public/categories/index.html
@@ -26,10 +26,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="../index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="#" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -62,9 +65,17 @@
             
         </div>
     </header></article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/compat.html b/public/compat.html
--- a/public/compat.html
+++ b/public/compat.html
@@ -34,10 +34,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -109,11 +112,11 @@
 not support refcounting semantics. The following code won't fill the
 file immediately, but only after a certain period of time, when the GC
 does a collection:</p>
-<pre class="code python"><a name="rest_code_70036feadffb497296ad8b0a7e6a5477-1"></a><span class="nb">open</span><span class="p">(</span><span class="s2">"filename"</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"stuff"</span><span class="p">)</span>
+<pre class="code python"><a name="rest_code_171ff66a5a8940aea74fd4c766cc746e-1"></a><span class="nb">open</span><span class="p">(</span><span class="s2">"filename"</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"stuff"</span><span class="p">)</span>
 </pre>
 <p>The proper fix is</p>
-<pre class="code python"><a name="rest_code_fa080b8497dc418fa273f6f2e9cc4984-1"></a><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">"filename"</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
-<a name="rest_code_fa080b8497dc418fa273f6f2e9cc4984-2"></a>    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"stuff"</span><span class="p">)</span>
+<pre class="code python"><a name="rest_code_6d970e24940243f390d3e2518dab1da7-1"></a><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">"filename"</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+<a name="rest_code_6d970e24940243f390d3e2518dab1da7-2"></a>    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"stuff"</span><span class="p">)</span>
 </pre>
 <p>The same problem---not closing your files---can also show up if your
 program opens a large number of files without closing them explicitly.
@@ -127,22 +130,22 @@
 <p>Similarly, remember that you must <code class="docutils literal">close()</code> a non-exhausted
 generator in order to have its pending <code class="docutils literal">finally</code> or <code class="docutils literal">with</code>
 clauses executed immediately:</p>
-<pre class="code python"><a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-1"></a><span class="k">def</span> <span class="nf">mygen</span><span class="p">():</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-2"></a>    <span class="k">with</span> <span class="n">foo</span><span class="p">:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-3"></a>        <span class="k">yield</span> <span class="mi">42</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-4"></a>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-5"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mygen</span><span class="p">():</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-6"></a>    <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-7"></a>        <span class="k">break</span>    <span class="c1"># foo.__exit__ is not run immediately!</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-8"></a>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-9"></a><span class="c1"># fixed version:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-10"></a><span class="n">gen</span> <span class="o">=</span> <span class="n">mygen</span><span class="p">()</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-11"></a><span class="k">try</span><span class="p">:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-12"></a>    <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">gen</span><span class="p">:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-13"></a>        <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-14"></a>            <span class="k">break</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-15"></a><span class="k">finally</span><span class="p">:</span>
-<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-16"></a>    <span class="n">gen</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+<pre class="code python"><a name="rest_code_35bd84f66c384000a4efa36835f2f48f-1"></a><span class="k">def</span> <span class="nf">mygen</span><span class="p">():</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-2"></a>    <span class="k">with</span> <span class="n">foo</span><span class="p">:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-3"></a>        <span class="k">yield</span> <span class="mi">42</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-4"></a>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-5"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mygen</span><span class="p">():</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-6"></a>    <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-7"></a>        <span class="k">break</span>    <span class="c1"># foo.__exit__ is not run immediately!</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-8"></a>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-9"></a><span class="c1"># fixed version:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-10"></a><span class="n">gen</span> <span class="o">=</span> <span class="n">mygen</span><span class="p">()</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-11"></a><span class="k">try</span><span class="p">:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-12"></a>    <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">gen</span><span class="p">:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-13"></a>        <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-14"></a>            <span class="k">break</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-15"></a><span class="k">finally</span><span class="p">:</span>
+<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-16"></a>    <span class="n">gen</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 </pre>
 <p>More generally, <code class="docutils literal">__del__()</code> methods are not executed as predictively
 as on CPython: they run "some time later" in PyPy (or not at all if
@@ -162,9 +165,17 @@
     </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/contact.html b/public/contact.html
--- a/public/contact.html
+++ b/public/contact.html
@@ -35,10 +35,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -81,9 +84,17 @@
 </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/download.html b/public/download.html
--- a/public/download.html
+++ b/public/download.html
@@ -41,10 +41,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -257,11 +260,11 @@
 trunk using <a class="reference external" href="https://www.mercurial-scm.org/">Mercurial</a>.  The trunk usually works and is of course
 more up-to-date.  The following command should run in about 7 minutes
 nowadays if you have hg >= 3.7 (it is much slower with older versions):</p>
-<pre class="code bash"><a name="rest_code_c1f6a57f6dc145cf9d0be6cc55504407-1"></a>hg clone https://bitbucket.org/pypy/pypy
+<pre class="code bash"><a name="rest_code_eb222efdcc57450f9c01afcce48233ec-1"></a>hg clone https://bitbucket.org/pypy/pypy
 </pre>
 <p>The trunk contains PyPy 2.  For PyPy 3, switch to the correct branch:</p>
-<pre class="code bash"><a name="rest_code_db060d4350a7428cbd3ae2ce693c5595-1"></a><span class="c1"># switch to the branch that implements Python 3.6</span>
-<a name="rest_code_db060d4350a7428cbd3ae2ce693c5595-2"></a>hg update py3.6
+<pre class="code bash"><a name="rest_code_85d4249d66294887b619ae00370a5a1a-1"></a><span class="c1"># switch to the branch that implements Python 3.6</span>
+<a name="rest_code_85d4249d66294887b619ae00370a5a1a-2"></a>hg update py3.6
 </pre>
 <p>Alternatively, get one of the following smaller packages for the source at
 the same revision as the above binaries:</p>
@@ -275,19 +278,19 @@
 </li>
 <li>
 <p>Enter the <code class="docutils literal">goal</code> directory:</p>
-<pre class="code bash"><a name="rest_code_cbfc2282773844319735dc5bd20ffd1a-1"></a><span class="nb">cd</span> pypy/pypy/goal
+<pre class="code bash"><a name="rest_code_5322dcf80b114303b4e460f5a48867ff-1"></a><span class="nb">cd</span> pypy/pypy/goal
 </pre>
 </li>
 <li>
 <p>Run the <code class="docutils literal">rpython</code> script.  Here are the common combinations
 of options (works also with <code class="docutils literal">python</code> instead of <code class="docutils literal">pypy</code>;
 requires CPython 2.7 or PyPy 2, even to build PyPy 3):</p>
-<pre class="code bash"><a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-1"></a><span class="c1"># get the JIT version</span>
-<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-2"></a>pypy ../../rpython/bin/rpython -Ojit targetpypystandalone
-<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-3"></a><span class="c1"># get the no-jit version</span>
-<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-4"></a>pypy ../../rpython/bin/rpython -O2 targetpypystandalone
-<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-5"></a><span class="c1"># get the sandbox version</span>
-<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-6"></a>pypy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone
+<pre class="code bash"><a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-1"></a><span class="c1"># get the JIT version</span>
+<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-2"></a>pypy ../../rpython/bin/rpython -Ojit targetpypystandalone
+<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-3"></a><span class="c1"># get the no-jit version</span>
+<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-4"></a>pypy ../../rpython/bin/rpython -O2 targetpypystandalone
+<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-5"></a><span class="c1"># get the sandbox version</span>
+<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-6"></a>pypy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone
 </pre>
 </li>
 <li><p>Enjoy Mandelbrot <code class="docutils literal"><span class="pre">:-)</span></code>  It takes on the order of half an hour to
@@ -320,9 +323,9 @@
 call it with <code class="docutils literal"><span class="pre">...pypy-c</span> <span class="pre">../../rpython/bin/rpython</span> <span class="pre">-Ojit</span></code>.</p>
 <p>2. if even using PyPy instead of CPython is not enough, try to tweak
 some internal parameters.  Example (slower but saves around 400MB):</p>
-<pre class="code bash"><a name="rest_code_1d541122efac4444b614f7d18e9d1fe5-1"></a><span class="nv">PYPY_DONT_RUN_SUBPROCESS</span><span class="o">=</span><span class="m">1</span> <span class="nv">PYPY_GC_MAX_DELTA</span><span class="o">=</span>200MB <span class="se">\</span>
-<a name="rest_code_1d541122efac4444b614f7d18e9d1fe5-2"></a>pypy --jit <span class="nv">loop_longevity</span><span class="o">=</span><span class="m">300</span> ../../rpython/bin/rpython -Ojit --source
-<a name="rest_code_1d541122efac4444b614f7d18e9d1fe5-3"></a><span class="c1"># then read the next point about --source</span>
+<pre class="code bash"><a name="rest_code_77ce200d788b4103830bd644a28a8433-1"></a><span class="nv">PYPY_DONT_RUN_SUBPROCESS</span><span class="o">=</span><span class="m">1</span> <span class="nv">PYPY_GC_MAX_DELTA</span><span class="o">=</span>200MB <span class="se">\</span>
+<a name="rest_code_77ce200d788b4103830bd644a28a8433-2"></a>pypy --jit <span class="nv">loop_longevity</span><span class="o">=</span><span class="m">300</span> ../../rpython/bin/rpython -Ojit --source
+<a name="rest_code_77ce200d788b4103830bd644a28a8433-3"></a><span class="c1"># then read the next point about --source</span>
 </pre>
 </li>
 <li><p>You can run translations with <code class="docutils literal"><span class="pre">--source</span></code>, which only builds the C
@@ -343,9 +346,9 @@
 <p>Once PyPy is translated from source the binary package similar to those
 provided in the section <a class="reference internal" href="download.html#default-with-a-jit-compiler">Default (with a JIT Compiler)</a> above could be
 easily created with <code class="docutils literal">package.py</code> script:</p>
-<pre class="code bash"><a name="rest_code_8bbac17aef5e4c6583369269ff7919bd-1"></a><span class="nb">cd</span> ./pypy/pypy/tool/release/
-<a name="rest_code_8bbac17aef5e4c6583369269ff7919bd-2"></a>python package.py --help <span class="c1">#for information</span>
-<a name="rest_code_8bbac17aef5e4c6583369269ff7919bd-3"></a>python package.py --archive-name pypy-my-own-package-name
+<pre class="code bash"><a name="rest_code_a0dd03f8836b440982e9ed4bcd9d5999-1"></a><span class="nb">cd</span> ./pypy/pypy/tool/release/
+<a name="rest_code_a0dd03f8836b440982e9ed4bcd9d5999-2"></a>python package.py --help <span class="c1">#for information</span>
+<a name="rest_code_a0dd03f8836b440982e9ed4bcd9d5999-3"></a>python package.py --archive-name pypy-my-own-package-name
 </pre>
 <p>It is recommended to use package.py because custom scripts will
 invariably become out-of-date.  If you want to write custom scripts
@@ -454,9 +457,17 @@
     </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/features.html b/public/features.html
--- a/public/features.html
+++ b/public/features.html
@@ -33,10 +33,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -157,16 +160,16 @@
 build <code class="docutils literal"><span class="pre">pypy-sandbox</span></code> from it (see <a class="reference external" href="download.html#building-from-source">Building from source</a>).  These
 instructions give you a <code class="docutils literal"><span class="pre">pypy-c</span></code> that you should rename to
 <code class="docutils literal"><span class="pre">pypy-sandbox</span></code> to avoid future confusion.  Then run:</p>
-<pre class="code bash"><a name="rest_code_d8a8660498ac4e2f88a5b8fcf70faaa8-1"></a><span class="nb">cd</span> pypy/sandbox
-<a name="rest_code_d8a8660498ac4e2f88a5b8fcf70faaa8-2"></a>pypy_interact.py path/to/pypy-sandbox
-<a name="rest_code_d8a8660498ac4e2f88a5b8fcf70faaa8-3"></a><span class="c1"># don't confuse it with pypy/goal/pyinteractive.py!</span>
+<pre class="code bash"><a name="rest_code_8e62c9019a8d4f5285cd3e9e15afe580-1"></a><span class="nb">cd</span> pypy/sandbox
+<a name="rest_code_8e62c9019a8d4f5285cd3e9e15afe580-2"></a>pypy_interact.py path/to/pypy-sandbox
+<a name="rest_code_8e62c9019a8d4f5285cd3e9e15afe580-3"></a><span class="c1"># don't confuse it with pypy/goal/pyinteractive.py!</span>
 </pre>
 <p>You get a fully sandboxed interpreter, in its own filesystem hierarchy
 (try <code class="docutils literal"><span class="pre">os.listdir('/')</span></code>).  For example, you would run an untrusted
 script as follows:</p>
-<pre class="code bash"><a name="rest_code_c0777f208eeb440cb2a30c4791d5446d-1"></a>mkdir virtualtmp
-<a name="rest_code_c0777f208eeb440cb2a30c4791d5446d-2"></a>cp untrusted.py virtualtmp/
-<a name="rest_code_c0777f208eeb440cb2a30c4791d5446d-3"></a>pypy_interact.py --tmp<span class="o">=</span>virtualtmp pypy-sandbox /tmp/untrusted.py
+<pre class="code bash"><a name="rest_code_d48bb7a9ea1d499c9f2cb67b35ca403f-1"></a>mkdir virtualtmp
+<a name="rest_code_d48bb7a9ea1d499c9f2cb67b35ca403f-2"></a>cp untrusted.py virtualtmp/
+<a name="rest_code_d48bb7a9ea1d499c9f2cb67b35ca403f-3"></a>pypy_interact.py --tmp<span class="o">=</span>virtualtmp pypy-sandbox /tmp/untrusted.py
 </pre>
 <p>Note that the path <code class="docutils literal">/tmp/untrusted.py</code> is a path inside the sandboxed
 filesystem.  You don't have to put <code class="docutils literal">untrusted.py</code> in the real <code class="docutils literal">/tmp</code>
@@ -179,9 +182,17 @@
     </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/index.html b/public/index.html
--- a/public/index.html
+++ b/public/index.html
@@ -20,12 +20,15 @@
 <meta property="og:site_name" content="PyPy">
 <meta property="og:title" content="Welcome to PyPy">
 <meta property="og:url" content="https://www.pypy.org/">
-<meta property="og:description" content='A fast, compliant alternative implementation of Python
+<meta property="og:description" content="A fast, compliant alternative implementation of Python
 Get Started : Download and install
 What is PyPy : Features
 Documentation (external link)
-"If you want your code to run faster,
-you should probabl'>
+
+On average, PyPy is 4.4 times faster than CPython
+
+
+PyP">
 <meta property="og:type" content="article">
 <meta property="article:published_time" content="2019-12-28T16:14:02Z">
 </head>
@@ -37,10 +40,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="#"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="#" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -72,20 +78,25 @@
 
         
     </header><div class="e-content entry-content" itemprop="articleBody text">
-    <div class="row">
+    <div>
+<div class="row">
 <div class="column pb-4">
 <img alt="PyPy logo" src="images/pypy-logo.svg" style="width: 350px;"><p>A <a class="reference external" href="http://speed.pypy.org/">fast</a>, <a class="reference external" href="compat.html">compliant</a> alternative implementation of <a class="reference external" href="http://python.org/">Python</a></p>
 <p class="button"><a class="reference external" href="download.html">Get Started</a> : Download and install</p>
 <p class="button"><a class="reference external" href="features.html">What is PyPy</a> : Features</p>
 <p class="button"><a class="reference external" href="https://doc.pypy.org">Documentation</a> (external link)</p>
-<pre class="literal-block">"If you want your code to run faster,
-you should probably just use PyPy."
--- Guido van Rossum (creator of Python)</pre>
-<p>On average, PyPy is <strong>4.4 times faster</strong> than CPython</p>
+</div>
+<div class="column pb-4">
+<p class="small">On average, PyPy is <strong>4.4 times faster</strong> than CPython</p>
 <div class="text-sm figure">
 <img alt='PyPy vs. Python speed comparison graph"' src="images/pypy_speed_graph.png"><p class="caption">PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
 better. Based on the geometric average of all benchmarks</p>
 </div>
+</div>
+</div>
+<pre class="literal-block">"If you want your code to run faster,
+you should probably just use PyPy."
+-- Guido van Rossum (creator of Python)</pre>
 <p><strong>Advantages and distinct Features</strong></p>
 <ul class="simple">
 <li><p><strong>Speed:</strong> thanks to its Just-in-Time compiler, Python programs
@@ -100,13 +111,20 @@
 <li><p>As well as other <a class="reference external" href="features.html">features</a>.</p></li>
 </ul>
 </div>
-</div>
     </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/index.rst b/public/index.rst
deleted file mode 100644
--- a/public/index.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-.. title: Welcome to PyPy
-.. slug: index
-.. date: 2019-12-28 16:14:02 UTC
-.. tags: 
-.. category: 
-.. link: 
-.. description: 
-.. type: text
-
-.. raw:: html
-
-    <div class="row">
-    <div class="column pb-4">
-
-.. image:: images/pypy-logo.svg
-    :alt: PyPy logo
-    :width: 350px
-
-A `fast`_, `compliant`_ alternative implementation of `Python`_
-
-.. class:: button
-
-    `Get Started`_ : Download and install
-
-.. class:: button
-
-    `What is PyPy`_ : Features
-
-.. class:: button
-
-    `Documentation`_ (external link)
-
-.. _`Get Started`: download.html
-.. _`What is PyPy`: features.html
-.. _`Documentation`: https://doc.pypy.org
-
-
-::
-
-    "If you want your code to run faster,
-    you should probably just use PyPy."
-    -- Guido van Rossum (creator of Python)
-
-On average, PyPy is **4.4 times faster** than CPython
-
-.. figure:: images/pypy_speed_graph.png
-    :alt: PyPy vs. Python speed comparison graph"
-    :figclass: text-sm
-
-    PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
-    better. Based on the geometric average of all benchmarks
-
-
-**Advantages and distinct Features**
-
-* **Speed:** thanks to its Just-in-Time compiler, Python programs
-  often run `faster`_ on PyPy.  `(What is a JIT compiler?)`_
-
-* **Memory usage:** memory-hungry Python programs (several hundreds of
-  MBs or more) might end up taking `less space`_ than they do in CPython.
-
-* **Compatibility:** PyPy is `highly compatible`_ with existing python code.
-  It supports `cffi`_, `cppyy`_, and can run popular python libraries like
-  `twisted`_ and `django`_.
-
-* **Stackless:** PyPy comes by default with support for `stackless mode`_,
-  providing micro-threads for massive concurrency.
-
-* As well as other `features`_.
-
-.. _`stackless mode`: features.html#stackless
-.. _`Python`: http://python.org/
-.. _`fast`: http://speed.pypy.org/
-.. _`faster`: http://speed.pypy.org/
-.. _`(What is a JIT compiler?)`: http://en.wikipedia.org/wiki/Just-in-time_compilation
-.. _`run untrusted code`: features.html#sandboxing
-.. _`compliant`: compat.html
-.. _`Python docs`: http://docs.python.org/2.7
-.. _`twisted`: https://twistedmatrix.com/
-.. _`django`: https://www.djangoproject.com/
-.. _`cffi`: https://cffi.readthedocs.org
-.. _`cppyy`: https://cppyy.readthedocs.org
-.. _`features`: features.html
-.. _`less space`: http://morepypy.blogspot.com/2009/10/gc-improvements.html
-.. _`highly compatible`: compat.html
-.. _`speed`: http://speed.pypy.org/
-.. _`compatibility`: compat.html
diff --git a/public/people.html b/public/people.html
--- a/public/people.html
+++ b/public/people.html
@@ -36,10 +36,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -187,9 +190,17 @@
     </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/performance.html b/public/performance.html
--- a/public/performance.html
+++ b/public/performance.html
@@ -40,10 +40,13 @@
     </a></h1>
 
         
-            <div class="topnav" id="myTopNav">
+            <div class="myTopNav">
     <div>
-                    <a href="index.html"><image src="images/pypy-logo.svg" width="75" alt="PyPy"></image></a>
-            <div class="dropdown"> <button class="dropbtn">Features
+      <a href="index.html" height="40px;">
+        <image src="images/pypy-logo.svg" width="75px;" alt="PyPy/"></image></a>
+    </div>
+    <div class="topnav">
+                <div class="dropdown"> <button class="dropbtn">Features
                 <i class="fa fa-caret-down"></i>
                 </button>
             <div class="dropdown-content"> 
@@ -235,13 +238,13 @@
 <div class="section" id="string-concatenation-is-expensive">
 <h3>String concatenation is expensive</h3>
 <p>In CPython, you may want to replace:</p>
-<pre class="code python"><a name="rest_code_932017a3c2d84bb982ab371c27785e79-1"></a><span class="n">s</span> <span class="o">=</span> <span class="n">head</span> <span class="o">+</span> <span class="n">body</span> <span class="o">+</span> <span class="n">maybe</span> <span class="o">+</span> <span class="n">tail</span>
+<pre class="code python"><a name="rest_code_ce6361ac82b941c2baf7683e62801171-1"></a><span class="n">s</span> <span class="o">=</span> <span class="n">head</span> <span class="o">+</span> <span class="n">body</span> <span class="o">+</span> <span class="n">maybe</span> <span class="o">+</span> <span class="n">tail</span>
 </pre>
 <p>with the admittedly less readable:</p>
-<pre class="code python"><a name="rest_code_69e68d1d51ff463ebd512343ae0ab687-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%(head)s%(body)s%(maybe)s%(tail)s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">locals</span><span class="p">()</span>
+<pre class="code python"><a name="rest_code_c50435e403854b8eac9c35780c72b6d8-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%(head)s%(body)s%(maybe)s%(tail)s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">locals</span><span class="p">()</span>
 </pre>
 <p>or even:</p>
-<pre class="code python"><a name="rest_code_173ee5bb4c34441bb6e1ea4a45e617ca-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{head}{body}{maybe}{tail}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="nb">locals</span><span class="p">())</span>
+<pre class="code python"><a name="rest_code_45df624352d84e12a607edff5600123f-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{head}{body}{maybe}{tail}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="nb">locals</span><span class="p">())</span>
 </pre>
 <p>Both of the latter forms avoid multiple-allocation overhead.
 But PyPy's JIT makes the overhead of intermediate concatenations
@@ -249,8 +252,8 @@
 small, bound and constant.  (And <code class="docutils literal">locals()</code> is rather slow
 with PyPy's JIT.)</p>
 <p>On the other hand, in code like this with a string-valued foo() function:</p>
-<pre class="code python"><a name="rest_code_18614ba6a1144dd39058438e85bdf56d-1"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
-<a name="rest_code_18614ba6a1144dd39058438e85bdf56d-2"></a>    <span class="n">s</span> <span class="o">+=</span> <span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+<pre class="code python"><a name="rest_code_98503b81c63d4dbe8a95eb4b488622a2-1"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
+<a name="rest_code_98503b81c63d4dbe8a95eb4b488622a2-2"></a>    <span class="n">s</span> <span class="o">+=</span> <span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
 </pre>
 <p>the JIT cannot optimize out intermediate copies.  This code is
 actually quadratic in the total size of the mylist strings due to
@@ -258,10 +261,10 @@
 is always fine for bytearrays, because in this case <code class="docutils literal">+=</code> is an
 in-place operation.)</p>
 <p>This:</p>
-<pre class="code python"><a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-1"></a><span class="n">parts</span> <span class="o">=</span> <span class="p">[]</span>
-<a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-2"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
-<a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-3"></a>    <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
-<a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-4"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+<pre class="code python"><a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-1"></a><span class="n">parts</span> <span class="o">=</span> <span class="p">[]</span>
+<a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-2"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
+<a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-3"></a>    <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+<a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-4"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
 </pre>
 <p>can be much faster because all the string concatenation in the last
 line creates exactly one new string object with one C-level copy
@@ -372,9 +375,17 @@
     </div>
     
 </article></main><footer id="footer"><p>
-<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
+<div class="myfooter">
+  <div>
+    <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">
+</div>
+  <div class="logotext">
+     Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a>
+    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+  </div>
+</div>
+
             
         </footer>
 </div>
diff --git a/public/sitemap.xml b/public/sitemap.xml
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -7,42 +7,42 @@
                         http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  <url>
   <loc>https://www.pypy.org/</loc>
-  <lastmod>2020-01-08T08:35:00Z</lastmod>
+  <lastmod>2020-01-08T11:00:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/archive.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/blog/</loc>
-  <lastmod>2020-01-08T05:16:00Z</lastmod>
+  <lastmod>2020-01-08T11:00:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/categories/</loc>
-  <lastmod>2020-01-08T05:16:00Z</lastmod>
+  <lastmod>2020-01-08T11:00:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/compat.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/contact.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/download.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/features.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/people.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/performance.html</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </url>
 </urlset>
\ No newline at end of file
diff --git a/public/sitemapindex.xml b/public/sitemapindex.xml
--- a/public/sitemapindex.xml
+++ b/public/sitemapindex.xml
@@ -7,10 +7,10 @@
                         http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  <sitemap>
   <loc>https://www.pypy.org/rss.xml</loc>
-  <lastmod>2020-01-08T08:33:00Z</lastmod>
+  <lastmod>2020-01-08T11:00:00Z</lastmod>
  </sitemap>
  <sitemap>
   <loc>https://www.pypy.org/sitemap.xml</loc>
-  <lastmod>2020-01-08T08:35:00Z</lastmod>
+  <lastmod>2020-01-09T00:45:00Z</lastmod>
  </sitemap>
 </sitemapindex>
\ No newline at end of file
diff --git a/themes/pypy/assets/css/styles.css b/themes/pypy/assets/css/styles.css
--- a/themes/pypy/assets/css/styles.css
+++ b/themes/pypy/assets/css/styles.css
@@ -11,19 +11,35 @@
     background-color: #d0dad5;
 }
 
-/* Add a black background color to the top navigation */
-.topnav {
+.myTopNav {
   /* background-color: #333; */
-  overflow: hidden;
+  display: flex;
+  flex-direction: row;
+  margin-bottom: 5px;
+  height: 47px;
 }
 
 /* Style the links inside the navigation bar */
+.myTopNav a {
+  float: left;
+  display: block;
+  text-decoration: none;
+  font-size: 17px;
+}
+
+.topnav {
+  height: 32px;
+}
+
 .topnav a {
   float: left;
   display: block;
   color: #383939;
   text-align: center;
-  padding: 14px 16px;
+  padding-top: 8px;
+  padding-left: 16px;
+  padding-right: 16px;
+  padding-bottom: 12px;
   text-decoration: none;
   font-size: 17px;
 }
@@ -35,7 +51,7 @@
 }
 
 /* Hide the link that should open and close the topnav on small screens */
-.topnav .icon {
+.myTopNav .icon {
   display: none;
 }
 
@@ -51,7 +67,10 @@
   border: none;
   outline: none;
   color: #383939;
-  padding: 14px 16px;
+  padding-top: 10px;
+  padding-left: 16px;
+  padding-right: 16px;
+  padding-bottom: 12px;
   background-color: inherit;
   font-family: inherit;
   margin: 0;
@@ -78,7 +97,7 @@
 }
 
 /* Add a dark background on topnav links and the dropdown button on hover */
-.topnav a:hover, .dropdown:hover .dropbtn {
+.myTopNav a:hover, .dropdown:hover .dropbtn {
   background-color: #555;
   color: white;
 }
@@ -96,10 +115,10 @@
 
 /* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
 @media screen and (max-width: 600px) {
-  .topnav a:not(:first-child), .dropdown .dropbtn {
+  .myTopNav a:not(:first-child), .dropdown .dropbtn {
     display: none;
   }
-  .topnav a.icon {
+  .myTopNav a.icon {
     float: right;
     display: block;
   }
@@ -107,20 +126,20 @@
 
 /* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */
 @media screen and (max-width: 600px) {
-  .topnav.responsive {position: relative;}
-  .topnav.responsive a.icon {
+  .myTopNav.responsive {position: relative;}
+  .myTopNav.responsive a.icon {
     position: absolute;
     right: 0;
     top: 0;
   }
-  .topnav.responsive a {
+  .myTopNav.responsive a {
     float: none;
     display: block;
     text-align: left;
   }
-  .topnav.responsive .dropdown {float: none;}
-  .topnav.responsive .dropdown-content {position: relative;}
-  .topnav.responsive .dropdown .dropbtn {
+  .myTopNav.responsive .dropdown {float: none;}
+  .myTopNav.responsive .dropdown-content {position: relative;}
+  .myTopNav.responsive .dropdown .dropbtn {
     display: block;
     width: 100%;
     text-align: left;
@@ -198,4 +217,15 @@
     margin-bottom: 0; 
 }
 
+.myfooter {
+  overflow: auto;
+  display: flex;
+  flex-direction: row;
+}
 
+.myfooter div {
+  height: 32px;
+}
+
+.logotext {
+  padding-top: 4px;
diff --git a/themes/pypy/templates/base_header.tmpl b/themes/pypy/templates/base_header.tmpl
--- a/themes/pypy/templates/base_header.tmpl
+++ b/themes/pypy/templates/base_header.tmpl
@@ -29,8 +29,13 @@
 {% endmacro %}
 
 {% macro html_navigation_links() %}
-    <div class="topnav" id="myTopNav">
+    <div class="myTopNav">
     <div>
+      <a href="index.html" height=40px;>
+        <image src="images/pypy-logo.svg" width=75px; alt=PyPy/>
+      </a>
+    </div>
+    <div class="topnav">
     {{ html_navigation_links_entries(navigation_links) }}
     {{ html_navigation_links_entries(navigation_alt_links) }}
     {{ template_hooks['menu']() }}


More information about the pypy-commit mailing list