question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Create a MakeCSL tool

See original GitHub issue

This is still needed; a 21st century analog to makebst.

The idea is to use smart machine-learning-based reference parsing libraries like anystyle to feed basic metadata about the needed output style, including example formatted citations and references, and the tool would spit out a dependent or independent style.

Should be much easier for users, and more effective, than a visual editor, particularly given the massive corpus of styles and included macros this project now has.

If anyone is interested in tackling this, please see the below linked issue, where the author of anystyle and I bat around what I think are some promising ideas on implementation details:

https://github.com/inukshuk/anystyle/issues/146

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:7 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
customcommandercommented, Sep 9, 2021

Have you considered Blockly?

You can use it to build a Scratch-like visual editor and let people build CSL styles by putting blocks together. The actual CSL style can be generated in real-time on the side.

0reactions
cormacrelfcommented, Sep 9, 2021

@customcommander that’s basically how I do disambiguation in citeproc-rs, except it’s stamped with the actual values of each bibliography entry to match rendered cites against. For example, the type of the entry is known so you can throw out large swathes of style code when you stamp, and eg where the title is rendered, it is the actual title. You can reuse that code with less information discarded to produce a grammar of the style in general. It already handles things like conditionals activated by disambiguation, all possible name expansions, etc., and does a minimisation step.

Even better, the resulting grammar has some helpful qualities: it is a regular grammar. No recursion or any form of internal state other than which state of the DFA it’s currently on, due to macro recursion being non-terminating and hence disallowed entirely. It already spits out a regular grammar in graph form. So you can theoretically get it to spit out regular expressions too.

It would need a bit of reworking for this purpose, because the base assumptions of disambiguation are rather baked in. It only has capacity for 64 or so “free variables” which are not (and can not be) stamped by a particular reference. If you open that up you’d have to add a hundred more and also add some shadow ones, like an “is Latin/Cyrillic” + presence of each individual name component for each name in each name variable, a variable name count, an is-numeric for each number variable, has day for each date variable, … etc. You would also be dealing with much, much bigger DFA graphs. The regexes would be enormous. And it is at the moment quite closely tied to the implementation. Overall I rate this quite difficult. Code here

Read more comments on GitHub >

github_iconTop Results From Across the Web

Makefile Tools - Visual Studio Marketplace
VS Code Makefile Tools. This extension provides IntelliSense configurations to the VS Code C/C++ Extension for Makefile projects.
Read more >
Now announcing: Makefile support in Visual Studio Code!
You can find all the Makefile Tools commands by opening the Command Palette and typing “makefile”. For your convenience, there are commands for ......
Read more >
Building in Visual Studio Code with a Makefile - Earthly Blog
Microsoft announced recently a new Visual Studio Code extension to handle Makefiles. This extension provides a set of commands to the editor ......
Read more >
Makefile Tutorial By Example
Makefiles are used to help decide which parts of a large program need to be recompiled. In the vast majority of cases, C...
Read more >
Using make and writing Makefiles
make is a Unix tool to simplify building program executables from many modules. make reads in rules (specified as a list of target...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found