Преглед на файлове

automatic header insertion

Shun Miyazawa преди 4 години
родител
ревизия
13ee499935
променени са 1 файла, в които са добавени 11 реда и са изтрити 2 реда
  1. 11 2
      packages/app/src/components/PageEditor.jsx

+ 11 - 2
packages/app/src/components/PageEditor.jsx

@@ -1,9 +1,10 @@
 import React from 'react';
 import React from 'react';
+import nodePath from 'path';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import detectIndent from 'detect-indent';
 import detectIndent from 'detect-indent';
 
 
 import { throttle, debounce } from 'throttle-debounce';
 import { throttle, debounce } from 'throttle-debounce';
-import { envUtils } from '@growi/core';
+import { envUtils, pathUtils } from '@growi/core';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import AppContainer from '~/client/services/AppContainer';
 import AppContainer from '~/client/services/AppContainer';
@@ -324,16 +325,24 @@ class PageEditor extends React.Component {
       return null;
       return null;
     }
     }
 
 
+    const { pageContainer } = this.props;
+    const { path, revisionId } = pageContainer.state;
     const config = this.props.appContainer.getConfig();
     const config = this.props.appContainer.getConfig();
     const noCdn = envUtils.toBoolean(config.env.NO_CDN);
     const noCdn = envUtils.toBoolean(config.env.NO_CDN);
     const emojiStrategy = this.props.appContainer.getEmojiStrategy();
     const emojiStrategy = this.props.appContainer.getEmojiStrategy();
+    const isEnabledAttachTitleHeader = config.isEnabledAttachTitleHeader;
+
+    let initValueForEditor = this.state.markdown;
+    if (revisionId == null && isEnabledAttachTitleHeader) {
+      initValueForEditor = pathUtils.attachTitleHeader(nodePath.basename(path));
+    }
 
 
     return (
     return (
       <div className="d-flex flex-wrap">
       <div className="d-flex flex-wrap">
         <div className="page-editor-editor-container flex-grow-1 flex-basis-0 mw-0">
         <div className="page-editor-editor-container flex-grow-1 flex-basis-0 mw-0">
           <Editor
           <Editor
             ref={(c) => { this.editor = c }}
             ref={(c) => { this.editor = c }}
-            value={this.state.markdown}
+            value={initValueForEditor}
             noCdn={noCdn}
             noCdn={noCdn}
             isMobile={this.props.appContainer.isMobile}
             isMobile={this.props.appContainer.isMobile}
             isUploadable={this.state.isUploadable}
             isUploadable={this.state.isUploadable}