From 16381364c2354c007ddf8737be1c58f11782e28d Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sat, 4 Jun 2016 22:06:50 +0100 Subject: [PATCH] News articles are now placed in separate pages. Also given each rst file its rightful extension. --- tools/nimweb.nim | 60 +- tools/website.tmpl | 21 +- web/assets/style.css | 11 +- web/{community.txt => community.rst} | 0 web/{documentation.txt => documentation.rst} | 0 web/{download.txt => download.rst} | 0 web/{index.txt => index.rst} | 0 web/{learn.txt => learn.rst} | 0 web/{links.txt => links.rst} | 0 web/news.rst | 111 + web/news.txt | 2443 ----------------- .../2009_12_21_version_0_8_6_released.rst | 54 + .../2010_03_14_version_0_8_8_released.rst | 82 + .../2010_10_20_version_0_8_10_released.rst | 70 + .../2011_07_10_version_0_8_12_released.rst | 122 + .../2012_02_09_version_0_8_14_released.rst | 168 ++ .../2012_09_23_version_0_9_0_released.rst | 182 ++ web/news/2013_05_20_new_website_design.rst | 13 + .../2013_05_20_version_0_9_2_released.rst | 118 + ...14_01_15_andreas_rumpfs_talk_on_nimrod.rst | 11 + ...11_nimrod_featured_in_dr_dobbs_journal.rst | 9 + .../2014_04_21_version_0_9_4_released.rst | 179 ++ .../2014_10_19_version_0_9_6_released.rst | 65 + .../2014_12_29_version_0_10_2_released.rst | 198 ++ .../2015_04_30_version_0_11_0_released.rst | 396 +++ .../2015_05_04_version_0_11_2_released.rst | 12 + web/news/2015_10_16_first_nim_conference.rst | 26 + .../2015_10_27_version_0_12_0_released.rst | 403 +++ ...andreas_rumpfs_talk_at_oscon_amsterdam.rst | 13 + .../2016_01_18_version_0_13_0_released.rst | 182 ++ ...6_01_27_nim_in_action_is_now_available.rst | 32 + web/news/version_0_14_released.rst | 98 + web/{question.txt => question.rst} | 0 web/{support.txt => support.rst} | 0 web/ticker.html | 21 + web/ticker.txt | 26 - web/website.ini | 2 +- 37 files changed, 2624 insertions(+), 2504 deletions(-) rename web/{community.txt => community.rst} (100%) rename web/{documentation.txt => documentation.rst} (100%) rename web/{download.txt => download.rst} (100%) rename web/{index.txt => index.rst} (100%) rename web/{learn.txt => learn.rst} (100%) rename web/{links.txt => links.rst} (100%) create mode 100644 web/news.rst delete mode 100644 web/news.txt create mode 100644 web/news/2009_12_21_version_0_8_6_released.rst create mode 100644 web/news/2010_03_14_version_0_8_8_released.rst create mode 100644 web/news/2010_10_20_version_0_8_10_released.rst create mode 100644 web/news/2011_07_10_version_0_8_12_released.rst create mode 100644 web/news/2012_02_09_version_0_8_14_released.rst create mode 100644 web/news/2012_09_23_version_0_9_0_released.rst create mode 100644 web/news/2013_05_20_new_website_design.rst create mode 100644 web/news/2013_05_20_version_0_9_2_released.rst create mode 100644 web/news/2014_01_15_andreas_rumpfs_talk_on_nimrod.rst create mode 100644 web/news/2014_02_11_nimrod_featured_in_dr_dobbs_journal.rst create mode 100644 web/news/2014_04_21_version_0_9_4_released.rst create mode 100644 web/news/2014_10_19_version_0_9_6_released.rst create mode 100644 web/news/2014_12_29_version_0_10_2_released.rst create mode 100644 web/news/2015_04_30_version_0_11_0_released.rst create mode 100644 web/news/2015_05_04_version_0_11_2_released.rst create mode 100644 web/news/2015_10_16_first_nim_conference.rst create mode 100644 web/news/2015_10_27_version_0_12_0_released.rst create mode 100644 web/news/2016_01_18_andreas_rumpfs_talk_at_oscon_amsterdam.rst create mode 100644 web/news/2016_01_18_version_0_13_0_released.rst create mode 100644 web/news/2016_01_27_nim_in_action_is_now_available.rst create mode 100644 web/news/version_0_14_released.rst rename web/{question.txt => question.rst} (100%) rename web/{support.txt => support.rst} (100%) create mode 100644 web/ticker.html delete mode 100644 web/ticker.txt diff --git a/tools/nimweb.nim b/tools/nimweb.nim index f0479a258..8da58ff4d 100644 --- a/tools/nimweb.nim +++ b/tools/nimweb.nim @@ -217,8 +217,8 @@ proc parseIniFile(c: var TConfigData) = of "ticker": c.ticker = v of "documentation": case normalize(k.key) - of "doc": addFiles(c.doc, "doc", ".txt", split(v, {';'})) - of "pdf": addFiles(c.pdf, "doc", ".txt", split(v, {';'})) + of "doc": addFiles(c.doc, "doc", ".rst", split(v, {';'})) + of "pdf": addFiles(c.pdf, "doc", ".rst", split(v, {';'})) of "srcdoc": addFiles(c.srcdoc, "lib", ".nim", split(v, {';'})) of "srcdoc2": addFiles(c.srcdoc2, "lib", ".nim", split(v, {';'})) of "webdoc": addFiles(c.webdoc, "lib", ".nim", split(v, {';'})) @@ -406,9 +406,9 @@ proc generateRss(outputFilename: string, news: seq[TRssItem]) = output.write("""""") proc buildNewsRss(c: var TConfigData, destPath: string) = - # generates an xml feed from the web/news.txt file + # generates an xml feed from the web/news.rst file let - srcFilename = "web" / "news.txt" + srcFilename = "web" / "news.rst" destFilename = destPath / changeFileExt(splitFile(srcFilename).name, "xml") generateRss(destFilename, parseNewsTitles(srcFilename)) @@ -441,9 +441,38 @@ proc buildSponsors(c: var TConfigData, sponsorsFile: string, outputDir: string) else: quit("[Error] Cannot write file: " & outFile) +const + cmdRst2Html = "nim rst2html --compileonly $1 -o:web/$2.temp web/$2.rst" + +proc buildPage(c: var TConfigData, file, rss: string, assetDir = "") = + exec(cmdRst2Html % [c.nimArgs, file]) + var temp = "web" / changeFileExt(file, "temp") + var content: string + try: + content = readFile(temp) + except IOError: + quit("[Error] cannot open: " & temp) + var f: File + var outfile = "web/upload/$#.html" % file + if not existsDir(outfile.splitFile.dir): + createDir(outfile.splitFile.dir) + if open(f, outfile, fmWrite): + writeLine(f, generateHTMLPage(c, file, content, rss, assetDir)) + close(f) + else: + quit("[Error] cannot write file: " & outfile) + removeFile(temp) + +proc buildNews(c: var TConfigData, newsDir: string, outputDir: string) = + for kind, path in walkDir(newsDir): + let (dir, name, ext) = path.splitFile + if ext == ".rst": + buildPage(c, tailDir(dir) / name, "", "../") + else: + echo("Skipping file in news directory: ", path) + proc buildWebsite(c: var TConfigData) = - const - cmd = "nim rst2html --compileonly $1 -o:web/$2.temp web/$2.txt" + if c.ticker.len > 0: try: c.ticker = readFile("web" / c.ticker) @@ -453,26 +482,11 @@ proc buildWebsite(c: var TConfigData) = var file = c.tabs[i].val let rss = if file in ["news", "index"]: extractFilename(rssUrl) else: "" if '.' in file: continue - exec(cmd % [c.nimArgs, file]) - var temp = "web" / changeFileExt(file, "temp") - var content: string - try: - content = readFile(temp) - except IOError: - quit("[Error] cannot open: " & temp) - var f: File - var outfile = "web/upload/$#.html" % file - if not existsDir("web/upload"): - createDir("web/upload") - if open(f, outfile, fmWrite): - writeLine(f, generateHTMLPage(c, file, content, rss)) - close(f) - else: - quit("[Error] cannot write file: " & outfile) - removeFile(temp) + buildPage(c, file, rss) copyDir("web/assets", "web/upload/assets") buildNewsRss(c, "web/upload") buildSponsors(c, sponsors, "web/upload") + buildNews(c, "web/news", "web/upload/news") proc main(c: var TConfigData) = buildWebsite(c) diff --git a/tools/website.tmpl b/tools/website.tmpl index 9cb6b6772..0657c275b 100644 --- a/tools/website.tmpl +++ b/tools/website.tmpl @@ -1,13 +1,14 @@ #? stdtmpl | standard -#proc generateHTMLPage(c: var TConfigData, currentTab, content, rss: string): string = +#proc generateHTMLPage(c: var TConfigData, currentTab, content, rss, +# rootDir = ""): string = # result = "" ${currentTab} - $c.projectTitle - - + + #if len(rss) > 0: #end if @@ -16,7 +17,7 @@
- + Fund Nim and help us develop it further!
@@ -26,7 +27,7 @@