simplify tikzexternalize checks

This commit is contained in:
Brian Gough
2017-09-29 17:00:53 +01:00
parent d1aa1d84fb
commit 1da918e13c
4 changed files with 70 additions and 42 deletions

View File

@@ -1,6 +1,7 @@
fs = require "fs"
Path = require "path"
ResourceWriter = require "./ResourceWriter"
SafeReader = require "./SafeReader"
logger = require "logger-sharelatex"
# for \tikzexternalize to work the main file needs to match the
@@ -8,25 +9,21 @@ logger = require "logger-sharelatex"
# copy of the main file as 'output.tex'.
module.exports = TikzManager =
needsOutputFile: (rootResourcePath, resources) ->
checkMainFile: (compileDir, mainFile, resources, callback = (error, usesTikzExternalize) ->) ->
# if there's already an output.tex file, we don't want to touch it
for resource in resources
if resource.path is "output.tex"
return false
logger.log compileDir: compileDir, mainFile: mainFile, "output.tex already in resources"
return callback(null, false)
# if there's no output.tex, see if we are using tikz/pgf in the main file
for resource in resources
if resource.path is rootResourcePath
return TikzManager._includesTikz (resource)
# otherwise false
return false
_includesTikz: (resource) ->
# check if we are using tikz externalize
content = resource.content?.slice(0,65536)
if content?.indexOf("\\tikzexternalize") >= 0
return true
else
return false
ResourceWriter.checkPath compileDir, mainFile, (error, path) ->
return callback(error) if error?
SafeReader.readFile path, 65536, "utf8", (error, content) ->
return callback(error) if error?
usesTikzExternalize = content?.indexOf("\\tikzexternalize") >= 0
logger.log compileDir: compileDir, mainFile: mainFile, usesTikzExternalize:usesTikzExternalize, "checked for tikzexternalize"
callback null, usesTikzExternalize
injectOutputFile: (compileDir, mainFile, callback = (error) ->) ->
ResourceWriter.checkPath compileDir, mainFile, (error, path) ->