I am starting work on an information section of my project that is more wiki style in nature vers normal content. The main thing these pages will have is cited refereences for the information provided. I wanted to mimick what Wikipidiea does by adding a number superscript notiion after the information that then points to a specific item in a list of sources at the botom of the page. I did some digging around and did not find any templetes or plugins for this on the umbraco marketplace so I wanted to see if anyone has done something similare to this or has any ideas on a good way to setup a doc type and it’s template to easly allow the maintaince of the source links as well as do that superscript link thing. I am getting decent at making custom plugins for Umbraco so if nothing really exists but a good idea could be articulated as a plugin idea I don’t mind making a custom plugin, and even releaseing it to the marketplace for usage. I just can’t really think of a decent way to approch even the basic design of the document type.
Hi @Eaglef90
Are the cited references internal or external?
You could build a non-navigable library of references that point to any URL and then link to them from your wiki document using a multi node tree picker.
The advantage of using a single library for this is that you only need to update a reference in one place if they change and all associated articles are updated.
If you think that’s overkill and they won’t be reused between wiki articles, then just use a custom block list or multi URL picker (depending on your needs) on each page.
I hope that helps assuming I’ve understood your query correctly!
Justin
Hi @Eaglef90 ,
I really like the idea given by @justin-nevitech .
I just want to suggest an addition to it that I have in mind. I haven’t built it myself yet, but it could be a solid approach.
You can have a central “References” folder. Like @justin-nevitech said, if a URL changes, you only have to fix it in one place.
To add to that, you could build a custom property editor (using Lit) right on the wiki DocType. When writing in Tiptap, the editor clicks a “Cite” button. A side panel slides out letting them search that global References folder.
The key is this: if the reference isn’t in the folder yet, they don’t leave the page. There’s just a simple “create new” form right in that side panel. When they hit save, it uses the Management API to create the new node in the global folder behind the scenes, and instantly drops the citation marker into their text.
This way, editors don’t have to navigate away to the references folder to add a new source; they can just do it seamlessly on the same page.
Hope it helps!
99% of the cited references would be external to the site. As we grow, and hopefuly make money, I am hoping to score interviews and such and then those could be used as references which would be internal links.
I don’t understnad what is meant by “single library” or “folder” but I would say 60-70% of references would not be reused.
I had originally thought about a blocklist with the RTE in it to built the list of references but was not shure how to link to those from the main article (the superscript number thing).
I was also spitballing this idea with Claud and they came up with the same custom cite button for use within the RTE like @ShekharTarare talks about and I do like that idea and it is currently the leading method I am going with as it forces link integraty between the document, the reference list, and the reference it’s self. I also think it would be easier to work with from an editor’s stand point over saying “Compile all your references, add them into this blocklist, save the page, now go write your article and link to the list”. If I go this way it will be an interesting plugin to write.
Hi @Eaglef90
By a single library or folder, we mean a node in the CMS tree which is not rendered on the website (i.e. it has no template). This concept is used to create re-usable content throughout a website which is not directly rendered on the website itself. Instead, it would be rendered as part of the page that references that content.
For example, if you had the concept of re-usable content (i.e. blocks, FAQs, people, etc), you would not want to manage them on each page they are referenced as they would all need updating if the reference changes (i.e. a FAQ is updated or a person’s job title/description changes).
You would then use a multi-node tree picker data type to pick relevant content and render them in your page template.
The only downside to the RTE solution is that the data would be stored in the RTE property so may be harder to extract if you needed to do so, depending on how you store the markup.
Also, if you want them to be searchable, adding them as their own content nodes they will be indexed by examine.
I hope that helps.
Justin
Hi @justin-nevitech
I agree on the RTE extraction issue. Trapping data inside the text editor is definitely a bad idea, and having real nodes is huge for Examine search.
The way this setup gets around that is by only storing a clean marker in the RTE, not the actual data. So, when an editor adds a citation, the text editor just gets a simple HTML tag holding the node’s GUID (something like <cite data-id="GUID"></cite>). All the real reference details—the URL, title, and author—live strictly in the central folder as real nodes, so Examine still indexes them perfectly.
For the display, a C# helper on the frontend reads those GUID markers and swaps them out for the standard [1], [2] superscripts. It keeps the text editor extremely light, keeps the actual data properly structured in the tree, and means the numbering updates automatically if someone rearranges paragraphs.
For quick to market, you could just have insert block in the rte?
I actually use the no-template node concept for resuable items on my site already for a global navigation hub. Had not thought about doing that for other things as well, thanks for opening my eyes.
I don’t think I would want the citations searchable themself and I am not sure how managable it would be to have each one a single no-template node. Two articles I have already written have almost 40 citations each, non of which really overlap, so I can see the amount of node growing way to big fast.
The RTE cite button idea is actually a custom package that addes both the cite button to the RTE and a corisponding “references” property to use. This property would be a non-diretly editable field that the cite reads into/updates but which would allow easly read access to from the template. This solves the hundreads/thousands of nodes issues that I can see happening and keeps everything clean and easly managed as well.
From the surface this looks like the way I might be going but I have not started to dig into this to far just yet. Still working on my first plugin and need to finish that one up first before I start on the path of dealing with any part of this.