|
|
@@ -4,14 +4,25 @@ export default class HeaderConfigurer {
|
|
|
this.crowi = crowi;
|
|
|
|
|
|
this.injectRevisionHeadClass = this.injectRevisionHeadClass.bind(this);
|
|
|
- this.combineRules = this.combineRules.bind(this);
|
|
|
}
|
|
|
|
|
|
configure(md) {
|
|
|
const rules = md.renderer.rules;
|
|
|
- const headingOpenOrg = rules.heading_open;
|
|
|
+ const original = rules.heading_open;
|
|
|
// combine rule and set
|
|
|
- rules.heading_open = this.combineRules(this.injectRevisionHeadClass, headingOpenOrg);
|
|
|
+ // rules.heading_open = this.combineRules(this.injectRevisionHeadClass, headingOpenOrg);
|
|
|
+ rules.heading_open = (tokens, idx, options, env, self) => {
|
|
|
+ const token = tokens[idx];
|
|
|
+
|
|
|
+ // Inject 'revision-head' class
|
|
|
+ this.injectRevisionHeadClass(tokens, idx, options, env, self);
|
|
|
+
|
|
|
+ if (original) {
|
|
|
+ return original(tokens, idx, options, env, self);
|
|
|
+ } else {
|
|
|
+ return self.renderToken(tokens, idx, options, env, self);
|
|
|
+ }
|
|
|
+ };
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -21,18 +32,5 @@ export default class HeaderConfigurer {
|
|
|
if (tokens[idx].map && tokens[idx].level === 0) {
|
|
|
tokens[idx].attrJoin('class', 'revision-head');
|
|
|
}
|
|
|
- return slf.renderToken(tokens, idx, options, env, slf);
|
|
|
- }
|
|
|
-
|
|
|
- combineRules(rule1, rule2) {
|
|
|
- return (tokens, idx, options, env, slf) => {
|
|
|
- if (rule1 != null) {
|
|
|
- rule1(tokens, idx, options, env, slf);
|
|
|
- }
|
|
|
- if (rule2 != null) {
|
|
|
- rule2(tokens, idx, options, env, slf);
|
|
|
- }
|
|
|
- return slf.renderToken(tokens, idx, options, env, slf);
|
|
|
- }
|
|
|
}
|
|
|
}
|