Bonjour, je m'appelle Dmitry Karlovsky et j'écris tous mes articles (et présentations ) dans le balisage MarkDown . Et tu sais quoi? Elle m'a déjà bien poussé! J'écris des textes en russe, mais la plupart des caractères spéciaux sont uniquement dans la disposition du clavier anglais. Et le montage de table est l'éternelle tour penchée de Pise. En bref, il a des problèmes à la fois avec la facilité d'édition et avec la clarté de la présentation. Essayons donc de le concevoir à partir de zéro, sans traîner des kilotonnes de designs déroutants avec nous.
Le tracé est allé un peu, puisqu'une nouvelle visualisation de courbe a été déployée sur Habré. Alors maintenant, il sera extrêmement difficile d'écrire des articles dans le markdown, puis de les télécharger sur Habr. Avec une mise en page normale, vous pouvez lire cet article sur github: https://github.com/nin-jin/HabHub/issues/39
Des principes
Non-ambiguïté de la syntaxe
Simplicité de la syntaxe
Cohérence de la syntaxe
Impact minimal sur le texte naturel
Facilité d'édition quelle que soit la mise en page
Visibilité de la présentation
Extensibilité
Mémorisation rapide et fiable
En tant que caractères de mise en forme spéciaux, il est préférable d'utiliser ceux qui sont dans n'importe quelle mise en page, et pas seulement en anglais. Autrement dit, toutes choses étant égales par ailleurs, il est préférable de privilégier les caractères suivants:!
"
;
%
:
?
*
(
)
_
+
/
\
.
,
-
=
Solutions existantes
, . : AsciiDoc, BBCode, Creole, GitHub Flavored Markdown, Markdown, Markdown Extra, MediaWiki, MultiMarkdown, Org-mode, PmWiki, POD, reStructuredText, Textile, Texy, txt2tag.
, . . , .
: . . .
. . "". :
- item
* item
+ item
- . . 2 - , , . :
- first
- second
- first of second
- first of first of second
- second of second
- third
first
second
first of second
first of first of second
second of second
third
. - , . , :
1. item
2) item
, - :
# item
. , :
+ first
+ second
+ first of second
+ first of first of second
+ second of second
+ third
first
second
first of second
first of first of second
second of second
third
, , - . - :
> quote
> - list in quote
> > inner quote
, . , :
" quote
" - list in quote
" " inner quote
- . :
|= |= table |= header |
| a | table | row |
| b | table | row |
| | table | header |
|---|-------|--------|
| a | table | row |
| b | table | row |
First Header | Second Header
------------ | -------------
Content from cell 1 | Content from cell 2
Content in the first column | Content in the second column
, - .
, - . , , .
, , - , , :
| | table | header |
| a | There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. | row |
| b | table | row |
, - . - , , , :
! ! table ! header ! a ! There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. ! row ! b ! table ! row
, . , . . . .
:
Level 1 Heading
===============
Level 2 Heading
---------------
Level 3 Heading
~~~~~~~~~~~~~~~
, , , , , - .
, :
# Level 1 Heading #
## Level 2 Heading ##
### Level 3 Heading ###
, , . :
## Level 2 Heading
== Level 2 Heading
** Level 2 Heading
!! Level 2 Heading
++ Level 2 Heading
. , , . - , . , :
= Level 1 Heading
== Level 2 Heading
=== Level 3 Heading
:
```markdown
preformatted
text
```
, , . . , , 2 4 :
preformatted
text
, , . , , .
, . , - /.
:
2 .
.
:
preformatted
text
--deleted
-- text
++inserted
++ text
**highlighted
** text
? . . - . , , - . - , , .
- "". , , . -. :
1 - , , .
3 - , - .
2 - , .
, , , . , : . - , , . , .
:
*strong*
**strong**
__strong__
'''strong'''
''strong''
, . "" - .
**strong**
strong
:
'emphasis'
''emphasis''
_emphasis_
/emphasis/
//emphasis//
*emphasis*
~emphasis~
. , , , .
//emphasis//
emphasis
, , . . , , . .
, :
_insertion_
__insertion__
+insertion+
:
~deletion~
~~deletion~~
-deletion-
--deletion--
, :
++insertion++
--deletion--
insertion
deletion
:
- . .
- . , , , - ( , , ).
:
"Text":http://example.com
http://example.com[Text]
<http: example.com|text="">
[Text|http://example.com]
[[Text|http://example.com]]
[[http://example.com|Text]]
[Text http://example.com]
[http://example.com Text]
[Text](http://example.com)
`Text <http: example.com="">`_
:
![title](http://example.com/image.png)
{{http://example.com/image.png|title}}
.. image:: /path/to/image.jpg
, . - HTML. - . .
, . - , , . : \
"
.
, - , . , \
, , .
""Embedded image\http://example.org/favicon.ico""
""Embedded video\https://youtube.com/video=1234""
""Embedded site\https://marked.hyoo.ru/""
, . :
""http://example.org/favicon.ico""
""http://example.org/favicon.ico\http://example.org/favicon.ico""
\
:
\\Clickable text\http://example.org/\\
Clickable url: \\http://example.org/\\
-
Clickable url: http://example.org/
. , - :
\\""Example\http://example.org/favicon.ico""\http://example.org/\\
. - :
+monospace text+
`monospace text`
``monospace text``
```monospace text```
|monospace text|
{{monospace text}}
{{{monospace text}}}
=code=
~verbatim~
@monospace text@
@@monospace text@@
+
=
, . - . , . ;;
. .
;;monospace text;;
monospace text
:
= MarkedText
** **.
--
==
+ :
-
-
-
+ :
-
-
+ :
-
-
== C
! ****
! ****
! ****
! MarkedText
! - .
! - .
! - .
! - .
! - .
! - .
! - .
! MarkDown
! - .
! - .
! - .
! - .
==
const res = [ ... $hyoo_marked_line.parse( '**text**' ) ]
--$mol_assert_equal( res[0].strong, '**text**' )
++$mol_assert_equal( res[0].marker, '**' )
**$mol_assert_equal( res[0].content, 'text' )
==
" " " : , ---- ++++ !
" "
" " , .. C++ , D++ ..
"
" ()
, .
==
- : \\https://marked.hyoo.ru/\\
- \\ MarkedText\https://github.com/nin-jin/HabHub/issues/39\\
- \\ TS\https://github.com/hyoo-ru/marked.hyoo.ru/\\
- \\ HTML TS\https://github.com/hyoo-ru/marked.hyoo.ru/tree/master/to/html\\
- "" $mol_regexp\https://github.com/hyoo-ru/mam_mol/workflows/mol_regexp/badge.svg""