Academic Pages - 学术个人网站模板
Academic Pages - 学术个人网站模板
项目标题与描述
Academic Pages 是一个基于 Jekyll 的 GitHub Pages 模板,专为学术人员设计。它提供了一种简单的方式来创建和管理个人学术网站,支持展示出版物、演讲、教学经历等内容。该项目是一个开箱即用的模板,用户可以通过 GitHub Pages 免费托管自己的网站。
功能特性
- 多内容类型支持:包括出版物、演讲、教学经历、博客文章等。
- 响应式设计:适配各种设备屏幕。
- Markdown 支持:所有内容都可以用 Markdown 编写。
- 数据驱动:通过 YAML 和 JSON 文件管理内容。
- 多种布局:提供归档页、标签页、分类页等多种布局。
- 地图功能:展示演讲地点的集群地图。
- CV 支持:支持 Markdown 和 JSON 两种格式的简历。
- 社交分享:集成社交媒体分享功能。
- 评论系统:支持 Disqus、Facebook 等评论系统。
安装指南
- 注册 GitHub 账户:如果没有 GitHub 账户,请先注册并确认邮箱。
- 使用模板:点击仓库右上角的 "Use this template" 按钮。
- 创建仓库:在 "New repository" 页面,输入仓库名为 "[你的 GitHub 用户名].github.io"。
- 配置网站:设置站点范围的配置并添加你的内容。
- 上传文件:将 PDF 等文件上传到
files/
目录。 - 本地运行(可选):
- 安装 Ruby、Bundler 和 Node.js
- 运行
bundle install
安装依赖 - 运行
bundle exec jekyll serve
启动本地服务器
使用说明
基本使用
这是论文的详细描述...
演讲地图
项目包含一个 Jupyter Notebook (talkmap.ipynb
),可以从 _talks/
目录中的 Markdown 文件提取位置信息并生成演讲地点地图。
核心代码
演讲地图生成脚本
# Leaflet cluster map of talk locations
import frontmatter
import glob
import getorg
from geopy import Nominatim
from geopy.exc import GeocoderTimedOut
TIMEOUT = 5
g = glob.glob("_talks/*.md")
geocoder = Nominatim(user_agent="academicpages.github.io")
location_dict = {}
for file in g:
data = frontmatter.load(file)
data = data.to_dict()
if 'location' not in data:
continue
title = data['title'].strip()
venue = data['venue'].strip()
location = data['location'].strip()
description = f"{title}<br />{venue}; {location}"
try:
location_dict[description] = geocoder.geocode(location, timeout=TIMEOUT)
print(description, location_dict[description])
except Exception as ex:
print(f"Error processing {location}: {ex}")
m = getorg.orgmap.create_map_obj()
getorg.orgmap.output_html_cluster_map(location_dict, folder_name="talkmap", hashed_usernames=False)
Markdown 生成脚本
# Publications markdown generator
import pandas as pd
import os
publications = pd.read_csv("publications.tsv", sep="\t", header=0)
html_escape_table = {"&": "&", '"': """, "'": "'"}
def html_escape(text):
return "".join(html_escape_table.get(c,c) for c in text)
for row, item in publications.iterrows():
md_filename = f"{item.pub_date}-{item.url_slug}.md"
html_filename = f"{item.pub_date}-{item.url_slug}"
year = item.pub_date[:4]
md = f"""---
title: "{item.title}"
collection: publications
permalink: /publication/{html_filename}
date: {item.pub_date}
venue: '{html_escape(item.venue)}'"""
if len(str(item.excerpt)) > 5:
md += f"\nexcerpt: '{html_escape(item.excerpt)}'"
if len(str(item.paper_url)) > 5:
md += f"\npaperurl: '{item.paper_url}'"
md += f"\ncitation: '{html_escape(item.citation)}'\n---\n"
if len(str(item.paper_url)) > 5:
md += f"\n<a href='{item.paper_url}'>Download paper here</a>\n"
if len(str(item.excerpt)) > 5:
md += f"\n{html_escape(item.excerpt)}\n"
md += f"\nRecommended citation: {item.citation}"
with open(f"../_publications/{md_filename}", 'w') as f:
f.write(md)
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码