Skip to content

Commit 48cd4fd

Browse files
committed
highlighting lines
1 parent 29fb7e8 commit 48cd4fd

File tree

12 files changed

+73
-63
lines changed

12 files changed

+73
-63
lines changed

Gemfile.lock

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ GEM
66
base64 (0.2.0)
77
bigdecimal (3.1.9)
88
colorator (1.1.0)
9-
concurrent-ruby (1.3.4)
9+
concurrent-ruby (1.3.5)
1010
csv (3.3.2)
1111
em-websocket (0.5.3)
1212
eventmachine (>= 0.12.9)
@@ -75,21 +75,21 @@ GEM
7575
rb-inotify (~> 0.9, >= 0.9.10)
7676
logger (1.6.5)
7777
mercenary (0.4.0)
78-
nokogiri (1.18.1-aarch64-linux-gnu)
78+
nokogiri (1.18.2-aarch64-linux-gnu)
7979
racc (~> 1.4)
80-
nokogiri (1.18.1-aarch64-linux-musl)
80+
nokogiri (1.18.2-aarch64-linux-musl)
8181
racc (~> 1.4)
82-
nokogiri (1.18.1-arm-linux-gnu)
82+
nokogiri (1.18.2-arm-linux-gnu)
8383
racc (~> 1.4)
84-
nokogiri (1.18.1-arm-linux-musl)
84+
nokogiri (1.18.2-arm-linux-musl)
8585
racc (~> 1.4)
86-
nokogiri (1.18.1-arm64-darwin)
86+
nokogiri (1.18.2-arm64-darwin)
8787
racc (~> 1.4)
88-
nokogiri (1.18.1-x86_64-darwin)
88+
nokogiri (1.18.2-x86_64-darwin)
8989
racc (~> 1.4)
90-
nokogiri (1.18.1-x86_64-linux-gnu)
90+
nokogiri (1.18.2-x86_64-linux-gnu)
9191
racc (~> 1.4)
92-
nokogiri (1.18.1-x86_64-linux-musl)
92+
nokogiri (1.18.2-x86_64-linux-musl)
9393
racc (~> 1.4)
9494
pathutil (0.16.2)
9595
forwardable-extended (>= 2.6)
@@ -102,21 +102,21 @@ GEM
102102
rexml (3.4.0)
103103
rouge (4.5.1)
104104
safe_yaml (1.0.5)
105-
sass-embedded (1.83.1-aarch64-linux-gnu)
105+
sass-embedded (1.83.4-aarch64-linux-gnu)
106106
google-protobuf (~> 4.29)
107-
sass-embedded (1.83.1-aarch64-linux-musl)
107+
sass-embedded (1.83.4-aarch64-linux-musl)
108108
google-protobuf (~> 4.29)
109-
sass-embedded (1.83.1-arm-linux-gnueabihf)
109+
sass-embedded (1.83.4-arm-linux-gnueabihf)
110110
google-protobuf (~> 4.29)
111-
sass-embedded (1.83.1-arm-linux-musleabihf)
111+
sass-embedded (1.83.4-arm-linux-musleabihf)
112112
google-protobuf (~> 4.29)
113-
sass-embedded (1.83.1-arm64-darwin)
113+
sass-embedded (1.83.4-arm64-darwin)
114114
google-protobuf (~> 4.29)
115-
sass-embedded (1.83.1-x86_64-darwin)
115+
sass-embedded (1.83.4-x86_64-darwin)
116116
google-protobuf (~> 4.29)
117-
sass-embedded (1.83.1-x86_64-linux-gnu)
117+
sass-embedded (1.83.4-x86_64-linux-gnu)
118118
google-protobuf (~> 4.29)
119-
sass-embedded (1.83.1-x86_64-linux-musl)
119+
sass-embedded (1.83.4-x86_64-linux-musl)
120120
google-protobuf (~> 4.29)
121121
terminal-table (3.0.2)
122122
unicode-display_width (>= 1.1.1, < 3)

_articles/c++_auto.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ Ceci explique le "**Almost**" dans "Almost Always Auto". On est passé à ça
271271
{% gif /assets/images/articles/c++/almost_always_auto/person-of-interest-i-believed-in-you.gif %}
272272

273273
Certains développeurs préfèrent utiliser ``auto`` avec parcimonie, en remplacement de types particulièrement verbeux (notamment les iterateurs).
274-
D'autres prônent son utilisation quasi systématique, comme Scott Meyers et [Herb Sutter](https://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/).
274+
D'autres prônent son utilisation quasi systématique, comme Scott Meyers ([Effective Modern C++](https://www.amazon.fr/Effective-Modern-C-Scott-Meyers/dp/1491903996)) et [Herb Sutter](https://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/).
275275

276276
Certains seraient même tentés de ne jamais utiliser ``auto`` pour éviter ce genre de problème, et passer à côté de tous les autres avantages qu'il apporte.
277277

@@ -422,7 +422,7 @@ auto [x, y, z] = container;
422422

423423
### C-like array
424424

425-
{% highlight cpp linenos mark_lines="6" %}
425+
{% highlight cpp linenos highlight_lines="6" %}
426426
auto main() -> int
427427
{
428428
int position[2];
@@ -438,7 +438,7 @@ auto main() -> int
438438
439439
### ``std::array``
440440

441-
{% highlight cpp linenos mark_lines="6" %}
441+
{% highlight cpp linenos highlight_lines="6" %}
442442
auto main() -> int
443443
{
444444
auto position = std::array<int>{10, 15};
@@ -450,7 +450,7 @@ auto main() -> int
450450

451451
### ``std::tuple``
452452

453-
{% highlight cpp mark_lines="3" %}
453+
{% highlight cpp highlight_lines="3" %}
454454
using namespace std::literals;
455455
auto pair = std::tuple{1, 2.2, "text"sv};
456456
auto [integer, decimal, string] = pair;
@@ -461,15 +461,15 @@ std::print("{} {} {}", integer, decimal, string);
461461
> Ici, **``auto`` [ne désigne pas le type des variables déstructurées](#sous-le-capot)**.
462462
463463
### ``std::pair``
464-
{% highlight cpp mark_lines="2" %}
464+
{% highlight cpp highlight_lines="2" %}
465465
auto pair = std::pair{1, 2};
466466
auto [x, y] = pair;
467467
std::print("{} {}", x, y); // Affiche "1 2"
468468
{% endhighlight %}
469469

470470
Grace à ``std::pair`` il est possible d'obtenir les clefs et valeurs dans une *range-based for loop* sur une ``std::map``/``std::unordered_map``.
471471

472-
{% highlight cpp mark_lines="5" %}
472+
{% highlight cpp highlight_lines="5" %}
473473
using namespace std::literals;
474474
auto map = std::unordered_map{
475475
std::pair{ "key1"sv, "value1"sv }
@@ -484,7 +484,7 @@ for (const auto& [key, value] : map)
484484

485485
Les classes/structures ayant **toutes leurs variables membres publiques** sont déstructurables avec une *structured binding declaration*:
486486

487-
{% highlight cpp linenos mark_lines="10" %}
487+
{% highlight cpp linenos highlight_lines="10" %}
488488
struct Position2d
489489
{
490490
int x;
@@ -531,7 +531,7 @@ auto [x, y, z] = position; // error: type 'Position2d' decomposes into 2 element
531531

532532
Les *structured binding declarations* supportent les propriétés *cvref*, permettant d'éviter des copies inutiles ou de modifier les données contenues dans le conteneur:
533533

534-
{% highlight cpp linenos mark_lines="13" %}
534+
{% highlight cpp linenos highlight_lines="13" %}
535535
struct Person
536536
{
537537
std::string name;
@@ -646,7 +646,7 @@ Pour les classes/structures n'ayant que des variables membres publiques, la dés
646646

647647
Si une classe/structure contient des variables membre privées, il n'est pas possible de les ignorer dans une *structured binding declaration*.
648648

649-
{% highlight cpp linenos mark_lines="6" %}
649+
{% highlight cpp linenos highlight_lines="6" %}
650650
struct Person
651651
{
652652
Person(std::string firstName, std::string lastName, int birthYear):

_articles/c++_xmake.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ background: cavern0.webp
88
published: false
99
---
1010

11-
{:refdef: class="work-in-progress"}
12-
Work in progress
13-
{: refdef}
11+
{% wip %}

_articles/css_flexbox.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ background: mountains0.jpg
88
published: false
99
---
1010

11-
{:refdef: class="work-in-progress"}
12-
Work in progress
13-
{: refdef}
11+
{% wip %}

_articles/css_grid.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ background: mountains0.jpg
88
published: false
99
---
1010

11-
{:refdef: class="work-in-progress"}
12-
Work in progress
13-
{: refdef}
11+
{% wip %}

_articles/css_responsive.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ background: mountains0.jpg
88
published: false
99
---
1010

11-
{:refdef: class="work-in-progress"}
12-
Work in progress
13-
{: refdef}
11+
{% wip %}

_articles/git_conflicts.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ background: mountains0.jpg
88
published: false
99
---
1010

11-
{:refdef: class="work-in-progress"}
12-
Work in progress
13-
{: refdef}
11+
{% wip %}

_articles/git_rebase_interactive.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ background: mountains0.jpg
88
published: false
99
---
1010

11-
{:refdef: class="work-in-progress"}
12-
Work in progress
13-
{: refdef}
11+
{% wip %}

_layouts/default.html

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,6 @@
77
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
88
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
99
<meta name="google-site-verification" content="nC62xmWcEPfHav4tLcQ6H-ahkag6BfxbtsfH_pRZVpo" />
10-
<script async src="https://www.googletagmanager.com/gtag/js?id=G-6689VSX7J9"></script>
11-
<script>
12-
window.dataLayer = window.dataLayer || [];
13-
function gtag(){dataLayer.push(arguments);}
14-
gtag('js', new Date());
15-
gtag('config', 'G-6689VSX7J9', {
16-
'anonymize_ip': true, // Anonymise les utilisateurs (On respecte le RGPD, permettant de ne pas avoir de bandeau d'acceptation des cookies)
17-
'allow_google_signals': true, // Désactive le croisement des données permettant à Google d'affiner le profil publicitaire de l'utilisateur
18-
'allow_ad_personalization_signals': false // Désactive la personnalisation des annonces publicitaires (de toute façon il n'y en a pas ici)
19-
});
20-
</script>
2110
</head>
2211
<body {% if page.background != "" %}style="--background-image: url('/assets/images/backgrounds/{{page.background}}');"{% endif %}>
2312
{{ content }}
@@ -31,5 +20,16 @@
3120
};
3221
anchors.add('.page > section h2, .page > section h3, .page > section h4, .page > section h5, .page > section h6');
3322
</script>
23+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-6689VSX7J9"></script>
24+
<script>
25+
window.dataLayer = window.dataLayer || [];
26+
function gtag(){dataLayer.push(arguments);}
27+
gtag('js', new Date());
28+
gtag('config', 'G-6689VSX7J9', {
29+
'anonymize_ip': true, // Anonymise les utilisateurs (On respecte le RGPD, permettant de ne pas avoir de bandeau d'acceptation des cookies)
30+
'allow_google_signals': true, // Désactive le croisement des données permettant à Google d'affiner le profil publicitaire de l'utilisateur
31+
'allow_ad_personalization_signals': false // Désactive la personnalisation des annonces publicitaires (de toute façon il n'y en a pas ici)
32+
});
33+
</script>
3434
</body>
3535
</html>

_plugins/line_highlighting.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module Jekyll
2+
module Tags
3+
class HighlightBlock
4+
def render_rouge(code)
5+
require "rouge"
6+
formatter = Rouge::Formatters::HTMLLineHighlighter.new(
7+
::Rouge::Formatters::HTML.new,
8+
highlight_lines: parse_highlighted_lines(@highlight_options[:highlight_lines])
9+
)
10+
lexer = ::Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
11+
formatter.format(lexer.lex(code))
12+
end
13+
14+
private
15+
16+
def parse_highlighted_lines(lines_string)
17+
return [] if lines_string.nil?
18+
19+
lines_string.map(&:to_i)
20+
end
21+
end
22+
end
23+
end

0 commit comments

Comments
 (0)