You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@
9
9
An endpoint that accepts [Micropub](http://micropub.net/) requests, formats them into [Jekyll](http://jekyllrb.com/) posts before pushing them to a configured GitHub repository. This enables updating a Jekyll blog through a [Micropub client](https://indieweb.org/Micropub/Clients).
10
10
11
11
### _Early alpha_
12
+
12
13
Supported:
13
14
* Creation of posts
14
15
* Uploading of media
@@ -19,16 +20,19 @@ Unsupported:
19
20
* Deletes
20
21
21
22
## Requirements
22
-
Requires at least Node.js 10.0.0.
23
+
24
+
Requires at least Node.js 14.0.0.
23
25
24
26
This project contains a [https://yarnpkg.com/](Yarn) lock file which is a faster and more secure alternative to the npm client.
25
27
26
28
## Installation
29
+
27
30
Install as a normal Node.js application. Add the required [configuration](#configuration) values via environment variables or similar mechanism. Or deploy to Heroku:
Once deployed, your Micropub endpoint can be found at `/micropub/main` e.g. `https://example.com/micropub/main`.
33
37
34
38
If you specified more than one site using the `MICROPUB_SITES_JSON` variable, then each endpoint will be available under the name of its respective key, i.e. `/micropub/key-name`.
@@ -41,7 +45,9 @@ To enable automatic discovery for your [Micropub endpoint](https://indieweb.org/
41
45
```
42
46
43
47
## Configuration
48
+
44
49
### Required values
50
+
45
51
The following variables are required to enable a Micropub client to push content to your GitHub repository.
46
52
47
53
Variable | Description
@@ -54,6 +60,7 @@ Variable | Description
54
60
`MICROPUB_SITE_URL` | URL where site is published. Example: `https://johndoe.example`
55
61
56
62
### Syndication
63
+
57
64
The following variables can be used to set [syndication target(s)](https://www.w3.org/TR/micropub/#syndication-targets).
58
65
59
66
Variable | Description
@@ -63,6 +70,7 @@ Variable | Description
63
70
`MICROPUB_SITE_SYNDICATE_TO` | Complex syndication target. Provided as a JSON array, e.g.: `[{"uid":"https://social.example/johndoe","name":"@johndoe on Example Social Network","service":{"name":"Example Social Network","url":"https://social.example/","photo":"https://social.example/icon.png"},"user":{"name":"johndoe","url":"https://social.example/johndoe","photo":"https://social.example/johndoe/photo.jpg"}}]`. Not compatible with `MICROPUB_SITES_JSON`.
64
71
65
72
### Output style
73
+
66
74
The following variables allow you to configure the name and destination for files pushed to your repository. These variables will also accept conditional values ([described below](#conditional-values)).
67
75
68
76
Variable | Description
@@ -79,6 +87,7 @@ Variable | Description
79
87
These configuration options can all be given different values for different types of content by setting up conditions under which each configuration applies. See [conditional values](#conditional-values).
80
88
81
89
### Complex configuration
90
+
82
91
Variable | Description
83
92
-------- | -----------
84
93
`MICROPUB_SITES_JSON` | Complex settings and/or multiple sites (including their syndication targets) provided as JSON, e.g.: `'{"site1":{"url":"https://site1.example/","github":{"repo":"site1"},"token":[{"endpoint":"https://tokens.indieauth.com/token","me":"https://site1.example/"}]},"site2":{"url":"http://site2.example/","github":{"repo":"site2"},"token":[{"endpoint":"https://tokens.indieauth.com/token","me":"http://site2.example/"}]}}'`
@@ -109,16 +118,19 @@ Conditions are [fulfills expressions](https://github.com/voxpelli/node-fulfills#
109
118
_Please [open an issue](https://github.com/voxpelli/webpage-micropub-to-github/issues/new) and let me know what conditions you would like to set up._
110
119
111
120
## Modules used
121
+
112
122
*[micropub-express](https://github.com/voxpelli/node-micropub-express) – an [Express](http://expressjs.com/) Micropub endpoint that accepts and verifies Micropub requests and calls a callback with a parsed `micropubDocument`.
113
123
*[format-microformat](https://github.com/voxpelli/node-format-microformat) – a module that takes a `micropubDocument` as its input, and converts this data into a standard that can be published elsewhere. Currently supports the Jekyll format.
114
124
*[github-publish](https://github.com/voxpelli/node-github-publish) – a module that takes a filename and content and publishes it to a GitHub repository. The formatted data generated by `format-microformat` can be published to a Jekyll blog hosted on a GitHub, or a [GitHub Pages](https://pages.github.com/) site.
115
125
116
126
## Related
127
+
117
128
*[My 2015 in IndieWeb](http://voxpelli.com/2016/03/my-2015-in-indieweb/) – post from 2016-03-12 by @voxpelli
118
129
*[miklb/jekyll-indieweb](https://github.com/miklb/jekyll-indieweb) – a Jekyll theme built with the IndieWeb in mind
119
130
*[voxpelli/voxpelli.github.com](https://github.com/voxpelli/voxpelli.github.com) – first Jekyll blog to use this Micropub endpoint
120
131
*[webmention.herokuapp.com](https://webmention.herokuapp.com/) – another IndieWeb project suited for Jekyll, this one for [Webmention](https://indieweb.org/webmention)
0 commit comments