annotate doc/format_config.awk @ 8036:8b5f8b950f58

docs: add section anchors to config.ini in references.txt; change format Added section anchors for each section of config.ini in the reference.html file. This makes it easier to link to the right section of the config file when discussing config.ini settings. Getting this to work using the initial sed implementation was going to be a nightmare, so rewrote it in awk. The pre-section comments are now separated by a blank line from the section marker. Also rst directives no longer have blank lines between them.
author John Rouillard <rouilj@ieee.org>
date Mon, 17 Jun 2024 22:58:18 -0400
parents
children c3bf229d3d4b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8036
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
1 #! /bin/awk
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
2
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
3 # delete first 8 lines
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
4 NR < 9 {next}
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
5
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
6 # When we see a section [label]:
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
7 # emit section index marker,
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
8 # emit section anchor
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
9 # set up for code formating
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
10 # emit any comments/blank line that are accumulated before the
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
11 # section marker
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
12 # print the indented section marker
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
13 #
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
14 # zero the accumulator and the variable that prevents large blocks
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
15 # of empty lines.
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
16 /^\[([a-z]*)\]/ { match($0, /^\[([a-z]*)\].*/, section_match);
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
17 section = section_match[1];
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
18 print("\n\n.. index:: config.ini; sections " section);
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
19 print(".. _`config-ini-section-" section "`:");
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
20 print(".. code:: ini\n");
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
21 if (accumulate) {
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
22 print(" " accumulate "\n");
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
23 }
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
24 print(" " $0);
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
25 accumulate = "";
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
26 prev_line_is_blank = 0;
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
27 }
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
28
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
29 # if the line is a setting line (even if commented out)
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
30 # print the accumulated comments/blank lines and the setting line
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
31 # zero the accumulator and the variable that prevents blocks of blank lines
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
32 # get the next input line
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
33 /^#?[a-z0-9_-]* =/ { print accumulate "\n " $0;
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
34 accumulate = "";
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
35 prev_line_is_blank = 0;
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
36 next;
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
37 }
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
38
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
39 # accumulate comment lines and indent them
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
40 /^#/ { accumulate = accumulate "\n " $0; prev_line_is_blank = 0;}
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
41
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
42 # accumulate a blank line only if the previous line was not blank.
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
43 /^$/ { if (! prev_line_is_blank) {accumulate = accumulate $0};
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
44 prev_line_is_blank = 1;
8b5f8b950f58 docs: add section anchors to config.ini in references.txt; change format
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
45 }

Roundup Issue Tracker: http://roundup-tracker.org/