Ver 1.x.x
Ver 1.0.1
- Implemented various functions culminating to
auto_mark_def_and_notats in 28_markdown.obsidian.persona.machine_learning.tokenize.ipynb
- Added the
repeat_replacing_custom_commands parameter in setup_references_from_latex_parts in 16_latex.convert.ipynb.
- Reorganized
16_latex.convert.ipynb, moving parts of the code to the newly created 29_latex.divide.ipynb, 30_latex.folders.ipynb, 31_latex.formatting.ipynb, 32_latex.preamble.ipynb, and 33_latex.comments.ipynb.
- Fixed an issue with numbering involving
equation environments — some LaTeX files are formatted so that theorem-like environments share the same counter with the equation environment. However, previous versions of trouver did not account for counter changes from equation environments.
- Changed how
divide_latex_text deals with subsubsections — in general, subsusections are divided out into their own “parts” (and the functions in 16_latex.convert.ipynb create notes corresponding to these parts, but do not create subfolders for subsubsections).
- Certain environments (such as
gather, gather*, displaymath, displaymath* will no longer be divided into their own parts). See the list DEFAULT_ENVIRONMENTS_TO_NOT_DIVIDE_ALONG in 29_latex.divide.ipynb.
- Made the
adjust_common_syntax_to_markdown (which is now moved to 31_latex.formatting.ipynb from 16_latex.convert.ipynb) function accept an options parameter, which allows for more choices when modifying formats in text from LaTeX files as they are converted into Markdown notes for viewing on Obsidian.md.
- Modified one of the returned values of
parse_notation_notes in 20_markdown.obsidian.personal.notation.ipynb to be a list of tuples of two str’s instead of a MarkdownFile; this returned value is supposed to capture the information of the bulleted list of notation notes to which the argument notation_note links.
- Introduced
34_markdown.obsidian.machine_learning.notation_linking.ipynb, 35_markdown.obsidian.personal.machine_learning.definition_and_notation_naming.ipynb
- Separated
00_helper.ipynb into 36_helper.tests.ipynb, 37_helper.regex.ipynb, 38_helper.html.ipynb, 39_helper.definiton_and_notation.ipynb, 40_helper.numbers.ipynb, 41_helper.accented_characters.ipynb, 42_helper.date_and_time.ipynb, 43_helper.topological_sort.ipynb, 44_helper.alphabet.ipynb, 45_helper.path_accepted_string.ipynb, 46_helper.files_and_folders.ipynb
- Added
47_helper.latex.ipynb and implemented experimental, rudimentary functions for detecting syntax validity of LaTeX math mode strings and for cleaning up LaTeX math mode strings.
- Added
correct_latex_syntax_error in 25_markdown.obsidian.persoal.machine_learning.notation_summarzation.ipynb to attempt to correct syntax errors present in autogenerated summaries. Also added an invocation of this function to summarize_notation.
- Added
__copy__ and __eq__ methods to VaultNote class.
- Created
50_markdown.obsidian.vault_and_links.ipynb, moved some functions from 06_markdown.obsidian.links.ipynb into there.
- Added
replace_links_in_text in 06_markdown.obsidian.links.ipynb
- Separated
20_markdown.obsidian.personal.notation.ipynb into 51_markdown.obsidian.personal.notation.parse and 52_markdown.obsidian.personal.notation.in_standard_information_note
automatically_add_note_type_tags in 23_markdown.obsidian.personal.machine_learning.information_note_types.ipynb can now use multiple models/TextLearner objects to add note type label predictions to information notes.
- Changed the name of
find_links_in_markdown_text in 06_markdown.obsidian.links.ipynb to link_ranges_in_text
- Deprecated
gather_information_note_types and append_to_information_note_type_database in 23_markdown.obsidian.personal.machine_learning.information_note_types.ipynb and implemented labels_and_identifying_info_from_notes and information_note_types_as_dataset to compile information note type data into Dataset’s instead of pandas.DataFrame’s.
- Renamed
28_markdown.obsidian.personal.machine_learning.tokenize to 28_markdown.obsidian.personal.machine_learning.tokenize.def_and_notat_token_classification.
- Implemented
49_helper.arxiv.ipynb to with functions to download arxiv articles (source code or pdf).
- Implemented in
adjust_common_syntax_to_markdown in 31_latex.formatting.ipynb the ability to remove invocations of \xspace and \ensuremath.
- Implemented
replace_inclusion_of_style_file_with_code in 32_latex.premable.ipynb
- Implemented
find_main_latex_file in 15_latex.__init__.ipynb
- Created
54_app.__init__.ipynb to develop code for a GUI app.
- Currently, the app can get the user to download an arXiv source file, divide the latex file into parts of an
Obsidian.md vault, make note type and def/notat token predictions, and the compile the arXiv source file back into a single .tex file.
- Implemented
get_huggingface_cache_dir in 46_helper.files_and_folders.ipynb.
- Implemented
convert_notes_to_latex_code in 16_latex.convert.ipynb.
- Implemented
find_main_latex_file in 15_latex.__init__.ipynb.
- Modified
setup_reference_from_latex_parts in 16_latex.convert.ipynb.
- The function no longer requires reference and template folders to exist in the “main” vault.
- Implemented
replace_inclusion_of_style_file_with_code in 32_latex.preamble.ipynb.
- Created
55_helper.packages.ipynb to check that packages are installed and if not, install them during runtime.
Ver. 0.x.x
Ver 0.0.5
- Modified the
latex_to_path_accepted_string function to remove some more LaTeX commands and to substitute a few symbols with designated strings.
- The function may be subject to more changes in the near future.
single_input_for_notation_summarization now takes a parameter latex_in_original_comes_first with a default value of True. This default value for the parameter makes it so that inputs/data points for the notation summarization task first lists the latex_in_original field containing the notation to be summarized before the mathematical excerpt; previously, the mathematical excerpt was first listed before the latex_in_original field.
- The
notation_summarizations_model repo now contains a model trained on data points that first list the latex_in_original field. Set the latex_in_original_comes_first parameter of the single_input_for_notation_summarization function to False to use the older model.
- Functions using
single_input_for_notation_summarization now also take a parameter latex_in_original_comes_first.
- Modified
dict_to_metadata_lines and MarkdownFile.replace_metadata in 04_markdown.markdown.file.ipynb to take the enquote_entries_in_fields parameter that specifies whether or not to enquote string values in fields in YAML metadata of an Obsidian Markdown note.
- Other functions and methods that depend on
MarkdownFile.replace_metadata were also modified to have enquote_entries_in_metadata_fields parameters. These include MarkdownFile.add_tags, MarkdownFile.remove_tags, MarkdownFile.replace_auto_tags_with_regular_tags, and _write_summary_to_notation_note in 25_markdown.obsidian.personal.machine_learning.notation_summarization.ipynb.
- The issue involving
append_summary_to_notation_note where the modified notation note has non-enquoted text in the latex_in_original field should have been at least partially resolved.
- Added
parse_metadata_string to 04_markdown.markdown.file.ipynb and made MarkdownFile.metadata use it.
- Added
MarkdownFile.metadata_parts to 04_markdown.markdown.file.ipynb.
- Added
27_markdown.obsidian.personal.vault.ipynb.
- Added
setup_obsidian_vault_for_trouver which is intended to add directories required by trouver in an Obsidian.md vault
- Fixed a bug in the subfunction
_index_note_in_parent_directory of index_note_of_note in 21_markdown.obsidian.personal.information_notes.ipynb; this bug was preventing the function from properly finding the index note of an information note when the two notes are in the same directory.
Ver. 0.0.4
- Created
tutorial.walkthrough as a end-to-end walkthrough on setting up a trouver workflow.
- Added
toml as a requirement in settings.ini.
- Moved
pathvalidate from a Dev requirement to a requirement in settings.ini.
- Made
release_notes and moved the version release notes from index to release_notes.
- Made
how_to.install_trouver and Updated installation instructions.
- Updated the docstring of the
MarkdownFile.has_tag method to more clearly state when it returns True.
- Modified the
append_summary_to_notation_note function in markdown.obsidian.personal.machine_learning.notation_summarization to take a parameter overwrite_previous_autogenerated_summary which, when set to True, tells the function to overwrite autogenerated summaries in the notation note (a notation note is considered to have an autogenerated summary if it has the _auto/notation_summary tag in its YAML frontmatter metadata).
- Modified the
MarkdownFile.remove_tags method in markdown.markdown.file to simply return and not change the MarkdownFile object if the MarkdownFile object does not have YAML frontmatter metadata or if the frontmatter YAML metadata does not include a tags line. In particular, MarkdownFile.remove_tags does not raise an Error in either of these cases.
- Made the constructor of the
VaultNote class in markdown.obsidian.vault raise a ValueError as opposed to an AssertionError if both the name and rel_path parameters are given the argument None.
- Added some examples for
markdown.obsidian.personal.machine_learning.notation_summarization
- Changed
append_to_notation_note_summarization_database to use the 'Notation note name' column as the pivot in invoking the append_to_database function; previously, the 'Processed main note contents' column was used as the pivot column, which meant that data for notation notes sharing the same main note would be lost in making the database csv file.
- Made
markdown.obsidian.personal.machine_learning.notation_summarization import the os.Path class; the notation_summarization module was previously using the os.Path class but not importing it.
- Modified
copy_obisidian_vault_configs and copy_obsidian_vault_configs_with_nice_modifications in markdown.obsidian.personal.reference.ipynb to take the parameter dirs_exist_ok; if this is set to False, then attempting to copy configs into an existing configs directory is prevented. Otherwise, existing files in the pre-existing configs directory are overwritten. See also the dirs_exist_ok parameter of the shutil.copytree function.
- Modified
latex_to_path_accepted_string in helper to use the sanitize_filename function from the pathvalidate library. In particular, this should ensure that make_notation_notes_from_double_asts only attempts to create notation notes with names which are valid as file names.
- The
custom_commands function in latex.convert can parse LaTeX \newcommand and \command invocations in which the defined command is not surrounded by parentheses, e.g. \newcommand\A{{\mathbb A}} is recognized as defining the command \A which has display text {\mathbb A}.
- Made
adjust_common_syntax_to_markdown in latex.convert recognize the eqnarray environment as an environment to adjust.
Ver. 0.0.3
- Fixed issue # 32 in which setting up an
Obsidian.md vault folder from a LaTeX document was not numbering sections and theorem-like environments correctly with a theorem-like environment of the form \numbertheorem{theorem}{Theorem}[section] was being defined.
- Finished implementing
append_summary_to_notation_note
- Modified
dict_to_metadata function to escape and enquote strings if necessary to take into consideration that yaml.safe_load does uses quotations to consider strings as escaped.
- Fixed a bug in
notation_notes_linked_in_see_also_section where the main of notation where the VaultNote objects were incorrectly constructed by passing an argument to the rel_path parameter as opposed to the name parameter.
- Fixed a bug in
_obsidian_vault_plugin_configs_file; I had realized that files for non-core Obsidian.md plugins are stored in .obsidian/plugins/<plugin_name> in the vault directory.
- Changed the default
template_location argument from '.' to '/' in markdown.obsidian.personal.reference.
- Move
latex_to_path_accepted_string function from 20_markdown.obsidian.personal.notation.ipynb to 00_helper.ipynb
- Modify
_consider_part_to_add in 16_latex.convert so that multi-line section titles in LaTeX documents get parsed as single-line titles
- Modify
convert_title_to_folder_name in 12_markdown.obsidian.personal.index_notes.ipynb and _create_note_for_part in 16_latex.convert.ipynb to use sanitize_filename
Ver. 0.0.2
- I made the mistake of note including much of the contents of
index.ipynb in the pypi library release, so that should be fixed..