Skip to content

Commit 7477fe8

Browse files
committed
feat: rework max_size and cache.size config options usage, fix styles
1 parent 6b8e6cc commit 7477fe8

File tree

17 files changed

+84
-169
lines changed

17 files changed

+84
-169
lines changed

ckanext/pygments/assets/css/pygments.css

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@
1818
display: flex;
1919
}
2020

21-
body.pygments-request-pending {
22-
opacity: 0.7;
23-
24-
}
25-
2621
.ckanext-datapreview .pgh {
2722
max-height: 700px;
2823
overflow: auto;
@@ -39,9 +34,7 @@ body.pygments-request-pending {
3934

4035
.pgh pre {
4136
font-size: 1em;
42-
line-height: 1.4;
43-
}
44-
45-
.pgh .linenos a {
46-
color: inherit !important;
37+
line-height: 1.3;
38+
margin: 0;
39+
padding: 0.5rem;
4740
}

ckanext/pygments/assets/js/pygment-global.js

Lines changed: 0 additions & 19 deletions
This file was deleted.

ckanext/pygments/assets/webassets.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
pygments-js:
2-
filter: rjsmin
3-
output: ckanext-pygments/%(version)s-pygments.js
4-
contents:
5-
- js/pygment-global.js
6-
extra:
7-
preload:
8-
- base/main
9-
101
pygments-js-htmx:
112
filter: rjsmin
123
output: ckanext-pygments/%(version)s-pygments-htmx.js

ckanext/pygments/config.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,24 @@
33

44
CONF_SUPPORTED_FORMATS = "ckanext.pygments.supported_formats"
55

6-
CONF_MAX_SIZE = "ckanext.pygments.max_size"
76
CONF_ENABLE_HTMX = "ckanext.pygments.include_htmx_asset"
8-
CONF_DEFAULT_THEME = "ckanext.pygments.default_theme"
9-
CONF_GUESS_LEXER = "ckanext.pygments.guess_lexer"
107

8+
CONF_GUESS_LEXER = "ckanext.pygments.guess_lexer"
119
CONF_ENABLE_CACHE = "ckanext.pygments.cache.enable"
12-
CONF_RES_CACHE_MAX_SIZE = "ckanext.pygments.cache.preview_max_size"
10+
CONF_RES_CACHE_MAX_SIZE = "ckanext.pygments.cache.max_size"
1311
CONF_CACHE_TTL = "ckanext.pygments.cache.ttl"
1412

1513
CONF_DEFAULT_VIEW_NAME = "ckanext.pygments.default.view_name"
1614
CONF_DEFAULT_DESCRIPTION = "ckanext.pygments.default.description"
1715
CONF_DEFAULT_SHOW_LINE_NUMBERS = "ckanext.pygments.default.show_line_numbers"
16+
CONF_DEFAULT_MAX_SIZE = "ckanext.pygments.default.max_size"
17+
CONF_DEFAULT_THEME = "ckanext.pygments.default.theme"
1818

1919

2020
def is_format_supported(fmt: str) -> bool:
2121
return fmt in [fmt.strip().lower() for fmt in tk.config[CONF_SUPPORTED_FORMATS].split(",")]
2222

2323

24-
def bytes_to_render() -> int:
25-
"""Check how many bytes from file we are going to render as preview"""
26-
return tk.config[CONF_MAX_SIZE]
27-
28-
2924
def include_htmx_asset() -> bool:
3025
"""Include HTMX library asset. Enable it, if no other library do it."""
3126
return tk.asbool(tk.config[CONF_ENABLE_HTMX])
@@ -69,3 +64,8 @@ def get_default_description() -> str:
6964
def get_default_show_line_numbers() -> bool:
7065
"""Get the default setting for showing line numbers."""
7166
return tk.asbool(tk.config[CONF_DEFAULT_SHOW_LINE_NUMBERS])
67+
68+
69+
def get_default_max_size() -> int:
70+
"""Get the default max size for preview rendering."""
71+
return tk.config[CONF_DEFAULT_MAX_SIZE]

ckanext/pygments/config_declaration.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,12 @@ groups:
77
default: sql, html, xhtml, htm, xslt, py, pyw, pyi, jy, sage, sc, rs, rs.in, rst, rest, md, markdown, xml, xsl, rss, xslt, xsd, wsdl, wsf, json, jsonld, yaml, yml, dtd, php, inc, rdf, ttl, js, txt
88
editable: true
99

10-
- key: ckanext.pygments.max_size
11-
type: int
12-
description: Specify how many bytes we are going to render from file. Default to 1MB
13-
default: 1048576
14-
editable: true
15-
1610
- key: ckanext.pygments.include_htmx_asset
1711
description: Include HTMX asset
1812
default: true
1913
type: bool
2014
editable: true
2115

22-
- key: ckanext.pygments.default_theme
23-
description: Default theme for preview
24-
default: default
25-
editable: true
26-
2716
- key: ckanext.pygments.guess_lexer
2817
description: Try to guess the Lexer for a format
2918
default: true
@@ -38,7 +27,7 @@ groups:
3827
type: bool
3928
editable: true
4029

41-
- key: ckanext.pygments.cache.preview_max_size
30+
- key: ckanext.pygments.cache.max_size
4231
description: Specify what is the maximum size of a preview we are going to cache
4332
default: 20971520 # 20MB
4433
type: int
@@ -67,3 +56,14 @@ groups:
6756
default: false
6857
type: bool
6958
editable: true
59+
60+
- key: ckanext.pygments.default.max_size
61+
description: Default maximum file size to render in bytes
62+
default: 1048576 # 1MB
63+
type: int
64+
editable: true
65+
66+
- key: ckanext.pygments.default.theme
67+
description: Default theme for preview
68+
default: default
69+
editable: true

ckanext/pygments/config_schema.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ fields:
1515
required: 1
1616
data-module-load-url: "/api/action/pygments_formats_list"
1717

18-
- field_name: ckanext.pygments.max_size
19-
label: Max Size
20-
help_text: Specify how many bytes we are going to render from file. Default to 1MB
21-
input_type: number
22-
2318
- field_name: ckanext.pygments.include_htmx_asset
2419
label: Include HTMX Asset
2520
help_text: Include HTMX asset
@@ -31,7 +26,7 @@ fields:
3126
- value: false
3227
label: No
3328

34-
- field_name: ckanext.pygments.default_theme
29+
- field_name: ckanext.pygments.default.theme
3530
label: Default Theme
3631
help_text: Default theme for preview
3732
preset: select
@@ -60,8 +55,8 @@ fields:
6055
- value: false
6156
label: No
6257

63-
- field_name: ckanext.pygments.cache.preview_max_size
64-
label: Preview Max Size
58+
- field_name: ckanext.pygments.cache.max_size
59+
label: Cache Max Size
6560
help_text: Specify what is the maximum size of a preview we are going to cache. Default is 20MB
6661
input_type: number
6762

@@ -86,3 +81,8 @@ fields:
8681
label: Yes
8782
- value: false
8883
label: No
84+
85+
- field_name: ckanext.pygments.default.max_size
86+
label: Default Max Size
87+
help_text: Specify how many bytes we are going to render from file. Default to 1MB
88+
input_type: number

ckanext/pygments/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def pygments_get_preview_theme_options() -> list[dict[str, str]]:
1313

1414

1515
def pygments_get_default_max_size() -> int:
16-
return pygment_config.bytes_to_render()
16+
return pygment_config.get_default_max_size()
1717

1818

1919
def pygments_include_htmx_asset() -> bool:

ckanext/pygments/logic/schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def get_preview_schema(
1515
default,
1616
one_of,
1717
int_validator,
18-
pygment_max_size,
18+
is_positive_integer,
1919
boolean_validator,
2020
) -> types.Schema:
2121
return {
@@ -25,10 +25,10 @@ def get_preview_schema(
2525
unicode_safe,
2626
one_of(get_list_of_themes()),
2727
],
28-
"size": [
29-
default(pygment_config.bytes_to_render()),
28+
"max_size": [
29+
default(pygment_config.get_default_max_size()),
3030
int_validator,
31-
pygment_max_size,
31+
is_positive_integer,
3232
],
3333
"show_line_numbers": [
3434
default(pygment_config.get_default_show_line_numbers()),

ckanext/pygments/logic/validators.py

Lines changed: 0 additions & 19 deletions
This file was deleted.

ckanext/pygments/plugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515

1616
@tk.blanket.helpers
17-
@tk.blanket.validators
1817
@tk.blanket.config_declarations
1918
@tk.blanket.blueprints
2019
@tk.blanket.actions
@@ -56,6 +55,7 @@ def setup_template_variables(self, context: Context, data_dict: DataDict) -> Non
5655
data_dict["resource_view"].setdefault("title", pygment_config.get_default_view_name())
5756
data_dict["resource_view"].setdefault("description", pygment_config.get_default_description())
5857
data_dict["resource_view"].setdefault("show_line_numbers", pygment_config.get_default_show_line_numbers())
58+
data_dict["resource_view"].setdefault("max_size", pygment_config.get_default_max_size())
5959

6060
# IResourceController
6161

0 commit comments

Comments
 (0)