<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ceres/handler.go, branch step-re-ordering</title>
<subtitle>Recipe server for your favorite dishes</subtitle>
<id>https://cgit.xengineering.eu/ceres/atom/handler.go?h=step-re-ordering</id>
<link rel='self' href='https://cgit.xengineering.eu/ceres/atom/handler.go?h=step-re-ordering'/>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/'/>
<updated>2023-09-17T09:07:08Z</updated>
<entry>
<title>Remove complete implementation</title>
<updated>2023-09-17T09:07:08Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-09-17T09:07:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ea54de7d32e6b576ccfb430e7e57811b7c4587fe'/>
<id>urn:sha1:ea54de7d32e6b576ccfb430e7e57811b7c4587fe</id>
<content type='text'>
Restarting from scratch seems to be the fastest approach to switch to
sqlite and get rid of some other structural mistakes from the past.
</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>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 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>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>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>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>Apply go fmt</title>
<updated>2023-04-13T16:52:12Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-13T16:52:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=08375ab50b3bf0231b432d855eca014842985c60'/>
<id>urn:sha1:08375ab50b3bf0231b432d855eca014842985c60</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Do not hardcode data directory</title>
<updated>2023-04-13T15:59:37Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-12T17:04:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ec1936c20647ba405bd2cc457c16a02dfdf56216'/>
<id>urn:sha1:ec1936c20647ba405bd2cc457c16a02dfdf56216</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Switch to unnested config</title>
<updated>2023-04-12T16:50:34Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-12T16:50:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=4eacd5f54074c6cd73eaef4178c56843ce742445'/>
<id>urn:sha1:4eacd5f54074c6cd73eaef4178c56843ce742445</id>
<content type='text'>
This is now just not needed.
</content>
</entry>
<entry>
<title>Implement markup to HTML conversion</title>
<updated>2023-04-12T16:40:53Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-10T14:40:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=3d697e774668e65bfef9bdd18224feecf086da97'/>
<id>urn:sha1:3d697e774668e65bfef9bdd18224feecf086da97</id>
<content type='text'>
The new custom and text/gemini inspired markup has to be converted to
HTML to display the recipe.
</content>
</entry>
<entry>
<title>Move title parsing to new markup.go file</title>
<updated>2023-04-08T20:15:45Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-08T19:30:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=dbf0ea2dd53b88a26ab7e3cc12a06344022d57ec'/>
<id>urn:sha1:dbf0ea2dd53b88a26ab7e3cc12a06344022d57ec</id>
<content type='text'>
The new recipe markup which replaces Markdown will need an own file to
be implemented.
</content>
</entry>
<entry>
<title>Remove Markdown rendering</title>
<updated>2023-04-08T20:15:45Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-08T19:14:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=d0d740cd58cef0adea51aae5c9df37181a0ed270'/>
<id>urn:sha1:d0d740cd58cef0adea51aae5c9df37181a0ed270</id>
<content type='text'>
This step prepares moving to a new, custom and easily parsable markup
language.
</content>
</entry>
<entry>
<title>Switch from MariaDB to files</title>
<updated>2023-04-02T19:52:10Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-01T19:18:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=bae6e34c9119750b2cba2a2ce6d88e9f8c895900'/>
<id>urn:sha1:bae6e34c9119750b2cba2a2ce6d88e9f8c895900</id>
<content type='text'>
Using a database is way more complex (see the commit statistics of this
commit) than using files to store recipe data. Also administration and
usage is simpler.
</content>
</entry>
<entry>
<title>Improve user interface</title>
<updated>2023-04-01T16:37:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-01T16:37:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=43e6305c45c6365288c1f512702f49ba2e52e941'/>
<id>urn:sha1:43e6305c45c6365288c1f512702f49ba2e52e941</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement recipe deletion</title>
<updated>2023-04-01T16:21:27Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-04-01T14:03:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=88107366bce6b7f7c788171a18c40ad102904ff4'/>
<id>urn:sha1:88107366bce6b7f7c788171a18c40ad102904ff4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reduce to ID and Markdown</title>
<updated>2023-03-31T19:46:53Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-03-31T18:41:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=39298f14d366b351708e7f5ef30d1b6575155792'/>
<id>urn:sha1:39298f14d366b351708e7f5ef30d1b6575155792</id>
<content type='text'>
The upstream URL can be encoded easily by the user in the Markdown-based
description. The title can be parsed by the first found top-level
heading in the Markdown text.

Thus these two columns are no longer used. To avoid an additional
migration they will be kept in the database.
</content>
</entry>
<entry>
<title>Remove image functionality</title>
<updated>2023-03-31T17:47:55Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-03-31T17:47:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=f1308a436040f3a72e058e10ec2693cfb599da30'/>
<id>urn:sha1:f1308a436040f3a72e058e10ec2693cfb599da30</id>
<content type='text'>
Recipe images are currently complicated to implement and have little
use. Probably they will not be covered in the next release.
</content>
</entry>
<entry>
<title>Make add.html a template</title>
<updated>2023-02-12T18:46:48Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-12T18:46:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ba327ee030a3b8abdbf9f5d10987060648dbb10e'/>
<id>urn:sha1:ba327ee030a3b8abdbf9f5d10987060648dbb10e</id>
<content type='text'>
This allows to use partial HTML files via Go's templating features.
</content>
</entry>
<entry>
<title>Centralize templating</title>
<updated>2023-02-12T18:18:48Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-12T18:18:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=88af7a818f2ef3c45c4e849512ca1f6289a9dce2'/>
<id>urn:sha1:88af7a818f2ef3c45c4e849512ca1f6289a9dce2</id>
<content type='text'>
This makes templating easier and allows to use partial templates.
</content>
</entry>
<entry>
<title>Remove most function-inline comments</title>
<updated>2023-02-11T17:31:50Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-11T17:31:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=a288826b924266ff4577003103ef49cf6bb5cc3c'/>
<id>urn:sha1:a288826b924266ff4577003103ef49cf6bb5cc3c</id>
<content type='text'>
Docstrings for functions are a good thing. But the inside of a function
should be written in a way that is self-explaining. Thus inline comments
are just extra stuff to maintain and read.
</content>
</entry>
<entry>
<title>Apply go fmt *.go</title>
<updated>2023-02-11T17:19:30Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-11T17:19:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=ced1e404bd762abb114321334a3812805dee7059'/>
<id>urn:sha1:ced1e404bd762abb114321334a3812805dee7059</id>
<content type='text'>
This auto-applies the recommended Go codestyle.
</content>
</entry>
<entry>
<title>Rework logging</title>
<updated>2023-02-11T17:06:52Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-11T17:06:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=4c36742ec8072e645f0b755cdf5e9582ac2a6887'/>
<id>urn:sha1:4c36742ec8072e645f0b755cdf5e9582ac2a6887</id>
<content type='text'>
Logging during a request is at the moment not really needed. Printing
the config to the log was a stupid idea too.
</content>
</entry>
<entry>
<title>Switch to global database pointer</title>
<updated>2023-02-11T12:46:45Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-11T12:46:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=6b52b4bbc81c64b29daff043b83e21c38f332052'/>
<id>urn:sha1:6b52b4bbc81c64b29daff043b83e21c38f332052</id>
<content type='text'>
Passing the database pointer around is a lot of text and has no benefit.
</content>
</entry>
<entry>
<title>Migrate storage.go to global config</title>
<updated>2023-02-11T12:08:04Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-11T12:08:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=312c59564700da719dbafad11c2d9f647b46d912'/>
<id>urn:sha1:312c59564700da719dbafad11c2d9f647b46d912</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Switch webserver to global config struct</title>
<updated>2023-02-11T12:02:41Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-11T12:02:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=7e517ada827abc2658bb07347bc656c10860e091'/>
<id>urn:sha1:7e517ada827abc2658bb07347bc656c10860e091</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove commented code</title>
<updated>2023-02-09T21:00:32Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2023-02-09T21:00:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/ceres/commit/?id=f2b0733eefc56dcee210ecd1fbe6a9d5d159d6f0'/>
<id>urn:sha1:f2b0733eefc56dcee210ecd1fbe6a9d5d159d6f0</id>
<content type='text'>
</content>
</entry>
</feed>
