Просмотр исходного кода

check for \tikzexternalize directly

instead of \usepackage{tikz} and \usepackage{pgf}
Brian Gough 9 лет назад
Родитель
Сommit
dd35c5d88b

+ 3 - 5
services/clsi/app/coffee/TikzManager.coffee

@@ -21,11 +21,9 @@ module.exports = TikzManager =
 		return false
 
 	_includesTikz: (resource) ->
-		# check if we are loading tikz or pgf
-		content = resource.content.slice(0,4096)
-		if content.indexOf("\\usepackage{tikz") >= 0
-			return true
-		else if content.indexOf("\\usepackage{pgf") >= 0
+		# check if we are using tikz externalize
+		content = resource.content.slice(0,65536)
+		if content.indexOf("\\tikzexternalize") >= 0
 			return true
 		else
 			return false

+ 6 - 11
services/clsi/test/unit/coffee/TikzManager.coffee

@@ -11,28 +11,22 @@ describe 'TikzManager', ->
 			"logger-sharelatex": @logger = {log: () ->}
 
 	describe "needsOutputFile", ->
-		it "should return true if there is a usepackage{tikz}", ->
+		it "should return true if there is a \\tikzexternalize", ->
 			@TikzManager.needsOutputFile("main.tex", [
 				{ path: 'foo.tex' },
-				{ path: 'main.tex', content:'foo \\usepackage{tikz}' }
+				{ path: 'main.tex', content:'foo \\usepackage{tikz} \\tikzexternalize' }
 			]).should.equal true
 
-		it "should return true if there is a usepackage{pgf}", ->
-			@TikzManager.needsOutputFile("main.tex", [
-				{ path: 'foo.tex'},
-				{ path: 'main.tex', content:'foo \\usepackage{pgf}' }
-			]).should.equal true
-
-		it "should return false if there is no usepackage{tikz} or {pgf}", ->
+		it "should return false if there is no \\tikzexternalize", ->
 			@TikzManager.needsOutputFile("main.tex", [
 				{ path: 'foo.tex' },
-				{ path: 'main.tex', content:'foo \\usepackage{bar}' }
+				{ path: 'main.tex', content:'foo \\usepackage{tikz}' }
 			]).should.equal false
 
 		it "should return false if there is already an output.tex file", ->
 			@TikzManager.needsOutputFile("main.tex", [
 				{ path: 'foo.tex' },
-				{ path: 'main.tex' },
+				{ path: 'main.tex', content:'foo \\usepackage{tikz} \\tikzexternalize' },
 				{ path: 'output.tex' }
 			]).should.equal false
 
@@ -44,6 +38,7 @@ describe 'TikzManager', ->
 			@content = '''
 				\\documentclass{article}
 				\\usepackage{tikz}
+				\\tikzexternalize
 				\\begin{document}
 				Hello world
 				\\end{document}