Document language for dates; @eval pathname resolution and :cwd (from dev bc7cd62b6f68)

@date/@datetime gain :lang (German: "16. Juni 1910") over a document-wide
Language state variable, and :number for the numeric form (en 6/16/1910,
de 16.06.1910 per DIN 5008).  @eval finds Python modules next to the file
that names them regardless of the cwd, and the new :cwd option runs an
eval in a chosen working directory (@source_file uses it to resolve
against the document).  Two new test suites ship in tst/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 20:25:49 +02:00
parent f84603ee19
commit 61b21d1397
12 changed files with 309 additions and 15 deletions

View File

@@ -77,10 +77,16 @@ public:
void parse_state_katoms(std::vector<Katom>::iterator begin, std::vector<Katom>::iterator end, katom_list katoms);
std::vector<std::string> all_names();
void add_search_dir(const std::string& dir);
std::string python_code();
std::string describe(bool show_environment=false, int margin_size=2) const;
std::vector<Frame> m_frames {};
// Directories of the files the Machine has read (input files, klammer
// sets, @read targets), in reading order: @eval finds Python modules
// and :cpp libraries next to the file that uses them (see python_code()
// and Eval::eval_command).
std::vector<std::string> m_search_dirs {};
// @@@state Image_search_path :set :append :replace :argtype :desc
// Parameter_set m_parameters = Parameter_set("name :set :append :replace :argtype :delim :desc");
Parameter_set m_parameters = Parameter_set("name :value :append :replace :delim :desc");