Source for https://vcg.iiitd.edu.in, the website of the Visual Conception Group at IIIT Delhi.
It is a Jekyll site: build it with ./build.sh and copy _site/ to the
web server (see Publishing).
Almost everything on the site comes from the YAML files in _data/. Each file starts with a
commented template you can copy.
| To… | Edit |
|---|---|
| Add a news item | _data/news.yml, add at the top |
| Add a published paper | _data/publications.yml, add at the top |
| Add a preprint or paper under review | _data/publications.yml with type: preprint (and optionally status: "Under review") |
| Mark a preprint as published | change type to conference or journal, add venue, short, year |
| Add or update a person | _data/people.yml |
| Add a current master's or bachelor's student | _data/people.yml: role: masters (or bachelors), status: current, program: MTech (Research) |
| Move a student to alumni | _data/people.yml: set status: alumni, add until, thesis, now |
| Add a project | _data/projects.yml |
| Advertise an open position (RA, PhD, intern…) | _data/openings.yml: copy the template; it shows on the Join us page |
| Edit the notes for BTech/MTech/PhD/RA applicants | _pages/join.md (plain Markdown) |
| Change research themes | _data/topics.yml |
| Change the photo behind the top of the home page | hero: background: (about 1600×800) and background_small: (about 960×480) in _config.yml; photos go in images/campus/ |
| Tune the home page word cloud | _data/wordcloud.yml (number of words, words to leave out, spellings to merge) |
| Change the menu, or the links in the "Useful links" drop-down | _data/navigation.yml (a longer menu may need the header breakpoint raised; see the note there) |
| Change the address, links, hero text | _config.yml |
Files go here:
- Paper PDFs, slides and posters:
downloads/, linked aspdf: /downloads/file.pdf - Team photos:
images/teampic/, square-ish, about 400×400 px. People without a photo get initials.
- Word cloud. The cloud on the home page is built from the titles of all published papers, so new papers change it automatically. Each word links to the papers that contain it.
- Counts. Publication totals, the papers-per-year chart and the paper count for each research theme are all calculated from the data files.
- Lab members in author lists are bolded. If a paper spells a name differently
(
A.V. Subramanyam,K. Kansal), add that spelling to the person'saliasesin_data/people.yml. Put*after names for equal contribution (Shivank Rajput*, Himanshu Singh*); the note is added for you. - BibTeX. Every paper gets a "BibTeX" button whose entry is built from its fields. To use your
own, add a
bibtex:block to the paper. - Abstracts. Add
abstract:to a paper and an "Abstract" button appears. - Citations. Papers with a
doi(or anarxivlink) show a citation badge from Dimensions once they have at least one citation. Switch it off withcitations: dimensions: falsein_config.yml. - Preprints are listed in their own group, but the publications page shows published papers by default. Visitors see preprints with the "Preprints" filter. Preprints are left out of the home page and of all counts.
- Open positions. The Join us page lists the positions in
_data/openings.yml, or says there are none. A position is hidden once its deadline has passed (the next time the site is rebuilt), and each one is marked up as a job posting so it can appear in Google's job search. - Team page. Current members come first (faculty, PhD, master's, bachelor's), then alumni.
Empty sections are hidden, and the order is set in
_data/team_sections.yml. Anyone whoserole/statusdoesn't match a section shows up under "Other members", so a typo never hides a person.
- title: "Our New Paper"
authors: "Himanshu Singh, A V Subramanyam"
venue: "European Conference on Computer Vision (ECCV)"
short: ECCV
year: 2026
type: conference
topics: [adversarial]
links:
doi: 10.1007/978-3-032-00000-0_1
arxiv: https://arxiv.org/abs/2601.01234
code: https://github.com/Visual-Conception-Group/our-new-paperYAML is picky about indentation. Use spaces, not tabs, and copy the shape of an existing entry.
Put text that contains a colon (:) in quotes. year must be a four-digit number; a paper
without one is listed under "Year not set".
DOIs are easiest to copy from the lab's dblp page: https://dblp.org/pid/232/6141.html.
The site is set up for search engines with the plugins GitHub Pages provides
(jekyll-seo-tag, jekyll-sitemap, jekyll-redirect-from):
-
Each page has its own title and a
description:in its front matter (keep it under ~160 characters). The home page's title and description arehome_titleanddescriptionin_config.yml. -
/sitemap.xmland/robots.txtare generated automatically. Paper PDFs indownloads/are listed too. -
Shared links show
assets/img/og-image.jpg(1200×630). A page can use its own withimage:in its front matter. -
Structured data (schema.org) describes the lab, its members and every published paper. It is built from the data files by
_includes/schema-*.html, so it stays up to date by itself. -
A page with
robots: noindexis hidden from search results (the 404 page uses this). -
To move or rename a page without breaking old links, add
redirect_from: [/old-url/]to its front matter. -
Datasets on the Resources page also carry schema.org
Datasetdata (at the bottom of_pages/resources.md), so they can appear in Google Dataset Search. Keep it in step with the text. -
Paper
summary:lines show under each paper and are used as its description for search engines, so a one-sentence plain-language summary is worth adding to every paper.
After publishing, register the site in Google Search Console
(and optionally Bing Webmaster Tools), submit https://vcg.iiitd.edu.in/sitemap.xml, and put the
verification code under webmaster_verifications: in _config.yml.
The live site, https://vcg.iiitd.edu.in, is served from the www folder on the IIIT Delhi web
server. It is built on your own computer and copied there:
- Make the changes and check them in the preview (below).
- Stop the preview (Ctrl+C), then run
./build.sh. It builds the site into_site/with the live address and production settings (which also switch on Google Analytics), and stops with a message if any local preview address is left in it. - Copy the contents of
_site/to thewwwfolder on the server. Replace the old files rather than copying on top of them; otherwise pages and files that were removed from the site stay online. With rsync that isrsync -av --delete _site/ <user>@<server>:<path-to-www>/, after checking thatwwwholds nothing else that has to stay.
Don't copy _site/ straight after a preview: jekyll serve writes the preview address
(http://localhost:4000) into links, the sitemap and the tags search engines read.
To check the live site after copying: https://vcg.iiitd.edu.in/sitemap.xml and /robots.txt
should load, and the home page source should contain <link rel="canonical" href="https://vcg.iiitd.edu.in/">.
The repository is also on GitHub (gh-pages branch), where GitHub Pages builds its own copy;
the CNAME file sends visitors of visual-conception-group.github.io on to vcg.iiitd.edu.in.
The Gemfile uses the same versions as GitHub Pages, so both builds come out the same.
Server settings to raise with IIIT Delhi IT (they are not part of this repository):
- The
http://→https://redirect drops the slash after the host name, sohttp://vcg.iiitd.edu.in/team/goes tohttps://vcg.iiitd.edu.inteam/, which doesn't exist. Only the home page redirects correctly. The fix in the port-80 site configuration isRedirect permanent / https://vcg.iiitd.edu.in/(with the final slash). Afterwards,curl -sIL http://vcg.iiitd.edu.in/team/should end in200. - Optional:
ErrorDocument 404 /404.html, so a missing page shows the site's own "Page not found" page, and compression and caching (mod_deflate,mod_expires) for faster loading.
The Gemfile pins the same versions GitHub Pages uses (the github-pages gem, Jekyll 3.10).
bundle config set --local path vendor/bundle # once: keep gems inside the project
bundle install # once, and after the Gemfile changes
bundle exec jekyll serve
# open http://localhost:4000Restart jekyll serve after editing _config.yml; it does not reload that file on its own.
The preview is only for looking: build with ./build.sh before copying anything to the server.
_config.yml site-wide settings (title, contact, hero text, citations, analytics)
_data/ all content lists (see above)
_pages/ one file per page: home, publications, team, projects, resources, news, join us, 404
_layouts/ default.html (page frame) and page.html (title + content)
_includes/ reusable pieces: pub.html (one paper), bibtex.html, authors.html,
person.html, role-label.html, news-item.html, header, footer
assets/css/main.css all styles; colours and fonts are variables at the top
assets/js/ word-cloud.js (home page word cloud), publications.js (search and filters),
pub-details.js (Abstract/BibTeX buttons), scroll-strip.js (sideways rows
on the home page), theme.js (light/dark switch)
images/, downloads/ photos, logos and PDFs
The site uses no custom plugins and no CSS framework, so it builds on GitHub Pages as is.
The site has a light and a dark theme. It follows the visitor's system setting until they use the
switch in the header; their choice is then remembered in that browser. The dark colours are in the
"Dark theme" block near the top of main.css (that file starts with two --- lines so Jekyll can
reuse the block; keep them).