Index of /Tools/CSS/biblio

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[TXT]README2019-02-11 15:18 1.9K 
[   ]biblio.ref2024-03-19 15:53 334K 
[   ]biblio.xml2024-03-20 05:35 524K 

biblio.ref

    A bibliography database in Refer format, previously (around 2013)
    used by the module postprocessor for CSS and other specifications;
    and by bikeshed, the similar pre-processor in Python. Now (2019)
    probably not used by anybody anymore.

biblio.xml

    Derived from biblio.ref, but in an ad-hoc XML-based
    format. Currently (Oct 2013) generated daily with an AWK script
    such as the one below.

These files were previously in
https://www.w3.org/Style/Group/css3-src/ but some people wanted to
access them without need for a password.


Feb 2019, Bert Bos <bert@w3.org>



Sample AWK script:


BEGIN		{
  alias["#"] = "comment";
  alias["A"] = "editor";
  alias["B"] = "book";
  alias["C"] = "place";
  alias["D"] = "date";
  alias["I"] = "publisher";
  alias["J"] = "journal";
  alias["K"] = "keywords";
  alias["L"] = "label";
  alias["N"] = "journal-issue";
  alias["O"] = "other";
  alias["P"] = "pages";
  alias["Q"] = "organization";
  alias["R"] = "number";
  alias["S"] = "series";
  alias["T"] = "title";
  alias["U"] = "url";
  alias["V"] = "volume";
  print "<refs>";
}

/^%U/		{url = $2}
/^%/		{lines[++n] = $0}
/^#/		{}
/^[ 	]*$/	{if (url) print_entry(url, n, lines); n = 0; url = ""}
END		{if (url) print_entry(url, n, lines); print "</refs>"}


# print_entry -- print one entry
function print_entry(url, n, lines,    i, tag)
{
  print " <entry for=\"" escape(url) "\">";
  for (i = 1; i <= n; i++) {
    tag = alias[substr(lines[i], 2, 1)];
    if (!tag) {
      # print "Unrecognized tag: " substr(lines[i], 1, 2) > "/dev/stderr";
      print "Unrecognized tag: \"" lines[i] "\"" > "/dev/stderr";
    } else if (tag != "url") {
      print "  <" tag ">" escape(substr(lines[i], 4)) "</" tag ">";
    }
  }
  print " </entry>";
}


# escape -- escape XML delimiters
function escape(s)
{
  gsub(/&/, "\\&amp;", s);
  gsub(/</, "\\&lt;", s);
  gsub(/>/, "\\&gt;", s);
  gsub(/"/, "\\&quot;", s);
  return s;
}