diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 8416db5..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-name: github pages
-
-on:
- push:
- branches:
- - master
- pull_request:
- workflow_dispatch:
-
-jobs:
- deploy:
- runs-on: ubuntu-18.04
- steps:
- - name: Check out
- uses: actions/checkout@v2
- with:
- submodules: true # Fetch Hugo themes (true OR recursive)
- fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
-
- - name: Set up Hugo
- uses: peaceiris/actions-hugo@v2
- with:
- hugo-version: '0.75.1'
- # extended: true
-
- - name: Build
- run: |
- hugo --minify
- echo 'juliagpu.org' > public/CNAME
-
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v3
- if: github.ref == 'refs/heads/master'
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./public
diff --git a/.github/workflows/comment.yml b/.github/workflows/comment.yml
new file mode 100644
index 0000000..eb60966
--- /dev/null
+++ b/.github/workflows/comment.yml
@@ -0,0 +1,15 @@
+name: Comment on PR
+on:
+ pull_request:
+ types: [opened]
+jobs:
+ pr_comment:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Create PR comment
+ # if this is a pull request build AND the pull request is NOT made from a fork
+ if: github.event_name == 'pull_request' && github.repository == github.event.pull_request.head.repo.full_name
+ uses: thollander/actions-comment-pull-request@71efef56b184328c7ef1f213577c3a90edaa4aff
+ with:
+ message: 'Once the build has completed, you can preview your PR at this URL: https://maleadt.github.io/juliagpu.org/previews/PR${{ github.event.number }}/ in a couple of minutes.'
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..b3f54cd
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,55 @@
+name: Build and Deploy
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+jobs:
+ build-and-deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ persist-credentials: false
+
+ - name: Install Julia
+ uses: julia-actions/setup-julia@v1
+ with:
+ version: 1.6
+
+ - name: Fix URLs for PR preview deployment (pull request previews)
+ if: github.event_name == 'pull_request'
+ run: |
+ echo "JULIA_FRANKLIN_PREPATH=juliagpu/previews/PR${{ github.event.number }}" >> $GITHUB_ENV
+
+ - name: Install dependencies
+ uses: julia-actions/julia-buildpkg@master
+ - run: julia --project -e '
+ using Franklin;
+ optimize(minify=false, prerender=false);'
+
+ - name: Build site
+ run: julia --project -e '
+ using Pkg; Pkg.instantiate();
+ using Franklin;
+ optimize(minify=false, prerender=false);'
+
+ - name: Deploy (preview)
+ # if this build is a PR build and the PR is NOT from a fork
+ if: github.event_name == 'pull_request' && github.repository == github.event.pull_request.head.repo.full_name
+ uses: JamesIves/github-pages-deploy-action@releases/v3
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BRANCH: gh-pages
+ FOLDER: __site
+ TARGET_FOLDER: "previews/PR${{ github.event.number }}"
+ - name: Deploy (master)
+ if: github.event_name == 'push' && github.ref == 'refs/heads/master'
+ uses: JamesIves/github-pages-deploy-action@releases/v3
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BRANCH: gh-pages
+ FOLDER: __site
diff --git a/.gitignore b/.gitignore
index d066971..d09dd9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
-resources/
-public/
+__site/
+.DS_Store
+node_modules/
diff --git a/.gitmodules b/.nojekyll
similarity index 100%
rename from .gitmodules
rename to .nojekyll
diff --git a/404.md b/404.md
new file mode 100644
index 0000000..ea858b9
--- /dev/null
+++ b/404.md
@@ -0,0 +1,5 @@
+# 404: File not found
+
+The requested file was not found.
+
+Please [click here](/) to go to the home page.
diff --git a/Manifest.toml b/Manifest.toml
new file mode 100644
index 0000000..a6f9c91
--- /dev/null
+++ b/Manifest.toml
@@ -0,0 +1,218 @@
+# This file is machine-generated - editing it directly is not advised
+
+[[ArgTools]]
+uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
+
+[[Artifacts]]
+uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
+
+[[Base64]]
+uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
+
+[[Crayons]]
+git-tree-sha1 = "3f71217b538d7aaee0b69ab47d9b7724ca8afa0d"
+uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
+version = "4.0.4"
+
+[[Dates]]
+deps = ["Printf"]
+uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
+
+[[DelimitedFiles]]
+deps = ["Mmap"]
+uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
+
+[[DocStringExtensions]]
+deps = ["LibGit2", "Markdown", "Pkg", "Test"]
+git-tree-sha1 = "9d4f64f79012636741cf01133158a54b24924c32"
+uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
+version = "0.8.4"
+
+[[Downloads]]
+deps = ["ArgTools", "LibCURL", "NetworkOptions"]
+uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
+
+[[ExprTools]]
+git-tree-sha1 = "10407a39b87f29d47ebaca8edbc75d7c302ff93e"
+uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04"
+version = "0.1.3"
+
+[[FileWatching]]
+uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
+
+[[Franklin]]
+deps = ["Dates", "DelimitedFiles", "DocStringExtensions", "ExprTools", "FranklinTemplates", "HTTP", "Literate", "LiveServer", "Logging", "Markdown", "NodeJS", "OrderedCollections", "Pkg", "REPL", "Random"]
+git-tree-sha1 = "1ffa15375e9e6038726577f5df49ef2165f6359d"
+repo-rev = "rssfix"
+repo-url = "https://github.com/tlienart/Franklin.jl.git"
+uuid = "713c75ef-9fc9-4b05-94a9-213340da978e"
+version = "0.10.34"
+
+[[FranklinTemplates]]
+deps = ["LiveServer"]
+git-tree-sha1 = "efe1863c594ff302b85539cbecb2fdb8e91895a3"
+uuid = "3a985190-f512-4703-8d38-2a7944ed5916"
+version = "0.8.16"
+
+[[HTTP]]
+deps = ["Base64", "Dates", "IniFile", "MbedTLS", "NetworkOptions", "Sockets", "URIs"]
+git-tree-sha1 = "c9f380c76d8aaa1fa7ea9cf97bddbc0d5b15adc2"
+uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
+version = "0.9.5"
+
+[[IOCapture]]
+deps = ["Logging"]
+git-tree-sha1 = "1868e4e7ad2f93d8de0904d89368c527b46aa6a1"
+uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
+version = "0.2.1"
+
+[[IniFile]]
+deps = ["Test"]
+git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8"
+uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f"
+version = "0.5.0"
+
+[[InteractiveUtils]]
+deps = ["Markdown"]
+uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
+
+[[JSON]]
+deps = ["Dates", "Mmap", "Parsers", "Unicode"]
+git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4"
+uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
+version = "0.21.1"
+
+[[LibCURL]]
+deps = ["LibCURL_jll", "MozillaCACerts_jll"]
+uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
+
+[[LibCURL_jll]]
+deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
+uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
+
+[[LibGit2]]
+deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
+uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
+
+[[LibSSH2_jll]]
+deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
+uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
+
+[[Libdl]]
+uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
+
+[[Literate]]
+deps = ["Base64", "IOCapture", "JSON", "REPL"]
+git-tree-sha1 = "501a1a74a0c825037860d36d87d703e987d39dbc"
+uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
+version = "2.8.1"
+
+[[LiveServer]]
+deps = ["Crayons", "FileWatching", "HTTP", "Pkg", "Sockets", "Test"]
+git-tree-sha1 = "232282032d6daf8548510385a00c33533576c297"
+uuid = "16fef848-5104-11e9-1b77-fb7a48bbb589"
+version = "0.6.4"
+
+[[Logging]]
+uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
+
+[[Markdown]]
+deps = ["Base64"]
+uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
+
+[[MbedTLS]]
+deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"]
+git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe"
+uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
+version = "1.0.3"
+
+[[MbedTLS_jll]]
+deps = ["Artifacts", "Libdl"]
+uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
+
+[[Mmap]]
+uuid = "a63ad114-7e13-5084-954f-fe012c677804"
+
+[[MozillaCACerts_jll]]
+uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
+
+[[NetworkOptions]]
+uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
+
+[[NodeJS]]
+deps = ["Pkg"]
+git-tree-sha1 = "0c39361bf76293a7bade80e6442e50992f18482b"
+uuid = "2bd173c7-0d6d-553b-b6af-13a54713934c"
+version = "1.1.2"
+
+[[OrderedCollections]]
+git-tree-sha1 = "4fa2ba51070ec13fcc7517db714445b4ab986bdf"
+uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
+version = "1.4.0"
+
+[[Parsers]]
+deps = ["Dates"]
+git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc"
+uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
+version = "1.1.0"
+
+[[Pkg]]
+deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
+uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
+
+[[Printf]]
+deps = ["Unicode"]
+uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
+
+[[REPL]]
+deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
+uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
+
+[[Random]]
+deps = ["Serialization"]
+uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
+
+[[SHA]]
+uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
+
+[[Serialization]]
+uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
+
+[[Sockets]]
+uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
+
+[[TOML]]
+deps = ["Dates"]
+uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
+
+[[Tar]]
+deps = ["ArgTools", "SHA"]
+uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
+
+[[Test]]
+deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
+uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
+
+[[URIs]]
+git-tree-sha1 = "7855809b88d7b16e9b029afd17880930626f54a2"
+uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
+version = "1.2.0"
+
+[[UUIDs]]
+deps = ["Random", "SHA"]
+uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
+
+[[Unicode]]
+uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
+
+[[Zlib_jll]]
+deps = ["Libdl"]
+uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
+
+[[nghttp2_jll]]
+deps = ["Artifacts", "Libdl"]
+uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
+
+[[p7zip_jll]]
+deps = ["Artifacts", "Libdl"]
+uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
diff --git a/Project.toml b/Project.toml
new file mode 100644
index 0000000..3eb2e71
--- /dev/null
+++ b/Project.toml
@@ -0,0 +1,2 @@
+[deps]
+Franklin = "713c75ef-9fc9-4b05-94a9-213340da978e"
diff --git a/README.md b/README.md
index 97dba97..9fe9553 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,15 @@ This repository hosts the landing page of the JuliaGPU organization. It is inten
quickly describe the GPU programming capabilities of the Julia programming language, and
point to relevant resources for each of the GPU platforms.
-The website is built with [Hugo](https://gohugo.io/), and the master branch is automatically
-deployed by Travis.
+The website is built with [Franklin.jl](https://github.com/tlienart/Franklin.jl), and the
+master branch is automatically deployed by Github Actions.
## Quick start
-To view the site locally, install `hugo` and run `hugo server` in the root of this repository.
+To view the site locally, install Franklin and run `serve()` in the root of this repository.
+A manifest is provided to exactly reproduce the package dependencies as used by CI.
-For deploying to `juliagpu.org`, just create a pull request. Once that is merged to master, CI will automatically build the website and deploy to Github pages.
+For deploying to `juliagpu.org`, just create a pull request. A comment will appear with a
+link to a preview of the website. Once the PR is merged to master, CI will automatically
+build the website and deploy to Github pages.
diff --git a/static/favicon.ico b/_assets/favicon.ico
similarity index 100%
rename from static/favicon.ico
rename to _assets/favicon.ico
diff --git a/content/cuda/performance.png b/_assets/img/cuda-performance.png
similarity index 100%
rename from content/cuda/performance.png
rename to _assets/img/cuda-performance.png
diff --git a/static/logo_crop.png b/_assets/logo_crop.png
similarity index 100%
rename from static/logo_crop.png
rename to _assets/logo_crop.png
diff --git a/themes/vanilla-bootstrap/static/css/bootstrap.min.css b/_css/bootstrap.min.css
similarity index 100%
rename from themes/vanilla-bootstrap/static/css/bootstrap.min.css
rename to _css/bootstrap.min.css
diff --git a/_layout/foot.html b/_layout/foot.html
new file mode 100644
index 0000000..34b6840
--- /dev/null
+++ b/_layout/foot.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+ {{ if hasmath }}
+ {{ insert foot_katex.html }}
+ {{ end }}
+ {{ if hascode }}
+ {{ insert foot_highlight.html }}
+ {{ end }}
+
+
+
+
+
+
+
+
+
+
+
+