render()

in website/core/Tutorial.js [48:130]


  render() {
    const {baseUrl, tutorialDir, tutorialID, totalExecTime} = this.props;

    let htmlFile = null;
    let pyFile = null;
    let ipynbFile = null;
    let directoryDownloadButton = null;
    let totalExecTimeText = null;

    if (tutorialDir != null && tutorialDir !== '') {
      htmlFile = `${CWD}/_tutorials/${tutorialDir}/${tutorialID}.html`;
      ipynbFile = `${baseUrl}files/${tutorialDir}/${tutorialID}.ipynb`;
      pyFile = `${baseUrl}files/${tutorialDir}/${tutorialID}.py`;
      directoryDownloadButton = (
        <div className="tutorialButtonWrapper buttonWrapper">
          <a
            className="tutorialButton button"
            download
            href={`${baseUrl}files/${tutorialDir}/${tutorialID}.tar.gz`}
            target="_blank">
            {renderDownloadIcon()}
            {'Download Tutorial Archive (.tar.gz): Notebook, Source and Data'}
          </a>
        </div>
      );
    } else {
      htmlFile = `${CWD}/_tutorials/${tutorialID}.html`;
      ipynbFile = `${baseUrl}files/${tutorialID}.ipynb`;
      pyFile = `${baseUrl}files/${tutorialDir}/${tutorialID}.py`;
    }
    const normalizedHtmlFile = path.normalize(htmlFile);

    if (totalExecTime != null) {
      const minsAndSecs = timeToMinAndSec(totalExecTime);
      const timeText =
        'Total runtime of script: ' +
        (minsAndSecs['mins'] === 0
          ? `${minsAndSecs['secs']} seconds.`
          : `${minsAndSecs['mins']} minutes, ${minsAndSecs['secs']} seconds.`);

      totalExecTimeText = (
        <div className="tutorialRuntime">
          <p>{timeText}</p>
        </div>
      );
    }

    return (
      <div className="docMainWrapper wrapper">
        <TutorialSidebar currentTutorialID={tutorialID} />
        <Container className="mainContainer">
          <div
            className="tutorialBody"
            dangerouslySetInnerHTML={{
              __html: fs.readFileSync(normalizedHtmlFile, {encoding: 'utf8'}),
            }}
          />
          {directoryDownloadButton}
          <div className="tutorialButtonWrapper buttonWrapper">
            <a
              className="tutorialButton button"
              download
              href={ipynbFile}
              target="_blank">
              {renderDownloadIcon()}
              {'Download Tutorial Jupyter Notebook'}
            </a>
          </div>
          <div className="tutorialButtonWrapper buttonWrapper">
            <a
              className="tutorialButton button"
              download
              href={pyFile}
              target="_blank">
              {renderDownloadIcon()}
              {'Download Tutorial Source Code'}
            </a>
          </div>
          {totalExecTimeText}
        </Container>
      </div>
    );
  }