header.js 972 B

1234567891011121314151617181920212223242526272829303132333435
  1. export default class HeaderConfigurer {
  2. constructor(crowi) {
  3. this.crowi = crowi;
  4. this.injectRevisionHeadClass = this.injectRevisionHeadClass.bind(this);
  5. }
  6. configure(md) {
  7. const rules = md.renderer.rules;
  8. const original = rules.heading_open;
  9. // combine rule and set
  10. // rules.heading_open = this.combineRules(this.injectRevisionHeadClass, headingOpenOrg);
  11. rules.heading_open = (tokens, idx, options, env, self) => {
  12. // Inject 'revision-head' class
  13. this.injectRevisionHeadClass(tokens, idx, options, env, self);
  14. if (original) {
  15. return original(tokens, idx, options, env, self);
  16. }
  17. else {
  18. return self.renderToken(tokens, idx, options, env, self);
  19. }
  20. };
  21. }
  22. /**
  23. * Inject 'revision-head' class
  24. */
  25. injectRevisionHeadClass(tokens, idx, options, env, slf) {
  26. if (tokens[idx].map && tokens[idx].level === 0) {
  27. tokens[idx].attrJoin('class', 'revision-head');
  28. }
  29. }
  30. }