Archive Layout with Content
A variety of common markup showing how the theme styles them.
Header one
Header two
Header three
Header four
Header five
Header six
Blockquotes
Single line blockquote:
Quotes are cool.
Tables
| Entry | Item | |
|---|---|---|
| John Doe | 2016 | Description of the item in the list |
| Jane Doe | 2019 | Description of the item in the list |
| Doe Doe | 2022 | Description of the item in the list |
| Header1 | Header2 | Header3 |
|---|---|---|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
| Foot1 | Foot2 | Foot3 |
Definition Lists
- Definition List Title
- Definition list division.
- Startup
- A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
- #dowork
- Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends.
- Do It Live
- I’ll let Bill O’Reilly explain this one.
Unordered Lists (Nested)
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Ordered List (Nested)
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Buttons
Make any link standout more when applying the .btn class.
Notices
Watch out! You can also add notices by appending {: .notice} to a paragraph.
HTML Tags
Address Tag
1 Infinite LoopCupertino, CA 95014
United States
Anchor Tag (aka. Link)
This is an example of a link.
Abbreviation Tag
The abbreviation CSS stands for “Cascading Style Sheets”.
Cite Tag
“Code is poetry.” —Automattic
Code Tag
You will learn later on in these tests that word-wrap: break-word; will be your best friend.
Strike Tag
This tag will let you strikeout text.
Emphasize Tag
The emphasize tag should italicize text.
Insert Tag
This tag should denote inserted text.
Keyboard Tag
This scarcely known tag emulates keyboard text, which is usually styled like the <code> tag.
Preformatted Tag
This tag styles large blocks of code.
.post-title {
margin: 0 0 5px;
font-weight: bold;
font-size: 38px;
line-height: 1.2;
and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
Quote Tag
Developers, developers, developers…
–Steve Ballmer
Strong Tag
This tag shows bold text.
Subscript Tag
Getting our science styling on with H2O, which should push the “2” down.
Superscript Tag
Still sticking with science and Isaac Newton’s E = MC2, which should lift the 2 up.
Variable Tag
This allows you to denote variables.
Zongyang (Zane) Qiu 「邱宗扬」
Hello, I’m Zongyang Qiu, a final-year Computer Science undergraduate at Fudan University, and an incoming Mphil student at HKUST(GZ).
Currently, I am a research resarch intern at CIS Lab at HKUST(GZ), supervised by Dr. Zeyu Wang. Prior to that, I worked with Prof. Wenhan Luo at C4 Group, HKUST.
I am deeply passionate about Computer Vision, Computer Graphics, and HCI. My current research focuses on generative AI, with a specific interest in video generation and dynamic 4D avatar creation.
Publications
EmoVid: A Multimodal Emotion Video Dataset for Emotion-Centric Video Understanding and Generation
Zongyang Qiu, Bingyuan Wang, Xingbei Chen, Yingqing He, Zeyu Wang
arXiv preprint arXiv:2511.11002
Abstract: Emotion plays a pivotal role in video-based expression, but existing video generation systems predominantly focus on low-level visual metrics while neglecting affective dimensions. Although emotion analysis has made progress in the visual domain, the video community lacks dedicated resources to bridge emotion understanding with generative tasks, particularly for stylized and non-realistic contexts. To address this gap, we introduce EmoVid, the first multimodal, emotion-annotated video dataset specifically designed for creative media, which includes cartoon animations, movie clips, and animated stickers. Each video is annotated with emotion labels, visual attributes (brightness, colorfulness, hue), and text captions. Through systematic analysis, we uncover spatial and temporal patterns linking visual features to emotional perceptions across diverse video forms. Building on these insights, we develop an emotion-conditioned video generation technique by fine-tuning the Wan2.1 model. The results show a significant improvement in both quantitative metrics and the visual quality of generated videos for text-to-video and image-to-video tasks. EmoVid establishes a new benchmark for affective video computing. Our work not only offers valuable insights into visual emotion analysis in artistically styled videos, but also provides practical methods for enhancing emotional expression in video generation.
Service
- Reviewer, AAAI 2026
- Reviewer, IEEE Transactions on Affective Computing
Archive Layout with Content
A variety of common markup showing how the theme styles them.
Header one
Header two
Header three
Header four
Header five
Header six
Blockquotes
Single line blockquote:
Quotes are cool.
Tables
| Entry | Item | |
|---|---|---|
| John Doe | 2016 | Description of the item in the list |
| Jane Doe | 2019 | Description of the item in the list |
| Doe Doe | 2022 | Description of the item in the list |
| Header1 | Header2 | Header3 |
|---|---|---|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
| Foot1 | Foot2 | Foot3 |
Definition Lists
- Definition List Title
- Definition list division.
- Startup
- A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
- #dowork
- Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends.
- Do It Live
- I’ll let Bill O’Reilly explain this one.
Unordered Lists (Nested)
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Ordered List (Nested)
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Buttons
Make any link standout more when applying the .btn class.
Notices
Watch out! You can also add notices by appending {: .notice} to a paragraph.
HTML Tags
Address Tag
1 Infinite LoopCupertino, CA 95014
United States
Anchor Tag (aka. Link)
This is an example of a link.
Abbreviation Tag
The abbreviation CSS stands for “Cascading Style Sheets”.
Cite Tag
“Code is poetry.” —Automattic
Code Tag
You will learn later on in these tests that word-wrap: break-word; will be your best friend.
Strike Tag
This tag will let you strikeout text.
Emphasize Tag
The emphasize tag should italicize text.
Insert Tag
This tag should denote inserted text.
Keyboard Tag
This scarcely known tag emulates keyboard text, which is usually styled like the <code> tag.
Preformatted Tag
This tag styles large blocks of code.
.post-title {
margin: 0 0 5px;
font-weight: bold;
font-size: 38px;
line-height: 1.2;
and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
Quote Tag
Developers, developers, developers…
–Steve Ballmer
Strong Tag
This tag shows bold text.
Subscript Tag
Getting our science styling on with H2O, which should push the “2” down.
Superscript Tag
Still sticking with science and Isaac Newton’s E = MC2, which should lift the 2 up.
Variable Tag
This allows you to denote variables.
{% include base_path %} {% for post in site.pages %} {% include archive-single.html %} {% endfor %}
Posts by Category
{% include base_path %} {% include group-by-array collection=site.posts field=”categories” %}
{% for category in group_names %} {% assign posts = group_items[forloop.index0] %}
{{ category }}
{% for post in posts %} {% include archive-single.html %} {% endfor %} {% endfor %}
Posts by Collection
{% include base_path %} {% capture written_label %}’None’{% endcapture %}
{% for collection in site.collections %} {% unless collection.output == false or collection.label == “posts” %} {% capture label %}{{ collection.label }}{% endcapture %} {% if label != written_label %} <h2 id="{{ label | slugify }}" class="archive__subtitle">{{ label }}</h2> {% capture written_label %}{{ label }}{% endcapture %} {% endif %} {% endunless %} {% for post in collection.docs %} {% unless collection.output == false or collection.label == “posts” %} {% include archive-single.html %} {% endunless %} {% endfor %} {% endfor %}
CV
{% include base_path %}
Education
-
Fudan University, BS in Computer Science (Sept 2022 – June 2026)
- GPA: 3.73/4.0, National Scholarship (2024 – 2025, Top 1 of the school)
- Coursework: Programming (Grade: A), Artificial Intelligence (Honors, Grade: A), Digital Image Processing (Grade: A), Set and Graph Theory (Honors, Grade: A)
-
HKUST, Exchange Program on Bachelor’s level (Aug 2024 – Dec 2024)
- Coursework: Design and Analysis of Algorithms, Computer Graphics, Probability
Research Experience
-
Research Intern, CIS Lab, HKUST(GZ) (Mar 2025 – Aug 2025)
- Supervisor: Dr. Zeyu Wang
- Independently curated a large-scale multimodal video dataset with fine-grained emotion labels, and developed emotion-conditioned video generation methods.
- Built a VR platform for immersive emotion elicitation and participated in an open-source project about sketch.
-
Research Intern, Hong Kong Generative AI Research and Development Center (Aug 2024 – Dec 2024)
- Supervisor: Prof. Wenhan Luo
- Constructed a dataset of deepfake human animation videos.
- Implemented a fully temporal convolution network (FTCN) to detect video deepfakes.
Skills
- Programming Languages: Python, C++, C, SQL
- Technologies: PyTorch, Deep Learning, LaTeX, Academic English (TOEFL 103), Photoshop & Premiere
- Research Interests: Video Generation, 3D Vision, HCI
/*
- This file controls what is imported from /_sass *
- Note that the files are processed in the order they are imported, so they are partly sorted by the dependencies. Also, the first two lines of the file are required by Jekyll. */
@import “vendor/breakpoint/breakpoint”,
"themes",
"theme/{{ site.site_theme | default: 'default' | append: '_light' }}",
"theme/{{ site.site_theme | default: 'default' | append: '_dark' }}",
"include/mixins",
"vendor/susy/susy",
"layout/reset",
"layout/base",
"include/utilities",
"layout/tables",
"layout/buttons",
"layout/notices",
"layout/masthead",
"layout/navigation",
"layout/footer",
"syntax",
"layout/forms",
"layout/page",
"layout/archive",
"layout/sidebar",
"layout/json_cv",
"vendor/font-awesome/fontawesome",
"vendor/font-awesome/solid",
"vendor/font-awesome/brands" ;
Markdown
{% include toc %}
Locations of key files/directories
- Basic config options: _config.yml
- Top navigation bar config: _data/navigation.yml
- Single pages: _pages/
- Collections of pages are .md or .html files in:
- _publications/
- _portfolio/
- _posts/
- _teaching/
- _talks/
- Footer: _includes/footer.html
- Static files (like PDFs): /files/
- Profile image (can set in _config.yml): images/profile.png
Tips and hints
- Name a file “.md” to have it render in markdown, name it “.html” to render in HTML.
- Go to the commit list (on your repo) to find the last version GitHub built with Jekyll.
- Green check: successful build
- Orange circle: building
- Red X: error
- No icon: not built
- Academic Pages uses Jekyll Kramdown, GitHub Flavored Markdown (GFM) parser, which is similar to the version of Markdown used on GitHub, but may have some minor differences.
- Some of emoji supported on GitHub should be supposed via the Jemoji plugin
. - The best list of the supported emoji can be found in the Emojis for Jekyll via Jemoji blog post.
- Some of emoji supported on GitHub should be supposed via the Jemoji plugin
- While GitHub Pages prevents server side code from running, client-side scripts are supported.
- This means that Google Analytics is supported, and the wiki should contain the most up-to-date information on getting it working.
Your CV can be written using either Markdown (preview) or generated via JSON (preview) and the layouts are slightly different. You can update the path to the one being used in
_data/navigation.ymlwith the JSON formatted CV being hidden by default.- The Liquid syntax guide is a useful guide for those that want to add functionality to the template or to become contributors to the template on GitHub.
MathJax
Support for MathJax (version 3.* via jsDelivr, documentation) is included in the template:
\[\displaylines{ \nabla \cdot E= \frac{\rho}{\epsilon_0} \\\ \nabla \cdot B=0 \\\ \nabla \times E= -\partial_tB \\\ \nabla \times B = \mu_0 \left(J + \varepsilon_0 \partial_t E \right) }\]The default delimiters of $$...$$ and \\[...\\] are supported for displayed mathematics, while \\(...\\) should be used for in-line mathematics (ex., \(a^2 + b^2 = c^2\))
Note that since Academic Pages uses Markdown which cases some interference with MathJax and LaTeX for escaping characters and new lines, although some workarounds exist. In some cases, such as when you are including MathJax in a citation field for publications, it may be necessary to use \(...\) for inline delineation.
Mermaid diagrams
Academic Pages includes support for Mermaid diagrams (version 11.* via jsDelivr) and in addition to their tutorials and GitHub documentation the basic syntax is as follows:
```mermaid
graph LR
A-->B
```
Which produces the following plot with the default theme applied:
graph LR
A-->B
While a more advanced plot with the forest theme applied looks like the following:
---
config:
theme: 'forest'
---
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
Plotly
Academic Pages includes support for Plotly diagrams via a hook in the Markdown code elements, although those that are comfortable with HTML and JavaScript can also access it via those routes.
In order to render a Plotly plot via Markdown the relevant plot data need to be added as follows:
```plotly
{
"data": [
{
"x": [1, 2, 3, 4],
"y": [10, 15, 13, 17],
"type": "scatter"
},
{
"x": [1, 2, 3, 4],
"y": [16, 5, 11, 9],
"type": "scatter"
}
]
}
```
Important! Since the data is parsed as JSON all of the keys will need to be quoted for the plot to render. The use of a tool like JSONLint to check syntax is highly recommended.
Which produces the following:
{
"data": [
{
"x": [1, 2, 3, 4],
"y": [10, 15, 13, 17],
"type": "scatter"
},
{
"x": [1, 2, 3, 4],
"y": [16, 5, 11, 9],
"type": "scatter"
}
]
}
Essentially what is taking place is that the Plotly attributes are being taken from the code block as JSON data, parsed, and passed to Plotly along with a theme that matches the current site theme (i.e., a light theme, or a dark theme). This allows all plots that can be described via the data attribute to rendered with some limitations for the theme of the plot.
{
"data": [
{
"x": [1, 2, 3, 4, 5],
"y": [1, 6, 3, 6, 1],
"mode": "markers",
"type": "scatter",
"name": "Team A",
"text": ["A-1", "A-2", "A-3", "A-4", "A-5"],
"marker": { "size": 12 }
},
{
"x": [1.5, 2.5, 3.5, 4.5, 5.5],
"y": [4, 1, 7, 1, 4],
"mode": "markers",
"type": "scatter",
"name": "Team B",
"text": ["B-a", "B-b", "B-c", "B-d", "B-e"],
"marker": { "size": 12 }
}
],
"layout": {
"xaxis": {
"range": [ 0.75, 5.25 ]
},
"yaxis": {
"range": [0, 8]
},
"title": {"text": "Data Labels Hover"}
}
}
{
"data": [{
"x": [1, 2, 3],
"y": [4, 5, 6],
"type": "scatter"
},
{
"x": [20, 30, 40],
"y": [50, 60, 70],
"xaxis": "x2",
"yaxis": "y2",
"type": "scatter"
}],
"layout": {
"grid": {
"rows": 1,
"columns": 2,
"pattern": "independent"
},
"title": {
"text": "Simple Subplot"
}
}
}
{
"data": [{
"z": [[10, 10.625, 12.5, 15.625, 20],
[5.625, 6.25, 8.125, 11.25, 15.625],
[2.5, 3.125, 5.0, 8.125, 12.5],
[0.625, 1.25, 3.125, 6.25, 10.625],
[0, 0.625, 2.5, 5.625, 10]],
"type": "contour"
}],
"layout": {
"title": {
"text": "Basic Contour Plot"
}
}
}
Markdown guide
Academic Pages uses kramdown for Markdown rendering, which has some differences from other Markdown implementations such as GitHub’s. In addition to this guide, please see the kramdown Syntax page for full documentation.
Header three
Header four
Header five
Header six
Blockquotes
Single line blockquote:
Quotes are cool.
Tables
Table 1
| Entry | Item | |
|---|---|---|
| John Doe | 2016 | Description of the item in the list |
| Jane Doe | 2019 | Description of the item in the list |
| Doe Doe | 2022 | Description of the item in the list |
Table 2
| Header1 | Header2 | Header3 |
|---|---|---|
| cell1 | cell2 | cell3 |
| cell4 | ce | |
| ll5 | cell6 | |
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
| Foot1 | Foot2 | Foot3 |
Definition Lists
- Definition List Title
- Definition list division.
- Startup
- A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
- #dowork
- Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends.
- Do It Live
- I’ll let Bill O’Reilly explain this one.
Unordered Lists (Nested)
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Ordered List (Nested)
- List item one
- List item one
- List item one
- List item two
- List item three
- List item four
- List item two
- List item three
- List item four
- List item one
- List item two
- List item three
- List item four
Buttons
Make any link standout more when applying the .btn class.
Notices
Basic notices or call-outs are supported using the following syntax:
**Watch out!** You can also add notices by appending `{: .notice}` to the line following paragraph.
{: .notice}
which wil render as:
Watch out! You can also add notices by appending {: .notice} to the line following paragraph.
Footnotes
Footnotes can be useful for clarifying points in the text, or citing information.1 Markdown support numeric footnotes, as well as text as long as the values are unique.2
This is the regular text.[^1] This is more regular text.[^note]
[^1]: This is the footnote itself.
[^note]: This is another footnote.
HTML Tags
Address Tag
1 Infinite LoopCupertino, CA 95014
United States
Anchor Tag (aka. Link)
This is an example of a link.
Abbreviation Tag
The abbreviation CSS stands for “Cascading Style Sheets”.
Cite Tag
“Code is poetry.” —Automattic
Code Tag
You will learn later on in these tests that word-wrap: break-word; will be your best friend.
You can also write larger blocks of code with syntax highlighting supported for some languages, such as Python:
print('Hello World!')
or R:
print("Hello World!", quote = FALSE)
Details Tag (collapsible sections)
The HTML <details> tag works well with Markdown and allows you to include collapsible sections, see W3Schools for more information on how to use the tag.
Collapsed by default
This section was collapsed by default!The source code:
<details>
<summary>Collapsed by default</summary>
This section was collapsed by default!
</details>
Or, you can leave a section open by default by including the open attribute in the tag:
Open by default
This section is open by default thanks to open in the <details open> tag!Emphasize Tag
The emphasize tag should italicize text.
Insert Tag
This tag should denote inserted text.
Keyboard Tag
This scarcely known tag emulates keyboard text, which is usually styled like the <code> tag.
Preformatted Tag
This tag styles large blocks of code.
.post-title {
margin: 0 0 5px;
font-weight: bold;
font-size: 38px;
line-height: 1.2;
and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
Quote Tag
Developers, developers, developers…
–Steve Ballmer
Strike Tag
This tag will let you strikeout text.
Strong Tag
This tag shows bold text.
Subscript Tag
Getting our science styling on with H2O, which should push the “2” down.
Superscript Tag
Still sticking with science and Isaac Newton’s E = MC2, which should lift the 2 up.
Variable Tag
This allows you to denote variables.
Footnotes
The footnotes in the page will be returned following this line, return to the section on Markdown Footnotes.
Page not in menu
This is a page not in the menu. You can use markdown in this page.
Heading 1
Heading 2
Page Archive
{% include base_path %} {% for post in site.pages %} {% include archive-single.html %} {% endfor %}
Publications
{% if site.author.googlescholar %}
{% endif %}
{% include base_path %}
{% if site.publication_category %} {% for category in site.publication_category %} {% assign title_shown = false %} {% for post in site.publications reversed %} {% if post.category != category[0] %} {% continue %} {% endif %} {% unless title_shown %} <h2>{{ category[1].title }}</h2><hr /> {% assign title_shown = true %} {% endunless %} {% include archive-single.html %} {% endfor %} {% endfor %} {% else %} {% for post in site.publications reversed %} {% include archive-single.html %} {% endfor %} {% endif %}
Sitemap
{% include base_path %}
A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.
Pages
{% for post in site.pages %} {% include archive-single.html %} {% endfor %}
Posts
{% for post in site.posts %} {% include archive-single.html %} {% endfor %}
{% capture written_label %}’None’{% endcapture %}
{% for collection in site.collections %} {% unless collection.output == false or collection.label == “posts” %} {% capture label %}{{ collection.label }}{% endcapture %} {% if label != written_label %}
{{ label }}
{% capture written_label %}{{ label }}{% endcapture %} {% endif %} {% endunless %} {% for post in collection.docs %} {% unless collection.output == false or collection.label == “posts” %} {% include archive-single.html %} {% endunless %} {% endfor %} {% endfor %}
Posts by Tags
{% include base_path %} {% include group-by-array collection=site.posts field=”tags” %}
{% for tag in group_names %} {% assign posts = group_items[forloop.index0] %}
{{ tag }}
{% for post in posts %} {% include archive-single.html %} {% endfor %} {% endfor %}
Talk map
This map is generated from a Jupyter Notebook file in talkmap.ipynb, which mines the location fields in the .md files in _talks/.
Talks and presentations
{% if site.talkmap_link == true %}
See a map of all the places I've given a talk!
{% endif %}
{% for post in site.talks reversed %} {% include archive-single-talk.html %} {% endfor %}
Terms and Privacy Policy
{% include base_path %} {% include toc %}
Privacy Policy
The privacy of my visitors is extremely important. This Privacy Policy outlines the types of personal information that is received and collected and how it is used.
First and foremost, I will never share your email address or any other personal information to anyone without your direct consent.
Log Files
Like many other websites, this site uses log files to help learn about when, from where, and how often traffic flows to this site. The information in these log files include:
- Internet Protocol addresses (IP)
- Types of browser
- Internet Service Provider (ISP)
- Date and time stamp
- Referring and exit pages
- Number of clicks
All of this information is not linked to anything that is personally identifiable.
Cookies and Web Beacons
When you visit this site “convenience” cookies are stored on your computer when you submit a comment to help you log in faster to Disqus the next time you leave a comment.
Third-party advertisers may also place and read cookies on your browser and/or use web beacons to collect information. This site has no access or control over these cookies. You should review the respective privacy policies on any and all third-party ad servers for more information regarding their practices and how to opt-out.
If you wish to disable cookies, you may do so through your web browser options. Instructions for doing so can be found on the specific web browsers’ websites.
Google Analytics
Google Analytics is a web analytics tool I use to help understand how visitors engage with this website. It reports website trends using cookies and web beacons without identifying individual visitors. You can read Google Analytics Privacy Policy.
Blog posts
{% include base_path %} {% capture written_year %}’None’{% endcapture %} {% for post in site.posts %} {% capture year %}{{ post.date | date: ‘%Y’ }}{% endcapture %} {% if year != written_year %} <h2 id="{{ year | slugify }}" class="archive__subtitle">{{ year }}</h2> {% capture written_year %}{{ year }}{% endcapture %} {% endif %} {% include archive-single.html %} {% endfor %}
{“/about/”:”https://zane-zyqiu.github.io/”,”/about.html”:”https://zane-zyqiu.github.io/”,”/resume-json”:”https://zane-zyqiu.github.io/cv-json/”,”/resume”:”https://zane-zyqiu.github.io/cv/”,”/md/”:”https://zane-zyqiu.github.io/markdown/”,”/markdown.html”:”https://zane-zyqiu.github.io/markdown/”,”/nmp/”:”https://zane-zyqiu.github.io/non-menu-page/”,”/nmp.html”:”https://zane-zyqiu.github.io/non-menu-page/”,”/wordpress/blog-posts/”:”https://zane-zyqiu.github.io/year-archive/”}
Jupyter notebook markdown generator
Jupyter notebook markdown generator
These .ipynb files are Jupyter notebook files that convert a TSV containing structured data about talks (talks.tsv) or presentations (presentations.tsv) into individual markdown files that will be properly formatted for the academicpages template. The notebooks contain a lot of documentation about the process. The .py files are pure python that do the same things if they are executed in a terminal, they just don’t have pretty documentation.
| <?xml version=”1.0” encoding=”utf-8”?>{% if page.xsl %}<?xml-stylesheet type=”text/xml” href=”{{ ‘/feed.xslt.xml’ | absolute_url }}”?>{% endif %}<feed xmlns=”http://www.w3.org/2005/Atom” {% if site.lang %}xml:lang=”{{ site.lang }}”{% endif %}> |
absolute_url }}” rel=”self” type=”application/atom+xml” /><link href=”{{ ‘/’ | absolute_url }}” rel=”alternate” type=”text/html” {% if site.lang %}hreflang=”{{ site.lang }}” {% endif %}/> |
date_to_xmlschema }}</updated> |
absolute_url | xml_escape }}</id>{% assign title = site.title | default: site.name %}{% if page.collection != “posts” %}{% assign collection = page.collection | capitalize %}{% assign title = title | append: “ | ” | append: collection %}{% endif %}{% if page.category %}{% assign category = page.category | capitalize %}{% assign title = title | append: “ | ” | append: category %}{% endif %}{% if title %} |
smartify | xml_escape }}</title>{% endif %}{% if site.description %} |
xml_escape }}</subtitle>{% endif %}{% if site.author %} |
default: site.author | xml_escape }}</name>{% if site.author.email %} |
xml_escape }}</email>{% endif %}{% if site.author.uri %} |
xml_escape }}</uri>{% endif %}</author>{% endif %}{% if page.tags %}{% assign posts = site.tags[page.tags] %}{% else %}{% assign posts = site[page.collection] %}{% endif %}{% if page.category %}{% assign posts = posts | where: “categories”, page.category %}{% endif %}{% unless site.show_drafts %}{% assign posts = posts | where_exp: “post”, “post.draft != true” %}{% endunless %}{% assign posts = posts | sort: “date” | reverse %}{% assign posts_limit = site.feed.posts_limit | default: 10 %}{% for post in posts limit: posts_limit %}<entry{% if post.lang %}{{“ “}}xml:lang=”{{ post.lang }}”{% endif %}>{% assign post_title = post.title | smartify | strip_html | normalize_whitespace | xml_escape %} |
absolute_url }}” rel=”alternate” type=”text/html” title=”{{ post_title }}” /> |
date_to_xmlschema }}</published> |
default: post.date | date_to_xmlschema }}</updated> |
absolute_url | xml_escape }}</id>{% assign excerpt_only = post.feed.excerpt_only | default: site.feed.excerpt_only %}{% unless excerpt_only %}<content type=”html” xml:base=”{{ post.url | absolute_url | xml_escape }}”><![CDATA[{{ post.content | strip }}]]></content>{% endunless %}{% assign post_author = post.author | default: post.authors[0] | default: site.author %}{% assign post_author = site.data.authors[post_author] | default: post_author %}{% assign post_author_email = post_author.email | default: nil %}{% assign post_author_uri = post_author.uri | default: nil %}{% assign post_author_name = post_author.name | default: post_author %} |
default: “” | xml_escape }}</name>{% if post_author_email %} |
xml_escape }}</email>{% endif %}{% if post_author_uri %} |
xml_escape }}</uri>{% endif %}</author>{% if post.category %}<category term=”{{ post.category | xml_escape }}” />{% elsif post.categories %}{% for category in post.categories %}<category term=”{{ category | xml_escape }}” />{% endfor %}{% endif %}{% for tag in post.tags %}<category term=”{{ tag | xml_escape }}” />{% endfor %}{% assign post_summary = post.description | default: post.excerpt %}{% if post_summary and post_summary != empty %}<summary type="html"><![CDATA[{{ post_summary | strip_html | normalize_whitespace }}]]></summary>{% endif %}{% assign post_image = post.image.path | default: post.image %}{% if post_image %}{% unless post_image contains “://” %}{% assign post_image = post_image | absolute_url %}{% endunless %}<media:thumbnail xmlns:media=”http://search.yahoo.com/mrss/” url=”{{ post_image | xml_escape }}” /><media:content medium=”image” url=”{{ post_image | xml_escape }}” xmlns:media=”http://search.yahoo.com/mrss/” />{% endif %}</entry>{% endfor %}</feed> |
<?xml version=”1.0” encoding=”UTF-8”?> {% if page.xsl %}<?xml-stylesheet type=”text/xsl” href=”{{ “/sitemap.xsl” | absolute_url }}”?> {% endif %}
{% if doc.last_modified_at or doc.date %}
{% if page.last_modified_at %}
</url> {% endfor %}</urlset>