public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
+ public Html.LinkHelper linker { protected set; get; }
public Settings settings { protected set; get; }
protected Api.Tree tree;
protected HtmlRenderer _renderer;
protected Html.MarkupWriter writer;
- protected Html.LinkHelper linker;
protected Html.CssClassResolver cssresolver;
protected Charts.Factory image_factory;
private const string css_style_content = "site_content";
private const string css_style_body = "site_body";
- construct {
- this.cssresolver = CssClassResolver.get_instance ();
- this.linker = LinkHelper.get_instance ();
- }
-
public virtual void process (Settings settings, Api.Tree tree) {
- this.image_factory = new SimpleChartFactory (settings);
this.settings = settings;
this.tree = tree;
+
+ this.cssresolver = new CssClassResolver ();
+ this.linker = new LinkHelper ();
+
+ _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
+ this.image_factory = new SimpleChartFactory (settings, linker);
}
namespace Valadoc.Html {
public class CssClassResolver : Api.Visitor {
- private static CssClassResolver _singleton = null;
private string? css_class = null;
- private CssClassResolver () {
- }
-
- public static CssClassResolver get_instance () {
- if (_singleton == null) {
- _singleton = new CssClassResolver ();
- }
- return _singleton;
- }
-
public string resolve (Api.Node node) {
node.accept (this);
return (owned) css_class;
public class Valadoc.Html.SimpleChartFactory : Charts.SimpleFactory {
private Settings _settings;
private Api.Node _container;
+ private LinkHelper _linker;
- public SimpleChartFactory (Settings settings) {
+ public SimpleChartFactory (Settings settings, LinkHelper linker) {
_settings = settings;
+ _linker = linker;
}
public override Gvc.Graph create_graph (Api.Node item) {
base.configure_type (node, item);
if (_container != null) {
- var linker = LinkHelper.get_instance ();
- var link = linker.get_relative_link (_container, item, _settings);
+ var link = _linker.get_relative_link (_container, item, _settings);
if (link != null) {
node.safe_set ("URL", link, "");
}
public class Valadoc.Html.HtmlRenderer : ContentRenderer {
- protected BasicDoclet _doclet;
protected Documentation? _container;
protected unowned MarkupWriter writer;
protected Html.CssClassResolver cssresolver;
protected LinkHelper linker;
+ protected Settings settings;
- public HtmlRenderer (BasicDoclet doclet) {
- cssresolver = CssClassResolver.get_instance ();
- linker = LinkHelper.get_instance ();
- _doclet = doclet;
+ public HtmlRenderer (Settings settings, LinkHelper linker, CssClassResolver cssresolver) {
+ this.cssresolver = cssresolver;
+ this.settings = settings;
+ this.linker = linker;
}
public void set_container (Documentation? container) {
}
private string get_url (Api.Node symbol) {
- return linker.get_relative_link (_container, symbol, _doclet.settings);
+ return linker.get_relative_link (_container, symbol, settings);
}
private void write_unresolved_symbol_link (string label) {
public override void visit_embedded (Embedded element) {
var caption = element.caption;
- var absolute_path = Path.build_filename (_doclet.settings.path, element.package.name, "img", Path.get_basename (element.url));
+ var absolute_path = Path.build_filename (settings.path, element.package.name, "img", Path.get_basename (element.url));
var relative_path = Path.build_filename ("img", Path.get_basename (element.url));
copy_file (element.url, absolute_path);
public class Valadoc.Html.LinkHelper : Object {
- private static LinkHelper _singleton;
private Settings _settings = null;
- private LinkHelper () {
- }
-
- public static LinkHelper get_instance () {
- if (_singleton == null) {
- _singleton = new LinkHelper ();
- }
-
- return _singleton;
- }
-
public string? get_package_link (Api.Package package, Settings settings) {
if (!package.is_browsable (settings)) {
return null;