玛氪宕·梦魔(Markdown Memo),使用Markdown的云端备忘录,百度IFE的RIA启航班的不合格的作业,才……才没有什么阴谋呢!
源gitee链接https://gitee.com/arathi/MarkdownMemo?_from=gitee_search
				
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							535 lines
						
					
					
						
							17 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							535 lines
						
					
					
						
							17 KiB
						
					
					
				| <!doctype html> | |
| 
 | |
| <title>CodeMirror: reStructuredText mode</title> | |
| <meta charset="utf-8"/> | |
| <link rel=stylesheet href="../../doc/docs.css"> | |
| 
 | |
| <link rel="stylesheet" href="../../lib/codemirror.css"> | |
| <script src="../../lib/codemirror.js"></script> | |
| <script src="../../addon/mode/overlay.js"></script> | |
| <script src="rst.js"></script> | |
| <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> | |
| <div id=nav> | |
|   <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> | |
| 
 | |
|   <ul> | |
|     <li><a href="../../index.html">Home</a> | |
|     <li><a href="../../doc/manual.html">Manual</a> | |
|     <li><a href="https://github.com/codemirror/codemirror">Code</a> | |
|   </ul> | |
|   <ul> | |
|     <li><a href="../index.html">Language modes</a> | |
|     <li><a class=active href="#">reStructuredText</a> | |
|   </ul> | |
| </div> | |
| 
 | |
| <article> | |
| <h2>reStructuredText mode</h2> | |
| <form><textarea id="code" name="code"> | |
| .. This is an excerpt from Sphinx documentation: http://sphinx.pocoo.org/_sources/rest.txt | |
| 
 | |
| .. highlightlang:: rest | |
| 
 | |
| .. _rst-primer: | |
| 
 | |
| reStructuredText Primer | |
| ======================= | |
| 
 | |
| This section is a brief introduction to reStructuredText (reST) concepts and | |
| syntax, intended to provide authors with enough information to author documents | |
| productively.  Since reST was designed to be a simple, unobtrusive markup | |
| language, this will not take too long. | |
| 
 | |
| .. seealso:: | |
| 
 | |
|    The authoritative `reStructuredText User Documentation | |
|    <http://docutils.sourceforge.net/rst.html>`_.  The "ref" links in this | |
|    document link to the description of the individual constructs in the reST | |
|    reference. | |
| 
 | |
| 
 | |
| Paragraphs | |
| ---------- | |
| 
 | |
| The paragraph (:duref:`ref <paragraphs>`) is the most basic block in a reST | |
| document.  Paragraphs are simply chunks of text separated by one or more blank | |
| lines.  As in Python, indentation is significant in reST, so all lines of the | |
| same paragraph must be left-aligned to the same level of indentation. | |
| 
 | |
| 
 | |
| .. _inlinemarkup: | |
| 
 | |
| Inline markup | |
| ------------- | |
| 
 | |
| The standard reST inline markup is quite simple: use | |
| 
 | |
| * one asterisk: ``*text*`` for emphasis (italics), | |
| * two asterisks: ``**text**`` for strong emphasis (boldface), and | |
| * backquotes: ````text```` for code samples. | |
| 
 | |
| If asterisks or backquotes appear in running text and could be confused with | |
| inline markup delimiters, they have to be escaped with a backslash. | |
| 
 | |
| Be aware of some restrictions of this markup: | |
| 
 | |
| * it may not be nested, | |
| * content may not start or end with whitespace: ``* text*`` is wrong, | |
| * it must be separated from surrounding text by non-word characters.  Use a | |
|   backslash escaped space to work around that: ``thisis\ *one*\ word``. | |
| 
 | |
| These restrictions may be lifted in future versions of the docutils. | |
| 
 | |
| reST also allows for custom "interpreted text roles"', which signify that the | |
| enclosed text should be interpreted in a specific way.  Sphinx uses this to | |
| provide semantic markup and cross-referencing of identifiers, as described in | |
| the appropriate section.  The general syntax is ``:rolename:`content```. | |
| 
 | |
| Standard reST provides the following roles: | |
| 
 | |
| * :durole:`emphasis` -- alternate spelling for ``*emphasis*`` | |
| * :durole:`strong` -- alternate spelling for ``**strong**`` | |
| * :durole:`literal` -- alternate spelling for ````literal```` | |
| * :durole:`subscript` -- subscript text | |
| * :durole:`superscript` -- superscript text | |
| * :durole:`title-reference` -- for titles of books, periodicals, and other | |
|   materials | |
| 
 | |
| See :ref:`inline-markup` for roles added by Sphinx. | |
| 
 | |
| 
 | |
| Lists and Quote-like blocks | |
| --------------------------- | |
| 
 | |
| List markup (:duref:`ref <bullet-lists>`) is natural: just place an asterisk at | |
| the start of a paragraph and indent properly.  The same goes for numbered lists; | |
| they can also be autonumbered using a ``#`` sign:: | |
| 
 | |
|    * This is a bulleted list. | |
|    * It has two items, the second | |
|      item uses two lines. | |
| 
 | |
|    1. This is a numbered list. | |
|    2. It has two items too. | |
| 
 | |
|    #. This is a numbered list. | |
|    #. It has two items too. | |
| 
 | |
| 
 | |
| Nested lists are possible, but be aware that they must be separated from the | |
| parent list items by blank lines:: | |
| 
 | |
|    * this is | |
|    * a list | |
| 
 | |
|      * with a nested list | |
|      * and some subitems | |
| 
 | |
|    * and here the parent list continues | |
| 
 | |
| Definition lists (:duref:`ref <definition-lists>`) are created as follows:: | |
| 
 | |
|    term (up to a line of text) | |
|       Definition of the term, which must be indented | |
| 
 | |
|       and can even consist of multiple paragraphs | |
| 
 | |
|    next term | |
|       Description. | |
| 
 | |
| Note that the term cannot have more than one line of text. | |
| 
 | |
| Quoted paragraphs (:duref:`ref <block-quotes>`) are created by just indenting | |
| them more than the surrounding paragraphs. | |
| 
 | |
| Line blocks (:duref:`ref <line-blocks>`) are a way of preserving line breaks:: | |
| 
 | |
|    | These lines are | |
|    | broken exactly like in | |
|    | the source file. | |
| 
 | |
| There are also several more special blocks available: | |
| 
 | |
| * field lists (:duref:`ref <field-lists>`) | |
| * option lists (:duref:`ref <option-lists>`) | |
| * quoted literal blocks (:duref:`ref <quoted-literal-blocks>`) | |
| * doctest blocks (:duref:`ref <doctest-blocks>`) | |
| 
 | |
| 
 | |
| Source Code | |
| ----------- | |
| 
 | |
| Literal code blocks (:duref:`ref <literal-blocks>`) are introduced by ending a | |
| paragraph with the special marker ``::``.  The literal block must be indented | |
| (and, like all paragraphs, separated from the surrounding ones by blank lines):: | |
| 
 | |
|    This is a normal text paragraph. The next paragraph is a code sample:: | |
| 
 | |
|       It is not processed in any way, except | |
|       that the indentation is removed. | |
| 
 | |
|       It can span multiple lines. | |
| 
 | |
|    This is a normal text paragraph again. | |
| 
 | |
| The handling of the ``::`` marker is smart: | |
| 
 | |
| * If it occurs as a paragraph of its own, that paragraph is completely left | |
|   out of the document. | |
| * If it is preceded by whitespace, the marker is removed. | |
| * If it is preceded by non-whitespace, the marker is replaced by a single | |
|   colon. | |
| 
 | |
| That way, the second sentence in the above example's first paragraph would be | |
| rendered as "The next paragraph is a code sample:". | |
| 
 | |
| 
 | |
| .. _rst-tables: | |
| 
 | |
| Tables | |
| ------ | |
| 
 | |
| Two forms of tables are supported.  For *grid tables* (:duref:`ref | |
| <grid-tables>`), you have to "paint" the cell grid yourself.  They look like | |
| this:: | |
| 
 | |
|    +------------------------+------------+----------+----------+ | |
|    | Header row, column 1   | Header 2   | Header 3 | Header 4 | | |
|    | (header rows optional) |            |          |          | | |
|    +========================+============+==========+==========+ | |
|    | body row 1, column 1   | column 2   | column 3 | column 4 | | |
|    +------------------------+------------+----------+----------+ | |
|    | body row 2             | ...        | ...      |          | | |
|    +------------------------+------------+----------+----------+ | |
| 
 | |
| *Simple tables* (:duref:`ref <simple-tables>`) are easier to write, but | |
| limited: they must contain more than one row, and the first column cannot | |
| contain multiple lines.  They look like this:: | |
| 
 | |
|    =====  =====  ======= | |
|    A      B      A and B | |
|    =====  =====  ======= | |
|    False  False  False | |
|    True   False  False | |
|    False  True   False | |
|    True   True   True | |
|    =====  =====  ======= | |
| 
 | |
| 
 | |
| Hyperlinks | |
| ---------- | |
| 
 | |
| External links | |
| ^^^^^^^^^^^^^^ | |
| 
 | |
| Use ```Link text <http://example.com/>`_`` for inline web links.  If the link | |
| text should be the web address, you don't need special markup at all, the parser | |
| finds links and mail addresses in ordinary text. | |
| 
 | |
| You can also separate the link and the target definition (:duref:`ref | |
| <hyperlink-targets>`), like this:: | |
| 
 | |
|    This is a paragraph that contains `a link`_. | |
| 
 | |
|    .. _a link: http://example.com/ | |
| 
 | |
| 
 | |
| Internal links | |
| ^^^^^^^^^^^^^^ | |
| 
 | |
| Internal linking is done via a special reST role provided by Sphinx, see the | |
| section on specific markup, :ref:`ref-role`. | |
| 
 | |
| 
 | |
| Sections | |
| -------- | |
| 
 | |
| Section headers (:duref:`ref <sections>`) are created by underlining (and | |
| optionally overlining) the section title with a punctuation character, at least | |
| as long as the text:: | |
| 
 | |
|    ================= | |
|    This is a heading | |
|    ================= | |
| 
 | |
| Normally, there are no heading levels assigned to certain characters as the | |
| structure is determined from the succession of headings.  However, for the | |
| Python documentation, this convention is used which you may follow: | |
| 
 | |
| * ``#`` with overline, for parts | |
| * ``*`` with overline, for chapters | |
| * ``=``, for sections | |
| * ``-``, for subsections | |
| * ``^``, for subsubsections | |
| * ``"``, for paragraphs | |
| 
 | |
| Of course, you are free to use your own marker characters (see the reST | |
| documentation), and use a deeper nesting level, but keep in mind that most | |
| target formats (HTML, LaTeX) have a limited supported nesting depth. | |
| 
 | |
| 
 | |
| Explicit Markup | |
| --------------- | |
| 
 | |
| "Explicit markup" (:duref:`ref <explicit-markup-blocks>`) is used in reST for | |
| most constructs that need special handling, such as footnotes, | |
| specially-highlighted paragraphs, comments, and generic directives. | |
| 
 | |
| An explicit markup block begins with a line starting with ``..`` followed by | |
| whitespace and is terminated by the next paragraph at the same level of | |
| indentation.  (There needs to be a blank line between explicit markup and normal | |
| paragraphs.  This may all sound a bit complicated, but it is intuitive enough | |
| when you write it.) | |
| 
 | |
| 
 | |
| .. _directives: | |
| 
 | |
| Directives | |
| ---------- | |
| 
 | |
| A directive (:duref:`ref <directives>`) is a generic block of explicit markup. | |
| Besides roles, it is one of the extension mechanisms of reST, and Sphinx makes | |
| heavy use of it. | |
| 
 | |
| Docutils supports the following directives: | |
| 
 | |
| * Admonitions: :dudir:`attention`, :dudir:`caution`, :dudir:`danger`, | |
|   :dudir:`error`, :dudir:`hint`, :dudir:`important`, :dudir:`note`, | |
|   :dudir:`tip`, :dudir:`warning` and the generic :dudir:`admonition`. | |
|   (Most themes style only "note" and "warning" specially.) | |
| 
 | |
| * Images: | |
| 
 | |
|   - :dudir:`image` (see also Images_ below) | |
|   - :dudir:`figure` (an image with caption and optional legend) | |
| 
 | |
| * Additional body elements: | |
| 
 | |
|   - :dudir:`contents` (a local, i.e. for the current file only, table of | |
|     contents) | |
|   - :dudir:`container` (a container with a custom class, useful to generate an | |
|     outer ``<div>`` in HTML) | |
|   - :dudir:`rubric` (a heading without relation to the document sectioning) | |
|   - :dudir:`topic`, :dudir:`sidebar` (special highlighted body elements) | |
|   - :dudir:`parsed-literal` (literal block that supports inline markup) | |
|   - :dudir:`epigraph` (a block quote with optional attribution line) | |
|   - :dudir:`highlights`, :dudir:`pull-quote` (block quotes with their own | |
|     class attribute) | |
|   - :dudir:`compound` (a compound paragraph) | |
| 
 | |
| * Special tables: | |
| 
 | |
|   - :dudir:`table` (a table with title) | |
|   - :dudir:`csv-table` (a table generated from comma-separated values) | |
|   - :dudir:`list-table` (a table generated from a list of lists) | |
| 
 | |
| * Special directives: | |
| 
 | |
|   - :dudir:`raw` (include raw target-format markup) | |
|   - :dudir:`include` (include reStructuredText from another file) | |
|     -- in Sphinx, when given an absolute include file path, this directive takes | |
|     it as relative to the source directory | |
|   - :dudir:`class` (assign a class attribute to the next element) [1]_ | |
| 
 | |
| * HTML specifics: | |
| 
 | |
|   - :dudir:`meta` (generation of HTML ``<meta>`` tags) | |
|   - :dudir:`title` (override document title) | |
| 
 | |
| * Influencing markup: | |
| 
 | |
|   - :dudir:`default-role` (set a new default role) | |
|   - :dudir:`role` (create a new role) | |
| 
 | |
|   Since these are only per-file, better use Sphinx' facilities for setting the | |
|   :confval:`default_role`. | |
| 
 | |
| Do *not* use the directives :dudir:`sectnum`, :dudir:`header` and | |
| :dudir:`footer`. | |
| 
 | |
| Directives added by Sphinx are described in :ref:`sphinxmarkup`. | |
| 
 | |
| Basically, a directive consists of a name, arguments, options and content. (Keep | |
| this terminology in mind, it is used in the next chapter describing custom | |
| directives.)  Looking at this example, :: | |
| 
 | |
|    .. function:: foo(x) | |
|                  foo(y, z) | |
|       :module: some.module.name | |
| 
 | |
|       Return a line of text input from the user. | |
| 
 | |
| ``function`` is the directive name.  It is given two arguments here, the | |
| remainder of the first line and the second line, as well as one option | |
| ``module`` (as you can see, options are given in the lines immediately following | |
| the arguments and indicated by the colons).  Options must be indented to the | |
| same level as the directive content. | |
| 
 | |
| The directive content follows after a blank line and is indented relative to the | |
| directive start. | |
| 
 | |
| 
 | |
| Images | |
| ------ | |
| 
 | |
| reST supports an image directive (:dudir:`ref <image>`), used like so:: | |
| 
 | |
|    .. image:: gnu.png | |
|       (options) | |
| 
 | |
| When used within Sphinx, the file name given (here ``gnu.png``) must either be | |
| relative to the source file, or absolute which means that they are relative to | |
| the top source directory.  For example, the file ``sketch/spam.rst`` could refer | |
| to the image ``images/spam.png`` as ``../images/spam.png`` or | |
| ``/images/spam.png``. | |
| 
 | |
| Sphinx will automatically copy image files over to a subdirectory of the output | |
| directory on building (e.g. the ``_static`` directory for HTML output.) | |
| 
 | |
| Interpretation of image size options (``width`` and ``height``) is as follows: | |
| if the size has no unit or the unit is pixels, the given size will only be | |
| respected for output channels that support pixels (i.e. not in LaTeX output). | |
| Other units (like ``pt`` for points) will be used for HTML and LaTeX output. | |
| 
 | |
| Sphinx extends the standard docutils behavior by allowing an asterisk for the | |
| extension:: | |
| 
 | |
|    .. image:: gnu.* | |
| 
 | |
| Sphinx then searches for all images matching the provided pattern and determines | |
| their type.  Each builder then chooses the best image out of these candidates. | |
| For instance, if the file name ``gnu.*`` was given and two files :file:`gnu.pdf` | |
| and :file:`gnu.png` existed in the source tree, the LaTeX builder would choose | |
| the former, while the HTML builder would prefer the latter. | |
| 
 | |
| .. versionchanged:: 0.4 | |
|    Added the support for file names ending in an asterisk. | |
| 
 | |
| .. versionchanged:: 0.6 | |
|    Image paths can now be absolute. | |
| 
 | |
| 
 | |
| Footnotes | |
| --------- | |
| 
 | |
| For footnotes (:duref:`ref <footnotes>`), use ``[#name]_`` to mark the footnote | |
| location, and add the footnote body at the bottom of the document after a | |
| "Footnotes" rubric heading, like so:: | |
| 
 | |
|    Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_ | |
| 
 | |
|    .. rubric:: Footnotes | |
| 
 | |
|    .. [#f1] Text of the first footnote. | |
|    .. [#f2] Text of the second footnote. | |
| 
 | |
| You can also explicitly number the footnotes (``[1]_``) or use auto-numbered | |
| footnotes without names (``[#]_``). | |
| 
 | |
| 
 | |
| Citations | |
| --------- | |
| 
 | |
| Standard reST citations (:duref:`ref <citations>`) are supported, with the | |
| additional feature that they are "global", i.e. all citations can be referenced | |
| from all files.  Use them like so:: | |
| 
 | |
|    Lorem ipsum [Ref]_ dolor sit amet. | |
| 
 | |
|    .. [Ref] Book or article reference, URL or whatever. | |
| 
 | |
| Citation usage is similar to footnote usage, but with a label that is not | |
| numeric or begins with ``#``. | |
| 
 | |
| 
 | |
| Substitutions | |
| ------------- | |
| 
 | |
| reST supports "substitutions" (:duref:`ref <substitution-definitions>`), which | |
| are pieces of text and/or markup referred to in the text by ``|name|``.  They | |
| are defined like footnotes with explicit markup blocks, like this:: | |
| 
 | |
|    .. |name| replace:: replacement *text* | |
| 
 | |
| or this:: | |
| 
 | |
|    .. |caution| image:: warning.png | |
|                 :alt: Warning! | |
| 
 | |
| See the :duref:`reST reference for substitutions <substitution-definitions>` | |
| for details. | |
| 
 | |
| If you want to use some substitutions for all documents, put them into | |
| :confval:`rst_prolog` or put them into a separate file and include it into all | |
| documents you want to use them in, using the :rst:dir:`include` directive.  (Be | |
| sure to give the include file a file name extension differing from that of other | |
| source files, to avoid Sphinx finding it as a standalone document.) | |
| 
 | |
| Sphinx defines some default substitutions, see :ref:`default-substitutions`. | |
| 
 | |
| 
 | |
| Comments | |
| -------- | |
| 
 | |
| Every explicit markup block which isn't a valid markup construct (like the | |
| footnotes above) is regarded as a comment (:duref:`ref <comments>`).  For | |
| example:: | |
| 
 | |
|    .. This is a comment. | |
| 
 | |
| You can indent text after a comment start to form multiline comments:: | |
| 
 | |
|    .. | |
|       This whole indented block | |
|       is a comment. | |
| 
 | |
|       Still in the comment. | |
| 
 | |
| 
 | |
| Source encoding | |
| --------------- | |
| 
 | |
| Since the easiest way to include special characters like em dashes or copyright | |
| signs in reST is to directly write them as Unicode characters, one has to | |
| specify an encoding.  Sphinx assumes source files to be encoded in UTF-8 by | |
| default; you can change this with the :confval:`source_encoding` config value. | |
| 
 | |
| 
 | |
| Gotchas | |
| ------- | |
| 
 | |
| There are some problems one commonly runs into while authoring reST documents: | |
| 
 | |
| * **Separation of inline markup:** As said above, inline markup spans must be | |
|   separated from the surrounding text by non-word characters, you have to use a | |
|   backslash-escaped space to get around that.  See `the reference | |
|   <http://docutils.sf.net/docs/ref/rst/restructuredtext.html#inline-markup>`_ | |
|   for the details. | |
| 
 | |
| * **No nested inline markup:** Something like ``*see :func:`foo`*`` is not | |
|   possible. | |
| 
 | |
| 
 | |
| .. rubric:: Footnotes | |
| 
 | |
| .. [1] When the default domain contains a :rst:dir:`class` directive, this directive | |
|        will be shadowed.  Therefore, Sphinx re-exports it as :rst:dir:`rst-class`. | |
| </textarea></form> | |
| 
 | |
|     <script> | |
|       var editor = CodeMirror.fromTextArea(document.getElementById("code"), { | |
|         lineNumbers: true, | |
|       }); | |
|     </script> | |
|     <p> | |
|         The <code>python</code> mode will be used for highlighting blocks | |
|         containing Python/IPython terminal sessions: blocks starting with | |
|         <code>>>></code> (for Python) or <code>In [num]:</code> (for | |
|         IPython). | |
| 
 | |
|         Further, the <code>stex</code> mode will be used for highlighting | |
|         blocks containing LaTex code. | |
|     </p> | |
| 
 | |
|     <p><strong>MIME types defined:</strong> <code>text/x-rst</code>.</p> | |
|   </article>
 |