Browse Source

Convert news_tmpl.coffee.erb to JS

Simon Legner 1 year ago
parent
commit
59bc8e27a6
1 changed files with 44 additions and 34 deletions
  1. 44 34
      assets/javascripts/templates/pages/news_tmpl.coffee.erb

+ 44 - 34
assets/javascripts/templates/pages/news_tmpl.coffee.erb

@@ -1,36 +1,46 @@
-#= depend_on news.json
-
-app.templates.newsPage = ->
-  """ <h1 class="_lined-heading">Changelog</h1>
-      <p class="_note">
-        For the latest news, follow <a href="https://twitter.com/DevDocs">@DevDocs</a>.<br>
-        For development updates, follow the project on <a href="https://github.com/freeCodeCamp/devdocs">GitHub</a>.
-      <div class="_news">#{app.templates.newsList app.news}</div> """
-
-app.templates.newsList = (news, options = {}) ->
-  year = new Date().getUTCFullYear()
-  result = ''
-
-  for value in news
-    date = new Date(value[0])
-    if options.years isnt false and year isnt date.getUTCFullYear()
-      year = date.getUTCFullYear()
-      result += """<h2 class="_block-heading">#{year}</h2>"""
-    result += newsItem(date, value[1..])
-
-  result
-
-MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
-
-newsItem = (date, news) ->
-  date = """<span class="_news-date">#{MONTHS[date.getUTCMonth()]} #{date.getUTCDate()}</span>"""
-  result = ''
-
-  for text, i in news
-    text = text.split "\n"
-    title = """<span class="_news-title">#{text.shift()}</span>"""
-    result += """<div class="_news-row">#{if i is 0 then date else ''} #{title} #{text.join '<br>'}</div>"""
-
-  result
+/*
+ * decaffeinate suggestions:
+ * DS102: Remove unnecessary code created because of implicit returns
+ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
+ */
+//= depend_on news.json
+
+app.templates.newsPage = () => ` <h1 class="_lined-heading">Changelog</h1>
+<p class="_note">
+For the latest news, follow <a href="https://twitter.com/DevDocs">@DevDocs</a>.<br>
+For development updates, follow the project on <a href="https://github.com/freeCodeCamp/devdocs">GitHub</a>.
+<div class="_news">${app.templates.newsList(app.news)}</div> `;
+
+app.templates.newsList = function(news, options = {}) {
+  let year = new Date().getUTCFullYear();
+  let result = '';
+
+  for (let value of news) {
+    const date = new Date(value[0]);
+    if ((options.years !== false) && (year !== date.getUTCFullYear())) {
+      year = date.getUTCFullYear();
+      result += `<h2 class="_block-heading">${year}</h2>`;
+    }
+    result += newsItem(date, value.slice(1));
+  }
+
+  return result;
+};
+
+const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
+
+var newsItem = function(date, news) {
+  date = `<span class="_news-date">${MONTHS[date.getUTCMonth()]} ${date.getUTCDate()}</span>`;
+  let result = '';
+
+  for (let i = 0; i < news.length; i++) {
+    let text = news[i];
+    text = text.split("\n");
+    const title = `<span class="_news-title">${text.shift()}</span>`;
+    result += `<div class="_news-row">${i === 0 ? date : ''} ${title} ${text.join('<br>')}</div>`;
+  }
+
+  return result;
+};
 
 app.news = <%= App.news.to_json %>