Markdown parser fork with extended syntax for personal use.
at hack 3579 lines 91 kB view raw
1//! Semantic labels of things happening. 2 3use crate::unist; 4use crate::util::constant::TAB_SIZE; 5 6/// Semantic label of a span. 7#[derive(Clone, Debug, Eq, Hash, PartialEq)] 8pub enum Name { 9 /// Attention sequence. 10 /// 11 /// > 👉 **Note**: this is used while parsing but compiled away. 12 AttentionSequence, 13 /// Whole autolink. 14 /// 15 /// ## Info 16 /// 17 /// * **Context**: 18 /// [text content][crate::construct::text] 19 /// * **Content model**: 20 /// [`AutolinkEmail`][Name::AutolinkEmail], 21 /// [`AutolinkMarker`][Name::AutolinkMarker], 22 /// [`AutolinkProtocol`][Name::AutolinkProtocol] 23 /// * **Construct**: 24 /// [`autolink`][crate::construct::autolink] 25 /// 26 /// ## Example 27 /// 28 /// ```markdown 29 /// > | <https://example.com> and <admin@example.com> 30 /// ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ 31 /// ``` 32 Autolink, 33 /// Email autolink w/o markers. 34 /// 35 /// ## Info 36 /// 37 /// * **Context**: 38 /// [`Autolink`][Name::Autolink] 39 /// * **Content model**: 40 /// void 41 /// * **Construct**: 42 /// [`autolink`][crate::construct::autolink] 43 /// 44 /// ## Example 45 /// 46 /// ```markdown 47 /// > | <admin@example.com> 48 /// ^^^^^^^^^^^^^^^^^ 49 /// ``` 50 AutolinkEmail, 51 /// Marker of an autolink. 52 /// 53 /// ## Info 54 /// 55 /// * **Context**: 56 /// [`Autolink`][Name::Autolink] 57 /// * **Content model**: 58 /// void 59 /// * **Construct**: 60 /// [`autolink`][crate::construct::autolink] 61 /// 62 /// ## Example 63 /// 64 /// ```markdown 65 /// > | <https://example.com> 66 /// ^ ^ 67 /// ``` 68 AutolinkMarker, 69 /// Protocol autolink w/o markers. 70 /// 71 /// ## Info 72 /// 73 /// * **Context**: 74 /// [`Autolink`][Name::Autolink] 75 /// * **Content model**: 76 /// void 77 /// * **Construct**: 78 /// [`autolink`][crate::construct::autolink] 79 /// 80 /// ## Example 81 /// 82 /// ```markdown 83 /// > | <https://example.com> 84 /// ^^^^^^^^^^^^^^^^^^^ 85 /// ``` 86 AutolinkProtocol, 87 /// Line ending preceded only by whitespace or nothing at all. 88 /// 89 /// ## Info 90 /// 91 /// * **Context**: 92 /// [flow content][crate::construct::flow] 93 /// * **Content model**: 94 /// void 95 /// * **Construct**: 96 /// [`blank_line`][crate::construct::blank_line] 97 /// 98 /// ## Example 99 /// 100 /// ```markdown 101 /// > | ␠␠␊ 102 /// ^ 103 /// ``` 104 BlankLineEnding, 105 /// Whole block quote. 106 /// 107 /// ## Info 108 /// 109 /// * **Context**: 110 /// [document content][crate::construct::document] 111 /// * **Content model**: 112 /// [`BlockQuotePrefix`][Name::BlockQuotePrefix], 113 /// [flow content][crate::construct::flow] 114 /// * **Construct**: 115 /// [`block_quote`][crate::construct::block_quote] 116 /// 117 /// ## Example 118 /// 119 /// ```markdown 120 /// > | > a 121 /// ^^^ 122 /// > | b 123 /// ^ 124 /// ``` 125 ObsidianBlockQuoteCallout, 126 ObsidianBlockQuoteCalloutType, 127 ObsidianText, 128 BlockQuote, 129 /// Block quote marker. 130 /// 131 /// ## Info 132 /// 133 /// * **Context**: 134 /// [`BlockQuotePrefix`][Name::BlockQuotePrefix] 135 /// * **Content model**: 136 /// void 137 /// * **Construct**: 138 /// [`block_quote`][crate::construct::block_quote] 139 /// 140 /// ## Example 141 /// 142 /// ```markdown 143 /// > | > a 144 /// ^ 145 /// | b 146 /// ``` 147 BlockQuoteMarker, 148 /// Block quote prefix. 149 /// 150 /// ## Info 151 /// 152 /// * **Context**: 153 /// [`BlockQuote`][Name::BlockQuote] 154 /// * **Content model**: 155 /// [`BlockQuoteMarker`][Name::BlockQuoteMarker], 156 /// [`SpaceOrTab`][Name::SpaceOrTab] 157 /// * **Construct**: 158 /// [`block_quote`][crate::construct::block_quote] 159 /// 160 /// ## Example 161 /// 162 /// ```markdown 163 /// > | > a 164 /// ^^ 165 /// | b 166 /// ``` 167 BlockQuotePrefix, 168 /// Byte order mark. 169 /// 170 /// ## Info 171 /// 172 /// * **Context**: 173 /// optional first event 174 /// * **Content model**: 175 /// void 176 /// * **Construct**: 177 /// [`document`][crate::construct::document] 178 ByteOrderMark, 179 /// Whole character escape. 180 /// 181 /// ## Info 182 /// 183 /// * **Context**: 184 /// [string content][crate::construct::string] or 185 /// [text content][crate::construct::text] 186 /// * **Content model**: 187 /// [`CharacterEscapeMarker`][Name::CharacterEscapeMarker], 188 /// [`CharacterEscapeValue`][Name::CharacterEscapeValue] 189 /// * **Construct**: 190 /// [`character_escape`][crate::construct::character_escape] 191 /// 192 /// ## Example 193 /// 194 /// ```markdown 195 /// > | a \- b 196 /// ^^ 197 /// ``` 198 CharacterEscape, 199 /// Character escape marker. 200 /// 201 /// ## Info 202 /// 203 /// * **Context**: 204 /// [`CharacterEscape`][Name::CharacterEscape] 205 /// * **Content model**: 206 /// void 207 /// * **Construct**: 208 /// [`character_escape`][crate::construct::character_escape] 209 /// 210 /// ## Example 211 /// 212 /// ```markdown 213 /// > | a \- b 214 /// ^ 215 /// ``` 216 CharacterEscapeMarker, 217 /// Character escape value. 218 /// 219 /// ## Info 220 /// 221 /// * **Context**: 222 /// [`CharacterEscape`][Name::CharacterEscape] 223 /// * **Content model**: 224 /// void 225 /// * **Construct**: 226 /// [`character_escape`][crate::construct::character_escape] 227 /// 228 /// ## Example 229 /// 230 /// ```markdown 231 /// > | a \- b 232 /// ^ 233 /// ``` 234 CharacterEscapeValue, 235 /// Whole character reference. 236 /// 237 /// ## Info 238 /// 239 /// * **Context**: 240 /// [string content][crate::construct::string] or 241 /// [text content][crate::construct::text] 242 /// * **Content model**: 243 /// [`CharacterReferenceMarker`][Name::CharacterReferenceMarker], 244 /// [`CharacterReferenceMarkerHexadecimal`][Name::CharacterReferenceMarkerHexadecimal], 245 /// [`CharacterReferenceMarkerNumeric`][Name::CharacterReferenceMarkerNumeric], 246 /// [`CharacterReferenceMarkerSemi`][Name::CharacterReferenceMarkerSemi], 247 /// [`CharacterReferenceValue`][Name::CharacterReferenceValue] 248 /// * **Construct**: 249 /// [`character_reference`][crate::construct::character_reference] 250 /// 251 /// ## Example 252 /// 253 /// ```markdown 254 /// > | a &amp; b &#8800; c &#x1D306; d 255 /// ^^^^^ ^^^^^^^ ^^^^^^^^^ 256 /// ``` 257 CharacterReference, 258 /// Character reference opening marker. 259 /// 260 /// ## Info 261 /// 262 /// * **Context**: 263 /// [`CharacterReference`][Name::CharacterReference] 264 /// * **Content model**: 265 /// void 266 /// * **Construct**: 267 /// [`character_reference`][crate::construct::character_reference] 268 /// 269 /// ## Example 270 /// 271 /// ```markdown 272 /// > | a &amp; b &#8800; c &#x1D306; d 273 /// ^ ^ ^ 274 /// ``` 275 CharacterReferenceMarker, 276 /// Character reference hexadecimal numeric marker. 277 /// 278 /// ## Info 279 /// 280 /// * **Context**: 281 /// [`CharacterReference`][Name::CharacterReference] 282 /// * **Content model**: 283 /// void 284 /// * **Construct**: 285 /// [`character_reference`][crate::construct::character_reference] 286 /// 287 /// ## Example 288 /// 289 /// ```markdown 290 /// > | a &amp; b &#8800; c &#x1D306; d 291 /// ^ 292 /// ``` 293 CharacterReferenceMarkerHexadecimal, 294 /// Character reference numeric marker. 295 /// 296 /// ## Info 297 /// 298 /// * **Context**: 299 /// [`CharacterReference`][Name::CharacterReference] 300 /// * **Content model**: 301 /// void 302 /// * **Construct**: 303 /// [`character_reference`][crate::construct::character_reference] 304 /// 305 /// ## Example 306 /// 307 /// ```markdown 308 /// > | a &amp; b &#8800; c &#x1D306; d 309 /// ^ ^ 310 /// ``` 311 CharacterReferenceMarkerNumeric, 312 /// Character reference closing marker. 313 /// 314 /// ## Info 315 /// 316 /// * **Context**: 317 /// [`CharacterReference`][Name::CharacterReference] 318 /// * **Content model**: 319 /// void 320 /// * **Construct**: 321 /// [`character_reference`][crate::construct::character_reference] 322 /// 323 /// ## Example 324 /// 325 /// ```markdown 326 /// > | a &amp; b &#8800; c &#x1D306; d 327 /// ^ ^ ^ 328 /// ``` 329 CharacterReferenceMarkerSemi, 330 /// Character reference value. 331 /// 332 /// ## Info 333 /// 334 /// * **Context**: 335 /// [`CharacterReference`][Name::CharacterReference] 336 /// * **Content model**: 337 /// void 338 /// * **Construct**: 339 /// [`character_reference`][crate::construct::character_reference] 340 /// 341 /// ## Example 342 /// 343 /// ```markdown 344 /// > | a &amp; b &#8800; c &#x1D306; d 345 /// ^^^ ^^^^ ^^^^^ 346 /// ``` 347 CharacterReferenceValue, 348 /// Whole code (fenced). 349 /// 350 /// ## Info 351 /// 352 /// * **Context**: 353 /// [flow content][crate::construct::flow] 354 /// * **Content model**: 355 /// [`CodeFencedFence`][Name::CodeFencedFence], 356 /// [`CodeFlowChunk`][Name::CodeFlowChunk], 357 /// [`LineEnding`][Name::LineEnding], 358 /// [`SpaceOrTab`][Name::SpaceOrTab] 359 /// * **Construct**: 360 /// [`raw_flow`][crate::construct::raw_flow] 361 /// 362 /// ## Example 363 /// 364 /// ````markdown 365 /// > | ```js 366 /// ^^^^^ 367 /// > | console.log(1) 368 /// ^^^^^^^^^^^^^^ 369 /// > | ``` 370 /// ^^^ 371 /// ```` 372 CodeFenced, 373 /// A code (fenced) fence. 374 /// 375 /// ## Info 376 /// 377 /// * **Context**: 378 /// [`CodeFenced`][Name::CodeFenced] 379 /// * **Content model**: 380 /// [`CodeFencedFenceInfo`][Name::CodeFencedFenceInfo], 381 /// [`CodeFencedFenceMeta`][Name::CodeFencedFenceMeta], 382 /// [`CodeFencedFenceSequence`][Name::CodeFencedFenceSequence], 383 /// [`SpaceOrTab`][Name::SpaceOrTab] 384 /// * **Construct**: 385 /// [`raw_flow`][crate::construct::raw_flow] 386 /// 387 /// ## Example 388 /// 389 /// ````markdown 390 /// > | ```js 391 /// ^^^^^ 392 /// | console.log(1) 393 /// > | ``` 394 /// ^^^ 395 /// ```` 396 CodeFencedFence, 397 /// A code (fenced) fence info word. 398 /// 399 /// ## Info 400 /// 401 /// * **Context**: 402 /// [`CodeFencedFence`][Name::CodeFencedFence] 403 /// * **Content model**: 404 /// [string content][crate::construct::string] 405 /// * **Construct**: 406 /// [`raw_flow`][crate::construct::raw_flow] 407 /// 408 /// ## Example 409 /// 410 /// ````markdown 411 /// > | ```js 412 /// ^^ 413 /// | console.log(1) 414 /// | ``` 415 /// ```` 416 CodeFencedFenceInfo, 417 /// A code (fenced) fence meta string. 418 /// 419 /// ## Info 420 /// 421 /// * **Context**: 422 /// [`CodeFencedFence`][Name::CodeFencedFence] 423 /// * **Content model**: 424 /// [string content][crate::construct::string] 425 /// * **Construct**: 426 /// [`raw_flow`][crate::construct::raw_flow] 427 /// 428 /// ## Example 429 /// 430 /// ````markdown 431 /// > | ```js highlight="1" 432 /// ^^^^^^^^^^^^^ 433 /// | console.log(1) 434 /// | ``` 435 /// ```` 436 CodeFencedFenceMeta, 437 /// A code (fenced) fence sequence. 438 /// 439 /// ## Info 440 /// 441 /// * **Context**: 442 /// [`CodeFencedFenceSequence`][Name::CodeFencedFenceSequence] 443 /// * **Content model**: 444 /// void 445 /// * **Construct**: 446 /// [`raw_flow`][crate::construct::raw_flow] 447 /// 448 /// ## Example 449 /// 450 /// ````markdown 451 /// > | ```js 452 /// ^^^ 453 /// | console.log(1) 454 /// > | ``` 455 /// ^^^ 456 /// ```` 457 CodeFencedFenceSequence, 458 /// A code (fenced, indented) chunk. 459 /// 460 /// ## Info 461 /// 462 /// * **Context**: 463 /// [`CodeFenced`][Name::CodeFenced], 464 /// [`CodeIndented`][Name::CodeIndented] 465 /// * **Content model**: 466 /// void 467 /// * **Construct**: 468 /// [`raw_flow`][crate::construct::raw_flow], 469 /// [`code_indented`][crate::construct::code_indented] 470 /// 471 /// ## Example 472 /// 473 /// ````markdown 474 /// | ```js 475 /// > | console.log(1) 476 /// ^^^^^^^^^^^^^^ 477 /// | ``` 478 /// ```` 479 /// 480 /// ```markdown 481 /// > | ␠␠␠␠console.log(1) 482 /// ^^^^^^^^^^^^^^ 483 /// ``` 484 CodeFlowChunk, 485 /// Whole code (indented). 486 /// 487 /// ## Info 488 /// 489 /// * **Context**: 490 /// [flow content][crate::construct::flow] 491 /// * **Content model**: 492 /// [`CodeFlowChunk`][Name::CodeFlowChunk], 493 /// [`LineEnding`][Name::LineEnding], 494 /// [`SpaceOrTab`][Name::SpaceOrTab] 495 /// * **Construct**: 496 /// [`raw_flow`][crate::construct::raw_flow] 497 /// 498 /// ## Example 499 /// 500 /// ```markdown 501 /// ␠␠␠␠console.log(1) 502 /// ^^^^^^^^^^^^^^^^^^ 503 /// ``` 504 CodeIndented, 505 /// Whole code (text). 506 /// 507 /// ## Info 508 /// 509 /// * **Context**: 510 /// [text content][crate::construct::text] 511 /// * **Content model**: 512 /// [`CodeTextData`][Name::CodeTextData], 513 /// [`CodeTextSequence`][Name::CodeTextSequence], 514 /// [`LineEnding`][Name::LineEnding] 515 /// * **Construct**: 516 /// [`raw_text`][crate::construct::raw_text] 517 /// 518 /// ## Example 519 /// 520 /// ```markdown 521 /// > | a `b` c 522 /// ^^^ 523 /// ``` 524 CodeText, 525 /// Code (text) data. 526 /// 527 /// ## Info 528 /// 529 /// * **Context**: 530 /// [`CodeText`][Name::CodeText] 531 /// * **Content model**: 532 /// void 533 /// * **Construct**: 534 /// [`raw_text`][crate::construct::raw_text] 535 /// 536 /// ## Example 537 /// 538 /// ```markdown 539 /// > | a `b` c 540 /// ^ 541 /// ``` 542 CodeTextData, 543 /// Code (text) sequence. 544 /// 545 /// ## Info 546 /// 547 /// * **Context**: 548 /// [`CodeText`][Name::CodeText] 549 /// * **Content model**: 550 /// void 551 /// * **Construct**: 552 /// [`raw_text`][crate::construct::raw_text] 553 /// 554 /// ## Example 555 /// 556 /// ```markdown 557 /// > | a `b` c 558 /// ^ ^ 559 /// ``` 560 CodeTextSequence, 561 /// Content. 562 /// 563 /// ## Info 564 /// 565 /// * **Context**: 566 /// [flow content][crate::construct::flow] 567 /// * **Content model**: 568 /// [content][crate::construct::content] 569 /// * **Construct**: 570 /// [`content`][crate::construct::content] 571 /// 572 /// ## Example 573 /// 574 /// ```markdown 575 /// > | [a]: b 576 /// ^^^^^^ 577 /// > | c. 578 /// ^^ 579 /// ``` 580 Content, 581 /// Data. 582 /// 583 /// ## Info 584 /// 585 /// * **Context**: 586 /// [string content][crate::construct::string], 587 /// [text content][crate::construct::text] 588 /// * **Content model**: 589 /// void 590 /// * **Construct**: 591 /// [`data`][crate::construct::partial_data] 592 /// 593 /// ## Example 594 /// 595 /// ```markdown 596 /// > | aa *bb* cc 597 /// ^^^ ^^ ^^^ 598 /// ``` 599 Data, 600 /// Whole definition. 601 /// 602 /// ## Info 603 /// 604 /// * **Context**: 605 /// [flow content][crate::construct::flow] 606 /// * **Content model**: 607 /// [`DefinitionMarker`][Name::DefinitionMarker], 608 /// [`DefinitionLabel`][Name::DefinitionLabel], 609 /// [`DefinitionDestination`][Name::DefinitionDestination], 610 /// [`DefinitionTitle`][Name::DefinitionTitle], 611 /// [`LineEnding`][Name::LineEnding], 612 /// [`SpaceOrTab`][Name::SpaceOrTab] 613 /// * **Construct**: 614 /// [`definition`][crate::construct::definition] 615 /// 616 /// ## Example 617 /// 618 /// ```markdown 619 /// > | [a]: b "c" 620 /// ^^^^^^^^^^ 621 /// ``` 622 Definition, 623 /// Whole definition destination. 624 /// 625 /// ## Info 626 /// 627 /// * **Context**: 628 /// [`Definition`][Name::Definition] 629 /// * **Content model**: 630 /// [`DefinitionDestinationLiteral`][Name::DefinitionDestinationLiteral], 631 /// [`DefinitionDestinationRaw`][Name::DefinitionDestinationRaw] 632 /// * **Construct**: 633 /// [`destination`][crate::construct::partial_destination] 634 /// 635 /// ## Example 636 /// 637 /// ```markdown 638 /// > | [a]: b "c" 639 /// ^ 640 /// > | [a]: <b> "c" 641 /// ^^^ 642 /// ``` 643 DefinitionDestination, 644 /// Definition destination literal. 645 /// 646 /// ## Info 647 /// 648 /// * **Context**: 649 /// [`DefinitionDestination`][Name::DefinitionDestination] 650 /// * **Content model**: 651 /// [`DefinitionDestinationLiteralMarker`][Name::DefinitionDestinationLiteralMarker], 652 /// [`DefinitionDestinationString`][Name::DefinitionDestinationString] 653 /// * **Construct**: 654 /// [`destination`][crate::construct::partial_destination] 655 /// 656 /// ## Example 657 /// 658 /// ```markdown 659 /// > | [a]: <b> "c" 660 /// ^^^ 661 /// ``` 662 DefinitionDestinationLiteral, 663 /// Definition destination literal marker. 664 /// 665 /// ## Info 666 /// 667 /// * **Context**: 668 /// [`DefinitionDestinationLiteral`][Name::DefinitionDestinationLiteral] 669 /// * **Content model**: 670 /// void 671 /// * **Construct**: 672 /// [`destination`][crate::construct::partial_destination] 673 /// 674 /// ## Example 675 /// 676 /// ```markdown 677 /// > | [a]: <b> "c" 678 /// ^ ^ 679 /// ``` 680 DefinitionDestinationLiteralMarker, 681 /// Definition destination raw. 682 /// 683 /// ## Info 684 /// 685 /// * **Context**: 686 /// [`DefinitionDestination`][Name::DefinitionDestination] 687 /// * **Content model**: 688 /// [`DefinitionDestinationString`][Name::DefinitionDestinationString] 689 /// * **Construct**: 690 /// [`destination`][crate::construct::partial_destination] 691 /// 692 /// ## Example 693 /// 694 /// ```markdown 695 /// > | [a]: b "c" 696 /// ^ 697 /// ``` 698 DefinitionDestinationRaw, 699 /// Definition destination data. 700 /// 701 /// ## Info 702 /// 703 /// * **Context**: 704 /// [`DefinitionDestinationLiteral`][Name::DefinitionDestinationLiteral], 705 /// [`DefinitionDestinationRaw`][Name::DefinitionDestinationRaw] 706 /// * **Content model**: 707 /// [string content][crate::construct::string] 708 /// * **Construct**: 709 /// [`destination`][crate::construct::partial_destination] 710 /// 711 /// ## Example 712 /// 713 /// ```markdown 714 /// > | [a]: b "c" 715 /// ^ 716 /// > | [a]: <b> "c" 717 /// ^ 718 /// ``` 719 DefinitionDestinationString, 720 /// Whole definition label. 721 /// 722 /// ## Info 723 /// 724 /// * **Context**: 725 /// [`Definition`][Name::Definition] 726 /// * **Content model**: 727 /// [`DefinitionLabelMarker`][Name::DefinitionLabelMarker], 728 /// [`DefinitionLabelString`][Name::DefinitionLabelString], 729 /// [`LineEnding`][Name::LineEnding], 730 /// [`SpaceOrTab`][Name::SpaceOrTab] 731 /// * **Construct**: 732 /// [`label`][crate::construct::partial_label] 733 /// 734 /// ## Example 735 /// 736 /// ```markdown 737 /// > | [a]: b "c" 738 /// ^^^ 739 /// ``` 740 DefinitionLabel, 741 /// Definition label marker. 742 /// 743 /// ## Info 744 /// 745 /// * **Context**: 746 /// [`DefinitionLabel`][Name::DefinitionLabel] 747 /// * **Content model**: 748 /// void 749 /// * **Construct**: 750 /// [`label`][crate::construct::partial_label] 751 /// 752 /// ## Example 753 /// 754 /// ```markdown 755 /// > | [a]: b "c" 756 /// ^ ^ 757 /// ``` 758 DefinitionLabelMarker, 759 /// Definition label data. 760 /// 761 /// ## Info 762 /// 763 /// * **Context**: 764 /// [`DefinitionLabel`][Name::DefinitionLabel] 765 /// * **Content model**: 766 /// [string content][crate::construct::string] 767 /// * **Construct**: 768 /// [`label`][crate::construct::partial_label] 769 /// 770 /// ## Example 771 /// 772 /// ```markdown 773 /// > | [a]: b "c" 774 /// ^ 775 /// ``` 776 DefinitionLabelString, 777 /// Definition marker. 778 /// 779 /// ## Info 780 /// 781 /// * **Context**: 782 /// [`Definition`][Name::Definition], 783 /// [`GfmFootnoteDefinition`][Name::GfmFootnoteDefinition] 784 /// * **Content model**: 785 /// void 786 /// * **Construct**: 787 /// [`definition`][crate::construct::definition] 788 /// 789 /// ## Example 790 /// 791 /// ```markdown 792 /// > | [a]: b "c" 793 /// ^ 794 /// ``` 795 DefinitionMarker, 796 /// Whole definition title. 797 /// 798 /// ## Info 799 /// 800 /// * **Context**: 801 /// [`Definition`][Name::Definition] 802 /// * **Content model**: 803 /// [`DefinitionTitleMarker`][Name::DefinitionTitleMarker], 804 /// [`DefinitionTitleString`][Name::DefinitionTitleString], 805 /// [`LineEnding`][Name::LineEnding], 806 /// [`SpaceOrTab`][Name::SpaceOrTab] 807 /// * **Construct**: 808 /// [`title`][crate::construct::partial_title] 809 /// 810 /// ## Example 811 /// 812 /// ```markdown 813 /// > | [a]: b "c" 814 /// ^^^ 815 /// ``` 816 DefinitionTitle, 817 /// Definition title marker. 818 /// 819 /// ## Info 820 /// 821 /// * **Context**: 822 /// [`DefinitionTitle`][Name::DefinitionTitle] 823 /// * **Content model**: 824 /// void 825 /// * **Construct**: 826 /// [`title`][crate::construct::partial_title] 827 /// 828 /// ## Example 829 /// 830 /// ```markdown 831 /// > | [a]: b "c" 832 /// ^ ^ 833 /// ``` 834 DefinitionTitleMarker, 835 /// Definition title data. 836 /// 837 /// ## Info 838 /// 839 /// * **Context**: 840 /// [`DefinitionTitle`][Name::DefinitionTitle] 841 /// * **Content model**: 842 /// [string content][crate::construct::string] 843 /// * **Construct**: 844 /// [`title`][crate::construct::partial_title] 845 /// 846 /// ## Example 847 /// 848 /// ```markdown 849 /// > | [a]: b "c" 850 /// ^ 851 /// ``` 852 DefinitionTitleString, 853 /// Emphasis. 854 /// 855 /// ## Info 856 /// 857 /// * **Context**: 858 /// [text content][crate::construct::text] 859 /// * **Content model**: 860 /// [`EmphasisSequence`][Name::EmphasisSequence], 861 /// [`EmphasisText`][Name::EmphasisText] 862 /// * **Construct**: 863 /// [`attention`][crate::construct::attention] 864 /// 865 /// ## Example 866 /// 867 /// ```markdown 868 /// > | *a* 869 /// ^^^ 870 /// ``` 871 Emphasis, 872 /// Emphasis sequence. 873 /// 874 /// ## Info 875 /// 876 /// * **Context**: 877 /// [`Emphasis`][Name::Emphasis] 878 /// * **Content model**: 879 /// void 880 /// * **Construct**: 881 /// [`attention`][crate::construct::attention] 882 /// 883 /// ## Example 884 /// 885 /// ```markdown 886 /// > | *a* 887 /// ^ ^ 888 /// ``` 889 EmphasisSequence, 890 /// Emphasis text. 891 /// 892 /// ## Info 893 /// 894 /// * **Context**: 895 /// [`Emphasis`][Name::Emphasis] 896 /// * **Content model**: 897 /// [text content][crate::construct::text] 898 /// * **Construct**: 899 /// [`attention`][crate::construct::attention] 900 /// 901 /// ## Example 902 /// 903 /// ```markdown 904 /// > | *a* 905 /// ^ 906 /// ``` 907 EmphasisText, 908 /// Whole frontmatter. 909 /// 910 /// ## Info 911 /// 912 /// * **Context**: 913 /// [document content][crate::construct::document] 914 /// * **Content model**: 915 /// [`FrontmatterFence`][Name::FrontmatterFence], 916 /// [`FrontmatterChunk`][Name::FrontmatterChunk], 917 /// [`LineEnding`][Name::LineEnding] 918 /// * **Construct**: 919 /// [`frontmatter`][crate::construct::frontmatter] 920 /// 921 /// ## Example 922 /// 923 /// ```markdown 924 /// > | --- 925 /// ^^^ 926 /// > | title: Neptune 927 /// ^^^^^^^^^^^^^^ 928 /// > | --- 929 /// ^^^ 930 /// ``` 931 Frontmatter, 932 /// Frontmatter chunk. 933 /// 934 /// ## Info 935 /// 936 /// * **Context**: 937 /// [`Frontmatter`][Name::Frontmatter] 938 /// * **Content model**: 939 /// void 940 /// * **Construct**: 941 /// [`frontmatter`][crate::construct::frontmatter] 942 /// 943 /// ## Example 944 /// 945 /// ```markdown 946 /// | --- 947 /// > | title: Neptune 948 /// ^^^^^^^^^^^^^^ 949 /// | --- 950 /// ``` 951 FrontmatterChunk, 952 /// Frontmatter fence. 953 /// 954 /// ## Info 955 /// 956 /// * **Context**: 957 /// [`Frontmatter`][Name::Frontmatter] 958 /// * **Content model**: 959 /// [`FrontmatterSequence`][Name::FrontmatterSequence], 960 /// [`SpaceOrTab`][Name::SpaceOrTab] 961 /// * **Construct**: 962 /// [`frontmatter`][crate::construct::frontmatter] 963 /// 964 /// ## Example 965 /// 966 /// ```markdown 967 /// > | --- 968 /// ^^^ 969 /// | title: Neptune 970 /// > | --- 971 /// ^^^ 972 /// ``` 973 FrontmatterFence, 974 /// Frontmatter sequence. 975 /// 976 /// ## Info 977 /// 978 /// * **Context**: 979 /// [`FrontmatterFence`][Name::FrontmatterFence] 980 /// * **Content model**: 981 /// void 982 /// * **Construct**: 983 /// [`frontmatter`][crate::construct::frontmatter] 984 /// 985 /// ## Example 986 /// 987 /// ```markdown 988 /// > | --- 989 /// ^^^ 990 /// | title: Neptune 991 /// > | --- 992 /// ^^^ 993 /// ``` 994 FrontmatterSequence, 995 /// GFM extension: email autolink. 996 /// 997 /// ## Info 998 /// 999 /// * **Context**: 1000 /// [text content][crate::construct::text] 1001 /// * **Content model**: 1002 /// void. 1003 /// * **Construct**: 1004 /// [`gfm_autolink_literal`][crate::construct::gfm_autolink_literal] 1005 /// 1006 /// ## Example 1007 /// 1008 /// ```markdown 1009 /// > | context@example.com 1010 /// ^^^^^^^^^^^^^^^^^^^ 1011 /// ``` 1012 GfmAutolinkLiteralEmail, 1013 /// GFM extension: email autolink w/ explicit `mailto`. 1014 /// 1015 /// ## Info 1016 /// 1017 /// * **Context**: 1018 /// [text content][crate::construct::text] 1019 /// * **Content model**: 1020 /// void. 1021 /// * **Construct**: 1022 /// [`gfm_autolink_literal`][crate::construct::gfm_autolink_literal] 1023 /// 1024 /// ## Example 1025 /// 1026 /// ```markdown 1027 /// > | mailto:context@example.com 1028 /// ^^^^^^^^^^^^^^^^^^^^^^^^^^ 1029 /// ``` 1030 GfmAutolinkLiteralMailto, 1031 /// GFM extension: autolink w/ protocol. 1032 /// 1033 /// ## Info 1034 /// 1035 /// * **Context**: 1036 /// [text content][crate::construct::text] 1037 /// * **Content model**: 1038 /// void. 1039 /// * **Construct**: 1040 /// [`gfm_autolink_literal`][crate::construct::gfm_autolink_literal] 1041 /// 1042 /// ## Example 1043 /// 1044 /// ```markdown 1045 /// > | https://example.com 1046 /// ^^^^^^^^^^^^^^^^^^^ 1047 /// ``` 1048 GfmAutolinkLiteralProtocol, 1049 /// GFM extension: autolink w/ www. 1050 /// 1051 /// ## Info 1052 /// 1053 /// * **Context**: 1054 /// [text content][crate::construct::text] 1055 /// * **Content model**: 1056 /// void. 1057 /// * **Construct**: 1058 /// [`gfm_autolink_literal`][crate::construct::gfm_autolink_literal] 1059 /// 1060 /// ## Example 1061 /// 1062 /// ```markdown 1063 /// > | www.example.com 1064 /// ^^^^^^^^^^^^^^^ 1065 /// ``` 1066 GfmAutolinkLiteralWww, 1067 /// GFM extension: email autolink w/ explicit `xmpp`. 1068 /// 1069 /// ## Info 1070 /// 1071 /// * **Context**: 1072 /// [text content][crate::construct::text] 1073 /// * **Content model**: 1074 /// void. 1075 /// * **Construct**: 1076 /// [`gfm_autolink_literal`][crate::construct::gfm_autolink_literal] 1077 /// 1078 /// ## Example 1079 /// 1080 /// ```markdown 1081 /// > | mailto:a@b.c/d 1082 /// ^^^^^^^^^^^^^^ 1083 /// ``` 1084 GfmAutolinkLiteralXmpp, 1085 /// GFM extension: whole footnote call. 1086 /// 1087 /// ## Info 1088 /// 1089 /// * **Context**: 1090 /// [text content][crate::construct::text] 1091 /// * **Content model**: 1092 /// [`Label`][Name::Label] 1093 /// * **Construct**: 1094 /// [`label_end`][crate::construct::label_end] 1095 /// 1096 /// ## Example 1097 /// 1098 /// ```markdown 1099 /// > | a [^b] c 1100 /// ^^^^ 1101 /// ``` 1102 GfmFootnoteCall, 1103 /// GFM extension: label start (footnote). 1104 /// 1105 /// ## Info 1106 /// 1107 /// * **Context**: 1108 /// [`Label`][Name::Label] 1109 /// * **Content model**: 1110 /// [`GfmFootnoteCallMarker`][Name::GfmFootnoteCallMarker], 1111 /// [`LabelMarker`][Name::LabelMarker] 1112 /// * **Construct**: 1113 /// [`gfm_label_start_footnote`][crate::construct::gfm_label_start_footnote] 1114 /// 1115 /// ## Example 1116 /// 1117 /// ```markdown 1118 /// > | a [^b] c 1119 /// ^^ 1120 /// ``` 1121 GfmFootnoteCallLabel, 1122 /// GFM extension: label start (footnote) marker. 1123 /// 1124 /// ## Info 1125 /// 1126 /// * **Context**: 1127 /// [`GfmFootnoteCallLabel`][Name::GfmFootnoteCallLabel] 1128 /// * **Content model**: 1129 /// void 1130 /// * **Construct**: 1131 /// [`gfm_label_start_footnote`][crate::construct::gfm_label_start_footnote] 1132 /// 1133 /// ## Example 1134 /// 1135 /// ```markdown 1136 /// > | a [^b] c 1137 /// ^ 1138 /// ``` 1139 GfmFootnoteCallMarker, 1140 /// GFM extension: whole footnote definition. 1141 /// 1142 /// ## Info 1143 /// 1144 /// * **Context**: 1145 /// [document content][crate::construct::document] 1146 /// * **Content model**: 1147 /// [`GfmFootnoteDefinitionPrefix`][Name::GfmFootnoteDefinitionPrefix], 1148 /// [document content][crate::construct::flow] 1149 /// * **Construct**: 1150 /// [`gfm_footnote_definition`][crate::construct::gfm_footnote_definition] 1151 /// 1152 /// ## Example 1153 /// 1154 /// ```markdown 1155 /// > | [^a]: b 1156 /// ^^^^^^^ 1157 /// ``` 1158 GfmFootnoteDefinition, 1159 /// GFM extension: footnote definition prefix. 1160 /// 1161 /// ## Info 1162 /// 1163 /// * **Context**: 1164 /// [`GfmFootnoteDefinition`][Name::GfmFootnoteDefinition] 1165 /// * **Content model**: 1166 /// [`DefinitionMarker`][Name::DefinitionMarker], 1167 /// [`GfmFootnoteDefinitionLabel`][Name::GfmFootnoteDefinitionLabel], 1168 /// [`SpaceOrTab`][Name::SpaceOrTab] 1169 /// * **Construct**: 1170 /// [`gfm_footnote_definition`][crate::construct::gfm_footnote_definition] 1171 /// 1172 /// ## Example 1173 /// 1174 /// ```markdown 1175 /// > | [^a]: b 1176 /// ^^^^^^ 1177 /// ``` 1178 GfmFootnoteDefinitionPrefix, 1179 /// GFM extension: footnote definition label. 1180 /// 1181 /// ## Info 1182 /// 1183 /// * **Context**: 1184 /// [`GfmFootnoteDefinitionPrefix`][Name::GfmFootnoteDefinitionPrefix] 1185 /// * **Content model**: 1186 /// [`GfmFootnoteDefinitionLabelMarker`][Name::GfmFootnoteDefinitionLabelMarker], 1187 /// [`GfmFootnoteDefinitionLabelString`][Name::GfmFootnoteDefinitionLabelString], 1188 /// [`GfmFootnoteDefinitionMarker`][Name::GfmFootnoteDefinitionMarker] 1189 /// * **Construct**: 1190 /// [`gfm_footnote_definition`][crate::construct::gfm_footnote_definition] 1191 /// 1192 /// ## Example 1193 /// 1194 /// ```markdown 1195 /// > | [^a]: b 1196 /// ^^^^ 1197 /// ``` 1198 GfmFootnoteDefinitionLabel, 1199 /// GFM extension: footnote definition label marker. 1200 /// 1201 /// ## Info 1202 /// 1203 /// * **Context**: 1204 /// [`GfmFootnoteDefinitionLabel`][Name::GfmFootnoteDefinitionLabel] 1205 /// * **Content model**: 1206 /// void 1207 /// * **Construct**: 1208 /// [`gfm_footnote_definition`][crate::construct::gfm_footnote_definition] 1209 /// 1210 /// ## Example 1211 /// 1212 /// ```markdown 1213 /// > | [^a]: b 1214 /// ^ ^ 1215 GfmFootnoteDefinitionLabelMarker, 1216 /// GFM extension: footnote definition label string. 1217 /// 1218 /// ## Info 1219 /// 1220 /// * **Context**: 1221 /// [`GfmFootnoteDefinitionLabel`][Name::GfmFootnoteDefinitionLabel] 1222 /// * **Content model**: 1223 /// [string content][crate::construct::string] 1224 /// * **Construct**: 1225 /// [`gfm_footnote_definition`][crate::construct::gfm_footnote_definition] 1226 /// 1227 /// ## Example 1228 /// 1229 /// ```markdown 1230 /// > | [^a]: b 1231 /// ^ 1232 GfmFootnoteDefinitionLabelString, 1233 /// GFM extension: footnote definition marker. 1234 /// 1235 /// ## Info 1236 /// 1237 /// * **Context**: 1238 /// [`GfmFootnoteDefinitionLabel`][Name::GfmFootnoteDefinitionLabel] 1239 /// * **Content model**: 1240 /// void 1241 /// * **Construct**: 1242 /// [`gfm_footnote_definition`][crate::construct::gfm_footnote_definition] 1243 /// 1244 /// ## Example 1245 /// 1246 /// ```markdown 1247 /// > | [^a]: b 1248 /// ^ 1249 GfmFootnoteDefinitionMarker, 1250 /// GFM extension: Strikethrough. 1251 /// 1252 /// ## Info 1253 /// 1254 /// * **Context**: 1255 /// [text content][crate::construct::text] 1256 /// * **Content model**: 1257 /// [`GfmStrikethroughSequence`][Name::GfmStrikethroughSequence], 1258 /// [`GfmStrikethroughText`][Name::GfmStrikethroughText] 1259 /// * **Construct**: 1260 /// [`attention`][crate::construct::attention] 1261 /// 1262 /// ## Example 1263 /// 1264 /// ```markdown 1265 /// > | ~a~ 1266 /// ^^^ 1267 /// ``` 1268 GfmStrikethrough, 1269 /// GFM extension: Strikethrough sequence. 1270 /// 1271 /// ## Info 1272 /// 1273 /// * **Context**: 1274 /// [`GfmStrikethrough`][Name::GfmStrikethrough] 1275 /// * **Content model**: 1276 /// void 1277 /// * **Construct**: 1278 /// [`attention`][crate::construct::attention] 1279 /// 1280 /// ## Example 1281 /// 1282 /// ```markdown 1283 /// > | ~a~ 1284 /// ^ ^ 1285 /// ``` 1286 GfmStrikethroughSequence, 1287 /// GFM extension: Strikethrough text. 1288 /// 1289 /// ## Info 1290 /// 1291 /// * **Context**: 1292 /// [`GfmStrikethrough`][Name::GfmStrikethrough] 1293 /// * **Content model**: 1294 /// [text content][crate::construct::text] 1295 /// * **Construct**: 1296 /// [`attention`][crate::construct::attention] 1297 /// 1298 /// ## Example 1299 /// 1300 /// ```markdown 1301 /// > | ~a~ 1302 /// ^ 1303 /// ``` 1304 GfmStrikethroughText, 1305 /// GFM extension: Table. 1306 /// 1307 /// ## Info 1308 /// 1309 /// * **Context**: 1310 /// [flow content][crate::construct::flow] 1311 /// * **Content model**: 1312 /// [`GfmTableBody`][Name::GfmTableBody], 1313 /// [`GfmTableHead`][Name::GfmTableHead], 1314 /// [`LineEnding`][Name::LineEnding] 1315 /// * **Construct**: 1316 /// [`gfm_table`][crate::construct::gfm_table] 1317 /// 1318 /// ## Example 1319 /// 1320 /// ```markdown 1321 /// > | | a | 1322 /// ^^^^^ 1323 /// > | | - | 1324 /// ^^^^^ 1325 /// > | | b | 1326 /// ^^^^^ 1327 /// ``` 1328 GfmTable, 1329 /// GFM extension: Table body. 1330 /// 1331 /// ## Info 1332 /// 1333 /// * **Context**: 1334 /// [`GfmTable`][Name::GfmTable] 1335 /// * **Content model**: 1336 /// [`GfmTableRow`][Name::GfmTableRow], 1337 /// [`LineEnding`][Name::LineEnding] 1338 /// * **Construct**: 1339 /// [`gfm_table`][crate::construct::gfm_table] 1340 /// 1341 /// ## Example 1342 /// 1343 /// ```markdown 1344 /// | | a | 1345 /// | | - | 1346 /// > | | b | 1347 /// ^^^^^ 1348 /// ``` 1349 GfmTableBody, 1350 /// GFM extension: Table cell. 1351 /// 1352 /// ## Info 1353 /// 1354 /// * **Context**: 1355 /// [`GfmTableRow`][Name::GfmTableRow] 1356 /// * **Content model**: 1357 /// [`GfmTableCellDivider`][Name::GfmTableCellDivider], 1358 /// [`GfmTableCellText`][Name::GfmTableCellText], 1359 /// [`SpaceOrTab`][Name::SpaceOrTab] 1360 /// * **Construct**: 1361 /// [`gfm_table`][crate::construct::gfm_table] 1362 /// 1363 /// ## Example 1364 /// 1365 /// ```markdown 1366 /// > | | a | 1367 /// ^^^^^ 1368 /// | | - | 1369 /// > | | b | 1370 /// ^^^^^ 1371 /// ``` 1372 GfmTableCell, 1373 /// GFM extension: Table cell text. 1374 /// 1375 /// ## Info 1376 /// 1377 /// * **Context**: 1378 /// [`GfmTableCell`][Name::GfmTableCell] 1379 /// * **Content model**: 1380 /// [text content][crate::construct::text] 1381 /// * **Construct**: 1382 /// [`gfm_table`][crate::construct::gfm_table] 1383 /// 1384 /// ## Example 1385 /// 1386 /// ```markdown 1387 /// > | | a | 1388 /// ^ 1389 /// | | - | 1390 /// > | | b | 1391 /// ^ 1392 /// ``` 1393 GfmTableCellText, 1394 /// GFM extension: Table cell divider. 1395 /// 1396 /// ## Info 1397 /// 1398 /// * **Context**: 1399 /// [`GfmTableCell`][Name::GfmTableCell] 1400 /// * **Content model**: 1401 /// void 1402 /// * **Construct**: 1403 /// [`gfm_table`][crate::construct::gfm_table] 1404 /// 1405 /// ## Example 1406 /// 1407 /// ```markdown 1408 /// > | | a | 1409 /// ^ ^ 1410 /// > | | - | 1411 /// ^ ^ 1412 /// > | | b | 1413 /// ^ ^ 1414 /// ``` 1415 GfmTableCellDivider, 1416 /// GFM extension: Table delimiter row. 1417 /// 1418 /// ## Info 1419 /// 1420 /// * **Context**: 1421 /// [`GfmTableHead`][Name::GfmTableHead] 1422 /// * **Content model**: 1423 /// [`GfmTableDelimiterCell`][Name::GfmTableDelimiterCell] 1424 /// * **Construct**: 1425 /// [`gfm_table`][crate::construct::gfm_table] 1426 /// 1427 /// ## Example 1428 /// 1429 /// ```markdown 1430 /// | | a | 1431 /// > | | - | 1432 /// ^^^^^ 1433 /// | | b | 1434 /// ``` 1435 GfmTableDelimiterRow, 1436 /// GFM extension: Table delimiter alignment marker. 1437 /// 1438 /// ## Info 1439 /// 1440 /// * **Context**: 1441 /// [`GfmTableDelimiterCellValue`][Name::GfmTableDelimiterCellValue] 1442 /// * **Content model**: 1443 /// void 1444 /// * **Construct**: 1445 /// [`gfm_table`][crate::construct::gfm_table] 1446 /// 1447 /// ## Example 1448 /// 1449 /// ```markdown 1450 /// | | a | 1451 /// > | | :- | 1452 /// ^ 1453 /// | | b | 1454 /// ``` 1455 GfmTableDelimiterMarker, 1456 /// GFM extension: Table delimiter cell. 1457 /// 1458 /// ## Info 1459 /// 1460 /// * **Context**: 1461 /// [`GfmTableDelimiterRow`][Name::GfmTableDelimiterRow] 1462 /// * **Content model**: 1463 /// [`GfmTableCellDivider`][Name::GfmTableCellDivider], 1464 /// [`GfmTableDelimiterCellValue`][Name::GfmTableDelimiterCellValue], 1465 /// [`SpaceOrTab`][Name::SpaceOrTab] 1466 /// * **Construct**: 1467 /// [`gfm_table`][crate::construct::gfm_table] 1468 /// 1469 /// ## Example 1470 /// 1471 /// ```markdown 1472 /// | | a | 1473 /// > | | - | 1474 /// ^^^^^ 1475 /// | | b | 1476 /// ``` 1477 GfmTableDelimiterCell, 1478 /// GFM extension: Table delimiter cell alignment. 1479 /// 1480 /// ## Info 1481 /// 1482 /// * **Context**: 1483 /// [`GfmTableDelimiterCell`][Name::GfmTableDelimiterCell] 1484 /// * **Content model**: 1485 /// [`GfmTableDelimiterMarker`][Name::GfmTableDelimiterMarker], 1486 /// [`GfmTableDelimiterFiller`][Name::GfmTableDelimiterFiller] 1487 /// * **Construct**: 1488 /// [`gfm_table`][crate::construct::gfm_table] 1489 /// 1490 /// ## Example 1491 /// 1492 /// ```markdown 1493 /// | | a | 1494 /// > | | - | 1495 /// ^ 1496 /// | | b | 1497 /// ``` 1498 GfmTableDelimiterCellValue, 1499 /// GFM extension: Table delimiter filler. 1500 /// 1501 /// ## Info 1502 /// 1503 /// * **Context**: 1504 /// [`GfmTableDelimiterCellValue`][Name::GfmTableDelimiterCellValue] 1505 /// * **Content model**: 1506 /// void 1507 /// * **Construct**: 1508 /// [`gfm_table`][crate::construct::gfm_table] 1509 /// 1510 /// ## Example 1511 /// 1512 /// ```markdown 1513 /// | | a | 1514 /// > | | - | 1515 /// ^ 1516 /// | | b | 1517 /// ``` 1518 GfmTableDelimiterFiller, 1519 /// GFM extension: Table head. 1520 /// 1521 /// ## Info 1522 /// 1523 /// * **Context**: 1524 /// [`GfmTable`][Name::GfmTable] 1525 /// * **Content model**: 1526 /// [`GfmTableRow`][Name::GfmTableRow], 1527 /// [`GfmTableDelimiterRow`][Name::GfmTableDelimiterRow], 1528 /// [`LineEnding`][Name::LineEnding] 1529 /// * **Construct**: 1530 /// [`gfm_table`][crate::construct::gfm_table] 1531 /// 1532 /// ## Example 1533 /// 1534 /// ```markdown 1535 /// > | | a | 1536 /// ^^^^^ 1537 /// > | | - | 1538 /// ^^^^^ 1539 /// | | b | 1540 /// ``` 1541 GfmTableHead, 1542 /// GFM extension: Table row. 1543 /// 1544 /// ## Info 1545 /// 1546 /// * **Context**: 1547 /// [`GfmTableBody`][Name::GfmTableBody], 1548 /// [`GfmTableHead`][Name::GfmTableHead] 1549 /// * **Content model**: 1550 /// [`GfmTableCell`][Name::GfmTableCell] 1551 /// * **Construct**: 1552 /// [`gfm_table`][crate::construct::gfm_table] 1553 /// 1554 /// ## Example 1555 /// 1556 /// ```markdown 1557 /// > | | a | 1558 /// ^^^^^ 1559 /// | | - | 1560 /// > | | b | 1561 /// ^^^^^ 1562 /// ``` 1563 GfmTableRow, 1564 /// GFM extension: task list item check. 1565 /// 1566 /// ## Info 1567 /// 1568 /// * **Context**: 1569 /// [text content][crate::construct::text] 1570 /// * **Content model**: 1571 /// [`GfmTaskListItemMarker`][Name::GfmTaskListItemMarker], 1572 /// [`GfmTaskListItemValueChecked`][Name::GfmTaskListItemValueChecked], 1573 /// [`GfmTaskListItemValueUnchecked`][Name::GfmTaskListItemValueUnchecked] 1574 /// * **Construct**: 1575 /// [`gfm_task_list_item_check`][crate::construct::gfm_task_list_item_check] 1576 /// 1577 /// ## Example 1578 /// 1579 /// ```markdown 1580 /// > | * [x] y. 1581 /// ^^^ 1582 /// ``` 1583 GfmTaskListItemCheck, 1584 /// GFM extension: task list item check marker. 1585 /// 1586 /// ## Info 1587 /// 1588 /// * **Context**: 1589 /// [`GfmTaskListItemCheck`][Name::GfmTaskListItemCheck] 1590 /// * **Content model**: 1591 /// void 1592 /// * **Construct**: 1593 /// [`gfm_task_list_item_check`][crate::construct::gfm_task_list_item_check] 1594 /// 1595 /// ## Example 1596 /// 1597 /// ```markdown 1598 /// > | * [x] y. 1599 /// ^ ^ 1600 /// ``` 1601 GfmTaskListItemMarker, 1602 /// GFM extension: task list item value: checked. 1603 /// 1604 /// ## Info 1605 /// 1606 /// * **Context**: 1607 /// [`GfmTaskListItemCheck`][Name::GfmTaskListItemCheck] 1608 /// * **Content model**: 1609 /// void 1610 /// * **Construct**: 1611 /// [`gfm_task_list_item_check`][crate::construct::gfm_task_list_item_check] 1612 /// 1613 /// ## Example 1614 /// 1615 /// ```markdown 1616 /// > | * [x] y. 1617 /// ^ 1618 /// ``` 1619 GfmTaskListItemValueChecked, 1620 /// GFM extension: task list item value: unchecked. 1621 /// 1622 /// ## Info 1623 /// 1624 /// * **Context**: 1625 /// [`GfmTaskListItemCheck`][Name::GfmTaskListItemCheck] 1626 /// * **Content model**: 1627 /// void 1628 /// * **Construct**: 1629 /// [`gfm_task_list_item_check`][crate::construct::gfm_task_list_item_check] 1630 /// 1631 /// ## Example 1632 /// 1633 /// ```markdown 1634 /// > | * [ ] z. 1635 /// ^ 1636 /// ``` 1637 GfmTaskListItemValueUnchecked, 1638 /// Whole hard break (escape). 1639 /// 1640 /// ## Info 1641 /// 1642 /// * **Context**: 1643 /// [text content][crate::construct::text] 1644 /// * **Content model**: 1645 /// void 1646 /// * **Construct**: 1647 /// [`hard_break_escape`][crate::construct::hard_break_escape] 1648 /// 1649 /// ## Example 1650 /// 1651 /// ```markdown 1652 /// > | a\␊ 1653 /// ^ 1654 /// > | b 1655 /// ``` 1656 HardBreakEscape, 1657 /// Whole hard break (trailing). 1658 /// 1659 /// ## Info 1660 /// 1661 /// * **Context**: 1662 /// [text content][crate::construct::text] 1663 /// * **Content model**: 1664 /// void 1665 /// * **Construct**: 1666 /// [`whitespace`][crate::construct::partial_whitespace] 1667 /// 1668 /// ## Example 1669 /// 1670 /// ```markdown 1671 /// > | a␠␠␊ 1672 /// ^^ 1673 /// > | b 1674 /// ``` 1675 HardBreakTrailing, 1676 /// Whole heading (atx). 1677 /// 1678 /// ## Info 1679 /// 1680 /// * **Context**: 1681 /// [flow content][crate::construct::flow] 1682 /// * **Content model**: 1683 /// [`HeadingAtxSequence`][Name::HeadingAtxSequence], 1684 /// [`HeadingAtxText`][Name::HeadingAtxText], 1685 /// [`SpaceOrTab`][Name::SpaceOrTab] 1686 /// * **Construct**: 1687 /// [`heading_atx`][crate::construct::heading_atx] 1688 /// 1689 /// ## Example 1690 /// 1691 /// ```markdown 1692 /// > | # alpha 1693 /// ^^^^^^^ 1694 /// ``` 1695 HeadingAtx, 1696 /// Heading (atx) sequence. 1697 /// 1698 /// ## Info 1699 /// 1700 /// * **Context**: 1701 /// [`HeadingAtx`][Name::HeadingAtx] 1702 /// * **Content model**: 1703 /// void 1704 /// * **Construct**: 1705 /// [`heading_atx`][crate::construct::heading_atx] 1706 /// 1707 /// ## Example 1708 /// 1709 /// ```markdown 1710 /// > | # alpha 1711 /// ^ 1712 /// ``` 1713 HeadingAtxSequence, 1714 /// Heading (atx) data. 1715 /// 1716 /// ## Info 1717 /// 1718 /// * **Context**: 1719 /// [`HeadingAtx`][Name::HeadingAtx] 1720 /// * **Content model**: 1721 /// [text content][crate::construct::text] 1722 /// * **Construct**: 1723 /// [`heading_atx`][crate::construct::heading_atx] 1724 /// 1725 /// ## Example 1726 /// 1727 /// ```markdown 1728 /// > | # alpha 1729 /// ^^^^^ 1730 /// ``` 1731 HeadingAtxText, 1732 /// Whole heading (setext). 1733 /// 1734 /// ## Info 1735 /// 1736 /// * **Context**: 1737 /// [flow content][crate::construct::flow] 1738 /// * **Content model**: 1739 /// [`HeadingSetextText`][Name::HeadingSetextText], 1740 /// [`HeadingSetextUnderline`][Name::HeadingSetextUnderline], 1741 /// [`LineEnding`][Name::LineEnding], 1742 /// [`SpaceOrTab`][Name::SpaceOrTab] 1743 /// * **Construct**: 1744 /// [`heading_setext`][crate::construct::heading_setext] 1745 /// 1746 /// ## Example 1747 /// 1748 /// ```markdown 1749 /// > | alpha 1750 /// ^^^^^ 1751 /// > | ===== 1752 /// ^^^^^ 1753 /// ``` 1754 HeadingSetext, 1755 /// Heading (setext) data. 1756 /// 1757 /// ## Info 1758 /// 1759 /// * **Context**: 1760 /// [`HeadingSetext`][Name::HeadingSetext] 1761 /// * **Content model**: 1762 /// [text content][crate::construct::text] 1763 /// * **Construct**: 1764 /// [`heading_setext`][crate::construct::heading_setext] 1765 /// 1766 /// ## Example 1767 /// 1768 /// ```markdown 1769 /// > | alpha 1770 /// ^^^^^ 1771 /// | ===== 1772 /// ``` 1773 HeadingSetextText, 1774 /// Heading (setext) underline. 1775 /// 1776 /// ## Info 1777 /// 1778 /// * **Context**: 1779 /// [`HeadingSetext`][Name::HeadingSetext] 1780 /// * **Content model**: 1781 /// [`HeadingSetextUnderlineSequence`][Name::HeadingSetextUnderlineSequence], 1782 /// [`SpaceOrTab`][Name::SpaceOrTab] 1783 /// * **Construct**: 1784 /// [`heading_setext`][crate::construct::heading_setext] 1785 /// 1786 /// ## Example 1787 /// 1788 /// ```markdown 1789 /// | alpha 1790 /// > | ===== 1791 /// ^^^^^ 1792 /// ``` 1793 HeadingSetextUnderline, 1794 /// Heading (setext) underline sequence. 1795 /// 1796 /// ## Info 1797 /// 1798 /// * **Context**: 1799 /// [`HeadingSetext`][Name::HeadingSetext] 1800 /// * **Content model**: 1801 /// void 1802 /// * **Construct**: 1803 /// [`heading_setext`][crate::construct::heading_setext] 1804 /// 1805 /// ## Example 1806 /// 1807 /// ```markdown 1808 /// | alpha 1809 /// > | ===== 1810 /// ^^^^^ 1811 /// ``` 1812 HeadingSetextUnderlineSequence, 1813 /// Whole html (flow). 1814 /// 1815 /// ## Info 1816 /// 1817 /// * **Context**: 1818 /// [flow content][crate::construct::flow] 1819 /// * **Content model**: 1820 /// [`HtmlFlowData`][Name::HtmlFlowData], 1821 /// [`LineEnding`][Name::LineEnding], 1822 /// [`SpaceOrTab`][Name::SpaceOrTab] 1823 /// * **Construct**: 1824 /// [`html_flow`][crate::construct::html_flow] 1825 /// 1826 /// ## Example 1827 /// 1828 /// ```markdown 1829 /// > | <div> 1830 /// ^^^^^ 1831 /// ``` 1832 HtmlFlow, 1833 /// HTML (flow) data. 1834 /// 1835 /// ## Info 1836 /// 1837 /// * **Context**: 1838 /// [`HtmlFlow`][Name::HtmlFlow] 1839 /// * **Content model**: 1840 /// void 1841 /// * **Construct**: 1842 /// [`html_flow`][crate::construct::html_flow] 1843 /// 1844 /// ## Example 1845 /// 1846 /// ```markdown 1847 /// > | <div> 1848 /// ^^^^^ 1849 /// ``` 1850 HtmlFlowData, 1851 /// Whole html (text). 1852 /// 1853 /// ## Info 1854 /// 1855 /// * **Context**: 1856 /// [text content][crate::construct::text] 1857 /// * **Content model**: 1858 /// [`HtmlTextData`][Name::HtmlTextData], 1859 /// [`LineEnding`][Name::LineEnding], 1860 /// [`SpaceOrTab`][Name::SpaceOrTab] 1861 /// * **Construct**: 1862 /// [`html_text`][crate::construct::html_text] 1863 /// 1864 /// ## Example 1865 /// 1866 /// ```markdown 1867 /// > | a <b> c 1868 /// ^^^ 1869 /// ``` 1870 HtmlText, 1871 /// HTML (text) data. 1872 /// 1873 /// ## Info 1874 /// 1875 /// * **Context**: 1876 /// [`HtmlText`][Name::HtmlText] 1877 /// * **Content model**: 1878 /// void 1879 /// * **Construct**: 1880 /// [`html_text`][crate::construct::html_text] 1881 /// 1882 /// ## Example 1883 /// 1884 /// ```markdown 1885 /// > | a <b> c 1886 /// ^^^ 1887 /// ``` 1888 HtmlTextData, 1889 /// Image. 1890 /// 1891 /// ## Info 1892 /// 1893 /// * **Context**: 1894 /// [text content][crate::construct::text] 1895 /// * **Content model**: 1896 /// [`Label`][Name::Label], 1897 /// [`Resource`][Name::Resource], 1898 /// [`Reference`][Name::Reference] 1899 /// * **Construct**: 1900 /// [`label_end`][crate::construct::label_end] 1901 /// 1902 /// ## Example 1903 /// 1904 /// ```markdown 1905 /// > | a ![b] c 1906 /// ^^^^ 1907 /// > | a ![b][c] d 1908 /// ^^^^^^^ 1909 /// > | a ![b](c) d 1910 /// ^^^^^^^ 1911 /// ``` 1912 Image, 1913 WikilinkText, 1914 WikilinkStart, 1915 WikilinkEnd, 1916 /// Label. 1917 /// 1918 /// ## Info 1919 /// 1920 /// * **Context**: 1921 /// [`Image`][Name::Image], 1922 /// [`Link`][Name::Link] 1923 /// * **Content model**: 1924 /// [`LabelImage`][Name::LabelImage], 1925 /// [`LabelLink`][Name::LabelLink], 1926 /// [`LabelEnd`][Name::LabelEnd], 1927 /// [`LabelText`][Name::LabelText] 1928 /// * **Construct**: 1929 /// [`label_end`][crate::construct::label_end] 1930 /// 1931 /// ## Example 1932 /// 1933 /// ```markdown 1934 /// > | a [b] c 1935 /// ^^^ 1936 /// > | a ![b][c] d 1937 /// ^^^^ 1938 /// > | a [b](c) d 1939 /// ^^^ 1940 /// ``` 1941 Label, 1942 /// Label end. 1943 /// 1944 /// ## Info 1945 /// 1946 /// * **Context**: 1947 /// [`Label`][Name::Label] 1948 /// * **Content model**: 1949 /// [`LabelMarker`][Name::LabelMarker] 1950 /// * **Construct**: 1951 /// [`label_end`][crate::construct::label_end] 1952 /// 1953 /// ## Example 1954 /// 1955 /// ```markdown 1956 /// > | a ![b](c) d 1957 /// ^ 1958 /// > | a [b](c) d 1959 /// ^ 1960 /// ``` 1961 LabelEnd, 1962 /// Label start (image). 1963 /// 1964 /// ## Info 1965 /// 1966 /// * **Context**: 1967 /// [`Label`][Name::Label] 1968 /// * **Content model**: 1969 /// [`LabelImageMarker`][Name::LabelImageMarker], 1970 /// [`LabelMarker`][Name::LabelMarker] 1971 /// * **Construct**: 1972 /// [`label_start_image`][crate::construct::label_start_image] 1973 /// 1974 /// ## Example 1975 /// 1976 /// ```markdown 1977 /// > | a ![b](c) d 1978 /// ^^ 1979 /// ``` 1980 LabelImage, 1981 /// Label start (image) marker. 1982 /// 1983 /// ## Info 1984 /// 1985 /// * **Context**: 1986 /// [`LabelImage`][Name::LabelImage] 1987 /// * **Content model**: 1988 /// void 1989 /// * **Construct**: 1990 /// [`label_start_image`][crate::construct::label_start_image] 1991 /// 1992 /// ## Example 1993 /// 1994 /// ```markdown 1995 /// > | a ![b](c) d 1996 /// ^ 1997 /// ``` 1998 LabelImageMarker, 1999 /// Label start (link). 2000 /// 2001 /// ## Info 2002 /// 2003 /// * **Context**: 2004 /// [`Label`][Name::Label] 2005 /// * **Content model**: 2006 /// [`LabelMarker`][Name::LabelMarker] 2007 /// * **Construct**: 2008 /// [`label_start_link`][crate::construct::label_start_link] 2009 /// 2010 /// ## Example 2011 /// 2012 /// ```markdown 2013 /// > | a [b](c) d 2014 /// ^ 2015 /// ``` 2016 LabelLink, 2017 /// Label marker. 2018 /// 2019 /// ## Info 2020 /// 2021 /// * **Context**: 2022 /// [`LabelImage`][Name::LabelImage], 2023 /// [`LabelLink`][Name::LabelLink], 2024 /// [`LabelEnd`][Name::LabelEnd] 2025 /// * **Content model**: 2026 /// void 2027 /// * **Construct**: 2028 /// [`label_start_image`][crate::construct::label_start_image], 2029 /// [`label_start_link`][crate::construct::label_start_link], 2030 /// [`label_end`][crate::construct::label_end] 2031 /// 2032 /// ## Example 2033 /// 2034 /// ```markdown 2035 /// > | a ![b](c) d 2036 /// ^ ^ 2037 /// > | a [b](c) d 2038 /// ^ ^ 2039 /// ``` 2040 LabelMarker, 2041 /// Label text. 2042 /// 2043 /// ## Info 2044 /// 2045 /// * **Context**: 2046 /// [`Label`][Name::Label] 2047 /// * **Content model**: 2048 /// [text content][crate::construct::text] 2049 /// * **Construct**: 2050 /// [`label_end`][crate::construct::label_end] 2051 /// 2052 /// ## Example 2053 /// 2054 /// ```markdown 2055 /// > | a [b] c 2056 /// ^ 2057 /// > | a ![b][c] d 2058 /// ^ 2059 /// > | a [b](c) d 2060 /// ^ 2061 /// ``` 2062 LabelText, 2063 /// Line ending. 2064 /// 2065 /// ## Info 2066 /// 2067 /// * **Context**: 2068 /// basically everywhere 2069 /// * **Content model**: 2070 /// void 2071 /// * **Construct**: 2072 /// n/a 2073 /// 2074 /// ## Example 2075 /// 2076 /// ```markdown 2077 /// > | a␊ 2078 /// ^ 2079 /// | b 2080 /// ``` 2081 LineEnding, 2082 /// Link. 2083 /// 2084 /// ## Info 2085 /// 2086 /// * **Context**: 2087 /// [text content][crate::construct::text] 2088 /// * **Content model**: 2089 /// [`Label`][Name::Label], 2090 /// [`Resource`][Name::Resource], 2091 /// [`Reference`][Name::Reference] 2092 /// * **Construct**: 2093 /// [`label_end`][crate::construct::label_end] 2094 /// 2095 /// ## Example 2096 /// 2097 /// ```markdown 2098 /// > | a [b] c 2099 /// ^^^ 2100 /// > | a [b][c] d 2101 /// ^^^^^^ 2102 /// > | a [b](c) d 2103 /// ^^^^^^ 2104 /// ``` 2105 Link, 2106 /// List item. 2107 /// 2108 /// ## Info 2109 /// 2110 /// * **Context**: 2111 /// [`ListOrdered`][Name::ListOrdered], 2112 /// [`ListUnordered`][Name::ListUnordered] 2113 /// * **Content model**: 2114 /// [`ListItemPrefix`][Name::ListItemPrefix], 2115 /// [flow content][crate::construct::flow] 2116 /// * **Construct**: 2117 /// [`list item`][crate::construct::list_item] 2118 /// 2119 /// ## Example 2120 /// 2121 /// ```markdown 2122 /// > | * a 2123 /// ^^^ 2124 /// > | 1. b 2125 /// ^^^^ 2126 /// ``` 2127 ListItem, 2128 /// List item (marker). 2129 /// 2130 /// ## Info 2131 /// 2132 /// * **Context**: 2133 /// [`ListItemPrefix`][Name::ListItemPrefix] 2134 /// * **Content model**: 2135 /// void 2136 /// * **Construct**: 2137 /// [`list item`][crate::construct::list_item] 2138 /// 2139 /// ## Example 2140 /// 2141 /// ```markdown 2142 /// > | * a 2143 /// ^ 2144 /// > | 1. b 2145 /// ^ 2146 /// ``` 2147 ListItemMarker, 2148 /// List item (prefix). 2149 /// 2150 /// ## Info 2151 /// 2152 /// * **Context**: 2153 /// [`ListItem`][Name::ListItem] 2154 /// * **Content model**: 2155 /// [`ListItemMarker`][Name::ListItemMarker], 2156 /// [`ListItemValue`][Name::ListItemValue], 2157 /// [`SpaceOrTab`][Name::SpaceOrTab] 2158 /// * **Construct**: 2159 /// [`list item`][crate::construct::list_item] 2160 /// 2161 /// ## Example 2162 /// 2163 /// ```markdown 2164 /// > | * a 2165 /// ^^ 2166 /// > | b 2167 /// ^^ 2168 /// ``` 2169 ListItemPrefix, 2170 /// List item (value). 2171 /// 2172 /// ## Info 2173 /// 2174 /// * **Context**: 2175 /// [`ListItemPrefix`][Name::ListItemPrefix] 2176 /// * **Content model**: 2177 /// void 2178 /// * **Construct**: 2179 /// [`list item`][crate::construct::list_item] 2180 /// 2181 /// ## Example 2182 /// 2183 /// ```markdown 2184 /// > | 1. b 2185 /// ^ 2186 /// ``` 2187 ListItemValue, 2188 /// List (ordered). 2189 /// 2190 /// ## Info 2191 /// 2192 /// * **Context**: 2193 /// [document content][crate::construct::document] 2194 /// * **Content model**: 2195 /// [`BlankLineEnding`][Name::BlankLineEnding], 2196 /// [`BlockQuotePrefix`][Name::BlockQuotePrefix], 2197 /// [`ListItem`][Name::ListItem], 2198 /// [`LineEnding`][Name::LineEnding], 2199 /// [`SpaceOrTab`][Name::SpaceOrTab] 2200 /// * **Construct**: 2201 /// [`list item`][crate::construct::list_item] 2202 /// 2203 /// ## Example 2204 /// 2205 /// ```markdown 2206 /// > | 1. a 2207 /// ^^^^ 2208 /// > | 2. b 2209 /// ^^^^ 2210 /// ``` 2211 ListOrdered, 2212 /// List (unordered). 2213 /// 2214 /// ## Info 2215 /// 2216 /// * **Context**: 2217 /// [document content][crate::construct::document] 2218 /// * **Content model**: 2219 /// [`BlankLineEnding`][Name::BlankLineEnding], 2220 /// [`BlockQuotePrefix`][Name::BlockQuotePrefix], 2221 /// [`ListItem`][Name::ListItem], 2222 /// [`LineEnding`][Name::LineEnding], 2223 /// [`SpaceOrTab`][Name::SpaceOrTab] 2224 /// * **Construct**: 2225 /// [`list item`][crate::construct::list_item] 2226 /// 2227 /// ## Example 2228 /// 2229 /// ```markdown 2230 /// > | * a 2231 /// ^^^ 2232 /// > | * b 2233 /// ^^^ 2234 /// ``` 2235 ListUnordered, 2236 /// Whole math (flow). 2237 /// 2238 /// ## Info 2239 /// 2240 /// * **Context**: 2241 /// [flow content][crate::construct::flow] 2242 /// * **Content model**: 2243 /// [`MathFlowFence`][Name::MathFlowFence], 2244 /// [`MathFlowChunk`][Name::MathFlowChunk], 2245 /// [`LineEnding`][Name::LineEnding], 2246 /// [`SpaceOrTab`][Name::SpaceOrTab] 2247 /// * **Construct**: 2248 /// [`raw_flow`][crate::construct::raw_flow] 2249 /// 2250 /// ## Example 2251 /// 2252 /// ```markdown 2253 /// > | $$ 2254 /// ^^ 2255 /// > | \frac{1}{2} 2256 /// ^^^^^^^^^^^ 2257 /// > | $$ 2258 /// ^^ 2259 /// ``` 2260 MathFlow, 2261 /// A math (flow) fence. 2262 /// 2263 /// ## Info 2264 /// 2265 /// * **Context**: 2266 /// [`MathFlow`][Name::MathFlow] 2267 /// * **Content model**: 2268 /// [`MathFlowFenceMeta`][Name::MathFlowFenceMeta], 2269 /// [`MathFlowFenceSequence`][Name::MathFlowFenceSequence], 2270 /// [`SpaceOrTab`][Name::SpaceOrTab] 2271 /// * **Construct**: 2272 /// [`raw_flow`][crate::construct::raw_flow] 2273 /// 2274 /// ## Example 2275 /// 2276 /// ```markdown 2277 /// > | $$ 2278 /// ^^ 2279 /// | \frac{1}{2} 2280 /// > | $$ 2281 /// ^^ 2282 /// ``` 2283 MathFlowFence, 2284 /// A math (flow) fence meta string. 2285 /// 2286 /// ## Info 2287 /// 2288 /// * **Context**: 2289 /// [`MathFlowFence`][Name::MathFlowFence] 2290 /// * **Content model**: 2291 /// [string content][crate::construct::string] 2292 /// * **Construct**: 2293 /// [`raw_flow`][crate::construct::raw_flow] 2294 /// 2295 /// ## Example 2296 /// 2297 /// ```markdown 2298 /// > | $$alpha bravo 2299 /// ^^^^^^^^^^^ 2300 /// | \frac{1}{2} 2301 /// | $$ 2302 /// ``` 2303 MathFlowFenceMeta, 2304 /// A math (flow) fence sequence. 2305 /// 2306 /// ## Info 2307 /// 2308 /// * **Context**: 2309 /// [`MathFlowFenceSequence`][Name::MathFlowFenceSequence] 2310 /// * **Content model**: 2311 /// void 2312 /// * **Construct**: 2313 /// [`raw_flow`][crate::construct::raw_flow] 2314 /// 2315 /// ## Example 2316 /// 2317 /// ```markdown 2318 /// > | $$ 2319 /// ^^ 2320 /// | \frac{1}{2} 2321 /// > | $$ 2322 /// ^^ 2323 /// ``` 2324 MathFlowFenceSequence, 2325 /// A math (flow) chunk. 2326 /// 2327 /// ## Info 2328 /// 2329 /// * **Context**: 2330 /// [`MathFlow`][Name::MathFlow] 2331 /// * **Content model**: 2332 /// void 2333 /// * **Construct**: 2334 /// [`raw_flow`][crate::construct::raw_flow] 2335 /// 2336 /// ## Example 2337 /// 2338 /// ```markdown 2339 /// | $$ 2340 /// > | \frac{1}{2} 2341 /// ^^^^^^^^^^^ 2342 /// | $$ 2343 /// ``` 2344 MathFlowChunk, 2345 /// Whole math (text). 2346 /// 2347 /// ## Info 2348 /// 2349 /// * **Context**: 2350 /// [text content][crate::construct::text] 2351 /// * **Content model**: 2352 /// [`MathTextData`][Name::MathTextData], 2353 /// [`MathTextSequence`][Name::MathTextSequence], 2354 /// [`LineEnding`][Name::LineEnding] 2355 /// * **Construct**: 2356 /// [`raw_text`][crate::construct::raw_text] 2357 /// 2358 /// ## Example 2359 /// 2360 /// ```markdown 2361 /// > | a $b$ c 2362 /// ^^^ 2363 /// ``` 2364 MathText, 2365 /// Math (text) data. 2366 /// 2367 /// ## Info 2368 /// 2369 /// * **Context**: 2370 /// [`MathText`][Name::MathText] 2371 /// * **Content model**: 2372 /// void 2373 /// * **Construct**: 2374 /// [`raw_text`][crate::construct::raw_text] 2375 /// 2376 /// ## Example 2377 /// 2378 /// ```markdown 2379 /// > | a `b` c 2380 /// ^ 2381 /// ``` 2382 MathTextData, 2383 /// Math (text) sequence. 2384 /// 2385 /// ## Info 2386 /// 2387 /// * **Context**: 2388 /// [`MathText`][Name::MathText] 2389 /// * **Content model**: 2390 /// void 2391 /// * **Construct**: 2392 /// [`raw_text`][crate::construct::raw_text] 2393 /// 2394 /// ## Example 2395 /// 2396 /// ```markdown 2397 /// > | a $b$ c 2398 /// ^ ^ 2399 /// ``` 2400 MathTextSequence, 2401 /// MDX extension: ESM. 2402 /// 2403 /// ## Info 2404 /// 2405 /// * **Context**: 2406 /// [flow content][crate::construct::flow] 2407 /// * **Content model**: 2408 /// void 2409 /// [`MdxEsmData`][Name::MdxEsmData], 2410 /// [`SpaceOrTab`][Name::SpaceOrTab], 2411 /// [`LineEnding`][Name::LineEnding] 2412 /// * **Construct**: 2413 /// [`mdx_esm`][crate::construct::mdx_esm] 2414 /// 2415 /// ## Example 2416 /// 2417 /// ```markdown 2418 /// > | import a from 'b' 2419 /// ^^^^^^^^^^^^^^^^^ 2420 /// ``` 2421 MdxEsm, 2422 /// MDX extension: ESM data. 2423 /// 2424 /// ## Info 2425 /// 2426 /// * **Context**: 2427 /// [`MdxEsm`][Name::MdxEsm] 2428 /// * **Content model**: 2429 /// void 2430 /// * **Construct**: 2431 /// [`mdx_esm`][crate::construct::mdx_esm] 2432 /// 2433 /// ## Example 2434 /// 2435 /// ```markdown 2436 /// > | import a from 'b' 2437 /// ^^^^^^^^^^^^^^^^^ 2438 /// ``` 2439 MdxEsmData, 2440 /// MDX extension: expression marker. 2441 /// 2442 /// ## Info 2443 /// 2444 /// * **Context**: 2445 /// [`MdxFlowExpression`][Name::MdxFlowExpression], 2446 /// [`MdxTextExpression`][Name::MdxTextExpression], 2447 /// [`MdxJsxTagAttributeExpression`][Name::MdxJsxTagAttributeExpression], 2448 /// [`MdxJsxTagAttributeValueExpression`][Name::MdxJsxTagAttributeValueExpression] 2449 /// * **Content model**: 2450 /// void 2451 /// * **Construct**: 2452 /// [`partial_mdx_expression`][crate::construct::partial_mdx_expression] 2453 /// 2454 /// ## Example 2455 /// 2456 /// ```markdown 2457 /// > | {Math.PI} 2458 /// ^ ^ 2459 /// ``` 2460 MdxExpressionMarker, 2461 /// MDX extension: expression data. 2462 /// 2463 /// ## Info 2464 /// 2465 /// * **Context**: 2466 /// [`MdxFlowExpression`][Name::MdxFlowExpression], 2467 /// [`MdxTextExpression`][Name::MdxTextExpression], 2468 /// [`MdxJsxTagAttributeExpression`][Name::MdxJsxTagAttributeExpression], 2469 /// [`MdxJsxTagAttributeValueExpression`][Name::MdxJsxTagAttributeValueExpression] 2470 /// * **Content model**: 2471 /// void 2472 /// * **Construct**: 2473 /// [`partial_mdx_expression`][crate::construct::partial_mdx_expression] 2474 /// 2475 /// ## Example 2476 /// 2477 /// ```markdown 2478 /// > | {Math.PI} 2479 /// ^^^^^^^ 2480 /// ``` 2481 MdxExpressionData, 2482 /// MDX extension: expression (flow). 2483 /// 2484 /// ## Info 2485 /// 2486 /// * **Context**: 2487 /// [flow content][crate::construct::flow] 2488 /// * **Content model**: 2489 /// [`LineEnding`][Name::LineEnding], 2490 /// [`SpaceOrTab`][Name::SpaceOrTab], 2491 /// [`MdxExpressionMarker`][Name::MdxExpressionMarker], 2492 /// [`MdxExpressionData`][Name::MdxExpressionData] 2493 /// * **Construct**: 2494 /// [`mdx_expression_flow`][crate::construct::mdx_expression_flow] 2495 /// 2496 /// ## Example 2497 /// 2498 /// ```markdown 2499 /// > | {Math.PI} 2500 /// ^^^^^^^^^ 2501 /// ``` 2502 MdxFlowExpression, 2503 /// MDX extension: expression (text). 2504 /// 2505 /// ## Info 2506 /// 2507 /// * **Context**: 2508 /// [flow content][crate::construct::flow] 2509 /// * **Content model**: 2510 /// [`LineEnding`][Name::LineEnding], 2511 /// [`SpaceOrTab`][Name::SpaceOrTab], 2512 /// [`MdxExpressionMarker`][Name::MdxExpressionMarker], 2513 /// [`MdxExpressionData`][Name::MdxExpressionData] 2514 /// * **Construct**: 2515 /// [`mdx_expression_text`][crate::construct::mdx_expression_text] 2516 /// 2517 /// ## Example 2518 /// 2519 /// ```markdown 2520 /// > | a {Math.PI} b 2521 /// ^^^^^^^^^ 2522 /// ``` 2523 MdxTextExpression, 2524 /// MDX extension: JSX (flow). 2525 /// 2526 /// ## Info 2527 /// 2528 /// * **Context**: 2529 /// [flow content][crate::construct::flow] 2530 /// * **Content model**: 2531 /// [`LineEnding`][Name::LineEnding], 2532 /// [`MdxJsxEsWhitespace`][Name::MdxJsxEsWhitespace], 2533 /// [`MdxJsxTagMarker`][Name::MdxJsxTagMarker], 2534 /// [`MdxJsxTagClosingMarker`][Name::MdxJsxTagClosingMarker], 2535 /// [`MdxJsxTagName`][Name::MdxJsxTagName], 2536 /// [`MdxJsxTagAttribute`][Name::MdxJsxTagAttribute], 2537 /// [`MdxJsxTagAttributeExpression`][Name::MdxJsxTagAttributeExpression], 2538 /// [`MdxJsxTagSelfClosingMarker`][Name::MdxJsxTagSelfClosingMarker] 2539 /// * **Construct**: 2540 /// [`mdx_jsx_flow`][crate::construct::mdx_jsx_flow] 2541 /// 2542 /// ## Example 2543 /// 2544 /// ```markdown 2545 /// > | <B /> 2546 /// ^^^^^ 2547 /// ``` 2548 MdxJsxFlowTag, 2549 /// MDX extension: JSX (text). 2550 /// 2551 /// ## Info 2552 /// 2553 /// * **Context**: 2554 /// [text content][crate::construct::text] 2555 /// * **Content model**: 2556 /// [`LineEnding`][Name::LineEnding], 2557 /// [`MdxJsxEsWhitespace`][Name::MdxJsxEsWhitespace], 2558 /// [`MdxJsxTagMarker`][Name::MdxJsxTagMarker], 2559 /// [`MdxJsxTagClosingMarker`][Name::MdxJsxTagClosingMarker], 2560 /// [`MdxJsxTagName`][Name::MdxJsxTagName], 2561 /// [`MdxJsxTagAttribute`][Name::MdxJsxTagAttribute], 2562 /// [`MdxJsxTagAttributeExpression`][Name::MdxJsxTagAttributeExpression], 2563 /// [`MdxJsxTagSelfClosingMarker`][Name::MdxJsxTagSelfClosingMarker] 2564 /// * **Construct**: 2565 /// [`mdx_jsx_text`][crate::construct::mdx_jsx_text] 2566 /// 2567 /// ## Example 2568 /// 2569 /// ```markdown 2570 /// > | a <B /> c 2571 /// ^^^^^ 2572 /// ``` 2573 MdxJsxTextTag, 2574 /// MDX extension: JSX: ECMAScript whitespace. 2575 /// 2576 /// ## Info 2577 /// 2578 /// * **Context**: 2579 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2580 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag], 2581 /// [`MdxJsxTagName`][Name::MdxJsxTagName], 2582 /// [`MdxJsxTagAttribute`][Name::MdxJsxTagAttribute], 2583 /// [`MdxJsxTagAttributeName`][Name::MdxJsxTagAttributeName] 2584 /// * **Content model**: 2585 /// void 2586 /// * **Construct**: 2587 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2588 /// 2589 /// ## Example 2590 /// 2591 /// ```markdown 2592 /// > | a <B /> c 2593 /// ^ 2594 /// ``` 2595 MdxJsxEsWhitespace, 2596 /// MDX extension: JSX: tag marker. 2597 /// 2598 /// ## Info 2599 /// 2600 /// * **Context**: 2601 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2602 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2603 /// * **Content model**: 2604 /// void 2605 /// * **Construct**: 2606 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2607 /// 2608 /// ## Example 2609 /// 2610 /// ```markdown 2611 /// > | a <B /> c 2612 /// ^ ^ 2613 /// ``` 2614 MdxJsxTagMarker, 2615 /// MDX extension: JSX: closing tag marker. 2616 /// 2617 /// ## Info 2618 /// 2619 /// * **Context**: 2620 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2621 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2622 /// * **Content model**: 2623 /// void 2624 /// * **Construct**: 2625 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2626 /// 2627 /// ## Example 2628 /// 2629 /// ```markdown 2630 /// > | a </B> c 2631 /// ^ 2632 /// ``` 2633 MdxJsxTagClosingMarker, 2634 /// MDX extension: JSX: tag name. 2635 /// 2636 /// ## Info 2637 /// 2638 /// * **Context**: 2639 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2640 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2641 /// * **Content model**: 2642 /// [`LineEnding`][Name::LineEnding], 2643 /// [`MdxJsxEsWhitespace`][Name::MdxJsxEsWhitespace], 2644 /// [`MdxJsxTagNamePrimary`][Name::MdxJsxTagNamePrimary], 2645 /// [`MdxJsxTagNameMember`][Name::MdxJsxTagNameMember], 2646 /// [`MdxJsxTagNameMemberMarker`][Name::MdxJsxTagNameMemberMarker], 2647 /// [`MdxJsxTagNamePrefixMarker`][Name::MdxJsxTagNamePrefixMarker], 2648 /// [`MdxJsxTagNameLocal`][Name::MdxJsxTagNameLocal] 2649 /// * **Construct**: 2650 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2651 /// 2652 /// ## Example 2653 /// 2654 /// ```markdown 2655 /// > | a <b> c 2656 /// ^ 2657 /// > | a <b:c> d 2658 /// ^^^ 2659 /// > | a <b.c> d 2660 /// ^^^ 2661 /// ``` 2662 #[allow(clippy::enum_variant_names)] 2663 MdxJsxTagName, 2664 /// MDX extension: JSX: primary tag name. 2665 /// 2666 /// ## Info 2667 /// 2668 /// * **Context**: 2669 /// [`MdxJsxTagName`][Name::MdxJsxTagName] 2670 /// * **Content model**: 2671 /// void 2672 /// * **Construct**: 2673 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2674 /// 2675 /// ## Example 2676 /// 2677 /// ```markdown 2678 /// > | a <b> c 2679 /// ^ 2680 /// > | a <b:c> d 2681 /// ^ 2682 /// > | a <b.c> d 2683 /// ^ 2684 /// ``` 2685 MdxJsxTagNamePrimary, 2686 /// MDX extension: JSX: tag name member marker. 2687 /// 2688 /// ## Info 2689 /// 2690 /// * **Context**: 2691 /// [`MdxJsxTagName`][Name::MdxJsxTagName] 2692 /// * **Content model**: 2693 /// void 2694 /// * **Construct**: 2695 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2696 /// 2697 /// ## Example 2698 /// 2699 /// ```markdown 2700 /// > | a <b.c> d 2701 /// ^ 2702 /// ``` 2703 MdxJsxTagNameMemberMarker, 2704 /// MDX extension: JSX: tag name prefix marker. 2705 /// 2706 /// ## Info 2707 /// 2708 /// * **Context**: 2709 /// [`MdxJsxTagName`][Name::MdxJsxTagName] 2710 /// * **Content model**: 2711 /// void 2712 /// * **Construct**: 2713 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2714 /// 2715 /// ## Example 2716 /// 2717 /// ```markdown 2718 /// > | a <b:c> d 2719 /// ^ 2720 /// ``` 2721 MdxJsxTagNamePrefixMarker, 2722 /// MDX extension: JSX: tag name member. 2723 /// 2724 /// ## Info 2725 /// 2726 /// * **Context**: 2727 /// [`MdxJsxTagName`][Name::MdxJsxTagName] 2728 /// * **Content model**: 2729 /// void 2730 /// * **Construct**: 2731 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2732 /// 2733 /// ## Example 2734 /// 2735 /// ```markdown 2736 /// > | a <b.c> d 2737 /// ^ 2738 /// ``` 2739 MdxJsxTagNameMember, 2740 /// MDX extension: JSX: tag name local. 2741 /// 2742 /// ## Info 2743 /// 2744 /// * **Context**: 2745 /// [`MdxJsxTagName`][Name::MdxJsxTagName] 2746 /// * **Content model**: 2747 /// void 2748 /// * **Construct**: 2749 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2750 /// 2751 /// ## Example 2752 /// 2753 /// ```markdown 2754 /// > | a <b:c> d 2755 /// ^ 2756 /// ``` 2757 MdxJsxTagNameLocal, 2758 /// MDX extension: JSX: attribute. 2759 /// 2760 /// ## Info 2761 /// 2762 /// * **Context**: 2763 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2764 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2765 /// * **Content model**: 2766 /// [`LineEnding`][Name::LineEnding], 2767 /// [`MdxJsxEsWhitespace`][Name::MdxJsxEsWhitespace], 2768 /// [`MdxJsxTagAttributeName`][Name::MdxJsxTagAttributeName], 2769 /// [`MdxJsxTagAttributeInitializerMarker`][Name::MdxJsxTagAttributeInitializerMarker], 2770 /// [`MdxJsxTagAttributeValueLiteral`][Name::MdxJsxTagAttributeValueLiteral], 2771 /// [`MdxJsxTagAttributeValueExpression`][Name::MdxJsxTagAttributeValueExpression] 2772 /// * **Construct**: 2773 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2774 /// 2775 /// ## Example 2776 /// 2777 /// ```markdown 2778 /// > | a <b c> d 2779 /// ^ 2780 /// > | a <b c="d"> e 2781 /// ^^^^^ 2782 /// > | a <b c={d}> e 2783 /// ^^^^^ 2784 /// ``` 2785 MdxJsxTagAttribute, 2786 /// MDX extension: JSX tag attribute expression. 2787 /// 2788 /// ## Info 2789 /// 2790 /// * **Context**: 2791 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2792 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2793 /// * **Content model**: 2794 /// [`LineEnding`][Name::LineEnding], 2795 /// [`SpaceOrTab`][Name::SpaceOrTab], 2796 /// [`MdxExpressionMarker`][Name::MdxExpressionMarker], 2797 /// [`MdxExpressionData`][Name::MdxExpressionData] 2798 /// * **Construct**: 2799 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2800 /// 2801 /// ## Example 2802 /// 2803 /// ```markdown 2804 /// > | a <b {Math.PI} /> c 2805 /// ^^^^^^^^^ 2806 /// ``` 2807 MdxJsxTagAttributeExpression, 2808 /// MDX extension: JSX: attribute name. 2809 /// 2810 /// ## Info 2811 /// 2812 /// * **Context**: 2813 /// [`MdxJsxTagAttribute`][Name::MdxJsxTagAttribute] 2814 /// * **Content model**: 2815 /// [`LineEnding`][Name::LineEnding], 2816 /// [`MdxJsxEsWhitespace`][Name::MdxJsxEsWhitespace], 2817 /// [`MdxJsxTagAttributePrimaryName`][Name::MdxJsxTagAttributePrimaryName], 2818 /// [`MdxJsxTagAttributeNamePrefixMarker`][Name::MdxJsxTagAttributeNamePrefixMarker], 2819 /// [`MdxJsxTagAttributeNameLocal`][Name::MdxJsxTagAttributeNameLocal] 2820 /// * **Construct**: 2821 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2822 /// 2823 /// ## Example 2824 /// 2825 /// ```markdown 2826 /// > | a <b c> d 2827 /// ^ 2828 /// > | a <b c:d="e"> f 2829 /// ^^^ 2830 /// ``` 2831 #[allow(clippy::enum_variant_names)] 2832 MdxJsxTagAttributeName, 2833 /// MDX extension: JSX: primary attribute name. 2834 /// 2835 /// ## Info 2836 /// 2837 /// * **Context**: 2838 /// [`MdxJsxTagAttributeName`][Name::MdxJsxTagAttributeName] 2839 /// * **Content model**: 2840 /// void 2841 /// * **Construct**: 2842 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2843 /// 2844 /// ## Example 2845 /// 2846 /// ```markdown 2847 /// > | a <b c> d 2848 /// ^ 2849 /// > | a <b c:d="e"> f 2850 /// ^ 2851 /// ``` 2852 #[allow(clippy::enum_variant_names)] 2853 MdxJsxTagAttributePrimaryName, 2854 /// MDX extension: JSX: attribute name prefix marker. 2855 /// 2856 /// ## Info 2857 /// 2858 /// * **Context**: 2859 /// [`MdxJsxTagAttributeName`][Name::MdxJsxTagAttributeName] 2860 /// * **Content model**: 2861 /// void 2862 /// * **Construct**: 2863 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2864 /// 2865 /// ## Example 2866 /// 2867 /// ```markdown 2868 /// > | a <b c:d="e"> f 2869 /// ^ 2870 /// ``` 2871 MdxJsxTagAttributeNamePrefixMarker, 2872 /// MDX extension: JSX: local attribute name. 2873 /// 2874 /// ## Info 2875 /// 2876 /// * **Context**: 2877 /// [`MdxJsxTagAttributeName`][Name::MdxJsxTagAttributeName] 2878 /// * **Content model**: 2879 /// void 2880 /// * **Construct**: 2881 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2882 /// 2883 /// ## Example 2884 /// 2885 /// ```markdown 2886 /// > | a <b c:d="e"> f 2887 /// ^ 2888 /// ``` 2889 MdxJsxTagAttributeNameLocal, 2890 /// MDX extension: JSX: attribute initializer marker. 2891 /// 2892 /// ## Info 2893 /// 2894 /// * **Context**: 2895 /// [`MdxJsxTagAttribute`][Name::MdxJsxTagAttribute] 2896 /// * **Content model**: 2897 /// void 2898 /// * **Construct**: 2899 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2900 /// 2901 /// ## Example 2902 /// 2903 /// ```markdown 2904 /// > | a <b c="d"> e 2905 /// ^ 2906 /// ``` 2907 MdxJsxTagAttributeInitializerMarker, 2908 /// MDX extension: JSX tag attribute value expression. 2909 /// 2910 /// ## Info 2911 /// 2912 /// * **Context**: 2913 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2914 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2915 /// * **Content model**: 2916 /// [`LineEnding`][Name::LineEnding], 2917 /// [`SpaceOrTab`][Name::SpaceOrTab], 2918 /// [`MdxExpressionMarker`][Name::MdxExpressionMarker], 2919 /// [`MdxExpressionData`][Name::MdxExpressionData] 2920 /// * **Construct**: 2921 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2922 /// 2923 /// ## Example 2924 /// 2925 /// ```markdown 2926 /// > | a <b c={Math.PI} /> d 2927 /// ^^^^^^^^^ 2928 /// ``` 2929 MdxJsxTagAttributeValueExpression, 2930 /// MDX extension: JSX: attribute value literal. 2931 /// 2932 /// ## Info 2933 /// 2934 /// * **Context**: 2935 /// [`MdxJsxTagAttribute`][Name::MdxJsxTagAttribute] 2936 /// * **Content model**: 2937 /// [`LineEnding`][Name::LineEnding], 2938 /// [`MdxJsxEsWhitespace`][Name::MdxJsxEsWhitespace], 2939 /// [`MdxJsxTagAttributeValueLiteralMarker`][Name::MdxJsxTagAttributeValueLiteralMarker], 2940 /// [`MdxJsxTagAttributeValueLiteralValue`][Name::MdxJsxTagAttributeValueLiteralValue] 2941 /// * **Construct**: 2942 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2943 /// 2944 /// ## Example 2945 /// 2946 /// ```markdown 2947 /// > | a <b c="d"> e 2948 /// ^^^ 2949 /// ``` 2950 MdxJsxTagAttributeValueLiteral, 2951 /// MDX extension: JSX: attribute value literal marker. 2952 /// 2953 /// ## Info 2954 /// 2955 /// * **Context**: 2956 /// [`MdxJsxTagAttributeValueLiteral`][Name::MdxJsxTagAttributeValueLiteral] 2957 /// * **Content model**: 2958 /// void 2959 /// * **Construct**: 2960 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2961 /// 2962 /// ## Example 2963 /// 2964 /// ```markdown 2965 /// > | a <b c="d"> e 2966 /// ^ ^ 2967 /// ``` 2968 MdxJsxTagAttributeValueLiteralMarker, 2969 /// MDX extension: JSX: attribute value literal value. 2970 /// 2971 /// ## Info 2972 /// 2973 /// * **Context**: 2974 /// [`MdxJsxTagAttributeValueLiteral`][Name::MdxJsxTagAttributeValueLiteral] 2975 /// * **Content model**: 2976 /// void 2977 /// * **Construct**: 2978 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2979 /// 2980 /// ## Example 2981 /// 2982 /// ```markdown 2983 /// > | a <b c="d"> e 2984 /// ^ 2985 /// ``` 2986 MdxJsxTagAttributeValueLiteralValue, 2987 /// MDX extension: JSX: self-closing tag marker. 2988 /// 2989 /// ## Info 2990 /// 2991 /// * **Context**: 2992 /// [`MdxJsxFlowTag`][Name::MdxJsxFlowTag], 2993 /// [`MdxJsxTextTag`][Name::MdxJsxTextTag] 2994 /// * **Content model**: 2995 /// void 2996 /// * **Construct**: 2997 /// [`partial_mdx_jsx`][crate::construct::partial_mdx_jsx] 2998 /// 2999 /// ## Example 3000 /// 3001 /// ```markdown 3002 /// > | a <b /> c 3003 /// ^ 3004 /// ``` 3005 MdxJsxTagSelfClosingMarker, 3006 /// Paragraph. 3007 /// 3008 /// ## Info 3009 /// 3010 /// * **Context**: 3011 /// [content][crate::construct::content] 3012 /// * **Content model**: 3013 /// [text content][crate::construct::text] 3014 /// * **Construct**: 3015 /// [`paragraph`][crate::construct::paragraph] 3016 /// 3017 /// ## Example 3018 /// 3019 /// ```markdown 3020 /// > | a b 3021 /// ^^^ 3022 /// > | c. 3023 /// ^^ 3024 /// ``` 3025 Paragraph, 3026 /// Reference. 3027 /// 3028 /// ## Info 3029 /// 3030 /// * **Context**: 3031 /// [`Image`][Name::Image], 3032 /// [`Link`][Name::Link] 3033 /// * **Content model**: 3034 /// [`ReferenceMarker`][Name::ReferenceMarker], 3035 /// [`ReferenceString`][Name::ReferenceString] 3036 /// * **Construct**: 3037 /// [`label`][crate::construct::partial_label] 3038 /// 3039 /// ## Example 3040 /// 3041 /// ```markdown 3042 /// > | a ![b][c] d 3043 /// ^^^ 3044 /// ``` 3045 Reference, 3046 /// Reference marker. 3047 /// 3048 /// ## Info 3049 /// 3050 /// * **Context**: 3051 /// [`Reference`][Name::Reference] 3052 /// * **Content model**: 3053 /// void 3054 /// * **Construct**: 3055 /// [`label`][crate::construct::partial_label] 3056 /// 3057 /// ## Example 3058 /// 3059 /// ```markdown 3060 /// > | a ![b][c] d 3061 /// ^ ^ 3062 /// ``` 3063 ReferenceMarker, 3064 /// Reference string. 3065 /// 3066 /// ## Info 3067 /// 3068 /// * **Context**: 3069 /// [`Reference`][Name::Reference] 3070 /// * **Content model**: 3071 /// [string content][crate::construct::string] 3072 /// * **Construct**: 3073 /// [`label`][crate::construct::partial_label] 3074 /// 3075 /// ## Example 3076 /// 3077 /// ```markdown 3078 /// > | a ![b][c] d 3079 /// ^ 3080 /// ``` 3081 ReferenceString, 3082 /// Resource. 3083 /// 3084 /// ## Info 3085 /// 3086 /// * **Context**: 3087 /// [`Image`][Name::Image], 3088 /// [`Link`][Name::Link] 3089 /// * **Content model**: 3090 /// [`ResourceMarker`][Name::ResourceMarker], 3091 /// [`ResourceDestination`][Name::ResourceDestination], 3092 /// [`ResourceTitle`][Name::ResourceTitle], 3093 /// [`SpaceOrTab`][Name::SpaceOrTab], 3094 /// [`LineEnding`][Name::LineEnding] 3095 /// * **Construct**: 3096 /// [`label_end`][crate::construct::label_end] 3097 /// 3098 /// ## Example 3099 /// 3100 /// ```markdown 3101 /// > | a ![b](c "d") e 3102 /// ^^^^^^^ 3103 /// > | a [b](c) d 3104 /// ^^^ 3105 /// ``` 3106 Resource, 3107 /// Resource destination. 3108 /// 3109 /// ## Info 3110 /// 3111 /// * **Context**: 3112 /// [`Resource`][Name::Resource] 3113 /// * **Content model**: 3114 /// [`ResourceDestinationLiteral`][Name::ResourceDestinationLiteral], 3115 /// [`ResourceDestinationRaw`][Name::ResourceDestinationRaw] 3116 /// * **Construct**: 3117 /// [`destination`][crate::construct::partial_destination] 3118 /// 3119 /// ## Example 3120 /// 3121 /// ```markdown 3122 /// > | a ![b](c "d") e 3123 /// ^ 3124 /// ``` 3125 ResourceDestination, 3126 /// Resource destination literal. 3127 /// 3128 /// ## Info 3129 /// 3130 /// * **Context**: 3131 /// [`ResourceDestination`][Name::ResourceDestination] 3132 /// * **Content model**: 3133 /// [`ResourceDestinationLiteralMarker`][Name::ResourceDestinationLiteralMarker], 3134 /// [`ResourceDestinationString`][Name::ResourceDestinationString] 3135 /// * **Construct**: 3136 /// [`destination`][crate::construct::partial_destination] 3137 /// 3138 /// ## Example 3139 /// 3140 /// ```markdown 3141 /// > | a ![b](<c> "d") e 3142 /// ^^^ 3143 /// ``` 3144 ResourceDestinationLiteral, 3145 /// Resource destination literal marker. 3146 /// 3147 /// ## Info 3148 /// 3149 /// * **Context**: 3150 /// [`ResourceDestinationLiteral`][Name::ResourceDestinationLiteral] 3151 /// * **Content model**: 3152 /// void 3153 /// * **Construct**: 3154 /// [`destination`][crate::construct::partial_destination] 3155 /// 3156 /// ## Example 3157 /// 3158 /// ```markdown 3159 /// > | a ![b](<c> "d") e 3160 /// ^ ^ 3161 /// ``` 3162 ResourceDestinationLiteralMarker, 3163 /// Resource destination raw. 3164 /// 3165 /// ## Info 3166 /// 3167 /// * **Context**: 3168 /// [`ResourceDestination`][Name::ResourceDestination] 3169 /// * **Content model**: 3170 /// [`ResourceDestinationString`][Name::ResourceDestinationString] 3171 /// * **Construct**: 3172 /// [`destination`][crate::construct::partial_destination] 3173 /// 3174 /// ## Example 3175 /// 3176 /// ```markdown 3177 /// > | a ![b](c "d") e 3178 /// ^ 3179 /// ``` 3180 ResourceDestinationRaw, 3181 /// Resource destination raw. 3182 /// 3183 /// ## Info 3184 /// 3185 /// * **Context**: 3186 /// [`ResourceDestinationLiteral`][Name::ResourceDestinationLiteral], 3187 /// [`ResourceDestinationRaw`][Name::ResourceDestinationRaw] 3188 /// * **Content model**: 3189 /// [string content][crate::construct::string] 3190 /// * **Construct**: 3191 /// [`destination`][crate::construct::partial_destination] 3192 /// 3193 /// ## Example 3194 /// 3195 /// ```markdown 3196 /// > | a ![b](<c> "d") e 3197 /// ^ 3198 /// > | a ![b](c "d") e 3199 /// ^ 3200 /// ``` 3201 ResourceDestinationString, 3202 /// Resource marker. 3203 /// 3204 /// ## Info 3205 /// 3206 /// * **Context**: 3207 /// [`Resource`][Name::Resource] 3208 /// * **Content model**: 3209 /// void 3210 /// * **Construct**: 3211 /// [`label_end`][crate::construct::label_end] 3212 /// 3213 /// ## Example 3214 /// 3215 /// ```markdown 3216 /// > | a ![b](c "d") e 3217 /// ^ ^ 3218 /// ``` 3219 ResourceMarker, 3220 /// Resource title. 3221 /// 3222 /// ## Info 3223 /// 3224 /// * **Context**: 3225 /// [`Resource`][Name::Resource] 3226 /// * **Content model**: 3227 /// [`ResourceTitleMarker`][Name::ResourceTitleMarker], 3228 /// [`ResourceTitleString`][Name::ResourceTitleString] 3229 /// * **Construct**: 3230 /// [`title`][crate::construct::partial_title] 3231 /// 3232 /// ## Example 3233 /// 3234 /// ```markdown 3235 /// > | a ![b](<c> "d") e 3236 /// ^^^ 3237 /// ``` 3238 ResourceTitle, 3239 /// Resource title marker. 3240 /// 3241 /// ## Info 3242 /// 3243 /// * **Context**: 3244 /// [`ResourceTitle`][Name::ResourceTitle] 3245 /// * **Content model**: 3246 /// void 3247 /// * **Construct**: 3248 /// [`title`][crate::construct::partial_title] 3249 /// 3250 /// ## Example 3251 /// 3252 /// ```markdown 3253 /// > | a ![b](<c> "d") e 3254 /// ^ ^ 3255 /// ``` 3256 ResourceTitleMarker, 3257 /// Resource title string. 3258 /// 3259 /// ## Info 3260 /// 3261 /// * **Context**: 3262 /// [`ResourceTitle`][Name::ResourceTitle] 3263 /// * **Content model**: 3264 /// [string content][crate::construct::string] 3265 /// * **Construct**: 3266 /// [`title`][crate::construct::partial_title] 3267 /// 3268 /// ## Example 3269 /// 3270 /// ```markdown 3271 /// > | a ![b](<c> "d") e 3272 /// ^ 3273 /// ``` 3274 ResourceTitleString, 3275 /// Space or tab. 3276 /// 3277 /// ## Info 3278 /// 3279 /// * **Context**: 3280 /// basically everywhere 3281 /// * **Content model**: 3282 /// void 3283 /// * **Construct**: 3284 /// n/a 3285 /// 3286 /// ## Example 3287 /// 3288 /// ```markdown 3289 /// > | ␠* * *␠ 3290 /// ^ ^ ^ ^ 3291 /// ``` 3292 SpaceOrTab, 3293 /// Strong. 3294 /// 3295 /// ## Info 3296 /// 3297 /// * **Context**: 3298 /// [text content][crate::construct::text] 3299 /// * **Content model**: 3300 /// [`StrongSequence`][Name::StrongSequence], 3301 /// [`StrongText`][Name::StrongText] 3302 /// * **Construct**: 3303 /// [`attention`][crate::construct::attention] 3304 /// 3305 /// ## Example 3306 /// 3307 /// ```markdown 3308 /// > | **a** 3309 /// ^^^^^ 3310 /// ``` 3311 Strong, 3312 /// Strong sequence. 3313 /// 3314 /// ## Info 3315 /// 3316 /// * **Context**: 3317 /// [`Strong`][Name::Strong] 3318 /// * **Content model**: 3319 /// void 3320 /// * **Construct**: 3321 /// [`attention`][crate::construct::attention] 3322 /// 3323 /// ## Example 3324 /// 3325 /// ```markdown 3326 /// > | **a** 3327 /// ^^ ^^ 3328 /// ``` 3329 StrongSequence, 3330 /// Strong text. 3331 /// 3332 /// ## Info 3333 /// 3334 /// * **Context**: 3335 /// [`Strong`][Name::Strong] 3336 /// * **Content model**: 3337 /// [text content][crate::construct::text] 3338 /// * **Construct**: 3339 /// [`attention`][crate::construct::attention] 3340 /// 3341 /// ## Example 3342 /// 3343 /// ```markdown 3344 /// > | **a** 3345 /// ^ 3346 /// ``` 3347 StrongText, 3348 /// Whole thematic break. 3349 /// 3350 /// ## Info 3351 /// 3352 /// * **Context**: 3353 /// [flow content][crate::construct::flow] 3354 /// * **Content model**: 3355 /// [`ThematicBreakSequence`][Name::ThematicBreakSequence], 3356 /// [`SpaceOrTab`][Name::SpaceOrTab] 3357 /// * **Construct**: 3358 /// [`thematic_break`][crate::construct::thematic_break] 3359 /// 3360 /// ## Example 3361 /// 3362 /// ```markdown 3363 /// > | * * * 3364 /// ^^^^^ 3365 /// ``` 3366 ThematicBreak, 3367 /// Thematic break sequence. 3368 /// 3369 /// ## Info 3370 /// 3371 /// * **Context**: 3372 /// [`ThematicBreak`][Name::ThematicBreak] 3373 /// * **Content model**: 3374 /// void 3375 /// * **Construct**: 3376 /// [`thematic_break`][crate::construct::thematic_break] 3377 /// 3378 /// ## Example 3379 /// 3380 /// ```markdown 3381 /// > | * * * 3382 /// ^ ^ ^ 3383 /// ``` 3384 ThematicBreakSequence, 3385 3386 LinePrefix, 3387} 3388 3389/// List of void events, used to make sure everything is working well. 3390pub const VOID_EVENTS: [Name; 76] = [ 3391 Name::AttentionSequence, 3392 Name::AutolinkEmail, 3393 Name::AutolinkMarker, 3394 Name::AutolinkProtocol, 3395 Name::BlankLineEnding, 3396 Name::BlockQuoteMarker, 3397 Name::ByteOrderMark, 3398 Name::CharacterEscapeMarker, 3399 Name::CharacterEscapeValue, 3400 Name::CharacterReferenceMarker, 3401 Name::CharacterReferenceMarkerHexadecimal, 3402 Name::CharacterReferenceMarkerNumeric, 3403 Name::CharacterReferenceMarkerSemi, 3404 Name::CharacterReferenceValue, 3405 Name::CodeFencedFenceSequence, 3406 Name::CodeFlowChunk, 3407 Name::CodeTextData, 3408 Name::CodeTextSequence, 3409 Name::Data, 3410 Name::DefinitionDestinationLiteralMarker, 3411 Name::DefinitionLabelMarker, 3412 Name::DefinitionMarker, 3413 Name::DefinitionTitleMarker, 3414 Name::EmphasisSequence, 3415 Name::FrontmatterChunk, 3416 Name::GfmAutolinkLiteralEmail, 3417 Name::GfmAutolinkLiteralProtocol, 3418 Name::GfmAutolinkLiteralWww, 3419 Name::GfmFootnoteCallMarker, 3420 Name::GfmFootnoteDefinitionLabelMarker, 3421 Name::GfmFootnoteDefinitionMarker, 3422 Name::GfmStrikethroughSequence, 3423 Name::GfmTableCellDivider, 3424 Name::GfmTableDelimiterMarker, 3425 Name::GfmTableDelimiterFiller, 3426 Name::GfmTaskListItemMarker, 3427 Name::GfmTaskListItemValueChecked, 3428 Name::GfmTaskListItemValueUnchecked, 3429 Name::FrontmatterSequence, 3430 Name::HardBreakEscape, 3431 Name::HardBreakTrailing, 3432 Name::HeadingAtxSequence, 3433 Name::HeadingSetextUnderlineSequence, 3434 Name::HtmlFlowData, 3435 Name::HtmlTextData, 3436 // Name::WikilinkStart, 3437 // Name::WikilinkStart, 3438 // Name::WikilinkEnd, 3439 Name::LabelImageMarker, 3440 Name::LabelMarker, 3441 Name::LineEnding, 3442 Name::ListItemMarker, 3443 Name::ListItemValue, 3444 Name::MathFlowFenceSequence, 3445 Name::MathFlowChunk, 3446 Name::MathTextData, 3447 Name::MathTextSequence, 3448 Name::MdxEsmData, 3449 Name::MdxExpressionMarker, 3450 Name::MdxExpressionData, 3451 Name::MdxJsxTagMarker, 3452 Name::MdxJsxTagClosingMarker, 3453 Name::MdxJsxTagNamePrimary, 3454 Name::MdxJsxTagNameMemberMarker, 3455 Name::MdxJsxTagNamePrefixMarker, 3456 Name::MdxJsxTagNameMember, 3457 Name::MdxJsxTagNameLocal, 3458 Name::MdxJsxTagSelfClosingMarker, 3459 Name::MdxJsxTagAttributeNamePrefixMarker, 3460 Name::MdxJsxTagAttributeInitializerMarker, 3461 Name::MdxJsxTagAttributeNameLocal, 3462 Name::MdxJsxTagAttributeValueLiteralMarker, 3463 Name::MdxJsxEsWhitespace, 3464 Name::ReferenceMarker, 3465 Name::ResourceMarker, 3466 Name::ResourceTitleMarker, 3467 Name::SpaceOrTab, 3468 Name::StrongSequence, 3469 Name::ThematicBreakSequence, 3470]; 3471 3472/// Embedded content type. 3473#[derive(Clone, Debug, Eq, PartialEq)] 3474pub enum Content { 3475 /// Represents [flow content][crate::construct::flow]. 3476 Flow, 3477 /// Represents [content][crate::construct::content]. 3478 #[allow(clippy::enum_variant_names)] 3479 Content, 3480 /// Represents [string content][crate::construct::string]. 3481 String, 3482 /// Represents [text content][crate::construct::text]. 3483 Text, 3484} 3485 3486/// Link to another event. 3487#[derive(Clone, Debug)] 3488pub struct Link { 3489 /// Previous event. 3490 pub previous: Option<usize>, 3491 /// Next event. 3492 pub next: Option<usize>, 3493 /// Content type. 3494 pub content: Content, 3495} 3496 3497/// Place in the document. 3498/// 3499/// The interface for the location in the document comes from unist 3500/// [`Point`](https://github.com/syntax-tree/unist#point). 3501#[derive(Clone, Debug)] 3502pub struct Point { 3503 /// 1-indexed line number. 3504 pub line: usize, 3505 /// 1-indexed column number. 3506 /// 3507 /// This is increased up to a tab stop for tabs. 3508 /// Some editors count tabs as 1 character, so this position is not the 3509 /// same as editors. 3510 pub column: usize, 3511 /// 0-indexed position in the document. 3512 /// 3513 /// Also an `index` into `bytes`. 3514 pub index: usize, 3515 /// Virtual step on the same `index`. 3516 pub vs: usize, 3517} 3518 3519impl Point { 3520 /// Create a unist point. 3521 pub fn to_unist(&self) -> unist::Point { 3522 unist::Point { 3523 line: self.line, 3524 column: self.column, 3525 offset: self.index, 3526 } 3527 } 3528 3529 /// Create a new point, that is shifted from the close earlier current 3530 /// point, to `index`. 3531 pub fn shift_to(&self, bytes: &[u8], index: usize) -> Point { 3532 let mut next = self.clone(); 3533 debug_assert!(index > next.index, "expected to shift forward"); 3534 3535 while next.index < index { 3536 match bytes[next.index] { 3537 b'\n' | b'\r' => unreachable!("cannot move past line endings"), 3538 b'\t' => { 3539 let remainder = next.column % TAB_SIZE; 3540 let vs = if remainder == 0 { 3541 0 3542 } else { 3543 TAB_SIZE - remainder 3544 }; 3545 next.index += 1; 3546 next.column += 1 + vs; 3547 } 3548 _ => { 3549 next.index += 1; 3550 next.column += 1; 3551 } 3552 } 3553 } 3554 3555 next 3556 } 3557} 3558 3559/// Event kinds. 3560#[derive(Clone, Debug, Eq, PartialEq)] 3561pub enum Kind { 3562 /// The start of something. 3563 Enter, 3564 /// The end of something. 3565 Exit, 3566} 3567 3568/// Something semantic happening somewhere. 3569#[derive(Clone, Debug)] 3570pub struct Event { 3571 /// Kind of event. 3572 pub kind: Kind, 3573 /// Name of event. 3574 pub name: Name, 3575 /// Place where this happens. 3576 pub point: Point, 3577 /// Link to another event. 3578 pub link: Option<Link>, 3579}