simplify tikzexternalize checks
This commit is contained in:
@@ -62,10 +62,12 @@ module.exports = CompileManager =
|
||||
callback()
|
||||
|
||||
createTikzFileIfRequired = (callback) ->
|
||||
if TikzManager.needsOutputFile(request.rootResourcePath, resourceList)
|
||||
TikzManager.injectOutputFile compileDir, request.rootResourcePath, callback
|
||||
else
|
||||
callback()
|
||||
TikzManager.checkMainFile compileDir, request.rootResourcePath, resourceList, (error, usesTikzExternalize) ->
|
||||
return callback(error) if error?
|
||||
if usesTikzExternalize
|
||||
TikzManager.injectOutputFile compileDir, request.rootResourcePath, callback
|
||||
else
|
||||
callback()
|
||||
|
||||
# set up environment variables for chktex
|
||||
env = {}
|
||||
|
||||
@@ -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) ->
|
||||
|
||||
Reference in New Issue
Block a user