]> git.ipfire.org Git - ipfire.org.git/commitdiff
blog: Move as a sub-section of the main page
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 10 Nov 2020 12:33:20 +0000 (12:33 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 10 Nov 2020 12:33:20 +0000 (12:33 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 files changed:
src/templates/base.html
src/templates/blog/base.html
src/templates/blog/feed.xml
src/templates/blog/messages/announcement.html
src/templates/blog/messages/announcement.txt
src/templates/blog/modules/post.html
src/templates/blog/post.html
src/templates/download/release.html
src/templates/index.html
src/templates/location/index.html
src/web/__init__.py
src/web/handlers.py

index 5598700c30221cb27de8b77dd8391deaeea262b7..190b38c38b396dc46337168bdd3e697e0b95a754 100644 (file)
                <nav class="navbar navbar-light navbar-expand-lg">
                        <div class="container">
                                <a class="navbar-brand" href="/">
-                                       IPFire<span class="text-primary">_</span>
+                                       {% if hostname == "www.ipfire.org" and request.path.startswith("/blog") %}
+                                               IPFire<span class="text-primary">_</span>Blog
+                                       {% else %}
+                                               IPFire<span class="text-primary">_</span>
+                                       {% end %}
 
-                                       {% if hostname == "blog.ipfire.org" %}
-                                               {{ _("Blog") }}
-                                       {% elif hostname == "fireinfo.ipfire.org" %}
+                                       {% if hostname == "fireinfo.ipfire.org" %}
                                                {{ _("Fireinfo") }}
                                        {% elif hostname == "location.ipfire.org" %}
                                                {{ _("Location") }}
                                </a>
 
                                {% block menu %}
-                                       {% if hostname in ("www.ipfire.org", "dev.ipfire.org") %}
+                                       {% if hostname == "www.ipfire.org" and request.path.startswith("/blog") %}
+                                               <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
+                                                               aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
+                                                       <span class="fas fa-bars"></span>
+                                               </button>
+
                                                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
                                                                aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
                                                        <span class="fas fa-bars"></span>
 
                                                <div class="collapse navbar-collapse" id="navbar">
                                                        <ul class="navbar-nav ml-auto">
-                                                               <li class="nav-item d-sm-block d-md-block d-lg-none">
-                                                                       <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">{{ _("Home") }}</a>
-                                                               </li>
-
-                                                               <li class="nav-item">
-                                                                       <a class="nav-link {% if request.path == "/features" %}active{% end %}" href="/features">{{ _("Features") }}</a>
-                                                               </li>
-
-                                                               <li class="nav-item">
-                                                                       <a class="nav-link {% if request.path == "/support" %}active{% end %}" href="/support">{{ _("Support") }}</a>
-                                                               </li>
-
-                                                               <li class="nav-item">
-                                                                       <a class="nav-link" href="https://blog.ipfire.org/">{{ _("Blog") }}</a>
-                                                               </li>
-
-                                                               <li class="nav-item">
-                                                                       <a class="nav-link" href="https://community.ipfire.org/">{{ _("Community") }}</a>
-                                                               </li>
+                                                               {% if current_user %}
+                                                                       <li class="nav-item">
+                                                                               <a class="nav-link {% if request.path == "/blog/drafts" %}active{% end %}" href="/blog/drafts">
+                                                                                       {{ _("My Drafts") }}
+                                                                               </a>
+                                                                       </li>
+                                                               {% end %}
 
                                                                <li class="nav-item">
-                                                                       <a class="nav-link {% if request.path.startswith("/download") %}active{% end %}" href="/download">{{ _("Download") }}</a>
+                                                                       <a class="nav-link {% if request.path == "/blog/tags/featured" %}active{% end %}" href="/blog/tags/featured">
+                                                                               {{ _("Featured") }}
+                                                                       </a>
                                                                </li>
                                                        </ul>
 
+                                                       <form class="form-inline my-2 my-lg-0" action="/blog/search" method="GET">
+                                                               <input class="form-control form-control-sm" type="search" name="q"
+                                                                       placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}"
+                                                                       value="{% try %}{{ q }}{% except %}{% end %}">
+                                                       </form>
+
                                                        <a class="btn btn-primary mt-2 mt-lg-0 ml-lg-2" href="/donate">
                                                                {{ _("Donate") }}
                                                        </a>
                                                </div>
-                                       {% elif hostname == "blog.ipfire.org" %}
+                                       {% elif hostname in ("www.ipfire.org", "dev.ipfire.org") %}
                                                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
                                                                aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
                                                        <span class="fas fa-bars"></span>
                                                </button>
 
                                                <div class="collapse navbar-collapse" id="navbar">
-                                                       <ul class="navbar-nav ml-auto d-lg-none">
-                                                               <li class="nav-item">
-                                                                       <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">
-                                                                               {{ _("Newest") }}
-                                                                       </a>
+                                                       <ul class="navbar-nav ml-auto">
+                                                               <li class="nav-item d-sm-block d-md-block d-lg-none">
+                                                                       <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">{{ _("Home") }}</a>
                                                                </li>
 
-                                                               {% if current_user %}
-                                                                       <li class="nav-item">
-                                                                               <a class="nav-link {% if request.path == "/drafts" %}active{% end %}" href="/drafts">
-                                                                                       {{ _("My Drafts") }}
-                                                                               </a>
-                                                                       </li>
-                                                               {% end %}
+                                                               <li class="nav-item">
+                                                                       <a class="nav-link {% if request.path == "/features" %}active{% end %}" href="/features">{{ _("Features") }}</a>
+                                                               </li>
 
                                                                <li class="nav-item">
-                                                                       <a class="nav-link {% if request.path == "/tags/featured" %}active{% end %}" href="/tags/featured">
-                                                                               {{ _("Featured") }}
-                                                                       </a>
+                                                                       <a class="nav-link {% if request.path == "/support" %}active{% end %}" href="/support">{{ _("Support") }}</a>
                                                                </li>
 
                                                                <li class="nav-item">
-                                                                       <a class="nav-link {% if request.path == "/tags/lightningwirelabs.com" %}active{% end %} d-flex justify-content-between"
-                                                                                       href="/tags/lightningwirelabs.com">
-                                                                               <span>{{ _("Lightning Wire Labs") }}</span>
+                                                                       <a class="nav-link" href="/blog">{{ _("Blog") }}</a>
+                                                               </li>
 
-                                                                               <img class="img-fluid" src="{{ static_url("img/lightningwirelabs-logo.svg") }}"
-                                                                                       alt="{{ _("Lightning Wire Labs") }}">
-                                                                       </a>
+                                                               <li class="nav-item">
+                                                                       <a class="nav-link" href="https://community.ipfire.org/">{{ _("Community") }}</a>
                                                                </li>
 
                                                                <li class="nav-item">
-                                                                       <a class="nav-link d-flex justify-content-between" href="/feed.xml">
-                                                                               <span>{{ _("RSS Feed") }}</span> <span class="fas fa-rss"></span>
-                                                                       </a>
+                                                                       <a class="nav-link {% if request.path.startswith("/download") %}active{% end %}" href="/download">{{ _("Download") }}</a>
                                                                </li>
                                                        </ul>
 
-                                                       <form class="form-inline ml-lg-auto my-2 my-lg-0" action="/search" method="GET">
-                                                               <input class="form-control form-control-sm" type="search" name="q"
-                                                                       placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
-                                                       </form>
-
-                                                       <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
+                                                       <a class="btn btn-primary mt-2 mt-lg-0 ml-lg-2" href="/donate">
                                                                {{ _("Donate") }}
                                                        </a>
                                                </div>
                                                                        </li>
 
                                                                        <li>
-                                                                               <a class="footer-link" href="https://blog.ipfire.org">{{ _("Blog") }}</a>
+                                                                               <a class="footer-link" href="/blog">{{ _("Blog") }}</a>
                                                                        </li>
 
                                                                        <li>
index 14f7576f7df63d2cf5f2e5a449a42fa332bb1250..2da66d44728d3f595813f374240c440d080907f8 100644 (file)
@@ -1,7 +1,7 @@
 {% extends "../base.html" %}
 
 {% block head %}
-       <link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.ipfire.org/feed.xml" />
+       <link rel="alternate" type="application/atom+xml" title="RSS" href="https://www.ipfire.org/blog/feed.xml" />
        {% block meta %}{% end block %}
 {% end block %}
 
index 98fe72e635f0256ccd8cd75d9a8227ce9f136e8e..ac29e6c1c4795ce40ab7f746f17fac95322ff2c6 100644 (file)
@@ -3,10 +3,10 @@
 {% import ipfire.accounts as accounts %}
 
 <feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
-       <id>https://blog.ipfire.org/feed.xml</id>
+       <id>https://www.ipfire.org/blog/feed.xml</id>
 
-       <link href="https://blog.ipfire.org/feed.xml" rel="self" type="application/atom+xml" />
-       <link href="https://blog.ipfire.org" rel="alternate" type="text/html"/>
+       <link href="https://www.ipfire.org/blog/feed.xml" rel="self" type="application/atom+xml" />
+       <link href="https://www.ipfire.org/blog" rel="alternate" type="text/html"/>
        <link rel="payment" title="Donate!" href="https://www.ipfire.org/donate" type="text/html" />
 
        <title>IPFire Blog</title>
@@ -16,9 +16,9 @@
 
        {% for post in posts %}
                <entry>
-                       <id>https://blog.ipfire.org/post/{{ post.slug }}</id>
+                       <id>https://www.ipfire.org/blog/{{ post.slug }}</id>
                        <title type="html">{{ post.title }}</title>
-                       <link href="https://blog.ipfire.org/post/{{ post.slug }}" rel="alternate" type="text/html" title="{{ post.title }}" />
+                       <link href="https://www.ipfire.org/blog/{{ post.slug }}" rel="alternate" type="text/html" title="{{ post.title }}" />
                        <author>
                                <name>{{ post.author }}</name>
                                {% if isinstance(post.author, accounts.Account) %}
index 566069bf824d7f584c31397932b44d3c51439723..5e039be10b36a61664a48ee135e0ff517358bd20 100644 (file)
@@ -21,7 +21,7 @@
                                                <tbody>
                                                        <tr>
                                                                <td>
-                                    <a href="https://blog.ipfire.org/post/{{ post.slug }}" target="_blank">{{ _("Click Here To Read More") }}</a>
+                                    <a href="https://www.ipfire.org/blog/{{ post.slug }}" target="_blank">{{ _("Click Here To Read More") }}</a>
                                 </td>
                                                        </tr>
                                                </tbody>
index 5e497475d2ba574d3b0d286b209c4c7232022ade..9326d69106baa81cf4a0a0bd9c0bad40c333c6bf 100644 (file)
@@ -15,4 +15,4 @@ X-Auto-Response-Suppress: OOF
 
 {{ _("Click here to read more:") }}
 
-  https://blog.ipfire.org/post/{{ post.slug }}
+  https://www.ipfire.org/blog/{{ post.slug }}
index 75d09222249e1be28e2e8a5e48026aa6dfa435e4..f0c3c3040a9a2ccae94f61f748860ca8e6f165cc 100644 (file)
@@ -3,7 +3,7 @@
 <div class="blog-post {% if "lightningwirelabs.com" in post.tags %}lightning-wire-labs{% end %}">
        <div class="blog-header">
                <h4 class="card-title">
-                       <a href="https://blog.ipfire.org/post/{{ post.slug }}">
+                       <a href="/blog/{{ post.slug }}">
                                {{ post.title }}
                        </a>
                </h4>
@@ -12,7 +12,7 @@
                        {{ _("by") }}
 
                        {% if isinstance(post.author, accounts.Account) %}
-                               <a href="/authors/{{ post.author.uid }}">{{ post.author.name }}</a>,
+                               <a href="/blog/authors/{{ post.author.uid }}">{{ post.author.name }}</a>,
                        {% else %}
                                <strong>{{ post.author }}</strong>,
                        {% end %}
                {% end %}
 
                {% if post.release %}
-                       <a class="btn btn-primary" href="https://www.ipfire.org/download/{{ post.release.slug }}">
+                       <a class="btn btn-primary" href="/download/{{ post.release.slug }}">
                                {{ _("Download") }}
                        </a>
                {% end %}
 
                {% if post.release or "donate" in post.tags %}
-                       <a class="btn btn-outline-primary ml-2" href="https://www.ipfire.org/donate">
+                       <a class="btn btn-outline-primary ml-2" href="/donate">
                                {{ _("Donate") }}
                        </a>
                {% end %}
index 210617e8f6b0e14d09e43e8150bdbd6ab9edc7d7..d42820bbe1b57d128d6969689921b1bd2ff080b9 100644 (file)
@@ -10,7 +10,7 @@
        <meta property="og:title" content="{{ post.title }} - The IPFire Blog" />
        <meta property="og:description" content="{{ post.excerpt }}" />
        <meta property="og:url" content="{{ request.full_url() }}" />
-       <meta property="og:image" content="https://blog.ipfire.org/{{ static_url("img/ipfire-tux.png") }}" />
+       <meta property="og:image" content="{{ static_url("img/ipfire-tux.png") }}" />
 
        <meta property="og:type" content="article" />
        {% if post.published_at %}
@@ -31,7 +31,7 @@
        <meta property="twitter:card" content="summary_large_image" />
        <meta property="twitter:title" content="{{ post.title }} - The IPFire Blog" />
        <meta property="twitter:description" content="{{ post.excerpt }}" />
-       <meta property="twitter:image" content="https://blog.ipfire.org/{{ static_url("img/ipfire-tux.png") }}" />
+       <meta property="twitter:image" content="{{ static_url("img/ipfire-tux.png") }}" />
 {% end block %}
 
 {% block main %}
index 98fbcb7fa24d87b509a07d9aa30d9473cf179238..9f9b905451a1268f484ba8ad4a6e9d5dfef84b17 100644 (file)
@@ -14,7 +14,7 @@
 
                                {% if release.blog %}
                                        &bull;
-                                       <a href="https://blog.ipfire.org/post/{{ release.blog.slug }}">{{ _("Release Notes") }}</a>
+                                       <a href="/blog/{{ release.blog.slug }}">{{ _("Release Notes") }}</a>
                                {% end %}
                        </h6>
 
index f0f2bea868455bc6e2610acc1fd88782b0cb2ed7..b63d07dbf650303137b4c24649f2085df336ccac 100644 (file)
@@ -2,7 +2,7 @@
 
 {% block head %}
        <meta name="description" content="{{ _("IPFire is a hardened, versatile, state-of-the-art Open Source firewall based on Linux.") }}" />
-       <link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.ipfire.org/feed.xml" />
+       <link rel="alternate" type="application/atom+xml" title="RSS" href="/blog/feed.xml" />
 {% end block %}
 
 {% block title %}{{ _("Welcome to IPFire") }}{% end block %}
@@ -17,7 +17,7 @@
                                {% if latest_release.blog %}
                                        &nbsp;
 
-                                       <a class="text-dark font-weight-bold" href="https://blog.ipfire.org/post/{{ latest_release.blog.slug }}">
+                                       <a class="text-dark font-weight-bold" href="/blog/{{ latest_release.blog.slug }}">
                                                {{ _("Read More") }}
                                        </a>
                                {% end %}
index c6fe831d684561d099f4513fec85adf74e49ed5d..b2e16c1eca4c5a548734ea53672c885735988725 100644 (file)
                                                        </div>
                                                </div>
 
-                                               <a class="btn btn-primary btn-lg btn-block" href="https://blog.ipfire.org/tags/location">
+                                               <a class="btn btn-primary btn-lg btn-block" href="https://www.ipfire.org/blog/tags/location">
                                                        {{ _("Read More") }}
                                                </a>
                                        </div>
index 97b4a9534058d52c2283393c6b11ae9c36dc1e08..0f9c3d6a48c606b6ad800b42711a49ca9da8b78d 100644 (file)
@@ -119,6 +119,19 @@ class Application(tornado.web.Application):
                        # Entry site that lead the user to index
                        (r"/", IndexHandler),
 
+                       # Blog
+                       (r"/blog", blog.IndexHandler),
+                       (r"/blog/authors/(\w+)", blog.AuthorHandler),
+                       (r"/blog/compose", blog.ComposeHandler),
+                       (r"/blog/drafts", blog.DraftsHandler),
+                       (r"/blog/feed.xml", blog.FeedHandler),
+                       (r"/blog/search", blog.SearchHandler),
+                       (r"/blog/tags/([0-9a-z\-\.]+)", blog.TagHandler),
+                       (r"/blog/([0-9a-z\-\._]+)", blog.PostHandler),
+                       (r"/blog/([0-9a-z\-\._]+)/delete", blog.DeleteHandler),
+                       (r"/blog/([0-9a-z\-\._]+)/edit", blog.EditHandler),
+                       (r"/blog/([0-9a-z\-\._]+)/publish", blog.PublishHandler),
+
                        # Download sites
                        (r"/downloads", tornado.web.RedirectHandler, { "url" : "/download" }),
                        (r"/download", download.IndexHandler),
@@ -149,23 +162,16 @@ class Application(tornado.web.Application):
                        (r"/error/([45][0-9]{2})", base.ErrorHandler),
                ])
 
-               # blog.ipfire.org
+               # blog.ipfire.org - LEGACY REDIRECTION
                self.add_handlers(r"blog\.ipfire\.org", [
-                       (r"/", blog.IndexHandler),
-                       (r"/authors/(\w+)", blog.AuthorHandler),
-                       (r"/compose", blog.ComposeHandler),
-                       (r"/drafts", blog.DraftsHandler),
-                       (r"/post/([0-9a-z\-\._]+)", blog.PostHandler),
-                       (r"/post/([0-9a-z\-\._]+)/delete", blog.DeleteHandler),
-                       (r"/post/([0-9a-z\-\._]+)/edit", blog.EditHandler),
-                       (r"/post/([0-9a-z\-\._]+)/publish", blog.PublishHandler),
-                       (r"/search", blog.SearchHandler),
-                       (r"/tags/([0-9a-z\-\.]+)", blog.TagHandler),
-                       (r"/years/([0-9]+)", blog.YearHandler),
+                       (r"/", tornado.web.RedirectHandler, { "url" : "https://www.ipfire.org/blog" }),
+                       (r"/authors/(\w+)", tornado.web.RedirectHandler, { "url" : "https://www.ipfire.org/blog/authors/{0}" }),
+                       (r"/post/([0-9a-z\-\._]+)", tornado.web.RedirectHandler, { "url" : "https://www.ipfire.org/blog/{0}" }),
+                       (r"/tags/([0-9a-z\-\.]+)", tornado.web.RedirectHandler, { "url" : "https://www.ipfire.org/blog/tags/{0}" }),
 
                        # RSS Feed
-                       (r"/feed.xml", blog.FeedHandler),
-               ] + authentication_handlers)
+                       (r"/feed.xml", tornado.web.RedirectHandler, { "url" : "https://www.ipfire.org/blog/feed.xml" }),
+               ])
 
                # downloads.ipfire.org
                self.add_handlers(r"downloads?\.ipfire\.org", [
index 2c785b22580d456b8108c60f884d5717d039e3ea..e79e647c25e8f7f703c870f659f10ac27b804eb8 100644 (file)
@@ -28,17 +28,17 @@ class IndexHandler(base.BaseHandler):
 
 class NewsHandler(base.BaseHandler):
        def get(self, post):
-               self.redirect("https://blog.ipfire.org/post/%s" % post, permanent=True)
+               self.redirect("https://www.ipfire.org/blog/%s" % post, permanent=True)
 
 
 class PlanetPostHandler(base.BaseHandler):
        def get(self, post):
-               self.redirect("https://blog.ipfire.org/post/%s" % post, permanent=True)
+               self.redirect("https://www.ipfire.org/blog/%s" % post, permanent=True)
 
 
 class PlanetUserHandler(base.BaseHandler):
        def get(self, user):
-               self.redirect("https://blog.ipfire.org/authors/%s" % user, permanent=True)
+               self.redirect("https://www.ipfire.org/blog/authors/%s" % user, permanent=True)
 
 
 class StaticHandler(base.BaseHandler):