Giter Site home page Giter Site logo

hanxxyu / living-papers Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uwdata/living-papers

0.0 0.0 0.0 7.43 MB

Authoring tools for scholarly communication. Create interactive web pages or formal research papers from markdown source.

License: BSD 3-Clause "New" or "Revised" License

JavaScript 27.05% CSS 1.33% TeX 69.68% Makefile 1.64% Handlebars 0.12% PostScript 0.19%

living-papers's Introduction

Living Papers

Authoring tools for scholarly communication. Create interactive web pages or formal research papers from markdown source. Living Papers is intended to be a "language toolkit" for parsing, transforming, and rendering documents.

To get up and running quickly, use the Living Papers project template. Then take a look at other example articles.

This repo is a research testbed for Living Papers development. There will be bugs. Contributions (issues, PRs, etc) are welcome!

Background

For more about Living Papers' motivation and development please see the Living Papers UIST'23 paper and overview video.

To cite Living Papers in research publication, please use the following citation data:

@inproceedings{heer2023living,
  author = {Heer, Jeffrey and Conlen, Matthew and Devireddy, Vishal and Nguyen, Tu and Horowitz, Joshua},
  title = {Living Papers: A Language Toolkit for Augmented Scholarly Communication},
  year = {2023},
  url = {https://doi.org/10.1145/3586183.3606791},
  doi = {10.1145/3586183.3606791},
  booktitle = {Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology},
  articleno = {42},
  numpages = {13},
  series = {UIST '23}
}

Setup

Pre-Requisites

Before working with Living Papers, set up your local environment:

  1. Install Node.js and npm if you don't have them already. We recommend using a node version manager like nvm. Node v16.17 or higher is recommended.
  2. Install pandoc. You should be able to run pandoc from the command line. A recent version of Pandoc (v2.18 or higher) is recommended.
  3. Install other software packages as needed:
  • To use R code blocks, install R along with the knitr package and any other libraries you wish to use.
  • To publish LaTeX / PDF output, install a TeX distribution such as TeX Live. You should be able to run pdflatex and bibtex from the command line.

Usage Instructions

To use Living Papers for a new publishing project, you can install the @living-papers/cli npm package, which provides the lpub utility to convert source to output documents.

That said, we recommend copying the project template repo for a pre-configured authoring setup.

Developer Instructions

Clone this monorepo, run npm install to install JavaScript dependencies.

Once installed, you can:

  • Run npm run build to build the monorepo package exports.
  • Run npm run test to run test cases across monorepo packages.
  • Run npm run lint to lint source code across monorepo packages.
  • Run npx lpub filename.md to compile a source file in the current directory.

The examples folder contains example Living Papers articles. Within the folder for each example, run npm run build to produce compiled output article(s). Be sure to run npm run build at the monorepo level before trying to build examples.

Package Overview

This repository uses a monorepo organization. Here is an overview of the folder structure:

  • examples: Example Living Papers articles
  • packages: Primary Living Papers packages
    • ast: Abstract Syntax Tree (AST) manipulation
    • cli: Command line interface programs
    • compiler: Article parser and compiler
    • components: Web components for HTML output
    • runtime: Reactive runtime for HTML output
    • runtime-compiler: JavaScript parser/compiler for the reactive runtime
  • templates: Article templates
    • html: Built-in templates for HTML output
    • latex: Built-in templates for LaTeX output

living-papers's People

Contributors

jheer avatar tu21897 avatar twotau avatar mathisonian avatar joshuahhh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.