Create a MakeCSL tool
See original GitHub issueThis 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:
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (4 by maintainers)
Top 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 >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
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.
@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