aboutsummaryrefslogtreecommitdiff
path: root/po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-01-16 16:52:43 -0300
committerEuAndreh <eu@euandre.org>2022-01-16 16:52:43 -0300
commit1fc994f588dd9ef2ef8395e57e2492a6b4d730eb (patch)
treeab518e8c2c229ec60ba921adbf9897b25520b99d /po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po
parent.ignore: Remove unused file (diff)
downloadeuandre.org-1fc994f588dd9ef2ef8395e57e2492a6b4d730eb.tar.gz
euandre.org-1fc994f588dd9ef2ef8395e57e2492a6b4d730eb.tar.xz
git mv locale/ po/
Diffstat (limited to 'po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po')
-rw-r--r--po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po187
1 files changed, 187 insertions, 0 deletions
diff --git a/po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po b/po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po
new file mode 100644
index 0000000..a11e17c
--- /dev/null
+++ b/po/fr/LC_MESSAGES/_tils/2020-08-13-anchor-headers-and-code-lines-in-jekyll.po
@@ -0,0 +1,187 @@
+#
+msgid ""
+msgstr ""
+
+msgid ""
+"title: Anchor headers and code lines in Jekyll\n"
+"date: 2020-08-13\n"
+"layout: post\n"
+"lang: en\n"
+"ref: anchor-headers-and-code-lines-in-jekyll"
+msgstr ""
+
+msgid ""
+"The default Jekyll toolbox ([Jekyll](https://jekyllrb.com/), "
+"[kramdown](https://kramdown.gettalong.org/) and "
+"[rouge](http://rouge.jneen.net/)) doesn't provide with a configuration "
+"option to add anchors to headers and code blocks."
+msgstr ""
+
+msgid ""
+"The best way I found of doing this is by creating a simple Jekyll plugin, "
+"more specifically, a [Jekyll "
+"hook](https://jekyllrb.com/docs/plugins/hooks/). These allow you to jump in "
+"to the Jekyll build and add a processing stage before of after Jekyll "
+"performs something."
+msgstr ""
+
+msgid ""
+"All you have to do is add the code to `_plugins/my-jekyll-plugin-code.rb`, "
+"and Jekyll knows to pick it up and call your code on the appropriate time."
+msgstr ""
+
+msgid "Anchor on headers"
+msgstr ""
+
+msgid ""
+"Since I wanted to add anchors to headers in all documents, this Jekyll hook "
+"works on `:documents` after they have been transformed into HTML, the "
+"`:post_render` phase:"
+msgstr ""
+
+msgid ""
+"I've derived my implementations from two \"official\"[^official] hooks, "
+"[jemoji](https://github.com/jekyll/jemoji) and [jekyll-"
+"mentions](https://github.com/jekyll/jekyll-mentions)."
+msgstr ""
+
+msgid ""
+"[^official]: I don't know how official they are, I just assumed it because "
+"they live in the same organization inside GitHub that Jekyll does."
+msgstr ""
+
+msgid ""
+"All I did was to wrap the header tag inside an `<a>`, and set the `href` of "
+"that `<a>` to the existing id of the header. Before the hook the HTML looks "
+"like:"
+msgstr ""
+
+msgid "And after the hook should turn that into:"
+msgstr ""
+
+msgid ""
+"The used regexp tries to match only h1-h6 tags, and keep the rest of the "
+"HTML attributes untouched, since this isn't a general HTML parser, but the "
+"generated HTML is somewhat under your control. Use at your own risk because "
+"[you shouldn't parse HTML with "
+"regexps](https://stackoverflow.com/questions/1732348/regex-match-open-tags-"
+"except-xhtml-self-contained-tags/1732454#1732454). Also I used this strategy"
+" in my environment, where no other plugins are installed. I haven't "
+"considered how this approach may conflict with other Jekyll plugins."
+msgstr ""
+
+msgid ""
+"In the new anchor tag you can add your custom CSS class to style it as you "
+"wish."
+msgstr ""
+
+msgid "Anchor on code blocks"
+msgstr ""
+
+msgid ""
+"Adding anchors to code blocks needs a little bit of extra work, because line"
+" numbers themselves don't have preexisting ids, so we need to generate them "
+"without duplications between multiple code blocks in the same page."
+msgstr ""
+
+msgid ""
+"Similarly, this Jekyll hook also works on `:documents` in the `:post_render`"
+" phase:"
+msgstr ""
+
+msgid ""
+"This solution assumes the default Jekyll toolbox with code line numbers "
+"turned on in `_config.yml`:"
+msgstr ""
+
+msgid ""
+"The anchors go from B1-L1 to BN-LN, using the `code_block_counter` to track "
+"which code block we're in and don't duplicate anchor ids. Before the hook "
+"the HTML looks like:"
+msgstr ""
+
+msgid "Happy writing :)"
+msgstr ""
+
+msgid ""
+"Jekyll::Hooks.register :documents, :post_render do |doc|\n"
+" if doc.output_ext == \".html\"\n"
+" doc.output =\n"
+" doc.output.gsub(\n"
+" /<h([1-6])(.*?)id=\"([\\w-]+)\"(.*?)>(.*?)<\\/h[1-6]>/,\n"
+" '<a href=\"#\\3\"><h\\1\\2id=\"\\3\"\\4>\\5</h\\1></a>'\n"
+" )\n"
+" end\n"
+"end\n"
+msgstr ""
+
+msgid ""
+"...some unmodified text...\n"
+"<h2 id=\"my-header\">\n"
+" My header\n"
+"</h2>\n"
+"...more unmodified text...\n"
+msgstr ""
+
+msgid ""
+"...some unmodified text...\n"
+"<a href=\"#my-header\">\n"
+" <h2 id=\"my-header\">\n"
+" My header\n"
+" </h2>\n"
+"</a>\n"
+"...more unmodified text...\n"
+msgstr ""
+
+msgid ""
+"PREFIX = '<pre class=\"lineno\">'\n"
+"POSTFIX = '</pre>'\n"
+"Jekyll::Hooks.register :documents, :post_render do |doc|\n"
+" if doc.output_ext == \".html\"\n"
+" code_block_counter = 1\n"
+" doc.output = doc.output.gsub(/<pre class=\"lineno\">[\\n0-9]+<\\/pre>/) do |match|\n"
+" line_numbers = match\n"
+" .gsub(/<pre class=\"lineno\">([\\n0-9]+)<\\/pre>/, '\\1')\n"
+" .split(\"\\n\")\n"
+"\n"
+" anchored_line_numbers_array = line_numbers.map do |n|\n"
+" id = \"B#{code_block_counter}-L#{n}\"\n"
+" \"<a id=\\\"#{id}\\\" href=\\\"##{id}\\\">#{n}</a>\"\n"
+" end\n"
+" code_block_counter += 1\n"
+"\n"
+" PREFIX + anchored_line_numbers_array.join(\"\\n\") + POSTFIX\n"
+" end\n"
+" end\n"
+"end\n"
+msgstr ""
+
+msgid ""
+"kramdown:\n"
+" syntax_highlighter_opts:\n"
+" span:\n"
+" line_numbers: false\n"
+" block:\n"
+" line_numbers: true\n"
+msgstr ""
+
+msgid ""
+"...some unmodified text...\n"
+"<pre class=\"lineno\">1\n"
+"2\n"
+"3\n"
+"4\n"
+"5\n"
+"</pre>\n"
+"...more unmodified text...\n"
+msgstr ""
+
+msgid ""
+"...some unmodified text...\n"
+"<pre class=\"lineno\"><a id=\"B1-L1\" href=\"#B1-L1\">1</a>\n"
+"<a id=\"B1-L2\" href=\"#B1-L2\">2</a>\n"
+"<a id=\"B1-L3\" href=\"#B1-L3\">3</a>\n"
+"<a id=\"B1-L4\" href=\"#B1-L4\">4</a>\n"
+"<a id=\"B1-L5\" href=\"#B1-L5\">5</a></pre>\n"
+"...more unmodified text...\n"
+msgstr ""