Skip to content

Commit c3ddd6e

Browse files
authored
Merge pull request #20 from fourdigits/invalid-url-fix
Fix problem with urls with an @ present being invalid.
2 parents 1c9980a + 1faad40 commit c3ddd6e

File tree

13 files changed

+61
-42
lines changed

13 files changed

+61
-42
lines changed

.github/workflows/release.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- name: Setup Python
2121
uses: actions/setup-python@v4
2222
with:
23-
python-version: 3.11
23+
python-version: 3.12
2424

2525
- name: Install dependencies
2626
run: |
@@ -45,7 +45,7 @@ jobs:
4545
- name: Setup Python
4646
uses: actions/setup-python@v4
4747
with:
48-
python-version: 3.11
48+
python-version: 3.12
4949

5050
- name: Install dependencies
5151
run: |
@@ -86,4 +86,4 @@ jobs:
8686
body: |
8787
Release for ${{ github.ref_name }}
8888
draft: false
89-
artifacts: dist/*
89+
artifacts: dist/*

.github/workflows/tests.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- name: Setup Python
1616
uses: actions/setup-python@v4
1717
with:
18-
python-version: 3.8
18+
python-version: 3.12
1919

2020
- name: Install dependencies
2121
run: |
@@ -31,7 +31,7 @@ jobs:
3131
strategy:
3232
max-parallel: 4
3333
matrix:
34-
python-version: ["3.8", "3.11"]
34+
python-version: ["3.8", "3.11", "3.12"]
3535
steps:
3636
- name: Checkout code
3737
uses: actions/checkout@v3

external_link/static/js/newtab.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ function createAndHandleLinkForm(editorState, entityKey, onComplete) {
147147
var urlPattern = new RegExp('^(https?:\\/\\/)?'+ // validate protocol
148148
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // validate domain name
149149
'((\\d{1,3}\\.){3}\\d{1,3}))'+ // validate OR ip (v4) address
150-
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // validate port and path
150+
'(\\:\\d+)?(\\/[-a-z\\d%_.@~+]*)*'+ // validate port and path
151151
'(\\?[;&a-z\\d%_.~+=-]*)?'+ // validate query string
152152
'(\\#[-a-z\\d_]*)?$','i'); // validate fragment locator
153153
return !!urlPattern.test(urlString);

pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ exclude = ["sandbox*", "docs*", "tests*"]
1111

1212
[project]
1313
name = "wagtail-external-link-richtext"
14-
version = "1.1.3"
14+
version = "1.1.4"
1515
description = "A feature for the richtext fields in Wagtail"
1616
readme = "README.md"
1717
authors = [{name = "Ruben Hesselink", email = "[email protected]" }]
@@ -26,7 +26,8 @@ classifiers = [
2626
"Programming Language :: Python :: 3.8",
2727
"Programming Language :: Python :: 3.9",
2828
"Programming Language :: Python :: 3.10",
29-
"Programming Language :: Python :: 3.11"
29+
"Programming Language :: Python :: 3.11",
30+
"Programming Language :: Python :: 3.12"
3031
]
3132
keywords = ["richtext", "external", "link", "wagtail", "newtab", "django"]
3233
dependencies = [
@@ -51,4 +52,4 @@ src_paths = ["test_project", "sandbox", "external_link"]
5152

5253
[tool.pytest.ini_options]
5354
DJANGO_SETTINGS_MODULE = "test_project.settings.dev"
54-
python_files = ["tests.py", "*_test.py", "testing/python/*.py"]
55+
python_files = ["tests.py", "*_test.py", "testing/python/*.py"]

sandbox/example_project/settings/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,4 +169,4 @@
169169
# Add external link to richtext features
170170
RICHTEXT_FEATURES = [
171171
"new_tab_link",
172-
]
172+
]

sandbox/example_project/urls.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
from django.conf import settings
2-
from django.urls import include, path
32
from django.contrib import admin
4-
5-
from wagtail.admin import urls as wagtailadmin_urls
3+
from django.urls import include, path
64
from wagtail import urls as wagtail_urls
5+
from wagtail.admin import urls as wagtailadmin_urls
76
from wagtail.documents import urls as wagtaildocs_urls
87

98
urlpatterns = [
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# Generated by Django 3.2.20 on 2023-07-05 10:55
22

3-
from django.db import migrations
43
import wagtail.fields
4+
from django.db import migrations
55

66

77
class Migration(migrations.Migration):
88

99
dependencies = [
10-
('home', '0001_initial'),
10+
("home", "0001_initial"),
1111
]
1212

1313
operations = [
1414
migrations.AddField(
15-
model_name='homepage',
16-
name='body',
17-
field=wagtail.fields.RichTextField(default='Test'),
15+
model_name="homepage",
16+
name="body",
17+
field=wagtail.fields.RichTextField(default="Test"),
1818
preserve_default=False,
1919
),
2020
]

sandbox/home/models.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
from django.db import models
2-
3-
from wagtail.models import Page
4-
from wagtail.fields import RichTextField
52
from wagtail.admin.panels import FieldPanel
3+
from wagtail.fields import RichTextField
4+
from wagtail.models import Page
65

76

87
class HomePage(Page):
98
body = RichTextField()
10-
content_panels = Page.content_panels + [
11-
FieldPanel("body")
12-
]
9+
content_panels = Page.content_panels + [FieldPanel("body")]

sandbox/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
Django>=4.0,<4.1
22
wagtail>=3.0,<3.1
3-
wagtail-external-link-richtext
3+
wagtail-external-link-richtext
Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,38 @@
11
# Generated by Django 4.0.10 on 2023-07-06 07:05
22

3-
from django.db import migrations, models
43
import django.db.models.deletion
54
import wagtail.fields
5+
from django.db import migrations, models
66

77

88
class Migration(migrations.Migration):
99

1010
initial = True
1111

1212
dependencies = [
13-
('wagtailcore', '0069_log_entry_jsonfield'),
13+
("wagtailcore", "0069_log_entry_jsonfield"),
1414
]
1515

1616
operations = [
1717
migrations.CreateModel(
18-
name='TestPage',
18+
name="TestPage",
1919
fields=[
20-
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
21-
('body', wagtail.fields.RichTextField()),
20+
(
21+
"page_ptr",
22+
models.OneToOneField(
23+
auto_created=True,
24+
on_delete=django.db.models.deletion.CASCADE,
25+
parent_link=True,
26+
primary_key=True,
27+
serialize=False,
28+
to="wagtailcore.page",
29+
),
30+
),
31+
("body", wagtail.fields.RichTextField()),
2232
],
2333
options={
24-
'abstract': False,
34+
"abstract": False,
2535
},
26-
bases=('wagtailcore.page',),
36+
bases=("wagtailcore.page",),
2737
),
2838
]

0 commit comments

Comments
 (0)