diff --git a/Makefile b/Makefile index 60dcb6f..97cd6fa 100644 --- a/Makefile +++ b/Makefile @@ -8,8 +8,8 @@ SRC = $(wildcard src/*.c) OBJ = $(patsubst %.c,%.o,$(SRC)) HEADERS = $(wildcard src/*.h) PAGES_DIR = static -PAGES = $(wildcard $(PAGES_DIR)/*.html) -PAGES_CMP = $(patsubst %.html,%.chtml,$(PAGES)) +PAGES = $(wildcard $(PAGES_DIR)/*.tmpl) +PAGES_CMP = $(patsubst %.tmpl,%.ctmpl,$(PAGES)) DIST = dist/ PREFIX ?= /usr/local TARGET = treebird @@ -23,7 +23,7 @@ $(TARGET): filec template $(PAGES_CMP) $(OBJ) $(HEADERS) $(CC) -o $(TARGET) $(OBJ) $(LDFLAGS) template: src/template/main.o - $(CC) $(LDFLATS) -o template $< + $(CC) $(LDFLAGS) -o template $< filec: src/file-to-c/main.o $(CC) -o filec $< @@ -32,124 +32,8 @@ emojitoc: scripts/emoji-to.o $(CC) -o emojitoc $< $(LDFLAGS) ./emojitoc meta/emoji.json > src/emoji_codes.h -# PAGES -$(PAGES_DIR)/index.chtml: $(PAGES_DIR)/index.html - ./filec $< data_index_html > $@ -$(PAGES_DIR)/status.chtml: $(PAGES_DIR)/status.html - ./filec $< data_status_html > $@ -$(PAGES_DIR)/account.chtml: $(PAGES_DIR)/account.html - ./filec $< data_account_html > $@ -$(PAGES_DIR)/login.chtml: $(PAGES_DIR)/login.html - ./filec $< data_login_html > $@ -$(PAGES_DIR)/post.chtml: $(PAGES_DIR)/post.html - ./filec $< data_post_html > $@ -$(PAGES_DIR)/list.chtml: $(PAGES_DIR)/list.html - ./filec $< data_list_html > $@ -$(PAGES_DIR)/lists.chtml: $(PAGES_DIR)/lists.html - ./filec $< data_lists_html > $@ -$(PAGES_DIR)/error.chtml: $(PAGES_DIR)/error.html - ./filec $< data_error_html > $@ -$(PAGES_DIR)/attachments.chtml: $(PAGES_DIR)/attachments.html - ./filec $< data_attachments_html > $@ -$(PAGES_DIR)/attachment_image.chtml: $(PAGES_DIR)/attachment_image.html - ./filec $< data_attachment_image_html > $@ -$(PAGES_DIR)/attachment_video.chtml: $(PAGES_DIR)/attachment_video.html - ./filec $< data_attachment_video_html > $@ -$(PAGES_DIR)/attachment_link.chtml: $(PAGES_DIR)/attachment_link.html - ./filec $< data_attachment_link_html > $@ -$(PAGES_DIR)/attachment_audio.chtml: $(PAGES_DIR)/attachment_audio.html - ./filec $< data_attachment_audio_html > $@ -$(PAGES_DIR)/attachment_gifv.chtml: $(PAGES_DIR)/attachment_gifv.html - ./filec $< data_attachment_gifv_html > $@ -$(PAGES_DIR)/emoji_reactions.chtml: $(PAGES_DIR)/emoji_reactions.html - ./filec $< data_emoji_reactions_html > $@ -$(PAGES_DIR)/emoji_reaction.chtml: $(PAGES_DIR)/emoji_reaction.html - ./filec $< data_emoji_reaction_html > $@ -$(PAGES_DIR)/menu_item.chtml: $(PAGES_DIR)/menu_item.html - ./filec $< data_menu_item_html > $@ -$(PAGES_DIR)/test.chtml: $(PAGES_DIR)/test.html - ./filec $< data_test_html > $@ -$(PAGES_DIR)/notifications_page.chtml: $(PAGES_DIR)/notifications_page.html - ./filec $< data_notifications_page_html > $@ -$(PAGES_DIR)/notifications_embed.chtml: $(PAGES_DIR)/notifications_embed.html - ./filec $< data_notifications_embed_html > $@ -$(PAGES_DIR)/notifications.chtml: $(PAGES_DIR)/notifications.html - ./filec $< data_notifications_html > $@ -$(PAGES_DIR)/notification.chtml: $(PAGES_DIR)/notification.html - ./filec $< data_notification_html > $@ -$(PAGES_DIR)/notification_compact.chtml: $(PAGES_DIR)/notification_compact.html - ./filec $< data_notification_compact_html > $@ -$(PAGES_DIR)/error_404.chtml: $(PAGES_DIR)/error_404.html - ./filec $< data_error_404_html > $@ -$(PAGES_DIR)/navigation.chtml: $(PAGES_DIR)/navigation.html - ./filec $< data_navigation_html > $@ -$(PAGES_DIR)/config_sidebar.chtml: $(PAGES_DIR)/config_sidebar.html - ./filec $< data_config_sidebar_html > $@ -$(PAGES_DIR)/like_svg.chtml: $(PAGES_DIR)/like_svg.html - ./filec $< data_like_svg_html > $@ -$(PAGES_DIR)/repeat_svg.chtml: $(PAGES_DIR)/repeat_svg.html - ./filec $< data_repeat_svg_html > $@ -$(PAGES_DIR)/follow_svg.chtml: $(PAGES_DIR)/follow_svg.html - ./filec $< data_follow_svg_html > $@ -$(PAGES_DIR)/notification_action.chtml: $(PAGES_DIR)/notification_action.html - ./filec $< data_notification_action_html > $@ -$(PAGES_DIR)/config_general.chtml: $(PAGES_DIR)/config_general.html - ./filec $< data_config_general_html > $@ -$(PAGES_DIR)/config_appearance.chtml: $(PAGES_DIR)/config_appearance.html - ./filec $< data_config_appearance_html > $@ -$(PAGES_DIR)/in_reply_to.chtml: $(PAGES_DIR)/in_reply_to.html - ./filec $< data_in_reply_to_html > $@ -$(PAGES_DIR)/account_info.chtml: $(PAGES_DIR)/account_info.html - ./filec $< data_account_info_html > $@ -$(PAGES_DIR)/search.chtml: $(PAGES_DIR)/search.html - ./filec $< data_search_html > $@ -$(PAGES_DIR)/scrobble.chtml: $(PAGES_DIR)/scrobble.html - ./filec $< data_scrobble_html > $@ -$(PAGES_DIR)/directs_page.chtml: $(PAGES_DIR)/directs_page.html - ./filec $< data_directs_page_html > $@ -$(PAGES_DIR)/status_interactions.chtml: $(PAGES_DIR)/status_interactions.html - ./filec $< data_status_interactions_html > $@ -$(PAGES_DIR)/status_interactions_label.chtml: $(PAGES_DIR)/status_interactions_label.html - ./filec $< data_status_interactions_label_html > $@ -$(PAGES_DIR)/status_interaction_profile.chtml: $(PAGES_DIR)/status_interaction_profile.html - ./filec $< data_status_interaction_profile_html > $@ -$(PAGES_DIR)/account_follow_btn.chtml: $(PAGES_DIR)/account_follow_btn.html - ./filec $< data_account_follow_btn_html > $@ -$(PAGES_DIR)/bookmarks_page.chtml: $(PAGES_DIR)/bookmarks_page.html - ./filec $< data_bookmarks_page_html > $@ -$(PAGES_DIR)/favourites_page.chtml: $(PAGES_DIR)/favourites_page.html - ./filec $< data_favourites_page_html > $@ -$(PAGES_DIR)/account_stub.chtml: $(PAGES_DIR)/account_stub.html - ./filec $< data_account_stub_html > $@ -$(PAGES_DIR)/hashtag.chtml: $(PAGES_DIR)/hashtag.html - ./filec $< data_hashtag_html > $@ -$(PAGES_DIR)/hashtag_page.chtml: $(PAGES_DIR)/hashtag_page.html - ./filec $< data_hashtag_page_html > $@ -$(PAGES_DIR)/bar_graph.chtml: $(PAGES_DIR)/bar_graph.html - ./filec $< data_bar_graph_html > $@ -$(PAGES_DIR)/bar.chtml: $(PAGES_DIR)/bar.html - ./filec $< data_bar_html > $@ -$(PAGES_DIR)/emoji_picker.chtml: $(PAGES_DIR)/emoji_picker.html - ./filec $< data_emoji_picker_html > $@ -$(PAGES_DIR)/emoji.chtml: $(PAGES_DIR)/emoji.html - ./filec $< data_emoji_html > $@ -$(PAGES_DIR)/likeboost.chtml: $(PAGES_DIR)/likeboost.html - ./filec $< data_likeboost_html > $@ -$(PAGES_DIR)/reactions_btn.chtml: $(PAGES_DIR)/reactions_btn.html - ./filec $< data_reactions_btn_html > $@ -$(PAGES_DIR)/interaction_buttons.chtml: $(PAGES_DIR)/interaction_buttons.html - ./filec $< data_interaction_buttons_html > $@ -$(PAGES_DIR)/license.chtml: $(PAGES_DIR)/license.html - ./filec $< data_license_html > $@ -# Login panel -$(PAGES_DIR)/quick_login.chtml: $(PAGES_DIR)/quick_login.html - ./filec $< data_quick_login_html > $@ -$(PAGES_DIR)/account_sidebar.chtml: $(PAGES_DIR)/account_sidebar.html - ./filec $< data_account_sidebar_html > $@ -$(PAGES_DIR)/about.chtml: $(PAGES_DIR)/about.html - ./filec $< data_about_html > $@ -$(PAGES_DIR)/instance.chtml: $(PAGES_DIR)/instance.html - ./filec $< data_instance_html > $@ +$(PAGES_DIR)/%.ctmpl: $(PAGES_DIR)/%.tmpl + ./template $< $(notdir $*) > $@ $(MASTODONT_DIR): cd ..; fossil clone $(MASTODONT_URL) || true diff --git a/src/lists.c b/src/lists.c index 5dc096d..6c57447 100644 --- a/src/lists.c +++ b/src/lists.c @@ -27,7 +27,6 @@ #include "string_helpers.h" // Files -#include "../static/index.chtml" #include "../static/account.chtml" #include "../static/list.chtml" #include "../static/lists.chtml" diff --git a/src/page_config.c b/src/page_config.c index 1aaccde..073d2d8 100644 --- a/src/page_config.c +++ b/src/page_config.c @@ -31,7 +31,6 @@ #include "l10n.h" // Pages -#include "../static/index.chtml" #include "../static/config_general.chtml" #include "../static/config_appearance.chtml" #include "../static/config_sidebar.chtml" diff --git a/src/status.c b/src/status.c index 26e399b..e19e30a 100644 --- a/src/status.c +++ b/src/status.c @@ -36,7 +36,7 @@ #include "emoji.h" // Pages -#include "../static/status.chtml" +#include "../static/status.ctmpl" #include "../static/notification.chtml" #include "../static/in_reply_to.chtml" #include "../static/status_interactions_label.chtml" @@ -581,38 +581,33 @@ char* construct_status(struct session* ssn, if (status->in_reply_to_id && status->in_reply_to_account_id) in_reply_to_str = get_in_reply_to(api, status, NULL); - size_t s = easprintf(&stat_html, data_status_html, - status->id, - (flags & STATUS_FOCUSED) == STATUS_FOCUSED ? - "focused" : "", - notif_info ? notif_info : "", - status->account.avatar, - formatted_display_name, /* Username */ - config_url_prefix, - status->account.acct, - status->account.acct, /* Account */ - status->visibility, /* visibility */ - config_url_prefix, - status->id, - status->muted ? "un" : "", - status->muted ? "Unmute thread" : "Mute thread", - config_url_prefix, - status->id, - status->pinned ? "un" : "", - status->pinned ? "Unpin" : "Pin", - config_url_prefix, - status->id, - status->bookmarked ? "un" : "", - status->bookmarked ? "Remove Bookmark" : "Bookmark", - delete_status ? delete_status : "", - in_reply_to_str ? in_reply_to_str : "", - parse_content, - attachments ? attachments : "", - interactions_html ? interactions_html : "", - emoji_reactions ? emoji_reactions : "", - interaction_btns); + struct status_template tmpl = { + .status_id = status->id, + .focused = ((flags & STATUS_FOCUSED) == STATUS_FOCUSED ? + "focused" : ""), + .notif_info = notif_info, + .avatar = status->account.avatar, + .username = formatted_display_name, + .prefix = config_url_prefix, + .acct = status->account.acct, + .visibility = status->visibility, + .unmute = status->muted ? "un" : "", + .unmute_btn = status->muted ? "Unmute thread" : "Mute thread", + .unpin = status->pinned ? "un" : "", + .unpin_btn = status->pinned ? "Unpin" : "Pin", + .unbookmark = status->bookmarked ? "un" : "", + .unbookmark_btn = status->bookmarked ? "Remove Bookmark" : "Bookmark" + .delete_status = delete_status, + .in_reply_to_str = in_reply_to_str, + .status_content = parse_content, + .attachments = attachments, + .interactions = interactions_html, + .emoji_reactions = emoji_reactions, + .interaction_btns = interaction_btns + }; + + stat_html = tmpl_gen_status(&tmpl, size); - if (size) *size = s; // Cleanup if (formatted_display_name != status->account.display_name && formatted_display_name) free(formatted_display_name); diff --git a/static/status.ctmpl b/static/status.ctmpl new file mode 100644 index 0000000..d90cbd7 --- /dev/null +++ b/static/status.ctmpl @@ -0,0 +1,32 @@ +#ifndef __status +#define __status +static const char data_status[] = {0X3C,0X74,0X61,0X62,0X6C,0X65,0X20,0X69,0X64,0X3D,0X22,0X25,0X73,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X20,0X25,0X73,0X20,0X75,0X69,0X2D,0X74,0X61,0X62,0X6C,0X65,0X22,0X3E,0XA,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X3C,0X74,0X72,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X66,0X70,0X2D,0X74,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6D,0X67,0X20,0X73,0X72,0X63,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X20,0X20,0X3C,0X74,0X64,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X70,0X6F,0X73,0X74,0X65,0X72,0X2D,0X73,0X74,0X61,0X74,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X75,0X73,0X65,0X72,0X6E,0X61,0X6D,0X65,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X61,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X69,0X6E,0X73,0X74,0X61,0X6E,0X63,0X65,0X2D,0X69,0X6E,0X66,0X6F,0X22,0X20,0X68,0X72,0X65,0X66,0X3D,0X22,0X25,0X73,0X2F,0X40,0X25,0X73,0X22,0X3E,0X25,0X73,0X3C,0X2F,0X61,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X61,0X6C,0X69,0X67,0X6E,0X65,0X6E,0X64,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6D,0X65,0X6E,0X75,0X2D,0X63,0X6F,0X6E,0X74,0X61,0X69,0X6E,0X65,0X72,0X20,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X76,0X69,0X73,0X69,0X62,0X69,0X6C,0X69,0X74,0X79,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X64,0X69,0X76,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X6D,0X65,0X6E,0X75,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X6D,0X75,0X74,0X65,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X2F,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X70,0X69,0X6E,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X66,0X6F,0X72,0X6D,0X20,0X61,0X63,0X74,0X69,0X6F,0X6E,0X3D,0X22,0X25,0X73,0X2F,0X73,0X74,0X61,0X74,0X75,0X73,0X2F,0X25,0X73,0X69,0X6E,0X74,0X65,0X72,0X61,0X63,0X74,0X22,0X20,0X6D,0X65,0X74,0X68,0X6F,0X64,0X3D,0X22,0X70,0X6F,0X73,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X68,0X69,0X64,0X64,0X65,0X6E,0X22,0X20,0X6E,0X61,0X6D,0X65,0X3D,0X22,0X69,0X74,0X79,0X70,0X65,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X62,0X6F,0X6F,0X6B,0X6D,0X61,0X72,0X6B,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X69,0X6E,0X70,0X75,0X74,0X20,0X74,0X79,0X70,0X65,0X3D,0X22,0X73,0X75,0X62,0X6D,0X69,0X74,0X22,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X62,0X74,0X6E,0X2D,0X6D,0X65,0X6E,0X75,0X22,0X20,0X76,0X61,0X6C,0X75,0X65,0X3D,0X22,0X25,0X73,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X66,0X6F,0X72,0X6D,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X6C,0X69,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X75,0X6C,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X64,0X69,0X76,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X73,0X70,0X61,0X6E,0X20,0X63,0X6C,0X61,0X73,0X73,0X3D,0X22,0X73,0X74,0X61,0X74,0X75,0X73,0X2D,0X63,0X6F,0X6E,0X74,0X65,0X6E,0X74,0X22,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X3C,0X2F,0X73,0X70,0X61,0X6E,0X3E,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X20,0X20,0X25,0X73,0XA,0X20,0X20,0X20,0X20,0X3C,0X2F,0X74,0X64,0X3E,0XA,0X20,0X20,0X3C,0X2F,0X74,0X72,0X3E,0XA,0X3C,0X2F,0X74,0X61,0X62,0X6C,0X65,0X3E,0}; +struct status_template {const char* status_id; +const char* focused; +const char* notif_info; +const char* avatar; +const char* username; +const char* prefix; +const char* acct; +const char* visibility; +const char* unmute; +const char* unmute_btn; +const char* unpin; +const char* unpin_btn; +const char* unbookmark; +const char* unbookmark_btn; +const char* delete_status; +const char* in_reply_to_str; +const char* status_content; +const char* attachments; +const char* interactions; +const char* emoji_reactions; +const char* interaction_btns; +}; +char* tmpl_gen_status(struct status_template* data, unsigned* size){ +char* ret; +unsigned s = easprintf(&ret, data_status, data->status_id?data->status_id:"", data->focused?data->focused:"", data->notif_info?data->notif_info:"", data->avatar?data->avatar:"", data->username?data->username:"", data->prefix?data->prefix:"", data->acct?data->acct:"", data->acct?data->acct:"", data->visibility?data->visibility:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unmute?data->unmute:"", data->unmute_btn?data->unmute_btn:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unpin?data->unpin:"", data->unpin_btn?data->unpin_btn:"", data->prefix?data->prefix:"", data->status_id?data->status_id:"", data->unbookmark?data->unbookmark:"", data->unbookmark_btn?data->unbookmark_btn:"", data->delete_status?data->delete_status:"", data->in_reply_to_str?data->in_reply_to_str:"", data->status_content?data->status_content:"", data->attachments?data->attachments:"", data->interactions?data->interactions:"", data->emoji_reactions?data->emoji_reactions:"", data->interaction_btns?data->interaction_btns:""); +if (size) *size = s; +return ret; +} +#endif diff --git a/static/status.html b/static/status.html deleted file mode 100644 index 0c8c5f7..0000000 --- a/static/status.html +++ /dev/null @@ -1,50 +0,0 @@ - - %s - - - - -
- - -
- %s - %s - - - -
- %s - - %s - - %s - %s - %s - %s -
diff --git a/static/status.tmpl b/static/status.tmpl new file mode 100644 index 0000000..3ed0ea8 --- /dev/null +++ b/static/status.tmpl @@ -0,0 +1,50 @@ + + {{ %s : notif_info }} + + + + +
+ + +
+ {{%s:username}} + {{%s:acct}} + + + +
+ {{%s:in_reply_to_str}} + + {{%s:status_content}} + + {{%s:attachments}} + {{%s:interactions}} + {{%s:emoji_reactions}} + {{%s:interaction_btns}} +