Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • verified-software/psvg.doc.ic.ac.uk
  • xr119/psvg.doc.ic.ac.uk
2 results
Show changes
Commits on Source (1250)
#!/bin/sh
# Use rsync to transfer files to a server via ssh, ensuring that the files are transferred with the correct permissions,
# user group. The command will also remove old files from the remote directory.
# To transfer files to the default location, you will need to be a member of the `rr` DoC usergroup.
#
# Example usage:
# DOC_DEPLOY_USER=me ./.deploy.sh
set -x
USER=${DOC_DEPLOY_USER:+${DOC_DEPLOY_USER}@}
SERVER=${DOC_DEPLOY_SERVER:-shell1.doc.ic.ac.uk}
PTH=${DOC_DEPLOY_PATH:-/vol/rr/www}
exec rsync -e "ssh -o StrictHostKeyChecking=no" --chmod=Dg+s,ug+rwX,o+rX --chown=:rr -igrp --delete _site/ "${USER}${SERVER}:${PTH}"
...@@ -3,3 +3,4 @@ _site ...@@ -3,3 +3,4 @@ _site
.jekyll-metadata .jekyll-metadata
vendor vendor
.bundle/config .bundle/config
.DS_Store
before_script: stages:
- bundle install --without=development - update
- build
- deploy
test: image: "ruby:2.6-buster"
stage: test variables:
NOKOGIRI_USE_SYSTEM_LIBRARIES: "true"
build:
stage: build
artifacts:
paths:
- _site/
expire_in: 1 day
cache:
paths:
- vendor/bundle/
except:
- triggers
tags:
- docker
- vtss_site
before_script:
- bundle install --deployment --without=development --with=test
- bundle exec rake init
script: script:
- bundle exec rake test - bundle exec rake -s --suppress-backtrace . test
# Not a test stage to prevent race conditions with gem installations.
deadlinks: deadlinks:
stage: deploy stage: deploy
script:
- bundle exec rake testlinks
allow_failure: true allow_failure: true
cache:
paths:
- vendor/bundle/
except:
- triggers
tags:
- docker
- vtss_site
before_script:
- bundle install --deployment --without=development --with=test
script:
- bundle exec rake -s --suppress-backtrace . testlinks
deploy: deploy:
stage: deploy stage: deploy
environment: production environment: production
script: image: resourcereasoning/website-deploy
- bundle exec rake deploy
tags: tags:
- doc - docker
- vtss_site
only: only:
- master - master
except:
- triggers
# DOC_DEPLOY_USER and DOC_DEPLOY_KEY should be defined as secret variables in the GitLab CI Settings panel
before_script:
- eval `ssh-agent`
- echo "$DOC_DEPLOY_KEY" | ssh-add -
script:
- ./.deploy.sh
# Special target triggered when publications repository is updated:
update_publications:
stage: update
variables:
GIT_AUTHOR_NAME: Resource Reasoning Group Backup Bot
GIT_COMMITTER_NAME: Resource Reasoning Group Backup Bot
GIT_AUTHOR_EMAIL: rr-gitlab-bot@example.com
EMAIL: rr-gitlab-bot@example.com
# PUSH_KEY should be defined as a secret variable in the GitLab UI
SSH_KEY: $PUSH_KEY
image: ignoredambience/github-gitlab-sync
tags:
- docker
- vtss_site
only:
- triggers
before_script:
- eval `ssh-agent`
- echo "$SSH_KEY" | ssh-add -
script:
- git checkout -B ${CI_COMMIT_REF_NAME}
- git submodule update --init --remote
- git add publications
- git commit -m "[AUTO] Updating publications submodule" || exit 0
- git remote rm rw || true
- git remote add rw git@gitlab.doc.ic.ac.uk:${CI_PROJECT_PATH}.git
- git push rw ${CI_COMMIT_REF_NAME}
[submodule "publications"]
path = publications
url = https://gitlab.doc.ic.ac.uk/verified-software/publications.git
branch = master
CheckSpelling Off CheckSpelling Off
Options -Indexes
RewriteEngine on RewriteEngine on
# Rewrite former site subdomain pages to new site pages # Rewrite former site subdomain pages to new site pages
RewriteCond %{HTTP_HOST} =www-rw.doc.ic.ac.uk RewriteCond %{HTTP_HOST} =www-rw.doc.ic.ac.uk
RewriteRule ^ http://psvg.doc.ic.ac.uk/research/javascript.html [R=301,L] RewriteRule ^ http://vtss.doc.ic.ac.uk/research/javascript.html [R=301,L]
RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk
RewriteRule ^papers.html http://psvg.doc.ic.ac.uk/publications/ [R=301,L] RewriteRule ^papers.html http://vtss.doc.ic.ac.uk/publications/ [R=301,L]
RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk RewriteCond %{HTTP_HOST} =www-lrr.doc.ic.ac.uk
RewriteRule ^ca($|/) http://psvg.doc.ic.ac.uk/research/concurrency.html [R=301,L] RewriteRule ^ca($|/) http://vtss.doc.ic.ac.uk/research/concurrency.html [R=301,L]
# Bump any other subdomain request that gets here over to the main psvg site # Bump any other subdomain request that gets here over to the main psvg site
RewriteCond %{HTTP_HOST} !=psvg.doc.ic.ac.uk RewriteCond %{HTTP_HOST} !=vtss.doc.ic.ac.uk
RewriteRule ^(.*)$ http://psvg.doc.ic.ac.uk/$1 [R=301,L] RewriteRule ^(.*)$ http://vtss.doc.ic.ac.uk/$1 [R=301,L]
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html ErrorDocument 404 /404.html
---
layout: page
title: "Error 403: Page Not Found"
permalink: /403.html
---
Oops :(. This page is not verified, therefore clients should not access it.
...@@ -4,4 +4,4 @@ title: "Error 404: Page Not Found" ...@@ -4,4 +4,4 @@ title: "Error 404: Page Not Found"
permalink: /404.html permalink: /404.html
--- ---
Oops :( Oops :(. This page is not verified, therefore clients should not access it.
FROM ruby:2.6
# throw errors if Gemfile has been modified since Gemfile.lock
RUN bundle config --global frozen 1
RUN gem install bundler:1.16.6
WORKDIR /usr/src/app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
RUN bundle exec rake init
EXPOSE 4000
CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0"]
\ No newline at end of file
source 'https://rubygems.org' source 'https://rubygems.org'
Encoding.default_external = Encoding::UTF_8
gem 'rake' gem 'rake'
gem 'jekyll' group :build do
gem 'jekyll'
end
group :default, :jekyll_plugins do group :build, :jekyll_plugins do
gem 'jekyll-scholar', '~> 5.7' gem 'jekyll-scholar', '~> 5.10'
#gem 'jekyll-scholar', :git => '/home/thomas/jekyll-scholar', :branch => 'master'
gem 'jekyll-redirect-from'
gem 'jekyll-feed'
gem 'jekyll-sitemap' gem 'jekyll-sitemap'
end end
...@@ -13,5 +20,4 @@ group :test do ...@@ -13,5 +20,4 @@ group :test do
end end
group :development do group :development do
gem 'pry'
end end
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
activesupport (5.0.0.1) activesupport (5.2.1)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7) i18n (>= 0.7, < 2)
minitest (~> 5.1) minitest (~> 5.1)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.4.0) addressable (2.5.2)
bibtex-ruby (4.4.3) public_suffix (>= 2.0.2, < 4.0)
bibtex-ruby (4.4.7)
latex-decode (~> 0.0) latex-decode (~> 0.0)
citeproc (1.0.4) citeproc (1.0.9)
namae (~> 0.8) namae (~> 1.0)
citeproc-ruby (1.1.5) citeproc-ruby (1.1.10)
citeproc (>= 1.0.4, < 2.0) citeproc (~> 1.0, >= 1.0.9)
csl (~> 1.4) csl (~> 1.5)
coderay (1.1.1)
colorator (1.1.0) colorator (1.1.0)
colored (1.2) colorize (0.8.1)
concurrent-ruby (1.0.2) concurrent-ruby (1.1.3)
csl (1.4.5) csl (1.5.0)
namae (~> 0.7) namae (~> 1.0)
csl-styles (1.0.1.7) csl-styles (1.0.1.9)
csl (~> 1.0) csl (~> 1.0)
ethon (0.9.1) em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.11.0)
ffi (>= 1.3.0) ffi (>= 1.3.0)
ffi (1.9.14) eventmachine (1.2.7)
ffi (1.9.25)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
html-proofer (3.3.1) html-proofer (3.9.2)
activesupport (>= 4.2, < 6.0) activesupport (>= 4.2, < 6.0)
addressable (~> 2.3) addressable (~> 2.3)
colored (~> 1.2) colorize (~> 0.8)
mercenary (~> 0.3.2) mercenary (~> 0.3.2)
nokogiri (~> 1.5) nokogiri (~> 1.8.1)
parallel (~> 1.3) parallel (~> 1.3)
typhoeus (~> 0.7) typhoeus (~> 1.3)
yell (~> 2.0) yell (~> 2.0)
i18n (0.7.0) http_parser.rb (0.6.0)
jekyll (3.3.0) i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.8.5)
addressable (~> 2.4) addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0) jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1) jekyll-watch (~> 2.0)
kramdown (~> 1.3) kramdown (~> 1.14)
liquid (~> 3.0) liquid (~> 4.0)
mercenary (~> 0.3.3) mercenary (~> 0.3.3)
pathutil (~> 0.9) pathutil (~> 0.9)
rouge (~> 1.7) rouge (>= 1.7, < 4)
safe_yaml (~> 1.0) safe_yaml (~> 1.0)
jekyll-sass-converter (1.4.0) jekyll-feed (0.11.0)
jekyll (~> 3.3)
jekyll-redirect-from (0.14.0)
jekyll (~> 3.3)
jekyll-sass-converter (1.5.2)
sass (~> 3.4) sass (~> 3.4)
jekyll-scholar (5.8.5) jekyll-scholar (5.14.0)
bibtex-ruby (~> 4.0, >= 4.0.13) bibtex-ruby (~> 4.0, >= 4.0.13)
citeproc-ruby (~> 1.0) citeproc-ruby (~> 1.0)
csl-styles (~> 1.0) csl-styles (~> 1.0)
jekyll (~> 3.0) jekyll (~> 3.0)
jekyll-sitemap (0.12.0) jekyll-sitemap (1.2.0)
jekyll (~> 3.3) jekyll (~> 3.3)
jekyll-watch (1.5.0) jekyll-watch (2.1.2)
listen (~> 3.0, < 3.1) listen (~> 3.0)
kramdown (1.12.0) kramdown (1.17.0)
latex-decode (0.2.2) latex-decode (0.3.1)
unicode (~> 0.4) liquid (4.0.1)
liquid (3.0.6) listen (3.1.5)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4) rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6) mercenary (0.3.6)
method_source (0.8.2) mini_portile2 (2.3.0)
mini_portile2 (2.1.0) minitest (5.11.3)
minitest (5.9.1) namae (1.0.1)
namae (0.11.0) nokogiri (1.8.5)
nokogiri (1.6.8.1) mini_portile2 (~> 2.3.0)
mini_portile2 (~> 2.1.0) parallel (1.12.1)
parallel (1.9.0) pathutil (0.16.2)
pathutil (0.14.0)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
pry (0.10.4) public_suffix (3.0.3)
coderay (~> 1.1.0) rake (12.3.1)
method_source (~> 0.8.1) rb-fsevent (0.10.3)
slop (~> 3.4) rb-inotify (0.9.10)
rake (11.3.0) ffi (>= 0.5.0, < 2)
rb-fsevent (0.9.8) rouge (3.3.0)
rb-inotify (0.9.7) ruby_dep (1.5.0)
ffi (>= 0.5.0)
rouge (1.11.1)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sass (3.4.22) sass (3.7.2)
slop (3.6.0) sass-listen (~> 4.0.0)
thread_safe (0.3.5) sass-listen (4.0.0)
typhoeus (0.8.0) rb-fsevent (~> 0.9, >= 0.9.4)
ethon (>= 0.8.0) rb-inotify (~> 0.9, >= 0.9.7)
tzinfo (1.2.2) thread_safe (0.3.6)
typhoeus (1.3.1)
ethon (>= 0.9.0)
tzinfo (1.2.5)
thread_safe (~> 0.1) thread_safe (~> 0.1)
unicode (0.4.4.2)
yell (2.0.7) yell (2.0.7)
PLATFORMS PLATFORMS
...@@ -101,10 +112,11 @@ PLATFORMS ...@@ -101,10 +112,11 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
html-proofer (~> 3.0) html-proofer (~> 3.0)
jekyll jekyll
jekyll-scholar (~> 5.7) jekyll-feed
jekyll-redirect-from
jekyll-scholar (~> 5.10)
jekyll-sitemap jekyll-sitemap
pry
rake rake
BUNDLED WITH BUNDLED WITH
1.13.6 1.16.6
--- ---
layout: null layout: page
title: VTSS Group Website Readme
--- ---
Program Specification & Verification Group Website: http://psvg.doc.ic.ac.uk/ This readme file is published in its fully rendered form [on the website]({{site.baseurl}}{% link README.md %}).
=============================================================================
The source code for [this site](https://vtss.doc.ic.ac.uk) is [hosted on the DoC GitLab server](https://gitlab.doc.ic.ac.uk/resource-reasoning/vtss.doc.ic.ac.uk),
you should have access to edit it if a member of the resource-reasoning group.
**DO NOT EDIT THE SOURCE CODE IN `/vol/rr/www`, IT IS ALL REPLACED EACH TIME THE SITE IS REBUILT FROM VERSION CONTROL**
[![Build Status](https://gitlab.doc.ic.ac.uk/resource-reasoning/psvg.doc.ic.ac.uk/badges/master/build.svg)](https://gitlab.doc.ic.ac.uk/resource-reasoning/psvg.doc.ic.ac.uk/commits/master) [![Build Status](https://gitlab.doc.ic.ac.uk/resource-reasoning/vtss.doc.ic.ac.uk/badges/master/build.svg)](https://gitlab.doc.ic.ac.uk/resource-reasoning/vtss.doc.ic.ac.uk/commits/master)
[![Dependency Status](https://gemnasium.com/bd81b2aa11ff43417700f75dbd194221.svg)](https://gemnasium.com/6ba7afbbfda9adcba06f007cc565a29a) [![Dependency Status](https://gemnasium.com/bd81b2aa11ff43417700f75dbd194221.svg)](https://gemnasium.com/6ba7afbbfda9adcba06f007cc565a29a)
The source code for [this site](http://psvg.doc.ic.ac.uk) is [hosted on the DoC GitLab server](https://gitlab.doc.ic.ac.uk/resource-reasoning/psvg.doc.ic.ac.uk), ## Managing Content
you should have access to edit it if a member of the resource-reasoning group. ### Publications
Please see [the dedicated publications repository](https://gitlab.doc.ic.ac.uk/resource-reasoning/publications) for
**DO NOT EDIT THE SOURCE CODE IN `/vol/rr/www`, IT IS ALL REPLACED EACH TIME THE SITE IS REBUILT FROM VERSION CONTROL** instructions on how to add new publications to the website.
Technical Detail Technical Detail
---------------- ----------------
...@@ -37,11 +40,49 @@ Variables that templates currently take into account are: ...@@ -37,11 +40,49 @@ Variables that templates currently take into account are:
* `title`, sets the page title * `title`, sets the page title
* `menu`, (default: false) places the page into the website's navigation menu * `menu`, (default: false) places the page into the website's navigation menu
* `menu_order`, decides the order of menu
* `parent_menu`, creates a parent menu with a dropdown box including the current page.
Pages with the same parent menu are put in the same box.
Please also ensures the existence of parent_menu and its value, and menu_order are consistent.
* `sub_menu_order`, decides the order of menu in corresponding dropdown box.
* `project_id`, links the page to a project.
* `project`, (please only use this for person, i.e. file under the directory of _people), links a person to a project.
* `firstname, lastname, position, webpage, email, github`, describes a person.
The main content of the page should then follow. The main content of the page should then follow.
Any other files present in the directory structure (except for those prefixed with `_`, `.`, or explicitly excluded in Any other files present in the directory structure (except for those prefixed with `_`, `.`, or explicitly excluded in `_config.yml`) will be published unchanged to the website.
`_config.yml`) will be published unchanged to the website.
For the detail of adding publication, please refer to the README file in publication directory.
Jekyll Scholar Configuration Detail
===================================
We desire the output URL structure to be:
* `/publications/`
* `index.html` - a page listing the entire bibliography
* `publications.bib` - the raw bibtex file, directly from the source
* `Key.html` - details page generated for each publication
* `Key.*` - Any files associated with each publication, copied directly from the source
In the `scholar` section of the configuration file, configuration options we've used are:
* `source`: Directory in which our bibtex files are to be found (`publications`)
* `details_dir`: Directory to output `Key.html` files for each publication (`publications`), rendered using the layout
defined in the `details_layout` option.
* `details_link`: We override the default here, as we generate our own HTML to render this link in our
`bibliography_template`.
* `repository`: Location of files associated with publications (`publications`) (the same
directory is used for both input and output: it is handled as usual by jekyll)
The template used to generate individual publication pages is [here](_layouts/publication.html). The part of interest is
the Source Materials section. We iterate through a
[predefined list of file types](publications/_publication_file_types.yml) and output a link (using icon and text from
the file type list) to the file in the repository if it exists.
Finally, in order to generate the complete biography page, we use a [page](publications.html) in the site's root just
outputting a `{% bibliography %}` as normal (which renders each entry using the layout defined by the scholar
`bibliography_template` option). By using a `permalink` jekyll option we place the rendered bibliography into the
`/publications/` output directory as `index.html`.
Testing and Deployment Testing and Deployment
---------------------- ----------------------
...@@ -52,7 +93,19 @@ are consistent. ...@@ -52,7 +93,19 @@ are consistent.
An additional check that external links are still live is also run, but this test is permitted to fail without blocking An additional check that external links are still live is also run, but this test is permitted to fail without blocking
the deployment. the deployment.
The site is deployed to `/vol/rr/www` automatically on successful build. The site should be deployed automatically by GitLab CI. To deploy the site manually from your own machine, run the `.deploy.sh` script. This will use `rsync` to synchronise the contents of the `_site` directory with the webserver via SSH. Default deployment parameters:
* DOC_DEPLOY_USER: the default username used by SSH to connect, usually the username on your local machine
* DOC_DEPLOY_SERVER: `shell1.doc.ic.ac.uk`
* DOC_DEPLOY_PATH: `/vol/rr/www`
To override these parameters, set shell variables, eg: `DOC_DEPLOY_USER=me ./.deploy.sh`
The site is deployed to `/vol/rr/www` automatically on successful build using the `.deploy.sh` script.
The contents of the `DOC_DEPLOY_KEY` CI environment variable are used
as the private key used to authenticate with the server. This key is currently configured to give locked-down rsync access to the
`/vol/rr/www` using `pg`'s user account. For further details for how this is achieved, [see this
howto](https://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/). Note: when deploying to a locked-down
rsync account, the DOC_DEPLOY_PATH should be set to a path relative to the lockdown path -- use `.` if in doubt. You
won't need to set this if you're deploying from your own user account.
Locally Building and Testing Locally Building and Testing
---------------------------- ----------------------------
...@@ -60,11 +113,12 @@ If you wish to test the site locally, ensure you have ruby installed, and then i ...@@ -60,11 +113,12 @@ If you wish to test the site locally, ensure you have ruby installed, and then i
``` ```
gem install bundler gem install bundler
bundle install bundle install
bundle exec rake init
``` ```
And to start a local webserver that remakes files whenever changed: And to start a local webserver that remakes files whenever changed:
``` ```
rake serve bundle exec rake serve
``` ```
You can test for dead links and html errors using: You can test for dead links and html errors using:
......
...@@ -2,6 +2,11 @@ require 'html-proofer' ...@@ -2,6 +2,11 @@ require 'html-proofer'
task :default => :build task :default => :build
desc "Initialise/update git submodules"
task :init do
sh "git submodule update --init --remote"
end
desc "Build the site" desc "Build the site"
task :build do task :build do
sh "bundle exec jekyll build" sh "bundle exec jekyll build"
...@@ -10,7 +15,8 @@ end ...@@ -10,7 +15,8 @@ end
htmlproofer_config = { htmlproofer_config = {
:disable_external => true, :disable_external => true,
:check_html => true, :check_html => true,
:parallel => { :in_processes => 4 } :parallel => { :in_processes => 1 },
:file_ignore => [/README.html/]
} }
desc "Build the site and test output for dead links, invalid html etc." desc "Build the site and test output for dead links, invalid html etc."
...@@ -30,7 +36,7 @@ task :serve do ...@@ -30,7 +36,7 @@ task :serve do
sh "bundle exec jekyll serve" sh "bundle exec jekyll serve"
end end
desc "Deploy the site using rsync" desc "Deploy the website to the webserver"
task :deploy => :build do task :deploy do
sh "umask 0002 && rsync --chmod=Dg+s,ug+rwX,o+rX --chown=:rr -igrp --delete _site/ /vol/rr/www" sh ".deploy.sh"
end end
title: Program Specification and Verification Group title: Verified Software
subtitle: <a href="http://www.doc.ic.ac.uk">Department of Computing</a>, <a href="http://www.imperial.ac.uk/">Imperial College London</a> subtitle: <a href="http://www.doc.ic.ac.uk">Department of Computing</a>, <a href="http://www.imperial.ac.uk/">Imperial College London</a>
copyright: Imperial College London copyright: Imperial College London
baseurl: "" baseurl: ""
url: "https://psvg.doc.ic.ac.uk" url: "https://vtss.doc.ic.ac.uk"
markdown: kramdown markdown: kramdown
encoding: utf-8
timezone: Europe/London
include: include:
- .htaccess - .htaccess
exclude: exclude:
...@@ -14,12 +17,15 @@ exclude: ...@@ -14,12 +17,15 @@ exclude:
- Rakefile - Rakefile
- .gitlab-ci.yml - .gitlab-ci.yml
- vendor - vendor
- publications/README.md
collections: collections:
people: people:
output: true output: true
research: research:
output: true output: true
teaching:
output: true
defaults: defaults:
- -
...@@ -29,6 +35,11 @@ defaults: ...@@ -29,6 +35,11 @@ defaults:
layout: page layout: page
menu: false menu: false
menu_order: 9 menu_order: 9
-
scope:
type: posts
values:
layout: post
- -
scope: scope:
path: "" path: ""
...@@ -40,6 +51,11 @@ defaults: ...@@ -40,6 +51,11 @@ defaults:
path: "research" path: "research"
values: values:
layout: research layout: research
-
scope:
path: "teaching"
values:
layout: teaching
scholar: scholar:
source: publications source: publications
...@@ -49,8 +65,8 @@ scholar: ...@@ -49,8 +65,8 @@ scholar:
details_dir: publications details_dir: publications
details_layout: publication.html details_layout: publication.html
use_raw_bibtex_entry: true use_raw_bibtex_entry: false
bibtex_skip_fields: ['month_numeric', 'project'] bibtex_skip_fields: ['month_numeric', 'project', 'file']
bibtex_filters: bibtex_filters:
- superscript - superscript
- latex - latex
......
...@@ -26,8 +26,8 @@ fontawesome: ...@@ -26,8 +26,8 @@ fontawesome:
integrity: "sha384-XdYbMnZ/QjLh6iI4ogqCTaIjrFk87ip+ekIjefZch0Y+PvJ8CDYtEs1ipDmPorQ+" integrity: "sha384-XdYbMnZ/QjLh6iI4ogqCTaIjrFk87ip+ekIjefZch0Y+PvJ8CDYtEs1ipDmPorQ+"
mathjax: mathjax:
uri: "http://cdn.mathjax.org/mathjax/" uri: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/"
version: "latest" version: "2.7.5"
js: js:
path: "/MathJax.js?config=TeX-AMS-MML_HTMLorMML" path: "/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
async: true async: true
../publications/_publication_file_types.yml
\ No newline at end of file
<div class="people panel">
{% assign grouped_people = include.people | group_by: 'position' | sort: 'name' %}
{% for group in grouped_people %}
{% assign position = group.name %}
{% assign id = group.name | replace:' ','-' %}
<div class="panel-heading">
<h6 class="panel-title">
<a data-toggle="collapse" href="#{{id}}" style="color:black">{{position}}s ↯</a>
</h6>
</div>
<div id="{{id}}" class="panel-collapse collapse">
{% for person in group.items %}
<div class="row">
<div class="col-sm-1" >
<a href="{{ person.url }}" >{% include person-photo-small.html %}</a>
</div>
<div class="col-sm-11">
<a href="{{ person.url }}" class="h6" style="color:black;font-weight:bold;">{{ person.firstname }} {{ person.lastname }}</a>
{{ person.content | remove: '<p>' | remove: '</p>' }}
</div>
</div>
<br/>
{% endfor %}
</div>
{% endfor %}
</div>
<footer class="site-footer"> <footer class="site-footer">
<p>&copy; {{ site.time | date: "%Y" }} {{ site.copyright }}</p> <p>&copy; {{ site.time | date: "%Y" }} {{ site.copyright }}<br />
<a href="https://www.imperial.ac.uk/about-the-site/privacy/">Privacy Notice</a> - <a href="{{ '/accessibility/' | relative_url }}">Accessibility</a></p>
</footer> </footer>
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
<link rel="stylesheet" href="{{ "/assets/syntax.css" | prepend: site.baseurl }}"> <link rel="stylesheet" href="{{ "/assets/syntax.css" | prepend: site.baseurl }}">
{% if page.dataspy %}<link rel="stylesheet" href="{{ "/assets/fixed-sticky/fixedsticky.css" | prepend: site.baseurl }}">{% endif %} {% if page.dataspy %}<link rel="stylesheet" href="{{ "/assets/fixed-sticky/fixedsticky.css" | prepend: site.baseurl }}">{% endif %}
{% feed_meta %}
<script> <script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
...@@ -22,6 +24,5 @@ ...@@ -22,6 +24,5 @@
ga('create', 'UA-47856851-3', 'auto'); ga('create', 'UA-47856851-3', 'auto');
ga('send', 'pageview'); ga('send', 'pageview');
</script> </script>
</head> </head>
...@@ -2,15 +2,46 @@ ...@@ -2,15 +2,46 @@
<div class="site-masthead"> <div class="site-masthead">
<div class="container"> <div class="container">
<nav class="nav"> <nav class="nav">
{% assign menu_items = site.pages | where:"menu",true | sort:"menu_order" %}
{% if menu_items.size > 1 %} {% for menu_index in (1..10) %}
{% for item in menu_items %} {% assign menu_items = site.pages | where:"menu",true | where: "menu_order",menu_index | sort:"sub_menu_order" %}
{% if item.title %} {% if menu_items.size > 0 %}
<a class="nav-link {% if item.url == page.url %}active{% endif %}" href="{{ item.url | prepend: site.baseurl {% if menu_items.first.parent_menu %}
}}">{{ item.title }}</a> {% assign check_url = menu_items.first.parent_menu | downcase | prepend: '/' | append: '/' %}
{% endif %} <li class="dropdown">
<a class="nav-link {% if page.url contains check_url %}active{% endif %} ">{{ menu_items.first.parent_menu }}</a>
<div class="dropdown-content">
{% for item in menu_items %}
<a class="nav-link {% if item.url == page.url %}active{% endif %}" href="{{ item.url | prepend: site.baseurl }}">{{ item.title }}</a>
{% endfor %}
</div>
</li>
{% else %}
{% for item in menu_items %}
<li><a class="nav-link {% if item.url == page.url %}active{% endif %}" href="{{ item.url | prepend: site.baseurl }}">{{ item.title }}</a></li>
{% endfor %}
{% endif %}
{% endif %}
{% endfor %} {% endfor %}
{% endif %} <!--{% assign menu_items = site.pages | where:"menu",true | sort:"menu_order" %}-->
<!--{% if menu_items.size > 1 %}-->
<!--{% for item in menu_items %}-->
<!--{% if item.title %}-->
<!--{% if item.parent_menu %}-->
<!--<li class="dropdown">-->
<!--<a class="nav-link dropbtn" href="#">{{ item.parent_menu }}</a>-->
<!--{% assign sub_menu_items = site.pages | where:"menu",true | sort:"menu_order" %}-->
<!--<div class="dropdown-content">-->
<!--<a class="nav-link" href="#">aaaaaaaa</a>-->
<!--<a class="nav-link" href="#">bbbbbbbb</a>-->
<!--</div>-->
<!--</li>-->
<!--{% else %}-->
<!--<li><a class="nav-link {% if item.url contains page.url %}active{% endif %}" href="{{ item.url | prepend: site.baseurl }}">{{ item.title }}</a></li>-->
<!--{% endif %}-->
<!--{% endif %}-->
<!--{% endfor %}-->
<!--{% endif %}-->
</nav> </nav>
</div> </div>
</div> </div>
......
{% unless include.max %}
{% assign include.max = site.posts | size %}
{% endunless %}
<div class="posts">
{% for post in site.posts limit:include.max %}
<li class="post-preview">
<h4><a href="{{ post.url }}">{{ post.title }}</a></h4>
<p>{{ post.date | date: "%b %-d, %Y" }}</p>
{{ post.excerpt }}
<p><a href="{{ post.url }}">more...</a></p>
</li>
{% endfor %}
</div>