DraftModeManager.coffee 934 B

123456789101112131415161718192021222324
  1. fs = require "fs"
  2. logger = require "logger-sharelatex"
  3. module.exports = DraftModeManager =
  4. injectDraftMode: (filename, callback = (error) ->) ->
  5. fs.readFile filename, "utf8", (error, content) ->
  6. return callback(error) if error?
  7. # avoid adding draft mode more than once
  8. if content?.indexOf("\\documentclass\[draft") >= 0
  9. return callback()
  10. modified_content = DraftModeManager._injectDraftOption content
  11. logger.log {
  12. content: content.slice(0,1024), # \documentclass is normally v near the top
  13. modified_content: modified_content.slice(0,1024),
  14. filename
  15. }, "injected draft class"
  16. fs.writeFile filename, modified_content, callback
  17. _injectDraftOption: (content) ->
  18. content
  19. # With existing options (must be first, otherwise both are applied)
  20. .replace(/\\documentclass\[/g, "\\documentclass[draft,")
  21. # Without existing options
  22. .replace(/\\documentclass\{/g, "\\documentclass[draft]{")