diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md
index 80d9f4c7e..4d982d00d 100644
--- a/docs/docs/changelog.md
+++ b/docs/docs/changelog.md
@@ -3,7 +3,17 @@
## v0.3.0 - Draft!
### Features and Improvements
+ - Open search with `/` hotkey!
- Unified and improved snackbar notifications
+ - Recipe Viewer
+ - Categories, Tags, and Notes will not be displayed below the steps on smaller screens
+ - Recipe Editor
+ - Text areas now auto grow to fit content
+ - Description, Steps, and Notes support Markdown! This includes inline html in Markdown.
+
+### Development / Misc
+ - Added async file response for images, downloading files.
+ - Breakup recipe view component
## v0.2.0 - Now with Test!
This is, what I think, is a big release! Tons of new features and some great quality of life improvements with some additional features. You may find that I made promises to include some fixes/features in v0.2.0. The short of is I greatly underestimated the work needed to refactor the database to a usable state and integrate categories in a way that is useful for users. This shouldn't be taken as a sign that I'm dropping those feature requests or ignoring them. I felt it was better to push a release in the current state rather than drag on development to try and fulfil all of the promises I made.
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index ffd80d668..4509b55a5 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -1,16 +1,22 @@
-
- mdi-silverware-variant
-
+
+
+ mdi-silverware-variant
+
+
+
- Mealie
+ Mealie
+
{
+ if (e.key == "/") {
+ this.search = !this.search;
+ }
+ });
+ },
mounted() {
this.$store.dispatch("initTheme");
diff --git a/frontend/src/api.js b/frontend/src/api.js
index eafe13005..3c6c04c0c 100644
--- a/frontend/src/api.js
+++ b/frontend/src/api.js
@@ -8,7 +8,7 @@ import myUtils from "./api/upload";
import category from "./api/category";
import meta from "./api/meta";
-// import api from "../api";
+// import api from "@/api";
export default {
recipes: recipe,
diff --git a/frontend/src/api/api-utils.js b/frontend/src/api/api-utils.js
index 852a0d521..c1ef8f9a8 100644
--- a/frontend/src/api/api-utils.js
+++ b/frontend/src/api/api-utils.js
@@ -1,7 +1,7 @@
const baseURL = "/api/";
import axios from "axios";
-import utils from "../utils";
-// look for data.snackbar in response
+import utils from "@/utils";
+
function processResponse(response) {
try {
utils.notify.show(response.data.snackbar.text, response.data.snackbar.type);
diff --git a/frontend/src/api/upload.js b/frontend/src/api/upload.js
index 1c7655185..12a1c08c2 100644
--- a/frontend/src/api/upload.js
+++ b/frontend/src/api/upload.js
@@ -1,7 +1,7 @@
import { apiReq } from "./api-utils";
export default {
- // import api from "../api";
+ // import api from "@/api";
async uploadFile(url, fileObject) {
let response = await apiReq.post(url, fileObject, {
headers: {
diff --git a/frontend/src/components/MealPlan/MealPlanCard.vue b/frontend/src/components/MealPlan/MealPlanCard.vue
index 2eb11a595..b5c176638 100644
--- a/frontend/src/components/MealPlan/MealPlanCard.vue
+++ b/frontend/src/components/MealPlan/MealPlanCard.vue
@@ -26,7 +26,7 @@
-
-
\ No newline at end of file
diff --git a/frontend/src/components/Recipe/RecipeViewer/Ingredients.vue b/frontend/src/components/Recipe/RecipeViewer/Ingredients.vue
new file mode 100644
index 000000000..70a8c798c
--- /dev/null
+++ b/frontend/src/components/Recipe/RecipeViewer/Ingredients.vue
@@ -0,0 +1,34 @@
+
+
+
{{ $t("recipe.ingredients") }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/Recipe/RecipeViewer/Notes.vue b/frontend/src/components/Recipe/RecipeViewer/Notes.vue
new file mode 100644
index 000000000..e25701d27
--- /dev/null
+++ b/frontend/src/components/Recipe/RecipeViewer/Notes.vue
@@ -0,0 +1,36 @@
+
+
+
{{ $t("recipe.notes") }}
+
+ {{ note.title }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/Recipe/RecipeViewer/RecipeChips.vue b/frontend/src/components/Recipe/RecipeViewer/RecipeChips.vue
new file mode 100644
index 000000000..cde5d99c3
--- /dev/null
+++ b/frontend/src/components/Recipe/RecipeViewer/RecipeChips.vue
@@ -0,0 +1,26 @@
+
+
+
{{ title }}
+
+ {{ category }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/Recipe/RecipeViewer/Steps.vue b/frontend/src/components/Recipe/RecipeViewer/Steps.vue
new file mode 100644
index 000000000..4b674668e
--- /dev/null
+++ b/frontend/src/components/Recipe/RecipeViewer/Steps.vue
@@ -0,0 +1,67 @@
+
+
+
{{ $t("recipe.instructions") }}
+
+
+ {{
+ $t("recipe.step-index", { step: index + 1 })
+ }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/Recipe/RecipeViewer/index.vue b/frontend/src/components/Recipe/RecipeViewer/index.vue
new file mode 100644
index 000000000..845c63c95
--- /dev/null
+++ b/frontend/src/components/Recipe/RecipeViewer/index.vue
@@ -0,0 +1,130 @@
+
+
+
+ {{ name }}
+
+
+
+
+
+
+ {{ yields }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("recipe.original-url") }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/Settings/Backup/AvailableBackupCard.vue b/frontend/src/components/Settings/Backup/AvailableBackupCard.vue
index 67b83aa51..7254e5808 100644
--- a/frontend/src/components/Settings/Backup/AvailableBackupCard.vue
+++ b/frontend/src/components/Settings/Backup/AvailableBackupCard.vue
@@ -38,8 +38,8 @@