mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-23 17:29:54 +02:00
Changes to timeline.jison
1. Updated the regex for title, section, and event elements to allow hashtags. 2. Period elements remain unchanged. Changes to timeline.spec.js 1. Added test coverage to ensure that the title, section, and event elements allow hashtags without error.
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
\#[^\n]* /* skip comments */
|
||||
|
||||
"timeline" return 'timeline';
|
||||
"title"\s[^#\n;]+ return 'title';
|
||||
"title"\s[^\n;]+ return 'title';
|
||||
accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; }
|
||||
<acc_title>(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; }
|
||||
accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; }
|
||||
@@ -26,10 +26,10 @@ accDescr\s*":"\s* { this.begin("ac
|
||||
accDescr\s*"{"\s* { this.begin("acc_descr_multiline");}
|
||||
<acc_descr_multiline>[\}] { this.popState(); }
|
||||
<acc_descr_multiline>[^\}]* return "acc_descr_multiline_value";
|
||||
"section"\s[^#:\n;]+ return 'section';
|
||||
"section"\s[^:\n;]+ return 'section';
|
||||
|
||||
// event starting with "==>" keyword
|
||||
":"\s[^#:\n;]+ return 'event';
|
||||
":"\s[^:\n;]+ return 'event';
|
||||
[^#:\n;]+ return 'period';
|
||||
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import { parser as timeline } from './parser/timeline.jison';
|
||||
import * as timelineDB from './timelineDb.js';
|
||||
import * as commonDb from '../common/commonDb.js';
|
||||
import { setLogLevel } from '../../diagram-api/diagramAPI.js';
|
||||
|
||||
describe('when parsing a timeline ', function () {
|
||||
@@ -98,5 +99,20 @@ describe('when parsing a timeline ', function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
it('TL-6 should handle a title, section, task, and events with hashtags', function () {
|
||||
let str = `timeline
|
||||
title #my#title#
|
||||
section #a#bc-123#
|
||||
task1: #ev#ent1# : #ev#ent2# : #ev#ent3#
|
||||
`;
|
||||
timeline.parse(str);
|
||||
expect(commonDb.getDiagramTitle()).equal('#my#title#');
|
||||
expect(timelineDB.getSections()).to.deep.equal(['#a#bc-123#']);
|
||||
expect(timelineDB.getTasks()[0].task).equal('task1');
|
||||
expect(timelineDB.getTasks()[0].events[0]).equal('#ev#ent1# ');
|
||||
expect(timelineDB.getTasks()[0].events[1]).equal('#ev#ent2# ');
|
||||
expect(timelineDB.getTasks()[0].events[2]).equal('#ev#ent3#');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user