github / pages-gem

A simple Ruby Gem to bootstrap dependencies for setting up and maintaining a local Jekyll environment in sync with GitHub Pages
http://pages.github.com
MIT License
1.83k stars 356 forks source link

Whitelist plugin request: `jekyll-last-modified-at` #838

Open BenSouchet opened 2 years ago

BenSouchet commented 2 years ago

Hi, After looking for a way to display the last modification date of pages / collections, I found a good Jekyll plugin that do that: jekyll-last-modified-at.

But, since the plugin isn't whitelisted I cannot use it directly with the Github Pages native flow. I forced to build the Jekyll site and then push the result to Github.

So, I decided to create this "issue" to discuss and know if it was possible to whitelist the plugin.

If there is a better alternative / way / plugin to display the last modification date of a page (without adding it manually via front matter) I'm interested.

Before submitting an issue, please be sure to

This issue affects

The GitHub Pages Gem is intended to help users replicate the GitHub Pages build environment locally. If your issue affects both the hosted version and the version previewed locally, you may be better suited reporting seeking support in other forums.

kevinnls commented 2 years ago

dupe of #119

also it just seems like it just wouldn't work in the GH Pages environment because of how the source files are processed

you can still build locally and push static content!

parkr commented 2 years ago

GitHub Actions may or may not solve this issue as well. I believe by default, the actions/checkout action does a shallow clone so if you use Actions with this plugin, remember to enable a full clone.

nisbet-hubbard commented 3 months ago

A workaround is to automate this as part of build:

    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - uses: dorny/paths-filter@v3
        id: filter
        with:
    # Enable listing of files matching each filter.
    # Paths to files will be available in `${FILTER_NAME}_files` output variable.
    # Paths will be escaped and space-delimited.
    # Output is usable as command-line argument list in Linux shell
          list-files: shell

    # In this example changed files will be checked by linter.
    # It doesn't make sense to lint deleted files.
    # Therefore we specify we are only interested in added or modified files.
          filters: |
            markdown:
              - added|modified: '*.md'
              - added|modified: 'path/to/*.md'
      - name: Lint Markdown
        if: ${{ steps.filter.outputs.markdown == 'true' }}
        run: |
          sed -i "0,/last_modified_at.*/s//last_modified_at: $(date +'%Y-%m-%dT%H:%M:%S%:z')/" ${{ steps.filter.outputs.markdown_files }}
      - uses: stefanzweifel/git-auto-commit-action@v5
      - name: Setup Pages
      …