Skip to content

Commit a0a4b05

Browse files
committed
Release v0.3.6
1 parent f5425d9 commit a0a4b05

8 files changed

Lines changed: 30 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
## Unreleased
66

7+
## v0.3.6
8+
9+
* Arrange generated Geometry Nodes and shader trees with NodeBpy's Sugiyama layout.
10+
* Bundle NetworkX so automatic node arrangement works in installed extensions.
11+
* Refine the Typst input panel with a collapsible custom-header editor and a simpler import order.
12+
713
* Restore Grease Pencil import using Blender 5.2's native Curve conversion API.
814
* Preserve glyph holes with the current `fill_id` and `hide_stroke` drawing attributes.
915
* Add a shared Geometry Nodes modifier with an editable Grease Pencil stroke radius.

build.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,14 @@
2323
WHL_PATH = ADDON_DIR / "wheels"
2424

2525
# Instead of reading from pyproject.toml, define the required packages here:
26-
required_packages = ["typst", "databpy", "svg.path", "lxml", "nodebpy==520.5.2"]
26+
required_packages = [
27+
"typst",
28+
"databpy",
29+
"svg.path",
30+
"lxml",
31+
"nodebpy==520.5.2",
32+
"networkx==3.6.1",
33+
]
2734

2835
def run_python(args: str | List[str]):
2936
python = os.path.realpath(sys.executable)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.0.1" # Placeholder; the real version is defined in blender_manifes
44
description = "Blender extension to render Typst files"
55
license = { text = "AGPL-3.0-or-later" }
66
readme = "README.md"
7-
dependencies = ["typst", "svg.path", "lxml", "databpy", "nodebpy==520.5.2"]
7+
dependencies = ["typst", "svg.path", "lxml", "databpy", "nodebpy==520.5.2", "networkx==3.6.1"]
88
requires-python = ">=3.13.0"
99
keywords = ["blender", "python", "typst"]
1010
maintainers = [

tests/test_core_workflows_blender52.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ def test_follow_path_uses_typed_object_and_factor_inputs():
7878
modifier.node_group = create_follow_curve_node_group()
7979
configure_follow_path_animation(follower, modifier, path, current_frame=3)
8080

81+
follow_path_nodes = modifier.node_group.nodes
82+
assert follow_path_nodes["Object Info"].location.x < follow_path_nodes[
83+
"Sample Curve"
84+
].location.x
85+
assert follow_path_nodes["Sample Curve"].location.x < follow_path_nodes[
86+
"Transform Geometry"
87+
].location.x
88+
8189
object_input, _ = modifier_input(modifier, "Object")
8290
factor_input, factor_socket = modifier_input(modifier, "Factor")
8391
assert object_input.type == "VALUE"

typst_importer/blender_manifest.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
schema_version = "1.0.0"
22

33
id = "typst_importer"
4-
version = "0.3.5"
4+
version = "0.3.6"
55
name = "Typst Importer"
66
tagline = "Render mathematical equations and code blocks"
77
maintainer = "Jan-Hendrik Müller<jan-hendrik.mueller@uni-goettingen.de>"
@@ -28,6 +28,7 @@ copyright = [
2828
wheels = [
2929
"./wheels/databpy-0.7.0-py3-none-any.whl",
3030
"./wheels/nodebpy-520.5.2-py3-none-any.whl",
31+
"./wheels/networkx-3.6.1-py3-none-any.whl",
3132
"./wheels/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl",
3233
"./wheels/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
3334
"./wheels/lxml-6.0.2-cp313-cp313-win_amd64.whl",

typst_importer/node_groups.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def create_grease_pencil_stroke_radius_node_group():
5959
):
6060
return existing
6161

62-
with g.tree(GREASE_PENCIL_STROKE_NODE_GROUP, arrange=None) as tree:
62+
with g.tree(GREASE_PENCIL_STROKE_NODE_GROUP, arrange="sugiyama") as tree:
6363
node_group = tree.tree
6464
node_group.is_modifier = True
6565
node_group.description = (
@@ -122,7 +122,7 @@ def add_grease_pencil_stroke_radius_modifier(
122122

123123
def create_follow_curve_node_group():
124124
"""Create a Geometry Nodes group that makes an object follow a curve."""
125-
with g.tree("Follow Path", arrange=None) as tree:
125+
with g.tree("Follow Path", arrange="sugiyama") as tree:
126126
follow_path = tree.tree
127127
follow_path.color_tag = "NONE"
128128
follow_path.description = ""
@@ -163,7 +163,7 @@ def create_follow_curve_node_group():
163163

164164
def visibility_node_group():
165165
"""Create a Geometry Nodes group that controls object visibility."""
166-
with g.tree("Visibility", arrange=None) as tree:
166+
with g.tree("Visibility", arrange="sugiyama") as tree:
167167
visibility = tree.tree
168168
visibility.color_tag = "NONE"
169169
visibility.description = ""

typst_importer/typst_to_svg.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def create_material(color, name: str = "") -> bpy.types.Material:
7474
mat.blend_method = "BLEND"
7575

7676
mat.node_tree.nodes.clear()
77-
with s.tree(mat.node_tree, arrange=None) as tree:
77+
with s.tree(mat.node_tree, arrange="sugiyama") as tree:
7878
opacity = s.Attribute.object("opacity")
7979
mixed = s.MixShader(
8080
fac=opacity.o.fac,
@@ -439,7 +439,7 @@ def add_indices_to_collection(imported_collection):
439439
# Set up material for transparency
440440
bg_mat.use_nodes = True
441441
bg_mat.node_tree.nodes.clear()
442-
with s.tree(bg_mat.node_tree, arrange=None) as tree:
442+
with s.tree(bg_mat.node_tree, arrange="sugiyama") as tree:
443443
principled = s.PrincipledBSDF(
444444
base_color=(1.0, 1.0, 1.0, 1.0), alpha=0.2
445445
)
1.97 MB
Binary file not shown.

0 commit comments

Comments
 (0)