diff --git a/.travis.yml b/.travis.yml index 29ad162..0c9133b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,32 +2,36 @@ language: node_js -node_js: - - "6" +node_js: "6" + +cache: + yarn: true + directories: + - node_modules before_script: - echo '========== Importing wiki articles into hugo ==========' - cd ./scripts/wiki/ - - npm install + - yarn install - node app.js - cd $TRAVIS_BUILD_DIR - echo '========== Importing games wiki articles into hugo ==========' - cd ./scripts/games/ - - npm install + - yarn install - node app.js - cd $TRAVIS_BUILD_DIR - echo '========== Importing twitter tweets into hugo ==========' - cd ./scripts/twitter/ - - npm install + - yarn install - node app.js - cd $TRAVIS_BUILD_DIR - echo '========== Installing gulp / hugo dependencies ==========' - - npm install -g @alrra/travis-scripts - - npm install -g gulp - - npm install -g hugo-bin + - yarn global add @alrra/travis-scripts + - yarn global add gulp + - yarn global add hugo-bin - hugo version - echo '========== Configuring Github Pages ==========' diff --git a/gulpfile.js b/gulpfile.js index 5de0d62..790f2ae 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -44,18 +44,6 @@ gulp.task('hugo', ['setup'], function (cb) { gulp.task("css", ['hugo'], () => ( gulp.src(`${distPath}/css/**/*.css`, {base: './'}) .pipe(postcss([cssnext(), cssImport({from: `${distPath}/css/main.css`})])) - .pipe(uncss({ - html: [`${distPath}/**/*.html`], - ignore: [/\w\.in/, - ".fade", - ".collapse", - ".collapsing", - ".table", - ".thumbnail", - /(#|\.)navbar(\-[a-zA-Z]+)?/, - /(#|\.)dropdown(\-[a-zA-Z]+)?/, - /(#|\.)carousel(\-[a-zA-Z]+)?/, - ]})) .pipe(cleanCSS()) .pipe(md5(10, `${distPath}/**/*.html`)) .pipe(gulp.dest('./')) @@ -69,6 +57,12 @@ gulp.task('images', ['hugo'], () => ( .pipe(gulp.dest('./')), gulp.src(`${distPath}/images/banners/*`, {base: './'}) .pipe(jimp({ sizes: [{"width": 824, "height": 306 }] })) + .pipe(gulp.dest('./')), + gulp.src(`${distPath}/images/game/boxart/*`, {base: './'}) + .pipe(jimp({ sizes: [{"width": 328, "height": 300 }] })) + .pipe(gulp.dest('./')), + gulp.src(`${distPath}/images/game/icons/*`, {base: './'}) + .pipe(jimp({ sizes: [{"width": 48, "height": 48 }] })) .pipe(gulp.dest('./')) )); diff --git a/scripts/games/app.js b/scripts/games/app.js index f021a3d..a28506d 100644 --- a/scripts/games/app.js +++ b/scripts/games/app.js @@ -105,11 +105,11 @@ try { // Copy all savefiles into the output folder and store their contents. fs.readdirSync(inputDirectorySavefilesGame).forEach(file => { - if (file.slice(-5) == '.csav') { - fsextra.copySync(`${inputDirectorySavefilesGame}/${file}`, `${outputDirectorySavefilesGame}/${file}`); - } else if (file.slice(-4) == '.dat') { + if (path.extname(file) == '.zip') { + fsextra.copySync(`${inputDirectorySavefilesGame}/${file}`, `${outputDirectorySavefilesGame}/${file.replace('.zip', '.zip')}`); + } else if (path.extname(file) == '.dat') { // Store the contents of the file in memory for adding it into the markdown later. - savefileMetadataContents.push({ filename: file.replace('.dat', '.csav'), contents: fs.readFileSync(`${inputDirectorySavefilesGame}/${file}`, 'utf8') }); + savefileMetadataContents.push({ filename: file.replace('.dat', '.zip'), contents: fs.readFileSync(`${inputDirectorySavefilesGame}/${file}`, 'utf8') }); } }); } @@ -126,7 +126,7 @@ try { // Copy all screenshots into the output folder. fs.readdirSync(inputDirectoryScreenshotsGame).forEach(file => { - if (file.slice(-4) == '.png') { + if (path.extname(file) == '.png') { fsextra.copySync(`${inputDirectoryScreenshotsGame}/${file}`, `${outputDirectoryScreenshotsGame}/${file}`); } }); diff --git a/site/data/compatibility.json b/site/data/compatibility.json index 9436f87..e8dce6f 100644 --- a/site/data/compatibility.json +++ b/site/data/compatibility.json @@ -1,9 +1,8 @@ { - "0": { "name": "Won't Boot", "description": "The game crashes when attempting to startup." }, - "1": { "name": "Intro/Menu", "description": "Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start Screen." }, - "2": { "name": "Bad", "description": "Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches even with workarounds." }, + "5": { "name": "Perfect", "description": "Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without any workarounds needed." }, + "4": { "name": "Great", "description": "Game functions with minor graphical or audio glitches and is playable from start to finish. May require some workarounds." }, "3": { "name": "Okay", "description": "Game functions with major graphical or audio glitches, but game is playable from start to finish with workarounds." }, - "4": { "name": "Great", "description": "Game functions with minor graphical or audio glitches, but game is playable from start to finish with workarounds." }, - "5": { "name": "Excellent", "description": "Game functions with minor graphical or audio glitches, game is playable from start to finish without any workarounds needed." }, - "6": { "name": "Perfect", "description": "Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without any workarounds needed." } + "2": { "name": "Bad", "description": "Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches even with workarounds." }, + "1": { "name": "Intro/Menu", "description": "Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start Screen." }, + "0": { "name": "Won't Boot", "description": "The game crashes when attempting to startup." } } diff --git a/site/static/images/regions/AUS.png b/site/static/images/regions/AUS.png new file mode 100644 index 0000000..a01389a Binary files /dev/null and b/site/static/images/regions/AUS.png differ diff --git a/site/static/images/regions/CHN.png b/site/static/images/regions/CHN.png new file mode 100644 index 0000000..8914414 Binary files /dev/null and b/site/static/images/regions/CHN.png differ diff --git a/site/static/images/regions/EUR.png b/site/static/images/regions/EUR.png new file mode 100644 index 0000000..d6d8711 Binary files /dev/null and b/site/static/images/regions/EUR.png differ diff --git a/site/static/images/regions/JPN.png b/site/static/images/regions/JPN.png new file mode 100644 index 0000000..325fbad Binary files /dev/null and b/site/static/images/regions/JPN.png differ diff --git a/site/static/images/regions/KOR.png b/site/static/images/regions/KOR.png new file mode 100644 index 0000000..9c0a78e Binary files /dev/null and b/site/static/images/regions/KOR.png differ diff --git a/site/static/images/regions/TWN.png b/site/static/images/regions/TWN.png new file mode 100644 index 0000000..f31c654 Binary files /dev/null and b/site/static/images/regions/TWN.png differ diff --git a/site/static/images/regions/USA.png b/site/static/images/regions/USA.png new file mode 100644 index 0000000..10f451f Binary files /dev/null and b/site/static/images/regions/USA.png differ diff --git a/site/themes/citra-bs-theme/layouts/_default/baseof.html b/site/themes/citra-bs-theme/layouts/_default/baseof.html index 4b8815a..c8c558b 100755 --- a/site/themes/citra-bs-theme/layouts/_default/baseof.html +++ b/site/themes/citra-bs-theme/layouts/_default/baseof.html @@ -5,6 +5,7 @@ + {{ .Hugo.Generator }} @@ -12,21 +13,33 @@ {{ if .RSSLink }} - - + + {{ end }} + {{ if .IsHome }}Homepage{{ else }}{{ .Title }}{{ end }} | {{ .Site.Title }} | Nintendo 3DS Emulator + + + + {{ if (eq .Section "game") }} + {{ $rating := index .Site.Data.compatibility ( string .Params.compatibility | default "0" ) }} + + + {{ else }} + + {{ end }} +         {{ if (eq .Section "entry") | or (eq .Section "wiki") | or (eq .Section "game") }}    - {{ if (eq .Section "entry") | or (eq .Section "wiki") }} + {{ if (eq .Section "entry") }} {{ else if (eq .Section "game") }} - + {{ end }}      {{ range .Params.tags }} @@ -35,10 +48,7 @@     {{ else }}     {{ end }} - - {{ with .Site.Params.description }}{{ end }} - - {{ if .IsHome }}Homepage{{ else }}{{ .Title }}{{ end }} | {{ .Site.Title }} | Nintendo 3DS Emulator + {{ if eq (getenv "GULP") "true" }} diff --git a/site/themes/citra-bs-theme/layouts/game/list.html b/site/themes/citra-bs-theme/layouts/game/list.html index 340b570..6ec0001 100644 --- a/site/themes/citra-bs-theme/layouts/game/list.html +++ b/site/themes/citra-bs-theme/layouts/game/list.html @@ -1,69 +1,40 @@ {{ define "main" }} - {{ $paginator := .Paginate .Data.Pages }}

Game Compatibility List

The Citra Emulator compatibility list contains all the games we tested, sorted by how well they work on the emulator.

- - - - - - - - + +
RatingDescription
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + {{ range .Site.Data.compatibility }} + + + + + {{ end }}
PerfectGame functions flawless with no audio or graphical glitches, all tested functionality works as intended without any workarounds needed.
ExcellentGame functions with minor graphical or audio glitches, game is playable from start to finish without any workarounds needed.
GreatGame functions with minor graphical or audio glitches, but game is playable from start to finish with workarounds.
OkayGame functions with major graphical or audio glitches, but game is playable from start to finish with workarounds.
BadGame functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches even with workarounds.
Intro/MenuGame is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start Screen.
Won't BootThe game crashes when attempting to startup.
{{ .name }}{{ .description }}
- -

Games

- - - - - - - - - - - {{ range $paginator.Pages }} - {{ $rating := index .Site.Data.compatibility ( string .Params.compatibility | default "0" ) }} - - - - - - - {{ end }} - -
TitleCompatibilityDate Tested
{{ .Params.title }}{{ $rating.name }}{{ dateFormat "January 2, 2006" .Params.tested_date }}
- {{ partial "pagination" . }} + + + + + + + + + + + {{ $paginator := .Paginate .Data.Pages 50 }} + {{ range $paginator.Pages }} + {{ $rating := index .Site.Data.compatibility ( string .Params.compatibility | default "0" ) }} + + + + + + + {{ end }} + +
TitleCompatibilityDate Tested
{{ .Params.title }}{{ $rating.name }}{{ dateFormat "January 2, 2006" .Params.tested_date }}
+ + {{ partial "pagination" . }} {{ end }} diff --git a/site/themes/citra-bs-theme/layouts/game/single.html b/site/themes/citra-bs-theme/layouts/game/single.html index 152d7f5..cbe1070 100644 --- a/site/themes/citra-bs-theme/layouts/game/single.html +++ b/site/themes/citra-bs-theme/layouts/game/single.html @@ -1,4 +1,5 @@ {{ define "main" }} + {{ $BaseURL := .Site.BaseURL }} {{ $gameName := .File.BaseFileName }} {{ $rating := index .Site.Data.compatibility ( string .Params.compatibility | default "0" ) }} @@ -28,7 +29,7 @@

{{ .Title }}

- +
@@ -40,13 +41,13 @@ Game Icon - + Title IDs {{ range .Params.releases }} - {{ .title }} ({{ .region }})
+
{{ .title }}
{{ end }} diff --git a/site/themes/citra-bs-theme/layouts/sitemap.xml b/site/themes/citra-bs-theme/layouts/sitemap.xml index 3244e1a..1af4b07 100644 --- a/site/themes/citra-bs-theme/layouts/sitemap.xml +++ b/site/themes/citra-bs-theme/layouts/sitemap.xml @@ -1,10 +1,25 @@ - +   {{ range .Data.Pages }} + {{ if (eq .IsPage true) }} + {{ $rating := index .Site.Data.compatibility ( string .Params.compatibility | default "0" ) }}    -        {{ .Permalink }}{{ if not .Lastmod.IsZero }} -        {{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }}{{ with .Sitemap.ChangeFreq }} -    {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} -    {{ .Sitemap.Priority }}{{ end }} + + {{ .Permalink }} + + {{ if (eq .Section "entry") }} + + {{ .Site.BaseURL }}images/banners/{{ .Params.Banner | default (print .File.BaseFileName ".png") }} + + {{ else if (eq .Section "game") }} + + {{ .Site.BaseURL }}images/game/icons/{{ .File.BaseFileName }}.png + + {{ end }} + + {{ if not .Lastmod.IsZero }}{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }} + {{ with .Sitemap.ChangeFreq }}{{ . }}{{ end }} + {{ if ge .Sitemap.Priority 0.0 }}{{ .Sitemap.Priority }}{{ end }}      {{ end }} + {{ end }} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..e69de29