timvink / mkdocs-git-revision-date-localized-plugin

MkDocs plugin to add a last updated date to your site pages
https://timvink.github.io/mkdocs-git-revision-date-localized-plugin/index.html
MIT License
193 stars 39 forks source link

Unable to set any configurations #103

Closed alelom closed 4 months ago

alelom commented 1 year ago

Description

Using git-revision-date-localized-plugin along with "Material for Mkdocs". I was asked to raise this issue here as they do not believe it is related to Material: https://github.com/squidfunk/mkdocs-material/issues/4697#issuecomment-1332558500.

The plugin works when no settings are assigned in the mkdocs.yml file, i.e.:

plugins:
  - git-revision-date-localized

Shows correctly the last revision date in the webpages.

However, as soon as I add any custom setting, e.g.:

plugins:
  - git-revision-date-localized:
      enable_creation_date: true

The build fails, and this error is returned:

ERROR    -  Config value 'plugins': Invalid Plugins configuration
Aborted with 1 Configuration Errors!

For me this happens consistently regardless of any other plugin/extension/custom css/etc.

Note that this happens even if you set a configuration to its own default value, e.g.:

plugins:
  - git-revision-date-localized:
      type: date

which may indicate an incorrect parsing of the configurations?

Steps to reproduce

  1. Install git-revision-date-localized via pip
  2. Configure it in the yml file without any configuration
  3. Build the website locally
  4. Verify that it builds
  5. Add any configuration to git-revision-date-localized in the yml file
  6. Verify that build fails

Package versions

Configuration

site_name: BHoM documentation
site_url: https://bhom.xyz/documentation/
repo_url: https://github.com/BHoM/documentation
edit_uri: edit/main/docs/

theme:
  name: material

plugins:
  - git-revision-date-localized: #uncommenting any of the lines below makes the build fail.
    # fallback_to_build_date: false
    # enable_creation_date: true
    # type: date

System information

timvink commented 1 year ago

That's a strange one indeed. I cannot reproduce, using python 3.10 and same versions of plugin and mkdocs/mkdocs-material.

Furthermore, I have a scheduled job so I can find any breaking changes in the dependencies, which hasn't been trigger. I retriggered the builds on master branch, but they are succeeding.

Windows support is always tricky though. My first thought was encoding, as windows uses different encodings for line ending (\r\n vs \n, see link).

Did you copy/paste those options from somewhere? Can you try manually typing them in your editor and then saving them? Or, you can use your editor to enforce consistent line endings.

The second thing I can think of is this has something to do with mkdocs 1.4, that introduced some changes around the configuration. Can you try again with pip install mkdocs==1.3.1 ? If that works, I know where to start digging!

timvink commented 1 year ago

Had a chance to look at the suggestions yet?

alelom commented 1 year ago

Did you copy/paste those options from somewhere? Can you try manually typing them in your editor and then saving them? Or, you can use your editor to enforce consistent line endings.

Did them manually, and tried several combinations. It's not a line endings issue I believe

The second thing I can think of is this has something to do with mkdocs 1.4, that introduced some changes around the configuration. Can you try again with pip install mkdocs==1.3.1

trying that asap.

alelom commented 1 year ago

Build fails also on mkdocs v1.3.1 with same modality explained in the post.

timvink commented 1 year ago

Ok one more idea. I noticed you haven't defined any other options in any other plugins. It might be indentation.

Can you indent with one tab? Or try four spaces? Can you try specifying any option of any other plugin (to confirm the problem is with this plugin). For example https://github.com/lukasgeiter/mkdocs-awesome-pages-plugin#options

I noticed that in the mkdocs of this repo I used double spaces for my options, maybe that doesn't work well in windows.

alelom commented 1 year ago

Hi, thanks for the messages. I did try with different indentations. I also have tried it in isolation and with other plugins that have options set. I will leave you my full yml config file, maybe you will spot if I'm doing anything wrong:

```yml site_name: BHoM documentation copyright: Copyright © 2018 - 2022 BHoM site_url: https://bhom.xyz/documentation/ repo_url: https://github.com/BHoM/documentation edit_uri: edit/main/docs/ theme: name: material logo: _images/logos/logo.png favicon: _images/logos/favicon.ico palette: primary: white accent: pink features: - navigation.tracking - navigation.top plugins: - search - awesome-pages # allows to customise the ordering of pages. - git-revision-date-localized: # Displays date created/modified on the page. The below configurations are bugged, so only date modified works. #enable_creation_date: true markdown_extensions: - attr_list # allows to add HTML/CSS attributes to almost every Markdown element, useful for e.g. aligning an image to the left/right (can't do centre though! use md_in_html instead) - md_in_html # allows to add markdown within HTML elements, useful for e.g. adding image captions or centering an image - pymdownx.betterem # Wider support to markdown symbols # Code syntax highlighting - pymdownx.highlight: anchor_linenums: true - pymdownx.inlinehilite - pymdownx.snippets - pymdownx.superfences # Mathjax support - pymdownx.arithmatex: generic: true # Call-outs and note boxes ('admonition') - admonition - pymdownx.details - pymdownx.superfences extra_javascript: # Also required for Mathjax support - javascripts/mathjax.js - https://polyfill.io/v3/polyfill.min.js?features=es6 - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js extra: social: - icon: fontawesome/brands/github link: https://github.com/BHoM name: BHoM on Github ```
dcaddick commented 1 year ago

Hi, I'm getting exactly the same error from this action: https://github.com/dcaddick/gsd_public/actions/runs/3937319131 image

Installing this Plugin is fine, no prob at all. But once it reaches the "enablement" phase of adding the hook by reading the mkdocs.yml file Copy of my config from this file here: https://github.com/dcaddick/gsd_public/blob/main/mkdocs.yml

Once enabled as below, it will fail every time, if I comment out the Plugin it'll work fine

Relevant snip:

# Plugins
plugins:
  - search
  - simple
  #- git-authors:
  #      exclude:
  #          - index.md
  - git-revision-date-localized
  #    type: timeago
  #    timezone: Europe/Amsterdam
  #    locale: en
  #    fallback_to_build_date: false
  #    enable_creation_date: true
  #- glightbox
  #- social
  #- awesome-list
  #- table-reader
  #- img2fig
  #- mermaid2
  #- macros
  #- minify
timvink commented 1 year ago

@dcaddick your issue is another one. From your link I could deduce you are using https://github.com/athackst/mkdocs-simple-plugin. Please see their documentation on how to properly install plugins. Secondly, mkdocs-simple-plugin does not document which plugins are not supported. Because it copies all content to a /tmp directory, but does not copy the .git folder, all git-based plugins will not work. Please find more information in the issue: https://github.com/athackst/mkdocs-simple-plugin/issues/466

@alelom I will need to setup a development environment on a windows machine to be able to try and reproduce the error. Not a high priority for me tbh..

dcaddick commented 1 year ago

Thanks Tim,

Any suggestions on a better alternative that does fully support the git elements?

Regards, DaveC

alelom commented 1 year ago

Thanks @timvink, that's understandable. I will update you in case I find something else. For example, since you are suggesting that this is an OS-specific issue, I will try and set the configuration to include these settings and see if at least the github actions are still able to run it correctly, given they run on Linux.

SilentGlasses commented 5 months ago

Here is how I have my portion of mkdocs.yml set and it works for me...

  - git-revision-date-localized:
      type: timeago
      locale: en
      enable_creation_date: true
      fallback_to_build_date: true

This is in a local build so the dates show the same revision_date_working

timvink commented 4 months ago

Closing the issue as I can't reproduce