news_tmpl.coffee.erb 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #= depend_on news.json
  2. app.templates.newsPage = ->
  3. """ <h1 class="_lined-heading">Changelog</h1>
  4. <p class="_note">
  5. For the latest news, follow <a href="https://twitter.com/DevDocs">@DevDocs</a>.<br>
  6. For development updates, follow the project on <a href="https://github.com/freeCodeCamp/devdocs">GitHub</a>.
  7. <div class="_news">#{app.templates.newsList app.news}</div> """
  8. app.templates.newsList = (news, options = {}) ->
  9. year = new Date().getUTCFullYear()
  10. result = ''
  11. for value in news
  12. date = new Date(value[0])
  13. if options.years isnt false and year isnt date.getUTCFullYear()
  14. year = date.getUTCFullYear()
  15. result += """<h2 class="_block-heading">#{year}</h2>"""
  16. result += newsItem(date, value[1..])
  17. result
  18. MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
  19. newsItem = (date, news) ->
  20. date = """<span class="_news-date">#{MONTHS[date.getUTCMonth()]} #{date.getUTCDate()}</span>"""
  21. result = ''
  22. for text, i in news
  23. text = text.split "\n"
  24. title = """<span class="_news-title">#{text.shift()}</span>"""
  25. result += """<div class="_news-row">#{if i is 0 then date else ''} #{title} #{text.join '<br>'}</div>"""
  26. result
  27. app.news = <%= App.news.to_json %>