docutils-ts
Version:
Port of the Python Docutils library to TypeScript
37 lines (36 loc) • 1.42 kB
JavaScript
import { newDocument } from './newDocument';
import newReporter from './newReporter';
import { defaultPublisherOptions } from '../src/constants';
import { getDefaultSettings } from './settingsHelper';
import { Publisher } from './publisher';
import StateFactory from './parsers/rst/stateFactory';
import RSTStateMachine from './parsers/rst/rstStateMachine';
import { Logger } from './logger';
let _logger;
export function createLogger(options) {
return new Logger(options);
}
export function createPublisher() {
const publisher = new Publisher({ ...defaultPublisherOptions, logger: createLogger() });
publisher.setComponents(defaultPublisherOptions.readerName, defaultPublisherOptions.parserName, 'xml');
return publisher;
}
export function createRSTStateMachine(args) {
const sm = new RSTStateMachine({
stateFactory: new StateFactory({ logger: args.logger }),
initialState: 'Body',
debugFn: args.logger.debug.bind(args.logger),
debug: true,
logger: args.logger,
});
return sm;
}
export function createStateFactory() {
return new StateFactory({ logger: createLogger() });
}
export function createNewDocument(sourcePath = 'default') {
return newDocument({ sourcePath, logger: createLogger() }, getDefaultSettings());
}
export function createNewReporter(sourcePath = 'default') {
return newReporter({ sourcePath }, getDefaultSettings());
}