Parser of the table of contents file of the 1C platform syntax helper

Overview

Парсер файла оглавления синтакс-помощника платформы 1С

Что делает?

Парсит вот это: table of content

Оглавление представляет собой файл без расширения, лежит в файле shcntx_root.hbk, перед парсингом его нужно извлечь.

Формат файла содержания

Оглавление синтакс-помощника 1С, представляет собой текстовый файл определенного формата ("скобкофайл").

Каждая страница синтакс-помощника указывается в виде автономного блока (chunk) обрамленного в фигурные скобки. Файл оглавления содержит в себе количество блоков в файле, затем описание самих блоков, следующих один за другим, без вложенной иерархии.

Каждый блок состоит из (упрощенно):

  • порядкового номера текущего блока (id). Нумерация сквозная через весь файл, начинается с нуля;
  • номера родительского блока;
  • количество дочерних блоков;
  • в случае если количество дочерних блоков > 0, перечень номеров дочерних блоков;
  • подраздел со свойствами блока:
    • имя (заголовок страницы). Может отсутствовать, может быть указан на одном языке, может быть указан на двух языках;
    • относительный путь к html файлу страницы, который содержит контент страницы. Может быть пустым.

Данный парсер читает файл оглавления и преобразует его в более удобную для работы структуру, в виде класса TableOfContent содержащего рекурсивный список дочерних страниц (Page).

Особенности

Так как файл справки платформы 1С является объектом исключительных прав фирмы 1С, его использование в публичных тестах представляется затруднительным. Если у вас есть идеи как это можно сделать не нарушая лиц. соглашение, можете написать автору на почту или сделать PullRequest.

Лицензия

MIT

You might also like...

A utility for guessing the CCSID of files (based on file contents)

CcsidGuesser A utility for guessing the CCSID of files (based on file contents). It can also fix CCSID tags and/or convert files to UTF-8! Usage Usage

Feb 21, 2022

A simple program used to enter people into a file stored in memory, and the same saved data is displayed in a table

A simple program used to enter people into a file stored in memory, and the same saved data is displayed in a table

A simple program used to enter people (students or professors) into a file stored in memory, and the same saved data is displayed in a table. Persons have the appropriate attributes where name, surname, etc. are entered and identified by ID.

Apr 28, 2022

IntelliJ Platform plugin that shows the file name of the currently open file in the status bar.

IntelliJ Platform plugin that shows the file name of the currently open file in the status bar. Clicking shows a list of recent files.

May 9, 2022

Dynamically filters JPA entities with a simple query syntax. Provides JPA/Hibernate predicates and Spring Data specifications.

Spring Filter You need a way to dynamically filter entities without any effort? Just add me to your pom.xml. Your API will gain a full featured search

Dec 13, 2022

Detect if the system is recording, mirroring, or using AirPlay to stream the contents of the screen.

react-native-is-screen-captured-ios Detect if the system is recording, mirroring, or using AirPlay to stream the contents of the screen. https://devel

Dec 30, 2022

Source code of APK-Explorer-Editor (AEE), an open-source tool to explore the contents of an installed APK!

Source code of APK-Explorer-Editor (AEE),  an open-source tool to explore the contents of an installed APK!

APK Explorer & Editor (AEE) APK Explorer & Editor, an open-source tool to explore the contents of an installed APK, is strictly made with an aim to in

Jan 8, 2023

contents based on article cross-team collaboration

camelk-team-collaboration This repository contains all the sources showcased in the following Red Hat Developers article: https://developers.redhat.co

Apr 27, 2022

Allows you to use the MongoDB query syntax to query your relational database.

Allows you to use the MongoDB query syntax to query your relational database.

Spring Data JPA MongoDB Expressions How it works: Customize JPA Repository base class: @SpringBootApplication @EnableJpaRepositories(repositoryBaseCla

Dec 27, 2022

Tokenisation of contents in Magnolia CMS

Tokenisation of contents in Magnolia CMS

Magnolia tokenizer magnolia-tokenizer-module is a module of Magnolia CMS that allows the tokenization of contents in NFT's. Contents can be assets and

Nov 1, 2022

Spine - a language created for the purpose of writing HTML with C styled syntax

Spine - a language created for the purpose of writing HTML with C styled syntax

Spine is a language created for the purpose of writing HTML with C styled syntax. Although this is a pretty useless projec, it will still be very fun to make and maybe, just maybe remove the backpain from normal HTML.

Mar 19, 2022

esProc SPL is a scripting language for data processing, with well-designed rich library functions and powerful syntax, which can be executed in a Java program through JDBC interface and computing independently.

esProc SPL is a scripting language for data processing, with well-designed rich library functions and powerful syntax, which can be executed in a Java program through JDBC interface and computing independently.

esProc esProc is the unique name for esProc SPL package. esProc SPL is an open-source programming language for data processing, which can perform comp

Dec 27, 2022

Elite Dangerous Odyssey Materials Helper

Elite Dangerous Odyssey Materials Helper

Elite Dangerous Odyssey Materials Helper This application reads the journal files to track which materials you have and make it instantly visible. It

Jan 7, 2023

📺 一个基于BILIBILI-HELPER 的集中化平台。

Bilibili Helper Hub 📺 Bilibili Helper Hub,一个基于BILIBILI-HELPER 的集中化平台。 Notice 该项目不会在你不知情的情况下存储你提供的Cookie数据以及通过B站官方接口获取的用户数据。 Thanks 该项目基于 JunzhouLiu/B

Dec 29, 2022

A helper for creating inventories in minecraft with greater ease and flexibility in order to promote integration with objects

A helper for creating inventories in minecraft with greater ease and flexibility in order to promote integration with objects

Dec 27, 2022

Helper tool to calculate the price for a given amount of users within a graduated pricing model.

Lithic Hi Lithic, This small piece of software is a coding exercise I asked some candidates to solve and is based on the pricing model of Atlassian pr

Feb 27, 2022

A Java Redis PubSub helper which let you send full objects without need of manual serializing

A Java Redis PubSub helper which let you send full objects without need of manual serializing

Nov 30, 2022

eWordle: an extended version of Wordle with full-featured helper.

eWordle An extended version of Wordle (Mini Project of EBU4201) with full-featured helper. How to Play Guess the Wordle word in tries just one more th

Jun 11, 2022

A little helper to complete homework #4 "Graph planarization" in discrete mathematics at ITMO University in the second semester.

A little helper to complete homework #4

graph_planarization A little helper to complete homework #4 "Graph planarization" in discrete mathematics at ITMO University in the second semester. A

Dec 8, 2022

A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

FileManager A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas. Enables folder creatio

Feb 7, 2022
Owner
null
High-performance JSON parser

HikariJSON A High-performance JSON parser. HikariJSON is targeted exclusively at Java 8. If you need legacy support, there are several decent librarie

Brett Wooldridge 454 Dec 31, 2022
A fast JSON parser/generator for Java.

fastjson Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON str

Alibaba 25.1k Dec 31, 2022
Fast JSON parser for java projects

ig-json-parser Fast JSON parser for java projects. Getting started The easiest way to get started is to look at maven-example. For more comprehensive

Instagram 1.3k Dec 26, 2022
Reflectionless command line parser

jbock is a command line parser, which uses the same annotation names as JCommander and picocli. However it does not use reflection. It is an annotatio

null 74 Jan 4, 2023
Text Object Java Objects (TOJOs): an object representation of a multi-line structured text file like CSV

It's a simple manager of "records" in a text file of CSV, JSON, etc. format. It's something you would use when you don't want to run a full database,

Yegor Bugayenko 19 Dec 27, 2022
A 250 lines single-source-file hackable JSON deserializer for the JVM. Reinventing the JSON wheel.

JSON Wheel Have you ever written scripts in Java 11+ and needed to operate on some JSON string? Have you ever needed to extract just that one deeply-n

Roman Böhm 14 Jan 4, 2023
OBKV Table Client is Java Library that can be used to access table data from OceanBase storage layer.

OBKV Table Client OBKV Table Client is Java Library that can be used to access table data from OceanBase storage layer. Its access method is different

OceanBase 12 Dec 16, 2022
Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13

JavaParser This project contains a set of libraries implementing a Java 1.0 - Java 14 Parser with advanced analysis functionalities. This includes pre

JavaParser 4.5k Jan 5, 2023
Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13

JavaParser This project contains a set of libraries implementing a Java 1.0 - Java 14 Parser with advanced analysis functionalities. This includes pre

JavaParser 4.5k Jan 9, 2023