overleaf/services/clsi/app/coffee/DraftModeManager.js

25 lines
934 B
JavaScript
Raw Normal View History

fs = require "fs"
logger = require "logger-sharelatex"
module.exports = DraftModeManager =
injectDraftMode: (filename, callback = (error) ->) ->
fs.readFile filename, "utf8", (error, content) ->
return callback(error) if error?
2017-08-17 10:03:37 -04:00
# avoid adding draft mode more than once
if content?.indexOf("\\documentclass\[draft") >= 0
return callback()
modified_content = DraftModeManager._injectDraftOption content
logger.log {
content: content.slice(0,1024), # \documentclass is normally v near the top
modified_content: modified_content.slice(0,1024),
filename
}, "injected draft class"
fs.writeFile filename, modified_content, callback
_injectDraftOption: (content) ->
content
# With existing options (must be first, otherwise both are applied)
2016-02-02 10:28:59 -05:00
.replace(/\\documentclass\[/g, "\\documentclass[draft,")
# Without existing options
2017-08-17 10:03:37 -04:00
.replace(/\\documentclass\{/g, "\\documentclass[draft]{")