<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ceres, branch v0.3.0</title>
<subtitle>Recipe server for your favorite dishes</subtitle>
<id>https://cgit.xengineering.eu/ceres/atom?h=v0.3.0</id>
<link rel='self' href='https://cgit.xengineering.eu/ceres/atom?h=v0.3.0'/>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/'/>
<updated>2023-05-01T17:33:26Z</updated>
<entry>
<title>Update CHANGELOG.md for release v0.3.0</title>
<updated>2023-05-01T17:33:26Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-05-01T17:33:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=2357f619d3f29174a97c3b6a3eddb53ee34dd050'/>
<id>urn:sha1:2357f619d3f29174a97c3b6a3eddb53ee34dd050</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove link to Gemini specification</title>
<updated>2023-05-01T17:24:04Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-05-01T17:24:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=20b251b70c475e718508c9ac7c5258d9a9e4ae29'/>
<id>urn:sha1:20b251b70c475e718508c9ac7c5258d9a9e4ae29</id>
<content type='text'>
This project does not use the Gemini markup anymore. It was replaced by
JSON.
</content>
</entry>
<entry>
<title>Implement ingredient summary</title>
<updated>2023-05-01T17:20:43Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-05-01T17:20:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=60b7cf6456a40fef76ca2aecc4dd79956a22b410'/>
<id>urn:sha1:60b7cf6456a40fef76ca2aecc4dd79956a22b410</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Show link just if not empty</title>
<updated>2023-05-01T16:15:21Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-05-01T16:12:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=c646cc886691de6ca0e4cf584f4385e3dadf5f79'/>
<id>urn:sha1:c646cc886691de6ca0e4cf584f4385e3dadf5f79</id>
<content type='text'>
Otherwise this is confusing.
</content>
</entry>
<entry>
<title>Switch to tripel to describe ingredients</title>
<updated>2023-05-01T16:07:55Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-05-01T16:07:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=358c5e76d67477b26d841985649b9279d7633fc3'/>
<id>urn:sha1:358c5e76d67477b26d841985649b9279d7633fc3</id>
<content type='text'>
It is always the same:

- amount float32
- unit   string
- type   string

This is good as a starting point. Later the types of ingredients might
have to be tracked. In this a string as key is maybe not the best.
</content>
</entry>
<entry>
<title>Focus search input on index page load</title>
<updated>2023-04-28T15:22:59Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-28T15:22:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ca3c6edebc835eadbaa5c1f432193ad7b036bf86'/>
<id>urn:sha1:ca3c6edebc835eadbaa5c1f432193ad7b036bf86</id>
<content type='text'>
This allows the user to start typing without clicking into the input
field.
</content>
</entry>
<entry>
<title>Implement search bar on index page</title>
<updated>2023-04-28T14:53:10Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-28T10:53:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=127aede391be9defffb2d9afd89ef2c1a9e99627'/>
<id>urn:sha1:127aede391be9defffb2d9afd89ef2c1a9e99627</id>
<content type='text'>
This is way it is way easier to filter recipes by name.
</content>
</entry>
<entry>
<title>Replace simple.css submodule by release copy</title>
<updated>2023-04-28T10:26:01Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-28T10:26:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=2d9e1f6aef7abcd436f5cd5e2f5b5974b329b33e'/>
<id>urn:sha1:2d9e1f6aef7abcd436f5cd5e2f5b5974b329b33e</id>
<content type='text'>
This is way simpler to handle since you can get a full tarball of Ceres
with everything included which is necessary to run it.

The LICENSE of simple.css allows such a copy and stays inside the copy
to make clear that this folder uses the simple.css license and not the
one of Ceres.
</content>
</entry>
<entry>
<title>Fix add_recipes with default JSON</title>
<updated>2023-04-28T08:44:29Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-26T05:05:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=f624c71a26a522b2ea387a9f7e9f6ec84341b704'/>
<id>urn:sha1:f624c71a26a522b2ea387a9f7e9f6ec84341b704</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix empty title regression</title>
<updated>2023-04-28T08:44:29Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-26T05:04:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=12daf84f2df56b639f7f37a7894612d5355a7c37'/>
<id>urn:sha1:12daf84f2df56b639f7f37a7894612d5355a7c37</id>
<content type='text'>
Empty title should be avoided because the recipe otherwise just
disappears.
</content>
</entry>
<entry>
<title>Introduce routing table</title>
<updated>2023-04-28T08:44:29Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-25T15:39:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=f456fa1a6d3a6633af3b420f1eddbc1a96ffcdf1'/>
<id>urn:sha1:f456fa1a6d3a6633af3b420f1eddbc1a96ffcdf1</id>
<content type='text'>
This removes a lot of repetative code.
</content>
</entry>
<entry>
<title>Verify JSON input</title>
<updated>2023-04-28T08:44:19Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T18:38:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=fff3d70ba494214e434083c9d0e32f3def32138f'/>
<id>urn:sha1:fff3d70ba494214e434083c9d0e32f3def32138f</id>
<content type='text'>
Without verification the text input is simply saved to the file. This is
no problem for the recipe editing but since the json.Unmarshal functino
will also fail on the index and recipe page this recipe will simply
disappear from the web server while the file still exists on disk.
</content>
</entry>
<entry>
<title>Replace JavaScript on edit page by form</title>
<updated>2023-04-23T20:01:50Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-23T20:01:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=205a36008672c7137e9190f243a9ba137d679e11'/>
<id>urn:sha1:205a36008672c7137e9190f243a9ba137d679e11</id>
<content type='text'>
This is actually possible when using &lt;textarea&gt; instead of &lt;pre&gt;. With
this change the recipe server has full support for browsers without
JavaScript.
</content>
</entry>
<entry>
<title>Update to simple.css v.2.2.0</title>
<updated>2023-04-23T18:08:32Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-23T18:08:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=0543c1cc8b7d210079e8de730d6eba9d9d4b878e'/>
<id>urn:sha1:0543c1cc8b7d210079e8de730d6eba9d9d4b878e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move delete button from edit page to recipe page</title>
<updated>2023-04-22T18:30:46Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T18:30:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ce20e58eac9432721f281a351d4ebe4f870c9989'/>
<id>urn:sha1:ce20e58eac9432721f281a351d4ebe4f870c9989</id>
<content type='text'>
This reduces the number of clicks to delete a recipe.
</content>
</entry>
<entry>
<title>Update edit page</title>
<updated>2023-04-22T18:28:54Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T18:28:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=13542dd8073ee48aa25ef4958fd2b2da5d848092'/>
<id>urn:sha1:13542dd8073ee48aa25ef4958fd2b2da5d848092</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use &lt;section&gt; elements for recipe steps</title>
<updated>2023-04-22T18:09:48Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T18:09:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=1dec0af24f22755e3d6debecaa8635dcab918698'/>
<id>urn:sha1:1dec0af24f22755e3d6debecaa8635dcab918698</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve representation of step ingredients</title>
<updated>2023-04-22T17:57:44Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T17:57:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=b7a2d6b3521508d6ae8bb94d281f049f59001aa1'/>
<id>urn:sha1:b7a2d6b3521508d6ae8bb94d281f049f59001aa1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove markup.go</title>
<updated>2023-04-22T17:29:36Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T17:29:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=0b2ae5cbbee6637d5afe0a891f203f7eb7502c1e'/>
<id>urn:sha1:0b2ae5cbbee6637d5afe0a891f203f7eb7502c1e</id>
<content type='text'>
Markup parsing is not needed anymore since recipes are now modeled as
JSON text.
</content>
</entry>
<entry>
<title>Remove legacy Recipe struct</title>
<updated>2023-04-22T17:28:54Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T17:28:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=7bb54a56e993723b2867efbafddd1b9abfebcd9e'/>
<id>urn:sha1:7bb54a56e993723b2867efbafddd1b9abfebcd9e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement index page with JSON</title>
<updated>2023-04-22T17:17:04Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T16:41:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=a0cc83b88357e73a6bcae156b26029fc5257ac20'/>
<id>urn:sha1:a0cc83b88357e73a6bcae156b26029fc5257ac20</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Convert tabs to four spaces in example recipes</title>
<updated>2023-04-22T15:55:27Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T15:55:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=a13564a8f09ff0948a4dbbd434b7e1700164cdb4'/>
<id>urn:sha1:a13564a8f09ff0948a4dbbd434b7e1700164cdb4</id>
<content type='text'>
Using spaces removes the need to care about the tabwidth of different
browsers.
</content>
</entry>
<entry>
<title>Implement basic recipe target with JSON</title>
<updated>2023-04-22T15:54:57Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T15:40:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=17f2abc3961fb854fb127f6b99c30ebb494b8e3d'/>
<id>urn:sha1:17f2abc3961fb854fb127f6b99c30ebb494b8e3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Convert example recipes to JSON</title>
<updated>2023-04-22T15:38:46Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-22T15:38:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=cff4718b1acd5a34e8dceaf4d21d4bc11c0de8d6'/>
<id>urn:sha1:cff4718b1acd5a34e8dceaf4d21d4bc11c0de8d6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update changelog for v0.2.0 release</title>
<updated>2023-04-13T18:21:58Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T17:01:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=c353a04d2dbc48a4abbce3b2fa90990a8bc200ad'/>
<id>urn:sha1:c353a04d2dbc48a4abbce3b2fa90990a8bc200ad</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Automate /var/lib/ceres creation</title>
<updated>2023-04-13T18:21:58Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T18:16:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=d82eae7034e0de30b5d61294cdb78c3ad8c1bbda'/>
<id>urn:sha1:d82eae7034e0de30b5d61294cdb78c3ad8c1bbda</id>
<content type='text'>
That way only the system user setup and ownership change has to be done
by the packager / installer.
</content>
</entry>
<entry>
<title>Document creation of /var/lib/ceres</title>
<updated>2023-04-13T18:21:58Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T17:55:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=4ed4b195e9e78d22f9eae0925403de645b5bc30a'/>
<id>urn:sha1:4ed4b195e9e78d22f9eae0925403de645b5bc30a</id>
<content type='text'>
This is up to the packager. Inside that data directory the application
is allowed to create folders on its own.
</content>
</entry>
<entry>
<title>Fix Makefile</title>
<updated>2023-04-13T18:21:58Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T17:42:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=672dc6ca0124c4ffe53f1142345b796094adafdd'/>
<id>urn:sha1:672dc6ca0124c4ffe53f1142345b796094adafdd</id>
<content type='text'>
There were some templates missing.
</content>
</entry>
<entry>
<title>Allow empty recipe list</title>
<updated>2023-04-13T18:21:58Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T17:35:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=937d0e07d9ad4ed98b4349de568de325c5cc7e70'/>
<id>urn:sha1:937d0e07d9ad4ed98b4349de568de325c5cc7e70</id>
<content type='text'>
This is useful for the case that no recipes exist or the recipe data
folder does not exist.
</content>
</entry>
<entry>
<title>Remove .gitignore file</title>
<updated>2023-04-13T17:09:08Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T17:06:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ee9fd81f40c1e470f83be06717affd34779dd29f'/>
<id>urn:sha1:ee9fd81f40c1e470f83be06717affd34779dd29f</id>
<content type='text'>
The only left entry was `vendor` which was used to save Go dependencies.
Since there are no dependencies anymore this file is removed.
</content>
</entry>
</feed>
