fix: fixed CSM-013
This commit is contained in:
@@ -122,13 +122,27 @@ defmodule BDS.Rendering.Filters do
|
||||
|
||||
_id ->
|
||||
template_source = Liquex.FileSystem.read_template_file(context.file_system, template_path)
|
||||
template_ast = Liquex.parse!(template_source)
|
||||
isolated_context = Liquex.Context.new_isolated_subscope(context, assigns)
|
||||
{result, _context} = Liquex.render!(template_ast, isolated_context)
|
||||
IO.iodata_to_binary(result)
|
||||
|
||||
case Liquex.parse(template_source) do
|
||||
{:ok, template_ast} ->
|
||||
isolated_context = Liquex.Context.new_isolated_subscope(context, assigns)
|
||||
|
||||
try do
|
||||
{result, _context} = Liquex.render!(template_ast, isolated_context)
|
||||
IO.iodata_to_binary(result)
|
||||
rescue
|
||||
e in Liquex.Error ->
|
||||
require Logger
|
||||
Logger.warning("Macro template render failed (#{template_path}): #{e.message}")
|
||||
""
|
||||
end
|
||||
|
||||
{:error, reason, line} ->
|
||||
require Logger
|
||||
Logger.warning("Macro template parse failed (#{template_path}): #{reason} at line #{line}")
|
||||
""
|
||||
end
|
||||
end
|
||||
rescue
|
||||
_error -> ""
|
||||
end
|
||||
|
||||
defp render_markdown_html(markdown) do
|
||||
|
||||
@@ -181,19 +181,22 @@ defmodule BDS.Rendering.PostRendering do
|
||||
end
|
||||
|
||||
def post_data_json_value(post_context) do
|
||||
Jason.encode!(%{
|
||||
id: Map.get(post_context, :id),
|
||||
title: Map.get(post_context, :title),
|
||||
slug: Map.get(post_context, :slug),
|
||||
excerpt: Map.get(post_context, :excerpt),
|
||||
author: Map.get(post_context, :author),
|
||||
language: Map.get(post_context, :language),
|
||||
published_at: Map.get(post_context, :published_at),
|
||||
created_at: Map.get(post_context, :created_at),
|
||||
updated_at: Map.get(post_context, :updated_at),
|
||||
tags: Map.get(post_context, :tags, []),
|
||||
categories: Map.get(post_context, :categories, [])
|
||||
})
|
||||
case Jason.encode(%{
|
||||
id: Map.get(post_context, :id),
|
||||
title: Map.get(post_context, :title),
|
||||
slug: Map.get(post_context, :slug),
|
||||
excerpt: Map.get(post_context, :excerpt),
|
||||
author: Map.get(post_context, :author),
|
||||
language: Map.get(post_context, :language),
|
||||
published_at: Map.get(post_context, :published_at),
|
||||
created_at: Map.get(post_context, :created_at),
|
||||
updated_at: Map.get(post_context, :updated_at),
|
||||
tags: Map.get(post_context, :tags, []),
|
||||
categories: Map.get(post_context, :categories, [])
|
||||
}) do
|
||||
{:ok, json} -> json
|
||||
{:error, _reason} -> "{}"
|
||||
end
|
||||
end
|
||||
|
||||
defp build_post_context(assigns, post_record, incoming_links, outgoing_links) do
|
||||
|
||||
@@ -99,11 +99,15 @@ defmodule BDS.Rendering.TemplateSelection do
|
||||
file_system: FileSystem.new(StarterTemplates.template_roots(project))
|
||||
)
|
||||
|
||||
{result, _context} = Liquex.render!(template_ast, context)
|
||||
{:ok, IO.iodata_to_binary(result)}
|
||||
try do
|
||||
{result, _context} = Liquex.render!(template_ast, context)
|
||||
{:ok, IO.iodata_to_binary(result)}
|
||||
rescue
|
||||
e in Liquex.Error -> {:error, e.message}
|
||||
end
|
||||
else
|
||||
{:error, reason, line} -> {:error, "#{reason} at line #{line}"}
|
||||
end
|
||||
rescue
|
||||
error -> {:error, error}
|
||||
end
|
||||
|
||||
defp load_bundled_template_source(project, kind, slug) do
|
||||
|
||||
Reference in New Issue
Block a user