标签: pelican

如何在 Jinja2 中对字符串执行多次替换?

我有带有bootstrap3主题的Pelican网站。该主题使用 Font Awesome 通过社交媒体帐户的链接来放置图标。Font Awesome 类名称是通过将链接文本小写并用破折号替换所有空格来确定的。

问题是,有时我的链接文本不映射到 Font Awesome 类名称。例如,信封图标是由envelope班级提供的,但我真的想要Email作为网站上的链接文本。

我可以更改 Font Awesome 样式表中的类名称,但是这样我将无法使用 Bootstrap CDN,并且每次将 Font Awesome 更新到新版本时都必须进行此类修改。

我决定修改 Pelican 模板,并在编写类名之前进行必要的转换。到目前为止,我的代码如下所示:

{% set name_sanitized = name|lower|replace('+','-plus')|replace(' ','-')|replace('stackexchange', 'stack-exchange')|replace('rss-feed', 'rss')|replace('email', 'envelope') %}
Run Code Online (Sandbox Code Playgroud)

replace我可以使用 来替换这个调用链吗dict?像这样的东西:

{% set replacements = dict('+' = '-plus', ' ' = '-', 
                          'stackexchange' = 'stack-exchange', 'rss-feed' = 'rss',
                          'email' = 'envelope') %}
{% set name_sanitized = name|lower|??? %}
Run Code Online (Sandbox Code Playgroud)

如果没有,是否有其他方法可以使这部分从长远来看更具可读性和可维护性?

python jinja2 pelican

5
推荐指数
1
解决办法
5103
查看次数

找不到有关“NameError:日期”的信息

我正在为我的博客使用 pelican 静态站点生成器,我使用正确,但奇怪的是我发现.md文章没有编译,它给我抛出了这些奇怪的错误。

我查看了我的文章页面,一切都很好,这是我的文章标题

Title: some title
slug: some-title
Date: 2016-11-19
Category: code
Tags: python, python
Authors: nix1947(Manoj)
Run Code Online (Sandbox Code Playgroud)

我找不到,为什么我会收到此错误?

我查看了该 pelicanconf.py文件,特别是日期部分,一切正常,这是我的 pelicanconf.py 文件的日期部分

DATE_FORMAT = { 'en': '%d %m %Y'}
DEFAULT_DATE_FORMAT = '%d %m %Y'
PDF_GENERATOR = False
REVERSE_CATEGORY_ORDER = True
ARTICLE_URL = '{date:%Y}/{date:%-m}/{date:%-d}/{slug}/'
ARTICLE_SAVE_AS = ARTICLE_URL + 'index.html'
Run Code Online (Sandbox Code Playgroud)

这些是当我尝试编译文章时 pelican 抛出的一堆错误。

(nix1947blog)nix1947@nix1947:~/projects/nix1947blog/content/blog$ 
-> Modified: content. re-generating...
ERROR: Skipping blog/output/tags.html: could not find information about 'NameError: date'
ERROR: Skipping blog/output/categories.html: could not find information about 'NameError: date' …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.4 pelican

5
推荐指数
1
解决办法
1621
查看次数

如何使用 Pelican 向文章添加重定向?

我想在标题中有一些东西

title: Whatever
slug: whatever
redirect: bla
redirect: foo
redirect: bar
Run Code Online (Sandbox Code Playgroud)

让鹈鹕生成重定向页面从blafoobarwhatever。这可能吗?

pelican

5
推荐指数
1
解决办法
486
查看次数

鹈鹕 CSS 路径

如果有人可以帮助我,那么随机的小鹈鹕问题。

我正在写一个主题,它是这样的结构。

??? static
?   ??? css
?   ??? js
?   ??? img
??? templates
    ??? index.html
    ??? page.html
Run Code Online (Sandbox Code Playgroud)

在 index.html 文件中,我使用它来调用静态 css、img 和 js 文件

<link rel="stylesheet" href="theme/css/base.css"/>
Run Code Online (Sandbox Code Playgroud)

对于 page.html,我然后用这一行“扩展”base.html

{% extends "index.html" %}
Run Code Online (Sandbox Code Playgroud)

当我在输出文件夹中生成 html 时,index.html 一切正常,但 page.html 找不到静态文件,因为它需要一个新路径。这是输出文件夹设置。

??? theme
|   ??? css
?   ??? js
?   ??? img
??? index.html
??? pages
    ??? page.html
Run Code Online (Sandbox Code Playgroud)

如果您看到 page.html 无法通过使用路径 theme/css/base.css 加载 css

有没有办法在加载静态文件时使用 {{ ROUTE }} 命令?

谢谢!

编辑 1 在 Github 上查看其他主题的 index.html 页面后,我看到他们使用了 {{ SITEURL }} …

css python pelican

5
推荐指数
1
解决办法
1125
查看次数

使用 Pelican 使用 Google 分析

所以我最近开始用 Pelican 写博客,除了谷歌分析之外,一切都很顺利。我发布我的博客使用

make s3_upload
Run Code Online (Sandbox Code Playgroud)

命令,它使用 publishconf.py 文件。

为了获得我的跟踪 ID,我所做的就是将我的跟踪 ID 从谷歌分析页面复制粘贴到 publishconf.py 文件中的谷歌分析行中,就像这样

# Following items are often useful when publishing

#DISQUS_SITENAME = ""
GOOGLE_ANALYTICS = "UA-########-#"
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,我一直在绞尽脑汁试图解决这个问题。

google-analytics pelican

5
推荐指数
1
解决办法
1333
查看次数

将图像放入 .rst 的语法

我对将图像放入鹈鹕中的降价语法感到困惑。

当我拥有这个时,一切都会正常。

.. image:: /images/Rugby-Tackle.jpg
    :alt: About to make the tackle, Yale Alumni Game 2017
Run Code Online (Sandbox Code Playgroud)

但我在 .rst 文档中发现了这一点。Pelican文档有很多对这样的代码的引用:

[![Alt Text]({filename}/images/Rugby-Tackle.jpg)]({filename}/images/Rugby-Tackle.jpg)
Run Code Online (Sandbox Code Playgroud)

或这个:

![Alt Text]({filename}/images/Rugby-Tackle.jpg)
Run Code Online (Sandbox Code Playgroud)

所有这些在包含在 Markdown 文件中时都仅显示为文本,并且不会生成图像。我在这里缺少什么?

python markdown restructuredtext pelican

5
推荐指数
1
解决办法
4675
查看次数

在 rst 中向图像添加标题属性

在图像选项方面,重构的文本标记似乎非常有限:

可识别以下选项:
alt :文本
height :长度
width :当前行宽度的长度或百分比
scale :整数百分比(“%”符号是可选的)
align :“顶部”、“中间”、“底部”、“ left"、"center" 或 "right"
目标:文本(URI 或引用名称)

是否可以通过 reStructuredText 标记设置一些自定义属性,例如标题?

例如

.. image:: foobar.jpg 
    :title: mouse over text, hi!
Run Code Online (Sandbox Code Playgroud)

会输出:

<img src="foobar.jpg" title="mouse over text, hi!"></img>
Run Code Online (Sandbox Code Playgroud)

restructuredtext pelican

5
推荐指数
1
解决办法
2490
查看次数

向 Pelican 添加 CSS 规则,无需创建主题

我比较喜欢默认的 Pelican 主题notmyidea。它很好地满足了我的目的。

但是,为了实现 Python-Markdownadmonishments扩展,我需要向模板添加一些 css 规则。

我在文档(或通过谷歌搜索)中找不到任何内容似乎可以解释如何做到这一点。仅介绍如何创建全新主题,或使用自定义样式表,这会覆盖默认样式表。

有没有办法添加补充样式表,甚至只是一些补充规则?

css python static-site pelican

5
推荐指数
1
解决办法
1459
查看次数

如何使用 Python docutils 创建简单的 html 标签

我正在为 Pelican 开发一个库,目前我正在使用 reStructuredText 和 docutils。

我想做的是创建一个应该输出 html 的自定义指令。

我要输出的html是:

<div class="row">
  <div class="col-md-6">
    <div class="card">
      <div class="card-header">
        <h4 class="card-title">Regular header</h4>
        <p class="category">Category subtitle</p>
      </div>
      <div class="card-body">
        The place is close to Barceloneta Beach and bus stop just 2 min by walk and near to "Naviglio" where you can enjoy the main night life in Barcelona...
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

到目前为止我创建了这个Python代码

from docutils import nodes
from docutils.parsers.rst import Directive
from pelican.rstdirectives import directives

class Row(Directive):
    required_arguments = 0
    optional_arguments = …
Run Code Online (Sandbox Code Playgroud)

python docutils pelican

5
推荐指数
1
解决办法
593
查看次数

尝试更新 GitHub 存储库时 git“未收到预期对象”错误

我使用 Pelican 为博客设置了个人 GitHub Pages。它工作正常,但我决定从内容开始,而不是从远程存储库克隆,而是在我的机器上完全从零开始。这可能是我的问题的根源。

当新的本地版本工作正常时,我尝试推送相关分支。有问题的分支是由 gh-export 模块自动设置的,该模块将包含网站内容的目录放在该分支的顶层,以便它可以与 GitHub Pages 一起使用。

git push git@github.com:JonathanMair/JonathanMair.github.io.git gh-pages:master -f
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Enumerating objects: 330, done.
Counting objects: 100% (330/330), done.
Delta compression using up to 10 threads
Compressing objects: 100% (134/134), done.
Writing objects: 100% (330/330), 7.01 MiB | 4.04 MiB/s, done.
Total 330 (delta 112), reused 329 (delta 112), pack-reused 0
remote: Resolving deltas: 100% (112/112), done.
remote: fatal: did not receive expected object 44b304cd6f8a4df85530c3e3bd3f1c6ce800490f
error: remote unpack failed: index-pack failed
To github.com:JonathanMair/JonathanMair.github.io.git …
Run Code Online (Sandbox Code Playgroud)

github github-pages pelican

5
推荐指数
1
解决办法
3279
查看次数