public class PostsPaginator implements OptionsHolder { @Option @IntDefault(100) public int pageSize; }
public static class About implements OptionsHolder { @Option public String siteName; @Option public String tagline; @Option public String blurb; @Option @ApplyBaseUrl public String avatar; }
@Description("Embed presentations and slide-decks in your pages.") public class PresentationsGenerator extends OrchidGenerator { @Option("baseDir") @StringDefault("presentations") public String presentationsBaseDir; @Option("presentations") public String[] sectionNames;
public static class MaterializeShades implements OptionsHolder { @Option @StringDefault("lighten-2") public String primary; @Option @StringDefault("lighten-1") public String secondary; @Option @StringDefault("base") public String success; @Option @StringDefault("base") public String error; @Option @StringDefault("darken-1") public String link; }
@Singleton @Description("Generates static pages with the same output folder as their input, minus the base directory. Input " + "pages come from 'baseDir' option value, which defaults to 'pages'.") public class PagesGenerator extends OrchidGenerator { @Option("baseDir") @StringDefault("pages") public String pagesBaseDir;
public static class MaterializeColors implements OptionsHolder { @Option @StringDefault("cyan") public String primary; @Option @StringDefault("orange") public String secondary; @Option @StringDefault("green") public String success; @Option @StringDefault("red") public String error; @Option @StringDefault("light-blue") public String link; }
public class Author implements OptionsHolder { @Option public String name; @Option @ApplyBaseUrl public String avatar; }
public class BSDocTheme extends Theme { @Option @StringDefault("#4C376C") public String primaryColor; @Option @StringDefault("#000000") public String secondaryColor; @Option public About about; @Option public ComponentHolder sidebar;
public class RecentPostsComponent extends OrchidComponent { public PostsModel postsModel; @Option public String category; @Option public int limit; @Inject public RecentPostsComponent(OrchidContext context, PostsModel postsModel) { super(context, "recentPosts", 25); this.postsModel = postsModel; } public List<PostPage> getRecentPosts() { if(!EdenUtils.isEmpty(category)) { return postsModel.getRecentPosts(category, limit); } else { return postsModel.getRecentPosts(null, limit); } } }
public final class DividerMenuItem extends OrchidMenuItem { @Option public String title; @Inject public DividerMenuItem(OrchidContext context) { super(context, "separator", 100); } @Override public List<OrchidMenuItemImpl> getMenuItems() { List<OrchidMenuItemImpl> menuItems = new ArrayList<>(); if(!EdenUtils.isEmpty(title)) { menuItems.add(new OrchidMenuItemImpl(context, title)); } else { menuItems.add(new OrchidMenuItemImpl(context)); } return menuItems; } }
public final class IndexMenuItem extends OrchidMenuItem { @Option public String title; @Option public String index; @Inject public IndexMenuItem(OrchidContext context) { super(context, "index", 100); } @Override public List<OrchidMenuItemImpl> getMenuItems() { List<OrchidMenuItemImpl> menuItems = new ArrayList<>(); if (!EdenUtils.isEmpty(title) && !EdenUtils.isEmpty(index)) { OrchidIndex foundIndex = context.getIndex().findIndex(index); menuItems.add(new OrchidMenuItemImpl(context, title, foundIndex)); } return menuItems; } }
public class PageMenuType extends OrchidMenuItem { @Option("page") public String pageName; @Inject public PageMenuType(OrchidContext context) { super(context, "page", 100); } @Override public List<OrchidMenuItemImpl> getMenuItems() { List<OrchidMenuItemImpl> menuItems = new ArrayList<>(); List<OrchidPage> pages = context.getInternalIndex().getGeneratorPages("pages"); if(!EdenUtils.isEmpty(pageName)) { for (OrchidPage page : pages) { if(page.getTitle().equals(pageName)) { menuItems.add(new OrchidMenuItemImpl(context, page)); } } } return menuItems; } }
public abstract class Theme extends AbstractTheme { @Getter @Setter @Option protected OrchidMenu menu; @Inject public Theme(OrchidContext context, String key, int priority) { super(context, key, priority); } }
public final class TemplateComponent extends OrchidComponent { @Getter @Setter @Option public JSONObject data; @Inject public TemplateComponent(OrchidContext context) { super(context, "template", 100); } }