getpelican / pelican

Static site generator that supports Markdown and reST syntax. Powered by Python.

Home Page:https://getpelican.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot generate (markdown) content after Pelican upgrade/reinstall

nicokosi opened this issue · comments

  • I have searched the issues (including closed ones) and believe that this is not a duplicate.
  • I have searched the documentation and believe that my question is not covered.

Issue

Hello, 👋

I use pelican since 2016 to generate my blog. I have recently re-installed it after a two-year break and I cannot generate markdown content anymore. 😭

I have installed Pelican via pipx:

pipx install "pelican[markdown]"

Here is an extract from DEBUG logs when running Pelican to generate content:

pipx run pelican content --ignore-cache --delete-output-directory --debug
⚠️  pelican is already on your PATH and installed at /usr/local/bin/pelican. Downloading and running anyway.
[07:02:17] DEBUG    Pelican version: 4.9.1                                                                                                                     __init__.py:627
           DEBUG    Python version: 3.12.3                                                                                                                     __init__.py:628
           DEBUG    Adding current directory to system path                                                                                                     __init__.py:71
           DEBUG    Finding namespace plugins                                                                                                                     _utils.py:97
           DEBUG    Found generator: ArticlesGenerator (internal)                                                                                              __init__.py:229
           DEBUG    Found generator: PagesGenerator (internal)                                                                                                 __init__.py:229
           DEBUG    Found generator: StaticGenerator (internal)                                                                                                __init__.py:229
           DEBUG    Missing dependencies for md, markdown, mkd, mdown  
... ✂️
Done: Processed 0 articles, 0 drafts, 0 hidden articles, 0 pages, 0 hidden pages and 0 draft pages in 0.46 seconds.

Note that there are 27 markdown articles in the content folder:

ls content/*.md | wc -l
      27

head -10 content/devoxx-fr-2024-fr.md
Title: Mon Devoxx France 2024
Date: 2024-04-22 08:10
Tags: conference devoxx
Slug: devoxx-fr-2024
Author: Nicolas Kosinski
Summary: Mon résumé de la conférence Devoxx France 2024.
Lang: fr

# Mon Devoxx France 2024

Here is my pelican configuration code.

Do you have any advices? Thanks in advance! 🤗

PS:

$ pipx run pelican content -s ~/projects/pelican/samples/pelican.conf.py -t ~/projects/pelican/pelican/themes/notmyidea
⚠️  pelican is already on your PATH and installed at /Users/nicolas/.local/bin/pelican. Downloading and running anyway.
[07:21:32] CRITICAL TemplateNotFound: pages/jinja2_template.html

Seems related to #1868 (but I don't think its similar since I have installed the markdown dependency).

$ pipx list
venvs are in /Users/nicolas/.local/pipx/venvs
apps are exposed on your $PATH at /Users/nicolas/.local/bin
manual pages are exposed at /Users/nicolas/.local/share/man
   package markdown 3.6, installed using Python 3.12.3
    - markdown_py
   package pelican 4.9.1, installed using Python 3.12.3
    - pelican
    - pelican-import
    - pelican-plugins
    - pelican-quickstart
    - pelican-themes
   package virtualenv 20.25.3, installed using Python 3.12.3
    - virtualenv

Hi Nicholas. I don't think this has anything to do with the pre-existing issue to which you linked. Rather, I believe the answer is right there in the output:

⚠️  pelican is already on your PATH and installed at /usr/local/bin/pelican. Downloading and running anyway.

pipx run […] is for downloading and running packages in an ad-hoc and temporary manner, so it is intentionally ignoring any other pelican executables on $PATH, including the installation you performed via pipx install "pelican[markdown]", and is instead performing its intended function and re-downloading Pelican into a temporary virtual environment — without Markdown, since you didn't specify it in your pipx run […] invocation.

Presumably your goal is to use the non-temporary environment, which you should be able to confirm works just fine by executing it explicitly:

/Users/nicolas/.local/bin/pelican content --ignore-cache --delete-output-directory --debug

I say "explicitly" because it seems you have another (older?) Pelican installation at /usr/local/bin/pelican. If desired, you can run which pelican to see which installation is taking precedence and then adjust your $PATH to ensure /Users/nicolas/.local/bin takes precedence over /usr/local/bin.

Alternatively, in the (unlikely?) event you actually do want to run Pelican in a temporary and ad-hoc manner, include the missing Markdown dependency in the specifier:

pipx run "pelican[markdown]" content --ignore-cache --delete-output-directory

Thank you @justinmayer, I did not undestand what I was doing with pipx! 😇
I will have a try on the laptop I use for generating my blog (not the one I am currently using).
I close this issue.

PS: it worked like a charm using Python 3 on my macOs laptop. 😊

python3 -m pip install "pelican[markdown]"