143 blanks-fill.attributes, blanks-fill.content } |
142 blanks-fill.attributes, blanks-fill.content } |
144 blanks-select = element blanks-select { |
143 blanks-select = element blanks-select { |
145 blanks-select.attributes, blanks-select.content } |
144 blanks-select.attributes, blanks-select.content } |
146 blanks-media = element blanks-media { |
145 blanks-media = element blanks-media { |
147 blanks-select.attributes, blanks-media.content } |
146 blanks-select.attributes, blanks-media.content } |
148 blanks-char = element blanks-char { |
147 blanks-char = element blanks-char { |
149 blanks-char.attributes, blanks-select.content } |
148 blanks-char.attributes, blanks-select.content } |
150 |
149 |
151 blanks-fill.attributes = |
150 blanks-fill.attributes = |
152 success.attribute? |
151 success.attribute? |
153 & strict.attribute? |
152 & strict.attribute? |
300 |
299 |
301 category.content = |
300 category.content = |
302 category.head, |
301 category.head, |
303 category.item* |
302 category.item* |
304 |
303 |
305 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
306 |
|
307 mip = element mip { mip.attributes, mip.content } |
|
308 |
|
309 mip.attributes = |
|
310 success.attribute? |
|
311 & multiple.attribute? |
|
312 & orientation.attribute? |
|
313 |
|
314 mip.content = |
|
315 mip.image |
|
316 |
|
317 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
304 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
318 |
305 |
319 production = element production { production.content } |
306 production = element production { production.content } |
320 |
307 |
321 production.content = text |
308 production.content = text |
575 link? |
562 link? |
576 |
563 |
577 # ~~~~~~ blanks.image |
564 # ~~~~~~ blanks.image |
578 blanks.image = element image { image.attributes, blanks.image.content } |
565 blanks.image = element image { image.attributes, blanks.image.content } |
579 blanks-m.image = element image { image.attributes, blanks-m.image.content } |
566 blanks-m.image = element image { image.attributes, blanks-m.image.content } |
580 mip.image = element image { image.attributes, mip.image.content } |
|
581 |
567 |
582 blanks.image.content = |
568 blanks.image.content = |
583 copyright?, |
569 copyright?, |
584 blanks.dropzone* |
570 blanks.dropzone* |
585 blanks-m.image.content = |
571 blanks-m.image.content = |
586 copyright?, |
572 copyright?, |
587 blanks-m.dropzone* |
573 blanks-m.dropzone* |
588 mip.image.content = |
|
589 mip.dropzone+ |
|
590 |
574 |
591 # ~~~~~~ dropzone |
575 # ~~~~~~ dropzone |
592 blanks.dropzone = element dropzone { |
576 blanks.dropzone = element dropzone { |
593 blanks.dropzone.attributes, blanks.dropzone.content } |
577 blanks.dropzone.attributes, blanks.dropzone.content } |
594 blanks-m.dropzone = element dropzone { |
578 blanks-m.dropzone = element dropzone { |
595 blanks.dropzone.attributes, blanks-m.dropzone.content } |
579 blanks-m.dropzone.attributes, blanks-m.dropzone.content } |
596 mip.dropzone = element dropzone { |
|
597 mip.dropzone.attributes, mip.dropzone.content } |
|
598 |
580 |
599 blanks.dropzone.attributes = |
581 blanks.dropzone.attributes = |
600 x.attribute |
582 x.attribute |
601 & y.attribute |
583 & y.attribute |
602 mip.dropzone.attributes = |
584 blanks-m.dropzone.attributes = |
603 x.attribute |
585 x.attribute |
604 & y.attribute |
586 & y.attribute |
605 & w.attribute |
587 & w.attribute |
606 & h.attribute |
588 & h.attribute |
607 |
589 |
608 blanks.dropzone.content = |
590 blanks.dropzone.content = |
609 blank |
591 blank |
610 blanks-m.dropzone.content = |
592 blanks-m.dropzone.content = |
611 blank-m |
593 blank-m |
612 mip.dropzone.content = |
|
613 image?, |
|
614 audio? |
|
615 |
594 |
616 # ~~~~~~ media.caption |
595 # ~~~~~~ media.caption |
617 blanks.media.caption = element caption { |
596 blanks.media.caption = element caption { |
618 caption.attributes, blanks.caption.content } |
597 caption.attributes, blanks.caption.content } |
619 blanks-m.media.caption = element caption { |
598 blanks-m.media.caption = element caption { |
802 text |
781 text |
803 | (s+, help?, answer?) |
782 | (s+, help?, answer?) |
804 |
783 |
805 # ~~~~~~ blank-m |
784 # ~~~~~~ blank-m |
806 blank-m = element blank { blank-m.content } |
785 blank-m = element blank { blank-m.content } |
807 blank-m.content = math | image | audio | s-m+ |
786 blank-m.content = |
|
787 p |
|
788 | math |
|
789 | image |
|
790 | audio |
|
791 | (s-m+, help?, answer?) |
808 |
792 |
809 # ~~~~~~ s |
793 # ~~~~~~ s |
810 s = element s { s.content } |
794 s = element s { s.content } |
811 s.content = text |
795 s.content = text |
812 |
796 |
813 # ~~~~~~ s-m |
797 # ~~~~~~ s-m |
814 s-m = element s { s-m.content } |
798 s-m = element s { s-m.content } |
815 s-m.content = math | image | audio |
799 s-m.content = |
|
800 p |
|
801 | math |
|
802 | image |
|
803 | audio |
816 |
804 |
817 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ point ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
805 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ point ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
818 |
806 |
819 point = element point { point.attributes, point.content } |
807 point = element point { point.attributes, point.content } |
820 pip.point = element point { pip.point.attributes, point.content } |
808 pip.point = element point { pip.point.attributes, point.content } |