User Tools

Site Tools


display

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

display [2013/12/24 22:27]
l
display [2017/10/09 20:39]
Line 1: Line 1:
-===== <<​display>>​ ===== 
  
-The <<​display>>​ macro lets you display the full contents of a passage inside another passage. 
- 
-====Usage==== 
-Long form: 
->​%%<<​%%display //​expression//​%%>>​%% 
- 
-Shorthand form (see below): 
->​%%<<​%%//​string//​ //[value ...]//​%%>>​%% 
- 
-====Motivating example==== 
-Suppose you have a block of text or code which appears identically in multiple passages. It can be a pain to have to keep track of each instance in which it was used, especially when fixing spelling or link names. <​display>>​ provides you with an elegant means of reusing this text: simply place it in another passage, and then use <<​display>>​ in each of the places it is used. 
- 
-Consider this source code, which paraphrases one of the first scenes of //The Hitchhiker'​s Guide to the Galaxy:// 
- 
-<​code>​ 
-:: The world is ending 
-The world is about to end -- something about construction of a bypass? -- and 
-you only have time to buy one thing at the pub. 
-* [[Buy another beer]] 
-* [[Buy a sandwich]] 
- 
-:: Buy another beer 
-Ford had said something about muscle relaxant. 
-You decide to take him at his word. 
- 
-<<​display '​Vogons begin'>>​ 
- 
-:: Buy a sandwich 
-For some odd reason you've been craving a cheese sandwich all day, and it looks 
-like you won't have a chance to have one anytime soon. 
- 
-<<​display '​Vogons begin'>>​ 
- 
-:: Vogons begin 
-You hear a great rumbling from outside, and rush outside to see what's going on... 
-<<set $vogons to true>>​ 
-</​code>​ 
- 
-In both of those passages, the entire text of the passage "​Vogons begin" will be displayed after the text. Since its text contains the macro <<set $vogons to true>>,​ then it will indeed be set in both of those passages. 
- 
-====A note about tags==== 
- 
-What the <<​display>>​ macro actually does is copy the text from the given passage into the current passage. It doesn'​t actually display the passage in its own right. What this means is that, if a passage has [[tag]]-based CSS styling specific to it, then that styling will not be applied to the current passage! 
- 
-====Using a variable to display a passage==== 
- 
-The <<​display>>​ macro treats its argument as a [[about expressions|code expression]]. This means that you can put a passage name in a variable and then display it: 
- 
-<​code>​ 
-With a rush of wind, you arrive in the <<​print $destination>>​! 
-<<​display $destination>>​ 
-</​code>​ 
- 
-If, say, $destination contained the string "​Cellar",​ and a Cellar passage existed, it would print "With a rush of wind, you arrive in the Cellar!"​ and display the Cellar passage. 
- 
-====Shorthand form==== 
- 
-The <<​display>>​ macro is special among Twine macros because it has a shorthand form. Instead of writing <<​display "​passage">>,​ you can simply write <<​passage>>,​ as if it was another macro. 
- 
-However, to avoid conflicts with other aspects of Twine syntax, you can only use the shorthand to display passages whose names adhere to these rules: 
-  * The passage name must not contain spaces. 
-  * The passage name must not conflict with the name of an actual macro (so, you can't display a passage titled "​print"​). 
- 
-This shorthand form allows you to write Twine stories in a "​template"​ style: 
- 
-<​code>​ 
-:: Battle start 
-With a resounding cry of "<<​battlecry>>",​ your <<​minions>>​ rush into battle! 
- 
-:: battlecry [nobr] 
-<<if $morale > 2>> 
-Victory is ours! 
-<<​else>>​ 
-Help us! 
-<<​endif>>​ 
- 
-:: minions [nobr] 
-<<if $species is "​globbo">>​ 
-globlings 
-<<​else if $species is "​varavar">>​ 
-vara-thralls 
-<<​endif>>​ 
-</​code>​ 
- 
-As you can see, the "​battlecry"​ and "​minions"​ passages can be displayed in place of those <<​[[if]]>>​ statements throughout the story, with little hindrance to the readability of the passage text. 
- 
-====Displaying a script passage==== 
- 
-If you attempt to <<​display>>​ a passage containing a Javascript [[script]], something special will happen: the script code will not be displayed, but will instead be re-executed. 
- 
-====Avoid the <<​display>>​ loop==== 
-It is possible to lock up a reader'​s Web browser by using the ''<<​display>>''​ macro improperly, like this: 
- 
-<​code>​ 
-:: Oops 
-<<​display "​Oops">>​ 
-</​code>​ 
- 
-When displayed, the passage will keep attempting to display itself over and over until the reader force quits his Web browser. This doesn'​t do permanent damage, but it will not endear yourself to your reader. 
display.txt ยท Last modified: 2017/10/09 20:39 (external edit)