Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/toolbuddy/papogen

Use Sass/CSS + Pug + Node.js to generate beautiful static website.
https://github.com/toolbuddy/papogen

css-templates documentation generator papercss pug sass template-generator website

Last synced: 3 months ago
JSON representation

Use Sass/CSS + Pug + Node.js to generate beautiful static website.

Awesome Lists containing this project

README

        

![](./design/badge.png)

# papoGen
[![npm version](https://img.shields.io/npm/v/papogen.svg?style=for-the-badge)](https://badge.fury.io/js/papogen)
[![npm downloads](https://img.shields.io/npm/dm/papogen.svg?style=for-the-badge)](https://www.npmjs.com/package/papogen)

> Let's *papoGen*!

*papoGen* - Quickly generate webpages without any web development experience!

---
## About

*papoGen* is a simple static webpage generator. You do not need any prior experience in web development to generate your webpage; the only prerequisite is a basic understanding of Markdown, JSON, and YAML. You can design your template or use any of our stock ones to generate pages of your own in little to no time at all. *papoGen* is developed by [*Toolbuddy*](https://github.com/toolbuddy). If you like *papoGen* or any of our other tools, please give us a star! If you have any problems or suggestions, please feel free to contact us or open an issue. We'd love to help you.

---
## Usage

> [使用說明 - 中文詳細版本](example/)

1. **Installation**
```bash
» [sudo] npm install papogen -g
```
* Manual
* Explains each parameters that we currently support in detail.
* See more in our example [README](https://github.com/toolbuddy/papoGen/blob/master/example/README.md).
2. **Generation**
```bash
» papogen -s test/ -o docs/ -t papoGen -m doc
```

---
## Description

* The [*papoGen* document (i.e., DEMO page)](https://toolbuddy.github.io/papoGen/) is generated by *papoGen*!
* Uses JSON files under the folder `test/`
* In `test/`, there are several categories of scripts, which are in their own directory.
* Additionally, there is a `README.md` in each respective directory, containing explanation for the format that we support.
* View more:
* [doc page](https://toolbuddy.github.io/papoGen/)
* [resume page](https://toolbuddy.github.io/papoGen/resume)
* Generated by *script template*
* Use `-h` to list all supported scripts.
* Use `papogen -c /<format_1>/<format_2>/... -o <output>` to generate using our template files.
* `<script>` is the blue one. (in `-h` output message)
* `<format>` is the grey one. (in `-h` output message)
* Version after `0.0.12` support several templates specified by using `/` to separate each format.
* You can use `json/all` to get all currently supported copy to target the output directory.
* Check our `example/` to see more!

---
## *papoGen* Commands

* Command Format
```bash
» papogen -s [--src] <src_path> \
-o [--out] <out_path> \
-t [--title] <title> \
-g [--gen] <type> \
-m [--model] <name> \
--theme <theme> \
-h [--help]
```

| Option | Value | Description |
|---|---|---|
| `-s [--src]` | URL | The URL of the source files' folder |
| `-o [--out]` | URL | The URL of the destination files' folder |
| `-t [--title]` | STRING | The title you want to show on webpage |
| `-g [--gen]` | `md` / `json` / `yaml` | The type of your source files |
| `-m [--model]` | `md_doc`* / `doc` / `resume` / `papogen`+ | The model template you want to generate with |
| `--theme` | `paper`# / `papogen`+ | The theme you want to render on your wabpage |
| `-h [--help]` | NONE | Show *papoGen* helping manual |

* `md_doc`*: The only model supports Markdown.
* `paper`#: Default theme
* `papogen`+: The only theme supports `papogen` template. Notice that if you have already given the template as `papogen` (i.e., `-m papogen`), we will also set the theme as `papogen` (i.e., `--theme papogen`) automatically.

### Format: Markdown (Recommended!)

* Use Markdown format as configuration
* Different from the following format
* Generate from Markdown files
* Support multiple Markdown files as input
* Supporting model: `md_doc`
* Example command
```bash
» papogen -s test/md -o docs/md -g md -m md_doc -t Graph\ Theory
```

### Format: JSON (Default)

* Use JSON format as configuration.
* Example command: See more in [here](https://github.com/toolbuddy/papoGen/blob/master/test/json/README.md).
```bash
# Use directly (from source code)
» node main.js -s test/ -o docs/ -t papoGen
# By installation
» papogen -s test/ -o docs/ -t papoGen -m doc
```

* After specifying the `src` directory, *PaperCSS* will fetch all the JSON files under `src` and use the *filename* for each file as "tag" in output. the
* *papoGen* will base on the input and generate your content (see more detail below)
* Currently support: `text` (see the source directory: `test/` as input, and destination directory: `docs/` as output)

### Format: YAML

* Use YAML format as configuration.
* Some formats are defined in [JSON](https://github.com/toolbuddy/papoGen/blob/master/test/json/README.md).
* Example command:
```bash
# Use directly (from source code)
» node main.js -s test/ -o docs/ -g yaml -t papoGen
# By installation
» papogen -s test/ -o docs/ -t papoGen -m doc -g yaml
```

* After specifying the `src/` directory, *PaperCSS* will fetch all files in JSON format under `src/` and use the *filename* for each as "tag" in output.
* *papoGen* will base on the input and generate your content (see more detail below)
* Currently support: `text` (see the source directory: `test/` as input, and destination directory: `docs/` as output)

---
## DEMO

* Example( *中文介紹* ) - 2018 `Digital Ocean Meetup`, 2018 `ModernWeb`
* [papoGen - 使用說明 ](https://github.com/yungshenglu/papoGen-demo)
* Example: Generated by *papoGen* format
* [JSON - doc](https://toolbuddy.github.io/papoGen/out/doc)
* [JSON - resume](https://toolbuddy.github.io/papoGen/out/resume/)
* [JSON - papogen](https://toolbuddy.github.io/papoGen/out/papogen/)
* [YAML - doc](https://toolbuddy.github.io/papoGen/out/doc)
* [YAML - resume](https://toolbuddy.github.io/papoGen/out/resume/)
* Example: Generated directly from **Markdown** format
* [From Markdown - md_doc](https://toolbuddy.github.io/papoGen/out/md/)
* Support "MathJax" & "Table of content"!
* Graph Theory Tutorial:
* [ch3](https://toolbuddy.github.io/Graph-Theory/matching-factor/index.html)
* [ch4](https://toolbuddy.github.io/Graph-Theory/connectivity-path/)
* [simulation project - 802.11 wireless illustration](https://kevinbird61.github.io/simulation-wireless-802.11/)
* [gRPC practice & learn](https://kevinbird61.github.io/grpc-practice/)

---
## *papoGen* Wiki

For more information about *papoGen*, you can refer our [wiki](https://github.com/toolbuddy/papoGen/wiki) in this repository.

### CHANGELOG

* See [here](https://github.com/toolbuddy/papoGen/wiki).
* Screenshot

| Version | Table of Vontent | Main Page |
| ------- | ------- | ------- |
| `v0.2.2` | ![](res/v0.2.2_toc.png) | ![](res/v0.2.2_preview.png) |

### Workflow

* See [here](https://github.com/toolbuddy/papoGen/wiki)

---
## WIP

If you want to contribute to *papoGen*, use `git clone` with `--recursive` to clone the entire project (or use `git submodule update` to update your old version).

* [papoGen.css](https://github.com/toolbuddy/papoGen.css)
* Our new web UI - *papoGen.css* is creating now!
* Introduce a new theme and template into `papoGen`.

---
## Authors

* [Kevin Cyu](https://github.com/kevinbird61), [email protected]
* [David Lu](https://github.com/yungshenglu), [email protected]