mirror of
https://github.com/discourse/discourse.git
synced 2025-05-26 11:02:18 +08:00
FEATURE: Embed topics list on remote sites via Javascript API. (#8008)
This adds support for a `<d-topics-list>` tag you can embed in your site that will be rendered as a list of discourse topics. Any attributes on the tag will be passed as filters. For example: `<d-topics-list discourse-url="URL" category="1234">` will filter to category 1234. To use this feature, enable the `embed topics list` site setting. Then on the site you want to embed, include the following javascript: `<script src="http://URL/javascripts/embed-topics.js"></script>` Where `URL` is your discourse forum's URL. Then include the `<d-topics-list discourse-url="URL">` tag in your HTML document and it will be replaced with the list of topics.
This commit is contained in:
@ -24,17 +24,20 @@
|
||||
|
||||
window.onload = function() {
|
||||
// get state info from data attribute
|
||||
var header = document.querySelector("header");
|
||||
var embedState = document.querySelector("[data-embed-state]");
|
||||
var state = "unknown";
|
||||
if (header) {
|
||||
state = header.getAttribute("data-embed-state");
|
||||
var embedId = null;
|
||||
if (embedState) {
|
||||
state = embedState.getAttribute("data-embed-state");
|
||||
embedId = embedState.getAttribute("data-embed-id");
|
||||
}
|
||||
|
||||
// Send a post message with our loaded height and state
|
||||
postUp({
|
||||
type: "discourse-resize",
|
||||
height: document["body"].offsetHeight,
|
||||
state: state
|
||||
state,
|
||||
embedId
|
||||
});
|
||||
|
||||
var postLinks = document.querySelectorAll("a[data-link-to-post]"),
|
||||
|
Reference in New Issue
Block a user