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