Skip to content

Commit a9e36c6

Browse files
authored
Merge branch 'main' into fix-erb-trimming
2 parents c0addc9 + 966e3ca commit a9e36c6

File tree

396 files changed

+22906
-825
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

396 files changed

+22906
-825
lines changed

.clang-format-ignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ src/errors.c
88
src/include/ast_nodes.h
99
src/include/ast_pretty_print.h
1010
src/include/errors.h
11+
src/include/util/hb_foreach.h
1112
src/parser_match_tags.c
1213
src/visitor.c

.rubocop.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ Metrics/CyclomaticComplexity:
5858
- lib/herb/ast/nodes.rb
5959
- lib/herb/cli.rb
6060
- lib/herb/engine.rb
61+
- lib/herb/prism_inspect.rb
6162
- lib/herb/engine/**/*.rb
63+
- templates/template.rb
6264

6365
Metrics/MethodLength:
6466
Max: 20
@@ -68,6 +70,7 @@ Metrics/MethodLength:
6870
- lib/herb/project.rb
6971
- lib/herb/engine.rb
7072
- lib/herb/engine/**/*.rb
73+
- lib/herb/prism_inspect.rb
7174
- templates/template.rb
7275
- test/fork_helper.rb
7376
- test/snapshot_utils.rb
@@ -83,6 +86,7 @@ Metrics/AbcSize:
8386
- lib/herb/engine.rb
8487
- lib/herb/engine/**/*.rb
8588
- lib/herb/token.rb
89+
- lib/herb/prism_inspect.rb
8690
- templates/template.rb
8791
- test/fork_helper.rb
8892
- test/snapshot_utils.rb
@@ -98,6 +102,7 @@ Metrics/ClassLength:
98102
- lib/herb/engine/**/*.rb
99103
- lib/herb/project.rb
100104
- lib/herb/visitor.rb
105+
- lib/herb/ast/nodes.rb
101106
- test/**/*_test.rb
102107

103108
Metrics/ModuleLength:
@@ -121,14 +126,17 @@ Metrics/ParameterLists:
121126
Exclude:
122127
- lib/herb/ast/node.rb
123128
- lib/herb/ast/nodes.rb
124-
- lib/herb/errors.rb
125129
- lib/herb/engine/validators/security_validator.rb
130+
- lib/herb/errors.rb
131+
- lib/herb/parser_options.rb
132+
- lib/herb/prism_inspect.rb
126133

127134
Metrics/PerceivedComplexity:
128135
Exclude:
129136
- lib/herb/ast/nodes.rb
130137
- lib/herb/cli.rb
131138
- lib/herb/project.rb
139+
- lib/herb/prism_inspect.rb
132140
- lib/herb/engine.rb
133141
- lib/herb/engine/**/*.rb
134142
- templates/template.rb

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
exec = herb
22
test_exec = run_herb_tests
33

4-
sources = $(wildcard src/*.c) $(wildcard src/**/*.c)
5-
headers = $(wildcard src/*.h) $(wildcard src/**/*.h)
4+
sources = $(shell find src -name '*.c')
5+
headers = $(shell find src -name '*.h')
66
objects = $(sources:.c=.o)
77

88
extension_sources = $(wildcard ext/**/*.c)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<h2 align="center">Herb</h2>
66

7-
<h4 align="center">The HTML+ERB Toolchain</h4>
7+
<h4 align="center">The modern HTML+ERB Toolchain</h4>
88

99
<div align="center">An ecosystem of powerful and seamless developer tools for HTML+ERB (HTML + Embedded Ruby) templates.</div><br/>
1010

config.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,12 @@ nodes:
369369
type: array
370370
kind: Node
371371
372+
- name: prism_context
373+
type: prism_context
374+
375+
- name: prism_node
376+
type: prism_node
377+
372378
- name: LiteralNode
373379
fields:
374380
- name: content
@@ -426,13 +432,19 @@ nodes:
426432
- name: tag_name
427433
type: token
428434
435+
- name: HTMLVirtualCloseTagNode
436+
fields:
437+
- name: tag_name
438+
type: token
439+
429440
- name: HTMLElementNode
430441
fields:
431442
- name: open_tag
432443
type: node
433444
kind:
434445
- HTMLOpenTagNode
435446
- HTMLConditionalOpenTagNode
447+
- ERBOpenTagNode
436448
437449
- name: tag_name
438450
type: token
@@ -446,6 +458,8 @@ nodes:
446458
kind:
447459
- HTMLCloseTagNode
448460
- HTMLOmittedCloseTagNode
461+
- HTMLVirtualCloseTagNode
462+
- ERBEndNode
449463
450464
- name: is_void
451465
type: boolean
@@ -526,6 +540,37 @@ nodes:
526540
type: node
527541
kind: HTMLAttributeValueNode
528542
543+
- name: RubyLiteralNode
544+
fields:
545+
- name: content
546+
type: string
547+
548+
- name: RubyHTMLAttributesSplatNode
549+
fields:
550+
- name: content
551+
type: string
552+
553+
- name: prefix
554+
type: string
555+
556+
- name: ERBOpenTagNode
557+
fields:
558+
- name: tag_opening
559+
type: token
560+
561+
- name: content
562+
type: token
563+
564+
- name: tag_closing
565+
type: token
566+
567+
- name: tag_name
568+
type: token
569+
570+
- name: children
571+
type: array
572+
kind: Node
573+
529574
- name: HTMLTextNode
530575
fields:
531576
- name: content
@@ -604,6 +649,9 @@ nodes:
604649
- name: valid
605650
type: boolean
606651
652+
- name: prism_node
653+
type: prism_node
654+
607655
- name: ERBEndNode
608656
fields:
609657
- name: tag_opening
@@ -647,6 +695,9 @@ nodes:
647695
# - name: predicate
648696
# type: prism_node
649697
698+
- name: prism_node
699+
type: prism_node
700+
650701
- name: statements
651702
type: array
652703
kind: Node
@@ -678,6 +729,9 @@ nodes:
678729
# - name: opener
679730
# type: prism_node
680731
732+
- name: prism_node
733+
type: prism_node
734+
681735
- name: body
682736
type: array
683737
kind: Node
@@ -726,6 +780,9 @@ nodes:
726780
# - name: predicate
727781
# type: prism_node
728782
783+
- name: prism_node
784+
type: prism_node
785+
729786
- name: conditions
730787
type: array
731788
kind: ERBWhenNode
@@ -756,6 +813,9 @@ nodes:
756813
# - name: predicate
757814
# type: prism_node
758815
816+
- name: prism_node
817+
type: prism_node
818+
759819
- name: conditions
760820
type: array
761821
kind: ERBInNode
@@ -782,6 +842,9 @@ nodes:
782842
# - name: predicate
783843
# type: prism_node
784844
845+
- name: prism_node
846+
type: prism_node
847+
785848
- name: statements
786849
type: array
787850
kind: Node
@@ -804,6 +867,9 @@ nodes:
804867
# - name: predicate
805868
# type: prism_node
806869
870+
- name: prism_node
871+
type: prism_node
872+
807873
- name: statements
808874
type: array
809875
kind: Node
@@ -829,6 +895,9 @@ nodes:
829895
# - name: collection
830896
# type: prism_node
831897
898+
- name: prism_node
899+
type: prism_node
900+
832901
- name: statements
833902
type: array
834903
kind: Node
@@ -889,6 +958,9 @@ nodes:
889958
- name: tag_closing
890959
type: token
891960
961+
- name: prism_node
962+
type: prism_node
963+
892964
- name: statements
893965
type: array
894966
kind: Node
@@ -926,6 +998,9 @@ nodes:
926998
# - name: predicate
927999
# type: prism_node
9281000
1001+
- name: prism_node
1002+
type: prism_node
1003+
9291004
- name: statements
9301005
type: array
9311006
kind: Node

docs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ dist/
22
cache/
33
docs/public/assets
44
docs/public/playground-embed.html
5+
docs/public/playground-prism-embed.html
56
.vitepress/data/contributors.json

docs/.vitepress/config/theme.mts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,13 @@ export function createThemeConfig() {
134134
{ text: "Home", link: "/" },
135135
{ text: "Blog", link: "/blog/whats-new-in-herb-v0-8" },
136136
{ text: "Documentation", link: "/overview" },
137-
{ text: "Playground", link: "/playground" },
137+
{
138+
text: "Playground",
139+
items: [
140+
{ text: "Herb Playground", link: "/playground/" },
141+
{ text: "Prism Playground", link: "/playground/prism" },
142+
],
143+
},
138144
],
139145
outline: [2, 4],
140146
search: {

docs/docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# https://vitepress.dev/reference/default-theme-home-page
33
layout: home
44

5-
title: "Herb - The HTML+ERB Toolchain"
5+
title: "Herb - The modern HTML+ERB Toolchain"
66

77
hero:
88
name: "Herb"
9-
text: "The HTML+ERB Toolchain"
9+
text: "The modern HTML+ERB Toolchain"
1010
tagline: "An ecosystem of powerful and seamless developer tools for HTML+ERB templates."
1111

1212
image:
File renamed without changes.

docs/docs/playground/prism.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Prism Playground
3+
layout: page
4+
sidebar: false
5+
footer: false
6+
---
7+
8+
<iframe src="/playground-prism-embed.html" style="width: 100%; height: calc(100vh - var(--vp-nav-height)); border: 0px;"></iframe>

0 commit comments

Comments
 (0)