diff --git a/src/compiler/crystal/tools/doc/generator.cr b/src/compiler/crystal/tools/doc/generator.cr index b5c2b4eb2dcc..8853eea61d0c 100644 --- a/src/compiler/crystal/tools/doc/generator.cr +++ b/src/compiler/crystal/tools/doc/generator.cr @@ -89,6 +89,8 @@ class Crystal::Doc::Generator main_index = Main.new(raw_body, Type.new(self, @program), project_info) File.write File.join(@output_dir, "index.json"), main_index File.write File.join(@output_dir, "search-index.js"), main_index.to_jsonp + + File.write File.join(@output_dir, "404.html"), MainTemplate.new(Error404Template.new.to_s, types, project_info) end def generate_sitemap(types) diff --git a/src/compiler/crystal/tools/doc/html/404.html b/src/compiler/crystal/tools/doc/html/404.html new file mode 100644 index 000000000000..5e99b15d3dec --- /dev/null +++ b/src/compiler/crystal/tools/doc/html/404.html @@ -0,0 +1,12 @@ +

+ 404 Not Found +

+ +

+ This page is unavailable in this version of the API docs. +

+ +

+ You can use the sidebar to search for your page, or try a different + Crystal version. +

diff --git a/src/compiler/crystal/tools/doc/templates.cr b/src/compiler/crystal/tools/doc/templates.cr index b6e8a663983d..14e7f4daba62 100644 --- a/src/compiler/crystal/tools/doc/templates.cr +++ b/src/compiler/crystal/tools/doc/templates.cr @@ -65,6 +65,10 @@ module Crystal::Doc ECR.def_to_s "#{__DIR__}/html/_sidebar.html" end + record Error404Template do + ECR.def_to_s "#{__DIR__}/html/404.html" + end + struct JsTypeTemplate ECR.def_to_s "#{__DIR__}/html/js/doc.js" end