2016-02-02 09:26:14 -05:00
|
|
|
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?
|
|
|
|
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,")
|
2016-02-02 09:26:14 -05:00
|
|
|
# Without existing options
|
2016-02-02 10:28:59 -05:00
|
|
|
.replace(/\\documentclass\{/g, "\\documentclass[draft]{")
|