commonmeta-ruby 3.0.10 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +37 -36
  3. data/bin/commonmeta +1 -1
  4. data/commonmeta.gemspec +1 -1
  5. data/lib/commonmeta/cli.rb +7 -0
  6. data/lib/commonmeta/metadata_utils.rb +2 -0
  7. data/lib/commonmeta/readers/json_feed_reader.rb +90 -0
  8. data/lib/commonmeta/utils.rb +23 -0
  9. data/lib/commonmeta/version.rb +1 -1
  10. data/spec/author_utils_spec.rb +10 -0
  11. data/spec/cli_spec.rb +8 -0
  12. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/json_feed/blog_post.yml +360 -0
  13. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language.yml +360 -0
  14. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language_blog.yml +360 -0
  15. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/front-matter_blog.yml +1034 -0
  16. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream.yml +2438 -0
  17. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream_blog.yml +2438 -0
  18. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blogger_post.yml +94 -0
  19. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_doi.yml +117 -0
  20. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post.yml +87 -0
  21. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post.yml +163 -0
  22. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/blogger_post.yml +141 -0
  23. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/ghost_post_with_doi.yml +164 -0
  24. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/jekyll_post.yml +134 -0
  25. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/wordpress_post.yml +210 -0
  26. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/blogger_post.yml +94 -0
  27. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post.yml +117 -0
  28. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post_with_doi.yml +117 -0
  29. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/jekyll_post.yml +170 -0
  30. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/wordpress_post.yml +163 -0
  31. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/blogger_post.yml +141 -0
  32. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/ghost_post_with_doi.yml +164 -0
  33. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/jekyll_post.yml +134 -0
  34. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/wordpress_post.yml +210 -0
  35. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/license.yml +221 -0
  36. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/url.yml +221 -0
  37. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_feed_url/front-matter_blog.yml +221 -0
  38. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml +163 -0
  39. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_upstream_blog.yml +243 -0
  40. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_item_from_rogue_scholar_with_doi.yml +163 -0
  41. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_item_from_upstream_blog.yml +243 -0
  42. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_rogue_scholar_with_doi.yml +210 -0
  43. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_upstream_blog.yml +290 -0
  44. data/spec/readers/json_feed_reader_spec.rb +110 -0
  45. data/spec/utils_spec.rb +338 -314
  46. data/spec/writers/crossref_xml_writer_spec.rb +183 -137
  47. metadata +39 -5
@@ -0,0 +1,141 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rogue-scholar.org/api/posts/1jgo59el
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Connection:
11
+ - close
12
+ Host:
13
+ - rogue-scholar.org
14
+ User-Agent:
15
+ - http.rb/5.1.1
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Age:
22
+ - '0'
23
+ Cache-Control:
24
+ - public, max-age=0, must-revalidate
25
+ Content-Length:
26
+ - '5576'
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Sun, 04 Jun 2023 11:24:19 GMT
31
+ Etag:
32
+ - '"r6tc4lxjtm4ak"'
33
+ Server:
34
+ - Vercel
35
+ Strict-Transport-Security:
36
+ - max-age=63072000
37
+ X-Matched-Path:
38
+ - "/api/posts/[slug]"
39
+ X-Vercel-Cache:
40
+ - MISS
41
+ X-Vercel-Id:
42
+ - fra1::iad1::8p5l9-1685877859105-b60703704b92
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"id":"https://iphylo.blogspot.com/2023/05/ten-years-and-million-links.html","short_id":"1jgo59el","url":"https://iphylo.blogspot.com/2023/05/ten-years-and-million-links.html","title":"Ten
48
+ years and a million links","summary":"As trailed on a Twitter thread last
49
+ week I’ve been working on a manuscript describing the efforts to map taxonomic
50
+ names to their original descriptions in the taxonomic literature. Putting
51
+ together a...","date_published":"2023-05-31T17:26:00Z","date_modified":null,"authors":[{"url":null,"name":"Roderic
52
+ Page"}],"image":null,"content_html":"<p>As trailed on a Twitter thread last
53
+ week I’ve been working on a manuscript describing the efforts to map taxonomic
54
+ names to their original descriptions in the taxonomic literature.</p>\n<blockquote
55
+ class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Putting together a manuscript
56
+ on linking taxonomic names to the primary literature, basically “um, what,
57
+ exactly, have you been doing all these years?”. TL;DR Across fungi, plants,
58
+ and animals approx 1.3 million names have been linked to a persistent identifier
59
+ for a publication.</p>— Roderic Page (@rdmpage) <a href=\"https://twitter.com/rdmpage/status/1661714128413573120?ref_src=twsrc%5Etfw\">May
60
+ 25, 2023</a></blockquote> \n<p>The preprint is on bioRxiv <a href=\"https://doi.org/10.1101/2023.05.29.542697\">doi:10.1101/2023.05.29.542697</a></p>\n<blockquote>\n<p>A
61
+ major gap in the biodiversity knowledge graph is a connection between taxonomic
62
+ names and the taxonomic literature. While both names and publications often
63
+ have persistent identifiers (PIDs), such as Life Science Identifiers (LSIDs)
64
+ or Digital Object Identifiers (DOIs), LSIDs for names are rarely linked to
65
+ DOIs for publications. This article describes efforts to make those connections
66
+ across three large taxonomic databases: Index Fungorum, International Plant
67
+ Names Index (IPNI), and the Index of Organism Names (ION). Over a million
68
+ names have been matched to DOIs or other persistent identifiers for taxonomic
69
+ publications. This represents approximately 36% of names for which publication
70
+ data is available. The mappings between LSIDs and publication PIDs are made
71
+ available through ChecklistBank. Applications of this mapping are discussed,
72
+ including a web app to locate the citation of a taxonomic name, and a knowledge
73
+ graph that uses data on researcher’s ORCID ids to connect taxonomic names
74
+ and publications to authors of those names.</p>\n</blockquote>\n<p>Much of
75
+ the work has been linking taxa to names, which still has huge gaps. There
76
+ are also interesting differences in coverage between plants, animals, and
77
+ fungi (see preprint for details).</p>\n\n<div class=\"separator\" style=\"clear:
78
+ both;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdWsSQhqi1DErXMIHm28g37-fiALNIsI5eQZmvoX_Fe03ZSwtKHbYt-LCsCCAUop0AGcwy_w7NpIjylVH1hNrM9oW-6j9e6tHASha49TTqFvDg2_tEx3r74RRFsjUo4M_Qat8NmKaZSChOt2hI3LsMjTVLrEVirEckU-9Ei7ug-7OHQlR4LA/s2276/animals-coverage.png\"
79
+ style=\"display: block; padding: 1em 0; text-align: center; \"><img alt=\"\"
80
+ border=\"0\" width=\"320\" data-original-height=\"2276\" data-original-width=\"2276\"
81
+ src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdWsSQhqi1DErXMIHm28g37-fiALNIsI5eQZmvoX_Fe03ZSwtKHbYt-LCsCCAUop0AGcwy_w7NpIjylVH1hNrM9oW-6j9e6tHASha49TTqFvDg2_tEx3r74RRFsjUo4M_Qat8NmKaZSChOt2hI3LsMjTVLrEVirEckU-9Ei7ug-7OHQlR4LA/s320/animals-coverage.png\"/></a></div><div
82
+ class=\"separator\" style=\"clear: both;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdyxlVJ-oyMCNPmHtHWjSxdxMSJvgzdWRGRF6Ad4dk7ab7gGDpuKdKmS9XhROkopw361ylfsTd1ZkwkF6BN0JlWNnVLCKY1AfryCfWKHkgPQM7u-0SELW9j8RlQIflb6ibaV64gwW7oJrEvOGECvR51F8EW8cRg-1usW-GBM5ymObj7zlObQ/s2276/fungi-coverage.png\"
83
+ style=\"display: block; padding: 1em 0; text-align: center; \"><img alt=\"\"
84
+ border=\"0\" width=\"320\" data-original-height=\"2276\" data-original-width=\"2276\"
85
+ src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdyxlVJ-oyMCNPmHtHWjSxdxMSJvgzdWRGRF6Ad4dk7ab7gGDpuKdKmS9XhROkopw361ylfsTd1ZkwkF6BN0JlWNnVLCKY1AfryCfWKHkgPQM7u-0SELW9j8RlQIflb6ibaV64gwW7oJrEvOGECvR51F8EW8cRg-1usW-GBM5ymObj7zlObQ/s320/fungi-coverage.png\"/></a></div><div
86
+ class=\"separator\" style=\"clear: both;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0YBuvNSXWAJTfQ1jk4XSocMzCYHP7t6IPUqhjQ3mftgM_850igWaD2copgNH6Xk6T62xBU641wvwOvXgCCDY3m2xC_gaILXO9RGx8H3Gpy5OOncsLb9smpT2LIgtYOExVBVdDRWqA0AZ8-mQjWL7dL5TiG7MqVu8spT8ACoGOPR_T36hRA/s2276/plants-coverage.png\"
87
+ style=\"display: block; padding: 1em 0; text-align: center; \"><img alt=\"\"
88
+ border=\"0\" width=\"320\" data-original-height=\"2276\" data-original-width=\"2276\"
89
+ src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0YBuvNSXWAJTfQ1jk4XSocMzCYHP7t6IPUqhjQ3mftgM_850igWaD2copgNH6Xk6T62xBU641wvwOvXgCCDY3m2xC_gaILXO9RGx8H3Gpy5OOncsLb9smpT2LIgtYOExVBVdDRWqA0AZ8-mQjWL7dL5TiG7MqVu8spT8ACoGOPR_T36hRA/s320/plants-coverage.png\"/></a></div>\n\n\nThere
90
+ is also a simple app to demonstrate these links, see <a href=\"https://species-cite.herokuapp.com\">https://species-cite.herokuapp.com</a>.\n\n\n\n<blockquote>\n<p>Written
91
+ with <a href=\"https://stackedit.io/\">StackEdit</a>.</p>\n</blockquote>","tags":[],"language":"en","blog_id":"tyfqw20","blog":{"id":"tyfqw20","title":"iPhylo","language":"en","favicon":null,"feed_url":"https://iphylo.blogspot.com/feeds/posts/default?alt=rss","home_page_url":"https://iphylo.blogspot.com/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Natural
92
+ Sciences"}}'
93
+ recorded_at: Sun, 04 Jun 2023 11:24:19 GMT
94
+ - request:
95
+ method: get
96
+ uri: https://rogue-scholar.org/api/blogs/https://rogue-scholar.org/api/posts/1jgo59el
97
+ body:
98
+ encoding: UTF-8
99
+ string: ''
100
+ headers:
101
+ Connection:
102
+ - close
103
+ Host:
104
+ - rogue-scholar.org
105
+ User-Agent:
106
+ - http.rb/5.1.1
107
+ response:
108
+ status:
109
+ code: 308
110
+ message: Permanent Redirect
111
+ headers:
112
+ Cache-Control:
113
+ - public, max-age=0, must-revalidate
114
+ Content-Type:
115
+ - text/plain
116
+ Date:
117
+ - Sun, 04 Jun 2023 13:17:11 GMT
118
+ Location:
119
+ - "/api/blogs/https:/rogue-scholar.org/api/posts/1jgo59el"
120
+ Refresh:
121
+ - 0;url=/api/blogs/https:/rogue-scholar.org/api/posts/1jgo59el
122
+ Server:
123
+ - Vercel
124
+ Strict-Transport-Security:
125
+ - max-age=63072000
126
+ X-Vercel-Cache:
127
+ - MISS
128
+ X-Vercel-Id:
129
+ - fra1::rkkzk-1685884631381-9f6a9ad54465
130
+ Connection:
131
+ - close
132
+ Transfer-Encoding:
133
+ - chunked
134
+ body:
135
+ encoding: ASCII-8BIT
136
+ string: 'Redirecting to /api/blogs/https:/rogue-scholar.org/api/posts/1jgo59el
137
+ (308)
138
+
139
+ '
140
+ recorded_at: Sun, 04 Jun 2023 13:17:11 GMT
141
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,164 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rogue-scholar.org/api/posts/1jgo8yel
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Connection:
11
+ - close
12
+ Host:
13
+ - rogue-scholar.org
14
+ User-Agent:
15
+ - http.rb/5.1.1
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Age:
22
+ - '0'
23
+ Cache-Control:
24
+ - public, max-age=0, must-revalidate
25
+ Content-Length:
26
+ - '6894'
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Sun, 04 Jun 2023 11:24:21 GMT
31
+ Etag:
32
+ - '"r1h98s95tn5bh"'
33
+ Server:
34
+ - Vercel
35
+ Strict-Transport-Security:
36
+ - max-age=63072000
37
+ X-Matched-Path:
38
+ - "/api/posts/[slug]"
39
+ X-Vercel-Cache:
40
+ - MISS
41
+ X-Vercel-Id:
42
+ - fra1::iad1::bd5vk-1685877861203-5afd4143bb69
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"id":"https://doi.org/10.53731/4nwxn-frt36","short_id":"1jgo8yel","url":"https://blog.front-matter.io/posts/does-it-compose/","title":"Does
48
+ it compose?","summary":"One question I have increasingly asked myself in the
49
+ past few years. Meaning Can I run this open source software using Docker containers
50
+ and a Docker Compose file?As the Docker project turned ten this...","date_published":"2023-05-16T11:36:56Z","date_modified":"2023-05-16T11:36:56Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
51
+ Fenner"}],"image":"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
52
+ <p><img src=\"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>One
53
+ question I have increasingly asked myself in the past few years. Meaning </p><blockquote>Can
54
+ I run this open source software  using Docker containers and a Docker Compose
55
+ file?</blockquote><p>As the Docker project <a href=\"https://snyk.io/blog/the-docker-project-turns-10/\">turned
56
+ ten this spring</a>, it has become standard practice to distribute open source
57
+ software via Docker images and to provide a <a href=\"https://docs.docker.com/compose/\">Docker
58
+ Compose</a> file to run the software together with other dependencies. The
59
+ <a href=\"https://github.com/docker/awesome-compose\">Awesome Compose</a>
60
+ project has collected many examples, and all you need is a <code>docker-compose.yml</code>file
61
+ and a recent installation of Docker, e.g. <a href=\"https://www.docker.com/products/docker-desktop/\">Docker
62
+ Desktop</a>. Be aware that Docker Compose has evolved over the years. It started
63
+ out as a dedicated Python application but was later integrated into the Docker
64
+ application (written in Go) as Compose V2.</p><p>Docker and Docker Compose
65
+ allow you to run pretty complex applications without first addressing a long
66
+ list of requirements (which might conflict with other software you have installed),
67
+ or needing a long and complex build step where many things can go wrong. For
68
+ example a self-hosted instance of Supabase (a hosted Postgres database with
69
+ additional features) that I installed last week following <a href=\"https://supabase.com/docs/guides/self-hosting/docker\">these
70
+ instructions</a>.</p><p>An important open source project that I am involved
71
+ in is <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a>, the turn-key
72
+ research data management repository. InvenioRDM started in 2019, with a first
73
+ production-suitable version in August 2021, and the <a href=\"https://inveniosoftware.org/products/rdm/#status\">next
74
+ major goal </a>is to have the large and popular <a href=\"https://zenodo.org/\">Zenodo</a>
75
+ repository running on top of InvenioRDM. Zenodo <a href=\"https://blog.zenodo.org/2023/05/08/2023-05-08-10years/\">turned
76
+ ten last week</a>, a few weeks after Docker. Interestingly, my personal tenth
77
+ anniversary was last year in May as I became a full-time software developer
78
+ and left academic medicine as a medical doctor treating cancer patients in
79
+ <a href=\"https://doi.org/10.53731/r294649-6f79289-8cw2j\">May 2012</a>.</p><p>Unfortunately,
80
+ InvenioRDM \"doesn''t compose\" yet. It is very close, but there are no ready-made
81
+ Docker images to download, and the <a href=\"https://inveniordm.docs.cern.ch/install/\">installation
82
+ instructions</a> start with installing a Python command-line tool (invenio-cli).
83
+ So if you have 1-2 hours to play with InvenioRDM and get a first impression,
84
+ there is no official solution from the InvenioRDM project yet. For this reason,
85
+ I started the <a href=\"https://github.com/front-matter/docker-invenio-rdm\">docker-invenio-rdm</a>
86
+ repository on Github. It contains a Docker Compose file that uses pre-built
87
+ Docker images, and using that file with a <code>docker compose up</code>command
88
+ on your local computer should give you a running InvenioRDM within 15 minutes:</p><figure
89
+ class=\"kg-card kg-image-card\"><img src=\"https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png\"
90
+ class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1210\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
91
+ 600w, https://blog.front-matter.io/content/images/size/w1000/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
92
+ 1000w, https://blog.front-matter.io/content/images/size/w1600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
93
+ 1600w, https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
94
+ 2193w\" sizes=\"(min-width: 720px) 720px\"></figure><p>I started this recently
95
+ and obviously want to move forward in two directions:</p><ul><li>fine-tune
96
+ the initial configuration to provide a great initial experience with InvenioRDM,
97
+ e.g. making it easy to <a href=\"https://inveniordm.docs.cern.ch/develop/topics/theming/\">theme</a>
98
+ the InvenioRDM instance</li><li>make this an official part of the InvenioRDM
99
+ project, extending the <a href=\"https://github.com/inveniosoftware/docker-invenio\">docker-invenio</a>
100
+ GitHub repository that provides Docker base images for InvenioRDM and other
101
+ projects using the Invenio software.</li></ul><p>But of course, Docker Compose
102
+ is not the answer to all questions regarding running Docker-based infrastructure.
103
+ For production environments, most people shy away from using Docker Compose.
104
+ The reasons for that and the alternatives will be the topic of a future blog
105
+ post (spoiler: there is exciting news).</p><p>Docker Compose also needs more
106
+ work to be set up correctly for development environments. It is a common practice
107
+ and a workflow I used while working at DataCite (where we launched Docker-based
108
+ infrastructure in 2016), but for now, the easiest way to set up InvenioRDM
109
+ development environments is using the <a href=\"https://inveniordm.docs.cern.ch/install/\">invenio-cli
110
+ tool with a local development environment</a>.</p><p>Please reach out to me
111
+ with feedback on running Docker Compose for InvenioRDM (use the <a href=\"https://github.com/front-matter/docker-invenio-rdm/discussions\">discussions</a>
112
+ feature in the GitHub repo), or if you have questions about running InvenioRDM
113
+ in production.</p> ","tags":["News"],"language":"en","blog_id":"f0m0e38","blog":{"id":"f0m0e38","title":"Front
114
+ Matter","language":"en","favicon":"https://blog.front-matter.io/favicon.png","feed_url":"https://blog.front-matter.io/atom/","home_page_url":"https://blog.front-matter.io/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
115
+ and Technology"}}'
116
+ recorded_at: Sun, 04 Jun 2023 11:24:21 GMT
117
+ - request:
118
+ method: get
119
+ uri: https://rogue-scholar.org/api/blogs/https://rogue-scholar.org/api/posts/1jgo8yel
120
+ body:
121
+ encoding: UTF-8
122
+ string: ''
123
+ headers:
124
+ Connection:
125
+ - close
126
+ Host:
127
+ - rogue-scholar.org
128
+ User-Agent:
129
+ - http.rb/5.1.1
130
+ response:
131
+ status:
132
+ code: 308
133
+ message: Permanent Redirect
134
+ headers:
135
+ Cache-Control:
136
+ - public, max-age=0, must-revalidate
137
+ Content-Type:
138
+ - text/plain
139
+ Date:
140
+ - Sun, 04 Jun 2023 13:17:11 GMT
141
+ Location:
142
+ - "/api/blogs/https:/rogue-scholar.org/api/posts/1jgo8yel"
143
+ Refresh:
144
+ - 0;url=/api/blogs/https:/rogue-scholar.org/api/posts/1jgo8yel
145
+ Server:
146
+ - Vercel
147
+ Strict-Transport-Security:
148
+ - max-age=63072000
149
+ X-Vercel-Cache:
150
+ - MISS
151
+ X-Vercel-Id:
152
+ - fra1::n9c8v-1685884631577-4ed855e8d109
153
+ Connection:
154
+ - close
155
+ Transfer-Encoding:
156
+ - chunked
157
+ body:
158
+ encoding: ASCII-8BIT
159
+ string: 'Redirecting to /api/blogs/https:/rogue-scholar.org/api/posts/1jgo8yel
160
+ (308)
161
+
162
+ '
163
+ recorded_at: Sun, 04 Jun 2023 13:17:11 GMT
164
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,134 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rogue-scholar.org/api/posts/1jdkwod5
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Connection:
11
+ - close
12
+ Host:
13
+ - rogue-scholar.org
14
+ User-Agent:
15
+ - http.rb/5.1.1
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Age:
22
+ - '0'
23
+ Cache-Control:
24
+ - public, max-age=0, must-revalidate
25
+ Content-Length:
26
+ - '3559'
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Sun, 04 Jun 2023 11:24:20 GMT
31
+ Etag:
32
+ - '"15ahqsuw1ek2q9"'
33
+ Server:
34
+ - Vercel
35
+ Strict-Transport-Security:
36
+ - max-age=63072000
37
+ X-Matched-Path:
38
+ - "/api/posts/[slug]"
39
+ X-Vercel-Cache:
40
+ - MISS
41
+ X-Vercel-Id:
42
+ - fra1::iad1::kp8s8-1685877860461-9c83d98ce0ae
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"id":"https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2/","short_id":"1jdkwod5","url":"https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2/","title":"Seeking
48
+ Public Comment on CSL 1.0.2 Release","summary":"Over the past few months,
49
+ Citation Style Language developers have worked to address a backlog of feature
50
+ requests. This work will be reflected in two upcoming releases. The first
51
+ of these, 1.0.2, is slated...","date_published":"2020-07-11T00:00:00Z","date_modified":"2020-07-11T00:00:00Z","authors":[{"url":null,"name":"Sebastian
52
+ Karcher"}],"image":null,"content_html":"<p>Over the past few months, Citation
53
+ Style Language developers have worked to address a backlog of feature requests.
54
+ This work will be reflected in two upcoming releases. The first of these,
55
+ 1.0.2, is slated for release shortly. Its focus is on easy to implement, non-controversial
56
+ additions, principally new item types, fields, and terms. We’re seeking public
57
+ comment on the planned released from now until <strong>July 26, 2020, 12pm
58
+ EDT</strong>.</p>\n\n<p>A non-technical summary of the release can be found
59
+ in a <a href=\"https://docs.google.com/document/d/1wY1cOOamDYYh8VNW7h_uleqieBDGOa_LYsRiVdQy1RI/edit#heading=h.wsywjzy5t4j6\">google
60
+ doc here</a>. For more technical details, you can follow the development on
61
+ the <a href=\"https://github.com/orgs/citation-style-language/projects/3\">github
62
+ project board</a>. We welcome feedback directly on the google doc, in specific
63
+ github issues, or on our <a href=\"https://discourse.citationstyles.org/\">forums</a>.</p>\n\n<p>Tremendous
64
+ thanks to Bruce D’Arcus, Denis Maier, and Brenton Wiernik, who did the bulk
65
+ of the work of organizing proposals accumulated over the last 8 years and
66
+ preparing the release.</p>\n\n<h2 id=\"previewing-csl-11\">Previewing CSL
67
+ 1.1</h2>\n<p>CSL 1.1, slated for release later this year, will include more
68
+ significant extensions of CSL functionality. While we’ll have a separate public
69
+ comment period for this release, we’re happy for input on the ongoing discussions
70
+ on github and the forums. In particular, we’re eager to hear from projects
71
+ implementing CSL styles, both in a citeproc and in user-facing applications
72
+ such as reference managers or citation formatters.</p>\n\n<p>This release
73
+ will primarily add the following new features:</p>\n<ul>\n <li>Full support
74
+ for narrative citation styles (“Like Doe (2018)”).</li>\n <li>Ability to
75
+ specify more complex conditional logic.</li>\n <li>Ability to independently
76
+ format subtitles and main titles.</li>\n <li>A new “related” attribute to
77
+ express related reviewed and original items (still in discussion).</li>\n <li>Improvements
78
+ to the CSL input format(s):\n <ul>\n <li>Adopting the new EDTF ISO
79
+ standard, which offers full support for date ranges, seasons, uncertain and
80
+ approximate qualifiers, and decades and centuries.</li>\n <li>A new “custom”
81
+ property to add extension metadata.</li>\n <li>New related modelling
82
+ to match the new style attribute (as above, still in discussion).</li>\n <li>An
83
+ official YAML representation, which can be validated with the same JSON schemas.</li>\n </ul>\n </li>\n</ul>","tags":[],"language":"en","blog_id":"prmb582","blog":{"id":"prmb582","title":"Citation
84
+ Style Language","language":"en","favicon":null,"feed_url":"https://citationstyles.org/feed.xml","home_page_url":"https://citationstyles.org/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
85
+ and Technology"}}'
86
+ recorded_at: Sun, 04 Jun 2023 11:24:20 GMT
87
+ - request:
88
+ method: get
89
+ uri: https://rogue-scholar.org/api/blogs/https://rogue-scholar.org/api/posts/1jdkwod5
90
+ body:
91
+ encoding: UTF-8
92
+ string: ''
93
+ headers:
94
+ Connection:
95
+ - close
96
+ Host:
97
+ - rogue-scholar.org
98
+ User-Agent:
99
+ - http.rb/5.1.1
100
+ response:
101
+ status:
102
+ code: 308
103
+ message: Permanent Redirect
104
+ headers:
105
+ Cache-Control:
106
+ - public, max-age=0, must-revalidate
107
+ Content-Type:
108
+ - text/plain
109
+ Date:
110
+ - Sun, 04 Jun 2023 13:17:11 GMT
111
+ Location:
112
+ - "/api/blogs/https:/rogue-scholar.org/api/posts/1jdkwod5"
113
+ Refresh:
114
+ - 0;url=/api/blogs/https:/rogue-scholar.org/api/posts/1jdkwod5
115
+ Server:
116
+ - Vercel
117
+ Strict-Transport-Security:
118
+ - max-age=63072000
119
+ X-Vercel-Cache:
120
+ - MISS
121
+ X-Vercel-Id:
122
+ - fra1::t5nh7-1685884631747-c6100cb2ebac
123
+ Connection:
124
+ - close
125
+ Transfer-Encoding:
126
+ - chunked
127
+ body:
128
+ encoding: ASCII-8BIT
129
+ string: 'Redirecting to /api/blogs/https:/rogue-scholar.org/api/posts/1jdkwod5
130
+ (308)
131
+
132
+ '
133
+ recorded_at: Sun, 04 Jun 2023 13:17:11 GMT
134
+ recorded_with: VCR 6.1.0