diff options
author | Karl Berry <karl@freefriends.org> | 2021-06-26 20:36:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-06-26 20:36:50 +0000 |
commit | 68fdb8a3001008c2e51dd154f92e0964935e77b3 (patch) | |
tree | 035848061b87e85a41c28716862ccca6ad8b0ce0 /Build/source | |
parent | ad598f4c314e9692378b6534d4f73e72e23c6cf5 (diff) |
ctanbib (26jun21)
git-svn-id: svn://tug.org/texlive/trunk@59718 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
3 files changed, 71 insertions, 59 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/ctanbib/ctanbib b/Build/source/texk/texlive/linked_scripts/ctanbib/ctanbib index a16976acdc4..f54e1691ca2 100755 --- a/Build/source/texk/texlive/linked_scripts/ctanbib/ctanbib +++ b/Build/source/texk/texlive/linked_scripts/ctanbib/ctanbib @@ -1,7 +1,7 @@ #!/usr/bin/env texlua kpse.set_program_name("luatex") -- ctanbib -- export ctan entries to bib format --- Copyright: Michal Hoftich <michal.h21@gmail.com> (2014-2018) +-- Copyright: Michal Hoftich <michal.h21@gmail.com> (2014-2021) -- -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -15,40 +15,48 @@ kpse.set_program_name("luatex") -- -- The Current Maintainer of this work is Michal Hoftich +local lapp = require "lapp-mk4" + local bibtype = "manual" local pkgurl = false -if #arg < 1 or arg[1]=="--help" or arg[1]=="-h" then - print([[ctanbib - convert ctan package information to bibtex format +local msg = [[ctanbib - convert ctan package information to bibtex format Usage: -ctanbib [options] <package name> +ctanbib [options] name1 name2 ... Available options: - -c,--ctan Use @ctan type instead of @manual and long url - -C,--CTAN Use @ctan type and short ... /pkg/url + -c,--ctan Use CTAN URL instead of the package homepage + -e,--entrytype (default manual) Change entry type -h,--help Print this message -v,--version Print version info - ]]) + ]] +local args = lapp(msg) +if args.help then + print(msg) os.exit(0) -elseif arg[1]=="--version" or arg[1]=="-v" then - print "ctanbib version 0.1e" +elseif args.version then + print "ctanbib version 0.2" os.exit(0) -elseif arg[1]=="--ctan" or arg[1]=="-c" then - table.remove(arg, 1) - bibtype = "ctan" -elseif arg[1]=="--CTAN" or arg[1]=="-C" then - table.remove(arg, 1) - bibtype = "ctan" +elseif args.ctan then pkgurl = true end -local pkgname = arg[1] +-- manual is set by default in --entrytype, we don't want it to override the --ctan option +if args.entrytype~="manual" then + bibtype = args.entrytype +end + + + + +local pkgname = args[1] if not pkgname then print "[ctanbib] Error: missing package name" + print(msg) os.exit(1) end -local url = "https://ctan.org/xml/2.0/pkg/" .. pkgname .. "?author-name=true" local authors_url = "https://ctan.org/xml/2.0/authors" +local license_url = "http://www.ctan.org/xml/2.0/licenses" -- change that for different title scheme local titleformat = "The %s package" @@ -61,7 +69,7 @@ author = {$author}, url = {$url}, urldate = {$urldate}, date = {$date}, -version = {$version} +version = {$version}, } ]] @@ -77,7 +85,7 @@ local load_xml = function(url) if string.len(info) == 0 then return false end - return dom.parse(info) + return dom.parse(info ), info end local bibtex_escape = function(a) @@ -149,8 +157,13 @@ local get_title = function(record) return string.format(titleformat, bibtex_escape(title)) end +local function verify_record(record) + -- verify that we found a package + if not record then return false end + return #record:query_selector("name") > 0 +end -local get_url = function(record) +local get_url = function(record,pkgname) local home = record:query_selector("home")[1] if home then return home:get_attribute("href") end return "https://ctan.org/pkg/"..pkgname @@ -169,12 +182,8 @@ local get_version = function(record) end end -local ctan_url = function(record) - local ctan = record:query_selector("ctan")[1] - -- some package don't contain the CTAN path - if not ctan then return get_url(record) end - local path = ctan:get_attribute("path") - return path +local ctan_url = function(record, pkgname) + return "https://ctan.org/pkg/"..pkgname end @@ -184,32 +193,35 @@ local compile = function(template, records) end) end -local record = load_xml(url) +for _, pkgname in ipairs(args) do + local url = "https://ctan.org/xml/2.0/pkg/" .. pkgname .. "?author-name=true" + local record, info = load_xml(url) -if not record then - print("Cannot find entry for package "..pkgname) - os.exit(1) -end + if not verify_record(record) then + print("% Cannot find entry for package "..pkgname) + break + end --- root element is also saved, so we use this trick --- local record = entry.entry + -- root element is also saved, so we use this trick + -- local record = entry.entry -local e = {} + local e = {} -e.author = get_authors(record:query_selector("authorref")) -e.package = pkgname -e.title = get_title(record) -e.subtitle = get_caption(record) -e.url = get_url(record) --- use the CTAN path as url for the CTAN type -if (bibtype == "ctan") and not pkgurl then - e.url = ctan_url(record) -end -e.version, e.date = get_version(record) -e.urldate = os.date("%Y-%m-%d") + e.author = get_authors(record:query_selector("authorref")) + e.package = pkgname + e.title = get_title(record) + e.subtitle = get_caption(record) + e.url = get_url(record, pkgname) + -- use the CTAN path as url for the CTAN type + if pkgurl then + e.url = ctan_url(record, pkgname) + end + e.version, e.date = get_version(record) + e.urldate = os.date("%Y-%m-%d") -local result = compile(bibtexformat, e) --- update the bibliography type -result = result:gsub("^@manual", "@" .. bibtype) + local result = compile(bibtexformat, e) + -- update the bibliography type + result = result:gsub("^@manual", "@" .. bibtype) -print(result) + print(result) +end diff --git a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl index eee71cf2bba..bb385d1d1a4 100755 --- a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl +++ b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl @@ -1,12 +1,12 @@ #!/usr/bin/env perl # kanji-config-updmap: setup Japanese font embedding -# Version 20201227.0 +# Version 20210625.0 # # formerly known as updmap-setup-kanji # # Copyright 2004-2006 by KOBAYASHI R. Taizo for the shell version (updmap-otf) -# Copyright 2011-2020 by PREINING Norbert -# Copyright 2016-2020 by Japanese TeX Development Community +# Copyright 2011-2021 by PREINING Norbert +# Copyright 2016-2021 by Japanese TeX Development Community # # This file is licensed under GPL version 3 or any later version. # For copyright statements see end of file. @@ -22,7 +22,7 @@ use Getopt::Long qw(:config no_autoabbrev ignore_case_always); use strict; my $prg = "kanji-config-updmap"; -my $version = '20201227.0'; +my $version = '20210625.0'; my $updmap_real = "updmap"; my $updmap = $updmap_real; @@ -149,10 +149,10 @@ sub macosx_new { $macos_ver_major =~ s/^(\d+)\.(\d+).*/$1/; my $macos_ver_minor = $macos_ver; $macos_ver_minor =~ s/^(\d+)\.(\d+).*/$2/; - if ($macos_ver_major==10) { - if ($macos_ver_minor>=11) { - return 1; - } + if ($macos_ver_major==10 && $macos_ver_minor>=11) { + return 1; # macOS 10.11 (El Capitan) or later + } elsif ($macos_ver_major>=11) { + return 1; # macOS 11.0 (Big Sur) or later } } return 0; diff --git a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl index bfad277bc51..87775b6aba1 100755 --- a/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl +++ b/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl @@ -2,7 +2,7 @@ # # kanji-fontmap-creator # (c) 2012-2014 Norbert Preining -# Version: 20201227.0 +# Version: 20210625.0 # Licenced under the GPLv2 or any higher version # # gui to create map files for (kanji-config-)updmap @@ -41,7 +41,7 @@ my $opt_help = 0; my $opt_version = 0; my $prg = "kanji-fontmap-creator"; -my $version = "20201227.0"; +my $version = "20210625.0"; # # global vars configuring operation |