```yaml
- name: "VS Code"
logo: "/assets/vscode.png"
- subtitle: "Develope Code Anywhere, On Anything!"
- <<: *App # Regerence to the predefined "App" Tag
+ subtitle: "Develop Code Anywhere, On Anything!"
+ <<: *App # Reference to the predefined "App" Tag
url: "https://vscode.example.com/"
target: "_blank" # optional html tag target attribute
````
-Then when Homer reads your config, it will substitute your anchors automatically, the the above example is equal to:
+Then when Homer reads your config, it will substitute your anchors automatically, the above example is equal to:
```yaml
- name: "VS Code"
logo: "/assets/vscode.png"
- subtitle: "Develope Code Anywhere, On Anything!"
+ subtitle: "Develop Code Anywhere, On Anything!"
tag: "App"
tagstyle: "is-medium is-info"
url: "https://vscode.example.com/"
target: "_blank" # optional html tag target attribute
```
-The end result is that if you want to update the name or style of any particular tag, just update it once, in the tags section!
+The end result is that if you want to update the name or style of any particular tag, just update it once, in the tags section!
Great if you have a lot of services or a lot of tags!
## Remotely edit your config with Code Server
#### `by @JamiePhonic`
-Homer doesn't yet provide a way to edit your configuration from inside Homer itself, but that doesn't mean it cant be done!
+Homer doesn't yet provide a way to edit your configuration from inside Homer itself, but that doesn't mean it can't be done!
You can setup and use [Code-Server](https://github.com/cdr/code-server) to edit your `config.yml` file from anywhere!
If you're running Homer in docker, you can setup a Code-Server container and pass your homer config directory into it.
-Simply pass your homer config directory as and extra -v parameter to your code-server container:
+Simply pass your homer config directory as an extra -v parameter to your code-server container:
```
-v '/your/local/homer/config-dir/':'/config/homer':'rw'
```
As a bonus, Code-Server puts the "current folder" as a parameter in the URL bar, so you could add a `links:` entry in Homer that points to your code-server instance with the directory pre-filled for essentially 1 click editing!
-For example:
+For example:
```yml
links:
- name: Edit config
## Get the news headlines in Homer
+
+### Mapping Fields
+Most times, the url you're getting headlines from follows a different schema than the one expected by Homer.
+
+For example, if you would like to show jokes from ChuckNorris.io, you'll find that the url https://api.chucknorris.io/jokes/random is giving you info like this:
+
+```json
+{
+ "categories": [],
+ "created_at": "2020-01-05 13:42:22.089095",
+ "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
+ "id": "MR2-BnMBR667xSpQBIleUg",
+ "updated_at": "2020-01-05 13:42:22.089095",
+ "url": "https://api.chucknorris.io/jokes/MR2-BnMBR667xSpQBIleUg",
+ "value": "Chuck Norris can quitely sneak up on himself"
+}
+```
+
+but... you need that info to be transformed to something like this:
+
+```json
+{
+ "title": "MR2-BnMBR667xSpQBIleUg",
+ "content": "Chuck Norris can quitely sneak up on himself"
+}
+```
+
+Now, you can do that using the `mapping` field in your `message` configuration. This example would be something like this:
+
+```yml
+message:
+ url: https://api.chucknorris.io/jokes/random
+ mapping:
+ title: 'id'
+ content: 'value'
+```
+
+As you would see, using the ID as a title doesn't seem nice, that's why when a field is empty it would keep the default values, like this:
+
+```yml
+message:
+ url: https://api.chucknorris.io/jokes/random
+ mapping:
+ content: 'value'
+ title: "Chuck Norris Facts!"
+```
+
+and even an error message in case the `url` didn't respond or threw an error:
+
+```yml
+message:
+ url: https://api.chucknorris.io/jokes/random
+ mapping:
+ content: 'value'
+ title: "Chuck Norris Facts!"
+ content: "Message could not be loaded"
+```
+
#### `by @JamiePhonic`
Homer allows you to set a "message" that will appear at the top of the page, however, you can also supply a `url:`.