Skip to content

Aetf/hexo-next-publist

Repository files navigation

hexo-next-publist

npm Libraries.io dependency status for GitHub repo GitHub Workflow Status

NPM

Show a list of publications anywhere in the markdown post. There is also a customizable panel to filter the results.

Demo

The research page in my my blog are generated by this plugin. Please go and take a look. The source code is available on Github.

Installation

npm i -S hexo-next-publist

This will install hexo-next-publist and add it as a dependency in your package.json.

NOTE: There are also several peer dependencies you may need to install. Follow the instruction printed when running the previous command to install the missing ones.

Usage

There are three pieces to be defined:

  1. The actual tag, which also defines the set of conferences
  2. The bib source file, which defines the list of publications
  3. The publication assets directory, which contains the (optional) downloadable files

Tag

To create a publist, use the publist tag in the post markdown source. The only argument in the opening tag is the name of bib file.

The content between the tags defines any conferences the bibtex file will refer. More examples.

{% publist mypubs %}
version: 2
pub_dir: assets/pub
highlight_authors: []
# extra filters to show, they will filter on the item using given path
extra_filters: []
venues:
  MLSys:
    category: Conferences
    occurrences:
    # key is used in publist_confkey, must be unique across conferences
    - key: MLSys'20
      # conference full name
      name: The 3rd Conference on Machine Learning and Systems
      # conference date for sorting (optional)
      date: 2020-03-02
      # conference website (optional)
      url: https://mlsys.org/Conferences/2020
      # conference acceptance rate (optional)
      acceptance: 19.2%
{% endpublist %}

Bib source file

Bib source files are treated as data sources, so they need to be placed in the source/_data folder. You can then refer to them via the file name when using the publist tag.

You'll need to add some publist specific fields in the bib file to control the handling, and they will be striped out when shown in the UI.

Example bib file

@inproceedings{yu20mlsys,
    title = {{Salus}: Find-grained {GPU} Sharing primitives for Deep Learning Applications},
    author = {Yu, Peifeng and Chowdhury, Mosharaf},
    booktitle