Skip to content

Commit

Permalink
Review & Improve (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
Niklan authored Jun 18, 2024
1 parent e6e28d0 commit 79b5dba
Show file tree
Hide file tree
Showing 950 changed files with 41,907 additions and 28,365 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@
<img src="./_handbook/logo.svg" alt="Niklan.net" width="128" align="right">

This is a repository with a source content of <https://niklan.net> website.

* [Markdown](./_handbook/markdown.md)
157 changes: 157 additions & 0 deletions _handbook/markdown.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# Markdown

The project uses the [CommonMark Markdown specification][common-mark] with a few
customizations.

## Changes to CommonMark

### Fenced Code Blocks

In addition to the language hint, after the fenced code, there is an option to
pass a valid JSON string with additional information.

Currently supported additional information:

- `highlighted_lines`: A string of code lines to be highlighted, with multiple
values separated by semicolons. Ranges can be specified using dashes. For
example: `1-5;8;10-20`.
- `header`: A header for a code block, mainly intended to be used as the name of
the file from which a code example is taken.

````markdown
```php {"header":"hello-world.php","highlighted_lines":"3"}
<?php

echo "Hello, World!";
```
````

## Generic directives

This syntax is heavily inspired by [this discussion][generic-directives].
Currently, only container and leaf directives are implemented, mainly because
there is no need for inline ones.

### Leaf block directives

The syntax of the leaf block directive is:

```markdown
:: name [inline-content] (argument) {#id .class key=val}
```

Think of leaf directives as blocks of content that are self-contained and can
only be used on a single line without any other syntax or markup. They are not
nested and do not have child elements. The closest HTML example is `<iframe>`
tag.

- Spaces are optional between different parts. `::name[foo]{bar=baz}` is the
same as `:: name [foo] {bar=baz}`.
- By default, only a name is required, but different use cases may have their
own specific requirements and limitations.
- It always starts with a double colon.

### Video

Used to embed a local video file that will be loaded on the website and served
using the `<video>` tag.

```markdown
:: video [Video title] (./path/to/video.mp4)
```

- `[]`: (required) The video title will be used to save the file.
- `()`: (required) The path to the video file. The path should be local;
external videos will not be downloaded.

### YouTube video

Used to embed a YouTube video on the page.

```markdown
:: youtube {vid=4Ru8DMW-grY}
```

- `{}`
- `vid`: (required) The YouTube video ID.

## Container block directives

The syntax of the container block directive is:

```markdown
::: name [inline-content] (argument) {#id .class key=val}
Container content.
:::
```

Container block directives work as they sound: they expect content to be placed
inside the container. Think of them as `<div>` elements with different types of
content.

- Spaces are optional between different parts. `:::name[foo]{bar=baz}` is the
same as `::: name[foo] {bar = baz}`.
- By default, only a name is required, but different use cases may have their
own specific requirements and limitations.
- It always starts with a triple colon, but that is not limited. You can use
more than three colon to create a container for children.
- The inner content should always be indented at least as much as the opening
colon.

```markdown
:::::: first
:::: second
This is a fun video!

:: youtube {vid=123}
::::
::::::
```

### Alerts

Alerts can be used to highlight specific information in content. Alerts can be
added using these container directive names: **note**, **tip**, **important**,
**warning**, **caution**.

```markdown
::: important
This is an important part of the content.
:::

::::: note [This is dangerous!]
::: tip
Actually, it is not dangerous.
:::
:::::
```

- `[]`: An optional heading. By default, it will use alert type as a heading for
the section. However, you can override this if you prefer. The heading can
contain inline Markdown.

### Figure

The figure container is simply replaced by the `<figure>` HTML tag.

```markdown
::: figure
:: video [example] (video.mp4)
:::
```

### Figcaption

The figcaption container is simply replaced by the `<figcaption>` HTML tag.

```markdown
::::: figure
![image](img.png)
::: figcaption
This is an awesome picture!
:::
:::::
```

[common-mark]: https://commonmark.org/
[generic-directives]: https://talk.commonmark.org/t/generic-directives-plugins-syntax/444
24 changes: 18 additions & 6 deletions blog/2012/12/31/hello-world/index.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,28 @@ id: hello-world
language: ru
title: 'Hello World'
created: '2012-12-31T22:10:03'
updated: '2023-10-16T18:21:20'
needs_manual_review: true
updated: '2024-05-25T00:00:00'
description: 'Отсюда всё начинается!'
promo: 'image/HelloWorld.jpg'
promo: 'image/hello-world.jpg'
---

Всем привет!

Меня зовут Никита. На данный момент я студент последнего курса Пермского Филиала МЭСИ. Я активно обучаюсь веб-разработке на CMS Drupal, попутно поднимая скилл PHP, HTML, CSS и JS. Вебом я заинтересовался в далеком 2006 году, будучи в лагере с компьютерным уклоном, где одним из кружков было обучение разработке HTML страничек. В тот момент мне это безумно понравилось и я понял, что это то, чем я хочу заниматься. С тех пор интерес не угас и я продолжаю обучаться.
Меня зовут Никита. На данный момент я студент последнего курса Пермского филиала
МЭСИ. Я активно обучаюсь веб-разработке на CMS Drupal, попутно поднимая скил
PHP, HTML, CSS и JS. Вебом я заинтересовался в далеком 2006 году, будучи в
лагере с компьютерным уклоном, где одним из кружков было обучение разработке
HTML-страничек. В тот момент мне очень понравилось, и я решил, что это то, чем
хочу заниматься. С тех пор интерес не угас, и я продолжаю обучаться.

С декабря 2010 начал учиться делать сайты на Drupal. К лету 2012 активность обучения возрастала и меня все утраивало, пока я не достиг потолка. Потолком стало знание PHP, которого не было, в последствии подучил и начал практиковаться дальше. Попутно я также подучил JS, чтобы в дальнейшем не терять время. Сейчас подтягиваю эти навыки создавая свой первый модуль для Drupal, при этом изучая API системы.
С декабря 2010 начал учиться делать сайты на Drupal. К лету 2012 активность
обучения возрастала, и меня все утраивало, пока я не достиг потолка. Потолком
стало знание PHP, которого не было, впоследствии подучил и начал практиковаться
дальше. Попутно я также подучил JS, чтобы в дальнейшем не терять время. Сейчас
подтягиваю эти навыки, создавая свой первый модуль для Drupal, при этом изучая
API системы.

В данном блоге я буду писать в основном о PHP, HTML, CSS, JS и Drupal, что и не удивительно. Ввиду того, что мои навыки пока не сильно уж и крутые, то записи подойдут и для начинающих, а затем, по мере роста опыта, будут соответственно и посложнее.
В данном блоге я буду писать в основном о PHP, HTML, CSS, JS и Drupal, что и
неудивительно. Ввиду того, что мои навыки пока не сильно уж и крутые, то записи
подойдут и для начинающих, а затем, по мере роста опыта, будут, соответственно,
и посложнее.
Loading

0 comments on commit 79b5dba

Please sign in to comment.