https://github.com/cdiggins/cdiggins.github.io
Christopher Diggins' Website
https://github.com/cdiggins/cdiggins.github.io
Last synced: 9 months ago
JSON representation
Christopher Diggins' Website
- Host: GitHub
- URL: https://github.com/cdiggins/cdiggins.github.io
- Owner: cdiggins
- License: mit
- Created: 2017-01-02T18:18:54.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-10-27T00:50:36.000Z (over 3 years ago)
- Last Synced: 2025-02-26T14:48:21.800Z (about 1 year ago)
- Language: HTML
- Homepage: https://cdiggins.github.io
- Size: 7.37 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# cdiggins.github.io
This is the web-site for my ([Christopher Diggins](http://cdiggins.github.io)) home page, blog, and blog generator.
The blog is built from Git-flavored markdown sourced and Mustache (CTemplate) style template files using tools I created with the [Myna parsing library](https://github.com/cdiggins/myna-parser).
## License
The tool chain is licensed under the MIT license, and the content is licended under the Common Creative Sharealike Attribution license.
## Depdendencies
In order to build the web-site you will need to have [node.js](https://nodejs.org/en/) and [npm](https://www.npmjs.com) installed. Once these are installed the other dependency will be the [myna-parser](https://www.npmjs.com/package/myna-parser)
which can be installed by using `npm install` command.
## Cloning this Site
### Dependencies
1. [node.js](https://nodejs.org/en/)
1. [npm](https://www.npmjs.com)
### Steps
1. Create a [Github pages site](https://pages.github.com/) by creating new repository named \.github.io, where \ is your username (or organization name) on GitHub.
1. Clone that new repository to your local working computer
1. [Unzip this repository](https://github.com/cdiggins/cdiggins.github.io/archive/master.zip) into your local clone.
1. Customize the [`src\data.js`](https://github.com/cdiggins/cdiggins.github.io/blob/master/src/data.js) file with your own custom information.
1. Run `node src\build.js`
1. The HTML files in the root folder and the `blog` folder will now be updated.
### Writing an Article
1. Create a new markdown file in the `src\articles` folder, say, `second.md`
1. Write the content of the article
1. Update the file `src\articles.json` file with a new record containing the title, description, filename, and date.
1. Run `node src\build.js`
## Customizing Templates
There are several template files in the folder `src\templates`. These files use a recursive variant of [Mustache](https://mustache.github.io/mustache.5.html) to enable variable expansion. Mustache variables are either:
* Escaped variables: `{{varname}}`
* Unescaped variables: `{{{varname}}}` or `{{&varname}}`
* Sections: `{{varname}}`
Unlike the original Mustache, the recursive variant will continue to expaned mustache variables, if expansion results in new Mustache variables.
## Plugins, Themes, and More
This blog generator intentionally has no plugin or theme system. This way I can keep the code extremely simple and easy to understand. If you want additional functionality that you can't achieve using the templates and data file, then you customize the file `src\build.js` which is under 200 lines long and commented.