Compare commits

...

90 commits

Author SHA1 Message Date
botpub
7b77fb8143 Release Share Post 1.2.1
Some checks failed
build / Test - Python 3.10 (push) Has been cancelled
build / Test - Python 3.11 (push) Has been cancelled
build / Test - Python 3.12 (push) Has been cancelled
build / Test - Python 3.8 (push) Has been cancelled
build / Test - Python 3.9 (push) Has been cancelled
build / Lint (push) Has been cancelled
build / Deploy (push) Has been cancelled
2025-03-23 18:33:10 +00:00
Daniel Lemos
35aec507f4
feat: Add title to bluesky (#34)
* feat: Add title to bluesky

* Add release file

* Format to make the linter happy

---------

Co-authored-by: Daniel Lemos <xspager+dlemos@gmail.com>
2025-03-23 18:31:47 +00:00
botpub
376cc12df9 Release Share Post 1.2.0
Some checks failed
build / Test - Python 3.10 (push) Has been cancelled
build / Test - Python 3.11 (push) Has been cancelled
build / Test - Python 3.12 (push) Has been cancelled
build / Test - Python 3.8 (push) Has been cancelled
build / Test - Python 3.9 (push) Has been cancelled
build / Lint (push) Has been cancelled
build / Deploy (push) Has been cancelled
2025-01-29 21:46:02 +00:00
Leonardo Giordani
167eec5015
Added release file (#33) 2025-01-29 21:44:37 +00:00
491663a71c
feat: Bluesky support (#32)
Some checks failed
build / Test - Python 3.10 (push) Has been cancelled
build / Test - Python 3.11 (push) Has been cancelled
build / Test - Python 3.12 (push) Has been cancelled
build / Test - Python 3.8 (push) Has been cancelled
build / Test - Python 3.9 (push) Has been cancelled
build / Lint (push) Has been cancelled
build / Deploy (push) Has been cancelled
* feat: Bluesky support

* docs: add Bluesky

* style: move import to original location
2025-01-17 14:23:14 +00:00
Leonardo Giordani
46ff6e0722
Merge pull request #31 from pelican-plugins/replace-poetry-with-pdm
Use PDM & Ruff instead of Poetry+Black+Flake8+isort
2024-07-04 22:34:15 +01:00
Justin Mayer
cfda0a315a Clarify installation instructions in README 2024-07-04 07:48:51 +02:00
Justin Mayer
897206b8b8 Adjust code to comply with Ruff code style rules 2024-07-04 07:48:44 +02:00
Justin Mayer
d7c2f2bf1f Use PDM & Ruff instead of Poetry+Black+Flake8+isort 2024-07-04 07:48:17 +02:00
Leonardo Giordani
ff43fa4542
Merge pull request #29 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2024-07-02 10:57:24 +01:00
Leonardo Giordani
4c00e773e1
Merge branch 'main' into pre-commit-ci-update-config 2024-07-02 10:53:52 +01:00
Leonardo Giordani
6869efea17
Merge pull request #30 from pelican-plugins/docutils-fix
Avoid PyPI/Poetry problem with docutils
2024-07-02 10:53:37 +01:00
Leonardo Giordani
b2655509e0 Avoid PyPI/Poetry problem with docutils 2024-07-02 10:51:42 +01:00
pre-commit-ci[bot]
8554d21e0a
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.5.0 → v4.6.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.5.0...v4.6.0)
- [github.com/psf/black: 24.3.0 → 24.4.2](https://github.com/psf/black/compare/24.3.0...24.4.2)
- [github.com/PyCQA/flake8: 7.0.0 → 7.1.0](https://github.com/PyCQA/flake8/compare/7.0.0...7.1.0)
2024-07-02 01:08:34 +00:00
Leonardo Giordani
66076766e0
Merge pull request #28 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2024-04-02 06:52:48 +01:00
pre-commit-ci[bot]
3c7656fa10
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 23.12.1 → 24.3.0](https://github.com/psf/black/compare/23.12.1...24.3.0)
- [github.com/PyCQA/flake8: 6.1.0 → 7.0.0](https://github.com/PyCQA/flake8/compare/6.1.0...7.0.0)
2024-04-01 22:50:36 +00:00
Leonardo Giordani
7088f77760
Merge pull request #26 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2024-03-31 21:39:33 +01:00
pre-commit-ci[bot]
56ebe6ad5b
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.4.0...v4.5.0)
- [github.com/psf/black: 23.3.0 → 23.12.1](https://github.com/psf/black/compare/23.3.0...23.12.1)
- [github.com/PyCQA/flake8: 6.0.0 → 6.1.0](https://github.com/PyCQA/flake8/compare/6.0.0...6.1.0)
- [github.com/PyCQA/isort: 5.12.0 → 5.13.2](https://github.com/PyCQA/isort/compare/5.12.0...5.13.2)
2024-01-01 20:54:46 +00:00
Justin Mayer
e32b0ddbd0
Merge pull request #27 from frankcorneliusmartin/fix/typo-in-readme 2023-11-09 09:27:13 +01:00
Frank Martin
656d3773ec Fixed typo 2023-11-05 18:33:13 +00:00
botpub
1e7e630453 Release Share Post 1.1.0 2023-08-31 13:45:10 +00:00
Justin Mayer
64188516c2 Prepare release 2023-08-31 15:43:18 +02:00
Justin Mayer
33e329de02 Document Mastodon functionality in README 2023-08-31 15:38:29 +02:00
Justin Mayer
2387c73609 Update development dependencies 2023-08-31 15:37:18 +02:00
Justin Mayer
9aa8315ce0 Drop Python 3.7 from CI test matrix 2023-08-31 15:34:29 +02:00
Justin Mayer
1f7e1430ad Change botpub email address for Git commits 2023-07-01 11:32:03 +02:00
Justin Mayer
694a2725de Fix build status badge
Resolves: https://github.com/badges/shields/issues/8671
2023-07-01 11:29:51 +02:00
Leonardo Giordani
2832136344
Merge pull request #24 from mpaglia0/main
Fixed Mastodon code
2023-05-19 07:59:35 +01:00
pre-commit-ci[bot]
f813736c57 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-05-18 05:53:39 +00:00
Maurizio Paglia
b3a8f622db
Fixed code for hashtags 2023-05-18 07:53:32 +02:00
Maurizio Paglia
0fdb907f1f
Fixed hashtags error 2023-05-13 15:24:00 +02:00
Maurizio Paglia
59f405d719
Merge branch 'pelican-plugins:main' into main 2023-05-13 15:21:03 +02:00
pre-commit-ci[bot]
96dfe3ea42 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-05-11 06:27:09 +00:00
Maurizio Paglia
8de72f2182
Update share_post.py 2023-05-11 08:27:01 +02:00
Justin Mayer
2ddfbbf326 Auto-update precommit.ci hooks on quarterly basis 2023-05-10 08:55:49 +02:00
Leonardo Giordani
5eb4476889
Merge pull request #23 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-05-10 07:41:06 +01:00
pre-commit-ci[bot]
6eaa7893ce
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 22.12.0 → 23.3.0](https://github.com/psf/black/compare/22.12.0...23.3.0)
- [github.com/PyCQA/isort: v5.11.3 → 5.12.0](https://github.com/PyCQA/isort/compare/v5.11.3...5.12.0)
2023-04-04 08:33:02 +00:00
pre-commit-ci[bot]
739b4bfb82 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-12-28 10:39:52 +00:00
Maurizio Paglia
db31937745
Fixed Mastodon code
Pls check hashtags variable since I think code is correct but tags are not passed to the web service. Thks!
2022-12-28 11:39:26 +01:00
Leonardo Giordani
bcd1ee341b
Merge pull request #22 from pelican-plugins/add-mpaglia-as-contributor
Added Maurizio Paglia as a contributor
2022-12-23 10:51:52 +00:00
Leonardo Giordani
cbbe302c69 Added Maurizio Paglia as a contributor 2022-12-23 10:49:02 +00:00
Leonardo Giordani
0af46c53b0
Merge pull request #20 from mpaglia0/main
Added Mastodon share code
2022-12-23 10:46:32 +00:00
Leonardo Giordani
aa5780782f
Merge pull request #19 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2022-12-23 10:45:12 +00:00
pre-commit-ci[bot]
acdc611633 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.3.0 → v4.4.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.3.0...v4.4.0)
- [github.com/psf/black: 22.10.0 → 22.12.0](https://github.com/psf/black/compare/22.10.0...22.12.0)
- [github.com/PyCQA/flake8: 5.0.4 → 6.0.0](https://github.com/PyCQA/flake8/compare/5.0.4...6.0.0)
- [github.com/PyCQA/isort: 5.10.1 → v5.11.3](https://github.com/PyCQA/isort/compare/5.10.1...v5.11.3)
2022-12-23 10:43:11 +00:00
Leonardo Giordani
e4fbfebebd
Merge pull request #21 from pelican-plugins/remove-python-3.6
Removed Python 3.6
2022-12-23 10:42:16 +00:00
Leonardo Giordani
b46226f6ce Trying to fix the CI tasks 2022-12-23 10:40:29 +00:00
Leonardo Giordani
ab3cd4c3dd Fixed Black version 2022-12-23 10:35:41 +00:00
Leonardo Giordani
56488d52d1 Removed Python 3.6 2022-12-23 10:28:07 +00:00
pre-commit-ci[bot]
38429bd52b [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-12-23 08:36:48 +00:00
Maurizio Paglia
89d1f123e8
Added Mastodon share code 2022-12-05 12:05:40 +01:00
Leonardo Giordani
0312f7a972 Use new version of GH actions 2022-11-04 09:26:43 +00:00
Leonardo Giordani
a50b605129
Merge pull request #18 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2022-11-04 08:36:22 +00:00
pre-commit-ci[bot]
01d75d58e9
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.2.0 → v4.3.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.2.0...v4.3.0)
- [github.com/psf/black: 22.3.0 → 22.10.0](https://github.com/psf/black/compare/22.3.0...22.10.0)
- [github.com/PyCQA/flake8: 4.0.1 → 5.0.4](https://github.com/PyCQA/flake8/compare/4.0.1...5.0.4)
2022-10-11 01:48:52 +00:00
Leonardo Giordani
51ae835866
Merge pull request #17 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2022-04-25 08:57:25 +01:00
pre-commit-ci[bot]
c4d692a412
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.1.0 → v4.2.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.1.0...v4.2.0)
- [github.com/psf/black: 22.1.0 → 22.3.0](https://github.com/psf/black/compare/22.1.0...22.3.0)
2022-04-11 22:30:52 +00:00
Leonardo Giordani
3ad01172d4
Merge pull request #16 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2022-02-07 09:22:24 +00:00
pre-commit-ci[bot]
5e913c20f9
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.12b0 → 22.1.0](https://github.com/psf/black/compare/21.12b0...22.1.0)
2022-01-31 23:10:40 +00:00
Leonardo Giordani
75e8e133ea
Merge pull request #15 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-12-30 12:23:18 +00:00
pre-commit-ci[bot]
3c48e56b62
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v4.0.1 → v4.1.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.0.1...v4.1.0)
2021-12-27 22:03:11 +00:00
Leonardo Giordani
718f0824c4
Merge pull request #14 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-12-07 10:28:15 +00:00
pre-commit-ci[bot]
2f7f91af2a
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.11b1 → 21.12b0](https://github.com/psf/black/compare/21.11b1...21.12b0)
2021-12-06 21:59:17 +00:00
Leonardo Giordani
7f34eb90b7
Merge pull request #13 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-11-23 09:09:36 +00:00
pre-commit-ci[bot]
d4dd47a322
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.10b0 → 21.11b1](https://github.com/psf/black/compare/21.10b0...21.11b1)
2021-11-22 21:33:30 +00:00
Leonardo Giordani
7cb0f666ac
Merge pull request #12 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-11-19 14:00:48 +00:00
pre-commit-ci[bot]
3129e0378f
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.9b0 → 21.10b0](https://github.com/psf/black/compare/21.9b0...21.10b0)
- [github.com/PyCQA/isort: 5.9.3 → 5.10.1](https://github.com/PyCQA/isort/compare/5.9.3...5.10.1)
2021-11-15 21:11:33 +00:00
Leonardo Giordani
0de3fcdc78
Merge pull request #11 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-10-11 21:53:31 +01:00
pre-commit-ci[bot]
922b99bfae
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/PyCQA/flake8: 3.9.2 → 4.0.1](https://github.com/PyCQA/flake8/compare/3.9.2...4.0.1)
2021-10-11 20:12:19 +00:00
Leonardo Giordani
03e0832775
Merge pull request #10 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-09-21 11:17:16 +01:00
pre-commit-ci[bot]
0f32936bce
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.8b0 → 21.9b0](https://github.com/psf/black/compare/21.8b0...21.9b0)
2021-09-20 20:25:30 +00:00
Leonardo Giordani
3d2b8ed9fe
Merge pull request #9 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-09-16 09:39:26 +01:00
pre-commit-ci[bot]
fa7eae4550
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.7b0 → 21.8b0](https://github.com/psf/black/compare/21.7b0...21.8b0)
- [github.com/PyCQA/isort: 5.9.2 → 5.9.3](https://github.com/PyCQA/isort/compare/5.9.2...5.9.3)
2021-08-30 19:48:58 +00:00
Leonardo Giordani
2ca215ad75
Merge pull request #8 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-07-30 08:17:25 +01:00
pre-commit-ci[bot]
1adfca3fec
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.6b0 → 21.7b0](https://github.com/psf/black/compare/21.6b0...21.7b0)
2021-07-19 22:26:15 +00:00
Leonardo Giordani
7aee0a6d99
Merge pull request #7 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-07-13 10:50:02 +01:00
pre-commit-ci[bot]
cf84a2d205
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/PyCQA/isort: 5.9.1 → 5.9.2](https://github.com/PyCQA/isort/compare/5.9.1...5.9.2)
2021-07-12 23:39:18 +00:00
Leonardo Giordani
fdc8018c07
Merge pull request #6 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-06-22 09:35:43 +01:00
pre-commit-ci[bot]
f035026923
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.5b2 → 21.6b0](https://github.com/psf/black/compare/21.5b2...21.6b0)
- [github.com/PyCQA/isort: 5.8.0 → 5.9.1](https://github.com/PyCQA/isort/compare/5.8.0...5.9.1)
2021-06-21 17:51:59 +00:00
Leonardo Giordani
a0d3b68226
Merge pull request #5 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-06-01 09:05:35 +01:00
pre-commit-ci[bot]
612effae83
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.5b1 → 21.5b2](https://github.com/psf/black/compare/21.5b1...21.5b2)
2021-05-31 17:43:42 +00:00
Leonardo Giordani
58e5054693
Merge pull request #4 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-05-20 09:10:35 +01:00
pre-commit-ci[bot]
554f40881d
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/pre-commit-hooks: v3.4.0 → v4.0.1](https://github.com/pre-commit/pre-commit-hooks/compare/v3.4.0...v4.0.1)
2021-05-17 17:39:14 +00:00
Leonardo Giordani
a66d8b0a22
Merge pull request #3 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-05-12 10:13:58 +01:00
pre-commit-ci[bot]
9d6e04bc9e
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 21.4b2 → 21.5b1](https://github.com/psf/black/compare/21.4b2...21.5b1)
- [github.com/PyCQA/flake8: 3.9.1 → 3.9.2](https://github.com/PyCQA/flake8/compare/3.9.1...3.9.2)
2021-05-10 20:44:09 +00:00
Justin Mayer
eba18bca84 Support Poetry-managed virtualenvs in Invoke tasks 2021-05-04 05:37:47 -05:00
Justin Mayer
ba52c4c0d1 Update linters and adjust dependency versions 2021-05-04 05:36:56 -05:00
Justin Mayer
98f25e3ed0 Add funding links 2021-05-04 05:35:39 -05:00
Justin Mayer
8bc139b335 Add pre-commit hooks 2021-05-04 05:26:23 -05:00
Leonardo Giordani
a130020af9
Merge pull request #2 from pelican-plugins/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-05-04 08:10:57 +01:00
Leonardo Giordani
10931570ba Fixed file termination 2021-05-04 08:08:46 +01:00
pre-commit-ci[bot]
bf2dca8df6
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/psf/black: 19.10b0 → 21.4b2](https://github.com/psf/black/compare/19.10b0...21.4b2)
- https://gitlab.com/pycqa/flake8https://github.com/PyCQA/flake8
- [github.com/PyCQA/flake8: 3.9.0 → 3.9.1](https://github.com/PyCQA/flake8/compare/3.9.0...3.9.1)
- [github.com/PyCQA/isort: 5.7.0 → 5.8.0](https://github.com/PyCQA/isort/compare/5.7.0...5.8.0)
2021-05-03 17:36:04 +00:00
12 changed files with 272 additions and 177 deletions

2
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,2 @@
github: justinmayer
liberapay: pelican

View file

@ -7,98 +7,89 @@ env:
jobs: jobs:
test: test:
name: Test - ${{ matrix.python-version }} name: Test - Python ${{ matrix.python-version }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: [3.6, 3.7, 3.8, 3.9] python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2 - name: Set up Python ${{ matrix.python-version }} & PDM
uses: pdm-project/setup-pdm@v4
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
- name: Set up Pip cache cache: true
uses: actions/cache@v2 cache-dependency-path: ./pyproject.toml
id: pip-cache
with:
path: ~/.cache/pip
key: pip-${{ hashFiles('**/pyproject.toml') }}
- name: Upgrade Pip
run: python -m pip install --upgrade pip
- name: Install Poetry
run: python -m pip install poetry
- name: Set up Poetry cache
uses: actions/cache@v2
id: poetry-cache
with:
path: ~/.cache/pypoetry/virtualenvs
key: poetry-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
run: |
poetry run pip install --upgrade pip
poetry install
- name: Run tests
run: poetry run invoke tests
- name: Install dependencies
run: pdm install
- name: Run tests
run: pdm run invoke tests
lint: lint:
name: Lint name: Lint
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.x"
- name: Set Poetry cache
uses: actions/cache@v2
id: poetry-cache
with:
path: ~/.cache/pypoetry/virtualenvs
key: poetry-${{ hashFiles('**/poetry.lock') }}
- name: Upgrade Pip
run: python -m pip install --upgrade pip
- name: Install Poetry
run: python -m pip install poetry
- name: Install dependencies
run: |
poetry run pip install --upgrade pip
poetry install
- name: Run linters
run: poetry run invoke lint
- name: Validate links in Markdown files
uses: JustinBeckwith/linkinator-action@v1
with:
retry: true
- name: Set up Python & PDM
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.10"
- name: Install dependencies
run: pdm install
- name: Run linters
run: pdm run invoke lint --diff
deploy: deploy:
name: Deploy name: Deploy
environment: Deployment environment: Deployment
needs: [test, lint] needs: [test, lint]
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ github.ref=='refs/heads/main' && github.event_name!='pull_request' }} if: github.ref=='refs/heads/main' && github.event_name!='pull_request'
permissions:
contents: write
id-token: write
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v2
with: with:
python-version: "3.x" token: ${{ secrets.GH_TOKEN }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Check release - name: Check release
id: check_release id: check_release
run: | run: |
python -m pip install --upgrade pip python -m pip install autopub httpx
python -m pip install poetry githubrelease httpx==0.16.1 autopub python -m pip install https://github.com/scikit-build/github-release/archive/master.zip
echo "##[set-output name=release;]$(autopub check)" autopub check
- name: Publish - name: Publish
if: ${{ steps.check_release.outputs.release=='' }} if: ${{ steps.check_release.outputs.autopub_release=='true' }}
env: env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: | run: |
git remote set-url origin https://$GITHUB_TOKEN@github.com/${{ github.repository }}
autopub prepare autopub prepare
poetry build
autopub commit autopub commit
autopub build
autopub githubrelease autopub githubrelease
poetry publish -u __token__ -p $PYPI_PASSWORD
- name: Upload package to PyPI
if: ${{ steps.check_release.outputs.autopub_release=='true' }}
uses: pypa/gh-action-pypi-publish@release/v1

3
.gitignore vendored
View file

@ -1 +1,2 @@
poetry.lock .pdm-python
pdm.lock

View file

@ -1,31 +1,28 @@
---
ci:
autoupdate_schedule: quarterly
# See https://pre-commit.com/hooks.html for info on hooks # See https://pre-commit.com/hooks.html for info on hooks
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.4.0 rev: v4.6.0
hooks: hooks:
- id: check-added-large-files - id: check-added-large-files
- id: check-ast - id: check-ast
- id: check-case-conflict - id: check-case-conflict
- id: check-docstring-first
- id: check-merge-conflict
- id: check-toml - id: check-toml
- id: check-yaml - id: check-yaml
- id: debug-statements - id: debug-statements
- id: detect-private-key - id: detect-private-key
- id: end-of-file-fixer - id: end-of-file-fixer
- id: forbid-new-submodules
- id: trailing-whitespace - id: trailing-whitespace
- repo: https://github.com/psf/black - repo: https://github.com/astral-sh/ruff-pre-commit
rev: 19.10b0 rev: v0.5.0
hooks: hooks:
- id: black - id: ruff
- id: ruff-format
- repo: https://gitlab.com/pycqa/flake8 args: ["--check"]
rev: 3.9.0
hooks:
- id: flake8
args: [--max-line-length=88]
language_version: python3.7
- repo: https://github.com/PyCQA/isort
rev: 5.7.0
hooks:
- id: isort

View file

@ -1,11 +1,30 @@
CHANGELOG CHANGELOG
========= =========
1.2.1 - 2025-03-23
------------------
Add title to Bluesky
Contributed by [Daniel Lemos](https://github.com/xspager) via [PR #34](https://github.com/pelican-plugins/share-post/pull/34/)
1.2.0 - 2025-01-29
------------------
Add Bluesky support
Contributed by [Leonardo Giordani](https://github.com/lgiordani) via [PR #33](https://github.com/pelican-plugins/share-post/pull/33/)
1.1.0 - 2023-08-31
------------------
Add Mastodon share link
1.0.0 - 2021-03-19 1.0.0 - 2021-03-19
------------------ ------------------
Initial release as namespace plugin Initial release as namespace plugin
[Justin Mayer](https://github.com/justinmayer) [PR #1](https://github.com/pelican-plugins/share-post/pull/1/) [Justin Mayer](https://github.com/justinmayer) [PR #1](https://github.com/pelican-plugins/share-post/pull/1/)

View file

@ -1,7 +1,8 @@
# Share Post: A Plugin for Pelican # Share Post: A Plugin for Pelican
[![Build Status](https://img.shields.io/github/workflow/status/pelican-plugins/share-post/build)](https://github.com/pelican-plugins/share-post/actions) [![Build Status](https://img.shields.io/github/actions/workflow/status/pelican-plugins/share-post/main.yml?branch=main)](https://github.com/pelican-plugins/share-post/actions)
[![PyPI Version](https://img.shields.io/pypi/v/pelican-share-post)](https://pypi.org/project/pelican-share-post/) [![PyPI Version](https://img.shields.io/pypi/v/pelican-share-post)](https://pypi.org/project/pelican-share-post/)
[![Downloads](https://img.shields.io/pypi/dm/pelican-share-post)](https://pypi.org/project/pelican-share-post/)
![License](https://img.shields.io/pypi/l/pelican-share-post?color=blue) ![License](https://img.shields.io/pypi/l/pelican-share-post?color=blue)
Share Post is a Pelican plugin that creates share links in articles that allow site visitors to share the current article with others in a privacy-friendly manner. Share Post is a Pelican plugin that creates share links in articles that allow site visitors to share the current article with others in a privacy-friendly manner.
@ -18,6 +19,8 @@ This plugin can be installed via:
python -m pip install pelican-share-post python -m pip install pelican-share-post
As long as you have not explicitly added a `PLUGINS` setting to your Pelican settings file, then the newly-installed plugin should be automatically detected and enabled. Otherwise, you must add `share_post` to your existing `PLUGINS` list. For more information, please see the [How to Use Plugins](https://docs.getpelican.com/en/latest/plugins.html#how-to-use-plugins) documentation.
Usage Usage
----- -----
@ -25,13 +28,15 @@ This plugin adds to each Pelican article a dictionary of URLs that, when followe
```python ```python
article.share_post = { article.share_post = {
"facebook": "<URL>",
"email": "<URL>", "email": "<URL>",
"twitter": "<URL>",
"diaspora": "<URL>", "diaspora": "<URL>",
"linkedin": "<URL>", "facebook": "<URL>",
"hacker-news": "<URL>", "hacker-news": "<URL>",
"linkedin": "<URL>",
"mastodon": "<URL>",
"reddit": "<URL>", "reddit": "<URL>",
"twitter": "<URL>",
"bluesky": "<URL>",
} }
``` ```
@ -42,19 +47,23 @@ You can then access those variables in your template. For example:
<section> <section>
<p id="post-share-links"> <p id="post-share-links">
Share on: Share on:
<a href="{{article.share_post['diaspora']}}" title="Share on Diaspora">Diaspora*</a> <a href="{{article.share_post['email']}}" title="Share via Email">Email</a>
<a href="{{article.share_post['twitter']}}" title="Share on Twitter">Twitter</a> <a href="{{article.share_post['diaspora']}}" title="Share on Diaspora">Diaspora</a>
<a href="{{article.share_post['facebook']}}" title="Share on Facebook">Facebook</a> <a href="{{article.share_post['facebook']}}" title="Share on Facebook">Facebook</a>
<a href="{{article.share_post['linkedin']}}" title="Share on LinkedIn">LinkedIn</a>
<a href="{{article.share_post['hacker-news']}}" title="Share on Hacker News">Hacker News</a> <a href="{{article.share_post['hacker-news']}}" title="Share on Hacker News">Hacker News</a>
<a href="{{article.share_post['email']}}" title="Share via Email">Email</a> <a href="{{article.share_post['linkedin']}}" title="Share on LinkedIn">LinkedIn</a>
<a href="{{article.share_post['mastodon']}}" title="Share on Mastodon">Mastodon</a>
<a href="{{article.share_post['reddit']}}" title="Share via Reddit">Reddit</a> <a href="{{article.share_post['reddit']}}" title="Share via Reddit">Reddit</a>
<a href="{{article.share_post['twitter']}}" title="Share on Twitter">Twitter</a>
<a href="{{article.share_post['bluesky']}}" title="Share on Bluesky">Bluesky</a>
</p> </p>
</section> </section>
{% endif %} {% endif %}
@ -77,7 +86,8 @@ Contributors
* [Talha Mansoor](https://www.oncrashreboot.com) - talha131@gmail.com * [Talha Mansoor](https://www.oncrashreboot.com) - talha131@gmail.com
* [Jonathan DEKHTIAR](https://github.com/DEKHTIARJonathan) - contact@jonathandekhtiar.eu * [Jonathan DEKHTIAR](https://github.com/DEKHTIARJonathan) - contact@jonathandekhtiar.eu
* [Justin Mayer](https://justinmayer.com) * [Justin Mayer](https://justinmayer.com)
* [Leonardo Giordani](https://www.thedigitalcatonline.com) * [Leonardo Giordani](https://github.com/lgiordani)
* [Maurizio Paglia](https://github.com/mpaglia0)
License License

View file

@ -1 +1 @@
from .share_post import * # noqa from .share_post import * # noqa: F403,PGH004,RUF100

View file

@ -1,6 +1,4 @@
""" """Share Post plugin for Pelican.
Share Post
==========
This plugin was originally created by This plugin was originally created by
Talha Mansoor <talha131@gmail.com> Talha Mansoor <talha131@gmail.com>
@ -21,6 +19,8 @@ from pelican.generators import ArticlesGenerator, PagesGenerator
_create_link_functions = [] _create_link_functions = []
newline = "%0D%0A"
# Use this decorator to mark a function as # Use this decorator to mark a function as
# a link creator. The function's prototype shall be # a link creator. The function's prototype shall be
@ -55,6 +55,17 @@ def create_link_facebook(title, url, content):
return f"https://www.facebook.com/sharer/sharer.php?u={url}" return f"https://www.facebook.com/sharer/sharer.php?u={url}"
@create_link
def create_link_mastodon(title, url, content):
hashtags = ""
if hasattr(content, "tags"):
new_taglist = [f"%23{str(i).replace(' ', '')}" for i in content.tags]
hashtags = " ".join(new_taglist)
return f"https://toot.kytta.dev/?text={title}{newline}{url}{newline}{hashtags}"
@create_link @create_link
def create_link_twitter(title, url, content): def create_link_twitter(title, url, content):
twitter_username = content.settings.get("TWITTER_USERNAME", "") twitter_username = content.settings.get("TWITTER_USERNAME", "")
@ -85,6 +96,12 @@ def create_link_linkedin(title, url, content):
) )
@create_link
def create_link_bluesky(title, url, content):
# https://docs.bsky.app/docs/advanced-guides/intent-links
return f"https://bsky.app/intent/compose?text={title}%20{url}"
def create_share_links(content): def create_share_links(content):
if isinstance(content, contents.Static): if isinstance(content, contents.Static):
return return
@ -98,10 +115,10 @@ def create_share_links(content):
except AttributeError: except AttributeError:
sub_title = "" sub_title = ""
title = quote(f"{main_title}{sub_title}".encode("utf-8")) title = quote(f"{main_title}{sub_title}".encode())
site_url = content.settings["SITEURL"] site_url = content.settings["SITEURL"]
url = quote(f"{site_url}/{content.url}".encode("utf-8")) url = quote(f"{site_url}/{content.url}".encode())
content.share_post = {} content.share_post = {}
for func in _create_link_functions: for func in _create_link_functions:

View file

@ -1,7 +1,5 @@
import os import os
from share_post import run_plugin
from pelican.generators import ArticlesGenerator from pelican.generators import ArticlesGenerator
from pelican.tests.support import get_context, get_settings from pelican.tests.support import get_context, get_settings
@ -26,7 +24,7 @@ def test_share_post(tmp_folder):
) )
generator.generate_context() generator.generate_context()
run_plugin([generator]) share_post.run_plugin([generator])
share_links = generator.articles[0].share_post share_links = generator.articles[0].share_post
@ -63,3 +61,8 @@ def test_share_post(tmp_folder):
share_links["reddit"] share_links["reddit"]
== "https://www.reddit.com/submit?url=/test-post.html&title=Test%20post" == "https://www.reddit.com/submit?url=/test-post.html&title=Test%20post"
) )
assert (
share_links["bluesky"]
== "https://bsky.app/intent/compose?text=Test%20post%20/test-post.html"
)

View file

@ -1,73 +1,109 @@
[tool.poetry] [project]
name = "pelican-share-post" name = "pelican-share-post"
version = "1.0.0" version = "1.2.1"
description = "A Pelican plugin to create share URLs of article" description = "A Pelican plugin to create share URLs of article"
authors = ["Talha Mansoor <talha131@gmail.com>"] authors = [{name = "Talha Mansoor", email = "talha131@gmail.com"}, {name = "Justin Mayer", email = "entroP@gmail.com"}]
license = "MIT" license = {text = "MIT"}
readme = "README.md" readme = "README.md"
keywords = ["pelican", "plugin", "social"] keywords = ["pelican", "plugin", "social"]
repository = "https://github.com/pelican-plugins/share-post"
documentation = "https://docs.getpelican.com"
packages = [
{ include = "pelican" },
]
classifiers = [ classifiers = [
"Development Status :: 5 - Production/Stable", "Development Status :: 5 - Production/Stable",
"Environment :: Console", "Environment :: Console",
"Framework :: Pelican", "Framework :: Pelican",
"Framework :: Pelican :: Plugins", "Framework :: Pelican :: Plugins",
"Intended Audience :: End Users/Desktop", "Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP",
"Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Libraries :: Python Modules",
] ]
requires-python = ">=3.8.1,<4.0"
dependencies = [
"pelican>=4.5",
"beautifulsoup4>=4.9.3",
]
[tool.poetry.urls] [project.urls]
"Funding" = "https://donate.getpelican.com/" Homepage = "https://github.com/pelican-plugins/share-post"
"Issue Tracker" = "https://github.com/pelican-plugins/share-post/issues" "Issue Tracker" = "https://github.com/pelican-plugins/share-post/issues"
Funding = "https://donate.getpelican.com/"
[tool.poetry.dependencies] [project.optional-dependencies]
python = "^3.6" markdown = ["markdown>=3.4"]
pelican = "^4.5"
markdown = {version = "^3.2.2", optional = true}
beautifulsoup4 = "^4.9.3"
[tool.poetry.dev-dependencies] [tool.pdm]
black = {version = "^19.10b0", allow-prereleases = true}
flake8 = "^3.9"
flake8-black = "^0.2.0"
invoke = "^1.3"
isort = "^5.4"
livereload = "^2.6"
markdown = "^3.2.2"
pytest = "^6.0"
pytest-cov = "^2.8"
pytest-pythonpath = "^0.7.3"
pytest-sugar = "^0.9.4"
Werkzeug = "^1.0"
[tool.poetry.extras] [tool.pdm.dev-dependencies]
markdown = ["markdown"] lint = [
"invoke>=2.2",
"ruff>=0.5.0,<0.6.0"
]
test = [
"markdown>=3.4",
"pytest>=7.0",
"pytest-cov>=4.0",
"pytest-sugar>=1.0",
]
[tool.pdm.build]
source-includes = [
"CHANGELOG.md",
"CONTRIBUTING.md",
]
includes = ["pelican/"]
excludes = ["**/.DS_Store", "**/test_data/**", "tasks.py"]
[tool.autopub] [tool.autopub]
project-name = "Share Post" project-name = "Share Post"
git-username = "botpub" git-username = "botpub"
git-email = "botpub@autopub.rocks" git-email = "52496925+botpub@users.noreply.github.com"
append-github-contributor = true append-github-contributor = true
[tool.isort] [tool.ruff.lint]
# Maintain compatibility with Black select = [
profile = "black" "B", # flake8-bugbear
multi_line_output = 3 "BLE", # flake8-blind-except
"C4", # flake8-comprehensions
"D", # pydocstyle
"E", # pycodestyle
"F", # pyflakes
"I", # isort
"ICN", # flake8-import-conventions
"ISC", # flake8-implicit-str-concat
"PGH", # pygrep-hooks
"PL", # pylint
"RET", # flake8-return
"RUF", # ruff-specific rules
"SIM", # flake8-simplify
"T10", # flake8-debugger
"T20", # flake8-print
"TID", # flake8-tidy-imports
"TRY", # tryceratops
"UP", # pyupgrade
"W", # pycodestyle
"YTT", # flake8-2020
]
# Sort imports within their section independent of the import type ignore = [
force_sort_within_sections = true "D100", # missing docstring in public module
"D103", # missing docstring in public method
"D104", # missing docstring in public package
"D203", # blank line before class docstring
"D213", # multi-line docstring summary should start at the second line
"ISC001", # disabled so `ruff format` works without warning
]
# Designate "pelican" as separate import section [tool.ruff.lint.isort]
known_pelican = "pelican" combine-as-imports = true
sections = "FUTURE,STDLIB,THIRDPARTY,PELICAN,FIRSTPARTY,LOCALFOLDER" force-sort-within-sections = true
known-first-party = ["pelican"]
[build-system] [build-system]
requires = ["poetry-core>=1.0.0"] requires = ["pdm-backend"]
build-backend = "poetry.core.masonry.api" build-backend = "pdm.backend"

View file

@ -1,79 +1,101 @@
from inspect import cleandoc
import logging
import os import os
from pathlib import Path from pathlib import Path
from shutil import which from shutil import which
from invoke import task from invoke import task
logger = logging.getLogger(__name__)
PKG_NAME = "share_post" PKG_NAME = "share_post"
PKG_PATH = Path(f"pelican/plugins/{PKG_NAME}") PKG_PATH = Path(f"pelican/plugins/{PKG_NAME}")
ACTIVE_VENV = os.environ.get("VIRTUAL_ENV", None) ACTIVE_VENV = os.environ.get("VIRTUAL_ENV", None)
VENV_HOME = Path(os.environ.get("WORKON_HOME", "~/.local/share/virtualenvs")) VENV_HOME = Path(os.environ.get("WORKON_HOME", "~/.local/share/virtualenvs"))
VENV_PATH = Path(ACTIVE_VENV) if ACTIVE_VENV else (VENV_HOME / PKG_NAME) VENV_PATH = Path(ACTIVE_VENV) if ACTIVE_VENV else (VENV_HOME.expanduser() / PKG_NAME)
VENV = str(VENV_PATH.expanduser()) VENV = str(VENV_PATH.expanduser())
BIN_DIR = "bin" if os.name != "nt" else "Scripts"
VENV_BIN = Path(VENV) / Path(BIN_DIR)
TOOLS = ["poetry", "pre-commit"] TOOLS = ("pdm", "pre-commit")
POETRY = which("poetry") if which("poetry") else (VENV / Path("bin") / "poetry") PDM = which("pdm") if which("pdm") else (VENV_BIN / "pdm")
PRECOMMIT = ( CMD_PREFIX = f"{VENV_BIN}/" if ACTIVE_VENV else f"{PDM} run "
which("pre-commit") if which("pre-commit") else (VENV / Path("bin") / "pre-commit") PRECOMMIT = which("pre-commit") if which("pre-commit") else f"{CMD_PREFIX}pre-commit"
) PTY = os.name != "nt"
@task @task
def tests(c): def tests(c, deprecations=False):
"""Run the test suite""" """Run the test suite, optionally with `--deprecations`."""
c.run(f"{VENV}/bin/pytest", pty=True) deprecations_flag = "" if deprecations else "-W ignore::DeprecationWarning"
c.run(f"{CMD_PREFIX}pytest {deprecations_flag}", pty=PTY)
@task @task
def black(c, check=False, diff=False): def format(c, check=False, diff=False):
"""Run Black auto-formatter, optionally with --check or --diff""" """Run Ruff's auto-formatter, optionally with `--check` or `--diff`."""
check_flag, diff_flag = "", "" check_flag, diff_flag = "", ""
if check: if check:
check_flag = "--check" check_flag = "--check"
if diff: if diff:
diff_flag = "--diff" diff_flag = "--diff"
c.run(f"{VENV}/bin/black {check_flag} {diff_flag} {PKG_PATH} tasks.py") c.run(
f"{CMD_PREFIX}ruff format {check_flag} {diff_flag} {PKG_PATH} tasks.py", pty=PTY
)
@task @task
def isort(c, check=False, diff=False): def ruff(c, fix=False, diff=False):
check_flag, diff_flag = "", "" """Run Ruff to ensure code meets project standards."""
if check: diff_flag, fix_flag = "", ""
check_flag = "-c" if fix:
fix_flag = "--fix"
if diff: if diff:
diff_flag = "--diff" diff_flag = "--diff"
c.run(f"{VENV}/bin/isort {check_flag} {diff_flag} .") c.run(f"{CMD_PREFIX}ruff check {diff_flag} {fix_flag} .", pty=PTY)
@task @task
def flake8(c): def lint(c, fix=False, diff=False):
c.run(f"{VENV}/bin/flake8 {PKG_PATH} tasks.py") """Check code style via linting tools."""
ruff(c, fix=fix, diff=diff)
format(c, check=(not fix), diff=diff)
@task
def lint(c):
isort(c, check=True)
black(c, check=True)
flake8(c)
@task @task
def tools(c): def tools(c):
"""Install tools in the virtual environment if not already on PATH""" """Install development tools in the virtual environment if not already on PATH."""
for tool in TOOLS: for tool in TOOLS:
if not which(tool): if not which(tool):
c.run(f"{VENV}/bin/pip install {tool}") logger.info(f"** Installing {tool} **")
c.run(f"{CMD_PREFIX}pip install {tool}")
@task @task
def precommit(c): def precommit(c):
"""Install pre-commit hooks to .git/hooks/pre-commit""" """Install pre-commit hooks to .git/hooks/pre-commit."""
logger.info("** Installing pre-commit hooks **")
c.run(f"{PRECOMMIT} install") c.run(f"{PRECOMMIT} install")
@task @task
def setup(c): def setup(c):
c.run(f"{VENV}/bin/pip install -U pip") """Set up the development environment."""
if which("pdm") or ACTIVE_VENV:
tools(c) tools(c)
c.run(f"{POETRY} install") c.run(f"{CMD_PREFIX}python -m pip install --upgrade pip", pty=PTY)
c.run(f"{PDM} update --dev", pty=PTY)
precommit(c) precommit(c)
logger.info("\nDevelopment environment should now be set up and ready!\n")
else:
error_message = """
PDM is not installed, and there is no active virtual environment available.
You can either manually create and activate a virtual environment, or you can
install PDM via:
curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python3 -
Once you have taken one of the above two steps, run `invoke setup` again.
""" # noqa: E501
raise SystemExit(cleandoc(error_message))

View file

@ -1,3 +0,0 @@
[flake8]
max-line-length = 88
ignore = E203, W503