Как я могу заставить Pelican использовать мету save_as для заполнения канонической информации og: url head? - PullRequest
0 голосов
/ 30 марта 2020

Использование текущей Pelican и темы pelican-bootstrap3 .

В настоящее время я использую save_as для установки статьи, которая должна быть текущей целевой страницей. Когда я делаю это, Facebook выдает ошибку, потому что канонического URL там нет.

Так что, если нормальный URL будет https://some.site/my_page.html, но save_as выдает https://some.site/index.html

Мой .rst файл meta

:save_as: index.html

Заголовок содержит.

<head>
    <title>My Page</title>
    <!-- Using the latest rendering mode for IE -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">



<link rel="canonical" href="/my_page.html">

        <meta name="author" content="me" />
        <meta name="keywords" content="my_page" />
        <meta name="description" content="Stuff" />

        <meta property="og:site_name" content="Stuff" />
        <meta property="og:type" content="article"/>
        <meta property="og:title" content="my_pagee"/>
        <meta property="og:url" content="/my_page.html"/>
        <meta property="og:description" content="Stuff"/>
        <meta property="article:published_time" content="2020-03-20" />
            <meta property="article:section" content="covid-19" />
            <meta property="article:tag" content="Stuff" />
            <meta property="article:author" content="me" />



    <!-- Bootstrap -->
        <link rel="stylesheet" href="/theme/css/bootstrap.min.css" type="text/css"/>
    <link href="/theme/css/font-awesome.min.css" rel="stylesheet">

    <link href="/theme/css/pygments/native.css" rel="stylesheet">
    <link rel="stylesheet" href="/theme/css/style.css" type="text/css"/>
        <link href="/css/hpt.css" rel="stylesheet">

</head>

В идеале, пеликан будет сохранять страницу в «нормальном» URL-адресе и в save_as или измените канонический URL-адрес на save_as

1 Ответ

1 голос
/ 01 мая 2020

Вы должны go к шаблону, который имеет мета og: url, и установить оператор jinja2 следующим образом:

{% if page.save_as %}
<meta property="og:url" content="/{{ page.save_as }}"/>
{% else %}
<meta property="og:url" content="/{# the previous statement of the theme #}"/>
{% endif %}
...