diff --git a/src/fluence/lib/accessible.cr b/src/fluence/lib/accessible.cr index 546da5b..55987e8 100644 --- a/src/fluence/lib/accessible.cr +++ b/src/fluence/lib/accessible.cr @@ -34,6 +34,10 @@ abstract struct Fluence::Accessible abstract def url_prefix : String + # Here due to https://github.com/crystal-lang/crystal/issues/2827 + def initialize(@path : String, @name : String, @url : String, @title : String) + end + # translates a name ("/test/title" for example) # into a file path ("/srv/data/test/ttle.md) def self.name_to_file(name : String) diff --git a/src/fluence/lib/media.cr b/src/fluence/lib/media.cr deleted file mode 100644 index 62ebf30..0000000 --- a/src/fluence/lib/media.cr +++ /dev/null @@ -1,21 +0,0 @@ -require "uri" - -require "./errors" -require "./page/*" - -# `Media` is a representation of something that can be accessed -# from a URL /media/*path. -# -# As much as possible here should come from Fluence::Accessible. -struct Fluence::Media < Fluence::Accessible - - # Directory where media is stored - def self.subdirectory - File.join(Fluence::OPTIONS.basedir, "media") + File::SEPARATOR - end - - # Beginning of the URL - def url_prefix - "/media" - end -end diff --git a/src/fluence/lib/page.cr b/src/fluence/lib/page.cr index 7c737b0..9076a91 100644 --- a/src/fluence/lib/page.cr +++ b/src/fluence/lib/page.cr @@ -28,23 +28,26 @@ struct Fluence::Page < Fluence::Accessible def initialize(name : String, process : Bool = true, is_url : Bool = false) name = Page.sanitize(name) if is_url - @url = name - @name = @url[url_prefix.size..-1].strip "/" + url = name + name = url[url_prefix.size..-1].strip "/" else - @name = name.strip "/" - @url = url_prefix + "/" + name + name = name.strip "/" + url = url_prefix + "/" + name end - @path = Page.name_to_directory @name - @title = nil + path = "test" + title = nil if process && exists? - @title, @toc, @intlinks = Page.process(@path) + title, @toc, @intlinks = Page.process(path) else @toc = Page::TableOfContent::Toc.new @intlinks = Page::InternalLinks::LinkList.new end - @title ||= File.basename @name + title ||= File.basename name + + super(path, name, url, title) + @slug = Page.title_to_slug @title end