Commit graph

224 commits

Author SHA1 Message Date
Juro Oravec
ab75cfdb8f
feat: allow globs when specifynigg additionall JS and CSS (#1043)
* feat: allow globs when specifynigg additionall JS and CSS

* refactor: fix tests and linter errors
2025-03-21 10:23:38 +01:00
Juro Oravec
0f41a62592
feat: add a command to list all components (#1041)
* feat: add a command to list all components

* refactor: fix tests

* refactor: fix linter errors

* refactor: fix the tests for tests running within tox

* temp: print out test outputs

* refactor: fix tests for windows

* refactor: remove escape from slash?

* refactor: fixes to regex

* refactor: remove print statements

* docs: update API reference
2025-03-19 09:38:25 +01:00
Juro Oravec
107284f474
feat: registry.has(); helpers to get all components and registries; access component from ext class (#1030)
* feat: registry.has(); helpers to get all components and registries; access component from ext class

* refactor: add missing import
2025-03-18 11:30:53 +01:00
Juro Oravec
ebfb26121a
refactor: refactor tests to create components inside test functions (#1027) 2025-03-17 11:06:32 +01:00
Juro Oravec
12a64f8e41
feat: allow extensions to add url views (#1025)
* feat: allow extensions to add url views

* refactor: fix linter errors
2025-03-17 08:36:47 +01:00
Juro Oravec
d3d2d0ab08
feat: allow extensions to add commands (#1017)
* feat: allow extensions to add commands

* refactor: fix tests

* refactor: more test fix

* refactor: more test fixes

* refactor: more linter fixes
2025-03-16 12:03:16 +01:00
Juro Oravec
4d35bc97a2
feat: extensions (#1009)
* feat: extensions

* refactor: remove support for passing in extensions as instances
2025-03-08 09:41:28 +01:00
Juro Oravec
7dfcb447c4
feat: add decorator for writing component tests (#1008)
* feat: add decorator for writing component tests

* refactor: udpate changelog + update deps pins

* refactor: fix deps

* refactor: make cached_ref into generic and fix linter errors

* refactor: fix coverage testing

* refactor: use global var instead of env var for is_testing state
2025-03-02 19:46:12 +01:00
Juro Oravec
f36581ed86
feat: benchmarking (#999)
* feat: add benchmarking dashboard, CI hook on PR, and store lifetime results

* refactor: change python env to 3.13 in benchmarks

* refactor: add verbosity, use 3.11 for benchmarking

* fix: OSError: [Errno 7] Argument list too long

* refactor: add debug statements

* refactor: remove extraneous -e

* refactor: fix tests and linter errors

* fix: track main package in coverage

* refactor: fix test coverage testing

* refactor: fix repo owner name in benchmark on pushing comment

* refactor: add asv monkeypatch to docs workflow

* refactor: temporarily allow building docs in forks

* refactor: use py 3.13 for benchmarking

* refactor: run only a single benchmark for PRs to speed them up

* refactor: install asv in the docs build workflow

* refactor: use hatch docs env to generate benhcmarks in docs CI

* refactor: more trying

* refactor: move tests

* Add benchmark results for 0.137

* Trigger Build

* Add benchmark results for 0.138

* refactor: set constant machine name when benchmarking

* Add benchmark results for 0.139

* refactor: fix issue with paths too long

* Add benchmark results for 0.140

* docs: update comment

* refactor: remove test benchmarking data

* refactor: fix comment

* refactor: allow the benchmark workflow to write to PRs

* refactor: use personal access token to set up the PR benchmark bot

* refactor: split the benchmark PR flow into two to make it work with PRs from forks

* refactor: update deprecated actions/upload-artifact@v3 to v4

* refactor: fix missing directory in benchmarking workflow

* refactor: fix triggering of second workflow

* refactor: fix workflow finally?

* docs: add comments to cut-offs and direct people to benchmarks PR

---------

Co-authored-by: github-actions <github-actions@github.com>
2025-02-23 16:18:57 +01:00
lilian D
8b5579d2be
feat:forward context processors variables in context in ISOLATED mode (#975)
* feat:forward context processors variables in context in ISOLATED mode

	provide context_processors_data property to Component to access those variables in Component

* refactor: internalize RequestContext and pass HttpRequest internally

* docs: document HttpRequest and context processors

---------

Co-authored-by: Juro Oravec <juraj.oravec.josefson@gmail.com>
2025-02-20 11:06:49 +01:00
Juro Oravec
fdfdc72ed2
refactor: fix error when template cache is set to 0 (#980) 2025-02-16 21:06:33 +01:00
lilian D
58d4c78671
Bug : Relative path in extends and include does not work when using template_file (#976)
Co-authored-by: Juro Oravec <juraj.oravec.josefson@gmail.com>
2025-02-16 13:29:37 +01:00
Juro Oravec
48bae51ab9
feat: allow to configure media cache (for JS and CSS files) (#946) 2025-02-03 21:24:26 +01:00
Juro Oravec
c7aba40252
refactor: Do tag input validation with __code__ variables if available (#945) 2025-02-02 21:47:34 +01:00
Juro Oravec
f52f12579b
refactor: remove use of eval for node validation (#944) 2025-02-02 10:35:39 +01:00
Juro Oravec
de32d449d9
feat: allow to highlight slots and components for debugging (#942) 2025-02-02 10:14:47 +01:00
Juro Oravec
96f48bc013
refactor: fix on_render_after hook (#941) 2025-02-01 17:39:56 +01:00
Juro Oravec
588053803d
refactor: fix component recursion (#936) 2025-02-01 17:19:21 +01:00
Juro Oravec
b69c6e6624
feat: replacepython html parser djc-core-html-parser (#929)
Co-authored-by: Emil Stenström <emil@emilstenstrom.se>
2025-01-29 14:24:25 +01:00
Juro Oravec
0b65761fce
refactor: replace bs4 and perf optimizations (#927) 2025-01-24 10:30:41 +01:00
Juro Oravec
92f5497c74
refactor: change repo name and URL after org migration (#924) 2025-01-22 16:02:46 +01:00
Juro Oravec
f908197850
feat: @template_tag and refactor how template tags are defined (#910) 2025-01-20 22:47:04 +01:00
Juro Oravec
7ed4fd88f9
refactor: Patch Template.compile_nodelist with custom template parser (#908)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-15 22:34:32 +01:00
Juro Oravec
8cd4b03286
feat: Literal dicts and lists part 2 (#902) 2025-01-14 09:01:47 +01:00
Juro Oravec
ba0f9e65e9
refactor: move the utils from component_tags to util.template_tag (#899)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-09 21:46:32 +01:00
Juro Oravec
a79b24b692
feat: list and dict literals in tags + fix tag parser (#898)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-09 21:15:23 +01:00
Juro Oravec
ab037f24b0
feat: add Media.extend (#890)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-07 22:55:17 +01:00
Juro Oravec
81c02ddaa7
refactor: use HTML5 parser for BeautifulSoup (#891)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-07 21:27:17 +01:00
Juro Oravec
203d29f511
refactor: exclude underscored files from autodiscovery (#888) 2025-01-07 19:48:41 +01:00
Juro Oravec
1e4b556b4d
refactor: Assign content of file from Component.template_file to Component.template (#880)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-07 19:34:34 +01:00
Juro Oravec
d94a459c8d
refactor: rename template_name to template_file (#878)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-01 17:06:14 +01:00
Juro Oravec
715bf7d447
feat: allow to set main JS and CSS from files + lazy-load component m… (#870)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-30 18:00:46 +01:00
Juro Oravec
fe67d90547
refactor: Backbone for passing JS and CSS variables (#861)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-28 19:27:19 +01:00
Juro Oravec
85fc6e3497
fix: TemplateDoesNotExist when using {% extends %} on main template and two components with same parent template (#862) 2024-12-23 12:58:03 +01:00
Juro Oravec
4dab940db8
feat: Add support for HTML fragments (#845)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-19 10:03:35 +01:00
Juro Oravec
f6f6fcb097
refactor: Fix the use of filters with component inputs (#857)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-17 20:25:56 +01:00
Juro Oravec
a7bc3f7c4c
fix: format tag param with translation correctly (#849)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-15 07:33:02 +01:00
Juro Oravec
87919e1163
refactor: Add own LRU cache impl for template caching (#828) 2024-12-13 09:29:19 +01:00
Juro Oravec
894dee3cad
refactor: use the tag parser to streamline the tag handlers (#827) 2024-12-13 09:00:03 +01:00
Laurence Hole
dfd4187192
Adding request arg to render (#817)
Co-authored-by: Laurence Hole <laurence@safi.co>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-10 13:28:34 +01:00
Juro Oravec
1cd545b986
refactor: replace selectolax with beautifulsoup (#823)
* refactor: replace selectolax with beautifulsoup

* refactor: add tests for html parser impl

* refactor: add missing import

* refactor: fix tests

* refactor: fix linter issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-08 08:42:48 +01:00
Juro Oravec
be27c1c94d
fix: Fix broken JS execution order (#821)
* fix: fix broken js exec order

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* refactor: remove stale comment

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-06 08:22:27 +01:00
Juro Oravec
025562ac0c
fix: set paths for component media as posix paths even on windows (#799)
* fix: set paths for component media as posix paths even on windows

* refactor: try running django server in windows

* refactor: handle Windows paths in component media

* refactor: temp test only windows

* refactor: try to fix tests

* refactor: more test fixes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* refactor: remove extraneous import

* refactor: more fixes

* refactor: fix path conversion for windows

* refactor: revert windows env in CI

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-02 19:03:41 +01:00
Juro Oravec
dd6d668b5e
fix: do not render slot tag when extracting fill tags (#786)
* fix: do not render slot tag when extracting fill tags

* refactor: show component path in error message

* docs: update changelog

* refactor: fix tests
2024-11-27 17:19:41 +01:00
Juro Oravec
5fc27a041f
fix: ensure consistent order of scripts in Component.Media.js (#783) 2024-11-26 21:55:14 +00:00
Juro Oravec
9f98c7e4df
fix: allow components to accept default fill even if no default slot encountered during rendering (#780) 2024-11-26 17:42:00 +01:00
Juro Oravec
f5fd3c02cd
fix: do NOT render component tags when parsing {% component %} body for fills (#778)
* refactor: do NOT render component tags when parsing {% component %} body for fills

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* refactor: fix typo

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-11-26 14:52:55 +01:00
Juro Oravec
5fd45ab424
chore: Push dev to master to release v0.110 (#767)
* feat: skeleton of dependency manager backend (#688)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: selectolax update and tests cleanup (#702)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: move release notes to own file (#704)

* chore: merge changes from master (#705)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yassin Rakha <yaso2go@gmail.com>
Co-authored-by: Emil Stenström <emil@emilstenstrom.se>
fix for nested slots (#698) (#699)

* refactor: remove joint {% component_dependencies %} tag (#706)

Co-authored-by: Emil Stenström <emil@emilstenstrom.se>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: split up utils file and move utils to util dir (#707)

* docs: Move docs inside src/ to allow imports in python scripts (#708)

* refactor: Docs prep 1 (#715)

* refactor: Document template tags (#716)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: pass slot fills in template via slots param (#719)

* chore: Merge master to dev (#729)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yassin Rakha <yaso2go@gmail.com>
Co-authored-by: Emil Stenström <emil@emilstenstrom.se>
Co-authored-by: Tom Larsen <larsent@gmail.com>
fix for nested slots (#698) (#699)

* fix: Do not raise error if multiple slots with same name are flagged as default (#727)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: tag formatter - allow fwd slash in end tag (#730)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* refactor: Use lowercase names for registry settings (#731)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* docs: add docstrings (#732)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: define settings as a data class for type hints, intellisense, and docs (#733)

* refactor: fix reload-on-change logic, expose autodiscover's dirs-getting logic, rename settings (#734)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* docs: document settings (#743)

* docs: document settings

* refactor: fix linter errors

* feat: passthrough slots and more (#758)

* feat: passthrough slots and more

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* refactor: remove ComponentSlotContext.slots

* refactor: update comment

* docs: update changelog

* refactor: update docstrings

* refactor: document and test-cover more changes

* refactor: revert fill without name

* docs: update README

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix: apostrophes in tags (#765)

* refactor: fix merge error - duplicate code

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Emil Stenström <emil@emilstenstrom.se>
2024-11-25 09:41:57 +01:00
Juro Oravec
ff70be35e4
refactor: fix for nested slots (#698) (#699)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-10-10 14:37:21 +02:00
Juro Oravec
849a869a66
feat: add JS dependency manager (#666)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-09-22 16:42:41 +02:00