X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=docs%2Ftips-and-tricks.md;h=94167fbad4b8e6aaed078ab12a44ab012f059b9e;hb=refs%2Fheads%2Fdependabot%2Fnpm_and_yarn%2Fdns-packet-1.3.4;hp=9f35987eae990b8f4c5f991529cdcca315dbe20d;hpb=ff0b5150f1cef5456a685b492ee4f4f02b6e2ef5;p=github%2Fbastienwirtz%2Fhomer.git diff --git a/docs/tips-and-tricks.md b/docs/tips-and-tricks.md index 9f35987..94167fb 100644 --- a/docs/tips-and-tricks.md +++ b/docs/tips-and-tricks.md @@ -48,36 +48,36 @@ and then simply reference these pre-defined (anchored) tags in each item like so ```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' ``` @@ -85,7 +85,7 @@ This will map your homer config directory (For example, /docker/appdata/homer/) 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 @@ -113,6 +113,64 @@ docker create \ ## 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:`.