
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Conversor de arquivos markdown para páginas Angular que utilizam a biblioteca TOTVS HTML Framework (THF)
Conversor de arquivos markdown para componentes Angular utilizando recursos visuais das bibliotecas Portinari UI.
npm install md2thf -g
ou
npm install md2thf --save-dev
const md2thf = require('md2thf');
md2thf('C:/pathFromMdFiles', 'C:/pathToAngularFiles');
ou
md2thf C:/pathFromMdFiles C:/pathToAngularFiles
THF.options.home.
Mais informações disponíveis no item
options.
parentRoutePath na versão CLI - por @laraujo0901.options.portinariUi e options.parentRoutePath.
Mais informações disponíveis no item
options.
options.flatDirs=false o menu será gerado de forma hierárquica obedecendo a estrutura dos arquivos markdown.getMenuItems.options.recursive e options.highlightClassName.
Mais informações disponíveis no item
options.
:warning: será :warning: - por @marcospds.options.createHelpers e options.copyExternalFiles.
Mais informações disponíveis no item
options.
exclusions.function md2thf(srcPath: string, destDir: string, options?: Options): void {}
srcPathCaminho de origem dos arquivos markdown que serão convertidos. São considerados todos os arquivos com extensão .md encontrados na pasta raiz e nas subpastas do caminho informado.
Exemplo: C:/zoologico.
destDirDiretório de destino dos arquivos Angular que serão criados a partir da conversão dos arquivos markdown.
Exemplo: C:/portal/src/app/zoologico.
Arquivos existentes no diretório de destino não são excluídos.
optionsOpções de configurações e definições customizadas de conversão dos arquivos:
{
exclusions: string[] = [],
highlightClassName: string = 'highlight',
flatDirs: boolean = false,
recursive: boolean = true,
createHelpers: boolean = true,
home: boolean = true,
moduleName: string = 'docs',
parentRoutePath: string = '{{moduleName}}',
copyExternalFiles: boolean = true,
resourceFolderName: string = 'assets',
resourcePathName: string = 'src/app/{{moduleName}}/{{resourceFolderName}}'
}
options.exclusionsLista com os arquivos markdown ou diretórios que serão desconsiderados da conversão. O caminho informado nesta lista pode ser relativo ou completo ao diretório informado no parâmetro srcPath.
Valor padrão: []
Exemplo: ['C:/zoologico/onca/README.md', 'chimpanze/README.md'].
options.highlightClassNameNome da classe CSS que será utilizada nos elementos de códigos de exemplo.
Independente desta configuração, a classe contendo o nome da linguagem sempre é inserida.
Valor padrão: highlight.
options.flatDirsSe verdadeiro, irá criar as pastas dos componentes na pasta raíz da pasta de destino informada no parâmetro destDir, caso contrário irá obedecer a mesma estrutura encontrada na pasta de origem informada no parâmetro srcPath.
Valor padrão: true
Exemplo:
srcPath
C:\
└── zoologico\
└── animais\
│ └── leao\
│ | ├── README.md
│ └── zebra\
│ | ├── README.md
└── atracoes\
│ ├── README.md
├── README.md
destDir com options.flatDirs=true
C:\portal\src\app\
└── zoologico/
└── leao/
│ ├── leao.component.ts
└── zebra/
│ ├── zebra.component.ts
└── atracoes/
│ ├── atracoes.component.ts
├── zoologico.component.ts
├── zoologico.module.ts
├── zoologico.service.ts
├── zoologico-routing.module.ts
destDir com options.flatDirs=false
C:\portal\src\app\
└── zoologico/
└── animais/
│ └── leao/
│ | ├── leao.component.ts
│ └── zebra/
│ | ├── zebra.component.ts
└── atracoes/
│ ├── atracoes.component.ts
├── zoologico.component.ts
├── zoologico.module.ts
├── zoologico.service.ts
├── zoologico-routing.module.ts
options.recursiveSe verdadeiro, irá ler recursivamente todas as pastas abaixo da pasta de origem informada no parâmetro srcPath.
Valor padrão: true.
options.createHelpersSe verdadeiro, irá criar os arquivos auxiliares de módulo, rotas e serviço.
Valor padrão: true.
options.homeSe verdadeiro, irá criar uma página inicial já com menu para os componentes criados.
Valor padrão: true.
options.moduleNameNome do módulo Angular que será criado para agrupar os componentes gerados a partir da conversão dos arquivos markdown.
Valor padrão: docs.
O nome do módulo deve ser informado em
kebab-case.
options.parentRoutePathCaminho da rota pai que será utilizado para as rotas dos componentes.
Valor padrão: {{options.moduleName}}.
Exemplo:
options.parentRoutePath='zoo/animais'
{
label: "Leão",
link: "zoo/animais/leao"
}
options.copyExternalFilesSe verdadeiro, irá copiar os arquivos externos referenciados nos arquivos markdown para a pasta de recursos.
Valor padrão: true.
options.resourceFolderNameNome da pasta de recursos que será criada para armazenar os arquivos externos referenciados nos arquivos markdown.
Os arquivos encontrados na conversão são copiados para dentro desta pasta com um nome único gerado automaticamente para não haver conflitos e as referências são alteradas para apontar para o arquivo copiado.
Valor padrão: assets.
Esta pasta deve ser incluída como
assetda aplicaçãoAngular.
Geralmente estes arquivos são imagens referenciadas pela marcação
markdownouHTML, como nos exemplos abaixo:
>ou
><img alt="Minha Imagem" src="imagens/minhaImagem.png" />
options.resourcePathNameCaminho que será utilizado para referenciar os arquivos externos copiados durante a conversão dos arquivos markdown.
Padrão: src/app/{{options.moduleName}}/{{options.resourceFolderName}}.
Este caminho deve ser acessível pela aplicação
Angular.
Além da conversão e criação dos componentes Angular são criados mais três arquivos auxiliares: módulo, rotas e serviço.
O arquivo de módulo agrega todos os componentes criados e o roteamento destes componentes - com o uso do arquivo de roteamento.
Já o arquivo de serviço possui facilitadores para retornar a lista das rotas dos componentes no formato esperado pelo menu do Portinari UI.
Module
import { NgModule } from '@angular/core';
import { PoModule } from '@portinari/portinari-ui';
import { WikiRoutingModule } from './wiki-routing.module';
import { WikiService } from './wiki.service';
import { SampleComponent } from './sample/sample.component';
@NgModule({
declarations: [SampleComponent],
imports: [PoModule, WikiRoutingModule],
providers: [WikiService]
})
export class WikiModule {}
Routing
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { SampleComponent } from './sample/sample.component';
const routes: Routes = [
{
path: 'sample',
component: SampleComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class WikiRoutingModule {}
Service
import { Injectable } from '@angular/core';
import { PoMenuItem } from '@portinari/portinari-ui';
@Injectable({
providedIn: 'root'
})
export class WikiService {
constructor() {}
public getWikiMenuItems(): PoMenuItem[] {
return [
{
label: 'Sample Component',
link: 'wiki/sample'
}
];
}
}
Os arquivos externos referenciados nos arquivos markdown são copiados para a pasta de recursos (conforme parâmetros options.copyExternalFiles e options.resourceFolderName) com outro nome gerado dinâmicamente.
Para que seja possível a visualização dos arquivos desta pasta pela aplicação Angular é necessário adicionar a pasta de recursos como asset alterando o arquivo angular.json da aplicação:
{
"assets": [
"src/favicon.ico",
"src/assets",
"src/app/zoologico/resources"
]
}
Toda a área de documentação do portal TOTVS Java Framework foi desenvolvida utilizando o md2thf.
FAQs
Conversor de arquivos markdown para páginas Angular que utilizam a biblioteca TOTVS HTML Framework (THF)
The npm package md2thf receives a total of 1 weekly downloads. As such, md2thf popularity was classified as not popular.
We found that md2thf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.