Skip to content

Commit 48dd6a9

Browse files
jmooringbep
authored andcommitted
parser/pageparser: Fix Org Mode summary delimiter assignment
Closes #13152
1 parent 744b856 commit 48dd6a9

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

parser/pageparser/pagelexer_intro.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,14 @@ func lexFrontMatterOrgMode(l *pageLexer) stateFunc {
9191
#+DESCRIPTION: Just another golang parser for org content!
9292
*/
9393

94-
l.summaryDivider = summaryDividerOrg
95-
9694
l.backup()
9795

9896
if !l.hasPrefix(delimOrg) {
9997
return lexMainSection
10098
}
10199

100+
l.summaryDivider = summaryDividerOrg
101+
102102
// Read lines until we no longer see a #+ prefix
103103
LOOP:
104104
for {
+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright 2024 The Hugo Authors. All rights reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
// http://www.apache.org/licenses/LICENSE-2.0
7+
//
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
14+
package pageparser
15+
16+
import (
17+
"testing"
18+
19+
qt "github.com/frankban/quicktest"
20+
)
21+
22+
func Test_lexIntroSection(t *testing.T) {
23+
t.Parallel()
24+
c := qt.New(t)
25+
for i, tt := range []struct {
26+
input string
27+
expectItemType ItemType
28+
expectSummaryDivider []byte
29+
}{
30+
{"{\"title\": \"JSON\"}\n", TypeFrontMatterJSON, summaryDivider},
31+
{"#+TITLE: ORG\n", TypeFrontMatterORG, summaryDividerOrg},
32+
{"+++\ntitle = \"TOML\"\n+++\n", TypeFrontMatterTOML, summaryDivider},
33+
{"---\ntitle: YAML\n---\n", TypeFrontMatterYAML, summaryDivider},
34+
// Issue 13152
35+
{"# ATX Header Level 1\n", tText, summaryDivider},
36+
} {
37+
errMsg := qt.Commentf("[%d] %v", i, tt.input)
38+
39+
l := newPageLexer([]byte(tt.input), lexIntroSection, Config{})
40+
l.run()
41+
42+
c.Assert(l.items[0].Type, qt.Equals, tt.expectItemType, errMsg)
43+
c.Assert(l.summaryDivider, qt.DeepEquals, tt.expectSummaryDivider, errMsg)
44+
45+
}
46+
}

0 commit comments

Comments
 (0)