From: Bob de V. <b.d...@bo...> - 2011-09-26 12:13:12
|
Hello all, == intro == I have been using MediaWiki instances throughout my work in the past few years to function as an ICT infrastructure documentation framework. Only recently I started a MediaWiki based intranet site in order to ultimately compose functional requirements documentation (version 1.15 + PostgreSQL + SMW 1.6 at the moment). In the documentation's articles, every few paragraphs a requirement or principle is mentioned and a reference to a dedicated 'design principle' article (page) is made. Each 'design principle' article is formatted in the same way (not using SMW forms here) because my goal is to be able to finally compile a list of design principles. For that I am using SMW properties to tag parts of each design principle article. The template I am using to create each design principle page has at least the following elements: * name * statement * rationale * implications An example would be that in my article I am mentioning 'External DNS resolving is serviced by at least two standalone DNS servers'. For this 'principle' I create the page 'Principle:External DNS resolving is serviced by at least two standalone DNS servers' and on this page, in the 'statement' part describe what I mean by this, the 'rationale' part holds the reasoning behind the decision and what benefits it brings and the 'implications' part finally shows what the consequences and/or drawbacks possible are. == method == I do this by calling a template 'Principle' and assigning its variables the corresponding values. Then, each element in the template not only is properly formatted but also assigned to a (similarly named) property. Those properties can then be used in {{#ask or {{#show statements on other pages and all have a [[Has type::string]] content. A part of the template for example looks like this: {{#if: {{{statement|{{{2|}}}}}} | <p class="principle-description statement" title="statement" id="{{anchorencode:{{{principle|{{{1}}}}}}}}-statement">[[statement::{{{statement|{{{2}}}}}}]]</p> | {{Principle/Provide statement|Principle:{{{principle|{{{1}}}}}}}} }} This reads like: If the template caller assigned a value to the variable named 'statement', this shows the statement, formatted in a special paragraph, and at the same time assigns the variable to a property also named 'statement'. If the variable was left empty, the contents of a 'reminder' template are shown to indicate some required information is missing from the definition of the principle. == problem == All of this actually works quite nicely, the only problem I have is that if variables, such as the 'statement' variable in the example, contain more than just text (links for example, or templates that are not substituted), the SMW parsing fails, the outer most bracket pairs and the property name are shown == question == What I would like to know is * how can I prevent SMW from failing to gobble up all supplied content or * how can I give SMW a property value that is flattened to contain just literal text I apologize for the rather lengthy explanation, but rather have that than having multiple discussions about what the real problem is . Also, I am relatively new to the mailing list, so might have missed a spot-on discussion in the past. If anyone remembers a similar question, please point it out. And perhaps I am looking in the wrong direction and should follow a different approach in either supplying the variables to the template or assigning the values to the properties; I'd love to hear that as well! thnx in advance for ideas/comments/solutions/pointers ! cheers, Bob PS I am a bit ashamed to say that I have posted this very question as well on the MediaWiki users forum since I know it is not polite to crosspost. However, since this a mailing list I couldn't find another way to do it. Apologies in advance :-) |