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:
test:
name: Test - ${{ matrix.python-version }}
name: Test - Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} & PDM
uses: pdm-project/setup-pdm@v4
with:
python-version: ${{ matrix.python-version }}
- name: Set up Pip cache
uses: actions/cache@v2
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
cache: true
cache-dependency-path: ./pyproject.toml
- name: Install dependencies
run: pdm install
- name: Run tests
run: pdm run invoke tests
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- 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
- uses: actions/checkout@v4
- 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:
name: Deploy
environment: Deployment
needs: [test, lint]
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:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
- uses: actions/checkout@v4
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
id: check_release
run: |
python -m pip install --upgrade pip
python -m pip install poetry githubrelease httpx==0.16.1 autopub
echo "##[set-output name=release;]$(autopub check)"
python -m pip install autopub httpx
python -m pip install https://github.com/scikit-build/github-release/archive/master.zip
autopub check
- name: Publish
if: ${{ steps.check_release.outputs.release=='' }}
if: ${{ steps.check_release.outputs.autopub_release=='true' }}
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
git remote set-url origin https://$GITHUB_TOKEN@github.com/${{ github.repository }}
autopub prepare
poetry build
autopub commit
autopub build
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
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.4.0
rev: v4.6.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-case-conflict
- id: check-docstring-first
- id: check-merge-conflict
- id: check-toml
- id: check-yaml
- id: debug-statements
- id: detect-private-key
- id: end-of-file-fixer
- id: forbid-new-submodules
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 19.10b0
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.5.0
hooks:
- id: black
- repo: https://gitlab.com/pycqa/flake8
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
- id: ruff
- id: ruff-format
args: ["--check"]

View file

@ -1,11 +1,30 @@
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
------------------
Initial release as namespace plugin
[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
[![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/)
[![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)
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,43 +19,51 @@ This plugin can be installed via:
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
-----
This plugin adds to each Pelican article a dictionary of URLs that, when followed, allows the reader to easily share the article via specific channels. When activated, the plugin adds the attribute `share_post` to each article with the following format:
``` python
```python
article.share_post = {
"facebook": "<URL>",
"email": "<URL>",
"twitter": "<URL>",
"diaspora": "<URL>",
"linkedin": "<URL>",
"facebook": "<URL>",
"hacker-news": "<URL>",
"linkedin": "<URL>",
"mastodon": "<URL>",
"reddit": "<URL>",
"twitter": "<URL>",
"bluesky": "<URL>",
}
```
You can then access those variables in your template. For example:
``` html+jinja
```html+jinja
{% if article.share_post and article.status != 'draft' %}
<section>
<p id="post-share-links">
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['hacker-news']}}" title="Share on Hacker News">Hacker News</a>
<a href="{{article.share_post['linkedin']}}" title="Share on LinkedIn">LinkedIn</a>
<a href="{{article.share_post['hacker-news']}}" title="Share on HackerNews">HackerNews</a>
<a href="{{article.share_post['email']}}" title="Share via Email">Email</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['twitter']}}" title="Share on Twitter">Twitter</a>
<a href="{{article.share_post['bluesky']}}" title="Share on Bluesky">Bluesky</a>
</p>
</section>
{% endif %}
@ -77,7 +86,8 @@ Contributors
* [Talha Mansoor](https://www.oncrashreboot.com) - talha131@gmail.com
* [Jonathan DEKHTIAR](https://github.com/DEKHTIARJonathan) - contact@jonathandekhtiar.eu
* [Justin Mayer](https://justinmayer.com)
* [Leonardo Giordani](https://www.thedigitalcatonline.com)
* [Leonardo Giordani](https://github.com/lgiordani)
* [Maurizio Paglia](https://github.com/mpaglia0)
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
==========
"""Share Post plugin for Pelican.
This plugin was originally created by
Talha Mansoor <talha131@gmail.com>
@ -21,6 +19,8 @@ from pelican.generators import ArticlesGenerator, PagesGenerator
_create_link_functions = []
newline = "%0D%0A"
# Use this decorator to mark a function as
# 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}"
@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
def create_link_twitter(title, url, content):
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):
if isinstance(content, contents.Static):
return
@ -98,10 +115,10 @@ def create_share_links(content):
except AttributeError:
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"]
url = quote(f"{site_url}/{content.url}".encode("utf-8"))
url = quote(f"{site_url}/{content.url}".encode())
content.share_post = {}
for func in _create_link_functions:

View file

@ -1,7 +1,5 @@
import os
from share_post import run_plugin
from pelican.generators import ArticlesGenerator
from pelican.tests.support import get_context, get_settings
@ -26,7 +24,7 @@ def test_share_post(tmp_folder):
)
generator.generate_context()
run_plugin([generator])
share_post.run_plugin([generator])
share_links = generator.articles[0].share_post
@ -63,3 +61,8 @@ def test_share_post(tmp_folder):
share_links["reddit"]
== "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"
version = "1.0.0"
version = "1.2.1"
description = "A Pelican plugin to create share URLs of article"
authors = ["Talha Mansoor <talha131@gmail.com>"]
license = "MIT"
authors = [{name = "Talha Mansoor", email = "talha131@gmail.com"}, {name = "Justin Mayer", email = "entroP@gmail.com"}]
license = {text = "MIT"}
readme = "README.md"
keywords = ["pelican", "plugin", "social"]
repository = "https://github.com/pelican-plugins/share-post"
documentation = "https://docs.getpelican.com"
packages = [
{ include = "pelican" },
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Framework :: Pelican",
"Framework :: Pelican :: Plugins",
"Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: MIT License",
"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 :: Software Development :: Libraries :: Python Modules",
]
requires-python = ">=3.8.1,<4.0"
dependencies = [
"pelican>=4.5",
"beautifulsoup4>=4.9.3",
]
[tool.poetry.urls]
"Funding" = "https://donate.getpelican.com/"
[project.urls]
Homepage = "https://github.com/pelican-plugins/share-post"
"Issue Tracker" = "https://github.com/pelican-plugins/share-post/issues"
Funding = "https://donate.getpelican.com/"
[tool.poetry.dependencies]
python = "^3.6"
pelican = "^4.5"
markdown = {version = "^3.2.2", optional = true}
beautifulsoup4 = "^4.9.3"
[project.optional-dependencies]
markdown = ["markdown>=3.4"]
[tool.poetry.dev-dependencies]
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.pdm]
[tool.poetry.extras]
markdown = ["markdown"]
[tool.pdm.dev-dependencies]
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]
project-name = "Share Post"
git-username = "botpub"
git-email = "botpub@autopub.rocks"
git-email = "52496925+botpub@users.noreply.github.com"
append-github-contributor = true
[tool.isort]
# Maintain compatibility with Black
profile = "black"
multi_line_output = 3
[tool.ruff.lint]
select = [
"B", # flake8-bugbear
"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
force_sort_within_sections = true
ignore = [
"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
known_pelican = "pelican"
sections = "FUTURE,STDLIB,THIRDPARTY,PELICAN,FIRSTPARTY,LOCALFOLDER"
[tool.ruff.lint.isort]
combine-as-imports = true
force-sort-within-sections = true
known-first-party = ["pelican"]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
requires = ["pdm-backend"]
build-backend = "pdm.backend"

View file

@ -1,79 +1,101 @@
from inspect import cleandoc
import logging
import os
from pathlib import Path
from shutil import which
from invoke import task
logger = logging.getLogger(__name__)
PKG_NAME = "share_post"
PKG_PATH = Path(f"pelican/plugins/{PKG_NAME}")
ACTIVE_VENV = os.environ.get("VIRTUAL_ENV", None)
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())
BIN_DIR = "bin" if os.name != "nt" else "Scripts"
VENV_BIN = Path(VENV) / Path(BIN_DIR)
TOOLS = ["poetry", "pre-commit"]
POETRY = which("poetry") if which("poetry") else (VENV / Path("bin") / "poetry")
PRECOMMIT = (
which("pre-commit") if which("pre-commit") else (VENV / Path("bin") / "pre-commit")
)
TOOLS = ("pdm", "pre-commit")
PDM = which("pdm") if which("pdm") else (VENV_BIN / "pdm")
CMD_PREFIX = f"{VENV_BIN}/" if ACTIVE_VENV else f"{PDM} run "
PRECOMMIT = which("pre-commit") if which("pre-commit") else f"{CMD_PREFIX}pre-commit"
PTY = os.name != "nt"
@task
def tests(c):
"""Run the test suite"""
c.run(f"{VENV}/bin/pytest", pty=True)
def tests(c, deprecations=False):
"""Run the test suite, optionally with `--deprecations`."""
deprecations_flag = "" if deprecations else "-W ignore::DeprecationWarning"
c.run(f"{CMD_PREFIX}pytest {deprecations_flag}", pty=PTY)
@task
def black(c, check=False, diff=False):
"""Run Black auto-formatter, optionally with --check or --diff"""
def format(c, check=False, diff=False):
"""Run Ruff's auto-formatter, optionally with `--check` or `--diff`."""
check_flag, diff_flag = "", ""
if check:
check_flag = "--check"
if 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
def isort(c, check=False, diff=False):
check_flag, diff_flag = "", ""
if check:
check_flag = "-c"
def ruff(c, fix=False, diff=False):
"""Run Ruff to ensure code meets project standards."""
diff_flag, fix_flag = "", ""
if fix:
fix_flag = "--fix"
if 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
def flake8(c):
c.run(f"{VENV}/bin/flake8 {PKG_PATH} tasks.py")
@task
def lint(c):
isort(c, check=True)
black(c, check=True)
flake8(c)
def lint(c, fix=False, diff=False):
"""Check code style via linting tools."""
ruff(c, fix=fix, diff=diff)
format(c, check=(not fix), diff=diff)
@task
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:
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
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")
@task
def setup(c):
c.run(f"{VENV}/bin/pip install -U pip")
tools(c)
c.run(f"{POETRY} install")
precommit(c)
"""Set up the development environment."""
if which("pdm") or ACTIVE_VENV:
tools(c)
c.run(f"{CMD_PREFIX}python -m pip install --upgrade pip", pty=PTY)
c.run(f"{PDM} update --dev", pty=PTY)
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